@nyaruka/temba-components 0.125.0 → 0.127.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/demo/chart/example.html +18 -1
  3. package/demo/data/flows/sample-flow.json +82 -228
  4. package/demo/data/server/opened-tickets-long.json +53 -0
  5. package/dist/temba-components.js +53 -15
  6. package/dist/temba-components.js.map +1 -1
  7. package/out-tsc/src/chart/TembaChart.js +33 -5
  8. package/out-tsc/src/chart/TembaChart.js.map +1 -1
  9. package/out-tsc/src/flow/Editor.js +70 -5
  10. package/out-tsc/src/flow/Editor.js.map +1 -1
  11. package/out-tsc/src/flow/EditorNode.js +136 -4
  12. package/out-tsc/src/flow/EditorNode.js.map +1 -1
  13. package/out-tsc/src/flow/Plumber.js +57 -0
  14. package/out-tsc/src/flow/Plumber.js.map +1 -1
  15. package/out-tsc/src/interfaces.js +1 -0
  16. package/out-tsc/src/interfaces.js.map +1 -1
  17. package/out-tsc/src/store/AppState.js +22 -5
  18. package/out-tsc/src/store/AppState.js.map +1 -1
  19. package/out-tsc/test/temba-chart.test.js +26 -0
  20. package/out-tsc/test/temba-chart.test.js.map +1 -1
  21. package/out-tsc/test/temba-flow-node-drag.test.js +257 -0
  22. package/out-tsc/test/temba-flow-node-drag.test.js.map +1 -0
  23. package/out-tsc/test/temba-select.test.js +3 -2
  24. package/out-tsc/test/temba-select.test.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/chart/TembaChart.ts +35 -5
  27. package/src/flow/Editor.ts +78 -6
  28. package/src/flow/EditorNode.ts +159 -4
  29. package/src/flow/Plumber.ts +65 -0
  30. package/src/interfaces.ts +2 -1
  31. package/src/store/AppState.ts +28 -7
  32. package/test/temba-chart.test.ts +36 -0
  33. package/test/temba-flow-node-drag.test.ts +337 -0
  34. package/test/temba-select.test.ts +3 -2
  35. package/web-dev-server.config.mjs +39 -14
@@ -293,7 +293,7 @@ const xe=t=>t??G
293
293
  <slot></slot>
294
294
  </div>
295
295
  </temba-field>
296
- `}}t([ue({type:Boolean})],Ie.prototype,"textarea",void 0),t([ue({type:String})],Ie.prototype,"placeholder",void 0),t([ue({type:Boolean})],Ie.prototype,"password",void 0),t([ue({type:Number})],Ie.prototype,"maxlength",void 0),t([ue({type:Object})],Ie.prototype,"inputElement",void 0),t([ue({type:Boolean})],Ie.prototype,"clearable",void 0),t([ue({type:Boolean})],Ie.prototype,"gsm",void 0),t([ue({type:String})],Ie.prototype,"counter",void 0),t([ue({type:Boolean})],Ie.prototype,"loading",void 0),t([ue({type:Boolean})],Ie.prototype,"submitOnEnter",void 0),t([ue()],Ie.prototype,"onBlur",void 0),t([ue({type:Boolean})],Ie.prototype,"autogrow",void 0),t([ue({type:String})],Ie.prototype,"type",void 0),function(t){t.DayFirst="day_first",t.MonthFirst="month_first",t.YearFirst="year_first"}(Te||(Te={})),function(t){t.CampaignEvent="campaign_event",t.ScheduledBroadcast="scheduled_broadcast",t.ScheduledTrigger="scheduled_trigger"}(Pe||(Pe={})),function(t){t.Open="open",t.Closed="closed"}(Oe||(Oe={})),function(t){t.Loaded="temba-loaded",t.Loading="temba-loading",t.Canceled="temba-canceled",t.CursorChanged="temba-cursor-changed",t.Refreshed="temba-refreshed",t.Selection="temba-selection",t.ButtonClicked="temba-button-clicked",t.DialogHidden="temba-dialog-hidden",t.ScrollThreshold="temba-scroll-threshold",t.ContentChanged="temba-content-changed",t.ContextChanged="temba-context-changed",t.FetchComplete="temba-fetch-complete",t.MessageSent="temba-message-sent",t.Submitted="temba-submitted",t.Redirected="temba-redirected",t.NoPath="temba-no-path",t.StoreUpdated="temba-store-updated",t.Ready="temba-ready",t.OrderChanged="temba-order-changed",t.DragStart="temba-drag-start",t.DragStop="temba-drag-stop",t.Resized="temba-resized",t.DetailsChanged="temba-details-changed",t.Error="temba-error",t.Interrupt="temba-interrupt",t.Opened="temba-opened",t.TicketUpdated="temba-ticket-updated"}(De||(De={}));
296
+ `}}t([ue({type:Boolean})],Ie.prototype,"textarea",void 0),t([ue({type:String})],Ie.prototype,"placeholder",void 0),t([ue({type:Boolean})],Ie.prototype,"password",void 0),t([ue({type:Number})],Ie.prototype,"maxlength",void 0),t([ue({type:Object})],Ie.prototype,"inputElement",void 0),t([ue({type:Boolean})],Ie.prototype,"clearable",void 0),t([ue({type:Boolean})],Ie.prototype,"gsm",void 0),t([ue({type:String})],Ie.prototype,"counter",void 0),t([ue({type:Boolean})],Ie.prototype,"loading",void 0),t([ue({type:Boolean})],Ie.prototype,"submitOnEnter",void 0),t([ue()],Ie.prototype,"onBlur",void 0),t([ue({type:Boolean})],Ie.prototype,"autogrow",void 0),t([ue({type:String})],Ie.prototype,"type",void 0),function(t){t.DayFirst="day_first",t.MonthFirst="month_first",t.YearFirst="year_first"}(Te||(Te={})),function(t){t.CampaignEvent="campaign_event",t.ScheduledBroadcast="scheduled_broadcast",t.ScheduledTrigger="scheduled_trigger"}(Pe||(Pe={})),function(t){t.Open="open",t.Closed="closed"}(Oe||(Oe={})),function(t){t.Loaded="temba-loaded",t.Loading="temba-loading",t.Canceled="temba-canceled",t.CursorChanged="temba-cursor-changed",t.Refreshed="temba-refreshed",t.Selection="temba-selection",t.ButtonClicked="temba-button-clicked",t.DialogHidden="temba-dialog-hidden",t.ScrollThreshold="temba-scroll-threshold",t.ContentChanged="temba-content-changed",t.ContextChanged="temba-context-changed",t.FetchComplete="temba-fetch-complete",t.MessageSent="temba-message-sent",t.Submitted="temba-submitted",t.Redirected="temba-redirected",t.NoPath="temba-no-path",t.StoreUpdated="temba-store-updated",t.Ready="temba-ready",t.OrderChanged="temba-order-changed",t.DragStart="temba-drag-start",t.DragStop="temba-drag-stop",t.Resized="temba-resized",t.DetailsChanged="temba-details-changed",t.Error="temba-error",t.Interrupt="temba-interrupt",t.Opened="temba-opened",t.TicketUpdated="temba-ticket-updated",t.Moved="temba-moved"}(De||(De={}));
297
297
  /**
298
298
  * tiny-lru
299
299
  *
@@ -391,7 +391,7 @@ let br=Qs,xr=!1;const _r=["es","fr","pt"],wr="data:image/png;base64,iVBORw0KGgoA
391
391
  -webkit-box-orient: vertical;
392
392
  overflow: hidden;
393
393
  }
394
- `,t([ue({type:Number})],Sr.prototype,"scale",void 0),t([ue({type:Boolean})],Sr.prototype,"showName",void 0),t([ue({type:Boolean})],Sr.prototype,"system",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"bgimage",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"bgcolor",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"initials",void 0),t([ue({type:String})],Sr.prototype,"name",void 0),t([ue({type:String})],Sr.prototype,"email",void 0),t([ue({type:String})],Sr.prototype,"avatar",void 0);const Cr=t=>{let e;const i=new Set,n=(t,n)=>{const o="function"==typeof t?t(e):t;if(!Object.is(o,e)){const t=e;e=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},e,o),i.forEach((i=>i(e,t)))}},o=()=>e,s={setState:n,getState:o,getInitialState:()=>r,subscribe:t=>(i.add(t),()=>i.delete(t))},r=e=t(n,o,s);return s};var Er=Symbol.for("immer-nothing"),Ar=Symbol.for("immer-draftable"),Mr=Symbol.for("immer-state"),Tr=[function(t){return`The plugin for '${t}' has not been loaded into Immer. To enable the plugin, import and call \`enable${t}()\` when initializing your application.`},function(t){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${t}'`},"This object has been frozen and should not be mutated",function(t){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+t},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(t){return`'current' expects a draft, got: ${t}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function(t){return`'original' expects a draft, got: ${t}`}];function Pr(t,...e){{const i=Tr[t],n="function"==typeof i?i.apply(null,e):i;throw new Error(`[Immer] ${n}`)}}var Or=Object.getPrototypeOf;function Dr(t){return!!t&&!!t[Mr]}function Ir(t){return!!t&&($r(t)||Array.isArray(t)||!!t[Ar]||!!t.constructor?.[Ar]||jr(t)||Fr(t))}var Lr=Object.prototype.constructor.toString();function $r(t){if(!t||"object"!=typeof t)return!1;const e=Or(t);if(null===e)return!0;const i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===Lr}function zr(t,e){0===Rr(t)?Reflect.ownKeys(t).forEach((i=>{e(i,t[i],t)})):t.forEach(((i,n)=>e(n,i,t)))}function Rr(t){const e=t[Mr];return e?e.type_:Array.isArray(t)?1:jr(t)?2:Fr(t)?3:0}function Nr(t,e){return 2===Rr(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Br(t,e,i){const n=Rr(t);2===n?t.set(e,i):3===n?t.add(i):t[e]=i}function jr(t){return t instanceof Map}function Fr(t){return t instanceof Set}function qr(t){return t.copy_||t.base_}function Vr(t,e){if(jr(t))return new Map(t);if(Fr(t))return new Set(t);if(Array.isArray(t))return Array.prototype.slice.call(t);const i=$r(t);if(!0===e||"class_only"===e&&!i){const e=Object.getOwnPropertyDescriptors(t);delete e[Mr];let i=Reflect.ownKeys(e);for(let n=0;n<i.length;n++){const o=i[n],s=e[o];!1===s.writable&&(s.writable=!0,s.configurable=!0),(s.get||s.set)&&(e[o]={configurable:!0,writable:!0,enumerable:s.enumerable,value:t[o]})}return Object.create(Or(t),e)}{const e=Or(t);if(null!==e&&i)return{...t};const n=Object.create(e);return Object.assign(n,t)}}function Hr(t,e=!1){return Wr(t)||Dr(t)||!Ir(t)||(Rr(t)>1&&(t.set=t.add=t.clear=t.delete=Ur),Object.freeze(t),e&&Object.entries(t).forEach((([t,e])=>Hr(e,!0)))),t}function Ur(){Pr(2)}function Wr(t){return Object.isFrozen(t)}var Gr,Zr={};function Yr(t){const e=Zr[t];return e||Pr(0,t),e}function Xr(){return Gr}function Kr(t,e){e&&(Yr("Patches"),t.patches_=[],t.inversePatches_=[],t.patchListener_=e)}function Qr(t){Jr(t),t.drafts_.forEach(ea),t.drafts_=null}function Jr(t){t===Gr&&(Gr=t.parent_)}function ta(t){return Gr={drafts_:[],parent_:Gr,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function ea(t){const e=t[Mr];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function ia(t,e){e.unfinalizedDrafts_=e.drafts_.length;const i=e.drafts_[0];return void 0!==t&&t!==i?(i[Mr].modified_&&(Qr(e),Pr(4)),Ir(t)&&(t=na(e,t),e.parent_||sa(e,t)),e.patches_&&Yr("Patches").generateReplacementPatches_(i[Mr].base_,t,e.patches_,e.inversePatches_)):t=na(e,i,[]),Qr(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),t!==Er?t:void 0}function na(t,e,i){if(Wr(e))return e;const n=e[Mr];if(!n)return zr(e,((o,s)=>oa(t,n,e,o,s,i))),e;if(n.scope_!==t)return e;if(!n.modified_)return sa(t,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;const e=n.copy_;let o=e,s=!1;3===n.type_&&(o=new Set(e),e.clear(),s=!0),zr(o,((o,r)=>oa(t,n,e,o,r,i,s))),sa(t,e,!1),i&&t.patches_&&Yr("Patches").generatePatches_(n,i,t.patches_,t.inversePatches_)}return n.copy_}function oa(t,e,i,n,o,s,r){if(o===i&&Pr(5),Dr(o)){const r=na(t,o,s&&e&&3!==e.type_&&!Nr(e.assigned_,n)?s.concat(n):void 0);if(Br(i,n,r),!Dr(r))return;t.canAutoFreeze_=!1}else r&&i.add(o);if(Ir(o)&&!Wr(o)){if(!t.immer_.autoFreeze_&&t.unfinalizedDrafts_<1)return;na(t,o),e&&e.scope_.parent_||"symbol"==typeof n||!Object.prototype.propertyIsEnumerable.call(i,n)||sa(t,o)}}function sa(t,e,i=!1){!t.parent_&&t.immer_.autoFreeze_&&t.canAutoFreeze_&&Hr(e,i)}var ra={get(t,e){if(e===Mr)return t;const i=qr(t);if(!Nr(i,e))return function(t,e,i){const n=ca(e,i);return n?"value"in n?n.value:n.get?.call(t.draft_):void 0}(t,i,e);const n=i[e];return t.finalized_||!Ir(n)?n:n===la(t.base_,e)?(da(t),t.copy_[e]=ua(n,t)):n},has:(t,e)=>e in qr(t),ownKeys:t=>Reflect.ownKeys(qr(t)),set(t,e,i){const n=ca(qr(t),e);if(n?.set)return n.set.call(t.draft_,i),!0;if(!t.modified_){const n=la(qr(t),e),o=n?.[Mr];if(o&&o.base_===i)return t.copy_[e]=i,t.assigned_[e]=!1,!0;if(function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}(i,n)&&(void 0!==i||Nr(t.base_,e)))return!0;da(t),ha(t)}return t.copy_[e]===i&&(void 0!==i||e in t.copy_)||Number.isNaN(i)&&Number.isNaN(t.copy_[e])||(t.copy_[e]=i,t.assigned_[e]=!0),!0},deleteProperty:(t,e)=>(void 0!==la(t.base_,e)||e in t.base_?(t.assigned_[e]=!1,da(t),ha(t)):delete t.assigned_[e],t.copy_&&delete t.copy_[e],!0),getOwnPropertyDescriptor(t,e){const i=qr(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.type_||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty(){Pr(11)},getPrototypeOf:t=>Or(t.base_),setPrototypeOf(){Pr(12)}},aa={};function la(t,e){const i=t[Mr];return(i?qr(i):t)[e]}function ca(t,e){if(!(e in t))return;let i=Or(t);for(;i;){const t=Object.getOwnPropertyDescriptor(i,e);if(t)return t;i=Or(i)}}function ha(t){t.modified_||(t.modified_=!0,t.parent_&&ha(t.parent_))}function da(t){t.copy_||(t.copy_=Vr(t.base_,t.scope_.immer_.useStrictShallowCopy_))}zr(ra,((t,e)=>{aa[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),aa.deleteProperty=function(t,e){return isNaN(parseInt(e))&&Pr(13),aa.set.call(this,t,e,void 0)},aa.set=function(t,e,i){return"length"!==e&&isNaN(parseInt(e))&&Pr(14),ra.set.call(this,t[0],e,i,t[0])};function ua(t,e){const i=jr(t)?Yr("MapSet").proxyMap_(t,e):Fr(t)?Yr("MapSet").proxySet_(t,e):function(t,e){const i=Array.isArray(t),n={type_:i?1:0,scope_:e?e.scope_:Xr(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:t,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=n,s=ra;i&&(o=[n],s=aa);const{revoke:r,proxy:a}=Proxy.revocable(o,s);return n.draft_=a,n.revoke_=r,a}(t,e);return(e?e.scope_:Xr()).drafts_.push(i),i}function pa(t){if(!Ir(t)||Wr(t))return t;const e=t[Mr];let i;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,i=Vr(t,e.scope_.immer_.useStrictShallowCopy_)}else i=Vr(t,!0);return zr(i,((t,e)=>{Br(i,t,pa(e))})),e&&(e.finalized_=!1),i}var fa=new class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,e,i)=>{if("function"==typeof t&&"function"!=typeof e){const i=e;e=t;const n=this;return function(t=i,...o){return n.produce(t,(t=>e.call(this,t,...o)))}}let n;if("function"!=typeof e&&Pr(6),void 0!==i&&"function"!=typeof i&&Pr(7),Ir(t)){const o=ta(this),s=ua(t,void 0);let r=!0;try{n=e(s),r=!1}finally{r?Qr(o):Jr(o)}return Kr(o,i),ia(n,o)}if(!t||"object"!=typeof t){if(n=e(t),void 0===n&&(n=t),n===Er&&(n=void 0),this.autoFreeze_&&Hr(n,!0),i){const e=[],o=[];Yr("Patches").generateReplacementPatches_(t,n,e,o),i(e,o)}return n}Pr(1,t)},this.produceWithPatches=(t,e)=>{if("function"==typeof t)return(e,...i)=>this.produceWithPatches(e,(e=>t(e,...i)));let i,n;const o=this.produce(t,e,((t,e)=>{i=t,n=e}));return[o,i,n]},"boolean"==typeof t?.autoFreeze&&this.setAutoFreeze(t.autoFreeze),"boolean"==typeof t?.useStrictShallowCopy&&this.setUseStrictShallowCopy(t.useStrictShallowCopy)}createDraft(t){Ir(t)||Pr(8),Dr(t)&&(t=function(t){Dr(t)||Pr(10,t);return pa(t)}(t));const e=ta(this),i=ua(t,void 0);return i[Mr].isManual_=!0,Jr(e),i}finishDraft(t,e){const i=t&&t[Mr];i&&i.isManual_||Pr(9);const{scope_:n}=i;return Kr(n,e),ia(void 0,n)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}applyPatches(t,e){let i;for(i=e.length-1;i>=0;i--){const n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));const n=Yr("Patches").applyPatches_;return Dr(t)?n(t,e):this.produce(t,(t=>n(t,e)))}},ma=fa.produce;fa.produceWithPatches.bind(fa),fa.setAutoFreeze.bind(fa),fa.setUseStrictShallowCopy.bind(fa),fa.applyPatches.bind(fa),fa.createDraft.bind(fa),fa.finishDraft.bind(fa);const ga=t=>(e,i,n)=>(n.setState=(t,i,...n)=>{const o="function"==typeof t?ma(t):t;return e(o,i,...n)},t(n.setState,i,n)),va=t=>(e,i,n)=>{const o=n.subscribe;n.subscribe=(t,e,i)=>{let s=t;if(e){const o=(null==i?void 0:i.equalityFn)||Object.is;let r=t(n.getState());s=i=>{const n=t(i);if(!o(r,n)){const t=r;e(r=n,t)}},(null==i?void 0:i.fireImmediately)&&e(r,r)}return o(s)};return t(e,i,n)},ya=Cr(va(ga(((t,e)=>({languageNames:{},canvasSize:{width:0,height:0},languageCode:"",workspace:null,flowDefinition:null,flowInfo:null,isTranslating:!1,fetchRevision:async(e,i=null)=>{i||(i="latest");const n=await fetch(`${e}/${i}/?version=14.3`);if(!n.ok)throw new Error("Network response was not ok");const o=await n.json();t({flowInfo:o.info,flowDefinition:o.definition})},fetchWorkspace:async e=>{const i=await fetch(e);if(!i.ok)throw new Error("Network response was not ok");const n=await i.json();t({workspace:n})},fetchAllLanguages:async e=>{const i=(await Zt(e)).reduce((function(t,e){return t[e.value]=e.name,t}),{});t({languageNames:i})},getFlowResults:()=>e().flowInfo.results,getResultByKey:t=>e().flowInfo.results.find((e=>e.key===t)),getLanguage:()=>{const t=e(),i=t.languageCode;return{name:t.languageNames[i],code:i}},setFlowContents:e=>{t((t=>{const i=e.definition.language;t.flowDefinition=e.definition,t.flowInfo=e.info,t.languageCode=i,t.isTranslating=!1}))},setFlowInfo:e=>{t((t=>{t.flowInfo=e}))},setLanguageCode:e=>{t((t=>{t.languageCode=e,t.isTranslating=t.flowDefinition.language!==e}))},setTestUpdate:()=>{t((t=>{t.flowDefinition.name="Bloop!"}))},expandCanvas:(e,i)=>{t((t=>{const n=Math.max(t.canvasSize.width,e+800),o=Math.max(t.canvasSize.height,i+800);t.canvasSize.width=n,t.canvasSize.height=o}))},updateCanvasPositions:e=>{t((t=>{for(const i in e)t.flowDefinition._ui.nodes[i]&&(t.flowDefinition._ui.nodes[i].position=e[i])}))},removeNodes:e=>{t((t=>{for(const i of e)delete t.flowDefinition._ui.nodes[i];t.flowDefinition.nodes=t.flowDefinition.nodes.filter((t=>!e.includes(t.uuid)))}))}})))));function ba(t,e){return(i,n)=>{ue()(i,n);const o="connectedCallback",s="disconnectedCallback",r=i[o],a=i[s];i[o]=function(){var i;null!==(i=this._zustandUnsubscribe)&&void 0!==i||(this._zustandUnsubscribe={}),this[n]=e(t.getState()),this._zustandUnsubscribe[n]=t.subscribe(e,(t=>{this[n]=t})),r&&r.call(this)},i[s]=function(){var t,e;null===(e=null===(t=this._zustandUnsubscribe)||void 0===t?void 0:t[n])||void 0===e||e.call(t),a&&a.call(this)}}}const{setLocale:xa}=(t=>(function(t){if(xr)throw new Error("lit-localize can only be configured once");br=t,xr=!0}(((t,e)=>ar(pr,t,e))),fr=hr=t.sourceLocale,dr=new Set(t.targetLocales),dr.add(t.sourceLocale),ur=t.loadLocale,{getLocale:vr,setLocale:yr}))({sourceLocale:"en",targetLocales:_r,loadLocale:t=>import(`./locales/${t}.js`)}),_a=()=>document.querySelector("temba-store");class wa extends ge{constructor(){super(...arguments),this.settings={},this.ttl=6e4,this.max=20,this.ready=!1,this.loader=!1,this.keyedAssets={},this.locale=[...navigator.languages],this.fields={},this.groups={},this.shortcuts=[],this.languages={},this.featuredFields=[],this.dirtyElements=[],this.pendingResolves={},this.fetching={}}static get styles(){return a`
394
+ `,t([ue({type:Number})],Sr.prototype,"scale",void 0),t([ue({type:Boolean})],Sr.prototype,"showName",void 0),t([ue({type:Boolean})],Sr.prototype,"system",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"bgimage",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"bgcolor",void 0),t([ue({type:String,attribute:!1})],Sr.prototype,"initials",void 0),t([ue({type:String})],Sr.prototype,"name",void 0),t([ue({type:String})],Sr.prototype,"email",void 0),t([ue({type:String})],Sr.prototype,"avatar",void 0);const Cr=t=>{let e;const i=new Set,n=(t,n)=>{const o="function"==typeof t?t(e):t;if(!Object.is(o,e)){const t=e;e=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},e,o),i.forEach((i=>i(e,t)))}},o=()=>e,s={setState:n,getState:o,getInitialState:()=>r,subscribe:t=>(i.add(t),()=>i.delete(t))},r=e=t(n,o,s);return s};var Er=Symbol.for("immer-nothing"),Ar=Symbol.for("immer-draftable"),Mr=Symbol.for("immer-state"),Tr=[function(t){return`The plugin for '${t}' has not been loaded into Immer. To enable the plugin, import and call \`enable${t}()\` when initializing your application.`},function(t){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${t}'`},"This object has been frozen and should not be mutated",function(t){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+t},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(t){return`'current' expects a draft, got: ${t}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function(t){return`'original' expects a draft, got: ${t}`}];function Pr(t,...e){{const i=Tr[t],n="function"==typeof i?i.apply(null,e):i;throw new Error(`[Immer] ${n}`)}}var Or=Object.getPrototypeOf;function Dr(t){return!!t&&!!t[Mr]}function Ir(t){return!!t&&($r(t)||Array.isArray(t)||!!t[Ar]||!!t.constructor?.[Ar]||jr(t)||Fr(t))}var Lr=Object.prototype.constructor.toString();function $r(t){if(!t||"object"!=typeof t)return!1;const e=Or(t);if(null===e)return!0;const i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===Lr}function zr(t,e){0===Rr(t)?Reflect.ownKeys(t).forEach((i=>{e(i,t[i],t)})):t.forEach(((i,n)=>e(n,i,t)))}function Rr(t){const e=t[Mr];return e?e.type_:Array.isArray(t)?1:jr(t)?2:Fr(t)?3:0}function Nr(t,e){return 2===Rr(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Br(t,e,i){const n=Rr(t);2===n?t.set(e,i):3===n?t.add(i):t[e]=i}function jr(t){return t instanceof Map}function Fr(t){return t instanceof Set}function qr(t){return t.copy_||t.base_}function Vr(t,e){if(jr(t))return new Map(t);if(Fr(t))return new Set(t);if(Array.isArray(t))return Array.prototype.slice.call(t);const i=$r(t);if(!0===e||"class_only"===e&&!i){const e=Object.getOwnPropertyDescriptors(t);delete e[Mr];let i=Reflect.ownKeys(e);for(let n=0;n<i.length;n++){const o=i[n],s=e[o];!1===s.writable&&(s.writable=!0,s.configurable=!0),(s.get||s.set)&&(e[o]={configurable:!0,writable:!0,enumerable:s.enumerable,value:t[o]})}return Object.create(Or(t),e)}{const e=Or(t);if(null!==e&&i)return{...t};const n=Object.create(e);return Object.assign(n,t)}}function Hr(t,e=!1){return Wr(t)||Dr(t)||!Ir(t)||(Rr(t)>1&&(t.set=t.add=t.clear=t.delete=Ur),Object.freeze(t),e&&Object.entries(t).forEach((([t,e])=>Hr(e,!0)))),t}function Ur(){Pr(2)}function Wr(t){return Object.isFrozen(t)}var Gr,Zr={};function Yr(t){const e=Zr[t];return e||Pr(0,t),e}function Xr(){return Gr}function Kr(t,e){e&&(Yr("Patches"),t.patches_=[],t.inversePatches_=[],t.patchListener_=e)}function Qr(t){Jr(t),t.drafts_.forEach(ea),t.drafts_=null}function Jr(t){t===Gr&&(Gr=t.parent_)}function ta(t){return Gr={drafts_:[],parent_:Gr,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function ea(t){const e=t[Mr];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function ia(t,e){e.unfinalizedDrafts_=e.drafts_.length;const i=e.drafts_[0];return void 0!==t&&t!==i?(i[Mr].modified_&&(Qr(e),Pr(4)),Ir(t)&&(t=na(e,t),e.parent_||sa(e,t)),e.patches_&&Yr("Patches").generateReplacementPatches_(i[Mr].base_,t,e.patches_,e.inversePatches_)):t=na(e,i,[]),Qr(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),t!==Er?t:void 0}function na(t,e,i){if(Wr(e))return e;const n=e[Mr];if(!n)return zr(e,((o,s)=>oa(t,n,e,o,s,i))),e;if(n.scope_!==t)return e;if(!n.modified_)return sa(t,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;const e=n.copy_;let o=e,s=!1;3===n.type_&&(o=new Set(e),e.clear(),s=!0),zr(o,((o,r)=>oa(t,n,e,o,r,i,s))),sa(t,e,!1),i&&t.patches_&&Yr("Patches").generatePatches_(n,i,t.patches_,t.inversePatches_)}return n.copy_}function oa(t,e,i,n,o,s,r){if(o===i&&Pr(5),Dr(o)){const r=na(t,o,s&&e&&3!==e.type_&&!Nr(e.assigned_,n)?s.concat(n):void 0);if(Br(i,n,r),!Dr(r))return;t.canAutoFreeze_=!1}else r&&i.add(o);if(Ir(o)&&!Wr(o)){if(!t.immer_.autoFreeze_&&t.unfinalizedDrafts_<1)return;na(t,o),e&&e.scope_.parent_||"symbol"==typeof n||!Object.prototype.propertyIsEnumerable.call(i,n)||sa(t,o)}}function sa(t,e,i=!1){!t.parent_&&t.immer_.autoFreeze_&&t.canAutoFreeze_&&Hr(e,i)}var ra={get(t,e){if(e===Mr)return t;const i=qr(t);if(!Nr(i,e))return function(t,e,i){const n=ca(e,i);return n?"value"in n?n.value:n.get?.call(t.draft_):void 0}(t,i,e);const n=i[e];return t.finalized_||!Ir(n)?n:n===la(t.base_,e)?(da(t),t.copy_[e]=ua(n,t)):n},has:(t,e)=>e in qr(t),ownKeys:t=>Reflect.ownKeys(qr(t)),set(t,e,i){const n=ca(qr(t),e);if(n?.set)return n.set.call(t.draft_,i),!0;if(!t.modified_){const n=la(qr(t),e),o=n?.[Mr];if(o&&o.base_===i)return t.copy_[e]=i,t.assigned_[e]=!1,!0;if(function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}(i,n)&&(void 0!==i||Nr(t.base_,e)))return!0;da(t),ha(t)}return t.copy_[e]===i&&(void 0!==i||e in t.copy_)||Number.isNaN(i)&&Number.isNaN(t.copy_[e])||(t.copy_[e]=i,t.assigned_[e]=!0),!0},deleteProperty:(t,e)=>(void 0!==la(t.base_,e)||e in t.base_?(t.assigned_[e]=!1,da(t),ha(t)):delete t.assigned_[e],t.copy_&&delete t.copy_[e],!0),getOwnPropertyDescriptor(t,e){const i=qr(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.type_||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty(){Pr(11)},getPrototypeOf:t=>Or(t.base_),setPrototypeOf(){Pr(12)}},aa={};function la(t,e){const i=t[Mr];return(i?qr(i):t)[e]}function ca(t,e){if(!(e in t))return;let i=Or(t);for(;i;){const t=Object.getOwnPropertyDescriptor(i,e);if(t)return t;i=Or(i)}}function ha(t){t.modified_||(t.modified_=!0,t.parent_&&ha(t.parent_))}function da(t){t.copy_||(t.copy_=Vr(t.base_,t.scope_.immer_.useStrictShallowCopy_))}zr(ra,((t,e)=>{aa[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),aa.deleteProperty=function(t,e){return isNaN(parseInt(e))&&Pr(13),aa.set.call(this,t,e,void 0)},aa.set=function(t,e,i){return"length"!==e&&isNaN(parseInt(e))&&Pr(14),ra.set.call(this,t[0],e,i,t[0])};function ua(t,e){const i=jr(t)?Yr("MapSet").proxyMap_(t,e):Fr(t)?Yr("MapSet").proxySet_(t,e):function(t,e){const i=Array.isArray(t),n={type_:i?1:0,scope_:e?e.scope_:Xr(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:t,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=n,s=ra;i&&(o=[n],s=aa);const{revoke:r,proxy:a}=Proxy.revocable(o,s);return n.draft_=a,n.revoke_=r,a}(t,e);return(e?e.scope_:Xr()).drafts_.push(i),i}function pa(t){if(!Ir(t)||Wr(t))return t;const e=t[Mr];let i;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,i=Vr(t,e.scope_.immer_.useStrictShallowCopy_)}else i=Vr(t,!0);return zr(i,((t,e)=>{Br(i,t,pa(e))})),e&&(e.finalized_=!1),i}var fa=new class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,e,i)=>{if("function"==typeof t&&"function"!=typeof e){const i=e;e=t;const n=this;return function(t=i,...o){return n.produce(t,(t=>e.call(this,t,...o)))}}let n;if("function"!=typeof e&&Pr(6),void 0!==i&&"function"!=typeof i&&Pr(7),Ir(t)){const o=ta(this),s=ua(t,void 0);let r=!0;try{n=e(s),r=!1}finally{r?Qr(o):Jr(o)}return Kr(o,i),ia(n,o)}if(!t||"object"!=typeof t){if(n=e(t),void 0===n&&(n=t),n===Er&&(n=void 0),this.autoFreeze_&&Hr(n,!0),i){const e=[],o=[];Yr("Patches").generateReplacementPatches_(t,n,e,o),i(e,o)}return n}Pr(1,t)},this.produceWithPatches=(t,e)=>{if("function"==typeof t)return(e,...i)=>this.produceWithPatches(e,(e=>t(e,...i)));let i,n;const o=this.produce(t,e,((t,e)=>{i=t,n=e}));return[o,i,n]},"boolean"==typeof t?.autoFreeze&&this.setAutoFreeze(t.autoFreeze),"boolean"==typeof t?.useStrictShallowCopy&&this.setUseStrictShallowCopy(t.useStrictShallowCopy)}createDraft(t){Ir(t)||Pr(8),Dr(t)&&(t=function(t){Dr(t)||Pr(10,t);return pa(t)}(t));const e=ta(this),i=ua(t,void 0);return i[Mr].isManual_=!0,Jr(e),i}finishDraft(t,e){const i=t&&t[Mr];i&&i.isManual_||Pr(9);const{scope_:n}=i;return Kr(n,e),ia(void 0,n)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}applyPatches(t,e){let i;for(i=e.length-1;i>=0;i--){const n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));const n=Yr("Patches").applyPatches_;return Dr(t)?n(t,e):this.produce(t,(t=>n(t,e)))}},ma=fa.produce;fa.produceWithPatches.bind(fa),fa.setAutoFreeze.bind(fa),fa.setUseStrictShallowCopy.bind(fa),fa.applyPatches.bind(fa),fa.createDraft.bind(fa),fa.finishDraft.bind(fa);const ga=t=>(e,i,n)=>(n.setState=(t,i,...n)=>{const o="function"==typeof t?ma(t):t;return e(o,i,...n)},t(n.setState,i,n)),va=t=>(e,i,n)=>{const o=n.subscribe;n.subscribe=(t,e,i)=>{let s=t;if(e){const o=(null==i?void 0:i.equalityFn)||Object.is;let r=t(n.getState());s=i=>{const n=t(i);if(!o(r,n)){const t=r;e(r=n,t)}},(null==i?void 0:i.fireImmediately)&&e(r,r)}return o(s)};return t(e,i,n)},ya=Cr(va(ga(((t,e)=>({languageNames:{},canvasSize:{width:0,height:0},languageCode:"",workspace:null,flowDefinition:null,flowInfo:null,isTranslating:!1,dirtyDate:null,setDirtyDate:e=>{t((t=>{t.dirtyDate=e}))},fetchRevision:async(e,i=null)=>{i||(i="latest");const n=await fetch(`${e}/${i}/?version=14.3`);if(!n.ok)throw new Error("Network response was not ok");const o=await n.json();t({flowInfo:o.info,flowDefinition:o.definition})},fetchWorkspace:async e=>{const i=await fetch(e);if(!i.ok)throw new Error("Network response was not ok");const n=await i.json();t({workspace:n})},fetchAllLanguages:async e=>{const i=(await Zt(e)).reduce((function(t,e){return t[e.value]=e.name,t}),{});t({languageNames:i})},getFlowResults:()=>e().flowInfo.results,getResultByKey:t=>e().flowInfo.results.find((e=>e.key===t)),getLanguage:()=>{const t=e(),i=t.languageCode;return{name:t.languageNames[i],code:i}},setFlowContents:e=>{t((t=>{const i=e.definition.language;t.flowDefinition=e.definition,t.flowInfo=e.info,t.languageCode=i,t.isTranslating=!1}))},setFlowInfo:e=>{t((t=>{t.flowInfo=e}))},setLanguageCode:e=>{t((t=>{t.languageCode=e,t.isTranslating=t.flowDefinition.language!==e}))},expandCanvas:(e,i)=>{t((t=>{const n=Math.max(t.canvasSize.width,e+800),o=Math.max(t.canvasSize.height,i+800);t.canvasSize.width=n,t.canvasSize.height=o}))},updateCanvasPositions:e=>{t((t=>{for(const i in e)t.flowDefinition._ui.nodes[i]&&(t.flowDefinition._ui.nodes[i].position=e[i])}))},updateNodePosition:(e,i)=>{t((t=>{t.flowDefinition._ui.nodes[e]?t.flowDefinition._ui.nodes[e].position=i:t.flowDefinition._ui.nodes[e]={position:i,type:null,config:{}},t.dirtyDate=new Date}))},removeNodes:e=>{t((t=>{for(const i of e)delete t.flowDefinition._ui.nodes[i];t.flowDefinition.nodes=t.flowDefinition.nodes.filter((t=>!e.includes(t.uuid)))}))}})))));function ba(t,e){return(i,n)=>{ue()(i,n);const o="connectedCallback",s="disconnectedCallback",r=i[o],a=i[s];i[o]=function(){var i;null!==(i=this._zustandUnsubscribe)&&void 0!==i||(this._zustandUnsubscribe={}),this[n]=e(t.getState()),this._zustandUnsubscribe[n]=t.subscribe(e,(t=>{this[n]=t})),r&&r.call(this)},i[s]=function(){var t,e;null===(e=null===(t=this._zustandUnsubscribe)||void 0===t?void 0:t[n])||void 0===e||e.call(t),a&&a.call(this)}}}const{setLocale:xa}=(t=>(function(t){if(xr)throw new Error("lit-localize can only be configured once");br=t,xr=!0}(((t,e)=>ar(pr,t,e))),fr=hr=t.sourceLocale,dr=new Set(t.targetLocales),dr.add(t.sourceLocale),ur=t.loadLocale,{getLocale:vr,setLocale:yr}))({sourceLocale:"en",targetLocales:_r,loadLocale:t=>import(`./locales/${t}.js`)}),_a=()=>document.querySelector("temba-store");class wa extends ge{constructor(){super(...arguments),this.settings={},this.ttl=6e4,this.max=20,this.ready=!1,this.loader=!1,this.keyedAssets={},this.locale=[...navigator.languages],this.fields={},this.groups={},this.shortcuts=[],this.languages={},this.featuredFields=[],this.dirtyElements=[],this.pendingResolves={},this.fetching={}}static get styles(){return a`
395
395
  :host {
396
396
  position: fixed;
397
397
  z-index: 1000;
@@ -8052,7 +8052,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8052
8052
  ${this.renderUploader()}
8053
8053
  </div>
8054
8054
  </div>
8055
- </div>`}}function _d(t){return _d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_d(t)}function wd(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function kd(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function Sd(t,e,i){return e&&kd(t.prototype,e),i&&kd(t,i),t}function Cd(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function Ed(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&Md(t,e)}function Ad(t){return Ad=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},Ad(t)}function Md(t,e){return Md=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},Md(t,e)}function Td(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Pd(t){var e=function(){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(t){return!1}}();return function(){var i,n=Ad(t);if(e){var o=Ad(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return function(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?Td(t):e}(this,i)}}function Od(t,e,i){return Od="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,i){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=Ad(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(i):o.value}},Od(t,e,i||t)}function Dd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==i)return;var n,o,s=[],r=!0,a=!1;try{for(i=i.call(t);!(r=(n=i.next()).done)&&(s.push(n.value),!e||s.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==i.return||i.return()}finally{if(a)throw o}}return s}(t,e)||Ld(t,e)||function(){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 Id(t){return function(t){if(Array.isArray(t))return $d(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Ld(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ld(t,e){if(t){if("string"==typeof t)return $d(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?$d(t,e):void 0}}function $d(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function zd(t,e,i){return"*"===t||(t.length>0?-1!==t.indexOf(e):!i)}function Rd(t,e,i){var n,o=t=t||{},s=e=e||{};for(n in s)o[n]=s[n];return t}function Nd(t){return"[object Number]"===Object.prototype.toString.call(t)}function Bd(t){return"string"==typeof t}function jd(t){return"boolean"==typeof t}function Fd(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function qd(t){return"[object Function]"===Object.prototype.toString.call(t)}function Vd(t){if(Bd(t))return""+t;if(jd(t))return!!t;if(function(t){return"[object Date]"===Object.prototype.toString.call(t)}(t))return new Date(t.getTime());if(qd(t))return t;if(Array.isArray(t)){for(var e=[],i=0;i<t.length;i++)e.push(Vd(t[i]));return e}if(Fd(t)){var n={};for(var o in t)n[o]=Vd(t[o]);return n}return t}function Hd(t,e,i,n){var o,s,r={},a={};for(i=i||[],n=n||[],s=0;s<i.length;s++)r[i[s]]=!0;for(s=0;s<n.length;s++)a[n[s]]=!0;var l=Vd(t);for(s in e)if(null==l[s]||a[s])l[s]=e[s];else if(r[s])(o=[]).push.apply(o,Array.isArray(l[s])?l[s]:[l[s]]),o.push(e[s]),l[s]=o;else if(Bd(e[s])||jd(e[s])||qd(e[s])||Nd(e[s]))l[s]=e[s];else if(Array.isArray(e[s]))o=[],Array.isArray(l[s])&&o.push.apply(o,l[s]),o.push.apply(o,e[s]),l[s]=o;else if(Fd(e[s]))for(var c in Fd(l[s])||(l[s]={}),e[s])l[s][c]=e[s][c];return l}function Ud(t,e,i){for(var n=0;n<i.length;n++){var o=i[n][0][i[n][1]].apply(i[n][0],i[n][2]);if(o===e)return o}return t}function Wd(t,e,i,n){return function t(o){if(null!=o){if(Bd(o))return function(t){var i=t.match(/(\${.*?})/g);if(null!=i)for(var n=0;n<i.length;n++){var o=e[i[n].substring(2,i[n].length-1)]||"";null!=o&&(t=t.replace(i[n],o))}if(null!=(i=t.match(/({{.*?}})/g)))for(var s=0;s<i.length;s++){var r=e[i[s].substring(2,i[s].length-2)]||"";null!=r&&(t=t.replace(i[s],r))}return t}(o);if(qd(o)&&!n&&0===(o.name||"").indexOf(i))return o(e);if(Array.isArray(o)){for(var s=[],r=0;r<o.length;r++)s.push(t(o[r]));return s}if(Fd(o)){var a={};for(var l in o)a[l]=t(o[l]);return a}return o}}(t)}function Gd(t,e){if(!t)return null;for(var i=0;i<t.length;i++)e(t[i])}function Zd(t,e){if(t)for(var i=0;i<t.length;i++)if(e(t[i]))return i;return-1}function Yd(t,e){var i=Zd(t,e);return-1===i?null:t[i]}function Xd(t,e){var i=null;return t.forEach((function(t){e(t)&&(i=t)})),i}function Kd(t,e){var i=Zd(t,e);return i>-1&&t.splice(i,1),-1!==i}function Qd(t){if(null!=Array.fromArray)return Array.from(t);var e=[];return Array.prototype.push.apply(e,t),e}function Jd(t,e){var i=t.indexOf(e);return i>-1&&t.splice(i,1),-1!==i}function tu(t,e,i,n){var o=t[e];return null==o&&(o=[],t[e]=o),o[n?"unshift":"push"](i),o}function eu(t,e,i){return-1===t.indexOf(e)&&(t.push(e),!0)}t([ue({type:String,attribute:!1})],xd.prototype,"endpoint",void 0),t([ue({type:Boolean})],xd.prototype,"pendingDrop",void 0),t([ue({type:String})],xd.prototype,"icon",void 0),t([ue({type:String})],xd.prototype,"accept",void 0),t([ue({type:Number})],xd.prototype,"max",void 0),t([ue({type:Array})],xd.prototype,"attachments",void 0),t([ue({type:Boolean,attribute:!1})],xd.prototype,"uploading",void 0);for(var iu,nu=[],ou=0;ou<256;ou++)nu[ou]=(ou<16?"0":"")+ou.toString(16);function su(){var t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,i=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return nu[255&t]+nu[t>>8&255]+nu[t>>16&255]+nu[t>>24&255]+"-"+nu[255&e]+nu[e>>8&255]+"-"+nu[e>>16&15|64]+nu[e>>24&255]+"-"+nu[63&i|128]+nu[i>>8&255]+"-"+nu[i>>16&255]+nu[i>>24&255]+nu[255&n]+nu[n>>8&255]+nu[n>>16&255]+nu[n>>24&255]}function ru(t,e,i){var n=t.x-e.x,o=t.y-e.y,s=Math.cos(i/360*Math.PI*2),r=Math.sin(i/360*Math.PI*2);return{x:n*s-o*r+e.x,y:o*s+n*r+e.y,cr:s,sr:r}}function au(t){if(null==t)return null;for(var e=t.replace(/^\s\s*/,""),i=/\s/,n=e.length;i.test(e.charAt(--n)););return e.slice(0,n+1)}function lu(t,e){for(var i=[],n=0;n<t.length;n++)i.push(e(t[n]));return i}function cu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];if("undefined"!=typeof console)try{var n=arguments[arguments.length-1];console.log(n)}catch(t){}}function hu(t){return t<0?-1:t>0?1:0}function du(t,e,i){return function(){var n=null;try{null!=e&&(n=e.apply(this,arguments))}catch(t){cu("jsPlumb function failed : "+t)}if(null!=t&&(null==i||n!==i))try{n=t.apply(this,arguments)}catch(t){cu("wrapped function failed : "+t)}return n}}function uu(t,e,i){return t.has(e)||t.set(e,i()),t.get(e)}function pu(t,e){for(var i=t.__proto__;null!=i;){if(i instanceof e)return!0;i=i.__proto__}return!1}function fu(t,e,i){for(var n=(i=i||t.parentNode).querySelectorAll(e),o=0;o<n.length;o++)if(n[o]===t)return!0;return!1}function mu(t,e){t.stopPropagation?t.stopPropagation():t.returnValue=!1,!e&&t.preventDefault&&t.preventDefault()}function gu(t,e,i,n){if(n&&fu(t,e,i))return t;for(t=t.parentNode;null!=t&&t!==i;){if(fu(t,e))return t;t=t.parentNode}}function vu(t){return t.srcElement||t.target}function yu(t){return null!=t.className?void 0===t.className.baseVal?t.className:t.className.baseVal:""}function bu(t,e,i){var n=null==e?[]:Array.isArray(e)?e:e.split(/\s+/),o=null==i?[]:Array.isArray(i)?i:i.split(/\s+/),s=yu(t).split(/\s+/),r=function(t,e){for(var i=0;i<e.length;i++)if(t)-1===s.indexOf(e[i])&&s.push(e[i]);else{var n=s.indexOf(e[i]);-1!==n&&s.splice(n,1)}};r(!0,n),r(!1,o),function(t,e,i){e=au(e),void 0!==t.className.baseVal?t.className.baseVal=e:t.className=e;try{var n=t.classList;if(null!=n){for(;n.length>0;)n.remove(n.item(0));for(var o=0;o<i.length;o++)i[o]&&n.add(i[o])}}catch(t){cu("WARN: cannot set class list",t)}}(t,s.join(" "),s)}function xu(t){return!Bd(t)&&!Array.isArray(t)&&null!=t.length&&null==t.documentElement&&null==t.nodeType}function _u(t,e){var i=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?Gd(au(e).split(/\s+/),(function(e){t.classList.add(e)})):bu(t,e))};xu(t)?Gd(t,(function(t){return i(t,e)})):i(t,e)}function wu(t,e){var i=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?au(e).split(/\s+/).forEach((function(e){t.classList.remove(e)})):bu(t,null,e))};xu(t)?Gd(t,(function(t){return i(t,e)})):i(t,e)}function ku(t,e,i,n){return Su(null,t,e,i,n)}function Su(t,e,i,n,o){var s,r=null==t?document.createElement(e):document.createElementNS(t,e);for(s in i=i||{})r.style[s]=i[s];for(s in n&&(r.className=n),o=o||{})r.setAttribute(s,""+o[s]);return r}function Cu(t){var e=t.getBoundingClientRect(),i=document.body,n=document.documentElement,o=window.pageYOffset||n.scrollTop||i.scrollTop,s=window.pageXOffset||n.scrollLeft||i.scrollLeft,r=n.clientTop||i.clientTop||0,a=n.clientLeft||i.clientLeft||0,l=e.top+o-r,c=e.left+s-a;return{x:Math.round(c),y:Math.round(l)}}function Eu(t,e){var i=e.getContainer().getBoundingClientRect(),n=t.getBoundingClientRect(),o=e.currentZoom;return{x:(n.left-i.left)/o,y:(n.top-i.top)/o}}function Au(t,e){var i=t.getBoundingClientRect(),n=e.currentZoom;return{w:i.width/n,h:i.height/n}}function Mu(t){return t instanceof SVGElement?iu.SVG:iu.HTML}function Tu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.map((function(t){return"."+t})).join(",")}function Pu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.map((function(t){return"["+t+"]"})).join(",")}!function(t){t.SVG="SVG",t.HTML="HTML"}(iu||(iu={}));var Ou="source",Du="target",Iu="block",Lu="none",$u="absolute",zu="fixed",Ru="data-jtk-group",Nu="data-jtk-managed",Bu="data-jtk-not-draggable",ju="tabindex",Fu="data-jtk-scope-",qu="checkCondition",Vu="jtk-connector",Hu="jtk-endpoint",Uu="jtk-floating-endpoint",Wu="jtk-group-collapsed",Gu="jtk-group-expanded",Zu="jtk-overlay",Yu="connection",Xu="internal.connection",Ku="connection:move",Qu="internal.endpoint:unregistered",Ju="internal.connection:detached",tp="element:manage",ep="maxConnections",ip="element:unmanage",np="zoom",op="isDetachAllowed",sp="beforeDrop",rp="beforeDetach",ap=Pu(Nu),lp={"stroke-linejoin":"stroke-linejoin","stroke-dashoffset":"stroke-dashoffset","stroke-linecap":"stroke-linecap"},cp="stroke-dasharray",hp="dashstyle",dp="fill",up="stroke",pp="stroke-width",fp="strokeWidth",mp="svg",gp="path",vp={svg:"http://www.w3.org/2000/svg"};function yp(t,e){for(var i in e)t.setAttribute(i,""+e[i])}function bp(t,e){return(e=e||{}).version="1.1",e.xmlns=vp.svg,Su(vp.svg,t,null,null,e)}function xp(t){return"position:absolute;left:"+t[0]+"px;top:"+t[1]+"px"}function _p(t,e,i){if(e.setAttribute(dp,i.fill?i.fill:Lu),e.setAttribute(up,i.stroke?i.stroke:Lu),i.strokeWidth&&e.setAttribute(pp,i.strokeWidth),i[hp]&&i[fp]&&!i[cp]){var n=-1===i[hp].indexOf(",")?" ":",",o=i[hp].split(n),s="";Gd(o,(function(t){s+=Math.floor(t*i.strokeWidth)+n})),e.setAttribute(cp,s)}else i[cp]&&e.setAttribute(cp,i[cp]);for(var r in lp)i[r]&&e.setAttribute(lp[r],i[r])}function wp(t,e,i){t.childNodes.length>i?t.insertBefore(e,t.childNodes[i]):t.appendChild(e)}function kp(t,e,i){return[t,e].join(":")}var Sp,Cp,Ep="data-jtk-container",Ap="data-jtk-enabled",Mp="data-jtk-scope",Tp="endpoint",Pp="element",Op="connection",Dp="click",Ip="contextmenu",Lp="dblclick",$p="dbltap",zp="mousedown",Rp="mouseenter",Np="mouseexit",Bp="mousemove",jp="mouseup",Fp="mouseout",qp="mouseover",Vp="tap",Hp="revert",Up="connection:drag",Wp=kp(Pp,Dp),Gp=kp(Pp,Lp),Zp=kp(Pp,$p),Yp=kp(Pp,Fp),Xp=kp(Pp,qp),Kp=kp(Pp,Bp),Qp=kp(Pp,jp),Jp=kp(Pp,zp),tf=kp(Pp,Ip),ef=kp(Pp,Vp),nf=kp(Tp,Dp),of=kp(Tp,Lp),sf=kp(Tp,Fp),rf=kp(Tp,qp),af=kp(Tp,jp),lf=kp(Tp,zp),cf=kp(Op,Dp),hf=kp(Op,Lp),df=kp(Op,$p),uf=kp(Op,Fp),pf=kp(Op,qp),ff=kp(Op,jp),mf=kp(Op,zp),gf=kp(Op,Ip),vf=kp(Op,Vp),yf="position",bf=Tu(Vu),xf=Tu(Hu),_f=Pu(Ru),wf=Pu("data-jtk-group-content"),kf=Tu(Zu);!function(t){t.Circle="Circle",t.Ellipse="Ellipse",t.Triangle="Triangle",t.Diamond="Diamond",t.Rectangle="Rectangle",t.Square="Square"}(Sp||(Sp={})),function(t){t.Assign="Assign",t.AutoDefault="AutoDefault",t.Bottom="Bottom",t.BottomLeft="BottomLeft",t.BottomRight="BottomRight",t.Center="Center",t.Continuous="Continuous",t.ContinuousBottom="ContinuousBottom",t.ContinuousLeft="ContinuousLeft",t.ContinuousRight="ContinuousRight",t.ContinuousTop="ContinuousTop",t.ContinuousLeftRight="ContinuousLeftRight",t.ContinuousTopBottom="ContinuousTopBottom",t.Left="Left",t.Perimeter="Perimeter",t.Right="Right",t.Top="Top",t.TopLeft="TopLeft",t.TopRight="TopRight"}(Cp||(Cp={}));var Sf,Cf,Ef=function(){function t(e){wd(this,t),this.params=e,Cd(this,"x1",void 0),Cd(this,"x2",void 0),Cd(this,"y1",void 0),Cd(this,"y2",void 0),Cd(this,"extents",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"type",void 0),this.x1=e.x1,this.y1=e.y1,this.x2=e.x2,this.y2=e.y2}return Sd(t,[{key:"findClosestPointOnPath",value:function(t,e){return{d:1/0,x:null,y:null,l:null,x1:null,y1:null,x2:null,y2:null}}},{key:"lineIntersection",value:function(t,e,i,n){return[]}},{key:"boxIntersection",value:function(t,e,i,n){var o=[];return o.push.apply(o,this.lineIntersection(t,e,t+i,e)),o.push.apply(o,this.lineIntersection(t+i,e,t+i,e+n)),o.push.apply(o,this.lineIntersection(t+i,e+n,t,e+n)),o.push.apply(o,this.lineIntersection(t,e+n,t,e)),o}},{key:"boundingBoxIntersection",value:function(t){return this.boxIntersection(t.x,t.y,t.w,t.h)}}]),t}(),Af="undefined",Mf="default",Tf="true",Pf="false",Of="*";function Df(t,e,i,n,o,s,r){return function(){var t=[];return t.push.apply(t,arguments),t.item=function(t){return this[t]},t}(function(t,e,i,n,o,s,r){return new Touch({target:t,identifier:su(),pageX:e,pageY:i,screenX:n,screenY:o,clientX:s||n,clientY:r||o})}(t,e,i,n,o,s,r))}function If(t,e,i){for(var n=(i=i||t.parentNode).querySelectorAll(e),o=0;o<n.length;o++)if(n[o]===t)return!0;return!1}function Lf(t){return t.srcElement||t.target}function $f(t,e,i,n){if(n){var o=t.composedPath?t.composedPath():t.path;if(void 0!==o&&o.indexOf)return{path:o,end:o.indexOf(i)};var s={path:[],end:-1};return function t(e){s.path.push(e),e===i?s.end=s.path.length-1:null!=e.parentNode&&t(e.parentNode)}(e),s}return{path:[e],end:1}}var zf=1;function Rf(){return"ontouchstart"in document.documentElement||null!=navigator.maxTouchPoints&&navigator.maxTouchPoints>0}function Nf(){return"onmousedown"in document.documentElement}var Bf=(Cd(Sf={},zp,"touchstart"),Cd(Sf,jp,"touchend"),Cd(Sf,Bp,"touchmove"),Sf),jf="page";function Ff(t,e){if(null==t)return{x:0,y:0};var i=function(t,e){return t.item?t.item(e):t[e]}(Vf(t),0);return{x:i[e+"X"],y:i[e+"Y"]}}function qf(t){return Ff(t,jf)}function Vf(t){return t.touches&&t.touches.length>0?t.touches:t.changedTouches&&t.changedTouches.length>0?t.changedTouches:t.targetTouches&&t.targetTouches.length>0?t.targetTouches:[t]}function Hf(t,e,i,n,o){if(Gf(t,e,i),n.__tauid=i.__tauid,t.addEventListener)t.addEventListener(e,i,!1,o);else if(t.attachEvent){var s=e+i.__tauid;t["e"+s]=i,t[s]=function(){t["e"+s]&&t["e"+s](window.event)},t.attachEvent("on"+e,t[s])}}function Uf(t,e,i){var n=this;null!=i&&Wf(t,(function(o){if(function(t,e,i){if(t.__ta&&t.__ta[e]&&delete t.__ta[e][i.__tauid],i.__taExtra){for(var n=0;n<i.__taExtra.length;n++)Uf(t,i.__taExtra[n][0],i.__taExtra[n][1]);i.__taExtra.length=0}i.__taUnstore&&i.__taUnstore()}(o,e,i),null!=i.__tauid)if(o.removeEventListener)o.removeEventListener(e,i,!1),Rf()&&Bf[e]&&o.removeEventListener(Bf[e],i,!1);else if(n.detachEvent){var s=e+i.__tauid;o[s]&&o.detachEvent("on"+e,o[s]),o[s]=null,o["e"+s]=null}i.__taTouchProxy&&Uf(t,i.__taTouchProxy[1],i.__taTouchProxy[0])}))}function Wf(t,e){if(null!=t)for(var i="string"==typeof t?document.querySelectorAll(t):null!=t.length?t:[t],n=0;n<i.length;n++)e(i[n])}function Gf(t,e,i){var n=zf++;return t.__ta=t.__ta||{},t.__ta[e]=t.__ta[e]||{},t.__ta[e][n]=i,i.__tauid=n,n}var Zf=/:not\(([^)]+)\)/;function Yf(t,e,i,n){if(null==t)return i;var o=t.split(","),s=[],r=[];Gd(o,(function(t){var e=t.match(Zf);null!=e?r.push(e[1]):s.push(t)})),r.length>0&&0===s.length&&s.push(Of);var a=function n(o){n.__tauid=i.__tauid;var a=Lf(o),l=!1,c=a,h=$f(o,a,e,null!=t);if(-1!=h.end)for(var d=0;!l&&d<h.end;d++){c=h.path[d];for(var u=0;u<r.length;u++)if(If(c,r[u],e))return;for(var p=0;!l&&p<s.length;p++)if(If(c,s[p],e)){i.apply(c,[o,c]),l=!0;break}}};return function(t,e,i){t.__taExtra=t.__taExtra||[],t.__taExtra.push([e,i])}(i,n,a),a}var Xf=function(t,e,i,n,o){if(Rf()&&Bf[e]){var s=Yf(n,t,i,Bf[e]);Hf(t,Bf[e],s,i,o)}"focus"===e&&null==t.getAttribute(ju)&&t.setAttribute(ju,"1"),Hf(t,e,Yf(n,t,i,e),i,o)},Kf=(Cd(Cf={},Vp,{touches:1,taps:1}),Cd(Cf,$p,{touches:1,taps:2}),Cd(Cf,Ip,{touches:2,taps:1}),Cf);function Qf(t,e,i,n){for(var o in i.__tamee[t])i.__tamee[t].hasOwnProperty(o)&&i.__tamee[t][o].apply(n,[e])}var Jf=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"generate",value:function(t,e){return function(i,n,o,s){if(n==Ip&&Nf())Xf(i,n,o,s);else{if(null==i.__taTapHandler){var r=i.__taTapHandler={tap:[],dbltap:[],down:!1,taps:0,downSelectors:[]},a=function(n){for(var o=Lf(n),a=$f(n,o,i,null!=s),l=!1,d=0;d<a.end;d++){if(l)return;o=a.path[d];for(var u=0;u<r.downSelectors.length;u++)if(null==r.downSelectors[u]||If(o,r.downSelectors[u],i)){r.down=!0,setTimeout(c,t),setTimeout(h,e),l=!0;break}}},l=function(t){if(r.down){var e,n,o=Lf(t);r.taps++;var s=function(t){return Vf(t).length}(t);for(var a in Kf)if(Kf.hasOwnProperty(a)){var l=Kf[a];if(l.touches===s&&(1===l.taps||l.taps===r.taps))for(var c=0;c<r[a].length;c++){n=$f(t,o,i,null!=r[a][c][1]);for(var h=0;h<n.end;h++)if(e=n.path[h],null==r[a][c][1]||If(e,r[a][c][1],i)){r[a][c][0].apply(e,[t,e]);break}}}}},c=function(){r.down=!1},h=function(){r.taps=0};i.__taTapHandler.downHandler=a,i.__taTapHandler.upHandler=l,Xf(i,zp,a),Xf(i,jp,l)}i.__taTapHandler.downSelectors.push(s),i.__taTapHandler[n].push([o,s]),o.__taUnstore=function(){null!=i.__taTapHandler&&(Kd(i.__taTapHandler.downSelectors,(function(t){return t===s})),function(t,e){var i,n=0;for(n=0,i=t.length;n<i&&t[n][0]!==e;n++);n<t.length&&t.splice(n,1)}(i.__taTapHandler[n],o),0===i.__taTapHandler.downSelectors.length&&(Uf(i,zp,i.__taTapHandler.downHandler),Uf(i,jp,i.__taTapHandler.upHandler),delete i.__taTapHandler))}}}}}]),t}(),tm=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"generate",value:function(){var t=[];return function(e,i,n,o){if(!e.__tamee){e.__tamee={over:!1,mouseenter:[],mouseexit:[]};var s=function(i){var n=Lf(i);(null==o&&n==e&&!e.__tamee.over||If(n,o,e)&&(null==n.__tamee||!n.__tamee.over))&&(Qf(Rp,i,e,n),n.__tamee=n.__tamee||{},n.__tamee.over=!0,t.push(n))},r=function(i){for(var n=Lf(i),o=0;o<t.length;o++)n!=t[o]||If(i.relatedTarget||i.toElement,"*",n)||(n.__tamee.over=!1,t.splice(o,1),Qf(Np,i,e,n))};Hf(e,qp,Yf(o,e,s,qp),s),Hf(e,Fp,Yf(o,e,r,Fp),r)}n.__taUnstore=function(){delete e.__tamee[i][n.__tauid]},Gf(e,i,n),e.__tamee[i][n.__tauid]=n}}}]),t}(),em=function(){function t(e){wd(this,t),Cd(this,"clickThreshold",void 0),Cd(this,"dblClickThreshold",void 0),Cd(this,"tapHandler",void 0),Cd(this,"mouseEnterExitHandler",void 0),e=e||{},this.clickThreshold=e.clickThreshold||250,this.dblClickThreshold=e.dblClickThreshold||450,this.mouseEnterExitHandler=tm.generate(),this.tapHandler=Jf.generate(this.clickThreshold,this.dblClickThreshold)}return Sd(t,[{key:"_doBind",value:function(t,e,i,n,o){if(null!=i){var s=t;e===Vp||e===$p||e===Ip?this.tapHandler(s,e,i,n,o):e===Rp||e==Np?this.mouseEnterExitHandler(s,e,i,n,o):Xf(s,e,i,n,o)}}},{key:"on",value:function(t,e,i,n,o){var s=null==n?null:i,r=null==n?i:n;return this._doBind(t,e,r,s,o),this}},{key:"off",value:function(t,e,i){return Uf(t,e,i),this}},{key:"trigger",value:function(t,e,i,n,o){var s=Nf()&&("undefined"==typeof MouseEvent||null==i||i.constructor===MouseEvent),r=Rf()&&!Nf()&&Bf[e]?Bf[e]:e,a=!(Rf()&&!Nf()&&Bf[e]),l=qf(i),c=function(t){return Ff(t,"screen")}(i),h=function(t){return Ff(t,"client")}(i);return Wf(t,(function(t){var d;i=i||{screenX:c.x,screenY:c.y,clientX:h.x,clientY:h.y};var u,p={TouchEvent:function(e){var i=Df(t,l.x,l.y,c.x,c.y,h.x,h.y);(e.initTouchEvent||e.initEvent)(r,!0,!0,window,null,c.x,c.y,h.x,h.y,!1,!1,!1,!1,i,i,i,1,0)},MouseEvents:function(e){e.initMouseEvent(r,!0,!0,window,null==o?1:o,c.x,c.y,h.x,h.y,!1,!1,!1,!1,1,t)}},f=!a&&!s&&Rf()&&Bf[e]?"TouchEvent":"MouseEvents";d=document.createEvent(f),p[f](d),u=d,n&&(u.payload=n),t.dispatchEvent(d)})),this}}]),t}(),im=[null,[1,-1],[1,1],[-1,1],[-1,-1]],nm=[null,[-1,-1],[-1,1],[1,1],[1,-1]],om=2*Math.PI;function sm(t,e){return e.x===t.x?e.y>t.y?1/0:-1/0:e.y===t.y?e.x>t.x?0:-0:(e.y-t.y)/(e.x-t.x)}function rm(t,e){return Math.sqrt(Math.pow(e.y-t.y,2)+Math.pow(e.x-t.x,2))}function am(t,e){return e.x>t.x||e.x==t.x?e.y>t.y?2:1:e.y>t.y?3:4}function lm(t,e){var i=t.x,n=t.x+t.w,o=t.y,s=t.y+t.h,r=e.x,a=e.x+e.w,l=e.y,c=e.y+e.h;return i<=r&&r<=n&&o<=l&&l<=s||i<=a&&a<=n&&o<=l&&l<=s||i<=r&&r<=n&&o<=c&&c<=s||i<=a&&r<=n&&o<=c&&c<=s||r<=i&&i<=a&&l<=o&&o<=c||r<=n&&n<=a&&l<=o&&o<=c||r<=i&&i<=a&&l<=s&&s<=c||r<=n&&i<=a&&l<=s&&s<=c}function cm(t,e,i){var n=sm(t,e),o=am(t,e),s=i>0?im[o]:nm[o],r=Math.atan(n),a=Math.abs(i*Math.sin(r))*s[1],l=Math.abs(i*Math.cos(r))*s[0];return{x:t.x+l,y:t.y+a}}function hm(t,e,i){if(fu(e,i,t))return e;for(var n=e.parentNode;null!=n&&n!==t;){if(fu(n,i,t))return n;n=n.parentNode}}function dm(t,e,i){var n=e.parentNode,o=t.getSize(n),s=t.getSize(e),r=i.x,a=r+s.w,l=i.y,c=l+s.h;return a>0&&r<o.w&&c>0&&l<o.h}var um,pm="start",fm="beforeStart",mm="drag",gm="stop",vm="katavorio-draggable",ym=function(){return!0},bm=function(){return!1},xm="katavorio-delegated-draggable",_m="katavorio-drag-no-select",wm="katavorio-ghost-proxy",km="katavorio-clone-drag";!function(t){t.absolutePosition="absolutePosition",t.transform="transform",t.xyAttributes="xyAttributes"}(um||(um={}));var Sm=new Map;Sm.set(um.absolutePosition,(function(t,e){t.style.left="".concat(e.x,"px"),t.style.top="".concat(e.y,"px")})),Sm.set(um.xyAttributes,(function(t,e){t.setAttribute("x","".concat(e.x)),t.setAttribute("y","".concat(e.y))}));var Cm=new Map;Cm.set(um.absolutePosition,(function(t){return{x:t.offsetLeft,y:t.offsetTop}})),Cm.set(um.xyAttributes,(function(t){return{x:parseFloat(t.getAttribute("x")),y:parseFloat(t.getAttribute("y"))}}));var Em=new Map;Em.set(um.absolutePosition,(function(t,e){t.style.width="".concat(e.w,"px"),t.style.height="".concat(e.h,"px")})),Em.set(um.xyAttributes,(function(t,e){t.setAttribute("width","".concat(e.w)),t.setAttribute("height","".concat(e.h))}));var Am=new Map;Am.set(um.absolutePosition,(function(t){return{w:t.offsetWidth,h:t.offsetHeight}})),Am.set(um.xyAttributes,(function(t){return{w:parseFloat(t.getAttribute("width")),h:parseFloat(t.getAttribute("height"))}}));var Mm,Tm=[gm,pm,mm,"drop","over","out",fm],Pm=function(){},Om=function(t,e){if(null!=t){t=Bd(t)||null!=t.tagName||null==t.length?[t]:t;for(var i=0;i<t.length;i++)e.apply(t[i],[t[i]])}},Dm=function(){function t(e,i){wd(this,t),this.el=e,this.manager=i,Cd(this,"_class",void 0),Cd(this,"uuid",su()),Cd(this,"enabled",!0),Cd(this,"scopes",[]),Cd(this,"eventManager",void 0),this.eventManager=i.eventManager}return Sd(t,[{key:"setEnabled",value:function(t){this.enabled=t}},{key:"isEnabled",value:function(){return this.enabled}},{key:"toggleEnabled",value:function(){this.enabled=!this.enabled}},{key:"addScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){e[t]=!0})),this.scopes.length=0,e)this.scopes.push(i)}},{key:"removeScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){delete e[t]})),this.scopes.length=0,e)this.scopes.push(i)}},{key:"toggleScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){e[t]?delete e[t]:e[t]=!0})),this.scopes.length=0,e)this.scopes.push(i)}}]),t}();!function(t){t.notNegative="notNegative",t.parent="parent",t.parentEnclosed="parentEnclosed"}(Mm||(Mm={}));var Im=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;if(wd(this,i),Cd(Td(s=e.call(this,t,o)),"_class",void 0),Cd(Td(s),"rightButtonCanDrag",void 0),Cd(Td(s),"consumeStartEvent",void 0),Cd(Td(s),"clone",void 0),Cd(Td(s),"scroll",void 0),Cd(Td(s),"trackScroll",void 0),Cd(Td(s),"_downAt",void 0),Cd(Td(s),"_posAtDown",void 0),Cd(Td(s),"_pagePosAtDown",void 0),Cd(Td(s),"_pageDelta",{x:0,y:0}),Cd(Td(s),"_moving",void 0),Cd(Td(s),"_lastPosition",void 0),Cd(Td(s),"_lastScrollValues",{x:0,y:0}),Cd(Td(s),"_initialScroll",{x:0,y:0}),Cd(Td(s),"_size",void 0),Cd(Td(s),"_currentParentPosition",void 0),Cd(Td(s),"_ghostParentPosition",void 0),Cd(Td(s),"_dragEl",void 0),Cd(Td(s),"_multipleDrop",void 0),Cd(Td(s),"_ghostProxyOffsets",void 0),Cd(Td(s),"_ghostDx",void 0),Cd(Td(s),"_ghostDy",void 0),Cd(Td(s),"_isConstrained",!1),Cd(Td(s),"_ghostProxyParent",void 0),Cd(Td(s),"_useGhostProxy",void 0),Cd(Td(s),"_ghostProxyFunction",void 0),Cd(Td(s),"_activeSelectorParams",void 0),Cd(Td(s),"_availableSelectors",[]),Cd(Td(s),"_canDrag",void 0),Cd(Td(s),"_consumeFilteredEvents",void 0),Cd(Td(s),"_parent",void 0),Cd(Td(s),"_ignoreZoom",void 0),Cd(Td(s),"_filters",{}),Cd(Td(s),"_constrainRect",void 0),Cd(Td(s),"_elementToDrag",void 0),Cd(Td(s),"downListener",void 0),Cd(Td(s),"moveListener",void 0),Cd(Td(s),"upListener",void 0),Cd(Td(s),"scrollTracker",void 0),Cd(Td(s),"listeners",{start:[],drag:[],stop:[],over:[],out:[],beforeStart:[],revert:[]}),s._class=s.manager.css.draggable,_u(s.el,s._class),s.downListener=s._downListener.bind(Td(s)),s.upListener=s._upListener.bind(Td(s)),s.moveListener=s._moveListener.bind(Td(s)),s.rightButtonCanDrag=!0===n.rightButtonCanDrag,s.consumeStartEvent=!1!==n.consumeStartEvent,s._dragEl=s.el,s.clone=!0===n.clone,s.scroll=!0===n.scroll,s.trackScroll=!1!==n.trackScroll,s._multipleDrop=!1!==n.multipleDrop,s._canDrag=n.canDrag||ym,s._consumeFilteredEvents=n.consumeFilteredEvents,s._parent=n.parent,s._ignoreZoom=!0===n.ignoreZoom,s._ghostProxyParent=n.ghostProxyParent,s.trackScroll&&(s.scrollTracker=s._trackScroll.bind(Td(s)),document.addEventListener("scroll",s.scrollTracker)),!0===n.ghostProxy?s._useGhostProxy=ym:n.ghostProxy&&"function"==typeof n.ghostProxy?s._useGhostProxy=n.ghostProxy:s._useGhostProxy=function(t,e){return!(!s._activeSelectorParams||!s._activeSelectorParams.useGhostProxy)&&s._activeSelectorParams.useGhostProxy(t,e)},n.makeGhostProxy?s._ghostProxyFunction=n.makeGhostProxy:s._ghostProxyFunction=function(t){return s._activeSelectorParams&&s._activeSelectorParams.makeGhostProxy?s._activeSelectorParams.makeGhostProxy(t):t.cloneNode(!0)},n.selector){var r=s.el.getAttribute(vm);null==r&&(r=""+(new Date).getTime(),s.el.setAttribute("katavorio-draggable",r)),s._availableSelectors.push(n)}return s.eventManager.on(s.el,zp,s.downListener),s}return Sd(i,[{key:"_trackScroll",value:function(t){if(this._moving){var e={x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop},i=e.x-this._lastScrollValues.x,n=e.y-this._lastScrollValues.y,o={x:i+this._lastPosition.x,y:n+this._lastPosition.y},s=o.x-this._downAt.x,r=o.y-this._downAt.y,a=this._ignoreZoom?1:this.manager.getZoom();this._dragEl&&this._dragEl.parentNode&&(s+=this._dragEl.parentNode.scrollLeft-this._initialScroll.x,r+=this._dragEl.parentNode.scrollTop-this._initialScroll.y),s/=a,r/=a,this.moveBy(s,r,t),this._lastPosition=o,this._lastScrollValues=e}}},{key:"on",value:function(t,e){this.listeners[t]&&this.listeners[t].push(e)}},{key:"off",value:function(t,e){if(this.listeners[t]){for(var i=[],n=0;n<this.listeners[t].length;n++)this.listeners[t][n]!==e&&i.push(this.listeners[t][n]);this.listeners[t]=i}}},{key:"_upListener",value:function(t){this._downAt&&(this._downAt=null,this.eventManager.off(document,Bp,this.moveListener),this.eventManager.off(document,jp,this.upListener),wu(document.body,_m),this.unmark(t),this.stop(t),this._moving=!1,this.clone?(this._dragEl&&this._dragEl.parentNode&&this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=null):this._activeSelectorParams&&this._activeSelectorParams.revertFunction&&!0===this._activeSelectorParams.revertFunction(this._dragEl,this.manager.getPosition(this._dragEl))&&(this.manager.setPosition(this._dragEl,this._posAtDown),this._dispatch(Hp,this._dragEl)))}},{key:"_downListener",value:function(t){if(!t.defaultPrevented&&((this.rightButtonCanDrag||3!==t.which&&2!==t.button)&&this.isEnabled()&&this._canDrag())){var e=this._testFilter(t)&&function(t,e,i){return!fu(t.srcElement||t.target,i.getInputFilterSelector(),e)}(t,this.el,this.manager);if(e){this._activeSelectorParams=null,this._elementToDrag=null,0===this._availableSelectors.length&&console.log("JSPLUMB: no available drag selectors");var i=t.target||t.srcElement,n=function(t,e,i){for(var n=null,o=e.getAttribute("katavorio-draggable"),s=null!=o?"[katavorio-draggable='"+o+"'] ":"",r=0;r<t.length;r++)if(null!=(n=hm(e,i,s+t[r].selector))){if(t[r].filter){var a=fu(i,t[r].filter,n);if(!0===t[r].filterExclude&&!a||a)return null}return[t[r],n]}return null}(this._availableSelectors,this.el,i);if(null!=n&&(this._activeSelectorParams=n[0],this._elementToDrag=n[1]),null==this._activeSelectorParams||null==this._elementToDrag)return;var o=this._activeSelectorParams.dragInit?this._activeSelectorParams.dragInit(this._elementToDrag,t):null;if(null!=o&&(this._elementToDrag=o),this.clone)if(this._dragEl=this._elementToDrag.cloneNode(!0),_u(this._dragEl,km),this._dragEl.setAttribute("id",null),this._dragEl.style.position="absolute",null!=this._parent){var s=this.manager.getPosition(this.el);this._dragEl.style.left=s.x+"px",this._dragEl.style.top=s.y+"px",this._parent.appendChild(this._dragEl)}else{var r=Cu(this._elementToDrag);this._dragEl.style.left=r.x+"px",this._dragEl.style.top=r.y+"px",document.body.appendChild(this._dragEl)}else this._dragEl=this._elementToDrag;this.consumeStartEvent&&mu(t),this._downAt=qf(t),this._dragEl&&this._dragEl.parentNode&&(this._initialScroll={x:this._dragEl.parentNode.scrollLeft,y:this._dragEl.parentNode.scrollTop}),this._posAtDown=this.manager.getPosition(this._dragEl),this._pagePosAtDown=Cu(this._dragEl),this._pageDelta={x:this._pagePosAtDown.x-this._posAtDown.x,y:this._pagePosAtDown.y-this._posAtDown.y},this._size=this.manager.getSize(this._dragEl),this.eventManager.on(document,Bp,this.moveListener),this.eventManager.on(document,jp,this.upListener),_u(document.body,_m),this._dispatch(fm,{el:this.el,pos:this._posAtDown,e:t,drag:this,size:this._size})}else this._consumeFilteredEvents&&mu(t)}}},{key:"_moveListener",value:function(t){if(this._downAt){if(!this._moving){var e=this._dispatch(pm,{el:this.el,pos:this._posAtDown,e:t,drag:this,size:this._size});if(!1!==e){if(!this._downAt)return;this.mark(e),this._moving=!0}else this.abort()}if(this._downAt){var i=qf(t),n=i.x-this._downAt.x,o=i.y-this._downAt.y,s=this._ignoreZoom?1:this.manager.getZoom();this._lastPosition={x:i.x,y:i.y},this._lastScrollValues={x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop},this._dragEl&&this._dragEl.parentNode&&(n+=this._dragEl.parentNode.scrollLeft-this._initialScroll.x,o+=this._dragEl.parentNode.scrollTop-this._initialScroll.y),n/=s,o/=s,this.moveBy(n,o,t)}}}},{key:"getDragDelta",value:function(){return null!=this._posAtDown&&null!=this._downAt?{x:this._downAt.x-this._posAtDown.x,y:this._downAt.y-this._posAtDown.y}:{x:0,y:0}}},{key:"mark",value:function(t){var e;this._posAtDown=this.manager.getPosition(this._dragEl),this._pagePosAtDown=Cu(this._dragEl),this._pageDelta={x:this._pagePosAtDown.x-this._posAtDown.x,y:this._pagePosAtDown.y-this._posAtDown.y},this._size=this.manager.getSize(this._dragEl),_u(this._dragEl,this.manager.css.drag),this._constrainRect={w:(e=this._dragEl).parentNode.offsetWidth+e.parentNode.scrollLeft,h:e.parentNode.offsetHeight+e.parentNode.scrollTop},this._ghostDx=0,this._ghostDy=0}},{key:"unmark",value:function(t){this._isConstrained&&this._useGhostProxy(this._elementToDrag,this._dragEl)?(this._ghostProxyOffsets={x:this._dragEl.offsetLeft-this._ghostDx,y:this._dragEl.offsetTop-this._ghostDy},this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=this._elementToDrag):this._ghostProxyOffsets=null,wu(this._dragEl,this.manager.css.drag),this._isConstrained=!1}},{key:"moveBy",value:function(t,e,i){var n=this.toGrid({x:this._posAtDown.x+t,y:this._posAtDown.y+e}),o=this._doConstrain(n,this._dragEl,this._constrainRect,this._size,i);if(null!=o){if(this._useGhostProxy(this.el,this._dragEl))if(n.x!==o.x||n.y!==o.y){if(!this._isConstrained){var s=this._ghostProxyFunction(this._elementToDrag);_u(s,wm),this._ghostProxyParent?(this._ghostProxyParent.appendChild(s),this._currentParentPosition=Cu(this._elementToDrag.parentNode),this._ghostParentPosition=Cu(this._ghostProxyParent),this._ghostDx=this._currentParentPosition.x-this._ghostParentPosition.x,this._ghostDy=this._currentParentPosition.y-this._ghostParentPosition.y):this._elementToDrag.parentNode.appendChild(s),this._dragEl=s,this._isConstrained=!0}o=n}else this._isConstrained&&(this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=this._elementToDrag,this._isConstrained=!1,this._currentParentPosition=null,this._ghostParentPosition=null,this._ghostDx=0,this._ghostDy=0);this.manager.setPosition(this._dragEl,{x:o.x+this._ghostDx,y:o.y+this._ghostDy}),this._dispatch(mm,{el:this.el,pos:o,e:i,drag:this,size:this._size,originalPos:this._posAtDown})}}},{key:"abort",value:function(){null!=this._downAt&&this._upListener()}},{key:"getDragElement",value:function(t){return t?this._elementToDrag||this.el:this._dragEl||this.el}},{key:"stop",value:function(t,e){if(e||this._moving){var i=[],n=this.manager.getPosition(this._dragEl);i.push([this._dragEl,n,this,this._size]),this._dispatch(gm,{el:this._dragEl,pos:this._ghostProxyOffsets||n,finalPos:n,e:t,drag:this,selection:i,size:this._size,originalPos:{x:this._posAtDown.x,y:this._posAtDown.y}})}else this._moving||this._activeSelectorParams.dragAbort&&this._activeSelectorParams.dragAbort(this._elementToDrag)}},{key:"_dispatch",value:function(t,e){var i=null;if(this._activeSelectorParams&&this._activeSelectorParams[t])i=this._activeSelectorParams[t](e);else if(this.listeners[t])for(var n=0;n<this.listeners[t].length;n++)try{var o=this.listeners[t][n](e);null!=o&&(i=o)}catch(t){}return i}},{key:"resolveGrid",value:function(){var t={grid:null,thresholdX:5,thresholdY:5};return null!=this._activeSelectorParams&&null!=this._activeSelectorParams.grid&&(t.grid=this._activeSelectorParams.grid,null!=this._activeSelectorParams.snapThreshold&&(t.thresholdX=this._activeSelectorParams.snapThreshold,t.thresholdY=this._activeSelectorParams.snapThreshold)),t}},{key:"toGrid",value:function(t){var e=this.resolveGrid(),i=e.grid,n=e.thresholdX,o=e.thresholdY;return null==i?t:function(t,e,i,n){i=null==i?null==e.thresholdX?e.w/2:e.thresholdX:i,n=null==n?null==e.thresholdY?e.h/2:e.thresholdY:n;var o=Math.floor(t.x/e.w),s=e.w*o,r=s+e.w,a=Math.abs(t.x-s)<=i?s:Math.abs(r-t.x)<=i?r:t.x,l=Math.floor(t.y/e.h),c=e.h*l,h=c+e.h;return{x:a,y:Math.abs(t.y-c)<=n?c:Math.abs(h-t.y)<=n?h:t.y}}(t,i,i?i.w/2:n,i?i.h/2:o)}},{key:"setUseGhostProxy",value:function(t){this._useGhostProxy=t?ym:bm}},{key:"_doConstrain",value:function(t,e,i,n,o){return null!=this._activeSelectorParams&&this._activeSelectorParams.constrainFunction&&"function"==typeof this._activeSelectorParams.constrainFunction?this._activeSelectorParams.constrainFunction(t,e,i,n,o):t}},{key:"_testFilter",value:function(t){for(var e in this._filters){var i=this._filters[e],n=i[0](t);if(i[1]&&(n=!n),!n)return!1}return!0}},{key:"addFilter",value:function(t,e){var i,n=this;if(t){var o="function"==typeof(i=t)?(i._katavorioId=su(),i._katavorioId):i;this._filters[o]=[function(e){var i,o=e.srcElement||e.target;return Bd(t)?i=fu(o,t,n.el):"function"==typeof t&&(i=t(e,n.el)),i},!1!==e]}}},{key:"removeFilter",value:function(t){var e="function"==typeof t?t._katavorioId:t;delete this._filters[e]}},{key:"clearAllFilters",value:function(){this._filters={}}},{key:"addSelector",value:function(t,e){t.selector&&(e?this._availableSelectors.unshift(t):this._availableSelectors.push(t))}},{key:"destroy",value:function(){this.eventManager.off(this.el,zp,this.downListener),this.eventManager.off(document,Bp,this.moveListener),this.eventManager.off(document,jp,this.upListener),this.downListener=null,this.upListener=null,this.moveListener=null,null!=this.scrollTracker&&document.removeEventListener("scroll",this.scrollTracker)}}]),i}(Dm),Lm=["input","textarea","select","button","option"].join(","),$m=function(){function t(e){wd(this,t),Cd(this,"eventManager",void 0),Cd(this,"zoom",1),Cd(this,"css",{}),Cd(this,"inputFilterSelector",void 0),Cd(this,"positioningStrategy",void 0),Cd(this,"_positionSetter",void 0),Cd(this,"_positionGetter",void 0),Cd(this,"_sizeSetter",void 0),Cd(this,"_sizeGetter",void 0),e=e||{},this.inputFilterSelector=e.inputFilterSelector||Lm,this.eventManager=new em,this.zoom=e.zoom||1,this.positioningStrategy=e.positioningStrategy||um.absolutePosition,this._positionGetter=Cm.get(this.positioningStrategy),this._positionSetter=Sm.get(this.positioningStrategy),this._sizeGetter=Am.get(this.positioningStrategy),this._sizeSetter=Em.get(this.positioningStrategy);var i=e.css||{};Rd(this.css,i)}return Sd(t,[{key:"getPosition",value:function(t){return this._positionGetter(t)}},{key:"setPosition",value:function(t,e){this._positionSetter(t,e)}},{key:"getSize",value:function(t){return this._sizeGetter(t)}},{key:"getZoom",value:function(){return this.zoom}},{key:"setZoom",value:function(t){this.zoom=t}},{key:"_prepareParams",value:function(t){t=t||{};var e,i={events:{}};for(e in t)i[e]=t[e];for(e=0;e<Tm.length;e++)i.events[Tm[e]]=t[Tm[e]]||Pm;return i}},{key:"getInputFilterSelector",value:function(){return this.inputFilterSelector}},{key:"setInputFilterSelector",value:function(t){return this.inputFilterSelector=t,this}},{key:"draggable",value:function(t,e){if(null==t._katavorioDrag){var i=this._prepareParams(e),n=new Im(t,i,this);return _u(t,xm),t._katavorioDrag=n,n}return t._katavorioDrag}},{key:"destroyDraggable",value:function(t){t._katavorioDrag&&(t._katavorioDrag.destroy(),delete t._katavorioDrag)}}]),t}(),zm="jtk-drag-selected",Rm=function(){function t(e){wd(this,t),this.instance=e,Cd(this,"_dragSelection",[]),Cd(this,"_dragSizes",new Map),Cd(this,"_dragElements",new Map),Cd(this,"_dragElementStartPositions",new Map),Cd(this,"_dragElementPositions",new Map),Cd(this,"__activeSet",void 0)}return Sd(t,[{key:"_activeSet",get:function(){return null==this.__activeSet?this._dragSelection:this.__activeSet}},{key:"length",get:function(){return this._dragSelection.length}},{key:"filterActiveSet",value:function(t){var e=this;this.__activeSet=[],Gd(this._dragSelection,(function(i){t(i)&&e.__activeSet.push(i)}))}},{key:"clear",value:function(){var t=this;this.reset(),Gd(this._dragSelection,(function(e){return t.instance.removeClass(e.jel,zm)})),this._dragSelection.length=0}},{key:"reset",value:function(){this._dragElementStartPositions.clear(),this._dragElementPositions.clear(),this._dragSizes.clear(),this._dragElements.clear(),this.__activeSet=null}},{key:"initialisePositions",value:function(){var t=this;Gd(this._activeSet,(function(e){var i=t.instance.viewport.getPosition(e.id),n={x:parseInt(""+e.jel.offsetLeft,10),y:parseInt(""+e.jel.offsetTop,10)};t._dragElementStartPositions.set(e.id,n),t._dragElementPositions.set(e.id,n),t._dragSizes.set(e.id,{w:i.w,h:i.h})}))}},{key:"updatePositions",value:function(t,e,i){var n=this,o=t.x-e.x,s=t.y-e.y;Gd(this._activeSet,(function(t){var e=n._dragElementStartPositions.get(t.id);if(e){var r=e.x+o,a=e.y+s,l=n._dragSizes.get(t.id),c={x:r,y:a,w:l.w,h:l.h};if(t.jel._jsPlumbParentGroup&&t.jel._jsPlumbParentGroup.constrain){var h={w:t.jel.parentNode.offsetWidth+t.jel.parentNode.scrollLeft,h:t.jel.parentNode.offsetHeight+t.jel.parentNode.scrollTop};c.x=Math.max(c.x,0),c.y=Math.max(c.y,0),c.x=Math.min(c.x,h.w-l.w),c.y=Math.min(c.y,h.h-l.h)}n._dragElementPositions.set(t.id,{x:r,y:a}),t.jel.style.left=c.x+"px",t.jel.style.top=c.y+"px",i(t.jel,t.id,l,c)}}))}},{key:"each",value:function(t){var e=this;Gd(this._activeSet,(function(i){var n=e._dragSizes.get(i.id),o=e._dragElementPositions.get(i.id),s=e._dragElementStartPositions.get(i.id);t(i.jel,i.id,o,n,s)}))}},{key:"add",value:function(t,e){var i=t;e=e||this.instance.getId(i);var n=Zd(this._dragSelection,(function(t){return t.id===e}));-1===n&&(this.instance.addClass(t,zm),this._dragSelection.push({id:e,jel:i}))}},{key:"remove",value:function(t){var e=this,i=t;this._dragSelection=this._dragSelection.filter((function(t){var n=t.jel!==i;return n||e.instance.removeClass(t.jel,zm),n}))}},{key:"toggle",value:function(t){var e=t,i=Zd(this._dragSelection,(function(t){return t.jel===e}));-1!==i?this.remove(e):this.add(t)}}]),t}(),Nm="jtk-drag-active",Bm="jtk-drag-hover",jm=function(){function t(e,i,n){var o=this;wd(this,t),this.instance=e,this.dragSelection=i,Cd(this,"collicat",void 0),Cd(this,"drag",void 0),Cd(this,"_draggables",{}),Cd(this,"_dlist",[]),Cd(this,"_elementsWithEndpoints",{}),Cd(this,"_draggablesForElements",{}),Cd(this,"handlers",[]),Cd(this,"_trackScroll",void 0),Cd(this,"_filtersToAdd",[]),this.collicat=new $m({zoom:this.instance.currentZoom,css:{noSelect:this.instance.dragSelectClass,delegatedDraggable:"jtk-delegated-draggable",draggable:"jtk-draggable",drag:"jtk-drag",selected:zm,active:Nm,hover:Bm,ghostProxy:"jtk-ghost-proxy"}}),this.instance.bind(np,(function(t){o.collicat.setZoom(t)})),n=n||{},this._trackScroll=!1!==n.trackScroll}return Sd(t,[{key:"addHandler",value:function(t,e){var i=this,n=Rd({selector:t.selector},e||{});n.start=du(n.start,(function(e){return t.onStart(e)}),!1),n.drag=du(n.drag,(function(e){return t.onDrag(e)})),n.stop=du(n.stop,(function(e){return t.onStop(e)}));var o=(t.onBeforeStart||function(t){}).bind(t);if(n.beforeStart=du(n.beforeStart,(function(t){return o(t)})),n.dragInit=function(e,i){return t.onDragInit(e,i)},n.dragAbort=function(e){return t.onDragAbort(e)},t.useGhostProxy&&(n.useGhostProxy=t.useGhostProxy,n.makeGhostProxy=t.makeGhostProxy),null==n.constrainFunction&&null!=n.containment)switch(n.containment){case Mm.notNegative:n.constrainFunction=function(t,e,i,n){return{x:Math.max(0,Math.min(t.x)),y:Math.max(0,Math.min(t.y))}};break;case Mm.parent:var s=n.containmentPadding||5;n.constrainFunction=function(t,e,i,n){return{x:t.x<0?0:t.x>i.w-s?i.w-s:t.x,y:t.y<0?0:t.y>i.h-s?i.h-s:t.y}};break;case Mm.parentEnclosed:n.constrainFunction=function(t,e,i,n){return{x:t.x<0?0:t.x+n.w>i.w?i.w-n.w:t.x,y:t.y<0?0:t.y+n.h>i.h?i.h-n.h:t.y}}}null==this.drag?(n.trackScroll=this._trackScroll,this.drag=this.collicat.draggable(this.instance.getContainer(),n),Gd(this._filtersToAdd,(function(t){return i.drag.addFilter(t[0],t[1])})),this.drag.on(Hp,(function(t){i.instance.revalidate(t)}))):this.drag.addSelector(n),this.handlers.push({handler:t,options:n}),t.init(this.drag)}},{key:"addSelector",value:function(t,e){this.drag&&this.drag.addSelector(t,e)}},{key:"addFilter",value:function(t,e){null==this.drag?this._filtersToAdd.push([t,!0===e]):this.drag.addFilter(t,e)}},{key:"removeFilter",value:function(t){null!=this.drag&&this.drag.removeFilter(t)}},{key:"setFilters",value:function(t){var e=this;Gd(t,(function(t){e.drag.addFilter(t[0],t[1])}))}},{key:"reset",value:function(){var t=[];if(Gd(this.handlers,(function(t){t.handler.reset()})),this.handlers.length=0,null!=this.drag){var e=this.drag._filters;for(var i in e)t.push([i,e[i][1]]);this.collicat.destroyDraggable(this.instance.getContainer())}return delete this.drag,t}},{key:"setOption",value:function(t,e){var i=Yd(this.handlers,(function(e){return e.handler===t}));null!=i&&Rd(i.options,e||{})}}]),t}();var Fm,qm,Vm,Hm,Um=function(){function t(e,i){wd(this,t),this.instance=e,this._dragSelection=i,Cd(this,"selector","> "+ap+":not("+Tu(Zu)+")"),Cd(this,"_dragOffset",null),Cd(this,"_groupLocations",[]),Cd(this,"_intersectingGroups",[]),Cd(this,"_currentDragParentGroup",null),Cd(this,"_dragGroupByElementIdMap",{}),Cd(this,"_dragGroupMap",{}),Cd(this,"_currentDragGroup",null),Cd(this,"_currentDragGroupOffsets",new Map),Cd(this,"_currentDragGroupSizes",new Map),Cd(this,"_currentDragGroupOriginalPositions",new Map),Cd(this,"_dragPayload",null),Cd(this,"drag",void 0),Cd(this,"originalPosition",void 0)}return Sd(t,[{key:"onDragInit",value:function(t){return null}},{key:"onDragAbort",value:function(t){return null}},{key:"getDropGroup",value:function(){var t=null;if(this._intersectingGroups.length>0){var e=this._intersectingGroups[0].groupLoc.group,i=this._intersectingGroups[0].intersectingElement,n=i._jsPlumbParentGroup;n!==e&&(null!=n&&n.overrideDrop(i,e)||(t=this._intersectingGroups[0]))}return t}},{key:"onStop",value:function(t){var e,i=this,n=t.drag.getDragElement(),o=this.getDropGroup(),s=[];function r(t,e,i,n,r){var a=i.x,l=i.y;if(t._jsPlumbParentGroup&&t._jsPlumbParentGroup.constrain){var c={w:t.parentNode.offsetWidth+t.parentNode.scrollLeft,h:t.parentNode.offsetHeight+t.parentNode.scrollTop};a=Math.max(a,0),l=Math.max(l,0),a=Math.min(a,c.w-n.w),l=Math.min(l,c.h-n.h),i.x=a,i.y=l}s.push({el:t,id:e,pos:i,originalPos:r,originalGroup:t._jsPlumbParentGroup,redrawResult:null,reverted:!1,dropGroup:null==o?void 0:o.groupLoc.group})}if(s.push({el:n,id:this.instance.getId(n),pos:t.finalPos,originalGroup:n._jsPlumbParentGroup,redrawResult:null,originalPos:t.originalPos,reverted:!1,dropGroup:null!=o?o.groupLoc.group:null}),this._dragSelection.each((function(e,i,n,o,s){e!==t.el&&r(e,i,{x:n.x,y:n.y},o,s)})),null===(e=this._currentDragGroup)||void 0===e||e.members.forEach((function(e){if(e.el!==t.el){var n=i._currentDragGroupOffsets.get(e.elId),o=i._currentDragGroupSizes.get(e.elId),s={x:t.finalPos.x+n[0].x,y:t.finalPos.y+n[0].y};r(e.el,e.elId,s,o,i._currentDragGroupOriginalPositions.get(e.elId))}})),Gd(s,(function(t){var e=null!=t.originalGroup,n=e&&dm(i.instance,t.el,t.pos),s={x:0,y:0};if(e&&!n){if(null==o){var r=i._pruneOrOrphan(t,!0,!0);null!=r.pos?t.pos=r.pos.pos:!r.pruned&&t.originalGroup.revert&&(t.pos=t.originalPos,t.reverted=!0)}}else e&&n&&(s=i._computeOffsetByParentGroup(t.originalGroup));null==o||n?t.dropGroup=null:i.instance.groupManager.addToGroup(o.groupLoc.group,!1,t.el),t.reverted&&i.instance.setPosition(t.el,t.pos),t.redrawResult=i.instance.setElementPosition(t.el,t.pos.x+s.x,t.pos.y+s.y),i.instance.removeClass(t.el,"jtk-dragged"),i.instance.select({source:t.el}).removeClass(i.instance.elementDraggingClass+" "+i.instance.sourceElementDraggingClass,!0),i.instance.select({target:t.el}).removeClass(i.instance.elementDraggingClass+" "+i.instance.targetElementDraggingClass,!0)})),null!=s[0].originalGroup){var a=n._jsPlumbParentGroup;if(a!==s[0].originalGroup){var l=t.drag.getDragElement(!0);if(s[0].originalGroup.ghost){var c=this.instance.getPosition(this.instance.getGroupContentArea(a)),h=this.instance.getPosition(this.instance.getGroupContentArea(s[0].originalGroup)),d={x:h.x+t.pos.x-c.x,y:h.y+t.pos.y-c.y};l.style.left=d.x+"px",l.style.top=d.y+"px",this.instance.revalidate(l)}}}this.instance.fire("drag:stop",{elements:s,e:t.e,el:n,payload:this._dragPayload}),this._cleanup()}},{key:"_cleanup",value:function(){var t=this;Gd(this._groupLocations,(function(e){t.instance.removeClass(e.el,Nm),t.instance.removeClass(e.el,Bm)})),this._currentDragParentGroup=null,this._groupLocations.length=0,this.instance.hoverSuspended=!1,this._dragOffset=null,this._dragSelection.reset(),this._dragPayload=null,this._currentDragGroupOffsets.clear(),this._currentDragGroupSizes.clear(),this._currentDragGroupOriginalPositions.clear(),this._currentDragGroup=null}},{key:"reset",value:function(){}},{key:"init",value:function(t){this.drag=t}},{key:"onDrag",value:function(t){var e=this,i=t.drag.getDragElement(),n=this.instance.getId(i),o=t.pos,s=this.instance.viewport.getPosition(n),r={x:o.x,y:o.y};this._intersectingGroups.length=0,null!=this._dragOffset&&(r.x+=this._dragOffset.x,r.y+=this._dragOffset.y);var a=function(i,n,o){if(o){var s=new Set;Gd(e._groupLocations,(function(i){!s.has(i.group.id)&&lm(n,i.r)?(i.group!==e._currentDragParentGroup&&e.instance.addClass(i.el,Bm),e._intersectingGroups.push({groupLoc:i,intersectingElement:t.drag.getDragElement(!0),d:0}),Gd(e.instance.groupManager.getAncestors(i.group),(function(t){return s.add(t.id)}))):e.instance.removeClass(i.el,Bm)}))}e.instance.setElementPosition(i,n.x,n.y),e.instance.fire("drag:move",{el:i,e:t.e,pos:{x:n.x,y:n.y},originalPosition:e.originalPosition,payload:e._dragPayload})},l={x:r.x,y:r.y,w:s.w,h:s.h};a(i,l,!0),this._dragSelection.updatePositions(o,this.originalPosition,(function(t,e,i,n){a(t,n,!1)})),this._currentDragGroupOffsets.forEach((function(t,i){var n=e._currentDragGroupSizes.get(i),o={x:l.x+t[0].x,y:l.y+t[0].y,w:n.w,h:n.h};t[1].style.left=o.x+"px",t[1].style.top=o.y+"px",a(t[1],o,!1)}))}},{key:"_computeOffsetByParentGroup",value:function(t){var e=this.instance.getPosition(t.el),i=t.contentArea;if(i!==t.el){var n=this.instance.getPosition(i);e.x+=n.x,e.y+=n.y}if(t.el._jsPlumbParentGroup){var o=this._computeOffsetByParentGroup(t.el._jsPlumbParentGroup);e.x+=o.x,e.y+=o.y}return e}},{key:"onStart",value:function(t){var e=this,i=t.drag.getDragElement(),n=this.instance.getPosition(i);this.originalPosition={x:t.pos.x,y:t.pos.y},i._jsPlumbParentGroup&&(this._dragOffset=this._computeOffsetByParentGroup(i._jsPlumbParentGroup),this._currentDragParentGroup=i._jsPlumbParentGroup);var o=!0,s=i.getAttribute(Bu);if((!1===this.instance.elementsDraggable||null!=s&&s!==Pf)&&(o=!1),o){this._groupLocations.length=0,this._intersectingGroups.length=0,this.instance.hoverSuspended=!0;var r=t.drag.getDragElement(!0),a=r.querySelectorAll(ap),l=function(t){for(var e=[],i=t._jsPlumbParentGroup;null!=i;)e.push(i.el),i=i.group;return e}(r),c=[];Array.prototype.push.apply(c,a),Array.prototype.push.apply(c,l),this._dragSelection.filterActiveSet((function(t){return-1===c.indexOf(t.jel)})),this._dragSelection.initialisePositions();var h=function(i,n,o){if(!i._isJsPlumbGroup||e.instance.allowNestedGroups){var s=!i._jsPlumbParentGroup,r=s||!0!==i._jsPlumbParentGroup.dropOverride,a=!s&&(i._jsPlumbParentGroup.ghost||!0!==i._jsPlumbParentGroup.constrain);(s||r&&a)&&(Gd(e.instance.groupManager.getGroups(),(function(t){var n=i._jsPlumbGroup;if(!1!==t.droppable&&!1!==t.enabled&&i._jsPlumbGroup!==t&&!e.instance.groupManager.isDescendant(t,n)){var o=t.el,s=e.instance.getId(o),r=e.instance.viewport.getPosition(s),a={el:o,r:{x:r.x,y:r.y,w:r.w,h:r.h},group:t};e._groupLocations.push(a),t!==e._currentDragParentGroup&&e.instance.addClass(o,Nm)}})),e._groupLocations.sort((function(t,i){return e.instance.groupManager.isDescendant(t.group,i.group)?-1:e.instance.groupManager.isAncestor(i.group,t.group)?1:0})))}return e.instance.select({source:i}).addClass(e.instance.elementDraggingClass+" "+e.instance.sourceElementDraggingClass,!0),e.instance.select({target:i}).addClass(e.instance.elementDraggingClass+" "+e.instance.targetElementDraggingClass,!0),e.instance.fire("drag:start",{el:i,e:t.e,originalPosition:e.originalPosition,pos:e.originalPosition,dragGroup:n,dragGroupMemberSpec:o})},d=this.instance.getId(i);this._currentDragGroup=this._dragGroupByElementIdMap[d],this._currentDragGroup&&!function(t,e){var i=Xd(t.members,(function(t){return t.el===e}));return null!==i&&!0===i.active}(this._currentDragGroup,i)&&(this._currentDragGroup=null);var u=h(i);if(!1===u)return this._cleanup(),!1;this._dragPayload=u,null!=this._currentDragGroup&&(this._currentDragGroupOffsets.clear(),this._currentDragGroupSizes.clear(),this._currentDragGroup.members.forEach((function(t){var i=e.instance.viewport.getPosition(t.elId);e._currentDragGroupOffsets.set(t.elId,[{x:i.x-n.x,y:i.y-n.y},t.el]),e._currentDragGroupSizes.set(t.elId,i),e._currentDragGroupOriginalPositions.set(t.elId,{x:i.x,y:i.y}),h(t.el,e._currentDragGroup,t)})))}return o}},{key:"addToDragGroup",value:function(t){var e=this,i=function(t,e){return Bd(e)?{id:e,active:!0}:{id:e.id,active:e.active}}(this.instance,t),n=this._dragGroupMap[i.id];null==n&&(n={id:i.id,members:new Set},this._dragGroupMap[i.id]=n);for(var o=arguments.length,s=new Array(o>1?o-1:0),r=1;r<o;r++)s[r-1]=arguments[r];this.removeFromDragGroup.apply(this,s),Gd(s,(function(t){var o=e.instance.getId(t);n.members.add({elId:o,el:t,active:i.active}),e._dragGroupByElementIdMap[o]=n}))}},{key:"removeFromDragGroup",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){var i=t.instance.getId(e),n=t._dragGroupByElementIdMap[i];if(null!=n){var o=new Set;n.members.forEach((function(t){t.el!==e&&o.add(t)})),n.members=o,delete t._dragGroupByElementIdMap[i]}}))}},{key:"setDragGroupState",value:function(t){for(var e=this,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];Gd(n.map((function(t){return e.instance.getId(t)})),(function(i){var n=e._dragGroupByElementIdMap[i];if(null!=n){var o=Xd(n.members,(function(t){return t.elId===i}));null!=o&&(o.active=t)}}))}},{key:"clearDragGroup",value:function(t){var e=this,i=this._dragGroupMap[t];null!=i&&(i.members.forEach((function(t){delete e._dragGroupByElementIdMap[t.elId]})),i.members.clear())}},{key:"_pruneOrOrphan",value:function(t,e,i){var n=t.el,o={pruned:!1,pos:null};if(i||!dm(this.instance,n,t.pos)){var s=n._jsPlumbParentGroup;s.prune?(n._isJsPlumbGroup?this.instance.removeGroup(n._jsPlumbGroup):s.remove(t.el,!0),o.pruned=!0):s.orphan&&(o.pos=this.instance.groupManager.orphan(t.el,e),n._isJsPlumbGroup?s.removeGroup(n._jsPlumbGroup):s.remove(t.el))}return o}}]),t}(),Wm={},Gm={},Zm={},Ym={get:function(t,e,i){var n=Wm[e];if(n)return new n(t,i);throw{message:"jsPlumb: unknown endpoint type '"+e+"'"}},clone:function(t){var e=Zm[t.type];return Ym.get(t.endpoint,t.type,e.getParams(t))},compute:function(t,e,i,n){var o=Gm[t.type];if(null!=o)return o(t,e,i,n);cu("jsPlumb: cannot find endpoint calculator for endpoint of type ",t.type)},registerHandler:function(t){Zm[t.type]=t,Wm[t.type]=t.cls,Gm[t.type]=t.compute}},Xm=function(){function t(e,i){wd(this,t),this.endpoint=e,Cd(this,"typeId",void 0),Cd(this,"x",void 0),Cd(this,"y",void 0),Cd(this,"w",void 0),Cd(this,"h",void 0),Cd(this,"computedValue",void 0),Cd(this,"bounds",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"classes",[]),Cd(this,"instance",void 0),Cd(this,"type",void 0),i=i||{},this.instance=e.instance,e.cssClass&&this.classes.push(e.cssClass),i.cssClass&&this.classes.push(i.cssClass)}return Sd(t,[{key:"addClass",value:function(t){this.classes.push(t),this.instance.addEndpointClass(this.endpoint,t)}},{key:"removeClass",value:function(t){this.classes=this.classes.filter((function(e){return e!==t})),this.instance.removeEndpointClass(this.endpoint,t)}},{key:"compute",value:function(t,e,i){this.computedValue=Ym.compute(this,t,e,i),this.bounds.xmin=this.x,this.bounds.ymin=this.y,this.bounds.xmax=this.x+this.w,this.bounds.ymax=this.y+this.h}},{key:"setVisible",value:function(t){this.instance.setEndpointVisible(this.endpoint,t)}}]),t}();!function(t){t.top="top",t.left="left",t.right="right",t.bottom="bottom"}(Hm||(Hm={}));var Km=Hm.top,Qm=Hm.left,Jm=Hm.right,tg=Hm.bottom,eg=[Qm,Jm],ig=[Km,tg],ng=function(){function t(e,i,n){wd(this,t),this.instance=e,this.element=i,Cd(this,"isFloating",!0),Cd(this,"isContinuous",void 0),Cd(this,"isDynamic",void 0),Cd(this,"locations",[]),Cd(this,"currentLocation",0),Cd(this,"locked",!1),Cd(this,"cssClass",""),Cd(this,"timestamp",null),Cd(this,"type","Floating"),Cd(this,"id",su()),Cd(this,"orientation",[0,0]),Cd(this,"size",void 0),this.size=e.viewport.getPosition(n),this.locations.push({x:.5,y:.5,ox:this.orientation[0],oy:this.orientation[1],offx:0,offy:0,iox:this.orientation[0],ioy:this.orientation[1],cls:""})}return Sd(t,[{key:"_updateOrientationInRouter",value:function(){this.instance.router.setAnchorOrientation(this,[this.locations[0].ox,this.locations[0].oy])}},{key:"over",value:function(t){this.orientation=this.instance.router.getEndpointOrientation(t),this.locations[0].ox=this.orientation[0],this.locations[0].oy=this.orientation[1],this._updateOrientationInRouter()}},{key:"out",value:function(){this.orientation=null,this.locations[0].ox=this.locations[0].iox,this.locations[0].oy=this.locations[0].ioy,this._updateOrientationInRouter()}}]),t}(),og=(Cd(Fm={},Km,tg),Cd(Fm,Jm,Qm),Cd(Fm,Qm,Jm),Cd(Fm,tg,Km),Fm),sg=(Cd(qm={},Km,Jm),Cd(qm,Jm,tg),Cd(qm,Qm,Km),Cd(qm,tg,Qm),qm),rg=(Cd(Vm={},Km,Qm),Cd(Vm,Jm,Km),Cd(Vm,Qm,tg),Cd(Vm,tg,Jm),Vm);function ag(t){return 0===t.faces.length?Km:t.faces[0]}function lg(t,e){return-1!==t.faces.indexOf(e)}function cg(t,e){return null==t.lockedAxis?null==t.lockedFace?!0===lg(t,e):t.lockedFace===e:-1!==t.lockedAxis.indexOf(e)}function hg(t,e){if(lg(t,e))return e;if(lg(t,og[e]))return og[e];var i=function(t,e){return(t.clockwise?sg:rg)[e]}(t,e);if(lg(t,i))return i;var n=function(t,e){return(t.clockwise?rg:sg)[e]}(t,e);return lg(t,n)?n:e}var dg={x:.5,y:0,ox:0,oy:-1,offx:0,offy:0},ug={x:.5,y:1,ox:0,oy:1,offx:0,offy:0},pg={x:0,y:.5,ox:-1,oy:0,offx:0,offy:0},fg={x:1,y:.5,ox:1,oy:0,offx:0,offy:0},mg={Top:[dg],Bottom:[ug],Left:[pg],Right:[fg],TopLeft:[{x:0,y:0,ox:0,oy:-1,offx:0,offy:0}],TopRight:[{x:1,y:0,ox:1,oy:-1,offx:0,offy:0}],BottomLeft:[{x:0,y:1,ox:0,oy:1,offx:0,offy:0}],BottomRight:[{x:1,y:1,ox:0,oy:1,offx:0,offy:0}],Center:[{x:.5,y:.5,ox:0,oy:0,offx:0,offy:0}],AutoDefault:[dg,pg,ug,fg]},gg={Continuous:{faces:[Km,Qm,tg,Jm]},ContinuousTop:{faces:[Km]},ContinuousRight:{faces:[Jm]},ContinuousBottom:{faces:[tg]},ContinuousLeft:{faces:[Qm]},ContinuousLeftRight:{faces:[Qm,Jm]},ContinuousTopBottom:{faces:[Km,tg]}};function vg(t,e){if(e=e||{},t===Cp.Perimeter)return function(t){t=t||{};var e=t.anchorCount||60,i=t.shape;if(!i)throw new Error("no shape supplied to Perimeter Anchor type");if(!Cg.has(i))throw new Error("Shape ["+i+"] is unknown by Perimeter Anchor type");var n=Cg.get(i)(e);t.rotation&&(n=function(t,e){for(var i=[],n=e/180*Math.PI,o=0;o<t.length;o++){var s=t[o].x-.5,r=t[o].y-.5;i.push({x:s*Math.cos(n)-r*Math.sin(n)+.5,y:s*Math.sin(n)+r*Math.cos(n)+.5,ox:t[o].ox,oy:t[o].oy,offx:0,offy:0,iox:0,ioy:0,cls:""})}return i}(n,t.rotation));var o=yg(Cp.Perimeter,n,t),s=Rd(o,{shape:i});return s}(e);var i=mg[t];if(null!=i)return yg(t,lu(i,(function(t){return Rd({iox:t.ox,ioy:t.oy},t)})),e);if(null!=(i=gg[t]))return function(t,e,i){var n={type:t,locations:[],currentLocation:0,locked:!1,id:su(),cssClass:i.cssClass||"",isFloating:!1,isContinuous:!0,timestamp:null,faces:i.faces||e,lockedFace:null,lockedAxis:null,clockwise:!(!1===i.clockwise),__currentFace:null};return Object.defineProperty(n,bg,{get:function(){return this.__currentFace},set:function(t){this.__currentFace=hg(this,t)}}),n}(t,i.faces,e);throw{message:"jsPlumb: unknown anchor type '"+t+"'"}}function yg(t,e,i){return{type:t,locations:e,currentLocation:0,locked:!1,id:su(),isFloating:!1,isContinuous:!1,isDynamic:e.length>1,timestamp:null,cssClass:i.cssClass||""}}var bg="currentFace";function xg(t){return t.length<7&&t.every(Nd)||7===t.length&&t.slice(0,5).every(Nd)&&Bd(t[6])}function _g(t){if(Bd(t))return vg(t,null);if(Array.isArray(t)){if(xg(t)){var e=t;return yg(null,[{x:e[0],y:e[1],ox:e[2],oy:e[3],offx:null==e[4]?0:e[4],offy:null==e[5]?0:e[5],iox:e[2],ioy:e[3],cls:e[6]||""}],{cssClass:e[6]||""})}var i=lu(t,(function(t){if(Bd(t)){var e=mg[t];return null!=e?Rd({iox:e[0].ox,ioy:e[0].oy,cls:""},e[0]):null}if(xg(t))return{x:t[0],y:t[1],ox:t[2],oy:t[3],offx:null==t[4]?0:t[4],offy:null==t[5]?0:t[5],iox:t[2],ioy:t[3],cls:t[6]||""}})).filter((function(t){return null!=t}));return yg("Dynamic",i,{})}var n=t;return vg(n.type,n.options)}function wg(t){for(var e=.5,i=2*Math.PI/t,n=[],o=0,s=0;s<t;s++){var r=e+e*Math.sin(o),a=e+e*Math.cos(o);n.push({x:r,y:a,ox:0,oy:0,offx:0,offy:0,iox:0,ioy:0,cls:""}),o+=i}return n}function kg(t,e){for(var i=[],n=0;n<t.length;n++)i.push([t[n][0],t[n][1],t[n][2],t[n][3],1/t.length,t[n][4],t[n][5]]);return function(t,e){for(var i=e/t.length,n=[],o=function(t,o,s,r,a,l,c){for(var h=(s-t)/(i=e*a),d=(r-o)/i,u=0;u<i;u++)n.push({x:t+h*u,y:o+d*u,ox:null==l?0:l,oy:null==c?0:c,offx:0,offy:0,iox:0,ioy:0,cls:""})},s=0;s<t.length;s++)o.apply(null,t[s]);return n}(i,e)}function Sg(t){return kg([[0,0,1,0,0,-1],[1,0,1,1,1,0],[1,1,0,1,0,1],[0,1,0,0,-1,0]],t)}var Cg=new Map;Cg.set(Sp.Circle,wg),Cg.set(Sp.Ellipse,wg),Cg.set(Sp.Rectangle,Sg),Cg.set(Sp.Square,Sg),Cg.set(Sp.Diamond,(function(t){return kg([[.5,0,1,.5],[1,.5,.5,1],[.5,1,0,.5],[0,.5,.5,0]],t)})),Cg.set(Sp.Triangle,(function(t){return kg([[.5,0,1,1],[1,1,0,1],[0,1,.5,0]],t)}));var Eg=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];wd(this,t),this.selector=e,this.def=i,this.exclude=n,Cd(this,"id",void 0),Cd(this,"redrop",void 0),this.id=su(),this.redrop=i.def.redrop||Ag}return Sd(t,[{key:"setEnabled",value:function(t){this.def.enabled=t}},{key:"isEnabled",value:function(){return!1!==this.def.enabled}}]),t}(),Ag="strict";function Mg(t,e,i,n,o,s){var r=function(t,e,i){return new ng(t,e,i)}(s,n,o),a={paintStyle:t.getPaintStyle(),preparedAnchor:r,element:n,scope:t.scope,cssClass:[Uu,t.cssClass].join(" ")};null!=e&&(pu(e,Xm)?a.existingEndpoint=e:a.endpoint=e);var l=s._internal_newEndpoint(a);return s._paintEndpoint(l,{}),l}function Tg(t,e,i,n,o){for(var s=t.target||t.srcElement,r=!1,a=n.getSelector(e,i),l=0;l<a.length;l++)if(a[l]===s){r=!0;break}return o?!r:r}var Pg=Tu(Nm,Bm),Og="sourceSelectorEndpoint",Dg=function(){function t(e){wd(this,t),this.instance=e,Cd(this,"jpc",void 0),Cd(this,"existingJpc",void 0),Cd(this,"_originalAnchorSpec",void 0),Cd(this,"ep",void 0),Cd(this,"endpointRepresentation",void 0),Cd(this,"canvasElement",void 0),Cd(this,"_activeDefinition",void 0),Cd(this,"placeholderInfo",{id:null,element:null}),Cd(this,"floatingIndex",void 0),Cd(this,"floatingId",void 0),Cd(this,"floatingElement",void 0),Cd(this,"floatingEndpoint",void 0),Cd(this,"floatingAnchor",void 0),Cd(this,"_stopped",void 0),Cd(this,"inPlaceCopy",void 0),Cd(this,"endpointDropTargets",[]),Cd(this,"currentDropTarget",null),Cd(this,"payload",void 0),Cd(this,"floatingConnections",{}),Cd(this,"_forceReattach",void 0),Cd(this,"_forceDetach",void 0),Cd(this,"mousedownHandler",void 0),Cd(this,"mouseupHandler",void 0),Cd(this,"selector",Tu(Hu));var i=e.getContainer();this.mousedownHandler=this._mousedownHandler.bind(this),this.mouseupHandler=this._mouseupHandler.bind(this),e.on(i,zp,ap,this.mousedownHandler),e.on(i,jp,[ap,Tu(Hu)].join(","),this.mouseupHandler)}return Sd(t,[{key:"_resolveDragParent",value:function(t,e){var i=this.instance.getContainer(),n=gu(e,ap,i,!0);if(null!=t.parentSelector){var o=gu(e,t.parentSelector,i,!0);return null!=o&&(n=gu(o.parentNode,ap,i,!1)),o||n}return n}},{key:"_mousedownHandler",value:function(t){var e,i;if(3!==t.which&&2!==t.button){var n=t.target||t.srcElement;if((null==(i=this._getSourceDefinition(t))||null!=(e=this._resolveDragParent(i.def.def,n))&&e.getAttribute(Ap)!==Pf)&&i){var o,s=t.currentTarget;if(n.getAttribute(Ap)!==Pf){if(mu(t),this._activeDefinition=i,null!=(o=i.def.def).canAcceptNewConnection&&!o.canAcceptNewConnection(e,t))return!1;var r=ty(t,e,this.instance.currentZoom),a={element:e};if(Rd(a,o),a.isTemporarySource=!0,o.scope)a.scope=o.scope;else{var l=n.getAttribute(Mp);null!=l&&(a.scope=l)}if(null!=(a=Hd(a,o.parameterExtractor?o.parameterExtractor(e,n,t):{})).maxConnections&&a.maxConnections>=0)if(this.instance.select({source:e}).length>=a.maxConnections)return mu(t),o.onMaxConnections&&o.onMaxConnections({element:e,maxConnections:a.maxConnections},t),t.stopImmediatePropagation&&t.stopImmediatePropagation(),!1;if(o.anchorPositionFinder){var c=o.anchorPositionFinder(e,r,o,t);null!=c&&(a.anchor=c)}this._originalAnchorSpec=a.anchor||(this.instance.areDefaultAnchorsSet()?this.instance.defaults.anchors[0]:this.instance.defaults.anchor);var h=this.instance.router.prepareAnchor(this._originalAnchorSpec),d=[r.x,r.y,0,0];if(h.locations.length>0)d[2]=h.locations[0].ox,d[3]=h.locations[0].oy;else if(h.isContinuous){var u=r.x<.5?r.x:1-r.x,p=r.y<.5?r.y:1-r.y;d[2]=u<p?r.x<.5?-1:1:0,d[3]=p<u?r.y<.5?-1:1:0}a.anchor=d,a.deleteOnEmpty=!0,this.ep=this.instance._internal_newEndpoint(a);var f={};if(o.extract){for(var m in o.extract){var g=n.getAttribute(m);g&&(f[o.extract[m]]=g)}this.ep.mergeParameters(f)}if(a.uniqueEndpoint){var v=this.ep.elementId,y=this.instance.getManagedData(v,Og,i.id);null==y?(this.instance.setManagedData(v,Og,i.id,this.ep),this.ep.deleteOnEmpty=!1):this.ep.finalEndpoint=y}s._jsPlumbOrphanedEndpoints=s._jsPlumbOrphanedEndpoints||[],s._jsPlumbOrphanedEndpoints.push(this.ep),this.instance.trigger(this.ep.endpoint.canvas,zp,t,f)}}}}},{key:"_mouseupHandler",value:function(t){var e=t.currentTarget||t.srcElement;e._jsPlumbOrphanedEndpoints&&(!function(t,e){t=null==t.length||"string"==typeof t?[t]:t;for(var i=0;i<t.length;i++)e(t[i])}(e._jsPlumbOrphanedEndpoints,this.instance._maybePruneEndpoint.bind(this.instance)),e._jsPlumbOrphanedEndpoints.length=0),this._activeDefinition=null}},{key:"onDragInit",value:function(t){var e=Eu(t,this.instance),i=Au(t,this.instance);return this._makeDraggablePlaceholder(e,i),this.placeholderInfo.element.jtk=t.jtk,this.placeholderInfo.element}},{key:"onDragAbort",value:function(t){this._cleanupDraggablePlaceholder()}},{key:"_makeDraggablePlaceholder",value:function(t,e){this.placeholderInfo=this.placeholderInfo||{};var i=ku("div",{position:"absolute"});this.instance._appendElementToContainer(i);var n=this.instance.getId(i);return this.instance.setPosition(i,t),i.style.width=e.w+"px",i.style.height=e.h+"px",this.instance.manage(i),this.placeholderInfo.id=n,this.placeholderInfo.element=i,i}},{key:"_cleanupDraggablePlaceholder",value:function(){this.placeholderInfo.element&&(this.instance.unmanage(this.placeholderInfo.element,!0),delete this.placeholderInfo.element,delete this.placeholderInfo.id)}},{key:"reset",value:function(){var t=this.instance.getContainer();this.instance.off(t,jp,this.mouseupHandler),this.instance.off(t,zp,this.mousedownHandler)}},{key:"init",value:function(t){}},{key:"startNewConnectionDrag",value:function(t,e){this.jpc=this.instance._newConnection({sourceEndpoint:this.ep,targetEndpoint:this.floatingEndpoint,source:this.ep.element,target:this.placeholderInfo.element,paintStyle:this.ep.connectorStyle,hoverPaintStyle:this.ep.connectorHoverStyle,connector:this.ep.connector,overlays:this.ep.connectorOverlays,type:this.ep.edgeType,cssClass:this.ep.connectorClass,hoverClass:this.ep.connectorHoverClass,scope:t,data:e}),this.jpc.pending=!0,this.jpc.addClass(this.instance.draggingClass),this.ep.addClass(this.instance.draggingClass),this.instance.fire(Up,this.jpc)}},{key:"startExistingConnectionDrag",value:function(){this.existingJpc=!0,this.instance.setHover(this.jpc,!1);var t=this.jpc.endpoints[0].id===this.ep.id?0:1;this.ep.detachFromConnection(this.jpc,null,!0),this.floatingEndpoint.addConnection(this.jpc),this.instance.fire(Up,this.jpc),this.instance.sourceOrTargetChanged(this.jpc.endpoints[t].elementId,this.placeholderInfo.id,this.jpc,this.placeholderInfo.element,t),this.jpc.suspendedEndpoint=this.jpc.endpoints[t],this.jpc.suspendedElement=this.jpc.endpoints[t].element,this.jpc.suspendedElementId=this.jpc.endpoints[t].elementId,this.jpc.suspendedElementType=0===t?Ou:Du,this.instance.setHover(this.jpc.suspendedEndpoint,!1),this.floatingEndpoint.referenceEndpoint=this.jpc.suspendedEndpoint,this.floatingEndpoint.mergeParameters(this.jpc.suspendedEndpoint.parameters),this.jpc.endpoints[t]=this.floatingEndpoint,this.jpc.addClass(this.instance.draggingClass),this.floatingId=this.placeholderInfo.id,this.floatingIndex=t,this.instance._refreshEndpoint(this.ep)}},{key:"_shouldStartDrag",value:function(){var t=!0;this.ep.enabled||(t=!1),null!=this.jpc||this.ep.isSource||this.ep.isTemporarySource||(t=!1),!this.ep.isSource||!this.ep.isFull()||null!=this.jpc&&this.ep.dragAllowedWhenFull||(t=!1),null==this.jpc||this.jpc.isDetachable(this.ep)||(this.ep.isFull()?t=!1:this.jpc=null);var e={},i=this.instance.checkCondition(null==this.jpc?"beforeDrag":"beforeStartDetach",{endpoint:this.ep,source:this.ep.element,sourceId:this.ep.elementId,connection:this.jpc});return!1===i?t=!1:"object"===_d(i)?Rd(e=i,this.payload||{}):e=this.payload||{},[t,e]}},{key:"_createFloatingEndpoint",value:function(t){var e=this.ep.endpoint;null!=this.ep.edgeType&&(e=this.instance._deriveEndpointAndAnchorSpec(this.ep.edgeType).endpoints[1]);this.floatingEndpoint=Mg(this.ep,e,0,this.placeholderInfo.element,this.placeholderInfo.id,this.instance),this.floatingAnchor=this.floatingEndpoint._anchor,this.floatingEndpoint.deleteOnEmpty=!0,this.floatingElement=this.floatingEndpoint.endpoint.canvas,this.floatingId=this.instance.getId(this.floatingElement)}},{key:"_populateTargets",value:function(t,e){var i,n=this,o=this.jpc&&this.jpc.endpoints[0]===this.ep;if(Gd(this.instance.getContainer().querySelectorAll([".",Hu,"[",Fu,this.ep.scope,"]:not(.",Uu,")"].join("")),(function(e){if(!(null==n.jpc&&e===t||e===n.floatingElement||null==n.jpc&&e.jtk.endpoint.isFull())&&(o&&e.jtk.endpoint.isSource||!o&&e.jtk.endpoint.isTarget)){var s=Eu(e,n.instance),r=Au(e,n.instance);i={x:s.x,y:s.y,w:r.w,h:r.h},n.endpointDropTargets.push({el:e,targetEl:e,r:i,endpoint:e.jtk.endpoint,def:null}),n.instance.addClass(e,Nm)}})),o){var s=Yd(this.instance.sourceSelectors,(function(t){return t.isEnabled()&&(null==t.def.def.scope||t.def.def.scope===n.ep.scope)}));if(null!=s)Gd(this._findTargetZones(s),(function(t){if(t.getAttribute(Ap)!==Pf){var e=t.getAttribute(Mp);if(null!=e&&e!==n.ep.scope)return;var i={r:null,el:t};i.targetEl=gu(t,ap,n.instance.getContainer(),!0);var o=Eu(i.el,n.instance),r=Au(i.el,n.instance);i.r={x:o.x,y:o.y,w:r.w,h:r.h},null!=s.def.def.rank&&(i.rank=s.def.def.rank),i.def=s.def,n.endpointDropTargets.push(i),n.instance.addClass(i.targetEl,Nm)}}))}else{var r=function(t,e){var i=function(t,e){var i=[];if(t)for(var n=0;n<t.length;n++)e(t[n])&&i.push(n);return i}(t,e);return i.map((function(e){return t[e]}))}(this.instance.targetSelectors,(function(t){return t.isEnabled()}));r.forEach((function(t){Gd(n._findTargetZones(t),(function(i){if(i.getAttribute(Ap)!==Pf){var o=i.getAttribute(Mp);if(null!=o&&o!==n.ep.scope)return;var s={r:null,el:i};if(null!=t.def.def.parentSelector&&(s.targetEl=gu(i,t.def.def.parentSelector,n.instance.getContainer(),!0)),null==s.targetEl&&(s.targetEl=gu(i,ap,n.instance.getContainer(),!0)),(!1===t.def.def.allowLoopback||n._activeDefinition&&!1===n._activeDefinition.def.def.allowLoopback)&&s.targetEl===n.ep.element)return;if(null!=t.def.def.canAcceptNewConnection&&!t.def.def.canAcceptNewConnection(s.targetEl,e))return;var r=t.def.def.maxConnections;if(null!=r&&-1!==r&&n.instance.select({target:s.targetEl}).length>=r)return;var a=Eu(i,n.instance),l=Au(i,n.instance);s.r={x:a.x,y:a.y,w:l.w,h:l.h},s.def=t.def,null!=t.def.def.rank&&(s.rank=t.def.def.rank),n.endpointDropTargets.push(s),n.instance.addClass(s.targetEl,Nm)}}))}))}this.endpointDropTargets.sort((function(t,e){if(t.targetEl._isJsPlumbGroup&&!e.targetEl._isJsPlumbGroup)return 1;if(!t.targetEl._isJsPlumbGroup&&e.targetEl._isJsPlumbGroup)return-1;if(t.targetEl._isJsPlumbGroup&&e.targetEl._isJsPlumbGroup){if(n.instance.groupManager.isAncestor(t.targetEl._jsPlumbGroup,e.targetEl._jsPlumbGroup))return-1;if(n.instance.groupManager.isAncestor(e.targetEl._jsPlumbGroup,t.targetEl._jsPlumbGroup))return 1}else{if(null==t.rank||null==e.rank)return 0;if(t.rank>e.rank)return-1;if(t.rank<e.rank)return 1}}))}},{key:"_findTargetZones",value:function(t){var e;if("any"===t.redrop){var i=this.instance.targetSelectors.map((function(t){return t.selector}));i.push.apply(i,Id(this.instance.sourceSelectors.map((function(t){return t.selector})))),i.push(ap),e=i.join(",")}else if(t.redrop===Ag)e=t.selector;else if("anySource"===t.redrop)e=this.instance.sourceSelectors.map((function(t){return t.selector})).join(",");else if("anyTarget"===t.redrop)e=this.instance.targetSelectors.map((function(t){return t.selector})).join(",");else if("anySourceOrTarget"===t.redrop){var n=this.instance.targetSelectors.map((function(t){return t.selector}));n.push.apply(n,Id(this.instance.sourceSelectors.map((function(t){return t.selector})))),e=n.join(",")}return this.instance.getContainer().querySelectorAll(e)}},{key:"onStart",value:function(t){this.endpointDropTargets.length=0,this.currentDropTarget=null,this._stopped=!1;var e=t.drag.getDragElement();if(this.ep=e.jtk.endpoint,!this.ep)return!1;this.endpointRepresentation=this.ep.endpoint,this.canvasElement=this.endpointRepresentation.canvas,this.jpc=this.ep.connectorSelector();var i=Dd(this._shouldStartDrag(),2),n=i[0],o=i[1];if(!1===n)return this._stopped=!0,!1;this.instance.setHover(this.ep,!1),this.instance.isConnectionBeingDragged=!0,this.jpc&&!this.ep.isFull()&&this.ep.isSource&&(this.jpc=null),this._createFloatingEndpoint(this.canvasElement),this._populateTargets(this.canvasElement,t.e),null==this.jpc?this.startNewConnectionDrag(this.ep.scope,o):this.startExistingConnectionDrag(),this._registerFloatingConnection(this.placeholderInfo,this.jpc),this.instance.currentlyDragging=!0}},{key:"onBeforeStart",value:function(t){this.payload=t.e.payload||{}}},{key:"onDrag",value:function(t){if(this._stopped)return!0;if(this.placeholderInfo.element){var e=Au(this.floatingElement,this.instance);this.instance.setElementPosition(this.placeholderInfo.element,t.pos.x,t.pos.y);for(var i,n,o={x:t.pos.x,y:t.pos.y,w:e.w,h:e.h},s=0;s<this.endpointDropTargets.length;s++)if(lm(o,this.endpointDropTargets[s].r)){i=this.endpointDropTargets[s];break}if(i!==this.currentDropTarget&&null!=this.currentDropTarget&&(n=this._getFloatingAnchorIndex(),this.instance.removeClass(this.currentDropTarget.el,Bm),this.currentDropTarget.endpoint&&(this.currentDropTarget.endpoint.endpoint.removeClass(this.instance.endpointDropAllowedClass),this.currentDropTarget.endpoint.endpoint.removeClass(this.instance.endpointDropForbiddenClass)),this.floatingAnchor.out()),null!=i)if(this.instance.addClass(i.el,Bm),n=this._getFloatingAnchorIndex(),null!=i.endpoint)if(i.endpoint.isSource&&0===n||i.endpoint.isTarget&&0!==n||this.jpc.suspendedEndpoint&&i.endpoint.referenceEndpoint&&i.endpoint.referenceEndpoint.id===this.jpc.suspendedEndpoint.id)this.instance.checkCondition("checkDropAllowed",{sourceEndpoint:this.jpc.endpoints[n],targetEndpoint:i.endpoint.endpoint,connection:this.jpc})?(i.endpoint.endpoint.addClass(this.instance.endpointDropAllowedClass),i.endpoint.endpoint.removeClass(this.instance.endpointDropForbiddenClass)):(i.endpoint.endpoint.removeClass(this.instance.endpointDropAllowedClass),i.endpoint.endpoint.addClass(this.instance.endpointDropForbiddenClass)),this.floatingAnchor.over(i.endpoint),this.instance._paintConnection(this.jpc);else i=null;this.currentDropTarget=i}}},{key:"_maybeCleanup",value:function(t){t._mtNew&&0===t.connections.length?this.instance.deleteEndpoint(t):delete t._mtNew}},{key:"_reattachOrDiscard",value:function(t){var e=null!=this.jpc.suspendedEndpoint,i=this._getFloatingAnchorIndex();return e&&this._shouldReattach()?(0===i?(this.jpc.source=this.jpc.suspendedElement,this.jpc.sourceId=this.jpc.suspendedElementId):(this.jpc.target=this.jpc.suspendedElement,this.jpc.targetId=this.jpc.suspendedElementId),this._doForceReattach(i),!0):(this._discard(i,t),!1)}},{key:"onStop",value:function(t){var e=this,i=t.e;this.instance.isConnectionBeingDragged=!1,this.instance.currentlyDragging=!1;var n=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.join(" ")}(Bm,Nm);if(Gd(this.instance.getContainer().querySelectorAll(Pg),(function(t){e.instance.removeClass(t,n)})),this.jpc&&null!=this.jpc.endpoints){var o,s=null!=this.jpc.suspendedEndpoint,r=this._getFloatingAnchorIndex(),a=this.jpc.suspendedEndpoint;if(null!=this.currentDropTarget)if(null==(o=this._getDropEndpoint(t,this.jpc)))this._reattachOrDiscard(t.e);else if(a&&a.id===o.id)this._doForceReattach(r);else if(o.enabled)if(o.isFull())o.fire(ep,{endpoint:this,connection:this.jpc,maxConnections:this.instance.defaults.maxConnections},i),this._reattachOrDiscard(t.e);else{0===r?(this.jpc.source=o.element,this.jpc.sourceId=o.elementId):(this.jpc.target=o.element,this.jpc.targetId=o.elementId);var l=!0;s&&this.jpc.suspendedEndpoint.id!==o.id&&(this.jpc.isDetachAllowed(this.jpc)&&this.jpc.endpoints[r].isDetachAllowed(this.jpc)&&this.jpc.suspendedEndpoint.isDetachAllowed(this.jpc)&&this.instance.checkCondition("beforeDetach",this.jpc)||(l=!1)),(l=l&&o.isDropAllowed(this.jpc.sourceId,this.jpc.targetId,this.jpc.scope,this.jpc,o))?this._drop(o,r,i,l):this._reattachOrDiscard(t.e)}else this._reattachOrDiscard(t.e);else this._reattachOrDiscard(t.e);this.instance._refreshEndpoint(this.ep),this.ep.removeClass(this.instance.draggingClass),this._cleanupDraggablePlaceholder(),this.jpc.removeClass(this.instance.draggingClass),delete this.jpc.suspendedEndpoint,delete this.jpc.suspendedElement,delete this.jpc.suspendedElementType,delete this.jpc.suspendedElementId,delete this.jpc.suspendedIndex,delete this.floatingId,delete this.floatingIndex,delete this.floatingElement,delete this.floatingEndpoint,delete this.floatingAnchor,delete this.jpc.pending,null!=o&&this._maybeCleanup(o)}}},{key:"_getSourceDefinition",value:function(t){for(var e,i=this.instance.getContainer(),n=0;n<this.instance.sourceSelectors.length;n++){if((e=this.instance.sourceSelectors[n]).isEnabled())if(!1!==Tg(t,i,e.selector,this.instance,e.exclude))return e}}},{key:"_getDropEndpoint",value:function(t,e){var i;if(null==this.currentDropTarget.endpoint){var n=this.currentDropTarget.def,o=t.e.target||t.e.srcElement;if(null==n)return null;var s=this.currentDropTarget.targetEl,r=ty(t.e,s,this.instance.currentZoom),a=this.instance._deriveEndpointAndAnchorSpec(e.getType().join(" "),!0),l=a.endpoints?Rd(t,{endpoint:n.def.endpoint||a.endpoints[1],cssClass:n.def.cssClass||"",source:!0===n.def.source,target:!0===n.def.target}):t,c=this.instance.validAnchorsSpec(a.anchors)?a.anchors:this.instance.areDefaultAnchorsSet()?this.instance.defaults.anchors:null,h=n.def.anchor,d=n.def.anchorPositionFinder?n.def.anchorPositionFinder(s,r,n.def,t.e):null,u=null!=d?d:null!=h?h:null!=c&&null!=c[1]?c[1]:null;if(null!=u&&(l=Rd(l,{anchor:u})),null!=n.def.portId&&(l.portId=n.def.portId),(l=Hd(l,n.def.parameterExtractor?n.def.parameterExtractor(this.currentDropTarget.el,o,t.e):{})).element=s,(i=this.instance._internal_newEndpoint(l))._mtNew=!0,i.deleteOnEmpty=!0,n.def.parameters&&i.mergeParameters(n.def.parameters),n.def.extract){var p={};for(var f in n.def.extract){var m=this.currentDropTarget.el.getAttribute(f);m&&(p[n.def.extract[f]]=m)}i.mergeParameters(p)}}else i=this.currentDropTarget.endpoint;return i&&(i.removeClass(this.instance.endpointDropAllowedClass),i.removeClass(this.instance.endpointDropForbiddenClass)),i}},{key:"_doForceReattach",value:function(t){this.floatingEndpoint.detachFromConnection(this.jpc,null,!0),this.jpc.endpoints[t]=this.jpc.suspendedEndpoint,this.instance.setHover(this.jpc,!1),this.jpc._forceDetach=!0,this.jpc.suspendedEndpoint.addConnection(this.jpc),this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.suspendedEndpoint.elementId,this.jpc,this.jpc.suspendedEndpoint.element,t),this.instance.deleteEndpoint(this.floatingEndpoint),this.instance.repaint(this.jpc.source),delete this.jpc._forceDetach}},{key:"_shouldReattach",value:function(){if(this.jpc.isReattach()||this.jpc._forceReattach)return!0;var t=this.jpc.suspendedEndpoint,e=this.jpc.suspendedElementType==Ou?1:0,i=this.jpc.endpoints[e];return!Ud(!0,!1,[[t,op,[this.jpc]],[i,op,[this.jpc]],[this.jpc,op,[this.jpc]],[this.instance,qu,[rp,this.jpc]]])}},{key:"_discard",value:function(t,e){this.jpc.pending?this.instance.fire("connection:abort",this.jpc,e):(0===t?(this.jpc.source=this.jpc.suspendedEndpoint.element,this.jpc.sourceId=this.jpc.suspendedEndpoint.elementId):(this.jpc.target=this.jpc.suspendedEndpoint.element,this.jpc.targetId=this.jpc.suspendedEndpoint.elementId),this.jpc.endpoints[t]=this.jpc.suspendedEndpoint),this.floatingEndpoint&&this.floatingEndpoint.detachFromConnection(this.jpc),this.instance.deleteConnection(this.jpc,{originalEvent:e,force:!0})}},{key:"_drop",value:function(t,e,i,n){if(this.jpc.endpoints[e].detachFromConnection(this.jpc),this.jpc.suspendedEndpoint&&this.jpc.suspendedEndpoint.detachFromConnection(this.jpc),this.jpc.endpoints[e]=t,t.addConnection(this.jpc),this.jpc.suspendedEndpoint){var o=this.jpc.suspendedEndpoint.elementId;this.instance.fireMoveEvent({index:e,originalSourceId:0===e?o:this.jpc.sourceId,newSourceId:0===e?t.elementId:this.jpc.sourceId,originalTargetId:1===e?o:this.jpc.targetId,newTargetId:1===e?t.elementId:this.jpc.targetId,originalEndpoint:this.jpc.suspendedEndpoint,connection:this.jpc,newEndpoint:t},i)}(1===e?this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.targetId,this.jpc,this.jpc.target,1):this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.sourceId,this.jpc,this.jpc.source,0),this.jpc.endpoints[0].finalEndpoint)&&(this.jpc.endpoints[0].detachFromConnection(this.jpc),this.jpc.endpoints[0]=this.jpc.endpoints[0].finalEndpoint,this.jpc.endpoints[0].addConnection(this.jpc));Fd(n)&&this.jpc.mergeData(n),this._originalAnchorSpec&&(this.jpc.endpoints[0].setAnchor(this._originalAnchorSpec),this._originalAnchorSpec=null),this.instance._finaliseConnection(this.jpc,null,i),this.instance.setHover(this.jpc,!1),this.instance.revalidate(this.jpc.endpoints[0].element)}},{key:"_registerFloatingConnection",value:function(t,e){this.floatingConnections[t.id]=e}},{key:"_getFloatingAnchorIndex",value:function(){return null==this.floatingIndex?1:this.floatingIndex}}]),t}(),Ig=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).instance=t,o.dragSelection=n,Cd(Td(o),"selector",[">",_f,ap].join(" ")),Cd(Td(o),"doRevalidate",void 0),o.doRevalidate=o._revalidate.bind(Td(o)),o}return Sd(i,[{key:"reset",value:function(){this.drag.off(Hp,this.doRevalidate)}},{key:"_revalidate",value:function(t){this.instance.revalidate(t)}},{key:"init",value:function(t){this.drag=t,t.on(Hp,this.doRevalidate)}},{key:"useGhostProxy",value:function(t,e){var i=e._jsPlumbParentGroup;return null!=i&&!0===i.ghost}},{key:"makeGhostProxy",value:function(t){var e=t,i=e.cloneNode(!0);return i._jsPlumbParentGroup=e._jsPlumbParentGroup,i}}]),i}(Um),Lg=function(){function t(e,i){wd(this,t),this.instance=e,this.overlay=i,Cd(this,"htmlElementOverlay",void 0),this.htmlElementOverlay=i}return Sd(t,null,[{key:"getElement",value:function(t,e,i){if(null==t.canvas){if(i&&e){t.canvas=i(e);var n=t.instance.overlayClass+" "+(t.cssClass?t.cssClass:"");t.instance.addClass(t.canvas,n)}else t.canvas=ku("div",{},t.instance.overlayClass+" "+(t.cssClass?t.cssClass:""));for(var o in t.instance.setAttribute(t.canvas,"jtk-overlay-id",t.id),t.attributes)t.instance.setAttribute(t.canvas,o,t.attributes[o]);t.canvas.style.position=$u,t.instance._appendElement(t.canvas,t.instance.getContainer()),t.instance.getId(t.canvas);var s="translate(-50%, -50%)";t.canvas.style.webkitTransform=s,t.canvas.style.mozTransform=s,t.canvas.style.msTransform=s,t.canvas.style.oTransform=s,t.canvas.style.transform=s,t.isVisible()||(t.canvas.style.display=Lu),t.canvas.jtk={overlay:t}}return t.canvas}},{key:"destroy",value:function(t){t.canvas&&t.canvas.parentNode&&t.canvas.parentNode.removeChild(t.canvas),delete t.canvas,delete t.cachedDimensions}},{key:"_getDimensions",value:function(t,e){return(null==t.cachedDimensions||e)&&(t.cachedDimensions={w:1,h:1}),t.cachedDimensions}}]),t}(),$g=function(){function t(){wd(this,t),Cd(this,"_listeners",{}),Cd(this,"eventsSuspended",!1),Cd(this,"tick",!1),Cd(this,"eventsToDieOn",{ready:!0}),Cd(this,"queue",[])}return Sd(t,[{key:"fire",value:function(t,e,i){var n=null;if(this.tick)this.queue.unshift(arguments);else{if(this.tick=!0,!this.eventsSuspended&&this._listeners[t]){var o=this._listeners[t].length,s=0,r=!1;if(!this.shouldFireEvent||this.shouldFireEvent(t,e,i))for(;!r&&s<o&&!1!==n;){if(this.eventsToDieOn[t])this._listeners[t][s](e,i);else try{n=this._listeners[t][s](e,i)}catch(e){cu("jsPlumb: fire failed for event "+t+" : "+(e.message||e))}s++,null!=this._listeners&&null!=this._listeners[t]||(r=!0)}}this.tick=!1,this._drain()}return n}},{key:"_drain",value:function(){var t=this.queue.pop();t&&this.fire.apply(this,t)}},{key:"unbind",value:function(t,e){if(0===arguments.length)this._listeners={};else if(1===arguments.length){if("string"==typeof t)delete this._listeners[t];else if(t.__jsPlumb){var i;for(var n in t.__jsPlumb)i=t.__jsPlumb[n],Jd(this._listeners[i]||[],t)}}else 2===arguments.length&&Jd(this._listeners[t]||[],e);return this}},{key:"getListener",value:function(t){return this._listeners[t]||[]}},{key:"isSuspendEvents",value:function(){return this.eventsSuspended}},{key:"setSuspendEvents",value:function(t){this.eventsSuspended=t}},{key:"bind",value:function(t,e,i){var n=this,o=function(t){tu(n._listeners,t,e,i),e.__jsPlumb=e.__jsPlumb||{},e.__jsPlumb[su()]=t};if("string"==typeof t)o(t);else if(null!=t.length)for(var s=0;s<t.length;s++)o(t[s]);return this}},{key:"silently",value:function(t){this.setSuspendEvents(!0);try{t()}catch(t){cu("Cannot execute silent function "+t)}this.setSuspendEvents(!1)}}]),t}();function zg(t){var e=null;return(e=Bd(t)?{type:t,options:{}}:t).options.id=e.options.id||su(),e}!function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}Sd(i,[{key:"shouldFireEvent",value:function(t,e,i){return!0}}])}($g);var Rg=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;for(var r in wd(this,i),(s=e.call(this)).instance=t,s.component=n,Cd(Td(s),"id",void 0),Cd(Td(s),"type",void 0),Cd(Td(s),"cssClass",void 0),Cd(Td(s),"visible",!0),Cd(Td(s),"location",void 0),Cd(Td(s),"events",void 0),Cd(Td(s),"attributes",void 0),o=o||{},s.id=o.id||su(),s.cssClass=o.cssClass||"",s.setLocation(o.location),s.events=o.events||{},s.attributes=o.attributes||{},s.events)s.bind(r,s.events[r]);return s}return Sd(i,[{key:"setLocation",value:function(t){var e=null==this.location?.5:this.location;if(null!=t)try{var i="string"==typeof t?parseFloat(t):t;isNaN(i)||(e=i)}catch(t){}this.location=e}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"setVisible",value:function(t){this.visible=t,this.instance.setOverlayVisible(this,t)}},{key:"isVisible",value:function(){return this.visible}}]),i}($g),Ng={},Bg=function(t,e,i,n){var o=Ng[e];if(o)return new o(t,i,n);throw{message:"jsPlumb: unknown overlay type '"+e+"'"}},jg=function(t,e){Ng[t]=e},Fg=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"label",void 0),Cd(Td(s),"labelText",void 0),Cd(Td(s),"type",i.type),Cd(Td(s),"cachedDimensions",void 0),o=o||{label:""},s.setLabel(o.label),s}return Sd(i,[{key:"getLabel",value:function(){return qd(this.label)?this.label(this):this.labelText}},{key:"setLabel",value:function(t){this.label=t,this.labelText=null,this.instance.updateLabel(this)}},{key:"getDimensions",value:function(){return{w:1,h:1}}},{key:"updateFrom",value:function(t){null!=t.label&&this.setLabel(t.label),null!=t.location&&(this.setLocation(t.location),this.instance.updateLabel(this))}}]),i}(Rg);function qg(t){return t.type===Fg.type}function Vg(t){return null==t?null:t.split(" ").filter((function(t){return null!=t&&t.length>0}))}function Hg(t,e,i){for(var n in e)t[n]=i}Cd(Fg,"type","Label"),jg(Fg.type,Fg);var Ug="__default",Wg="__label",Gg="overlay",Zg="remove";function Yg(t,e){if(t.getDefaultType){var i=t.getTypeDescriptor(),n={},o=t.getDefaultType(),s=Rd({},o);Hg(n,o,Ug),t._types.forEach((function(e){if(e!==Ug){var o=t.instance.getType(e,i);if(null!=o){var r=new Set(["connector","anchor","anchors"]);if("override"===o.mergeStrategy)for(var a in o)r.add(a);s=Hd(s,o,["cssClass"],function(t){var e=[];return t.forEach((function(t){e.push(t)})),e}(r)),Hg(n,o,e)}}})),e&&(s=Wd(s,e,"_")),t.applyType(s,n)}}function Xg(t,e){var i=t.instance.getType(e,t.getTypeDescriptor());null!=i&&i.cssClass&&t.removeClass(i.cssClass)}function Kg(t){if(t.paintStyle&&t.hoverPaintStyle){var e={};Rd(e,t.paintStyle),Rd(e,t.hoverPaintStyle),t.hoverPaintStyle=e}}var Qg=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;if(wd(this,i),(o=e.call(this)).instance=t,Cd(Td(o),"defaultLabelLocation",.5),Cd(Td(o),"overlays",{}),Cd(Td(o),"overlayPositions",{}),Cd(Td(o),"overlayPlacements",{}),Cd(Td(o),"clone",void 0),Cd(Td(o),"deleted",void 0),Cd(Td(o),"segment",void 0),Cd(Td(o),"x",void 0),Cd(Td(o),"y",void 0),Cd(Td(o),"w",void 0),Cd(Td(o),"h",void 0),Cd(Td(o),"id",void 0),Cd(Td(o),"visible",!0),Cd(Td(o),"typeId",void 0),Cd(Td(o),"params",{}),Cd(Td(o),"paintStyle",void 0),Cd(Td(o),"hoverPaintStyle",void 0),Cd(Td(o),"paintStyleInUse",void 0),Cd(Td(o),"_hover",!1),Cd(Td(o),"lastPaintedAt",void 0),Cd(Td(o),"data",void 0),Cd(Td(o),"_defaultType",void 0),Cd(Td(o),"events",void 0),Cd(Td(o),"parameters",void 0),Cd(Td(o),"_types",void 0),Cd(Td(o),"_typeCache",void 0),Cd(Td(o),"cssClass",void 0),Cd(Td(o),"hoverClass",void 0),Cd(Td(o),"beforeDetach",void 0),Cd(Td(o),"beforeDrop",void 0),n=n||{},o.cssClass=n.cssClass||"",o.hoverClass=n.hoverClass||t.defaults.hoverClass,o.beforeDetach=n.beforeDetach,o.beforeDrop=n.beforeDrop,o._types=new Set,o._typeCache={},o.parameters=Vd(n.parameters||{}),o.id=n.id||o.getIdPrefix()+(new Date).getTime(),o._defaultType={parameters:o.parameters,scope:n.scope||o.instance.defaultScope,overlays:{}},n.events)for(var s in n.events)o.bind(s,n.events[s]);o.clone=function(){var e=Object.create(o.constructor.prototype);return o.constructor.apply(e,[t,n]),e},o.overlays={},o.overlayPositions={};var r=n.overlays||[],a={},l=o.getDefaultOverlayKey();if(l){var c=o.instance.defaults[l];c&&r.push.apply(r,Id(c));for(var h=0;h<r.length;h++){var d=zg(r[h]);a[d.options.id]=d}}return o._defaultType.overlays=a,n.label&&(o.getDefaultType().overlays[Wg]={type:Fg.type,options:{label:n.label,location:n.labelLocation||o.defaultLabelLocation,id:Wg,cssClass:"jtk-default-label"}}),o}return Sd(i,[{key:"isDetachAllowed",value:function(t){var e=!0;if(this.beforeDetach)try{e=this.beforeDetach(t)}catch(t){cu("jsPlumb: beforeDetach callback failed",t)}return e}},{key:"isDropAllowed",value:function(t,e,i,n,o){var s,r={sourceId:t,targetId:e,scope:i,connection:n,dropEndpoint:o};if(this.beforeDrop)try{s=this.beforeDrop(r)}catch(t){cu("jsPlumb: beforeDrop callback failed",t)}else s=this.instance.checkCondition(sp,r);return s}},{key:"getDefaultType",value:function(){return this._defaultType}},{key:"appendToDefaultType",value:function(t){for(var e in t)this._defaultType[e]=t[e]}},{key:"getId",value:function(){return this.id}},{key:"cacheTypeItem",value:function(t,e,i){this._typeCache[i]=this._typeCache[i]||{},this._typeCache[i][t]=e}},{key:"getCachedTypeItem",value:function(t,e){return this._typeCache[e]?this._typeCache[e][t]:null}},{key:"setType",value:function(t,e){this.clearTypes(),(Vg(t)||[]).forEach(this._types.add,this._types),Yg(this,e)}},{key:"getType",value:function(){return Array.from(this._types.keys())}},{key:"reapplyTypes",value:function(t){Yg(this,t)}},{key:"hasType",value:function(t){return this._types.has(t)}},{key:"addType",value:function(t,e){var i=Vg(t),n=!1;if(null!=i){for(var o=0,s=i.length;o<s;o++)this._types.has(i[o])||(this._types.add(i[o]),n=!0);n&&Yg(this,e)}}},{key:"removeType",value:function(t,e){var i,n=this,o=Vg(t),s=!1;if(null!=o){for(var r=0,a=o.length;r<a;r++)i=o[r],s=!!n._types.has(i)&&(Xg(n,i),n._types.delete(i),!0)||s;s&&Yg(this,e)}}},{key:"clearTypes",value:function(t){var e=this;this._types.forEach((function(t){Xg(e,t)})),this._types.clear(),Yg(this,t)}},{key:"toggleType",value:function(t,e){var i=Vg(t);if(null!=i){for(var n=0,o=i.length;n<o;n++)this._types.has(i[n])?(Xg(this,i[n]),this._types.delete(i[n])):this._types.add(i[n]);Yg(this,e)}}},{key:"applyType",value:function(t,e){if(this.setPaintStyle(t.paintStyle),this.setHoverPaintStyle(t.hoverPaintStyle),this.mergeParameters(t.parameters),this.paintStyleInUse=this.getPaintStyle(),t.overlays){var i,n={};for(i in t.overlays){var o=this.overlays[t.overlays[i].options.id];if(o)o.updateFrom(t.overlays[i].options),n[t.overlays[i].options.id]=!0,this.instance.reattachOverlay(o,this);else{var s=this.getCachedTypeItem(Gg,t.overlays[i].options.id);null!=s?(this.instance.reattachOverlay(s,this),s.setVisible(!0),s.updateFrom(t.overlays[i].options),this.overlays[s.id]=s):s=this.addOverlay(t.overlays[i]),n[s.id]=!0}}for(i in this.overlays)null==n[this.overlays[i].id]&&this.removeOverlay(this.overlays[i].id,!0)}}},{key:"setPaintStyle",value:function(t){this.paintStyle=t,this.paintStyleInUse=this.paintStyle,Kg(this)}},{key:"getPaintStyle",value:function(){return this.paintStyle}},{key:"setHoverPaintStyle",value:function(t){this.hoverPaintStyle=t,Kg(this)}},{key:"getHoverPaintStyle",value:function(){return this.hoverPaintStyle}},{key:"destroy",value:function(){for(var t in this.overlays)this.instance.destroyOverlay(this.overlays[t]);this.overlays={},this.overlayPositions={},this.unbind(),this.clone=null}},{key:"isHover",value:function(){return this._hover}},{key:"mergeParameters",value:function(t){null!=t&&Rd(this.parameters,t)}},{key:"setVisible",value:function(t){this.visible=t,t?this.showOverlays():this.hideOverlays()}},{key:"isVisible",value:function(){return this.visible}},{key:"setAbsoluteOverlayPosition",value:function(t,e){this.overlayPositions[t.id]=e}},{key:"getAbsoluteOverlayPosition",value:function(t){return this.overlayPositions?this.overlayPositions[t.id]:null}},{key:"_clazzManip",value:function(t,e){for(var i in this.overlays)"add"===t?this.instance.addOverlayClass(this.overlays[i],e):t===Zg&&this.instance.removeOverlayClass(this.overlays[i],e)}},{key:"addClass",value:function(t,e){var i=(this.cssClass||"").split(" ");i.push(t),this.cssClass=i.join(" "),this._clazzManip("add",t)}},{key:"removeClass",value:function(t,e){var i=(this.cssClass||"").split(" ");this.cssClass=i.filter((function(e){return e!==t})).join(" "),this._clazzManip(Zg,t)}},{key:"getClass",value:function(){return this.cssClass}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"getData",value:function(){return this.data}},{key:"setData",value:function(t){this.data=t||{}}},{key:"mergeData",value:function(t){this.data=Rd(this.data,t)}},{key:"addOverlay",value:function(t){var e=function(t,e){var i=null;if(Bd(e))i=Bg(t.instance,e,t,{});else if(null!=e.type&&null!=e.options){var n=e,o=Rd({},n.options);i=Bg(t.instance,n.type,t,o)}else i=e;return i.id=i.id||su(),t.cacheTypeItem(Gg,i,i.id),t.overlays[i.id]=i,i}(this,t);if(this.getData&&e.type===Fg.type&&!Bd(t)){var i=this.getData(),n=t.options;if(i){var o=i[n.labelLocationAttribute||"labelLocation"];o&&(e.location=o)}}return e}},{key:"getOverlay",value:function(t){return this.overlays[t]}},{key:"getOverlays",value:function(){return this.overlays}},{key:"hideOverlay",value:function(t){var e=this.getOverlay(t);e&&e.setVisible(!1)}},{key:"hideOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n in e=e||[],this.overlays)0!==e.length&&-1===e.indexOf(n)||this.overlays[n].setVisible(!1)}},{key:"showOverlay",value:function(t){var e=this.getOverlay(t);e&&e.setVisible(!0)}},{key:"showOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n in e=e||[],this.overlays)0!==e.length&&-1===e.indexOf(n)||this.overlays[n].setVisible(!0)}},{key:"removeAllOverlays",value:function(){for(var t in this.overlays)this.instance.destroyOverlay(this.overlays[t]);this.overlays={},this.overlayPositions=null,this.overlayPlacements={}}},{key:"removeOverlay",value:function(t,e){var i=this.overlays[t];i&&(i.setVisible(!1),e||this.instance.destroyOverlay(i),delete this.overlays[t],this.overlayPositions&&delete this.overlayPositions[t],this.overlayPlacements&&delete this.overlayPlacements[t])}},{key:"removeOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n=0,o=e.length;n<o;n++)this.removeOverlay(arguments[n])}},{key:"getLabel",value:function(){var t=this.getLabelOverlay();return null!=t?t.getLabel():null}},{key:"getLabelOverlay",value:function(){return this.getOverlay(Wg)}},{key:"setLabel",value:function(t){var e,i,n,o=this.getLabelOverlay();if(o)if(Bd(t)||qd(t))o.setLabel(t);else{var s=t;s.label&&o.setLabel(s.label),s.location&&(o.location=s.location)}else{var r=Bd(t)||qd(t)?{label:t}:t;e=this,n=Rd({cssClass:(i=r).cssClass,id:Wg,component:e},i),o=new Fg(e.instance,e,n),this.overlays[Wg]=o}}}]),i}($g),Jg=["connectorStyle","connectorHoverStyle","connectorOverlays","connector","connectionType","connectorClass","connectorHoverClass"],tv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;wd(this,i),(o=e.call(this,t,n)).instance=t,Cd(Td(o),"connections",[]),Cd(Td(o),"endpoint",void 0),Cd(Td(o),"element",void 0),Cd(Td(o),"elementId",void 0),Cd(Td(o),"dragAllowedWhenFull",!0),Cd(Td(o),"timestamp",void 0),Cd(Td(o),"portId",void 0),Cd(Td(o),"maxConnections",void 0),Cd(Td(o),"proxiedBy",void 0),Cd(Td(o),"connectorClass",void 0),Cd(Td(o),"connectorHoverClass",void 0),Cd(Td(o),"finalEndpoint",void 0),Cd(Td(o),"enabled",!0),Cd(Td(o),"isSource",void 0),Cd(Td(o),"isTarget",void 0),Cd(Td(o),"isTemporarySource",void 0),Cd(Td(o),"connectionCost",1),Cd(Td(o),"connectionsDirected",void 0),Cd(Td(o),"connectionsDetachable",void 0),Cd(Td(o),"reattachConnections",void 0),Cd(Td(o),"currentAnchorClass",void 0),Cd(Td(o),"referenceEndpoint",void 0),Cd(Td(o),"edgeType",void 0),Cd(Td(o),"connector",void 0),Cd(Td(o),"connectorOverlays",void 0),Cd(Td(o),"connectorStyle",void 0),Cd(Td(o),"connectorHoverStyle",void 0),Cd(Td(o),"deleteOnEmpty",void 0),Cd(Td(o),"uuid",void 0),Cd(Td(o),"scope",void 0),Cd(Td(o),"_anchor",void 0),Cd(Td(o),"defaultLabelLocation",[.5,.5]),o.appendToDefaultType({edgeType:n.edgeType,maxConnections:null==n.maxConnections?o.instance.defaults.maxConnections:n.maxConnections,paintStyle:n.paintStyle||o.instance.defaults.endpointStyle,hoverPaintStyle:n.hoverPaintStyle||o.instance.defaults.endpointHoverStyle,connectorStyle:n.connectorStyle,connectorHoverStyle:n.connectorHoverStyle,connectorClass:n.connectorClass,connectorHoverClass:n.connectorHoverClass,connectorOverlays:n.connectorOverlays,connector:n.connector}),o.enabled=!(!1===n.enabled),o.visible=!0,o.element=n.element,o.uuid=n.uuid,o.portId=n.portId,o.elementId=n.elementId,o.connectionCost=null==n.connectionCost?1:n.connectionCost,o.connectionsDirected=n.connectionsDirected,o.currentAnchorClass="",o.events={},o.connectorOverlays=n.connectorOverlays,o.connectorStyle=n.connectorStyle,o.connectorHoverStyle=n.connectorHoverStyle,o.connector=n.connector,o.edgeType=n.edgeType,o.connectorClass=n.connectorClass,o.connectorHoverClass=n.connectorHoverClass,o.deleteOnEmpty=!0===n.deleteOnEmpty,o.isSource=n.source||!1,o.isTemporarySource=n.isTemporarySource||!1,o.isTarget=n.target||!1,o.connections=n.connections||[],o.scope=n.scope||t.defaultScope,o.timestamp=null,o.reattachConnections=n.reattachConnections||t.defaults.reattachConnections,o.connectionsDetachable=t.defaults.connectionsDetachable,!1===n.connectionsDetachable&&(o.connectionsDetachable=!1),o.dragAllowedWhenFull=!1!==n.dragAllowedWhenFull,n.onMaxConnections&&o.bind(ep,n.onMaxConnections);var s=n.endpoint||n.existingEndpoint||t.defaults.endpoint;if(o.setEndpoint(s),null!=n.preparedAnchor)o.setPreparedAnchor(n.preparedAnchor);else{var r=n.anchor?n.anchor:n.anchors?n.anchors:t.defaults.anchor||Cp.Top;o.setAnchor(r)}var a=[Mf,n.type||""].join(" ");return o.addType(a,n.data),o}return Sd(i,[{key:"getIdPrefix",value:function(){return"_jsplumb_e"}},{key:"getTypeDescriptor",value:function(){return"endpoint"}},{key:"getXY",value:function(){return{x:this.endpoint.x,y:this.endpoint.y}}},{key:"getDefaultOverlayKey",value:function(){return"endpointOverlays"}},{key:"_updateAnchorClass",value:function(){var t=this._anchor&&this._anchor.cssClass;if(null!=t&&t.length>0){var e=this.instance.endpointAnchorClassPrefix+"-"+this.currentAnchorClass;this.currentAnchorClass=t;var i=this.instance.endpointAnchorClassPrefix+(this.currentAnchorClass?"-"+this.currentAnchorClass:"");e!==i&&(this.removeClass(e),this.addClass(i),this.instance.removeClass(this.element,e),this.instance.addClass(this.element,i))}}},{key:"setPreparedAnchor",value:function(t){return this.instance.router.setAnchor(this,t),this._updateAnchorClass(),this}},{key:"_anchorLocationChanged",value:function(t){this.fire("anchor:changed",{endpoint:this,anchor:t}),this._updateAnchorClass()}},{key:"setAnchor",value:function(t){var e=this.instance.router.prepareAnchor(t);return this.setPreparedAnchor(e),this}},{key:"addConnection",value:function(t){this.connections.push(t),this.instance._refreshEndpoint(this)}},{key:"detachFromConnection",value:function(t,e,i){(e=null==e?this.connections.indexOf(t):e)>=0&&(this.connections.splice(e,1),this.instance._refreshEndpoint(this)),!i&&this.deleteOnEmpty&&0===this.connections.length&&this.instance.deleteEndpoint(this)}},{key:"deleteEveryConnection",value:function(t){for(var e=this.connections.length,i=0;i<e;i++)this.instance.deleteConnection(this.connections[0],t)}},{key:"detachFrom",value:function(t){for(var e=[],i=0;i<this.connections.length;i++)this.connections[i].endpoints[1]!==t&&this.connections[i].endpoints[0]!==t||e.push(this.connections[i]);for(var n=0,o=e.length;n<o;n++)this.instance.deleteConnection(e[0]);return this}},{key:"setVisible",value:function(t,e,n){if(Od(Ad(i.prototype),"setVisible",this).call(this,t),this.endpoint.setVisible(t),t?this.showOverlays():this.hideOverlays(),!e)for(var o=0;o<this.connections.length;o++)if(this.connections[o].setVisible(t),!n){var s=this===this.connections[o].endpoints[0]?1:0;1===this.connections[o].endpoints[s].connections.length&&this.connections[o].endpoints[s].setVisible(t,!0,!0)}}},{key:"applyType",value:function(t,e){Od(Ad(i.prototype),"applyType",this).call(this,t,e),this.setPaintStyle(t.endpointStyle||t.paintStyle),this.setHoverPaintStyle(t.endpointHoverStyle||t.hoverPaintStyle),this.connectorStyle=t.connectorStyle,this.connectorHoverStyle=t.connectorHoverStyle,this.connector=t.connector,this.connectorOverlays=t.connectorOverlays,this.edgeType=t.edgeType,null!=t.maxConnections&&(this.maxConnections=t.maxConnections),t.scope&&(this.scope=t.scope),Rd(t,Jg),this.instance.applyEndpointType(this,t)}},{key:"destroy",value:function(){Od(Ad(i.prototype),"destroy",this).call(this),this.deleted=!0,null!=this.endpoint&&this.instance.destroyEndpoint(this)}},{key:"isFull",value:function(){return 0===this.maxConnections||!(this.isFloating()||this.maxConnections<0||this.connections.length<this.maxConnections)}},{key:"isFloating",value:function(){return this.instance.router.isFloating(this)}},{key:"isConnectedTo",value:function(t){var e=!1;if(t)for(var i=0;i<this.connections.length;i++)if(this.connections[i].endpoints[1]===t||this.connections[i].endpoints[0]===t){e=!0;break}return e}},{key:"setDragAllowedWhenFull",value:function(t){this.dragAllowedWhenFull=t}},{key:"getUuid",value:function(){return this.uuid}},{key:"connectorSelector",value:function(){return this.connections[0]}},{key:"prepareEndpoint",value:function(t,e){var i,n={cssClass:this.cssClass,endpoint:this};if(pu(t,Xm)){var o=t;(i=Ym.clone(o)).classes=n.cssClass.split(" ")}else if(Bd(t))i=Ym.get(this,t,n);else{var s=t;Rd(n,s.options||{}),i=Ym.get(this,s.type,n)}return i.typeId=e,i}},{key:"setEndpoint",value:function(t){var e=this.prepareEndpoint(t);this.setPreparedEndpoint(e)}},{key:"setPreparedEndpoint",value:function(t){null!=this.endpoint&&this.instance.destroyEndpoint(this),this.endpoint=t}},{key:"addClass",value:function(t,e){Od(Ad(i.prototype),"addClass",this).call(this,t,e),null!=this.endpoint&&this.endpoint.addClass(t)}},{key:"removeClass",value:function(t,e){Od(Ad(i.prototype),"removeClass",this).call(this,t,e),null!=this.endpoint&&this.endpoint.removeClass(t)}}]),i}(Qg),ev="anchors",iv="connector";function nv(t,e,i,n,o,s,r){var a;if(e)t.endpoints[i]=e,e.addConnection(t);else{var l=r||t.endpointSpec||t.endpointsSpec[i]||t.instance.defaults.endpoints[i]||t.instance.defaults.endpoint,c=t.endpointStyles[i]||t.endpointStyle||t.instance.defaults.endpointStyles[i]||t.instance.defaults.endpointStyle;null==c.fill&&null!=t.paintStyle&&(c.fill=t.paintStyle.stroke),null==c.outlineStroke&&null!=t.paintStyle&&(c.outlineStroke=t.paintStyle.outlineStroke),null==c.outlineWidth&&null!=t.paintStyle&&(c.outlineWidth=t.paintStyle.outlineWidth);var h=t.endpointHoverStyles[i]||t.endpointHoverStyle||t.endpointHoverStyle||t.instance.defaults.endpointHoverStyles[i]||t.instance.defaults.endpointHoverStyle;null!=t.hoverPaintStyle&&(null==h&&(h={}),null==h.fill&&(h.fill=t.hoverPaintStyle.stroke));var d=t.uuids?t.uuids[i]:null;n=null!=n?n:null!=t.instance.defaults.anchors?t.instance.defaults.anchors[i]:t.instance.defaults.anchor,a=t.instance._internal_newEndpoint({paintStyle:c,hoverPaintStyle:h,endpoint:l,connections:[t],uuid:d,element:o,scope:t.scope,anchor:n,reattachConnections:t.reattach||t.instance.defaults.reattachConnections,connectionsDetachable:t.detachable||t.instance.defaults.connectionsDetachable}),t.instance._refreshEndpoint(a),null==e&&(a.deleteOnEmpty=!0),t.endpoints[i]=a}return a}var ov=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;wd(this,i),(o=e.call(this,t,n)).instance=t,Cd(Td(o),"connector",void 0),Cd(Td(o),"defaultLabelLocation",.5),Cd(Td(o),"scope",void 0),Cd(Td(o),"typeId","_jsplumb_connection"),Cd(Td(o),"previousConnection",void 0),Cd(Td(o),"sourceId",void 0),Cd(Td(o),"targetId",void 0),Cd(Td(o),"source",void 0),Cd(Td(o),"target",void 0),Cd(Td(o),"detachable",!0),Cd(Td(o),"reattach",!1),Cd(Td(o),"uuids",void 0),Cd(Td(o),"cost",1),Cd(Td(o),"directed",void 0),Cd(Td(o),"endpoints",[null,null]),Cd(Td(o),"endpointStyles",void 0),Cd(Td(o),"endpointSpec",void 0),Cd(Td(o),"endpointsSpec",void 0),Cd(Td(o),"endpointStyle",{}),Cd(Td(o),"endpointHoverStyle",{}),Cd(Td(o),"endpointHoverStyles",void 0),Cd(Td(o),"suspendedEndpoint",void 0),Cd(Td(o),"suspendedIndex",void 0),Cd(Td(o),"suspendedElement",void 0),Cd(Td(o),"suspendedElementId",void 0),Cd(Td(o),"suspendedElementType",void 0),Cd(Td(o),"_forceReattach",void 0),Cd(Td(o),"_forceDetach",void 0),Cd(Td(o),"proxies",[]),Cd(Td(o),"pending",!1),o.id=n.id,o.previousConnection=n.previousConnection,o.source=n.source,o.target=n.target,n.sourceEndpoint?(o.source=n.sourceEndpoint.element,o.sourceId=n.sourceEndpoint.elementId):o.sourceId=t.getId(o.source),n.targetEndpoint?(o.target=n.targetEndpoint.element,o.targetId=n.targetEndpoint.elementId):o.targetId=t.getId(o.target),o.scope=n.scope;var s=n.anchors?n.anchors[0]:n.anchor,r=n.anchors?n.anchors[1]:n.anchor;t.manage(o.source),t.manage(o.target),o.visible=!0,o.params={cssClass:n.cssClass,hoverClass:n.hoverClass,"pointer-events":n["pointer-events"],overlays:n.overlays},o.lastPaintedAt=null,n.type&&(n.endpoints=n.endpoints||o.instance._deriveEndpointAndAnchorSpec(n.type).endpoints),o.endpointSpec=n.endpoint,o.endpointsSpec=n.endpoints||[null,null],o.endpointStyle=n.endpointStyle,o.endpointHoverStyle=n.endpointHoverStyle,o.endpointStyles=n.endpointStyles||[null,null],o.endpointHoverStyles=n.endpointHoverStyles||[null,null],o.paintStyle=n.paintStyle,o.hoverPaintStyle=n.hoverPaintStyle,o.uuids=n.uuids,o.makeEndpoint(!0,o.source,o.sourceId,s,n.sourceEndpoint),o.makeEndpoint(!1,o.target,o.targetId,r,n.targetEndpoint),o.scope||(o.scope=o.endpoints[0].scope),null!=n.deleteEndpointsOnEmpty&&(o.endpoints[0].deleteOnEmpty=n.deleteEndpointsOnEmpty,o.endpoints[1].deleteOnEmpty=n.deleteEndpointsOnEmpty);var a=o.instance.defaults.connectionsDetachable;!1===n.detachable&&(a=!1),!1===o.endpoints[0].connectionsDetachable&&(a=!1),!1===o.endpoints[1].connectionsDetachable&&(a=!1),o.endpointsSpec=n.endpoints||[null,null],o.endpointSpec=n.endpoint||null;var l=n.reattach||o.endpoints[0].reattachConnections||o.endpoints[1].reattachConnections||o.instance.defaults.reattachConnections,c=Rd({},o.endpoints[0].connectorStyle||o.endpoints[1].connectorStyle||n.paintStyle||o.instance.defaults.paintStyle);if(o.appendToDefaultType({detachable:a,reattach:l,paintStyle:c,hoverPaintStyle:Rd({},o.endpoints[0].connectorHoverStyle||o.endpoints[1].connectorHoverStyle||n.hoverPaintStyle||o.instance.defaults.hoverPaintStyle)}),n.outlineWidth&&(c.outlineWidth=n.outlineWidth),n.outlineColor&&(c.outlineStroke=n.outlineColor),n.lineWidth&&(c.strokeWidth=n.lineWidth),n.color&&(c.stroke=n.color),!o.instance._suspendDrawing){var h=o.instance._suspendedAt||su();o.instance._paintEndpoint(o.endpoints[0],{timestamp:h}),o.instance._paintEndpoint(o.endpoints[1],{timestamp:h})}o.cost=n.cost||o.endpoints[0].connectionCost,o.directed=n.directed,null==n.directed&&(o.directed=o.endpoints[0].connectionsDirected);var d=Rd({},o.endpoints[1].parameters);Rd(d,o.endpoints[0].parameters),Rd(d,o.parameters),o.parameters=d,o.paintStyleInUse=o.getPaintStyle()||{},o._setConnector(o.endpoints[0].connector||o.endpoints[1].connector||n.connector||o.instance.defaults.connector,!0);var u=null!=n.data&&Fd(n.data)?n.data:{};o.setData(u);var p=[Mf,o.endpoints[0].edgeType,o.endpoints[1].edgeType,n.type].join(" ");return/[^\s]/.test(p)&&o.addType(p,n.data),o}return Sd(i,[{key:"getIdPrefix",value:function(){return"_jsPlumb_c"}},{key:"getDefaultOverlayKey",value:function(){return"connectionOverlays"}},{key:"getXY",value:function(){return{x:this.connector.x,y:this.connector.y}}},{key:"makeEndpoint",value:function(t,e,i,n,o){return i=i||this.instance.getId(e),nv(this,o,t?0:1,n,e)}},{key:"getTypeDescriptor",value:function(){return i.type}},{key:"isDetachable",value:function(t){return!1!==this.detachable&&(null!=t?!0===t.connectionsDetachable:!0===this.detachable)}},{key:"setDetachable",value:function(t){this.detachable=!0===t}},{key:"isReattach",value:function(){return!0===this.reattach||!0===this.endpoints[0].reattachConnections||!0===this.endpoints[1].reattachConnections}},{key:"setReattach",value:function(t){this.reattach=!0===t}},{key:"applyType",value:function(t,e){var n=null;null!=t.connector&&(null==(n=this.getCachedTypeItem(iv,e.connector))&&(n=this.prepareConnector(t.connector,e.connector),this.cacheTypeItem(iv,n,e.connector)),this.setPreparedConnector(n)),Od(Ad(i.prototype),"applyType",this).call(this,t,e),null!=t.detachable&&this.setDetachable(t.detachable),null!=t.reattach&&this.setReattach(t.reattach),t.scope&&(this.scope=t.scope);var o=null;t.anchor?null==(o=this.getCachedTypeItem(ev,e.anchor))&&(o=[_g(t.anchor),_g(t.anchor)],this.cacheTypeItem(ev,o,e.anchor)):t.anchors&&null==(o=this.getCachedTypeItem(ev,e.anchors))&&(o=[_g(t.anchors[0]),_g(t.anchors[1])],this.cacheTypeItem(ev,o,e.anchors)),null!=o&&(this.instance.router.setConnectionAnchors(this,o),this.instance.router.isDynamicAnchor(this.endpoints[1])&&this.instance.repaint(this.endpoints[1].element)),this.instance.applyConnectorType(this.connector,t)}},{key:"addClass",value:function(t,e){Od(Ad(i.prototype),"addClass",this).call(this,t),e&&(this.endpoints[0].addClass(t),this.endpoints[1].addClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.addClass(t)),this.connector&&this.instance.addConnectorClass(this.connector,t)}},{key:"removeClass",value:function(t,e){Od(Ad(i.prototype),"removeClass",this).call(this,t),e&&(this.endpoints[0].removeClass(t),this.endpoints[1].removeClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.removeClass(t)),this.connector&&this.instance.removeConnectorClass(this.connector,t)}},{key:"setVisible",value:function(t){Od(Ad(i.prototype),"setVisible",this).call(this,t),this.connector&&this.instance.setConnectorVisible(this.connector,t),this.instance._paintConnection(this)}},{key:"destroy",value:function(){Od(Ad(i.prototype),"destroy",this).call(this),this.endpoints=null,this.endpointStyles=null,this.source=null,this.target=null,this.instance.destroyConnector(this),this.connector=null,this.deleted=!0}},{key:"getUuids",value:function(){return[this.endpoints[0].getUuid(),this.endpoints[1].getUuid()]}},{key:"prepareConnector",value:function(t,e){var i,n={cssClass:this.params.cssClass,hoverClass:this.params.hoverClass,"pointer-events":this.params["pointer-events"]};if(Bd(t))i=this.instance._makeConnector(this,t,n);else{var o=t;i=this.instance._makeConnector(this,o.type,Hd(o.options||{},n))}return null!=e&&(i.typeId=e),i}},{key:"setPreparedConnector",value:function(t,e,i,n){if(this.connector!==t){var o,s="";if(null!=this.connector&&(o=this.connector,s=this.instance.getConnectorClass(this.connector),this.instance.destroyConnector(this)),this.connector=t,n&&this.cacheTypeItem(iv,t,n),this.addClass(s),null!=o){var r=this.getOverlays();for(var a in r)this.instance.reattachOverlay(r[a],this)}e||this.instance._paintConnection(this)}}},{key:"_setConnector",value:function(t,e,i,n){var o=this.prepareConnector(t,n);this.setPreparedConnector(o,e,i,n)}},{key:"replaceEndpoint",value:function(t,e){var i=this.endpoints[t],n=(i.elementId,this.instance.getEndpoints(i.element)),o=n.indexOf(i),s=nv(this,null,t,null,i.element,0,e);this.endpoints[t]=s,n.splice(o,1,s),i.detachFromConnection(this),this.instance.deleteEndpoint(i),this.instance.fire("endpoint:replaced",{previous:i,current:s})}}]),i}(Qg);function sv(t){if(null==t.path){var e=Rd({"jtk-overlay-id":t.id},t.attributes);t.path=bp(gp,e);var i=t.instance.overlayClass+" "+(t.cssClass?t.cssClass:"");t.instance.addClass(t.path,i),t.path.jtk={overlay:t}}var n=t.path.parentNode;if(null==n){if(t.component instanceof ov){var o=t.component.connector;n=null!=o?o.canvas:null}else if(t.component instanceof tv){var s=t.component.endpoint;n=null!=s?s.canvas:s}null!=n&&wp(n,t.path,1)}return t.path}Cd(ov,"type","connection"),function(t){Ed(i,t);var e=Pd(i);function i(){var t;wd(this,i);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return Cd(Td(t=e.call.apply(e,[this].concat(o))),"path",void 0),t}}(Rg);var rv=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"paint",value:function(t,e,i,n){if(null!=i){var o=[t.x,t.y],s=[t.w,t.h];if(null!=n&&(n.xmin<0&&(o[0]+=n.xmin),n.ymin<0&&(o[1]+=n.ymin),s[0]=n.xmax+(n.xmin<0?-n.xmin:0),s[1]=n.ymax+(n.ymin<0?-n.ymin:0)),isFinite(s[0])&&isFinite(s[1])){var r={width:""+(s[0]||0),height:""+(s[1]||0)};e.containerType===iu.HTML?yp(t.canvas,Rd(r,{style:xp([o[0],o[1]])})):yp(t.canvas,Rd(r,{x:o[0],y:o[1]}))}}}}]),t}();function av(t,e,i,n){!function(t,e){if(null!=e.canvas)return e.canvas;var i=bp(mp,{style:"",width:"0",height:"0","pointer-events":Lu,position:$u});e.canvas=i,t._appendElement(e.canvas,t.getContainer()),null!=e.cssClass&&t.addClass(i,e.cssClass),t.addClass(i,t.connectorClass),i.jtk=i.jtk||{},i.jtk.connector=e}(t,e),rv.paint(e,t,i,n);var o=[0,0];if(n.xmin<0&&(o[0]=-n.xmin),n.ymin<0&&(o[1]=-n.ymin),e.segments.length>0){var s={d:t.getPathData(e),transform:"translate("+o[0]+","+o[1]+")","pointer-events":"visibleStroke"},r=null;if(i.outlineStroke){var a=i.outlineWidth||1,l=i.strokeWidth+2*a;(r=Rd({},i)).stroke=i.outlineStroke,r.strokeWidth=l,null==e.bgPath?(e.bgPath=bp(gp,s),t.addClass(e.bgPath,t.connectorOutlineClass),wp(e.canvas,e.bgPath,0)):yp(e.bgPath,s),_p(e.canvas,e.bgPath,r)}var c=e;null==c.path?(c.path=bp(gp,s),wp(c.canvas,c.path,i.outlineStroke?1:0)):(c.path.parentNode!==c.canvas&&wp(c.canvas,c.path,i.outlineStroke?1:0),yp(e.path,s)),_p(e.canvas,e.path,i)}}var lv=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"getEndpointElement",value:function(t){if(null!=t.canvas)return t.canvas;var e=bp(mp,{style:"",width:"0",height:"0","pointer-events":"all",position:$u});t.canvas=e;var i=t.classes.join(" ");t.instance.addClass(e,i);for(var n=t.endpoint.scope.split(/\s/),o=0;o<n.length;o++)t.instance.setAttribute(e,Fu+n[o],Tf);return t.instance._appendElementToContainer(e),null!=t.cssClass&&t.instance.addClass(e,t.cssClass),t.instance.addClass(e,t.instance.endpointClass),e.jtk=e.jtk||{},e.jtk.endpoint=t.endpoint,e.style.display=!1!==t.endpoint.visible?Iu:Lu,e}},{key:"paint",value:function(t,e,i){if(!0!==t.endpoint.deleted){this.getEndpointElement(t),rv.paint(t,t.instance,i);var n=Rd({},i);n.outlineStroke&&(n.stroke=n.outlineStroke),null==t.node?(t.node=e.makeNode(t,n),t.canvas.appendChild(t.node)):null!=e.updateNode&&e.updateNode(t,t.node),_p(t.canvas,t.node,n)}}}]),t}(),cv=function(){function t(e,i){wd(this,t),this.connection=e,Cd(this,"type",void 0),Cd(this,"edited",!1),Cd(this,"stub",void 0),Cd(this,"sourceStub",void 0),Cd(this,"targetStub",void 0),Cd(this,"maxStub",void 0),Cd(this,"typeId",void 0),Cd(this,"gap",void 0),Cd(this,"sourceGap",void 0),Cd(this,"targetGap",void 0),Cd(this,"segments",[]),Cd(this,"totalLength",0),Cd(this,"segmentProportions",[]),Cd(this,"segmentProportionalLengths",[]),Cd(this,"paintInfo",null),Cd(this,"strokeWidth",void 0),Cd(this,"x",void 0),Cd(this,"y",void 0),Cd(this,"w",void 0),Cd(this,"h",void 0),Cd(this,"segment",void 0),Cd(this,"bounds",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"cssClass",void 0),Cd(this,"hoverClass",void 0),Cd(this,"geometry",void 0),this.stub=i.stub||this.getDefaultStubs(),this.sourceStub=Array.isArray(this.stub)?this.stub[0]:this.stub,this.targetStub=Array.isArray(this.stub)?this.stub[1]:this.stub,this.gap=i.gap||0,this.sourceGap=Array.isArray(this.gap)?this.gap[0]:this.gap,this.targetGap=Array.isArray(this.gap)?this.gap[1]:this.gap,this.maxStub=Math.max(this.sourceStub,this.targetStub),this.cssClass=i.cssClass||"",this.hoverClass=i.hoverClass||""}return Sd(t,[{key:"getTypeDescriptor",value:function(){return"connector"}},{key:"getIdPrefix",value:function(){return"_jsplumb_connector"}},{key:"setGeometry",value:function(t,e){this.geometry=t,this.edited=null!=t&&!e}},{key:"exportGeometry",value:function(){return this.geometry}},{key:"importGeometry",value:function(t){return this.geometry=t,!0}},{key:"resetGeometry",value:function(){this.geometry=null,this.edited=!1}},{key:"transformAnchorPlacement",value:function(t,e,i){return{x:t.x,y:t.y,ox:t.ox,oy:t.oy,curX:t.curX+e,curY:t.curY+i}}},{key:"resetBounds",value:function(){this.bounds={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}}},{key:"findSegmentForPoint",value:function(t,e){for(var i={d:1/0,s:null,x:null,y:null,l:null,x1:null,y1:null,x2:null,y2:null,index:null,connectorLocation:null},n=0;n<this.segments.length;n++){var o=this.segments[n].findClosestPointOnPath(t,e);o.d<i.d&&(i.d=o.d,i.l=o.l,i.x=o.x,i.y=o.y,i.s=this.segments[n],i.x1=o.x1,i.x2=o.x2,i.y1=o.y1,i.y2=o.y2,i.index=n,i.connectorLocation=this.segmentProportions[n][0]+o.l*(this.segmentProportions[n][1]-this.segmentProportions[n][0]))}return i}},{key:"lineIntersection",value:function(t,e,i,n){for(var o=[],s=0;s<this.segments.length;s++)o.push.apply(o,this.segments[s].lineIntersection(t,e,i,n));return o}},{key:"boxIntersection",value:function(t,e,i,n){for(var o=[],s=0;s<this.segments.length;s++)o.push.apply(o,this.segments[s].boxIntersection(t,e,i,n));return o}},{key:"boundingBoxIntersection",value:function(t){for(var e=[],i=0;i<this.segments.length;i++)e.push.apply(e,this.segments[i].boundingBoxIntersection(t));return e}},{key:"_updateSegmentProportions",value:function(){for(var t=0,e=0;e<this.segments.length;e++){var i=this.segments[e].getLength();this.segmentProportionalLengths[e]=i/this.totalLength,this.segmentProportions[e]=[t,t+=i/this.totalLength]}}},{key:"_findSegmentForLocation",value:function(t,e){var i,n,o;if(e&&(t=t>0?t/this.totalLength:(this.totalLength+t)/this.totalLength),1===t)i=this.segments.length-1,o=1;else if(0===t)o=0,i=0;else if(t>=.5){for(i=0,o=0,n=this.segmentProportions.length-1;n>-1;n--)if(this.segmentProportions[n][1]>=t&&this.segmentProportions[n][0]<=t){i=n,o=(t-this.segmentProportions[n][0])/this.segmentProportionalLengths[n];break}}else for(i=this.segmentProportions.length-1,o=1,n=0;n<this.segmentProportions.length;n++)if(this.segmentProportions[n][1]>=t){i=n,o=(t-this.segmentProportions[n][0])/this.segmentProportionalLengths[n];break}return{segment:this.segments[i],proportion:o,index:i}}},{key:"_addSegment",value:function(t,e){if(e.x1!==e.x2||e.y1!==e.y2){var i=new t(e);this.segments.push(i),this.totalLength+=i.getLength(),this.updateBounds(i)}}},{key:"_clearSegments",value:function(){this.totalLength=0,this.segments.length=0,this.segmentProportions.length=0,this.segmentProportionalLengths.length=0}},{key:"getLength",value:function(){return this.totalLength}},{key:"_prepareCompute",value:function(t){this.strokeWidth=t.strokeWidth;var e=t.sourcePos.curX,i=t.targetPos.curX,n=t.sourcePos.curY,o=t.targetPos.curY,s=am({x:e,y:n},{x:i,y:o}),r=i<e,a=o<n,l=[t.sourcePos.ox,t.sourcePos.oy],c=[t.targetPos.ox,t.targetPos.oy],h=r?i:e,d=a?o:n,u=Math.abs(i-e),p=Math.abs(o-n),f=0===l[0]&&0===l[1],m=0===c[0]&&0===c[1];if(f||m){var g=u>p?0:1,v=[1,0][g],y=0===g?e:n,b=0===g?i:o;f&&(l[g]=y>b?-1:1,l[v]=0),m&&(c[g]=y>b?1:-1,c[v]=0)}var x=r?u+this.sourceGap*l[0]:this.sourceGap*l[0],_=a?p+this.sourceGap*l[1]:this.sourceGap*l[1],w=r?this.targetGap*c[0]:u+this.targetGap*c[0],k=a?this.targetGap*c[1]:p+this.targetGap*c[1],S=l[0]*c[0]+l[1]*c[1],C={sx:x,sy:_,tx:w,ty:k,xSpan:Math.abs(w-x),ySpan:Math.abs(k-_),mx:(x+w)/2,my:(_+k)/2,so:l,to:c,x:h,y:d,w:u,h:p,segment:s,startStubX:x+l[0]*this.sourceStub,startStubY:_+l[1]*this.sourceStub,endStubX:w+c[0]*this.targetStub,endStubY:k+c[1]*this.targetStub,isXGreaterThanStubTimes2:Math.abs(x-w)>this.sourceStub+this.targetStub,isYGreaterThanStubTimes2:Math.abs(_-k)>this.sourceStub+this.targetStub,opposite:-1===S,perpendicular:0===S,orthogonal:1===S,sourceAxis:0===l[0]?"y":"x",points:[h,d,u,p,x,_,w,k],stubs:[this.sourceStub,this.targetStub]};return C.anchorOrientation=C.opposite?"opposite":C.orthogonal?"orthogonal":"perpendicular",C}},{key:"updateBounds",value:function(t){var e=t.extents;this.bounds.xmin=Math.min(this.bounds.xmin,e.xmin),this.bounds.xmax=Math.max(this.bounds.xmax,e.xmax),this.bounds.ymin=Math.min(this.bounds.ymin,e.ymin),this.bounds.ymax=Math.max(this.bounds.ymax,e.ymax)}},{key:"dumpSegmentsToConsole",value:function(){cu("SEGMENTS:");for(var t=0;t<this.segments.length;t++)cu(this.segments[t].type,""+this.segments[t].getLength(),""+this.segmentProportions[t])}},{key:"pointOnPath",value:function(t,e){var i=this._findSegmentForLocation(t,e);return i.segment&&i.segment.pointOnPath(i.proportion,!1)||{x:0,y:0}}},{key:"gradientAtPoint",value:function(t,e){var i=this._findSegmentForLocation(t,e);return i.segment&&i.segment.gradientAtPoint(i.proportion,!1)||0}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this._findSegmentForLocation(t,i);return n.segment&&n.segment.pointAlongPathFrom(n.proportion,e,!1)||{x:0,y:0}}},{key:"compute",value:function(t){this.paintInfo=this._prepareCompute(t),this._clearSegments(),this._compute(this.paintInfo,t),this.x=this.paintInfo.points[0],this.y=this.paintInfo.points[1],this.w=this.paintInfo.points[2],this.h=this.paintInfo.points[3],this.segment=this.paintInfo.segment,this._updateSegmentProportions()}},{key:"setAnchorOrientation",value:function(t,e){}}]),t}(),hv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"width",void 0),Cd(Td(s),"length",void 0),Cd(Td(s),"foldback",void 0),Cd(Td(s),"direction",void 0),Cd(Td(s),"location",.5),Cd(Td(s),"paintStyle",void 0),Cd(Td(s),"type",i.type),Cd(Td(s),"cachedDimensions",void 0),o=o||{},s.width=o.width||20,s.length=o.length||20,s.direction=(o.direction||1)<0?-1:1,s.foldback=o.foldback||.623,s.paintStyle=o.paintStyle||{strokeWidth:1},s.location=null==o.location?s.location:Array.isArray(o.location)?o.location[0]:o.location,s}return Sd(i,[{key:"draw",value:function(t,e,i){if(t instanceof cv){var n,o,s,r=t;if(this.location>1||this.location<0){var a=this.location<0?1:0;o=cm(n=r.pointAlongPathFrom(a,this.location,!1),r.pointAlongPathFrom(a,this.location-this.direction*this.length/2,!1),this.length)}else if(1===this.location){if(o=cm(n=r.pointOnPath(this.location),r.pointAlongPathFrom(this.location,-this.length),this.length),-1===this.direction){var l=o;o=n,n=l}}else if(0===this.location){if(n=cm(o=r.pointOnPath(this.location),r.pointAlongPathFrom(this.location,this.length),this.length),-1===this.direction){var c=o;o=n,n=c}}else o=cm(n=r.pointAlongPathFrom(this.location,this.direction*this.length/2),r.pointOnPath(this.location),this.length);s=function(t,e,i){var n=sm(t,e),o=Math.atan(-1/n),s=i/2*Math.sin(o),r=i/2*Math.cos(o);return[{x:e.x+r,y:e.y+s},{x:e.x-r,y:e.y-s}]}(n,o,this.width);var h={hxy:n,tail:s,cxy:cm(n,o,this.foldback*this.length)},d=this.paintStyle.stroke||e.stroke,u=this.paintStyle.fill||e.stroke;return{component:t,d:h,"stroke-width":this.paintStyle.strokeWidth||e.strokeWidth,stroke:d,fill:u,xmin:Math.min(n.x,s[0].x,s[1].x),xmax:Math.max(n.x,s[0].x,s[1].x),ymin:Math.min(n.y,s[0].y,s[1].y),ymax:Math.max(n.y,s[0].y,s[1].y)}}}},{key:"updateFrom",value:function(t){}}]),i}(Rg);function dv(t){return t.type===hv.type}Cd(hv,"type","Arrow"),jg(hv.type,hv);var uv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,Cd(Td(s),"type",i.type),s.length=s.length/2,s.foldback=2,s}return i}(hv);function pv(t){return t.type===uv.type}Cd(uv,"type","Diamond"),jg(uv.type,uv);var fv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,Cd(Td(s),"type",i.type),s.foldback=1,s}return i}(hv);function mv(t){return t.type===fv.type}Cd(fv,"type","PlainArrow"),jg("PlainArrow",fv);var gv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"create",void 0),Cd(Td(s),"type",i.type),s.create=o.create,s}return Sd(i,[{key:"updateFrom",value:function(t){}}]),i}(Rg);function vv(t){return t.type===gv.type}Cd(gv,"type","Custom"),jg(gv.type,gv);var yv="paintStyle",bv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"radius",void 0),Cd(Td(o),"defaultOffset",void 0),Cd(Td(o),"defaultInnerRadius",void 0),Cd(Td(o),"type",i.type),n=n||{},o.radius=n.radius||5,o.defaultOffset=.5*o.radius,o.defaultInnerRadius=o.radius/3,o}return i}(Xm);Cd(bv,"type","Dot");var xv={type:bv.type,cls:bv,compute:function(t,e,i,n){var o=e.curX-t.radius,s=e.curY-t.radius,r=2*t.radius,a=2*t.radius;if(n&&n.stroke){var l=n.strokeWidth||1;o-=l,s-=l,r+=2*l,a+=2*l}return t.x=o,t.y=s,t.w=r,t.h=a,[o,s,r,a,t.radius]},getParams:function(t){return{radius:t.radius}}},_v=function t(e,i){wd(this,t),this.instance=e,this.el=i,Cd(this,"group",void 0)},wv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;wd(this,i),(s=e.call(this,t,n)).instance=t,Cd(Td(s),"children",[]),Cd(Td(s),"collapsed",!1),Cd(Td(s),"droppable",void 0),Cd(Td(s),"enabled",void 0),Cd(Td(s),"orphan",void 0),Cd(Td(s),"constrain",void 0),Cd(Td(s),"proxied",void 0),Cd(Td(s),"ghost",void 0),Cd(Td(s),"revert",void 0),Cd(Td(s),"prune",void 0),Cd(Td(s),"dropOverride",void 0),Cd(Td(s),"anchor",void 0),Cd(Td(s),"endpoint",void 0),Cd(Td(s),"connections",{source:[],target:[],internal:[]}),Cd(Td(s),"manager",void 0),Cd(Td(s),"id",void 0),Cd(Td(s),"elId",void 0);var r=s.el;return r._isJsPlumbGroup=!0,r._jsPlumbGroup=Td(s),s.elId=t.getId(n),s.orphan=!0===o.orphan,s.revert=!0!==s.orphan&&!1!==o.revert,s.droppable=!1!==o.droppable,s.ghost=!0===o.ghost,s.enabled=!1!==o.enabled,s.prune=!0!==s.orphan&&!0===o.prune,s.constrain=s.ghost||!0===o.constrain,s.proxied=!1!==o.proxied,s.id=o.id||su(),s.dropOverride=!0===o.dropOverride,s.anchor=o.anchor,s.endpoint=o.endpoint,s.anchor=o.anchor,t.setAttribute(n,Ru,""),s}return Sd(i,[{key:"contentArea",get:function(){return this.instance.getGroupContentArea(this)}},{key:"overrideDrop",value:function(t,e){return this.dropOverride&&(this.revert||this.prune||this.orphan)}},{key:"getAnchor",value:function(t,e){return this.anchor||"Continuous"}},{key:"getEndpoint",value:function(t,e){return this.endpoint||{type:bv.type,options:{radius:10}}}},{key:"add",value:function(t,e){var i=this.instance.getGroupContentArea(this),n=t;if(null!=n._jsPlumbParentGroup){if(n._jsPlumbParentGroup===this)return;n._jsPlumbParentGroup.remove(t,!0,e,!1)}n._jsPlumbParentGroup=this,this.children.push(new _v(this.instance,t)),this.instance._appendElement(n,i),this.manager._updateConnectionsForGroup(this)}},{key:"resolveNode",value:function(t){return null==t?null:Yd(this.children,(function(e){return e.el===t}))}},{key:"remove",value:function(t,e,i,n,o){var s=this.resolveNode(t);null!=s&&this._doRemove(s,e,i,n,o)}},{key:"_doRemove",value:function(t,e,i,n,o){var s=t.el;if(delete s._jsPlumbParentGroup,Kd(this.children,(function(e){return e===t})),e)try{this.instance.getGroupContentArea(this).removeChild(s)}catch(t){cu("Could not remove element from Group "+t)}if(!i){var r={group:this,el:s};o&&(r.targetGroup=o),this.instance.fire("group:member:removed",r)}n||this.manager._updateConnectionsForGroup(this)}},{key:"removeAll",value:function(t,e){for(var i=0,n=this.children.length;i<n;i++){var o=this.children[0];this._doRemove(o,t,e,!0),this.instance.unmanage(o.el,!0)}this.children.length=0,this.manager._updateConnectionsForGroup(this)}},{key:"orphanAll",value:function(){for(var t={},e=0;e<this.children.length;e++){var i=this.manager.orphan(this.children[e].el,!1);t[i.id]=i.pos}return this.children.length=0,t}},{key:"addGroup",value:function(t){if(this.instance.allowNestedGroups&&t!==this){if(this.instance.groupManager.isAncestor(this,t))return!1;null!=t.group&&t.group.removeGroup(t);var e=this.instance.getId(t.el);this.instance.getManagedElements()[e].group=this.elId;var i=this.instance.getOffsetRelativeToRoot(t.el),n=this.collapsed?this.instance.getOffsetRelativeToRoot(this.el):this.instance.getOffsetRelativeToRoot(this.instance.getGroupContentArea(this));t.el._jsPlumbParentGroup=this,this.children.push(t),this.instance._appendElementToGroup(this,t.el),t.group=this;var o={x:i.x-n.x,y:i.y-n.y};return this.instance.setPosition(t.el,o),this.instance.fire("group:nested:added",{parent:this,child:t}),!0}return!1}},{key:"removeGroup",value:function(t){if(t.group===this){var e=t.el,i=this.instance.getGroupContentArea(this);i===e.parentNode&&i.removeChild(t.el);var n=this.instance.getId(t.el),o=this.instance.getManagedElements()[n];o&&delete o.group,this.children=this.children.filter((function(e){return e.id!==t.id})),delete t.group,delete e._jsPlumbParentGroup,this.instance.fire("group:nested:removed",{parent:this,child:t})}}},{key:"getGroups",value:function(){return this.children.filter((function(t){return t.constructor===i}))}},{key:"getNodes",value:function(){return this.children.filter((function(t){return t.constructor===_v}))}},{key:"collapseParent",get:function(){var t=null;if(null==this.group)return null;for(var e=this.group;null!=e;)e.collapsed&&(t=e),e=e.group;return t}}]),i}(_v),kv=function(){function t(e){var i=this;wd(this,t),this.instance=e,Cd(this,"groupMap",{}),Cd(this,"_connectionSourceMap",{}),Cd(this,"_connectionTargetMap",{}),e.bind(Xu,(function(t){var e=i.getGroupFor(t.source),n=i.getGroupFor(t.target);null!=e&&null!=n&&e===n?(i._connectionSourceMap[t.connection.id]=e,i._connectionTargetMap[t.connection.id]=e,eu(e.connections.internal,t.connection)):(null!=e&&(t.target._jsPlumbGroup===e?eu(e.connections.internal,t.connection):eu(e.connections.source,t.connection),i._connectionSourceMap[t.connection.id]=e),null!=n&&(t.source._jsPlumbGroup===n?eu(n.connections.internal,t.connection):eu(n.connections.target,t.connection),i._connectionTargetMap[t.connection.id]=n))})),e.bind(Ju,(function(t){i._cleanupDetachedConnection(t.connection)})),e.bind(Ku,(function(t){var e=t.originalEndpoint.element,n=i.getGroupFor(e),o=t.connection.endpoints[t.index].element,s=i.getGroupFor(o),r=0===t.index?i._connectionSourceMap:i._connectionTargetMap,a=0===t.index?i._connectionTargetMap:i._connectionSourceMap;null!=s?(r[t.connection.id]=s,t.connection.source===t.connection.target&&(a[t.connection.id]=s)):(delete r[t.connection.id],t.connection.source===t.connection.target&&delete a[t.connection.id]),null!=n&&i._updateConnectionsForGroup(n),null!=s&&i._updateConnectionsForGroup(s)}))}return Sd(t,[{key:"_cleanupDetachedConnection",value:function(t){t.proxies.length=0;var e,i=this._connectionSourceMap[t.id];null!=i&&(e=function(e){return e.id===t.id},Kd(i.connections.source,e),Kd(i.connections.target,e),Kd(i.connections.internal,e),delete this._connectionSourceMap[t.id]),null!=(i=this._connectionTargetMap[t.id])&&(e=function(e){return e.id===t.id},Kd(i.connections.source,e),Kd(i.connections.target,e),Kd(i.connections.internal,e),delete this._connectionTargetMap[t.id])}},{key:"addGroup",value:function(t){var e=t.el;if(null!=this.groupMap[t.id])throw new Error("cannot create Group ["+t.id+"]; a Group with that ID exists");if(null!=e._isJsPlumbGroup)throw new Error("cannot create Group ["+t.id+"]; the given element is already a Group");var i=new wv(this.instance,t.el,t);return this.groupMap[i.id]=i,t.collapsed&&this.collapseGroup(i),this.instance.manage(i.el),this.instance.addClass(i.el,Gu),i.manager=this,this._updateConnectionsForGroup(i),this.instance.fire("group:added",{group:i}),i}},{key:"getGroup",value:function(t){var e=t;if(Bd(t)&&null==(e=this.groupMap[t]))throw new Error("No such group ["+t+"]");return e}},{key:"getGroupFor",value:function(t){for(var e=t,i=this.instance.getContainer(),n=!1,o=null;!n;)null==e||e===i?n=!0:e._jsPlumbParentGroup?(o=e._jsPlumbParentGroup,n=!0):e=e.parentNode;return o}},{key:"getGroups",value:function(){var t=[];for(var e in this.groupMap)t.push(this.groupMap[e]);return t}},{key:"removeGroup",value:function(t,e,i,n){var o=this,s=this.getGroup(t);this.expandGroup(s,!0);var r={};return Gd(s.children,(function(t){var e=o.instance.getManagedElements()[o.instance.getId(t.el)];e&&delete e.group})),e?(Gd(s.getGroups(),(function(t){return o.removeGroup(t,e,i)})),s.removeAll(i,n)):(s.group&&Gd(s.children,(function(t){return s.group.add(t.el)})),r=s.orphanAll()),s.group&&s.group.removeGroup(s),this.instance.unmanage(s.el,!0),delete this.groupMap[s.id],this.instance.fire("group:removed",{group:s}),r}},{key:"removeAllGroups",value:function(t,e,i){for(var n in this.groupMap)this.removeGroup(this.groupMap[n],t,e,i)}},{key:"forEach",value:function(t){for(var e in this.groupMap)t(this.groupMap[e])}},{key:"orphan",value:function(t,e){var i=t;if(i._jsPlumbParentGroup){var n=i._jsPlumbParentGroup,o=this.instance.getId(i),s=this.instance.getOffset(t);return!0!==e&&n.group?this.instance._appendElementToGroup(n.group,t):this.instance._appendElementToContainer(t),this.instance.setPosition(t,s),delete i._jsPlumbParentGroup,{id:o,pos:s}}}},{key:"_updateConnectionsForGroup",value:function(t){var e=this;t.connections.source.length=0,t.connections.target.length=0,t.connections.internal.length=0;var i=t.children.slice().map((function(t){return t.el})),n=[];if(Gd(i,(function(t){Array.prototype.push.apply(n,e.instance.getSelector(t,ap))})),Array.prototype.push.apply(i,n),i.length>0){var o,s,r=this.instance.getConnections({source:i,scope:Of},!0),a=this.instance.getConnections({target:i,scope:Of},!0),l={},c=function(i){for(var n=0;n<i.length;n++)l[i[n].id]||(l[i[n].id]=!0,o=e.getGroupFor(i[n].source),s=e.getGroupFor(i[n].target),i[n].source===t.el&&s===t||i[n].target===t.el&&o===t?t.connections.internal.push(i[n]):o===t?(s!==t?t.connections.source.push(i[n]):t.connections.internal.push(i[n]),e._connectionSourceMap[i[n].id]=t):s===t&&(t.connections.target.push(i[n]),e._connectionTargetMap[i[n].id]=t))};c(r),c(a)}}},{key:"_collapseConnection",value:function(t,e,i){var n=t.endpoints[0===e?1:0].element;if(n._jsPlumbParentGroup&&!n._jsPlumbParentGroup.proxied&&n._jsPlumbParentGroup.collapsed)return!1;var o=t.endpoints[0].element._jsPlumbParentGroup,s=null!=o?o.collapseParent||o:null,r=t.endpoints[1].element._jsPlumbParentGroup,a=null!=r?r.collapseParent||r:null;if(null==s||null==a||s.id!==a.id){var l=i.el;return this.instance.getId(l),this.instance.proxyConnection(t,e,l,(function(t,e){return i.getEndpoint(t,e)}),(function(t,e){return i.getAnchor(t,e)})),!0}return!1}},{key:"_expandConnection",value:function(t,e,i){this.instance.unproxyConnection(t,e)}},{key:"isElementDescendant",value:function(t,e){for(var i=this.instance.getContainer();;){if(null==t||t===i)return!1;if(t===e)return!0;t=t.parentNode}}},{key:"collapseGroup",value:function(t){var e=this,i=this.getGroup(t);if(null!=i&&!i.collapsed){var n=i.el;if(null==i.collapseParent){if(this.instance.setGroupVisible(i,!1),i.collapsed=!0,this.instance.removeClass(n,Gu),this.instance.addClass(n,Wu),i.proxied){var o=new Set,s=function(t,n){for(var s=0;s<t.length;s++){var r=t[s];!0===e._collapseConnection(r,n,i)&&o.add(r.id)}};s(i.connections.source,0),s(i.connections.target,1),Gd(i.getGroups(),(function(t){e.cascadeCollapse(i,t,o)}))}this.instance.revalidate(n),this.repaintGroup(i),this.instance.fire("group:collapse",{group:i})}else i.collapsed=!0,this.instance.removeClass(n,Gu),this.instance.addClass(n,Wu)}}},{key:"cascadeCollapse",value:function(t,e,i){var n=this;if(t.proxied){var o=function(e,o){for(var s=0;s<e.length;s++){var r=e[s];i.has(r.id)||!0===n._collapseConnection(r,o,t)&&i.add(r.id)}};o(e.connections.source,0),o(e.connections.target,1)}Gd(e.getGroups(),(function(e){n.cascadeCollapse(t,e,i)}))}},{key:"expandGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(null!=n){var o=n.el;if(null==n.collapseParent){if(this.instance.setGroupVisible(n,!0),n.collapsed=!1,this.instance.addClass(o,Gu),this.instance.removeClass(o,Wu),n.proxied){var s=function(t,e){for(var o=0;o<t.length;o++){var s=t[o];i._expandConnection(s,e,n)}};s(n.connections.source,0),s(n.connections.target,1);Gd(n.getGroups(),(function t(e,n){if(n||e.collapsed){var o=function(t,n){for(var o=0;o<t.length;o++){var s=t[o];i._collapseConnection(s,n,e.collapseParent||e)}};o(e.connections.source,0),o(e.connections.target,1),Gd(e.connections.internal,(function(t){return t.setVisible(!1)})),Gd(e.getGroups(),(function(e){return t(e,!0)}))}else i.expandGroup(e,!0)}))}this.instance.revalidate(o),this.repaintGroup(n),e||this.instance.fire("group:expand",{group:n})}else n.collapsed=!1,this.instance.addClass(o,Gu),this.instance.removeClass(o,Wu)}}},{key:"toggleGroup",value:function(t){null!=(t=this.getGroup(t))&&(t.collapsed?this.expandGroup(t):this.collapseGroup(t))}},{key:"repaintGroup",value:function(t){for(var e=this.getGroup(t).children,i=0;i<e.length;i++)this.instance.revalidate(e[i].el)}},{key:"addToGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(n){for(var o=n.el,s=arguments.length,r=new Array(s>2?s-2:0),a=2;a<s;a++)r[a-2]=arguments[a];Gd(r,(function(t){var s=t,r=null!=s._isJsPlumbGroup,a=s._jsPlumbGroup,l=s._jsPlumbParentGroup;if(l!==n){var c=i.instance.manage(t),h=i.instance.getOffset(t),d=n.collapsed?i.instance.getOffsetRelativeToRoot(o):i.instance.getOffset(i.instance.getGroupContentArea(n));c.group=n.elId,null!=l&&(l.remove(t,!1,e,!1,n),i._updateConnectionsForGroup(l)),r?n.addGroup(a):n.add(t,e);var u=function(t,e){var o=0===e?1:0;t.each((function(t){t.setVisible(!1),t.endpoints[o].element._jsPlumbGroup===n?(t.endpoints[o].setVisible(!1),i._expandConnection(t,o,n)):(t.endpoints[e].setVisible(!1),i._collapseConnection(t,e,n))}))};n.collapsed&&(u(i.instance.select({source:t}),0),u(i.instance.select({target:t}),1)),i.instance.getId(t);var p={x:h.x-d.x,y:h.y-d.y};if(i.instance.setPosition(t,p),i._updateConnectionsForGroup(n),i.instance.revalidate(t),!e){var f={group:n,el:t,pos:p};l&&(f.sourceGroup=l),i.instance.fire("group:member:added",f)}}}))}}},{key:"removeFromGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(n){for(var o=arguments.length,s=new Array(o>2?o-2:0),r=2;r<o;r++)s[r-2]=arguments[r];Gd(s,(function(t){if(n.collapsed){var o=function(e,o){for(var s=0;s<e.length;s++){var r=e[s];if(r.proxies)for(var a=0;a<r.proxies.length;a++)if(null!=r.proxies[a]){var l=r.proxies[a].originalEp.element;(l===t||i.isElementDescendant(l,t))&&i._expandConnection(r,o,n)}}};o(n.connections.source.slice(),0),o(n.connections.target.slice(),1)}n.remove(t,null,e);var s=i.instance.getManagedElements()[i.instance.getId(t)];s&&delete s.group}))}}},{key:"getAncestors",value:function(t){for(var e=[],i=t.group;null!=i;)e.push(i),i=i.group;return e}},{key:"isAncestor",value:function(t,e){return null!=t&&null!=e&&-1!==this.getAncestors(t).indexOf(e)}},{key:"getDescendants",value:function(t){var e=[];return function t(i){var n=i.getGroups();e.push.apply(e,Id(n)),Gd(n,t)}(t),e}},{key:"isDescendant",value:function(t,e){return null!=t&&null!=e&&-1!==this.getDescendants(e).indexOf(t)}},{key:"reset",value:function(){this._connectionSourceMap={},this._connectionTargetMap={},this.groupMap={}}}]),t}(),Sv=function(){function t(e,i){wd(this,t),this.instance=e,this.entries=i}return Sd(t,[{key:"length",get:function(){return this.entries.length}},{key:"each",value:function(t){return Gd(this.entries,(function(e){return t(e)})),this}},{key:"get",value:function(t){return this.entries[t]}},{key:"addClass",value:function(t,e){return this.each((function(i){return i.addClass(t,e)})),this}},{key:"removeClass",value:function(t,e){return this.each((function(i){return i.removeClass(t,e)})),this}},{key:"removeAllOverlays",value:function(){return this.each((function(t){return t.removeAllOverlays()})),this}},{key:"setLabel",value:function(t){return this.each((function(e){return e.setLabel(t)})),this}},{key:"clear",value:function(){return this.entries.length=0,this}},{key:"map",value:function(t){var e=[];return this.each((function(i){return e.push(t(i))})),e}},{key:"addOverlay",value:function(t){return this.each((function(e){return e.addOverlay(t)})),this}},{key:"removeOverlay",value:function(t){return this.each((function(e){return e.removeOverlay(t)})),this}},{key:"removeOverlays",value:function(){return this.each((function(t){return t.removeOverlays()})),this}},{key:"showOverlay",value:function(t){return this.each((function(e){return e.showOverlay(t)})),this}},{key:"hideOverlay",value:function(t){return this.each((function(e){return e.hideOverlay(t)})),this}},{key:"setPaintStyle",value:function(t){return this.each((function(e){return e.setPaintStyle(t)})),this}},{key:"setHoverPaintStyle",value:function(t){return this.each((function(e){return e.setHoverPaintStyle(t)})),this}},{key:"setSuspendEvents",value:function(t){return this.each((function(e){return e.setSuspendEvents(t)})),this}},{key:"setParameter",value:function(t,e){return this.each((function(i){return i.parameters[t]=e})),this}},{key:"setParameters",value:function(t){return this.each((function(e){return e.parameters=t})),this}},{key:"setVisible",value:function(t){return this.each((function(e){return e.setVisible(t)})),this}},{key:"addType",value:function(t){return this.each((function(e){return e.addType(t)})),this}},{key:"toggleType",value:function(t){return this.each((function(e){return e.toggleType(t)})),this}},{key:"removeType",value:function(t){return this.each((function(e){return e.removeType(t)})),this}},{key:"bind",value:function(t,e){return this.each((function(i){return i.bind(t,e)})),this}},{key:"unbind",value:function(t,e){return this.each((function(i){return i.unbind(t,e)})),this}},{key:"setHover",value:function(t){var e=this;return this.each((function(i){return e.instance.setHover(i,t)})),this}}]),t}(),Cv=function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}return Sd(i,[{key:"setEnabled",value:function(t){return this.each((function(e){return e.enabled=t})),this}},{key:"setAnchor",value:function(t){return this.each((function(e){return e.setAnchor(t)})),this}},{key:"deleteEveryConnection",value:function(){return this.each((function(t){return t.deleteEveryConnection()})),this}},{key:"deleteAll",value:function(){var t=this;return this.each((function(e){return t.instance.deleteEndpoint(e)})),this.clear(),this}}]),i}(Sv),Ev=function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}return Sd(i,[{key:"setDetachable",value:function(t){return this.each((function(e){return e.setDetachable(t)})),this}},{key:"setReattach",value:function(t){return this.each((function(e){return e.setReattach(t)})),this}},{key:"setConnector",value:function(t){return this.each((function(e){return e._setConnector(t)})),this}},{key:"deleteAll",value:function(){var t=this;this.each((function(e){return t.instance.deleteConnection(e)})),this.clear()}},{key:"repaint",value:function(){var t=this;return this.each((function(e){return t.instance._paintConnection(e)})),this}}]),i}(Sv),Av=function t(){wd(this,t),Cd(this,"affectedElements",new Set)};function Mv(){return{x:0,y:0,w:0,h:0,r:0,c:{x:0,y:0},x2:0,y2:0,t:{x:0,y:0,c:{x:0,y:0},w:0,h:0,r:0,x2:0,y2:0,cr:0,sr:0},dirty:!0}}var Tv=function(t,e){var i=0;return e[1]>t[1]?i=-1:e[1]<t[1]&&(i=1),i},Pv=function(t,e){return-1*Tv(t,e)};function Ov(t,e,i,n){!function(t,e,i,n){if(0===e.length)e.push(t);else{for(var o=n?-1:1,s=0,r=e.length,a=Math.floor((s+r)/2);r>s;)i(t,e[a])*o<0?r=a:s=a+1,a=Math.floor((s+r)/2);e.splice(a,0,t)}}([t,e],i,Tv,n)}function Dv(t,e){var i=Zd(e,(function(e){return e[0]===t}));i>-1&&e.splice(i,1)}var Iv,Lv=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),(n=e.call(this)).instance=t,Cd(Td(n),"_currentTransaction",null),Cd(Td(n),"_sortedElements",{xmin:[],xmax:[],ymin:[],ymax:[]}),Cd(Td(n),"_elementMap",new Map),Cd(Td(n),"_transformedElementMap",new Map),Cd(Td(n),"_bounds",{minx:0,maxx:0,miny:0,maxy:0}),n}return Sd(i,[{key:"_updateBounds",value:function(t,e,i){null!=e&&(Dv(t,this._sortedElements.xmin),Dv(t,this._sortedElements.xmax),Dv(t,this._sortedElements.ymin),Dv(t,this._sortedElements.ymax),Ov(t,e.t.x,this._sortedElements.xmin,!1),Ov(t,e.t.x+e.t.w,this._sortedElements.xmax,!0),Ov(t,e.t.y,this._sortedElements.ymin,!1),Ov(t,e.t.y+e.t.h,this._sortedElements.ymax,!0),!0!==i&&this._recalculateBounds())}},{key:"_recalculateBounds",value:function(){this._bounds.minx=this._sortedElements.xmin.length>0?this._sortedElements.xmin[0][1]:0,this._bounds.maxx=this._sortedElements.xmax.length>0?this._sortedElements.xmax[0][1]:0,this._bounds.miny=this._sortedElements.ymin.length>0?this._sortedElements.ymin[0][1]:0,this._bounds.maxy=this._sortedElements.ymax.length>0?this._sortedElements.ymax[0][1]:0}},{key:"recomputeBounds",value:function(){var t=this;this._sortedElements.xmin.length=0,this._sortedElements.xmax.length=0,this._sortedElements.ymin.length=0,this._sortedElements.ymax.length=0,this._elementMap.forEach((function(e,i){t._sortedElements.xmin.push([i,e.t.x]),t._sortedElements.xmax.push([i,e.t.x+e.t.w]),t._sortedElements.ymin.push([i,e.t.y]),t._sortedElements.ymax.push([i,e.t.y+e.t.h])})),this._sortedElements.xmin.sort(Tv),this._sortedElements.ymin.sort(Tv),this._sortedElements.xmax.sort(Pv),this._sortedElements.ymax.sort(Pv),this._recalculateBounds()}},{key:"_finaliseUpdate",value:function(t,e,i){e.t=function(t,e,i,n,o){var s=t+i/2,r=e+n/2,a=Math.cos(o/360*Math.PI*2),l=Math.sin(o/360*Math.PI*2),c=function(t,e){return{x:s+Math.round((t-s)*a-(e-r)*l),y:r+Math.round((e-r)*a-(t-s)*l)}},h=c(t,e),d=c(t+i,e),u=c(t+i,e+n),p=c(t,e+n),f=c(t+i/2,e+n/2),m=Math.min(h.x,d.x,u.x,p.x),g=Math.max(h.x,d.x,u.x,p.x),v=Math.min(h.y,d.y,u.y,p.y),y=Math.max(h.y,d.y,u.y,p.y);return{x:m,y:v,w:g-m,h:y-v,c:f,r:o,x2:g,y2:y,cr:a,sr:l}}(e.x,e.y,e.w,e.h,e.r),this._transformedElementMap.set(t,e.t),!0!==i&&this._updateBounds(t,e,i)}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"startTransaction",value:function(){if(null!=this._currentTransaction)throw new Error("Viewport: cannot start transaction; a transaction is currently active.");this._currentTransaction=new Av}},{key:"endTransaction",value:function(){var t=this;null!=this._currentTransaction&&(this._currentTransaction.affectedElements.forEach((function(e){var i=t.getPosition(e);t._finaliseUpdate(e,i,!0)})),this.recomputeBounds(),this._currentTransaction=null)}},{key:"updateElements",value:function(t){var e=this;Gd(t,(function(t){return e.updateElement(t.id,t.x,t.y,t.width,t.height,t.rotation)}))}},{key:"updateElement",value:function(t,e,i,n,o,s,r){var a=uu(this._elementMap,t,Mv);return a.dirty=null==e&&null==a.x||null==i&&null==a.y||null==n&&null==a.w||null==o&&null==a.h,null!=e&&(a.x=e),null!=i&&(a.y=i),null!=n&&(a.w=n),null!=o&&(a.h=o),null!=s&&(a.r=s||0),a.c.x=a.x+a.w/2,a.c.y=a.y+a.h/2,a.x2=a.x+a.w,a.y2=a.y+a.h,null==this._currentTransaction?this._finaliseUpdate(t,a,r):this._currentTransaction.affectedElements.add(t),a}},{key:"refreshElement",value:function(t,e){var i=this.instance.getManagedElements(),n=i[t]?i[t].el:null;if(null!=n){var o=this.getSize(n),s=this.getOffset(n);return this.updateElement(t,s.x,s.y,o.w,o.h,null,e)}return null}},{key:"getSize",value:function(t){return this.instance.getSize(t)}},{key:"getOffset",value:function(t){return this.instance.getOffset(t)}},{key:"registerElement",value:function(t,e){return this.updateElement(t,0,0,0,0,0,e)}},{key:"addElement",value:function(t,e,i,n,o,s){return this.updateElement(t,e,i,n,o,s)}},{key:"rotateElement",value:function(t,e){var i=uu(this._elementMap,t,Mv);return i.r=e||0,this._finaliseUpdate(t,i),i}},{key:"getBoundsWidth",value:function(){return this._bounds.maxx-this._bounds.minx}},{key:"getBoundsHeight",value:function(){return this._bounds.maxy-this._bounds.miny}},{key:"getX",value:function(){return this._bounds.minx}},{key:"getY",value:function(){return this._bounds.miny}},{key:"setSize",value:function(t,e,i){if(this._elementMap.has(t))return this.updateElement(t,null,null,e,i,null)}},{key:"setPosition",value:function(t,e,i){if(this._elementMap.has(t))return this.updateElement(t,e,i,null,null,null)}},{key:"reset",value:function(){this._sortedElements.xmin.length=0,this._sortedElements.xmax.length=0,this._sortedElements.ymin.length=0,this._sortedElements.ymax.length=0,this._elementMap.clear(),this._transformedElementMap.clear(),this._recalculateBounds()}},{key:"remove",value:function(t){Dv(t,this._sortedElements.xmin),Dv(t,this._sortedElements.xmax),Dv(t,this._sortedElements.ymin),Dv(t,this._sortedElements.ymax),this._elementMap.delete(t),this._transformedElementMap.delete(t),this._recalculateBounds()}},{key:"getPosition",value:function(t){return this._elementMap.get(t)}},{key:"getElements",value:function(){return this._elementMap}},{key:"isEmpty",value:function(){return 0===this._elementMap.size}}]),i}($g);function $v(t,e){return e.theta-t.theta}function zv(t,e){return(t.theta<0?-Math.PI-t.theta:Math.PI-t.theta)-(e.theta<0?-Math.PI-e.theta:Math.PI-e.theta)}var Rv=(Cd(Iv={},Km,zv),Cd(Iv,Jm,$v),Cd(Iv,tg,$v),Cd(Iv,Qm,zv),Iv);function Nv(t){return!0===t.isContinuous}function Bv(t){return!0===t.isContinuous}function jv(t){return t.locations.length>1}function Fv(t){return[t.currentLocation,t.locations[t.currentLocation]]}var qv=function(){function t(e){var i=this;wd(this,t),this.instance=e,Cd(this,"anchorLists",new Map),Cd(this,"anchorLocations",new Map),e.bind(Ju,(function(t){t.sourceEndpoint._anchor.isContinuous&&i._removeEndpointFromAnchorLists(t.sourceEndpoint),t.targetEndpoint._anchor.isContinuous&&i._removeEndpointFromAnchorLists(t.targetEndpoint)})),e.bind(Qu,(function(t){i._removeEndpointFromAnchorLists(t)}))}return Sd(t,[{key:"getAnchorOrientation",value:function(t){var e=this.anchorLocations.get(t.id);return e?[e.ox,e.oy]:[0,0]}},{key:"_distance",value:function(t,e,i,n,o,s,r){var a=n.x+t.x*o.w,l=n.y+t.y*o.h,c=n.x+o.w/2,h=n.y+o.h/2;if(null!=s&&s.length>0){var d=this.instance._applyRotations([a,l,0,0],s);a=d.x,l=d.y}return Math.sqrt(Math.pow(e-a,2)+Math.pow(i-l,2))+Math.sqrt(Math.pow(c-a,2)+Math.pow(h-l,2))}},{key:"_anchorSelector",value:function(t,e,i,n,o,s,r){for(var a=i.x+n.w/2,l=i.y+n.h/2,c=-1,h=1/0,d=0;d<r.length;d++){var u=this._distance(r[d],a,l,t,e,o,s);u<h&&(c=d+0,h=u)}return[c,r[c]]}},{key:"_floatingAnchorCompute",value:function(t,e){var i=e.xy,n={curX:i.x+t.size.w/2,curY:i.y+t.size.h/2,x:0,y:0,ox:0,oy:0};return this._setComputedPosition(t,n)}},{key:"_setComputedPosition",value:function(t,e,i){return this.anchorLocations.set(t.id,e),t.computedPosition=e,i&&(t.timestamp=i),e}},{key:"_computeSingleLocation",value:function(t,e,i,n){var o,s=n.rotation,r={curX:e.x+t.x*i.w+t.offx,curY:e.y+t.y*i.h+t.offy,x:t.x,y:t.y,ox:0,oy:0};if(null!=s&&s.length>0){var a=[t.iox,t.ioy],l={x:r.curX,y:r.curY,cr:0,sr:0};Gd(s,(function(t){l=ru(l,t.c,t.r);var e=[Math.round(a[0]*l.cr-a[1]*l.sr),Math.round(a[1]*l.cr+a[0]*l.sr)];a=e.slice()})),t.ox=a[0],t.oy=a[1],o={curX:l.x,curY:l.y,x:t.x,y:t.y,ox:a[0],oy:a[1]}}else t.ox=t.iox,t.oy=t.ioy,o=Rd({ox:t.iox,oy:t.ioy},r);return o}},{key:"_singleAnchorCompute",value:function(t,e){var i=e.xy,n=e.wh,o=e.timestamp,s=this.anchorLocations.get(t.id);if(null!=s&&o&&o===t.timestamp)return s;var r=Dd(Fv(t),2);r[0];var a=r[1];return s=this._computeSingleLocation(a,i,n,e),this._setComputedPosition(t,s,o)}},{key:"_defaultAnchorCompute",value:function(t,e){var i;if(1===t.locations.length)return this._singleAnchorCompute(t,e);var n=e.xy,o=e.wh,s=e.txy,r=e.twh,a=Dd(Fv(t),2),l=a[0],c=a[1];if(t.locked||null==s||null==r)i=this._computeSingleLocation(c,n,o,e);else{var h=Dd(this._anchorSelector(n,o,s,r,e.rotation,e.tRotation,t.locations),2),d=h[0],u=h[1];t.currentLocation=d,d!==l&&(t.cssClass=u.cls||t.cssClass,e.element._anchorLocationChanged(t)),i=this._computeSingleLocation(u,n,o,e)}return this._setComputedPosition(t,i,e.timestamp)}},{key:"_placeAnchors",value:function(t,e){var i=this,n=this.instance.viewport.getPosition(t),o=function(e,o,s,r,a,l){if(s.length>0)for(var c=s.sort(Rv[e]),h=function(t,e,i,n,o){for(var s=i?t.w:t.h,r=i?t.h:t.w,a=[],l=s/(e.length+1),c=0;c<e.length;c++){var h=(c+1)*l,d=n*r;o&&(h=s-h);var u=i?h:d,p=t.x+u,f=u/t.w,m=i?d:h,g=t.y+m,v=m/t.h;if(0!==t.r&&null!=t.r){var y=ru({x:p,y:g},t.c,t.r);p=y.x,g=y.y}a.push({x:p,y:g,xLoc:f,yLoc:v,c:e[c].c})}return a}(n,c,r,a,e===Jm||e===Km),d=0;d<h.length;d++){var u=h[d].c,p=u.endpoints[0].elementId===t?u.endpoints[0]:u.endpoints[1];i._setComputedPosition(p._anchor,{curX:h[d].x,curY:h[d].y,x:h[d].xLoc,y:h[d].yLoc,ox:l[0],oy:l[1]})}};o(tg,0,e.bottom,!0,1,[0,1]),o(Km,0,e.top,!0,0,[0,-1]),o(Qm,0,e.left,!1,0,[-1,0]),o(Jm,0,e.right,!1,1,[1,0])}},{key:"_updateAnchorList",value:function(t,e,i,n,o,s,r,a,l,c,h){var d,u=n.endpoints[r],p=u.id,f=[1,0][r],m={theta:e,order:i,c:n,b:o,elId:s,epId:p},g=t[l],v=u._continuousAnchorEdge?t[u._continuousAnchorEdge]:null;if(v){var y=Zd(v,(function(t){return t.epId===p}));if(-1!==y){v.splice(y,1);for(var b=0;b<v.length;b++)!0!==(d=v[b].c).placeholder&&c.add(d),h.add(v[b].c.endpoints[r]),h.add(v[b].c.endpoints[f])}}for(var x=0;x<g.length;x++)!0!==(d=g[x].c).placeholder&&c.add(d),h.add(g[x].c.endpoints[r]),h.add(g[x].c.endpoints[f]);var _=a?0:g.length;g.splice(_,0,m),u._continuousAnchorEdge=l}},{key:"_removeEndpointFromAnchorLists",value:function(t){var e=this.anchorLists.get(t.elementId),i=0;!function(t,e){if(t){var n=function(t){return t.epId===e};Kd(t.top,n),Kd(t.left,n),Kd(t.bottom,n),Kd(t.right,n),i+=t.top.length,i+=t.left.length,i+=t.bottom.length,i+=t.right.length}}(e,t.id),0===i&&this.anchorLists.delete(t.elementId),this.anchorLocations.delete(t._anchor.id)}},{key:"computeAnchorLocation",value:function(t,e){var i;return i=Nv(t)?this.anchorLocations.get(t.id)||{curX:0,curY:0,x:0,y:0,ox:0,oy:0}:Bv(t)?this._floatingAnchorCompute(t,e):this._defaultAnchorCompute(t,e),t.timestamp=e.timestamp,i}},{key:"computePath",value:function(t,e){var i=this.instance.viewport.getPosition(t.sourceId),n=this.instance.viewport.getPosition(t.targetId),o=t.endpoints[0],s=t.endpoints[1],r=this.getEndpointLocation(o,{xy:i,wh:i,element:o,timestamp:e,rotation:this.instance._getRotations(t.sourceId)}),a=this.getEndpointLocation(s,{xy:n,wh:n,element:s,timestamp:e,rotation:this.instance._getRotations(t.targetId)});t.connector.resetBounds(),t.connector.compute({sourcePos:r,targetPos:a,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1],strokeWidth:t.paintStyleInUse.strokeWidth,sourceInfo:i,targetInfo:n})}},{key:"getEndpointLocation",value:function(t,e){e=e||{};var i=t._anchor,n=this.anchorLocations.get(i.id);return(null==n||null!=e.timestamp&&i.timestamp!==e.timestamp)&&(n=this.computeAnchorLocation(i,e),this._setComputedPosition(i,n,e.timestamp)),n}},{key:"getEndpointOrientation",value:function(t){return t._anchor?this.getAnchorOrientation(t._anchor):[0,0]}},{key:"setAnchorOrientation",value:function(t,e){var i=this.anchorLocations.get(t.id);null!=i&&(i.ox=e[0],i.oy=e[1])}},{key:"isDynamicAnchor",value:function(t){return!!t._anchor&&(!Nv(t._anchor)&&t._anchor.locations.length>1)}},{key:"isFloating",value:function(t){return!!t._anchor&&Bv(t._anchor)}},{key:"prepareAnchor",value:function(t){return _g(t)}},{key:"redraw",value:function(t,e,i){var n=this,o=new Set,s=new Set,r=new Set;if(!this.instance._suspendDrawing){var a=this.instance.endpointsByElement[t]||[];e=e||su();for(var l,c,h={},d=0;d<a.length;d++)if(!1!==(c=a[d]).visible)if(s.add(c),l=c._anchor,0===c.connections.length)Nv(l)&&(this.anchorLists.has(t)||this.anchorLists.set(t,{top:[],right:[],bottom:[],left:[]}),this._updateAnchorList(this.anchorLists.get(t),-Math.PI/2,0,{endpoints:[c,c],placeholder:!0},!1,t,0,!1,ag(l),o,s),r.add(t));else for(var u=0;u<c.connections.length;u++){var p=c.connections[u],f=p.sourceId,m=p.targetId,g=Nv(p.endpoints[0]._anchor),v=Nv(p.endpoints[1]._anchor);if(g||v){var y=[f,(p.endpoints[0]._anchor.faces||[]).join("-"),m,(p.endpoints[1]._anchor.faces||[]).join("-")].join("-"),b=h[y],x=p.sourceId===t?1:0;g&&!this.anchorLists.has(f)&&this.anchorLists.set(f,{top:[],right:[],bottom:[],left:[]}),v&&!this.anchorLists.has(m)&&this.anchorLists.set(m,{top:[],right:[],bottom:[],left:[]});var _=this.instance.viewport.getPosition(m),w=this.instance.viewport.getPosition(f);if(m===f&&(g||v))this._updateAnchorList(this.anchorLists.get(f),-Math.PI/2,0,p,!1,m,0,!1,Km,o,s),this._updateAnchorList(this.anchorLists.get(m),-Math.PI/2,0,p,!1,f,1,!1,Km,o,s);else{var k=this.instance._getRotations(f),S=this.instance._getRotations(m);b||(b=this._calculateOrientation(f,m,w,_,p.endpoints[0]._anchor,p.endpoints[1]._anchor,k,S),h[y]=b),g&&this._updateAnchorList(this.anchorLists.get(f),b.theta,0,p,!1,m,0,!1,b.a[0],o,s),v&&this._updateAnchorList(this.anchorLists.get(m),b.theta2,-1,p,!0,f,1,!0,b.a[1],o,s)}g&&r.add(f),v&&r.add(m),o.add(p),(g&&0===x||v&&1===x)&&s.add(p.endpoints[x])}else{var C=c.connections[u].endpoints[p.sourceId===t?1:0];if(jv(C._anchor)){this.instance._paintEndpoint(C,{elementWithPrecedence:t,timestamp:e}),o.add(c.connections[u]);for(var E=0;E<C.connections.length;E++)C.connections[E]!==c.connections[u]&&o.add(C.connections[E])}else o.add(c.connections[u])}}r.forEach((function(t){n._placeAnchors(t,n.anchorLists.get(t))})),s.forEach((function(t){var i=n.instance.viewport.getPosition(t.elementId);n.instance._paintEndpoint(t,{timestamp:e,offset:i})})),o.forEach((function(t){n.instance._paintConnection(t,{timestamp:e})}))}return{c:o,e:s}}},{key:"reset",value:function(){this.anchorLocations.clear(),this.anchorLists.clear()}},{key:"setAnchor",value:function(t,e){null!=e&&(t._anchor=e)}},{key:"setConnectionAnchors",value:function(t,e){t.endpoints[0]._anchor=e[0],t.endpoints[1]._anchor=e[1]}},{key:"_calculateOrientation",value:function(t,e,i,n,o,s,r,a){var l=this;if(t===e)return{orientation:"identity",a:[Km,Km]};var c=Math.atan2(n.c.y-i.c.y,n.c.x-i.c.x),h=Math.atan2(i.c.y-n.c.y,i.c.x-n.c.x),d=[],u={};!function(t,e){for(var i=0;i<t.length;i++){var n;if(u[t[i]]=(Cd(n={},Qm,{x:e[i][0].x,y:e[i][0].c.y}),Cd(n,Jm,{x:e[i][0].x+e[i][0].w,y:e[i][0].c.y}),Cd(n,Km,{x:e[i][0].c.x,y:e[i][0].y}),Cd(n,tg,{x:e[i][0].c.x,y:e[i][0].y+e[i][0].h}),n),null!=e[i][1]&&e[i][1].length>0)for(var o in u[t[i]])u[t[i]][o]=l.instance._applyRotationsXY(u[t[i]][o],e[i][1])}}([Ou,Du],[[i,r],[n,a]]);for(var p=[Km,Qm,Jm,tg],f=0;f<p.length;f++)for(var m=0;m<p.length;m++)d.push({source:p[f],target:p[m],dist:rm(u.source[p[f]],u.target[p[m]])});d.sort((function(t,e){if(t.dist<e.dist)return-1;if(e.dist<t.dist)return 1;var i,n=(Cd(i={},Qm,0),Cd(i,Km,1),Cd(i,Jm,2),Cd(i,tg,3),i),o=n[t.source],s=n[e.source],r=n[t.target],a=n[e.target];return o<s?-1:s<o?1:r<a?-1:a<r?1:0}));for(var g=d[0].source,v=d[0].target,y=0;y<d.length&&(g=Nv(o)&&o.locked?o.currentFace:!o.isContinuous||cg(o,d[y].source)?d[y].source:null,v=s.isContinuous&&s.locked?s.currentFace:!s.isContinuous||cg(s,d[y].target)?d[y].target:null,null==g||null==v);y++);return o.isContinuous&&this.setCurrentFace(o,g),s.isContinuous&&this.setCurrentFace(s,v),{a:[g,v],theta:c,theta2:h}}},{key:"setCurrentFace",value:function(t,e,i){t.currentFace=e,i&&null!=t.lockedFace&&(t.lockedFace=t.currentFace)}},{key:"lock",value:function(t){t.locked=!0,Nv(t)&&(t.lockedFace=t.currentFace)}},{key:"unlock",value:function(t){t.locked=!1,Nv(t)&&(t.lockedFace=null)}},{key:"selectAnchorLocation",value:function(t,e){var i=Zd(t.locations,(function(t){return t.x===e.x&&t.y===e.y}));return-1!==i&&(t.currentLocation=i,!0)}},{key:"lockCurrentAxis",value:function(t){null!=t.currentFace&&(t.lockedAxis=t.currentFace===Qm||t.currentFace===Jm?eg:ig)}},{key:"unlockCurrentAxis",value:function(t){t.lockedAxis=null}},{key:"anchorsEqual",value:function(t,e){if(!t||!e)return!1;var i=t.locations[t.currentLocation],n=e.locations[e.currentLocation];return i.x===n.x&&i.y===n.y&&i.offx===n.offx&&i.offy===n.offy&&i.ox===n.ox&&i.oy===n.oy}}]),t}(),Vv={},Hv=function(t,e,i){var n=Vv[e];if(n)return new n(t,i);throw{message:"jsPlumb: unknown connector type '"+e+"'"}},Uv=function(t,e){Vv[t]=e},Wv=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),Cd(Td(n=e.call(this,t)),"length",void 0),Cd(Td(n),"m",void 0),Cd(Td(n),"m2",void 0),Cd(Td(n),"type",i.segmentType),n._setCoordinates({x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}),n}return Sd(i,[{key:"getPath",value:function(t){return(t?"M "+this.x1+" "+this.y1+" ":"")+"L "+this.x2+" "+this.y2}},{key:"_recalc",value:function(){this.length=Math.sqrt(Math.pow(this.x2-this.x1,2)+Math.pow(this.y2-this.y1,2)),this.m=sm({x:this.x1,y:this.y1},{x:this.x2,y:this.y2}),this.m2=-1/this.m,this.extents={xmin:Math.min(this.x1,this.x2),ymin:Math.min(this.y1,this.y2),xmax:Math.max(this.x1,this.x2),ymax:Math.max(this.y1,this.y2)}}},{key:"getLength",value:function(){return this.length}},{key:"getGradient",value:function(){return this.m}},{key:"_setCoordinates",value:function(t){this.x1=t.x1,this.y1=t.y1,this.x2=t.x2,this.y2=t.y2,this._recalc()}},{key:"pointOnPath",value:function(t,e){if(0!==t||e){if(1!==t||e){var i=e?t>0?t:this.length+t:t*this.length;return cm({x:this.x1,y:this.y1},{x:this.x2,y:this.y2},i)}return{x:this.x2,y:this.y2}}return{x:this.x1,y:this.y1}}},{key:"gradientAtPoint",value:function(t,e){return this.m}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this.pointOnPath(t,i),o=e<=0?{x:this.x1,y:this.y1}:{x:this.x2,y:this.y2};return e<=0&&Math.abs(e)>1&&(e*=-1),cm(n,o,e)}},{key:"within",value:function(t,e,i){return i>=Math.min(t,e)&&i<=Math.max(t,e)}},{key:"closest",value:function(t,e,i){return Math.abs(i-t)<Math.abs(i-e)?t:e}},{key:"findClosestPointOnPath",value:function(t,e){var i={d:1/0,x:null,y:null,l:null,x1:this.x1,x2:this.x2,y1:this.y1,y2:this.y2};if(0===this.m)i.y=this.y1,i.x=this.within(this.x1,this.x2,t)?t:this.closest(this.x1,this.x2,t);else if(this.m===1/0||this.m===-1/0)i.x=this.x1,i.y=this.within(this.y1,this.y2,e)?e:this.closest(this.y1,this.y2,e);else{var n=this.y1-this.m*this.x1,o=(e-this.m2*t-n)/(this.m-this.m2),s=this.m*o+n;i.x=this.within(this.x1,this.x2,o)?o:this.closest(this.x1,this.x2,o),i.y=this.within(this.y1,this.y2,s)?s:this.closest(this.y1,this.y2,s)}var r=rm({x:i.x,y:i.y},{x:this.x1,y:this.y1});return i.d=rm({x:t,y:e},i),i.l=r/length,i}},{key:"_pointLiesBetween",value:function(t,e,i){return i>e?e<=t&&t<=i:e>=t&&t>=i}},{key:"lineIntersection",value:function(t,e,i,n){var o=Math.abs(sm({x:t,y:e},{x:i,y:n})),s=Math.abs(this.m),r=s===1/0?this.x1:this.y1-s*this.x1,a=[],l=o===1/0?t:e-o*t;if(o!==s)if(o===1/0&&0===s)this._pointLiesBetween(t,this.x1,this.x2)&&this._pointLiesBetween(this.y1,e,n)&&a.push({x:t,y:this.y1});else if(0===o&&s===1/0)this._pointLiesBetween(e,this.y1,this.y2)&&this._pointLiesBetween(this.x1,t,i)&&a.push({x:this.x1,y:e});else{var c,h;o===1/0?(c=t,this._pointLiesBetween(c,this.x1,this.x2)&&(h=s*t+r,this._pointLiesBetween(h,e,n)&&a.push({x:c,y:h}))):0===o?(h=e,this._pointLiesBetween(h,this.y1,this.y2)&&(c=(e-r)/s,this._pointLiesBetween(c,t,i)&&a.push({x:c,y:h}))):(h=s*(c=(l-r)/(s-o))+r,this._pointLiesBetween(c,this.x1,this.x2)&&this._pointLiesBetween(h,this.y1,this.y2)&&a.push({x:c,y:h}))}return a}},{key:"boxIntersection",value:function(t,e,i,n){var o=[];return o.push.apply(o,this.lineIntersection(t,e,t+i,e)),o.push.apply(o,this.lineIntersection(t+i,e,t+i,e+n)),o.push.apply(o,this.lineIntersection(t+i,e+n,t,e+n)),o.push.apply(o,this.lineIntersection(t,e+n,t,e)),o}}]),i}(Ef);Cd(Wv,"segmentType","Straight");var Gv=function(t){Ed(i,t);var e=Pd(i);function i(){var t;wd(this,i);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return Cd(Td(t=e.call.apply(e,[this].concat(o))),"type",i.type),t}return Sd(i,[{key:"getDefaultStubs",value:function(){return[0,0]}},{key:"_compute",value:function(t,e){this._addSegment(Wv,{x1:t.sx,y1:t.sy,x2:t.startStubX,y2:t.startStubY}),this._addSegment(Wv,{x1:t.startStubX,y1:t.startStubY,x2:t.endStubX,y2:t.endStubY}),this._addSegment(Wv,{x1:t.endStubX,y1:t.endStubY,x2:t.tx,y2:t.ty}),this.geometry={source:e.sourcePos,target:e.targetPos}}},{key:"transformGeometry",value:function(t,e,i){return{source:this.transformAnchorPlacement(t.source,e,i),target:this.transformAnchorPlacement(t.target,e,i)}}}]),i}(cv);function Zv(t,e,i){var n=[],o=function(e){return Bd(e)?e:t.getId(e)};if(e)if("string"==typeof e){if("*"===e)return e;n.push(e)}else{var s;if(i)n=e;else if(null!=e.length)(s=n).push.apply(s,Id(Id(e).map(o)));else n.push(o(e))}return n}function Yv(t,e,i){null!=e&&(e.connections.push(t),1===e.connections.length&&t.instance.addClass(t.source,t.instance.connectedClass)),null!=i&&(null!=e&&t.sourceId===t.targetId||(i.connections.push(t),1===i.connections.length&&t.instance.addClass(t.target,t.instance.connectedClass)))}function Xv(t,e,i){if(null!=e){var n=e.connections.length;Kd(e.connections,(function(e){return t.id===e.id})),n>0&&0===e.connections.length&&t.instance.removeClass(t.source,t.instance.connectedClass)}if(null!=i){var o=i.connections.length;null!=e&&t.sourceId===t.targetId||Kd(i.connections,(function(e){return t.id===e.id})),o>0&&0===i.connections.length&&t.instance.removeClass(t.target,t.instance.connectedClass)}}Cd(Gv,"type","Straight");var Kv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this))._instanceIndex=t,Cd(Td(o),"defaults",void 0),Cd(Td(o),"_initialDefaults",{}),Cd(Td(o),"isConnectionBeingDragged",!1),Cd(Td(o),"currentlyDragging",!1),Cd(Td(o),"hoverSuspended",!1),Cd(Td(o),"_suspendDrawing",!1),Cd(Td(o),"_suspendedAt",null),Cd(Td(o),"connectorClass",Vu),Cd(Td(o),"connectorOutlineClass","jtk-connector-outline"),Cd(Td(o),"connectedClass","jtk-connected"),Cd(Td(o),"endpointClass",Hu),Cd(Td(o),"endpointConnectedClass","jtk-endpoint-connected"),Cd(Td(o),"endpointFullClass","jtk-endpoint-full"),Cd(Td(o),"endpointFloatingClass",Uu),Cd(Td(o),"endpointDropAllowedClass","jtk-endpoint-drop-allowed"),Cd(Td(o),"endpointDropForbiddenClass","jtk-endpoint-drop-forbidden"),Cd(Td(o),"endpointAnchorClassPrefix","jtk-endpoint-anchor"),Cd(Td(o),"overlayClass",Zu),Cd(Td(o),"connections",[]),Cd(Td(o),"endpointsByElement",{}),Cd(Td(o),"endpointsByUUID",new Map),Cd(Td(o),"sourceSelectors",[]),Cd(Td(o),"targetSelectors",[]),Cd(Td(o),"allowNestedGroups",void 0),Cd(Td(o),"_curIdStamp",1),Cd(Td(o),"viewport",new Lv(Td(o))),Cd(Td(o),"router",void 0),Cd(Td(o),"groupManager",void 0),Cd(Td(o),"_connectionTypes",new Map),Cd(Td(o),"_endpointTypes",new Map),Cd(Td(o),"_container",void 0),Cd(Td(o),"_managedElements",{}),Cd(Td(o),"DEFAULT_SCOPE",void 0),Cd(Td(o),"_zoom",1),o.defaults={anchor:Cp.Bottom,anchors:[null,null],connectionsDetachable:!0,connectionOverlays:[],connector:Gv.type,container:null,endpoint:bv.type,endpointOverlays:[],endpoints:[null,null],endpointStyle:{fill:"#456"},endpointStyles:[null,null],endpointHoverStyle:null,endpointHoverStyles:[null,null],hoverPaintStyle:null,listStyle:{},maxConnections:1,paintStyle:{strokeWidth:2,stroke:"#456"},reattachConnections:!1,scope:"jsplumb_defaultscope",allowNestedGroups:!0},n&&Rd(o.defaults,n),Rd(o._initialDefaults,o.defaults),null!=o._initialDefaults[yv]&&(o._initialDefaults[yv].strokeWidth=o._initialDefaults[yv].strokeWidth||2),o.DEFAULT_SCOPE=o.defaults.scope,o.allowNestedGroups=!1!==o._initialDefaults.allowNestedGroups,o.router=new qv(Td(o)),o.groupManager=new kv(Td(o)),o.setContainer(o._initialDefaults.container),o}return Sd(i,[{key:"defaultScope",get:function(){return this.DEFAULT_SCOPE}},{key:"currentZoom",get:function(){return this._zoom}},{key:"areDefaultAnchorsSet",value:function(){return this.validAnchorsSpec(this.defaults.anchors)}},{key:"validAnchorsSpec",value:function(t){return null!=t&&null!=t[0]&&null!=t[1]}},{key:"getContainer",value:function(){return this._container}},{key:"setZoom",value:function(t,e){return this._zoom=t,this.fire(np,this._zoom),e&&this.repaintEverything(),!0}},{key:"_idstamp",value:function(){return""+this._curIdStamp++}},{key:"checkCondition",value:function(t,e){var i=this.getListener(t),n=!0;if(i&&i.length>0){var o=Array.prototype.slice.call(arguments,1);try{for(var s=0,r=i.length;s<r;s++)n=n&&i[s].apply(i[s],o)}catch(e){cu("cannot check condition ["+t+"]"+e)}}return n}},{key:"getId",value:function(t,e){if(null==t)return null;var i=this.getAttribute(t,Nu);return i&&"undefined"!==i||(2===arguments.length&&void 0!==arguments[1]?i=e:(1===arguments.length||3===arguments.length&&!arguments[2])&&(i="jsplumb-"+this._instanceIndex+"-"+this._idstamp()),this.setAttribute(t,Nu,i)),i}},{key:"getConnections",value:function(t,e){t?t.constructor===String&&(t={scope:t}):t={};for(var i=Zv(this,t.scope||this.defaultScope,!0),n=Zv(this,t.source),o=Zv(this,t.target),s=!e&&i.length>1?{}:[],r=function(t,n){if(!e&&i.length>1){var o=s[t];null==o&&(o=s[t]=[]),o.push(n)}else s.push(n)},a=0,l=this.connections.length;a<l;a++){var c=this.connections[a],h=c.proxies&&c.proxies[0]?c.proxies[0].originalEp.elementId:c.sourceId,d=c.proxies&&c.proxies[1]?c.proxies[1].originalEp.elementId:c.targetId;zd(i,c.scope)&&zd(n,h)&&zd(o,d)&&r(c.scope,c)}return s}},{key:"select",value:function(t){return(t=t||{}).scope=t.scope||"*",new Ev(this,t.connections||this.getConnections(t,!0))}},{key:"selectEndpoints",value:function(t){(t=t||{}).scope=t.scope||Of;var e=!t.element&&!t.source&&!t.target,i=e?Of:Zv(this,t.element),n=e?Of:Zv(this,t.source),o=e?Of:Zv(this,t.target),s=Zv(this,t.scope,!0),r=[];for(var a in this.endpointsByElement){var l=zd(i,a,!0),c=zd(n,a,!0),h="*"!==n,d=zd(o,a,!0),u="*"!==o;if(l||c||d)t:for(var p=0,f=this.endpointsByElement[a].length;p<f;p++){var m=this.endpointsByElement[a][p];if(zd(s,m.scope,!0)){var g=h&&n.length>0&&!m.isSource,v=u&&o.length>0&&!m.isTarget;if(g||v)continue t;r.push(m)}}}return new Cv(this,r)}},{key:"setContainer",value:function(t){this._container=t,this.fire("container:change",this._container)}},{key:"_set",value:function(t,e,i){var n,o,s=[{el:"source",elId:"sourceId"},{el:"target",elId:"targetId"}][i],r=t[s.elId],a=t.endpoints[i],l={index:i,originalEndpoint:a,originalSourceId:0===i?r:t.sourceId,newSourceId:t.sourceId,originalTargetId:1===i?r:t.targetId,newTargetId:t.targetId,connection:t,newEndpoint:a};return e instanceof tv?(n=e).addConnection(t):n=(o=this.getId(e))===t[s.elId]?null:t.makeEndpoint(0===i,e,o),null!=n&&(l.newEndpoint=n,a.detachFromConnection(t),t.endpoints[i]=n,t[s.el]=n.element,t[s.elId]=n.elementId,l[0===i?"newSourceId":"newTargetId"]=n.elementId,this.fireMoveEvent(l),this._paintConnection(t)),l}},{key:"setSource",value:function(t,e){Xv(t,this._managedElements[t.sourceId]);var i=this._set(t,e,0);Yv(t,this._managedElements[i.newSourceId])}},{key:"setTarget",value:function(t,e){Xv(t,this._managedElements[t.targetId]);var i=this._set(t,e,1);Yv(t,this._managedElements[i.newTargetId])}},{key:"setConnectionType",value:function(t,e,i){t.setType(e,i),this._paintConnection(t)}},{key:"isHoverSuspended",value:function(){return this.hoverSuspended}},{key:"setSuspendDrawing",value:function(t,e){var i=this._suspendDrawing;return this._suspendDrawing=t,t?this._suspendedAt=""+(new Date).getTime():(this._suspendedAt=null,this.viewport.recomputeBounds()),e&&this.repaintEverything(),i}},{key:"getSuspendedAt",value:function(){return this._suspendedAt}},{key:"batch",value:function(t,e){var i=!0===this._suspendDrawing;i||this.setSuspendDrawing(!0),t(),i||this.setSuspendDrawing(!1,!e)}},{key:"each",value:function(t,e){if(null!=t){if(null!=t.length)for(var i=0;i<t.length;i++)e(t[i]);else e(t);return this}}},{key:"updateOffset",value:function(t){var e=t.elId;return t.recalc?this.viewport.refreshElement(e):this.viewport.getPosition(e)}},{key:"deleteConnection",value:function(t,e){if(null!=t&&!0!==t.deleted&&((e=e||{}).force||Ud(!0,!1,[[t.endpoints[0],op,[t]],[t.endpoints[1],op,[t]],[t,op,[t]],[this,qu,[rp,t]]]))){Xv(t,this._managedElements[t.sourceId],this._managedElements[t.targetId]),this.fireDetachEvent(t,!t.pending&&!1!==e.fireEvent,e.originalEvent);var i=t.endpoints[0],n=t.endpoints[1];return i!==e.endpointToIgnore&&i.detachFromConnection(t,null,!0),n!==e.endpointToIgnore&&n.detachFromConnection(t,null,!0),Kd(this.connections,(function(e){return t.id===e.id})),t.destroy(),i!==e.endpointToIgnore&&i.deleteOnEmpty&&0===i.connections.length&&this.deleteEndpoint(i),n!==e.endpointToIgnore&&n.deleteOnEmpty&&0===n.connections.length&&this.deleteEndpoint(n),!0}return!1}},{key:"deleteEveryConnection",value:function(t){var e=this;t=t||{};var i=this.connections.length,n=0;return this.batch((function(){for(var o=0;o<i;o++)n+=e.deleteConnection(e.connections[0],t)?1:0})),n}},{key:"deleteConnectionsForElement",value:function(t,e){var i=this.getId(t),n=this._managedElements[i];if(n)for(var o=n.connections.length,s=0;s<o;s++)this.deleteConnection(n.connections[0],e);return this}},{key:"fireDetachEvent",value:function(t,e,i){var n=null!=t.id?{connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]}:t;e&&this.fire("connection:detach",n,i),this.fire(Ju,n,i)}},{key:"fireMoveEvent",value:function(t,e){this.fire(Ku,t,e)}},{key:"manageAll",value:function(t,e){for(var i=Bd(t)?this.getSelector(this.getContainer(),t):t,n=0;n<i.length;n++)this.manage(i[n],null,e)}},{key:"manage",value:function(t,e,i){null==this.getAttribute(t,Nu)&&(e=e||this.getAttribute(t,"id")||su(),this.setAttribute(t,Nu,e));var n=this.getId(t);if(this._managedElements[n])i&&(this._managedElements[n].viewportElement=this.updateOffset({elId:n,timestamp:null,recalc:!0}));else{var o={el:t,endpoints:[],connections:[],rotation:0,data:{}};this._managedElements[n]=o,this._suspendDrawing?o.viewportElement=this.viewport.registerElement(n,!0):o.viewportElement=this.updateOffset({elId:n,recalc:!0}),this.fire(tp,{el:t})}return this._managedElements[n]}},{key:"getManagedData",value:function(t,e,i){if(this._managedElements[t]){var n=this._managedElements[t].data[e];return null!=n?n[i]:null}}},{key:"setManagedData",value:function(t,e,i,n){this._managedElements[t]&&(this._managedElements[t].data[e]=this._managedElements[t].data[e]||{},this._managedElements[t].data[e][i]=n)}},{key:"getManagedElement",value:function(t){return this._managedElements[t]?this._managedElements[t].el:null}},{key:"unmanage",value:function(t,e){var i=this;this.removeAllEndpoints(t,!0);var n=function(t){var n=i.getId(t);i.removeAttribute(t,Nu),delete i._managedElements[n],i.viewport.remove(n),i.fire(ip,{el:t,id:n}),t&&e&&i._removeElement(t)};this._getAssociatedElements(t).map(n),n(t)}},{key:"rotate",value:function(t,e,i){var n=this.getId(t);return this._managedElements[n]&&(this._managedElements[n].rotation=e,this.viewport.rotateElement(n,e),!0!==i)?this.revalidate(t):{c:new Set,e:new Set}}},{key:"_getRotation",value:function(t){var e=this._managedElements[t];return null!=e&&e.rotation||0}},{key:"_getRotations",value:function(t){var e=this,i=[],n=this._managedElements[t];return null!=n&&(i.push({r:n.viewportElement.r||0,c:n.viewportElement.c}),function t(n){if(null!=n.group){var o=e._managedElements[n.group];null!=o&&(i.push({r:o.viewportElement.r,c:o.viewportElement.c}),t(o))}}(n)),i}},{key:"_applyRotations",value:function(t,e){var i=t.slice(),n={x:i[0],y:i[1],cr:0,sr:0};return Gd(e,(function(t){n=ru(n,t.c,t.r)})),n}},{key:"_applyRotationsXY",value:function(t,e){return Gd(e,(function(e){t=ru(t,e.c,e.r)})),t}},{key:"_internal_newEndpoint",value:function(t){var e=Rd({},t),i=this.manage(e.element);e.elementId=this.getId(e.element),e.id="ep_"+this._idstamp();var n=new tv(this,e);return function(t,e){null!=t&&t.endpoints.push(e)}(i,n),t.uuid&&this.endpointsByUUID.set(t.uuid,n),tu(this.endpointsByElement,n.elementId,n),this._suspendDrawing||this._paintEndpoint(n,{timestamp:this._suspendedAt}),n}},{key:"_deriveEndpointAndAnchorSpec",value:function(t,e){for(var i=((e?"":"default ")+t).split(/[\s]/),n=null,o=null,s=null,r=null,a=0;a<i.length;a++){var l=this.getConnectionType(i[a]);l&&(l.endpoints&&(n=l.endpoints),l.endpoint&&(o=l.endpoint),l.anchors&&(r=l.anchors),l.anchor&&(s=l.anchor))}return{endpoints:n||[o,o],anchors:r||[s,s]}}},{key:"revalidate",value:function(t,e){var i=this.getId(t);return this.updateOffset({elId:i,recalc:!0,timestamp:e}),this.repaint(t)}},{key:"repaintEverything",value:function(){var t,e=su();for(t in this._managedElements)this.viewport.refreshElement(t,!0);for(t in this.viewport.recomputeBounds(),this._managedElements)this.repaint(this._managedElements[t].el,e,!0);return this}},{key:"setElementPosition",value:function(t,e,i){var n=this.getId(t);return this.viewport.setPosition(n,e,i),this.repaint(t)}},{key:"repaint",value:function(t,e,i){var n={c:new Set,e:new Set},o=function(t){t.c.forEach((function(t){return n.c.add(t)})),t.e.forEach((function(t){return n.e.add(t)}))};if(!this._suspendDrawing){var s=this.getId(t);if(null!=t){var r=this._getAssociatedElements(t);if(null==e&&(e=su()),!i)for(var a=0;a<r.length;a++)this.updateOffset({elId:this.getId(r[a]),recalc:!0,timestamp:e});if(o(this.router.redraw(s,e,null)),r.length>0)for(var l=0;l<r.length;l++)o(this.router.redraw(this.getId(r[l]),e,null))}}return n}},{key:"unregisterEndpoint",value:function(t){var e=t.getUuid();e&&this.endpointsByUUID.delete(e),function(t,e){null!=t&&Kd(t.endpoints,(function(t){return t===e}))}(this._managedElements[t.elementId],t);var i=this.endpointsByElement[t.elementId];null!=i&&(this.endpointsByElement[t.elementId]=i.filter((function(e){return e!==t}))),this.fire(Qu,t)}},{key:"_maybePruneEndpoint",value:function(t){return!(!t.deleteOnEmpty||0!==t.connections.length)&&(this.deleteEndpoint(t),!0)}},{key:"deleteEndpoint",value:function(t){var e=this,i="string"==typeof t?this.endpointsByUUID.get(t):t;if(i){var n=i.proxiedBy,o=i.connections.slice();Gd(o,(function(t){i.detachFromConnection(t,null,!0)})),this.unregisterEndpoint(i),i.destroy(),Gd(o,(function(t){e.deleteConnection(t,{force:!0,endpointToIgnore:i})})),null!=n&&this.deleteEndpoint(n)}return this}},{key:"addEndpoint",value:function(t,e,i){var n=Rd({},i=i||{});Rd(n,e||{});var o=Rd({element:t},n);return this._internal_newEndpoint(o)}},{key:"addEndpoints",value:function(t,e,i){for(var n=[],o=0,s=e.length;o<s;o++)n.push(this.addEndpoint(t,e[o],i));return n}},{key:"reset",value:function(){var t=this;this.silently((function(){t.endpointsByElement={},t._managedElements={},t.endpointsByUUID.clear(),t.viewport.reset(),t.router.reset(),t.groupManager.reset(),t.connections.length=0}))}},{key:"destroy",value:function(){this.reset(),this.unbind(),this.sourceSelectors.length=0,this.targetSelectors.length=0,this._connectionTypes.clear(),this._endpointTypes.clear()}},{key:"getEndpoints",value:function(t){return this.endpointsByElement[this.getId(t)]||[]}},{key:"getEndpoint",value:function(t){return this.endpointsByUUID.get(t)}},{key:"setEndpointUuid",value:function(t,e){t.uuid&&this.endpointsByUUID.delete(t.uuid),t.uuid=e,this.endpointsByUUID.set(e,t)}},{key:"connect",value:function(t,e){try{var i=this._prepareConnectionParams(t,e),n=this._newConnection(i);return this._finaliseConnection(n,i),n}catch(t){return void cu(t)}}},{key:"_prepareConnectionParams",value:function(t,e){var i=Rd({},t);e&&Rd(i,e);var n=i;if(n.source&&n.source.endpoint&&(n.sourceEndpoint=n.source),n.target&&n.target.endpoint&&(n.targetEndpoint=n.target),t.uuids&&(n.sourceEndpoint=this.getEndpoint(t.uuids[0]),n.targetEndpoint=this.getEndpoint(t.uuids[1])),null!=n.sourceEndpoint){if(n.sourceEndpoint.isFull())throw"Cannot establish connection: source endpoint is full";if(n.type||(n.type=n.sourceEndpoint.edgeType),n.sourceEndpoint.connectorOverlays){n.overlays=n.overlays||[];for(var o=0,s=n.sourceEndpoint.connectorOverlays.length;o<s;o++)n.overlays.push(n.sourceEndpoint.connectorOverlays[o])}n.sourceEndpoint.scope&&(n.scope=n.sourceEndpoint.scope)}else if(null==n.source)throw"Cannot establish connection: source does not exist";if(null!=n.targetEndpoint){if(n.targetEndpoint.isFull())throw"Cannot establish connection: target endpoint is full"}else if(null==n.target)throw"Cannot establish connection: target does not exist";if(n.sourceEndpoint&&n.targetEndpoint&&!function(t,e){for(var i=t.scope.split(/\s/),n=e.scope.split(/\s/),o=0;o<i.length;o++)for(var s=0;s<n.length;s++)if(n[s]===i[o])return!0;return!1}(n.sourceEndpoint,n.targetEndpoint))throw"Cannot establish connection: scopes do not match";return n}},{key:"_newConnection",value:function(t){t.id="con_"+this._idstamp();var e=new ov(this,t);return Yv(e,this._managedElements[e.sourceId],this._managedElements[e.targetId]),this._paintConnection(e),e}},{key:"_finaliseConnection",value:function(t,e,i){e=e||{},t.suspendedEndpoint||this.connections.push(t),t.pending=null,t.endpoints[0].isTemporarySource=!1,this.repaint(t.source);var n={connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]};this.fire(Xu,n,i),e.doNotFireConnectionEvent||!1===e.fireEvent||this.fire(Yu,n,i)}},{key:"removeAllEndpoints",value:function(t,e){var i=this,n=function(t){var e,n,o=i.getId(t),s=i.endpointsByElement[o];if(s)for(e=0,n=s.length;e<n;e++)i.deleteEndpoint(s[e]);delete i.endpointsByElement[o]};return e&&this._getAssociatedElements(t).map(n),n(t),this}},{key:"_createSourceDefinition",value:function(t,e){var i=Rd({},e);Rd(i,t),i.edgeType=i.edgeType||Mf;var n=this._deriveEndpointAndAnchorSpec(i.edgeType);i.endpoint=i.endpoint||n.endpoints[0],i.anchor=i.anchor||n.anchors[0];var o=i.maxConnections||-1;return{def:Rd({},i),uniqueEndpoint:i.uniqueEndpoint,maxConnections:o,enabled:!0,endpoint:null}}},{key:"addSourceSelector",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._createSourceDefinition(e),o=new Eg(t,n,i);return this.sourceSelectors.push(o),o}},{key:"removeSourceSelector",value:function(t){Kd(this.sourceSelectors,(function(e){return e===t}))}},{key:"removeTargetSelector",value:function(t){Kd(this.targetSelectors,(function(e){return e===t}))}},{key:"addTargetSelector",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._createTargetDefinition(e),o=new Eg(t,n,i);return this.targetSelectors.push(o),o}},{key:"_createTargetDefinition",value:function(t,e){var i=Rd({},e);Rd(i,t),i.edgeType=i.edgeType||Mf;var n=i.maxConnections||-1;return{def:Rd({},i),uniqueEndpoint:i.uniqueEndpoint,maxConnections:n,enabled:!0,endpoint:null}}},{key:"show",value:function(t,e){return this._setVisible(t,Iu,e)}},{key:"hide",value:function(t,e){return this._setVisible(t,Lu,e)}},{key:"_setVisible",value:function(t,e,i){var n=e===Iu,o=null;i&&(o=function(t){t.setVisible(n,!0,!0)});var s=this.getId(t);return this._operation(t,(function(t){if(n&&i){var e=t.sourceId===s?1:0;t.endpoints[e].isVisible()&&t.setVisible(!0)}else t.setVisible(n)}),o),this}},{key:"toggleVisible",value:function(t,e){var i=null;e&&(i=function(t){var e=t.isVisible();t.setVisible(!e)}),this._operation(t,(function(t){var e=t.isVisible();t.setVisible(!e)}),i)}},{key:"_operation",value:function(t,e,i){var n=this.getId(t),o=this.endpointsByElement[n];if(o&&o.length)for(var s=0,r=o.length;s<r;s++){for(var a=0,l=o[s].connections.length;a<l;a++){if(e(o[s].connections[a]))return}i&&i(o[s])}}},{key:"registerConnectionType",value:function(t,e){if(this._connectionTypes.set(t,Rd({},e)),e.overlays){for(var i={},n=0;n<e.overlays.length;n++){var o=zg(e.overlays[n]);i[o.options.id]=o}this._connectionTypes.get(t).overlays=i}}},{key:"registerConnectionTypes",value:function(t){for(var e in t)this.registerConnectionType(e,t[e])}},{key:"registerEndpointType",value:function(t,e){if(this._endpointTypes.set(t,Rd({},e)),e.overlays){for(var i={},n=0;n<e.overlays.length;n++){var o=zg(e.overlays[n]);i[o.options.id]=o}this._endpointTypes.get(t).overlays=i}}},{key:"registerEndpointTypes",value:function(t){for(var e in t)this.registerEndpointType(e,t[e])}},{key:"getType",value:function(t,e){return"connection"===e?this.getConnectionType(t):this.getEndpointType(t)}},{key:"getConnectionType",value:function(t){return this._connectionTypes.get(t)}},{key:"getEndpointType",value:function(t){return this._endpointTypes.get(t)}},{key:"importDefaults",value:function(t){for(var e in t)this.defaults[e]=t[e];return null!=this.defaults[yv]&&(this.defaults[yv].strokeWidth=this.defaults[yv].strokeWidth||2),t.container&&this.setContainer(t.container),this}},{key:"restoreDefaults",value:function(){return this.defaults=Rd({},this._initialDefaults),this}},{key:"getManagedElements",value:function(){return this._managedElements}},{key:"proxyConnection",value:function(t,e,i,n,o){var s,r=null!=t.proxies[e],a=r?t.proxies[e].originalEp.elementId:t.endpoints[e].elementId,l=r?t.proxies[e].originalEp:t.endpoints[e],c=this.getId(i);t.proxies[e]?t.proxies[e].ep.elementId===c?s=t.proxies[e].ep:(t.proxies[e].ep.detachFromConnection(t,e),s=this._internal_newEndpoint({element:i,endpoint:n(t,e),anchor:o(t,e),parameters:{isProxyEndpoint:!0}})):s=this._internal_newEndpoint({element:i,endpoint:n(t,e),anchor:o(t,e),parameters:{isProxyEndpoint:!0}}),s.deleteOnEmpty=!0,t.proxies[e]={ep:s,originalEp:l},this.sourceOrTargetChanged(a,c,t,i,e),l.detachFromConnection(t,null,!0),s.connections=[t],t.endpoints[e]=s,l.proxiedBy=s,l.setVisible(!1),t.setVisible(!0),this.revalidate(i)}},{key:"unproxyConnection",value:function(t,e){if(null!=t.proxies&&null!=t.proxies[e]){var i=t.proxies[e].originalEp.element,n=t.proxies[e].originalEp.elementId,o=t.proxies[e].ep.elementId;t.endpoints[e]=t.proxies[e].originalEp,delete t.proxies[e].originalEp.proxiedBy,this.sourceOrTargetChanged(o,n,t,i,e),t.proxies[e].ep.detachFromConnection(t,null),t.proxies[e].originalEp.addConnection(t),t.isVisible()&&t.proxies[e].originalEp.setVisible(!0),t.proxies[e]=null,-1===Zd(t.proxies,(function(t){return null!=t}))&&(t.proxies.length=0)}}},{key:"sourceOrTargetChanged",value:function(t,e,i,n,o){t!==e&&(0===o?(i.sourceId=e,i.source=n):1===o&&(i.targetId=e,i.target=n),Xv(i,this._managedElements[t]),Yv(i,this._managedElements[e]))}},{key:"getGroup",value:function(t){return this.groupManager.getGroup(t)}},{key:"getGroupFor",value:function(t){return this.groupManager.getGroupFor(t)}},{key:"addGroup",value:function(t){return this.groupManager.addGroup(t)}},{key:"addToGroup",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return(e=this.groupManager).addToGroup.apply(e,[t,!1].concat(n))}},{key:"collapseGroup",value:function(t){this.groupManager.collapseGroup(t)}},{key:"expandGroup",value:function(t){this.groupManager.expandGroup(t)}},{key:"toggleGroup",value:function(t){this.groupManager.toggleGroup(t)}},{key:"removeGroup",value:function(t,e,i,n){return this.groupManager.removeGroup(t,e,i,n)}},{key:"removeAllGroups",value:function(t,e){this.groupManager.removeAllGroups(t,e,!1)}},{key:"removeFromGroup",value:function(t,e,i){this.groupManager.removeFromGroup(t,i,e),this._appendElement(e,this.getContainer()),this.updateOffset({recalc:!0,elId:this.getId(e)})}},{key:"_paintEndpoint",value:function(t,e){var i=(e=e||{}).timestamp,n=!(!1===e.recalc);if(!i||t.timestamp!==i){var o=this.viewport.getPosition(t.elementId),s=e.offset?{x:e.offset.x,y:e.offset.y}:{x:o.x,y:o.y};if(null!=s){var r=e.anchorLoc;if(null==r){var a={xy:s,wh:o,element:t,timestamp:i};if(n&&this.router.isDynamicAnchor(t)&&t.connections.length>0){var l=function(t){var i=0;if(null!=e.elementWithPrecedence)for(var n=0;n<t.connections.length;n++)if(t.connections[n].sourceId===e.elementWithPrecedence||t.connections[n].targetId===e.elementWithPrecedence){i=n;break}return t.connections[i]}(t),c=l.endpoints[0]===t?1:0,h=0===c?l.sourceId:l.targetId,d=this.viewport.getPosition(h);a.index=0===c?1:0,a.connection=l,a.txy=d,a.twh=d,a.tElement=l.endpoints[c],a.tRotation=this._getRotations(h)}else t.connections.length>0&&(a.connection=t.connections[0]);a.rotation=this._getRotations(t.elementId),r=this.router.computeAnchorLocation(t._anchor,a)}for(var u in t.endpoint.compute(r,this.router.getEndpointOrientation(t),t.paintStyleInUse),this.renderEndpoint(t,t.paintStyleInUse),t.timestamp=i,t.overlays)if(t.overlays.hasOwnProperty(u)){var p=t.overlays[u];p.isVisible()&&(t.overlayPlacements[u]=this.drawOverlay(p,t.endpoint,t.paintStyleInUse,t.getAbsoluteOverlayPosition(p)),this._paintOverlay(p,t.overlayPlacements[u],{xmin:0,ymin:0}))}}}}},{key:"_paintConnection",value:function(t,e){if(!this._suspendDrawing&&!1!==t.visible){var i=(e=e||{}).timestamp;if(null!=i&&i===t.lastPaintedAt)return;if(null==i||i!==t.lastPaintedAt){this.router.computePath(t,i);var n={xmin:1/0,ymin:1/0,xmax:-1/0,ymax:-1/0};for(var o in t.overlays)if(t.overlays.hasOwnProperty(o)){var s=t.overlays[o];s.isVisible()&&(t.overlayPlacements[o]=this.drawOverlay(s,t.connector,t.paintStyleInUse,t.getAbsoluteOverlayPosition(s)),n.xmin=Math.min(n.xmin,t.overlayPlacements[o].xmin),n.xmax=Math.max(n.xmax,t.overlayPlacements[o].xmax),n.ymin=Math.min(n.ymin,t.overlayPlacements[o].ymin),n.ymax=Math.max(n.ymax,t.overlayPlacements[o].ymax))}var r=parseFloat(""+t.paintStyleInUse.strokeWidth||"1")/2,a=parseFloat(""+t.paintStyleInUse.strokeWidth||"0"),l={xmin:Math.min(t.connector.bounds.xmin-(r+a),n.xmin),ymin:Math.min(t.connector.bounds.ymin-(r+a),n.ymin),xmax:Math.max(t.connector.bounds.xmax+(r+a),n.xmax),ymax:Math.max(t.connector.bounds.ymax+(r+a),n.ymax)};for(var c in this.paintConnector(t.connector,t.paintStyleInUse,l),t.overlays)if(t.overlays.hasOwnProperty(c)){var h=t.overlays[c];h.isVisible()&&this._paintOverlay(h,t.overlayPlacements[c],l)}}t.lastPaintedAt=i}}},{key:"_refreshEndpoint",value:function(t){t._anchor.isFloating||(t.connections.length>0?this.addEndpointClass(t,this.endpointConnectedClass):this.removeEndpointClass(t,this.endpointConnectedClass),t.isFull()?this.addEndpointClass(t,this.endpointFullClass):this.removeEndpointClass(t,this.endpointFullClass))}},{key:"_makeConnector",value:function(t,e,i){return Hv(t,e,i)}},{key:"addOverlay",value:function(t,e,i){if(t.addOverlay(e),!i){var n=t instanceof tv?t.element:t.source;this.revalidate(n)}}},{key:"removeOverlay",value:function(t,e){t.removeOverlay(e);var i=t instanceof tv?t.element:t.source;this.revalidate(i)}},{key:"setOutlineColor",value:function(t,e){t.paintStyleInUse.outlineStroke=e,this._paintConnection(t)}},{key:"setOutlineWidth",value:function(t,e){t.paintStyleInUse.outlineWidth=e,this._paintConnection(t)}},{key:"setColor",value:function(t,e){t.paintStyleInUse.stroke=e,this._paintConnection(t)}},{key:"setLineWidth",value:function(t,e){t.paintStyleInUse.strokeWidth=e,this._paintConnection(t)}},{key:"setLineStyle",value:function(t,e){null!=e.lineWidth&&(t.paintStyleInUse.strokeWidth=e.lineWidth),null!=e.outlineWidth&&(t.paintStyleInUse.outlineWidth=e.outlineWidth),null!=e.color&&(t.paintStyleInUse.stroke=e.color),null!=e.outlineColor&&(t.paintStyleInUse.outlineStroke=e.outlineColor),this._paintConnection(t)}},{key:"getPathData",value:function(t){for(var e="",i=0;i<t.segments.length;i++)e+=t.segments[i].getPath(0===i),e+=" ";return e}}]),i}($g),Qv={};function Jv(t,e){Qv[t]=e}function ty(t,e,i){var n=e,o=_d(e.getBoundingClientRect)!==Af?e.getBoundingClientRect():{left:0,top:0,width:0,height:0},s=document.body,r=document.documentElement,a=window.pageYOffset||r.scrollTop||s.scrollTop,l=window.pageXOffset||r.scrollLeft||s.scrollLeft,c=r.clientTop||s.clientTop||0,h=r.clientLeft||s.clientLeft||0,d=o.top+a-c+0*i,u=o.left+l-h+0*i,p=qf(t),f=o.width||n.offsetWidth*i,m=o.height||n.offsetHeight*i;return{x:(p.x-u)/f,y:(p.y-d)/m}}function ey(t){return dv(t)||pv(t)||mv(t)}function iy(t,e){t.canvas&&(t.canvas.style.display=e?"block":"none")}function ny(t){t.canvas&&t.canvas.parentNode.removeChild(t.canvas),delete t.canvas}function oy(t){return t.canvas}function sy(t){return Lg.getElement(t)}function ry(t){return Lg.getElement(t,t.component,(function(e){var i=t.create(e);return t.instance.addClass(i,t.instance.overlayClass),i}))}function ay(t,e,i,n){var o=t.x,s=t.y;return e._jsPlumbParentGroup&&e._jsPlumbParentGroup.constrain&&(o=Math.max(t.x,0),s=Math.max(t.y,0),o=Math.min(o,i.w-n.w),s=Math.min(s,i.h-n.h)),{x:o,y:s}}var ly=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;if(wd(this,i),(o=e.call(this,t,n))._instanceIndex=t,Cd(Td(o),"containerType",null),Cd(Td(o),"dragSelection",void 0),Cd(Td(o),"dragManager",void 0),Cd(Td(o),"_connectorClick",void 0),Cd(Td(o),"_connectorDblClick",void 0),Cd(Td(o),"_connectorTap",void 0),Cd(Td(o),"_connectorDblTap",void 0),Cd(Td(o),"_endpointClick",void 0),Cd(Td(o),"_endpointDblClick",void 0),Cd(Td(o),"_overlayClick",void 0),Cd(Td(o),"_overlayDblClick",void 0),Cd(Td(o),"_overlayTap",void 0),Cd(Td(o),"_overlayDblTap",void 0),Cd(Td(o),"_connectorMouseover",void 0),Cd(Td(o),"_connectorMouseout",void 0),Cd(Td(o),"_endpointMouseover",void 0),Cd(Td(o),"_endpointMouseout",void 0),Cd(Td(o),"_connectorContextmenu",void 0),Cd(Td(o),"_connectorMousedown",void 0),Cd(Td(o),"_connectorMouseup",void 0),Cd(Td(o),"_endpointMousedown",void 0),Cd(Td(o),"_endpointMouseup",void 0),Cd(Td(o),"_overlayMouseover",void 0),Cd(Td(o),"_overlayMouseout",void 0),Cd(Td(o),"_elementClick",void 0),Cd(Td(o),"_elementTap",void 0),Cd(Td(o),"_elementDblTap",void 0),Cd(Td(o),"_elementMouseenter",void 0),Cd(Td(o),"_elementMouseexit",void 0),Cd(Td(o),"_elementMousemove",void 0),Cd(Td(o),"_elementMouseup",void 0),Cd(Td(o),"_elementMousedown",void 0),Cd(Td(o),"_elementContextmenu",void 0),Cd(Td(o),"_resizeObserver",void 0),Cd(Td(o),"eventManager",void 0),Cd(Td(o),"draggingClass","jtk-dragging"),Cd(Td(o),"elementDraggingClass","jtk-element-dragging"),Cd(Td(o),"hoverClass","jtk-hover"),Cd(Td(o),"sourceElementDraggingClass","jtk-source-element-dragging"),Cd(Td(o),"targetElementDraggingClass","jtk-target-element-dragging"),Cd(Td(o),"hoverSourceClass","jtk-source-hover"),Cd(Td(o),"hoverTargetClass","jtk-target-hover"),Cd(Td(o),"dragSelectClass","jtk-drag-select"),Cd(Td(o),"managedElementsSelector",void 0),Cd(Td(o),"elementsDraggable",void 0),Cd(Td(o),"elementDragHandler",void 0),Cd(Td(o),"groupDragOptions",void 0),Cd(Td(o),"elementDragOptions",void 0),Cd(Td(o),"svg",{node:function(t,e){return bp(t,e)},attr:function(t,e){return yp(t,e)},pos:function(t){return xp(t)}}),n=n||{},o.containerType=Mu(o.getContainer()),o.elementsDraggable=n&&!1!==n.elementsDraggable,o.managedElementsSelector=n&&n.managedElementsSelector||ap,o.eventManager=new em,o.dragSelection=new Rm(Td(o)),o.dragManager=new jm(Td(o),o.dragSelection),o.dragManager.addHandler(new Dg(Td(o))),o.groupDragOptions={constrainFunction:ay},o.dragManager.addHandler(new Ig(Td(o),o.dragSelection),o.groupDragOptions),o.elementDragHandler=new Um(Td(o),o.dragSelection),o.elementDragOptions=n&&n.dragOptions||{},o.dragManager.addHandler(o.elementDragHandler,o.elementDragOptions),n&&n.dragOptions&&n.dragOptions.filter&&o.dragManager.addFilter(n.dragOptions.filter),o._createEventListeners(),o._attachEventDelegates(),!1!==n.resizeObserver)try{o._resizeObserver=new ResizeObserver((function(t){var e=t.filter((function(t){var e=o.getAttribute(t.target,Nu);if(null!=e){var i=o.viewport._elementMap.get(e);return!!i&&(i.w!==t.contentRect.width||i.h!==t.contentRect.height)}return!1}));e.forEach((function(t){return o.revalidate(t.target)}))}))}catch(t){cu("WARN: ResizeObserver could not be attached.")}return o}return Sd(i,[{key:"fireOverlayMethod",value:function(t,e,i){var n=kp(t.component instanceof ov?Op:Tp,e);i._jsPlumbOverlay=t,t.fire(e,{e:i,overlay:t}),this.fire(n,t.component,i)}},{key:"addDragFilter",value:function(t,e){this.dragManager.addFilter(t,e)}},{key:"removeDragFilter",value:function(t){this.dragManager.removeFilter(t)}},{key:"setDragGrid",value:function(t){this.dragManager.setOption(this.elementDragHandler,{grid:t})}},{key:"setDragConstrainFunction",value:function(t){this.dragManager.setOption(this.elementDragHandler,{constrainFunction:t})}},{key:"_removeElement",value:function(t){t.parentNode&&t.parentNode.removeChild(t)}},{key:"_appendElement",value:function(t,e){e&&e.appendChild(t)}},{key:"_appendElementToGroup",value:function(t,e){this.getGroupContentArea(t).appendChild(e)}},{key:"_appendElementToContainer",value:function(t){this._appendElement(t,this.getContainer())}},{key:"_getAssociatedElements",value:function(t){var e=[];if(3!==t.nodeType&&8!==t.nodeType){var i=t.querySelectorAll(ap);Array.prototype.push.apply(e,i)}return e.filter((function(t){return 3!==t.nodeType&&8!==t.nodeType}))}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"getClass",value:function(t){return function(t){return yu(t)}(t)}},{key:"addClass",value:function(t,e){_u(t,e)}},{key:"hasClass",value:function(t,e){return function(t,e){return t.classList?t.classList.contains(e):-1!==yu(t).indexOf(e)}(t,e)}},{key:"removeClass",value:function(t,e){wu(t,e)}},{key:"toggleClass",value:function(t,e){!function(t,e){var i=this,n=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?t.classList.toggle(e):i.hasClass(t,e)?i.removeClass(t,e):i.addClass(t,e))};xu(t)?Gd(t,(function(t){return n(t,e)})):n(t,e)}(t,e)}},{key:"setAttribute",value:function(t,e,i){t.setAttribute(e,i)}},{key:"getAttribute",value:function(t,e){return t.getAttribute(e)}},{key:"setAttributes",value:function(t,e){for(var i in e)t.setAttribute(i,e[i])}},{key:"removeAttribute",value:function(t,e){t.removeAttribute&&t.removeAttribute(e)}},{key:"on",value:function(t,e,i,n){var o=this,s=function(t){null==n?o.eventManager.on(t,e,i):o.eventManager.on(t,e,i,n)};return xu(t)?Gd(t,(function(t){return s(t)})):s(t),this}},{key:"off",value:function(t,e,i){var n=this;return xu(t)?Gd(t,(function(t){return n.eventManager.off(t,e,i)})):this.eventManager.off(t,e,i),this}},{key:"trigger",value:function(t,e,i,n,o){this.eventManager.trigger(t,e,i,n,o)}},{key:"getOffsetRelativeToRoot",value:function(t){return Cu(t)}},{key:"getOffset",value:function(t){for(var e,i=t,n=this.getContainer(),o=this.getPosition(i),s=t!==n&&i.offsetParent!==n?i.offsetParent:null;null!=s;)o.x+=s.offsetLeft,o.y+=s.offsetTop,null!=(e=s)&&e!==document.body&&(e.scrollTop>0||e.scrollLeft>0)&&(o.x-=e.scrollLeft,o.y-=e.scrollTop),s=s.offsetParent===n?null:s.offsetParent;if(null!=n&&(n.scrollTop>0||n.scrollLeft>0)){var r=null!=i.offsetParent?this.getStyle(i.offsetParent,yf):"static",a=this.getStyle(i,yf);a!==$u&&a!==zu&&r!==$u&&r!==zu&&(o.x-=n.scrollLeft,o.y-=n.scrollTop)}return o}},{key:"getSize",value:function(t){var e=t;return null!=e.offsetWidth?function(t){return{w:t.offsetWidth,h:t.offsetHeight}}(t):e.width&&e.width.baseVal?function(t){try{return{w:parseFloat(t.width.baseVal.value),h:parseFloat(t.height.baseVal.value)}}catch(t){return{w:0,h:0}}}(e):void 0}},{key:"getPosition",value:function(t){var e=t;return null!=e.offsetLeft?{x:parseFloat(e.offsetLeft),y:parseFloat(e.offsetTop)}:e.x&&e.x.baseVal?function(t){try{return{x:parseFloat(t.x.baseVal.value),y:parseFloat(t.y.baseVal.value)}}catch(t){return{x:0,y:0}}}(e):void 0}},{key:"getStyle",value:function(t,e){return _d(window.getComputedStyle)!==Af?getComputedStyle(t,null).getPropertyValue(e):t.currentStyle[e]}},{key:"getGroupContentArea",value:function(t){var e=this.getSelector(t.el,wf);return e&&e.length>0?e[0]:t.el}},{key:"getSelector",value:function(t,e){var i=null;if(1===arguments.length){if(!Bd(t)){var n=document.createDocumentFragment();return n.appendChild(t),Qd(n.childNodes)}i=Qd(document.querySelectorAll(t))}else i=Qd(t.querySelectorAll(e));return i}},{key:"setPosition",value:function(t,e){var i=t;i.style.left=e.x+"px",i.style.top=e.y+"px"}},{key:"setDraggable",value:function(t,e){e?this.removeAttribute(t,Bu):this.setAttribute(t,Bu,Tf)}},{key:"isDraggable",value:function(t){var e=this.getAttribute(t,Bu);return null==e||e===Pf}},{key:"toggleDraggable",value:function(t){var e=this.isDraggable(t);return this.setDraggable(t,!e),!e}},{key:"_createEventListeners",value:function(){var t=function(t,e){if(!e.defaultPrevented&&null==e._jsPlumbOverlay){var i=gu(vu(e),bf,this.getContainer(),!0);this.fire(t,i.jtk.connector.connection,e)}};this._connectorClick=t.bind(this,cf),this._connectorDblClick=t.bind(this,hf),this._connectorTap=t.bind(this,vf),this._connectorDblTap=t.bind(this,df);var e=function(t,e){var i=vu(e).parentNode;if(i.jtk&&i.jtk.connector){var n=i.jtk.connector,o=n.connection;this.setConnectorHover(n,t),t?(this.addClass(o.source,this.hoverSourceClass),this.addClass(o.target,this.hoverTargetClass)):(this.removeClass(o.source,this.hoverSourceClass),this.removeClass(o.target,this.hoverTargetClass)),this.fire(t?pf:uf,i.jtk.connector.connection,e)}};this._connectorMouseover=e.bind(this,!0),this._connectorMouseout=e.bind(this,!1);var i=function(t,e){var i=vu(e).parentNode;i.jtk&&i.jtk.connector&&this.fire(t?ff:mf,i.jtk.connector.connection,e)};this._connectorMouseup=i.bind(this,!0),this._connectorMousedown=i.bind(this,!1),this._connectorContextmenu=function(t){var e=vu(t).parentNode;e.jtk&&e.jtk.connector&&this.fire(gf,e.jtk.connector.connection,t)}.bind(this);var n=function(t,e,i){e.defaultPrevented||null!=e._jsPlumbOverlay||this.fire(t,i.jtk.endpoint,e)};this._endpointClick=n.bind(this,nf),this._endpointDblClick=n.bind(this,of);var o=function(t,e){var i=vu(e);i.jtk&&i.jtk.endpoint&&(this.setEndpointHover(i.jtk.endpoint,t),this.fire(t?rf:sf,i.jtk.endpoint,e))};this._endpointMouseover=o.bind(this,!0),this._endpointMouseout=o.bind(this,!1);var s=function(t,e){var i=vu(e);i.jtk&&i.jtk.endpoint&&this.fire(t?af:lf,i.jtk.endpoint,e)};this._endpointMouseup=s.bind(this,!0),this._endpointMousedown=s.bind(this,!1);var r=function(t,e){var i=gu(vu(e),kf,this.getContainer(),!0).jtk.overlay;i&&this.fireOverlayMethod(i,t,e)}.bind(this);this._overlayClick=r.bind(this,Dp),this._overlayDblClick=r.bind(this,Lp),this._overlayTap=r.bind(this,Vp),this._overlayDblTap=r.bind(this,$p);var a=function(t,e){var i=gu(vu(e),kf,this.getContainer(),!0).jtk.overlay;i&&this.setOverlayHover(i,t)};this._overlayMouseover=a.bind(this,!0),this._overlayMouseout=a.bind(this,!1);this._elementClick=function(t,e,i){e.defaultPrevented||this.fire(1===e.detail?Wp:Gp,i,e)}.bind(this,Wp);this._elementTap=function(t,e,i){e.defaultPrevented||this.fire(ef,i,e)}.bind(this,ef);this._elementDblTap=function(t,e,i){e.defaultPrevented||this.fire(Zp,i,e)}.bind(this,Zp);var l=function(t,e){this.fire(t?Xp:Yp,vu(e),e)};this._elementMouseenter=l.bind(this,!0),this._elementMouseexit=l.bind(this,!1),this._elementMousemove=function(t){this.fire(Kp,vu(t),t)}.bind(this),this._elementMouseup=function(t){this.fire(Qp,vu(t),t)}.bind(this),this._elementMousedown=function(t){this.fire(Jp,vu(t),t)}.bind(this),this._elementContextmenu=function(t){this.fire(tf,vu(t),t)}.bind(this)}},{key:"_attachEventDelegates",value:function(){var t=this.getContainer();this.eventManager.on(t,Dp,kf,this._overlayClick),this.eventManager.on(t,Lp,kf,this._overlayDblClick),this.eventManager.on(t,Vp,kf,this._overlayTap),this.eventManager.on(t,$p,kf,this._overlayDblTap),this.eventManager.on(t,Dp,bf,this._connectorClick),this.eventManager.on(t,Lp,bf,this._connectorDblClick),this.eventManager.on(t,Vp,bf,this._connectorTap),this.eventManager.on(t,$p,bf,this._connectorDblTap),this.eventManager.on(t,Dp,xf,this._endpointClick),this.eventManager.on(t,Lp,xf,this._endpointDblClick),this.eventManager.on(t,Dp,this.managedElementsSelector,this._elementClick),this.eventManager.on(t,Vp,this.managedElementsSelector,this._elementTap),this.eventManager.on(t,$p,this.managedElementsSelector,this._elementDblTap),this.eventManager.on(t,qp,bf,this._connectorMouseover),this.eventManager.on(t,Fp,bf,this._connectorMouseout),this.eventManager.on(t,Ip,bf,this._connectorContextmenu),this.eventManager.on(t,jp,bf,this._connectorMouseup),this.eventManager.on(t,zp,bf,this._connectorMousedown),this.eventManager.on(t,qp,xf,this._endpointMouseover),this.eventManager.on(t,Fp,xf,this._endpointMouseout),this.eventManager.on(t,jp,xf,this._endpointMouseup),this.eventManager.on(t,zp,xf,this._endpointMousedown),this.eventManager.on(t,qp,kf,this._overlayMouseover),this.eventManager.on(t,Fp,kf,this._overlayMouseout),this.eventManager.on(t,qp,ap,this._elementMouseenter),this.eventManager.on(t,Fp,ap,this._elementMouseexit),this.eventManager.on(t,Bp,ap,this._elementMousemove),this.eventManager.on(t,jp,ap,this._elementMouseup),this.eventManager.on(t,zp,ap,this._elementMousedown),this.eventManager.on(t,Ip,ap,this._elementContextmenu)}},{key:"_detachEventDelegates",value:function(){var t=this.getContainer();t&&(this.eventManager.off(t,Dp,this._connectorClick),this.eventManager.off(t,Lp,this._connectorDblClick),this.eventManager.off(t,Vp,this._connectorTap),this.eventManager.off(t,$p,this._connectorDblTap),this.eventManager.off(t,Dp,this._endpointClick),this.eventManager.off(t,Lp,this._endpointDblClick),this.eventManager.off(t,Dp,this._overlayClick),this.eventManager.off(t,Lp,this._overlayDblClick),this.eventManager.off(t,Vp,this._overlayTap),this.eventManager.off(t,$p,this._overlayDblTap),this.eventManager.off(t,Dp,this._elementClick),this.eventManager.off(t,Vp,this._elementTap),this.eventManager.off(t,$p,this._elementDblTap),this.eventManager.off(t,qp,this._connectorMouseover),this.eventManager.off(t,Fp,this._connectorMouseout),this.eventManager.off(t,Ip,this._connectorContextmenu),this.eventManager.off(t,jp,this._connectorMouseup),this.eventManager.off(t,zp,this._connectorMousedown),this.eventManager.off(t,qp,this._endpointMouseover),this.eventManager.off(t,Fp,this._endpointMouseout),this.eventManager.off(t,jp,this._endpointMouseup),this.eventManager.off(t,zp,this._endpointMousedown),this.eventManager.off(t,qp,this._overlayMouseover),this.eventManager.off(t,Fp,this._overlayMouseout),this.eventManager.off(t,Rp,this._elementMouseenter),this.eventManager.off(t,Np,this._elementMouseexit),this.eventManager.off(t,Bp,this._elementMousemove),this.eventManager.off(t,jp,this._elementMouseup),this.eventManager.off(t,zp,this._elementMousedown),this.eventManager.off(t,Ip,this._elementContextmenu))}},{key:"setContainer",value:function(t){var e,n=this;if(t===document||t===document.body)throw new Error("Cannot set document or document.body as container element");this._detachEventDelegates(),null!=this.dragManager&&(e=this.dragManager.reset()),this.setAttribute(t,Ep,su().replace("-",""));var o=this.getContainer();null!=o&&(o.removeAttribute(Ep),Gd(Qd(o.childNodes).filter((function(t){return null!=t&&(n.hasClass(t,Vu)||n.hasClass(t,Hu)||n.hasClass(t,Zu)||t.getAttribute&&null!=t.getAttribute(Nu))})),(function(e){t.appendChild(e)})));Od(Ad(i.prototype),"setContainer",this).call(this,t),this.containerType=Mu(t),null!=this.eventManager&&this._attachEventDelegates(),null!=this.dragManager&&(this.dragManager.addHandler(new Dg(this)),this.dragManager.addHandler(new Ig(this,this.dragSelection),this.groupDragOptions),this.elementDragHandler=new Um(this,this.dragSelection),this.dragManager.addHandler(this.elementDragHandler,this.elementDragOptions),null!=e&&this.dragManager.setFilters(e))}},{key:"reset",value:function(){Od(Ad(i.prototype),"reset",this).call(this),this._resizeObserver&&this._resizeObserver.disconnect(),Gd(this.getContainer().querySelectorAll([ap,xf,bf,kf].join(",")),(function(t){return t.parentNode&&t.parentNode.removeChild(t)}))}},{key:"destroy",value:function(){this._detachEventDelegates(),null!=this.dragManager&&this.dragManager.reset(),this.clearDragSelection(),Od(Ad(i.prototype),"destroy",this).call(this)}},{key:"unmanage",value:function(t,e){null!=this._resizeObserver&&this._resizeObserver.unobserve(t),this.removeFromDragSelection(t),Od(Ad(i.prototype),"unmanage",this).call(this,t,e)}},{key:"addToDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.add(e)}))}},{key:"clearDragSelection",value:function(){this.dragSelection.clear()}},{key:"removeFromDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.remove(e)}))}},{key:"toggleDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.toggle(e)}))}},{key:"addToDragGroup",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this.elementDragHandler).addToDragGroup.apply(e,[t].concat(n))}},{key:"removeFromDragGroup",value:function(){var t;(t=this.elementDragHandler).removeFromDragGroup.apply(t,arguments)}},{key:"setDragGroupState",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this.elementDragHandler).setDragGroupState.apply(e,[t].concat(n))}},{key:"clearDragGroup",value:function(t){this.elementDragHandler.clearDragGroup(t)}},{key:"consume",value:function(t,e){mu(t,e)}},{key:"rotate",value:function(t,e,n){var o=this.getId(t);return this._managedElements[o]?(this._managedElements[o].el.style.transform="rotate("+e+"deg)",this._managedElements[o].el.style.transformOrigin="center center",Od(Ad(i.prototype),"rotate",this).call(this,t,e,n)):{c:new Set,e:new Set}}},{key:"addOverlayClass",value:function(t,e){if(qg(t))t.instance.addClass(sy(t),e);else if(ey(t))t.instance.addClass(sv(t),e);else{if(!vv(t))throw"Could not add class to overlay of type ["+t.type+"]";t.instance.addClass(ry(t),e)}}},{key:"removeOverlayClass",value:function(t,e){if(qg(t))t.instance.removeClass(sy(t),e);else if(ey(t))t.instance.removeClass(sv(t),e);else{if(!vv(t))throw"Could not remove class from overlay of type ["+t.type+"]";t.instance.removeClass(ry(t),e)}}},{key:"_paintOverlay",value:function(t,e,i){if(qg(t)){sy(t);var n=t.component.getXY();t.canvas.style.left=n.x+e.d.minx+"px",t.canvas.style.top=n.y+e.d.miny+"px"}else if(ey(t)){!function(t,e,i,n){sv(t);var o=[0,0];n.xmin<0&&(o[0]=-n.xmin),n.ymin<0&&(o[1]=-n.ymin);var s={d:e,stroke:i.stroke?i.stroke:null,fill:i.fill?i.fill:null,transform:"translate("+o[0]+","+o[1]+")","pointer-events":"visibleStroke"};yp(t.path,s)}(t,isNaN(e.d.cxy.x)||isNaN(e.d.cxy.y)?"M 0 0":"M"+e.d.hxy.x+","+e.d.hxy.y+" L"+e.d.tail[0].x+","+e.d.tail[0].y+" L"+e.d.cxy.x+","+e.d.cxy.y+" L"+e.d.tail[1].x+","+e.d.tail[1].y+" Z",e,i)}else{if(!vv(t))throw"Could not paint overlay of type ["+t.type+"]";ry(t);var o=t.component.getXY();t.canvas.style.left=o.x+e.d.minx+"px",t.canvas.style.top=o.y+e.d.miny+"px"}}},{key:"setOverlayVisible",value:function(t,e){var i=e?"block":"none";function n(t){null!=t&&(t.style.display=i)}qg(t)?n(sy(t)):vv(t)?n(ry(t)):ey(t)&&n(t.path)}},{key:"reattachOverlay",value:function(t,e){qg(t)?t.instance._appendElement(sy(t),this.getContainer()):vv(t)?t.instance._appendElement(ry(t),this.getContainer()):ey(t)&&this._appendElement(sv(t),e.connector.canvas)}},{key:"setOverlayHover",value:function(t,e){var i;qg(t)?i=sy(t):vv(t)?i=ry(t):ey(t)&&(i=sv(t)),null!=i&&(null!=this.hoverClass&&(e?this.addClass(i,this.hoverClass):this.removeClass(i,this.hoverClass)),this.setHover(t.component,e))}},{key:"destroyOverlay",value:function(t){if(qg(t)){var e=sy(t);e.parentNode.removeChild(e),delete t.canvas,delete t.cachedDimensions}else if(dv(t)||pv(t)||mv(t))!function(t,e){var i=t;null!=i.path&&null!=i.path.parentNode&&i.path.parentNode.removeChild(i.path),null!=i.bgPath&&null!=i.bgPath.parentNode&&i.bgPath.parentNode.removeChild(i.bgPath),delete i.path,delete i.bgPath}(t);else if(vv(t)){var i=ry(t);i.parentNode.removeChild(i),delete t.canvas,delete t.cachedDimensions}}},{key:"drawOverlay",value:function(t,e,i,n){if(qg(t)||vv(t)){var o=Lg._getDimensions(t);if(null!=o&&null!=o.w&&null!=o.h){var s={x:0,y:0};if(n)s={x:n.x,y:n.y};else if(e instanceof Xm){var r=Array.isArray(t.location)?t.location:[t.location,t.location];s={x:r[0]*e.w,y:r[1]*e.h}}else{var a=t.location,l=!1;(Bd(t.location)||t.location<0||t.location>1)&&(a=parseInt(""+t.location,10),l=!0),s=e.pointOnPath(a,l)}var c=s.x-o.w/2,h=s.y-o.h/2;return{component:t,d:{minx:c,miny:h,td:o,cxy:s},xmin:c,xmax:c+o.w,ymin:h,ymax:h+o.h}}return{xmin:0,xmax:0,ymin:0,ymax:0}}if(dv(t)||pv(t)||mv(t))return t.draw(e,i,n);throw"Could not draw overlay of type ["+t.type+"]"}},{key:"updateLabel",value:function(t){if(qd(t.label)){var e=t.label(this);sy(t).innerText=null!=e?e:""}else null==t.labelText&&(t.labelText=t.label,null!=t.labelText?sy(t).innerText=t.labelText:sy(t).innerText="")}},{key:"setHover",value:function(t,e){t._hover=e,t instanceof tv&&null!=t.endpoint?this.setEndpointHover(t,e,-1):t instanceof ov&&null!=t.connector&&this.setConnectorHover(t.connector,e)}},{key:"paintConnector",value:function(t,e,i){av(this,t,e,i)}},{key:"setConnectorHover",value:function(t,e,i){if(!1===e||!this.currentlyDragging&&!this.isHoverSuspended()){var n=t.canvas;null!=n&&(null!=t.hoverClass&&(e?this.addClass(n,t.hoverClass):this.removeClass(n,t.hoverClass)),e?this.addClass(n,this.hoverClass):this.removeClass(n,this.hoverClass)),null!=t.connection.hoverPaintStyle&&(t.connection.paintStyleInUse=e?t.connection.hoverPaintStyle:t.connection.paintStyle,this._suspendDrawing||this._paintConnection(t.connection)),t.connection.endpoints[0]!==i&&this.setEndpointHover(t.connection.endpoints[0],e,0,!0),t.connection.endpoints[1]!==i&&this.setEndpointHover(t.connection.endpoints[1],e,1,!0)}}},{key:"destroyConnector",value:function(t){null!=t.connector&&ny(t.connector)}},{key:"addConnectorClass",value:function(t,e){t.canvas&&this.addClass(t.canvas,e)}},{key:"removeConnectorClass",value:function(t,e){t.canvas&&this.removeClass(t.canvas,e)}},{key:"getConnectorClass",value:function(t){return t.canvas?t.canvas.className.baseVal:""}},{key:"setConnectorVisible",value:function(t,e){iy(t,e)}},{key:"applyConnectorType",value:function(t,e){if(t.canvas&&e.cssClass){var i=Array.isArray(e.cssClass)?e.cssClass:[e.cssClass];this.addClass(t.canvas,i.join(" "))}}},{key:"addEndpointClass",value:function(t,e){var i=oy(t.endpoint);null!=i&&this.addClass(i,e)}},{key:"applyEndpointType",value:function(t,e){if(e.cssClass){var i=oy(t.endpoint);if(i){var n=Array.isArray(e.cssClass)?e.cssClass:[e.cssClass];this.addClass(i,n.join(" "))}}}},{key:"destroyEndpoint",value:function(t){var e=this.endpointAnchorClassPrefix+(t.currentAnchorClass?"-"+t.currentAnchorClass:"");this.removeClass(t.element,e),ny(t.endpoint)}},{key:"renderEndpoint",value:function(t,e){var i=Qv[t.endpoint.type];null!=i?lv.paint(t.endpoint,i,e):cu("jsPlumb: no endpoint renderer found for type ["+t.endpoint.type+"]")}},{key:"removeEndpointClass",value:function(t,e){var i=oy(t.endpoint);null!=i&&this.removeClass(i,e)}},{key:"getEndpointClass",value:function(t){var e=oy(t.endpoint);return null!=e?e.className:""}},{key:"setEndpointHover",value:function(t,e,i,n){if(null!=t&&(!1===e||!this.currentlyDragging&&!this.isHoverSuspended())){var o=oy(t.endpoint);if(null!=o&&(null!=t.hoverClass&&(e?this.addClass(o,t.hoverClass):this.removeClass(o,t.hoverClass)),0===i||1===i)){var s=0===i?this.hoverSourceClass:this.hoverTargetClass;e?this.addClass(o,s):this.removeClass(o,s)}if(null!=t.hoverPaintStyle&&(t.paintStyleInUse=e?t.hoverPaintStyle:t.paintStyle,this._suspendDrawing||this.renderEndpoint(t,t.paintStyleInUse)),!n)for(var r=0;r<t.connections.length;r++)this.setConnectorHover(t.connections[r].connector,e,t)}}},{key:"setEndpointVisible",value:function(t,e){iy(t.endpoint,e)}},{key:"setGroupVisible",value:function(t,e){for(var i=t.el.querySelectorAll(ap),n=0;n<i.length;n++)e?this.show(i[n],!0):this.hide(i[n],!0)}},{key:"deleteConnection",value:function(t,e){return null!=t&&!0!==t.deleted&&(!0!==t.endpoints[0].deleted&&this.setEndpointHover(t.endpoints[0],!1,0,!0),!0!==t.endpoints[1].deleted&&this.setEndpointHover(t.endpoints[1],!1,1,!0),Od(Ad(i.prototype),"deleteConnection",this).call(this,t,e))}},{key:"addSourceSelector",value:function(t,e,n){return this.addDragFilter(t),Od(Ad(i.prototype),"addSourceSelector",this).call(this,t,e,n)}},{key:"removeSourceSelector",value:function(t){this.removeDragFilter(t.selector),Od(Ad(i.prototype),"removeSourceSelector",this).call(this,t)}},{key:"manage",value:function(t,e,n){if(this.containerType===iu.SVG&&Mu(t)!==iu.SVG)throw new Error("ERROR: cannot manage non-svg element when container is an SVG element.");var o=Od(Ad(i.prototype),"manage",this).call(this,t,e,n);return null!=o&&null!=this._resizeObserver&&this._resizeObserver.observe(o.el),o}}]),i}(Kv),cy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"width",void 0),Cd(Td(o),"height",void 0),Cd(Td(o),"type",i.type),n=n||{},o.width=n.width||10,o.height=n.height||10,o}return Sd(i,null,[{key:"_getParams",value:function(t){return{width:t.width,height:t.height}}}]),i}(Xm);Cd(cy,"type","Rectangle");var hy={type:cy.type,cls:cy,compute:function(t,e,i,n){var o=n.width||t.width,s=n.height||t.height,r=e.curX-o/2,a=e.curY-s/2;return t.x=r,t.y=a,t.w=o,t.h=s,[r,a,o,s]},getParams:function(t){return{width:t.width,height:t.height}}},dy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"type",i.type),o}return i}(Xm);Cd(dy,"type","Blank");var uy,py={type:dy.type,cls:dy,compute:function(t,e,i,n){return t.x=e.curX,t.y=e.curY,t.w=10,t.h=0,[e.curX,e.curY,10,0]},getParams:function(t){return{}}},fy={width:10,height:0,fill:"transparent",stroke:"transparent"};Jv(bv.type,{makeNode:function(t,e){return bp("circle",{cx:t.w/2,cy:t.h/2,r:t.radius})},updateNode:function(t,e){yp(e,{cx:""+t.w/2,cy:""+t.h/2,r:""+t.radius})}}),Jv(dy.type,{makeNode:function(t,e){return bp("rect",fy)},updateNode:function(t,e){yp(e,fy)}}),Jv(cy.type,{makeNode:function(t,e){return bp("rect",{width:t.w,height:t.h})},updateNode:function(t,e){yp(e,{width:t.w,height:t.h})}}),function(t){t[t.top=0]="top",t[t.bottom=1]="bottom"}(uy||(uy={}));var my=new Map;my.set(uy.top,[Cp.TopRight,Cp.TopLeft]),my.set(uy.bottom,[Cp.BottomRight,Cp.BottomLeft]);var gy={deriveAnchor:function(t,e,i,n){return my.get(t)[e]}},vy="jtk-scrollable-list",yy=Pu(vy),by="scroll";!function(){function t(e,i){var n=this;wd(this,t),this.instance=e,Cd(this,"options",void 0),Cd(this,"count",void 0),Cd(this,"lists",void 0),this.count=0,this.lists={},this.options=i||{},this.instance.bind(tp,(function(t){for(var e=n.instance.getSelector(t.el,yy),i=0;i<e.length;i++)n.addList(e[i])})),this.instance.bind(ip,(function(t){n.removeList(t.el)})),this.instance.bind(Yu,(function(t,e){if(null==e){var i=n.findParentList(t.target);null!=i&&i.newConnection(t.connection,t.target,1);var o=n.findParentList(t.source);null!=o&&o.newConnection(t.connection,t.source,0)}})),this.instance.bind(sp,(function(t){var e=t.dropEndpoint.element,i=n.findParentList(e);return null==i||e.offsetTop>=i.domElement.scrollTop&&e.offsetTop+e.offsetHeight<=i.domElement.scrollTop+i.domElement.offsetHeight}))}Sd(t,[{key:"addList",value:function(t,e){var i=Rd({},gy);Rd(i,this.options),e=Rd(i,e||{});var n=[this.instance._instanceIndex,this.count++].join("_");return this.lists[n]=new xy(this.instance,t,e,n),this.lists[n]}},{key:"getList",value:function(t){var e=this.instance.getAttribute(t,vy);if(null!=e)return this.lists[e]}},{key:"removeList",value:function(t){var e=this.getList(t);e&&(e.destroy(),delete this.lists[e.id])}},{key:"findParentList",value:function(t){for(var e,i=t.parentNode,n=this.instance.getContainer();null!=i&&i!==n&&i!==document;){if(null!=(e=this.getList(i)))return e;i=i.parentNode}}}])}();var xy=function(){function t(e,i,n,o){wd(this,t),this.instance=e,this.el=i,this.options=n,this.id=o,Cd(this,"_scrollHandler",void 0),Cd(this,"domElement",void 0),Cd(this,"elId",void 0),this.domElement=i,this.elId=this.instance.getId(i),e.setAttribute(i,vy,o),this._scrollHandler=this.scrollHandler.bind(this),this.domElement._jsPlumbScrollHandler=this._scrollHandler,e.on(i,by,this._scrollHandler),this._scrollHandler()}return Sd(t,[{key:"deriveAnchor",value:function(t,e,i,n){return this.options.anchor?this.options.anchor:this.options.deriveAnchor(t,e,i,n)}},{key:"deriveEndpoint",value:function(t,e,i,n){return this.options.deriveEndpoint?this.options.deriveEndpoint(t,e,i,n):this.options.endpoint?this.options.endpoint:i.endpoint.type}},{key:"newConnection",value:function(t,e,i){e.offsetTop<this.el.scrollTop?this._proxyConnection(e,t,i,uy.top):e.offsetTop+e.offsetHeight>this.el.scrollTop+this.domElement.offsetHeight&&this._proxyConnection(e,t,i,uy.bottom)}},{key:"scrollHandler",value:function(){for(var t=this,e=this.instance.getSelector(this.el,ap),i=function(i){if(e[i].offsetTop<t.el.scrollTop)e[i]._jsPlumbProxies=e[i]._jsPlumbProxies||[],t.instance.select({source:e[i]}).each((function(n){t._proxyConnection(e[i],n,0,uy.top)})),t.instance.select({target:e[i]}).each((function(n){t._proxyConnection(e[i],n,1,uy.top)}));else if(e[i].offsetTop+e[i].offsetHeight>t.el.scrollTop+t.domElement.offsetHeight)e[i]._jsPlumbProxies=e[i]._jsPlumbProxies||[],t.instance.select({source:e[i]}).each((function(n){t._proxyConnection(e[i],n,0,uy.bottom)})),t.instance.select({target:e[i]}).each((function(n){t._proxyConnection(e[i],n,1,uy.bottom)}));else if(e[i]._jsPlumbProxies){for(var n=0;n<e[i]._jsPlumbProxies.length;n++)t.instance.unproxyConnection(e[i]._jsPlumbProxies[n][0],e[i]._jsPlumbProxies[n][1]);delete e[i]._jsPlumbProxies}t.instance.revalidate(e[i])},n=0;n<e.length;n++)i(n)}},{key:"_proxyConnection",value:function(t,e,i,n){var o=this;this.instance.proxyConnection(e,i,this.domElement,(function(t,i){return o.deriveEndpoint(n,i,e.endpoints[i],e)}),(function(t,i){return o.deriveAnchor(n,i,e.endpoints[i],e)})),t._jsPlumbProxies=t._jsPlumbProxies||[],t._jsPlumbProxies.push([e,i])}},{key:"destroy",value:function(){this.instance.off(this.el,by,this._scrollHandler),delete this.domElement._jsPlumbScrollHandler;for(var t=this.instance.getSelector(this.el,ap),e=0;e<t.length;e++)if(t[e]._jsPlumbProxies){for(var i=0;i<t[e]._jsPlumbProxies.length;i++)this.instance.unproxyConnection(t[e]._jsPlumbProxies[i][0],t[e]._jsPlumbProxies[i][1]);delete t[e]._jsPlumbProxies}}}]),t}();function _y(t){var e=Math.floor(t),i=Math.ceil(t);return t-e<1e-10?e:i-t<1e-10?i:t}var wy=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;wd(this,i),Cd(Td(n=e.call(this,t)),"type",i.segmentType),Cd(Td(n),"cx",void 0),Cd(Td(n),"cy",void 0),Cd(Td(n),"radius",void 0),Cd(Td(n),"anticlockwise",void 0),Cd(Td(n),"startAngle",void 0),Cd(Td(n),"endAngle",void 0),Cd(Td(n),"sweep",void 0),Cd(Td(n),"length",void 0),Cd(Td(n),"circumference",void 0),Cd(Td(n),"frac",void 0),n.cx=t.cx,n.cy=t.cy,n.radius=t.r,n.anticlockwise=t.ac,t.startAngle&&t.endAngle?(n.startAngle=t.startAngle,n.endAngle=t.endAngle,n.x1=n.cx+n.radius*Math.cos(n.startAngle),n.y1=n.cy+n.radius*Math.sin(n.startAngle),n.x2=n.cx+n.radius*Math.cos(n.endAngle),n.y2=n.cy+n.radius*Math.sin(n.endAngle)):(n.startAngle=n._calcAngle(n.x1,n.y1),n.endAngle=n._calcAngle(n.x2,n.y2)),n.endAngle<0&&(n.endAngle+=om),n.startAngle<0&&(n.startAngle+=om);var o=n.endAngle<n.startAngle?n.endAngle+om:n.endAngle;return n.sweep=Math.abs(o-n.startAngle),n.anticlockwise&&(n.sweep=om-n.sweep),n.circumference=2*Math.PI*n.radius,n.frac=n.sweep/om,n.length=n.circumference*n.frac,n.extents={xmin:n.cx-n.radius,xmax:n.cx+n.radius,ymin:n.cy-n.radius,ymax:n.cy+n.radius},n}return Sd(i,[{key:"_calcAngle",value:function(t,e){return function(t,e){var i=sm(t,e),n=Math.atan(i),o=am(t,e);return 4!=o&&3!=o||(n+=Math.PI),n<0&&(n+=2*Math.PI),n}({x:this.cx,y:this.cy},{x:t,y:e})}},{key:"_calcAngleForLocation",value:function(t,e){if(t.anticlockwise){var i=t.startAngle<t.endAngle?t.startAngle+om:t.startAngle;return i-Math.abs(i-t.endAngle)*e}var n=t.endAngle<t.startAngle?t.endAngle+om:t.endAngle,o=Math.abs(n-t.startAngle);return t.startAngle+o*e}},{key:"getPath",value:function(t){var e=this.sweep>Math.PI?1:0,i=this.anticlockwise?0:1;return(t?"M"+this.x1+" "+this.y1+" ":"")+"A "+this.radius+" "+this.radius+" 0 "+e+","+i+" "+this.x2+" "+this.y2}},{key:"getLength",value:function(){return this.length}},{key:"pointOnPath",value:function(t,e){if(0===t)return{x:this.x1,y:this.y1,theta:this.startAngle};if(1===t)return{x:this.x2,y:this.y2,theta:this.endAngle};e&&(t/=length);var i=this._calcAngleForLocation(this,t),n=this.cx+this.radius*Math.cos(i),o=this.cy+this.radius*Math.sin(i);return{x:_y(n),y:_y(o),theta:i}}},{key:"gradientAtPoint",value:function(t,e){var i=this.pointOnPath(t,e),n=-1/sm({x:this.cx,y:this.cy},i);return this.anticlockwise||n!==1/0&&n!==-1/0||(n*=-1),n}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this.pointOnPath(t,i),o=e/this.circumference*2*Math.PI,s=this.anticlockwise?-1:1,r=n.theta+s*o;return{x:this.cx+this.radius*Math.cos(r),y:this.cy+this.radius*Math.sin(r)}}}]),i}(Ef);Cd(wy,"segmentType","Arc");var ky=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"showLoopback",void 0),Cd(Td(o),"curviness",void 0),Cd(Td(o),"margin",void 0),Cd(Td(o),"proximityLimit",void 0),Cd(Td(o),"orientation",void 0),Cd(Td(o),"loopbackRadius",void 0),Cd(Td(o),"clockwise",void 0),Cd(Td(o),"isLoopbackCurrently",void 0),Cd(Td(o),"geometry",null),n=n||{},o.showLoopback=!1!==n.showLoopback,o.curviness=n.curviness||10,o.margin=n.margin||5,o.proximityLimit=n.proximityLimit||80,o.clockwise=n.orientation&&"clockwise"===n.orientation,o.loopbackRadius=n.loopbackRadius||25,o.isLoopbackCurrently=!1,o}return Sd(i,[{key:"getDefaultStubs",value:function(){return[0,0]}},{key:"_compute",value:function(t,e){var i=e.sourcePos,n=e.targetPos,o=Math.abs(i.curX-n.curX),s=Math.abs(i.curY-n.curY);if(this.showLoopback&&e.sourceEndpoint.elementId===e.targetEndpoint.elementId){this.isLoopbackCurrently=!0;var r=e.sourcePos.curX,a=e.sourcePos.curY-this.margin,l=r,c=a-this.loopbackRadius,h=l-this.loopbackRadius,d=c-this.loopbackRadius;o=2*this.loopbackRadius,s=2*this.loopbackRadius,t.points[0]=h,t.points[1]=d,t.points[2]=o,t.points[3]=s,this._addSegment(wy,{loopback:!0,x1:r-h+4,y1:a-d,startAngle:0,endAngle:2*Math.PI,r:this.loopbackRadius,ac:!this.clockwise,x2:r-h-4,y2:a-d,cx:l-h,cy:c-d})}else this.isLoopbackCurrently=!1,this._computeBezier(t,e,i,n,o,s)}},{key:"exportGeometry",value:function(){return null==this.geometry?null:{controlPoints:[Rd({},this.geometry.controlPoints[0]),Rd({},this.geometry.controlPoints[1])],source:Rd({},this.geometry.source),target:Rd({},this.geometry.target)}}},{key:"transformGeometry",value:function(t,e,i){return{controlPoints:[{x:t.controlPoints[0].x+e,y:t.controlPoints[0].y+i},{x:t.controlPoints[1].x+e,y:t.controlPoints[1].y+i}],source:this.transformAnchorPlacement(t.source,e,i),target:this.transformAnchorPlacement(t.target,e,i)}}},{key:"importGeometry",value:function(t){return null!=t&&(null==t.controlPoints||2!=t.controlPoints.length?(cu("jsPlumb Bezier: cannot import geometry; controlPoints missing or does not have length 2"),this.setGeometry(null,!0),!1):null==t.controlPoints[0].x||null==t.controlPoints[0].y||null==t.controlPoints[1].x||null==t.controlPoints[1].y?(cu("jsPlumb Bezier: cannot import geometry; controlPoints malformed"),this.setGeometry(null,!0),!1):null==t.source||null==t.source.curX||null==t.source.curY?(cu("jsPlumb Bezier: cannot import geometry; source missing or malformed"),this.setGeometry(null,!0),!1):null==t.target||null==t.target.curX||null==t.target.curY?(cu("jsPlumb Bezier: cannot import geometry; target missing or malformed"),this.setGeometry(null,!0),!1):(this.setGeometry(t,!1),!0))}}]),i}(cv),Sy={subtract:function(t,e){return{x:t.x-e.x,y:t.y-e.y}},dotProduct:function(t,e){return t.x*e.x+t.y*e.y},square:function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},scale:function(t,e){return{x:t.x*e,y:t.y*e}}},Cy=64,Ey=Math.pow(2,-Cy-1);function Ay(t,e){for(var i,n=[],o=function(t,e){for(var i=e.length-1,n=2*i-1,o=[],s=[],r=[],a=[],l=[[1,.6,.3,.1],[.4,.6,.6,.4],[.1,.3,.6,1]],c=0;c<=i;c++)o[c]=Sy.subtract(e[c],t);for(var h=0;h<=i-1;h++)s[h]=Sy.subtract(e[h+1],e[h]),s[h]=Sy.scale(s[h],3);for(var d=0;d<=i-1;d++)for(var u=0;u<=i;u++)r[d]||(r[d]=[]),r[d][u]=Sy.dotProduct(s[d],o[u]);for(var p=0;p<=n;p++)a[p]||(a[p]=[]),a[p].y=0,a[p].x=parseFloat(""+p)/n;for(var f=i,m=i-1,g=0;g<=f+m;g++)for(var v=Math.max(0,g-m),y=Math.min(g,f),b=v;b<=y;b++){var x=g-b;a[b+x].y+=r[x][b]*l[x][b]}return a}(t,e),s=e.length-1,r=My(o,2*s-1,n,0),a=Sy.subtract(t,e[0]),l=Sy.square(a),c=0,h=0;h<r;h++)a=Sy.subtract(t,Ty(e,s,n[h],null,null)),(i=Sy.square(a))<l&&(l=i,c=n[h]);return a=Sy.subtract(t,e[s]),(i=Sy.square(a))<l&&(l=i,c=1),{location:c,distance:l}}function My(t,e,i,n){var o,s,r=[],a=[],l=[],c=[];switch(function(t,e){var i,n,o=0;i=n=hu(t[0].y);for(var s=1;s<=e;s++)(i=hu(t[s].y))!=n&&o++,n=i;return o}(t,e)){case 0:return 0;case 1:if(n>=Cy)return i[0]=(t[0].x+t[e].x)/2,1;if(function(t,e){var i,n,o,s,r,a,l,c,h,d,u,p,f,m,g;r=t[0].y-t[e].y,a=t[e].x-t[0].x,l=t[0].x*t[e].y-t[e].x*t[0].y,m=g=0;for(var v=1;v<e;v++){var y=r*t[v].x+a*t[v].y+l;y>m?m=y:y<g&&(g=y)}return u=r,p=a,f=l-m,i=((h=1)*f-p*(d=0))*(1/((c=0)*p-u*h)),u=r,p=a,f=l-g,n=(h*f-p*d)*(1/(c*p-u*h)),o=Math.min(i,n),s=Math.max(i,n),s-o<Ey?1:0}(t,e))return i[0]=function(t,e){var i=1,n=0,o=t[e].x-t[0].x,s=t[e].y-t[0].y,r=t[0].x-0,a=t[0].y-0,l=1/(o*n-s*i)*(o*a-s*r);return 0+i*l}(t,e),1}Ty(t,e,.5,r,a),o=My(r,e,l,n+1),s=My(a,e,c,n+1);for(var h=0;h<o;h++)i[h]=l[h];for(var d=0;d<s;d++)i[d+o]=c[d];return o+s}function Ty(t,e,i,n,o){for(var s=[[]],r=0;r<=e;r++)s[0][r]=t[r];for(var a=1;a<=e;a++)for(var l=0;l<=e-a;l++)s[a]||(s[a]=[]),s[a][l]||(s[a][l]={}),s[a][l].x=(1-i)*s[a-1][l].x+i*s[a-1][l+1].x,s[a][l].y=(1-i)*s[a-1][l].y+i*s[a-1][l+1].y;if(null!=n)for(var c=0;c<=e;c++)n[c]=s[c][0];if(null!=o)for(var h=0;h<=e;h++)o[h]=s[e-h][h];return s[e][0]}function Py(t,e){var i={x:0,y:0};if(0===t)return e[0];var n=e.length-1;if(1===t)return e[n];var o=e,s=1-t;if(0===n)return e[0];if(1===n)return{x:s*o[0].x+t*o[1].x,y:s*o[0].y+t*o[1].y};if(4>n){var r,a,l,c=s*s,h=t*t,d=0;return 2===n?(o=[o[0],o[1],o[2],i],r=c,a=s*t*2,l=h):3===n&&(r=c*s,a=c*t*3,l=s*h*3,d=t*h),{x:r*o[0].x+a*o[1].x+l*o[2].x+d*o[3].x,y:r*o[0].y+a*o[1].y+l*o[2].y+d*o[3].y}}return i}function Oy(t){var e=0;if(!$y(t))for(var i=function(t,e){var i=[];t--;for(var n=0;n<=t;n++)i.push(Py(n/t,e));return i}(16,t),n=0;n<15;n++){e+=Ly(i[n],i[n+1])}return e}var Dy=new Map;function Iy(t,e){for(var i=function(t){var e=Dy.get(t);if(!e){var i=function(t){return function(e){return t}},n=function(t){return function(e){for(var i=1,n=0;n<t.length;n++)i*=t[n](e);return i}};(e=[]).push((function(e){return Math.pow(e,t)}));for(var o=1;o<t;o++){for(var s=[i(t)],r=0;r<t-o;r++)s.push((function(t){return t}));for(var a=0;a<o;a++)s.push((function(t){return 1-t}));e.push(n(s))}e.push((function(e){return Math.pow(1-e,t)})),Dy.set(t,e)}return e}(t.length-1),n=0,o=0,s=0;s<t.length;s++)n+=t[s].x*i[s](e),o+=t[s].y*i[s](e);return{x:n,y:o}}function Ly(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function $y(t){return t[0].x===t[1].x&&t[0].y===t[1].y}function zy(t,e,i){if($y(t))return{point:t[0],location:e};for(var n=Iy(t,e),o=0,s=e,r=i>0?1:-1,a=null;o<Math.abs(i);)o+=Ly(a=Iy(t,s+=.005*r),n),n=a;return{point:a,location:s}}function Ry(t,e,i,n,o){var s=n-e,r=t-i,a=t*(e-n)+e*(i-t),l=function(t){return[Ny(t,"x"),Ny(t,"y")]}(o),c=[s*l[0][0]+r*l[1][0],s*l[0][1]+r*l[1][1],s*l[0][2]+r*l[1][2],s*l[0][3]+r*l[1][3]+a],h=By.apply(null,c),d=[];if(null!=h)for(var u=0;u<3;u++){var p=h[u],f=Math.pow(p,2),m=Math.pow(p,3),g={x:l[0][0]*m+l[0][1]*f+l[0][2]*p+l[0][3],y:l[1][0]*m+l[1][1]*f+l[1][2]*p+l[1][3]},v=void 0;v=i-t!=0?(g[0]-t)/(i-t):(g[1]-e)/(n-e),p>=0&&p<=1&&v>=0&&v<=1&&d.push(g)}return d}function Ny(t,e){return[-t[0][e]+3*t[1][e]+-3*t[2][e]+t[3][e],3*t[0][e]-6*t[1][e]+3*t[2][e],-3*t[0][e]+3*t[1][e],t[0][e]]}function By(t,e,i,n){var o,s,r=e/t,a=i/t,l=n/t,c=(3*a-Math.pow(r,2))/9,h=(9*r*a-27*l-2*Math.pow(r,3))/54,d=Math.pow(c,3)+Math.pow(h,2),u=[0,0,0];if(d>=0)o=hu(h+Math.sqrt(d))*Math.pow(Math.abs(h+Math.sqrt(d)),1/3),s=hu(h-Math.sqrt(d))*Math.pow(Math.abs(h-Math.sqrt(d)),1/3),u[0]=-r/3+(o+s),u[1]=-r/3-(o+s)/2,u[2]=-r/3-(o+s)/2,0!==Math.abs(Math.sqrt(3)*(o-s)/2)&&(u[1]=-1,u[2]=-1);else{var p=Math.acos(h/Math.sqrt(-Math.pow(c,3)));u[0]=2*Math.sqrt(-c)*Math.cos(p/3)-r/3,u[1]=2*Math.sqrt(-c)*Math.cos((p+2*Math.PI)/3)-r/3,u[2]=2*Math.sqrt(-c)*Math.cos((p+4*Math.PI)/3)-r/3}for(var f=0;f<3;f++)(u[f]<0||u[f]>1)&&(u[f]=-1);return u}var jy=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),Cd(Td(n=e.call(this,t)),"curve",void 0),Cd(Td(n),"cp1x",void 0),Cd(Td(n),"cp1y",void 0),Cd(Td(n),"cp2x",void 0),Cd(Td(n),"cp2y",void 0),Cd(Td(n),"length",0),Cd(Td(n),"type",i.segmentType),n.cp1x=t.cp1x,n.cp1y=t.cp1y,n.cp2x=t.cp2x,n.cp2y=t.cp2y,n.x1=t.x1,n.x2=t.x2,n.y1=t.y1,n.y2=t.y2,n.curve=[{x:n.x1,y:n.y1},{x:n.cp1x,y:n.cp1y},{x:n.cp2x,y:n.cp2y},{x:n.x2,y:n.y2}],n.extents={xmin:Math.min(n.x1,n.x2,n.cp1x,n.cp2x),ymin:Math.min(n.y1,n.y2,n.cp1y,n.cp2y),xmax:Math.max(n.x1,n.x2,n.cp1x,n.cp2x),ymax:Math.max(n.y1,n.y2,n.cp1y,n.cp2y)},n}return Sd(i,[{key:"getPath",value:function(t){return(t?"M "+this.x2+" "+this.y2+" ":"")+"C "+this.cp2x+" "+this.cp2y+" "+this.cp1x+" "+this.cp1y+" "+this.x1+" "+this.y1}},{key:"pointOnPath",value:function(t,e){return t=i._translateLocation(this.curve,t,e),Iy(this.curve,t)}},{key:"gradientAtPoint",value:function(t,e){return t=i._translateLocation(this.curve,t,e),function(t,e){var i=Iy(t,e),n=Iy(t.slice(0,t.length-1),e),o=n.y-i.y,s=n.x-i.x;return 0===o?1/0:Math.atan(o/s)}(this.curve,t)}},{key:"pointAlongPathFrom",value:function(t,e,n){return t=i._translateLocation(this.curve,t,n),function(t,e,i){return zy(t,e,i).point}(this.curve,t,e)}},{key:"getLength",value:function(){return null!=this.length&&0!==this.length||(this.length=Oy(this.curve)),this.length}},{key:"findClosestPointOnPath",value:function(t,e){var i,n,o,s=(i={x:t,y:e},n=this.curve,o=Ay(i,n),{point:Ty(n,n.length-1,o.location,null,null),location:o.location});return{d:Math.sqrt(Math.pow(s.point.x-t,2)+Math.pow(s.point.y-e,2)),x:s.point.x,y:s.point.y,l:1-s.location,s:this,x1:null,y1:null,x2:null,y2:null}}},{key:"lineIntersection",value:function(t,e,i,n){return Ry(t,e,i,n,this.curve)}}],[{key:"_translateLocation",value:function(t,e,i){return i&&(e=function(t,e,i){return zy(t,e,i).location}(t,e>0?0:1,e)),e}}]),i}(Ef);Cd(jy,"segmentType","Bezier");var Fy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"majorAnchor",void 0),Cd(Td(o),"minorAnchor",void 0),n=n||{},o.majorAnchor=n.curviness||150,o.minorAnchor=10,o}return Sd(i,[{key:"getCurviness",value:function(){return this.majorAnchor}},{key:"_findControlPoint",value:function(t,e,i,n,o){var s={x:0,y:0};return n[0]!==o[0]||n[1]===o[1]?(0===o[0]?s.x=i.curX<e.curX?t.x+this.minorAnchor:t.x-this.minorAnchor:s.x=t.x+this.majorAnchor*o[0],0===o[1]?s.y=i.curY<e.curY?t.y+this.minorAnchor:t.y-this.minorAnchor:s.y=t.y+this.majorAnchor*n[1]):(0===n[0]?s.x=e.curX<i.curX?t.x+this.minorAnchor:t.x-this.minorAnchor:s.x=t.x-this.majorAnchor*n[0],0===n[1]?s.y=e.curY<i.curY?t.y+this.minorAnchor:t.y-this.minorAnchor:s.y=t.y+this.majorAnchor*o[1]),s}},{key:"_computeBezier",value:function(t,e,i,n,o,s){var r,a,l=i.curX<n.curX?o:0,c=i.curY<n.curY?s:0,h=i.curX<n.curX?0:o,d=i.curY<n.curY?0:s;!0!==this.edited?(r=this._findControlPoint({x:l,y:c},i,n,t.so,t.to),a=this._findControlPoint({x:h,y:d},n,i,t.to,t.so)):(r=this.geometry.controlPoints[0],a=this.geometry.controlPoints[1]),this.geometry={controlPoints:[r,a],source:e.sourcePos,target:e.targetPos},this._addSegment(jy,{x1:l,y1:c,x2:h,y2:d,cp1x:r.x,cp1y:r.y,cp2x:a.x,cp2y:a.y})}}]),i}(ky);Cd(Fy,"type","Bezier");var qy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"_controlPoint",void 0),o.curviness=n.curviness||10,o.margin=n.margin||5,o.proximityLimit=n.proximityLimit||80,o.clockwise=n.orientation&&"clockwise"===n.orientation,o}return Sd(i,[{key:"_computeBezier",value:function(t,e,i,n,o,s){var r,a,l,c,h,d,u,p,f=i.curX<n.curX?0:o,m=i.curY<n.curY?0:s,g=i.curX<n.curX?o:0,v=i.curY<n.curY?s:0;if(0===i.x&&(f-=this.margin),1===i.x&&(f+=this.margin),0===i.y&&(m-=this.margin),1===i.y&&(m+=this.margin),0===n.x&&(g-=this.margin),1===n.x&&(g+=this.margin),0===n.y&&(v-=this.margin),1===n.y&&(v+=this.margin),!0!==this.edited){var y=(f+g)/2,b=(m+v)/2,x=(a=m,c=v,(r=f)<=(l=g)&&c<=a?1:r<=l&&a<=c?2:l<=r&&c>=a?3:4),_=Math.sqrt(Math.pow(g-f,2)+Math.pow(v-m,2));this._controlPoint=function(t,e,i,n,o,s,r,a,l){return a<=l?{x:t,y:e}:1===i?n.curY<=0&&o.curY>=1?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX>=1&&o.curX<=0?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+-1*s,y:e+-1*r}:2===i?n.curY>=1&&o.curY<=0?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX>=1&&o.curX<=0?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+s,y:e+-1*r}:3===i?n.curY>=1&&o.curY<=0?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX<=0&&o.curX>=1?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+-1*s,y:e+-1*r}:4===i?n.curY<=0&&o.curY>=1?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX<=0&&o.curX>=1?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+s,y:e+-1*r}:void 0}(y,b,x,e.sourcePos,e.targetPos,this.curviness,this.curviness,_,this.proximityLimit)}else this._controlPoint=this.geometry.controlPoints[0];h=this._controlPoint.x,d=this._controlPoint.x,u=this._controlPoint.y,p=this._controlPoint.y,this.geometry={controlPoints:[this._controlPoint,this._controlPoint],source:e.sourcePos,target:e.targetPos},this._addSegment(jy,{x1:g,y1:v,x2:f,y2:m,cp1x:h,cp1y:u,cp2x:d,cp2y:p})}}]),i}(ky);function Vy(t){return t<0?-1:0===t?0:1}function Hy(t){return[Vy(t[2]-t[0]),Vy(t[3]-t[1])]}function Uy(t){return Math.sqrt(Math.pow(t[0]-t[2],2)+Math.pow(t[1]-t[3],2))}function Wy(t){var e=[];return e.push.apply(e,t),e}Cd(qy,"type","StateMachine"),Uv(Fy.type,Fy),Uv(qy.type,qy);var Gy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"internalSegments",[]),Cd(Td(o),"midpoint",void 0),Cd(Td(o),"alwaysRespectStubs",void 0),Cd(Td(o),"cornerRadius",void 0),Cd(Td(o),"lastx",void 0),Cd(Td(o),"lasty",void 0),Cd(Td(o),"lastOrientation",void 0),Cd(Td(o),"loopbackRadius",void 0),Cd(Td(o),"isLoopbackCurrently",void 0),o.midpoint=null==n.midpoint||isNaN(n.midpoint)?.5:n.midpoint,o.cornerRadius=null!=n.cornerRadius?n.cornerRadius:0,o.alwaysRespectStubs=!0===n.alwaysRespectStubs,o.lastx=null,o.lasty=null,o.lastOrientation=null,o.loopbackRadius=n.loopbackRadius||25,o.isLoopbackCurrently=!1,o}return Sd(i,[{key:"getDefaultStubs",value:function(){return[30,30]}},{key:"addASegment",value:function(t,e,i){if(this.lastx!==t||this.lasty!==e){var n=null==this.lastx?i.sx:this.lastx,o=null==this.lasty?i.sy:this.lasty,s=n===t?"v":"h";this.lastx=t,this.lasty=e,this.internalSegments.push([n,o,t,e,s])}}},{key:"writeSegments",value:function(t){for(var e,i,n,o=null,s=0;s<this.internalSegments.length-1;s++){if(o=o||Wy(this.internalSegments[s]),e=Wy(this.internalSegments[s+1]),i=Hy(o),n=Hy(e),this.cornerRadius>0&&o[4]!==e[4]){var r=Math.min(Uy(o),Uy(e)),a=Math.min(this.cornerRadius,r/2);o[2]-=i[0]*a,o[3]-=i[1]*a,e[0]+=n[0]*a,e[1]+=n[1]*a;var l=i[1]===n[0]&&1===n[0]||i[1]===n[0]&&0===n[0]&&i[0]!==n[1]||i[1]===n[0]&&-1===n[0],c=(e[1]>o[3]?1:-1)===(e[0]>o[2]?1:-1),h=c&&l||!c&&!l?e[0]:o[2],d=c&&l||!c&&!l?o[3]:e[1];this._addSegment(Wv,{x1:o[0],y1:o[1],x2:o[2],y2:o[3]}),this._addSegment(wy,{r:a,x1:o[2],y1:o[3],x2:e[0],y2:e[1],cx:h,cy:d,ac:l})}else this._addSegment(Wv,{x1:o[0],y1:o[1],x2:o[2],y2:o[3]});o=e}null!=e&&this._addSegment(Wv,{x1:e[0],y1:e[1],x2:e[2],y2:e[3]})}},{key:"_compute",value:function(t,e){var i=this;this.internalSegments.length=0,this.lastx=null,this.lasty=null,this.lastOrientation=null;var n=function(e){return[t.startStubX,t.startStubY,t.endStubX,t.endStubY]},o={perpendicular:n,orthogonal:n,opposite:function(e){var n=t,o="x"===e?0:1,s={x:function(){return 1===n.so[o]&&(n.startStubX>n.endStubX&&n.tx>n.startStubX||n.sx>n.endStubX&&n.tx>n.sx)||-1===n.so[o]&&(n.startStubX<n.endStubX&&n.tx<n.startStubX||n.sx<n.endStubX&&n.tx<n.sx)},y:function(){return 1===n.so[o]&&(n.startStubY>n.endStubY&&n.ty>n.startStubY||n.sy>n.endStubY&&n.ty>n.sy)||-1===n.so[o]&&(n.startStubY<n.endStubY&&n.ty<n.startStubY||n.sy<n.endStubY&&n.ty<n.sy)}};return!i.alwaysRespectStubs&&s[e]()?{x:[(t.sx+t.tx)/2,t.startStubY,(t.sx+t.tx)/2,t.endStubY],y:[t.startStubX,(t.sy+t.ty)/2,t.endStubX,(t.sy+t.ty)/2]}[e]:[t.startStubX,t.startStubY,t.endStubX,t.endStubY]}},s=o[t.anchorOrientation](t.sourceAxis),r="x"===t.sourceAxis?0:1,a="x"===t.sourceAxis?1:0,l=s[r],c=s[a],h=s[r+2],d=s[a+2];this.addASegment(s[0],s[1],t);var u=t.startStubX+(t.endStubX-t.startStubX)*this.midpoint,p=t.startStubY+(t.endStubY-t.startStubY)*this.midpoint,f={x:[0,1],y:[1,0]},m={perpendicular:function(e,i,n,o,s){var r=t,a={x:[[r.startStubX,r.endStubX],null,[r.endStubX,r.startStubX]],y:[[r.startStubY,r.endStubY],null,[r.endStubY,r.startStubY]]},l={x:[[u,r.startStubY],[u,r.endStubY]],y:[[r.startStubX,p],[r.endStubX,p]]},c={x:[[r.endStubX,r.startStubY]],y:[[r.startStubX,r.endStubY]]},h={x:[[r.startStubX,r.endStubY],[r.endStubX,r.endStubY]],y:[[r.endStubX,r.startStubY],[r.endStubX,r.endStubY]]},d={x:[[r.startStubX,p],[r.endStubX,p],[r.endStubX,r.endStubY]],y:[[u,r.startStubY],[u,r.endStubY],[r.endStubX,r.endStubY]]},m={x:[r.startStubY,r.endStubY],y:[r.startStubX,r.endStubX]},g=f[e][0],v=f[e][1],y=r.so[g]+1,b=r.to[v]+1,x=-1===r.to[v]&&m[e][1]<m[e][0]||1===r.to[v]&&m[e][1]>m[e][0],_=a[e][y][0],w=a[e][y][1],k={x:[[[1,2,3,4],null,[2,1,4,3]],null,[[4,3,2,1],null,[3,4,1,2]]],y:[[[3,2,1,4],null,[2,3,4,1]],null,[[4,1,2,3],null,[1,4,3,2]]]}[e][y][b];return r.segment===k[3]||r.segment===k[2]&&x?l[e]:r.segment===k[2]&&w<_?c[e]:r.segment===k[2]&&w>=_||r.segment===k[1]&&!x?d[e]:r.segment===k[0]||r.segment===k[1]&&x?h[e]:void 0},orthogonal:function(e,i,n,o,s){var r=t,a={x:-1===r.so[0]?Math.min(i,o):Math.max(i,o),y:-1===r.so[1]?Math.min(i,o):Math.max(i,o)}[e];return{x:[[a,n],[a,s],[o,s]],y:[[n,a],[s,a],[s,o]]}[e]},opposite:function(n,o,s,a,l){var c=t,h={x:"y",y:"x"}[n],d={x:"h",y:"w"}[n],f=c["is"+n.toUpperCase()+"GreaterThanStubTimes2"];if(e.sourceEndpoint.elementId===e.targetEndpoint.elementId){var m=s+(1-e.sourceEndpoint._anchor.computedPosition[h])*e.sourceInfo[d]+i.maxStub;return{x:[[o,m],[a,m]],y:[[m,o],[m,a]]}[n]}return!f||1===c.so[r]&&o>a||-1===c.so[r]&&o<a?{x:[[o,p],[a,p]],y:[[u,o],[u,a]]}[n]:1===c.so[r]&&o<a||-1===c.so[r]&&o>a?{x:[[u,c.sy],[u,c.ty]],y:[[c.sx,p],[c.tx,p]]}[n]:void 0}},g=m[t.anchorOrientation](t.sourceAxis,l,c,h,d);if(g)for(var v=0;v<g.length;v++)this.addASegment(g[v][0],g[v][1],t);this.addASegment(s[2],s[3],t),this.addASegment(t.tx,t.ty,t),this.writeSegments(t)}},{key:"transformGeometry",value:function(t,e,i){return t}}]),i}(cv);function Zy(){var t=Math.floor(2e3*Math.random()),e=Math.floor(2e3*Math.random());return{clientX:t,clientY:e,screenX:t,screenY:e,pageX:t,pageY:e}}Cd(Gy,"type","Flowchart"),Uv(Gy.type,Gy),Ym.registerHandler(xv),Ym.registerHandler(hy),Ym.registerHandler(py),Uv(Gv.type,Gv);for(var Yy={clientX:5e4,clientY:5e4,screenX:5e4,screenY:5e4,pageX:5e4,pageY:5e4},Xy=0;Xy<256;Xy++)Xy.toString(16);!function(){function t(e,i,n){wd(this,t),this._jsPlumb=e,this.ok=i,this.equal=n,Cd(this,"_divs",[]),Cd(this,"mottle",void 0),this.mottle=new em}Sd(t,[{key:"_t",value:function(t,e,i,n){this.mottle.trigger(t,e,{pageX:i,pageY:n,screenX:i,screenY:n,clientX:i,clientY:n})}},{key:"addDiv",value:function(t,e,i,n,o,s,r){var a=document.createElement("div");return a.style.position="absolute",a.innerHTML=t,e?e.appendChild(a):this._jsPlumb.getContainer().appendChild(a),a.setAttribute("id",t),a.style.left=(null!=n?n:Math.floor(1e3*Math.random()))+"px",a.style.top=(null!=o?o:Math.floor(1e3*Math.random()))+"px",i&&(a.className=i),s&&(a.style.width=s+"px"),r&&(a.style.height=r+"px"),this._divs.push(t),a}},{key:"addDivs",value:function(t,e){for(var i=0;i<t.length;i++)this.addDiv(t[i],e)}},{key:"assertEndpointCount",value:function(t,e){var i=this._jsPlumb.getEndpoints(t),n=i?i.length:0;this.equal(n,e,t.getAttribute("data-jtk-managed")+" has "+e+(e>1||0==e?" endpoints":" endpoint"))}},{key:"_assertManagedEndpointCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.endpoints.length,e,i+" has "+e+" endpoints in managed record")}},{key:"_assertManagedConnectionCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.connections.length,e,i+" has "+e+" connections in managed record")}},{key:"_registerDiv",value:function(t){this._divs.push(t)}},{key:"makeDragStartEvt",value:function(t){var e=this.makeEvent(t),i=this._jsPlumb.getContainer();return e.clientX+=i.offsetLeft,e.screenX+=i.offsetLeft,e.pageX+=i.offsetLeft,e.clientY+=i.offsetTop,e.screenY+=i.offsetTop,e.pageY+=i.offsetTop,e}},{key:"getAttribute",value:function(t,e){return t.getAttribute(e)}},{key:"dragNodeBy",value:function(t,e,i,n){(n=n||{}).before&&n.before();var o=this.makeEvent(t);this._jsPlumb.trigger(t,zp,o),n.beforeMouseMove&&n.beforeMouseMove(),this._t(document,Bp,o.pageX+e,o.pageY+i),n.beforeMouseUp&&n.beforeMouseUp(),this.mottle.trigger(document,jp,null),n.after&&n.after()}},{key:"dragNodeTo",value:function(t,e,i,n){n=n||{};var o=this._jsPlumb.viewport.getPosition(this._jsPlumb.getId(t));n.before&&n.before();var s=this.makeEvent(t);this._jsPlumb.trigger(t,zp,s);var r=this._jsPlumb.getContainer().getBoundingClientRect();n.beforeMouseMove&&n.beforeMouseMove(),this._t(document,Bp,r.x+e+o.w/2,r.y+i+o.h/2),n.beforeMouseUp&&n.beforeMouseUp(),this.mottle.trigger(document,jp,null),n.after&&n.after()}},{key:"dragToGroup",value:function(t,e,i){var n=this._jsPlumb.getGroup(e),o=this._jsPlumb.viewport.getPosition(n.elId),s=o.x+o.w/2,r=o.y+o.h/2;this.dragNodeTo(t,s,r,i)}},{key:"aSyncDragNodeBy",value:function(t,e,i,n){var o=this;(n=n||{}).before&&n.before();var s=this.makeEvent(t);this._jsPlumb.trigger(t,zp,s),n.beforeMouseMove&&n.beforeMouseMove(),setTimeout((function(){o._t(document,Bp,s.pageX+e,s.pageY+i),n.beforeMouseUp&&n.beforeMouseUp(),setTimeout((function(){o.mottle.trigger(document,jp,null),n.after&&n.after()}),45)}),45)}},{key:"dragANodeAround",value:function(t,e,i){this._jsPlumb.trigger(t,zp,this.makeEvent(t));for(var n=50*Math.random(),o=0;o<n;o++){var s=Zy();t.style.left=s.screenX+"px",t.style.top=s.screenY+"px",this._jsPlumb.trigger(document,Bp,s)}e&&this.ok(e(),i||"while dragging assert"),this._jsPlumb.trigger(document,jp,Yy)}},{key:"dragConnection",value:function(t,e,i,n){var o=this.getCanvas(t),s=this.getCanvas(e),r=this.makeEvent(o),a=this.makeEvent(s);n=n||{};var l=this._jsPlumb.select().length;return this._jsPlumb.trigger(o,zp,r),n.beforeMouseMove&&n.beforeMouseMove(),this._jsPlumb.trigger(i?s:document,Bp,a),n.beforeMouseUp&&n.beforeMouseUp(),this._jsPlumb.trigger(i?s:document,jp,a),this._jsPlumb.select().get(l)}},{key:"aSyncDragConnection",value:function(t,e,i){var n=this;i=i||{};var o=this.getCanvas(t),s=this.getCanvas(e),r=this.makeEvent(o),a=this.makeEvent(s),l=this._jsPlumb.select().length;this._jsPlumb.trigger(o,zp,r),setTimeout((function(){i.beforeMouseMove&&i.beforeMouseMove(),n._jsPlumb.trigger(document,Bp,a),setTimeout((function(){i.beforeMouseUp&&i.beforeMouseUp(),n._jsPlumb.trigger(s,jp,a),i.after&&i.after(n._jsPlumb.select().get(l))}),5)}),5)}},{key:"dragAndAbortConnection",value:function(t){var e=this.getCanvas(t),i=this.makeEvent(e);this._jsPlumb.trigger(e,zp,i),this._jsPlumb.trigger(document,Bp,Yy),this._jsPlumb.trigger(document,jp,Yy)}},{key:"detachConnection",value:function(t,e){e=e||{};var i=this.getEndpointCanvas(t),n=this.makeEvent(i);e.before&&e.before(),this._jsPlumb.trigger(i,zp,n),e.beforeMouseMove&&e.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,Yy),e.beforeMouseUp&&e.beforeMouseUp(),this._jsPlumb.trigger(document,jp,Yy),e.after&&e.after()}},{key:"detachAndReattachConnection",value:function(t,e){e=e||{};var i=this.getEndpointCanvas(t),n=this.makeEvent(i);e.before&&e.before(),this._jsPlumb.trigger(i,zp,n),e.beforeMouseMove&&e.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,Yy),this._jsPlumb.trigger(document,Bp,n),e.beforeMouseUp&&e.beforeMouseUp(),this._jsPlumb.trigger(document,jp,n),e.after&&e.after()}},{key:"detachConnectionByTarget",value:function(t,e){this.detachConnection(t.endpoints[1],e)}},{key:"relocateTarget",value:function(t,e,i){this.relocate(t,1,e,i)}},{key:"relocate",value:function(t,e,i,n){n=n||{},i=this.getCanvas(i);var o=this.getEndpointCanvas(t.endpoints[e]),s=this.makeEvent(o),r=this.makeEvent(i);n.before&&n.before(),this._jsPlumb.trigger(o,zp,s),n.beforeMouseMove&&n.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,r),n.beforeMouseUp&&n.beforeMouseUp(),this._jsPlumb.trigger(i,jp,r),n.after&&n.after()}},{key:"relocateSource",value:function(t,e,i){this.relocate(t,0,e,i)}},{key:"makeEvent",value:function(t){var e=t.getBoundingClientRect(),i=e.x+e.width/2,n=e.y+e.height/2;return{clientX:i,clientY:n,screenX:i,screenY:n,pageX:i,pageY:n}}},{key:"getCanvas",value:function(t){return t.endpoint?this.getEndpointCanvas(t):t}},{key:"getEndpointCanvas",value:function(t){return t.endpoint.canvas}},{key:"getConnectionCanvas",value:function(t){return t.connector.canvas}},{key:"getEndpointCanvasPosition",value:function(t){var e=this.getEndpointCanvas(t);return{x:parseInt(e.style.left,10),y:parseInt(e.style.top,10),w:e.getAttribute("width"),h:e.getAttribute("height")}}},{key:"within",value:function(t,e,i){this.ok(Math.abs(t-e)<1e-11,i+"[expected: "+e+" got "+t+"] [diff:"+Math.abs(t-e)+"]")}},{key:"assertManagedEndpointCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.endpoints.length,e,i+" has "+e+" endpoints in managed record")}},{key:"assertManagedConnectionCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.connections.length,e,i+" has "+e+" connections in managed record")}},{key:"fireEventOnEndpoint",value:function(t){for(var e=this.getEndpointCanvas(t),i=0;i<(arguments.length<=1?0:arguments.length-1);i++)this._jsPlumb.trigger(e,i+1<1||arguments.length<=i+1?void 0:arguments[i+1])}},{key:"fireEventOnElement",value:function(t){for(var e=0;e<(arguments.length<=1?0:arguments.length-1);e++)this._jsPlumb.trigger(t,e+1<1||arguments.length<=e+1?void 0:arguments[e+1])}},{key:"fireEventOnConnection",value:function(t){for(var e=this.getConnectionCanvas(t),i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];this.fireEventOnElement.apply(this,[e].concat(n))}},{key:"clickOnConnection",value:function(t){this.fireEventOnConnection(t,Dp)}},{key:"dblClickOnConnection",value:function(t){this.fireEventOnConnection(t,Lp)}},{key:"tapOnConnection",value:function(t){this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp)}},{key:"dblTapOnConnection",value:function(t){this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp),this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp)}},{key:"clickOnElement",value:function(t,e){this._jsPlumb.trigger(t,Dp,null,null,null==e?1:e)}},{key:"dblClickOnElement",value:function(t){this._jsPlumb.trigger(t,Lp)}},{key:"tapOnElement",value:function(t){this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp)}},{key:"dblTapOnElement",value:function(t){this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp),this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp)}},{key:"getOverlayCanvas",value:function(t){return t.canvas||t.path}},{key:"fireEventOnOverlay",value:function(t,e,i){var n=t.getOverlay(e),o=this.getOverlayCanvas(n);this._jsPlumb.trigger(o,i)}},{key:"clickOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,Dp)}},{key:"dblClickOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,Lp)}},{key:"tapOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp)}},{key:"dblTapOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp),this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp)}},{key:"cleanup",value:function(){var t=this._jsPlumb.getContainer();for(var e in this._jsPlumb.destroy(),this._divs){var i=document.getElementById(this._divs[e]);i&&i.parentNode.removeChild(i)}this._divs.length=0;var n=this._jsPlumb.select().length,o=this._jsPlumb.selectEndpoints().length,s=t.querySelectorAll(".jtk-endpoint").length,r=t.querySelectorAll(".jtk-connector").length;for(var a in t.__ta)for(var l in t.__ta[a])throw"Container event bindings not empty for key "+a;if(n>0)throw"there are connections in the data model!";if(o>0)throw"there are endpoints in the data model!";if(s>0)throw"there are "+s+" endpoints left in the dom!";if(r>0)throw"there are "+r+" connections left in the dom!"}},{key:"makeContent",value:function(t){var e=document.createElement("div");return e.innerHTML=t,e.firstChild}},{key:"length",value:function(t){var e=0;for(var i in t)t.hasOwnProperty(i)&&e++;return e}},{key:"head",value:function(t){for(var e in t)return t[e]}},{key:"uuid",value:function(){return su()}}])}();var Ky=0;function Qy(t){return new ly(function(){var t=Ky+1;return Ky++,t}(),t)}const Jy={endpoint:{type:bv.type,options:{radius:6,connectedClass:"plumb-connected",cssClass:"plumb-source",hoverClass:"plumb-source-hover"}},anchors:["Bottom","Continuous"],maxConnections:1,dragAllowedWhenFull:!1,deleteEndpointsOnEmpty:!0,isSource:!0},tb={endpoint:{type:cy.type,options:{width:23,height:23,cssClass:"plumb-target",hoverClass:"plumb-target-hover"}},anchor:{type:"Continuous",options:{faces:["top","left","right"],cssClass:"continuos plumb-target-anchor"}},dragAllowedWhenFull:!1,deleteEndpointsOnEmpty:!0,isTarget:!0};class eb{constructor(t){this.jsPlumb=null,this.pendingConnections=[],this.connectionWait=null,function(t){!function e(){/complete|loaded|interactive/.test(document.readyState)&&void 0!==document.body&&null!=document.body?t():setTimeout(e,9)}()}((()=>{this.jsPlumb=Qy({container:t})}))}makeTarget(t){const e=document.getElementById(t);this.jsPlumb.addEndpoint(e,tb)}makeSource(t){const e=document.getElementById(t);this.jsPlumb.addEndpoint(e,Jy)}processPendingConnections(){this.connectionWait&&(clearTimeout(this.connectionWait),this.connectionWait=null),this.connectionWait=setTimeout((()=>{this.jsPlumb.batch((()=>{this.pendingConnections.forEach((t=>{const{fromId:e,toId:i}=t,n=document.getElementById(e),o=document.getElementById(i),s=this.jsPlumb.addEndpoint(n,{...Jy,endpoint:{...Jy.endpoint,options:{...Jy.endpoint.options,cssClass:"plumb-source connected"}}}),r=this.jsPlumb.addEndpoint(o,tb);this.jsPlumb.connect({source:s,target:r,connector:{type:Gy.type,options:{stub:12,midpoint:.75,alwaysRespectStubs:!1,gap:[0,5],cornerRadius:3,cssClass:"plumb-connector"}},overlays:[{type:"PlainArrow",options:{width:13,length:13,location:.999,cssClass:"plumb-arrow"}}]})})),this.pendingConnections=[]}))}),50)}connectIds(t,e){this.pendingConnections.push({fromId:t,toId:e}),this.processPendingConnections()}}const ib="#3498db",nb="#01c1af",ob="#8e5ea7",sb="#e68628",rb="#aaaaaa",ab="#666666",lb={add_input_labels:{name:"Add Labels",color:nb},add_contact_urn:{name:"Add Contact URN",color:nb},set_contact_field:{name:"Update Contact Field",color:nb},set_contact_channel:{name:"Update Contact Channel",color:nb},set_contact_language:{name:"Update Contact Language",color:nb},send_broadcast:{name:"Send Broadcast",color:ob},set_run_result:{name:"Save Flow Result",color:"#1a777c",render:(t,e)=>U`<div>Save ${e.value} as <b>${e.name}</b></div>`},send_msg:{name:"Send Message",color:ib,render:(t,e)=>{const i=e.text.replace(/\n/g,"<br>");return U`
8055
+ </div>`}}function _d(t){return _d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_d(t)}function wd(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function kd(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function Sd(t,e,i){return e&&kd(t.prototype,e),i&&kd(t,i),t}function Cd(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function Ed(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&Md(t,e)}function Ad(t){return Ad=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},Ad(t)}function Md(t,e){return Md=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},Md(t,e)}function Td(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Pd(t){var e=function(){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(t){return!1}}();return function(){var i,n=Ad(t);if(e){var o=Ad(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return function(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?Td(t):e}(this,i)}}function Od(t,e,i){return Od="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,i){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=Ad(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(i):o.value}},Od(t,e,i||t)}function Dd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==i)return;var n,o,s=[],r=!0,a=!1;try{for(i=i.call(t);!(r=(n=i.next()).done)&&(s.push(n.value),!e||s.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==i.return||i.return()}finally{if(a)throw o}}return s}(t,e)||Ld(t,e)||function(){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 Id(t){return function(t){if(Array.isArray(t))return $d(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Ld(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ld(t,e){if(t){if("string"==typeof t)return $d(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?$d(t,e):void 0}}function $d(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function zd(t,e,i){return"*"===t||(t.length>0?-1!==t.indexOf(e):!i)}function Rd(t,e,i){var n,o=t=t||{},s=e=e||{};for(n in s)o[n]=s[n];return t}function Nd(t){return"[object Number]"===Object.prototype.toString.call(t)}function Bd(t){return"string"==typeof t}function jd(t){return"boolean"==typeof t}function Fd(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function qd(t){return"[object Function]"===Object.prototype.toString.call(t)}function Vd(t){if(Bd(t))return""+t;if(jd(t))return!!t;if(function(t){return"[object Date]"===Object.prototype.toString.call(t)}(t))return new Date(t.getTime());if(qd(t))return t;if(Array.isArray(t)){for(var e=[],i=0;i<t.length;i++)e.push(Vd(t[i]));return e}if(Fd(t)){var n={};for(var o in t)n[o]=Vd(t[o]);return n}return t}function Hd(t,e,i,n){var o,s,r={},a={};for(i=i||[],n=n||[],s=0;s<i.length;s++)r[i[s]]=!0;for(s=0;s<n.length;s++)a[n[s]]=!0;var l=Vd(t);for(s in e)if(null==l[s]||a[s])l[s]=e[s];else if(r[s])(o=[]).push.apply(o,Array.isArray(l[s])?l[s]:[l[s]]),o.push(e[s]),l[s]=o;else if(Bd(e[s])||jd(e[s])||qd(e[s])||Nd(e[s]))l[s]=e[s];else if(Array.isArray(e[s]))o=[],Array.isArray(l[s])&&o.push.apply(o,l[s]),o.push.apply(o,e[s]),l[s]=o;else if(Fd(e[s]))for(var c in Fd(l[s])||(l[s]={}),e[s])l[s][c]=e[s][c];return l}function Ud(t,e,i){for(var n=0;n<i.length;n++){var o=i[n][0][i[n][1]].apply(i[n][0],i[n][2]);if(o===e)return o}return t}function Wd(t,e,i,n){return function t(o){if(null!=o){if(Bd(o))return function(t){var i=t.match(/(\${.*?})/g);if(null!=i)for(var n=0;n<i.length;n++){var o=e[i[n].substring(2,i[n].length-1)]||"";null!=o&&(t=t.replace(i[n],o))}if(null!=(i=t.match(/({{.*?}})/g)))for(var s=0;s<i.length;s++){var r=e[i[s].substring(2,i[s].length-2)]||"";null!=r&&(t=t.replace(i[s],r))}return t}(o);if(qd(o)&&!n&&0===(o.name||"").indexOf(i))return o(e);if(Array.isArray(o)){for(var s=[],r=0;r<o.length;r++)s.push(t(o[r]));return s}if(Fd(o)){var a={};for(var l in o)a[l]=t(o[l]);return a}return o}}(t)}function Gd(t,e){if(!t)return null;for(var i=0;i<t.length;i++)e(t[i])}function Zd(t,e){if(t)for(var i=0;i<t.length;i++)if(e(t[i]))return i;return-1}function Yd(t,e){var i=Zd(t,e);return-1===i?null:t[i]}function Xd(t,e){var i=null;return t.forEach((function(t){e(t)&&(i=t)})),i}function Kd(t,e){var i=Zd(t,e);return i>-1&&t.splice(i,1),-1!==i}function Qd(t){if(null!=Array.fromArray)return Array.from(t);var e=[];return Array.prototype.push.apply(e,t),e}function Jd(t,e){var i=t.indexOf(e);return i>-1&&t.splice(i,1),-1!==i}function tu(t,e,i,n){var o=t[e];return null==o&&(o=[],t[e]=o),o[n?"unshift":"push"](i),o}function eu(t,e,i){return-1===t.indexOf(e)&&(t.push(e),!0)}t([ue({type:String,attribute:!1})],xd.prototype,"endpoint",void 0),t([ue({type:Boolean})],xd.prototype,"pendingDrop",void 0),t([ue({type:String})],xd.prototype,"icon",void 0),t([ue({type:String})],xd.prototype,"accept",void 0),t([ue({type:Number})],xd.prototype,"max",void 0),t([ue({type:Array})],xd.prototype,"attachments",void 0),t([ue({type:Boolean,attribute:!1})],xd.prototype,"uploading",void 0);for(var iu,nu=[],ou=0;ou<256;ou++)nu[ou]=(ou<16?"0":"")+ou.toString(16);function su(){var t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,i=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return nu[255&t]+nu[t>>8&255]+nu[t>>16&255]+nu[t>>24&255]+"-"+nu[255&e]+nu[e>>8&255]+"-"+nu[e>>16&15|64]+nu[e>>24&255]+"-"+nu[63&i|128]+nu[i>>8&255]+"-"+nu[i>>16&255]+nu[i>>24&255]+nu[255&n]+nu[n>>8&255]+nu[n>>16&255]+nu[n>>24&255]}function ru(t,e,i){var n=t.x-e.x,o=t.y-e.y,s=Math.cos(i/360*Math.PI*2),r=Math.sin(i/360*Math.PI*2);return{x:n*s-o*r+e.x,y:o*s+n*r+e.y,cr:s,sr:r}}function au(t){if(null==t)return null;for(var e=t.replace(/^\s\s*/,""),i=/\s/,n=e.length;i.test(e.charAt(--n)););return e.slice(0,n+1)}function lu(t,e){for(var i=[],n=0;n<t.length;n++)i.push(e(t[n]));return i}function cu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];if("undefined"!=typeof console)try{var n=arguments[arguments.length-1];console.log(n)}catch(t){}}function hu(t){return t<0?-1:t>0?1:0}function du(t,e,i){return function(){var n=null;try{null!=e&&(n=e.apply(this,arguments))}catch(t){cu("jsPlumb function failed : "+t)}if(null!=t&&(null==i||n!==i))try{n=t.apply(this,arguments)}catch(t){cu("wrapped function failed : "+t)}return n}}function uu(t,e,i){return t.has(e)||t.set(e,i()),t.get(e)}function pu(t,e){for(var i=t.__proto__;null!=i;){if(i instanceof e)return!0;i=i.__proto__}return!1}function fu(t,e,i){for(var n=(i=i||t.parentNode).querySelectorAll(e),o=0;o<n.length;o++)if(n[o]===t)return!0;return!1}function mu(t,e){t.stopPropagation?t.stopPropagation():t.returnValue=!1,!e&&t.preventDefault&&t.preventDefault()}function gu(t,e,i,n){if(n&&fu(t,e,i))return t;for(t=t.parentNode;null!=t&&t!==i;){if(fu(t,e))return t;t=t.parentNode}}function vu(t){return t.srcElement||t.target}function yu(t){return null!=t.className?void 0===t.className.baseVal?t.className:t.className.baseVal:""}function bu(t,e,i){var n=null==e?[]:Array.isArray(e)?e:e.split(/\s+/),o=null==i?[]:Array.isArray(i)?i:i.split(/\s+/),s=yu(t).split(/\s+/),r=function(t,e){for(var i=0;i<e.length;i++)if(t)-1===s.indexOf(e[i])&&s.push(e[i]);else{var n=s.indexOf(e[i]);-1!==n&&s.splice(n,1)}};r(!0,n),r(!1,o),function(t,e,i){e=au(e),void 0!==t.className.baseVal?t.className.baseVal=e:t.className=e;try{var n=t.classList;if(null!=n){for(;n.length>0;)n.remove(n.item(0));for(var o=0;o<i.length;o++)i[o]&&n.add(i[o])}}catch(t){cu("WARN: cannot set class list",t)}}(t,s.join(" "),s)}function xu(t){return!Bd(t)&&!Array.isArray(t)&&null!=t.length&&null==t.documentElement&&null==t.nodeType}function _u(t,e){var i=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?Gd(au(e).split(/\s+/),(function(e){t.classList.add(e)})):bu(t,e))};xu(t)?Gd(t,(function(t){return i(t,e)})):i(t,e)}function wu(t,e){var i=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?au(e).split(/\s+/).forEach((function(e){t.classList.remove(e)})):bu(t,null,e))};xu(t)?Gd(t,(function(t){return i(t,e)})):i(t,e)}function ku(t,e,i,n){return Su(null,t,e,i,n)}function Su(t,e,i,n,o){var s,r=null==t?document.createElement(e):document.createElementNS(t,e);for(s in i=i||{})r.style[s]=i[s];for(s in n&&(r.className=n),o=o||{})r.setAttribute(s,""+o[s]);return r}function Cu(t){var e=t.getBoundingClientRect(),i=document.body,n=document.documentElement,o=window.pageYOffset||n.scrollTop||i.scrollTop,s=window.pageXOffset||n.scrollLeft||i.scrollLeft,r=n.clientTop||i.clientTop||0,a=n.clientLeft||i.clientLeft||0,l=e.top+o-r,c=e.left+s-a;return{x:Math.round(c),y:Math.round(l)}}function Eu(t,e){var i=e.getContainer().getBoundingClientRect(),n=t.getBoundingClientRect(),o=e.currentZoom;return{x:(n.left-i.left)/o,y:(n.top-i.top)/o}}function Au(t,e){var i=t.getBoundingClientRect(),n=e.currentZoom;return{w:i.width/n,h:i.height/n}}function Mu(t){return t instanceof SVGElement?iu.SVG:iu.HTML}function Tu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.map((function(t){return"."+t})).join(",")}function Pu(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.map((function(t){return"["+t+"]"})).join(",")}!function(t){t.SVG="SVG",t.HTML="HTML"}(iu||(iu={}));var Ou="source",Du="target",Iu="block",Lu="none",$u="absolute",zu="fixed",Ru="data-jtk-group",Nu="data-jtk-managed",Bu="data-jtk-not-draggable",ju="tabindex",Fu="data-jtk-scope-",qu="checkCondition",Vu="jtk-connector",Hu="jtk-endpoint",Uu="jtk-floating-endpoint",Wu="jtk-group-collapsed",Gu="jtk-group-expanded",Zu="jtk-overlay",Yu="connection",Xu="internal.connection",Ku="connection:move",Qu="internal.endpoint:unregistered",Ju="internal.connection:detached",tp="element:manage",ep="maxConnections",ip="element:unmanage",np="zoom",op="isDetachAllowed",sp="beforeDrop",rp="beforeDetach",ap=Pu(Nu),lp={"stroke-linejoin":"stroke-linejoin","stroke-dashoffset":"stroke-dashoffset","stroke-linecap":"stroke-linecap"},cp="stroke-dasharray",hp="dashstyle",dp="fill",up="stroke",pp="stroke-width",fp="strokeWidth",mp="svg",gp="path",vp={svg:"http://www.w3.org/2000/svg"};function yp(t,e){for(var i in e)t.setAttribute(i,""+e[i])}function bp(t,e){return(e=e||{}).version="1.1",e.xmlns=vp.svg,Su(vp.svg,t,null,null,e)}function xp(t){return"position:absolute;left:"+t[0]+"px;top:"+t[1]+"px"}function _p(t,e,i){if(e.setAttribute(dp,i.fill?i.fill:Lu),e.setAttribute(up,i.stroke?i.stroke:Lu),i.strokeWidth&&e.setAttribute(pp,i.strokeWidth),i[hp]&&i[fp]&&!i[cp]){var n=-1===i[hp].indexOf(",")?" ":",",o=i[hp].split(n),s="";Gd(o,(function(t){s+=Math.floor(t*i.strokeWidth)+n})),e.setAttribute(cp,s)}else i[cp]&&e.setAttribute(cp,i[cp]);for(var r in lp)i[r]&&e.setAttribute(lp[r],i[r])}function wp(t,e,i){t.childNodes.length>i?t.insertBefore(e,t.childNodes[i]):t.appendChild(e)}function kp(t,e,i){return[t,e].join(":")}var Sp,Cp,Ep="data-jtk-container",Ap="data-jtk-enabled",Mp="data-jtk-scope",Tp="endpoint",Pp="element",Op="connection",Dp="click",Ip="contextmenu",Lp="dblclick",$p="dbltap",zp="mousedown",Rp="mouseenter",Np="mouseexit",Bp="mousemove",jp="mouseup",Fp="mouseout",qp="mouseover",Vp="tap",Hp="revert",Up="connection:drag",Wp=kp(Pp,Dp),Gp=kp(Pp,Lp),Zp=kp(Pp,$p),Yp=kp(Pp,Fp),Xp=kp(Pp,qp),Kp=kp(Pp,Bp),Qp=kp(Pp,jp),Jp=kp(Pp,zp),tf=kp(Pp,Ip),ef=kp(Pp,Vp),nf=kp(Tp,Dp),of=kp(Tp,Lp),sf=kp(Tp,Fp),rf=kp(Tp,qp),af=kp(Tp,jp),lf=kp(Tp,zp),cf=kp(Op,Dp),hf=kp(Op,Lp),df=kp(Op,$p),uf=kp(Op,Fp),pf=kp(Op,qp),ff=kp(Op,jp),mf=kp(Op,zp),gf=kp(Op,Ip),vf=kp(Op,Vp),yf="position",bf=Tu(Vu),xf=Tu(Hu),_f=Pu(Ru),wf=Pu("data-jtk-group-content"),kf=Tu(Zu);!function(t){t.Circle="Circle",t.Ellipse="Ellipse",t.Triangle="Triangle",t.Diamond="Diamond",t.Rectangle="Rectangle",t.Square="Square"}(Sp||(Sp={})),function(t){t.Assign="Assign",t.AutoDefault="AutoDefault",t.Bottom="Bottom",t.BottomLeft="BottomLeft",t.BottomRight="BottomRight",t.Center="Center",t.Continuous="Continuous",t.ContinuousBottom="ContinuousBottom",t.ContinuousLeft="ContinuousLeft",t.ContinuousRight="ContinuousRight",t.ContinuousTop="ContinuousTop",t.ContinuousLeftRight="ContinuousLeftRight",t.ContinuousTopBottom="ContinuousTopBottom",t.Left="Left",t.Perimeter="Perimeter",t.Right="Right",t.Top="Top",t.TopLeft="TopLeft",t.TopRight="TopRight"}(Cp||(Cp={}));var Sf,Cf,Ef=function(){function t(e){wd(this,t),this.params=e,Cd(this,"x1",void 0),Cd(this,"x2",void 0),Cd(this,"y1",void 0),Cd(this,"y2",void 0),Cd(this,"extents",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"type",void 0),this.x1=e.x1,this.y1=e.y1,this.x2=e.x2,this.y2=e.y2}return Sd(t,[{key:"findClosestPointOnPath",value:function(t,e){return{d:1/0,x:null,y:null,l:null,x1:null,y1:null,x2:null,y2:null}}},{key:"lineIntersection",value:function(t,e,i,n){return[]}},{key:"boxIntersection",value:function(t,e,i,n){var o=[];return o.push.apply(o,this.lineIntersection(t,e,t+i,e)),o.push.apply(o,this.lineIntersection(t+i,e,t+i,e+n)),o.push.apply(o,this.lineIntersection(t+i,e+n,t,e+n)),o.push.apply(o,this.lineIntersection(t,e+n,t,e)),o}},{key:"boundingBoxIntersection",value:function(t){return this.boxIntersection(t.x,t.y,t.w,t.h)}}]),t}(),Af="undefined",Mf="default",Tf="true",Pf="false",Of="*";function Df(t,e,i,n,o,s,r){return function(){var t=[];return t.push.apply(t,arguments),t.item=function(t){return this[t]},t}(function(t,e,i,n,o,s,r){return new Touch({target:t,identifier:su(),pageX:e,pageY:i,screenX:n,screenY:o,clientX:s||n,clientY:r||o})}(t,e,i,n,o,s,r))}function If(t,e,i){for(var n=(i=i||t.parentNode).querySelectorAll(e),o=0;o<n.length;o++)if(n[o]===t)return!0;return!1}function Lf(t){return t.srcElement||t.target}function $f(t,e,i,n){if(n){var o=t.composedPath?t.composedPath():t.path;if(void 0!==o&&o.indexOf)return{path:o,end:o.indexOf(i)};var s={path:[],end:-1};return function t(e){s.path.push(e),e===i?s.end=s.path.length-1:null!=e.parentNode&&t(e.parentNode)}(e),s}return{path:[e],end:1}}var zf=1;function Rf(){return"ontouchstart"in document.documentElement||null!=navigator.maxTouchPoints&&navigator.maxTouchPoints>0}function Nf(){return"onmousedown"in document.documentElement}var Bf=(Cd(Sf={},zp,"touchstart"),Cd(Sf,jp,"touchend"),Cd(Sf,Bp,"touchmove"),Sf),jf="page";function Ff(t,e){if(null==t)return{x:0,y:0};var i=function(t,e){return t.item?t.item(e):t[e]}(Vf(t),0);return{x:i[e+"X"],y:i[e+"Y"]}}function qf(t){return Ff(t,jf)}function Vf(t){return t.touches&&t.touches.length>0?t.touches:t.changedTouches&&t.changedTouches.length>0?t.changedTouches:t.targetTouches&&t.targetTouches.length>0?t.targetTouches:[t]}function Hf(t,e,i,n,o){if(Gf(t,e,i),n.__tauid=i.__tauid,t.addEventListener)t.addEventListener(e,i,!1,o);else if(t.attachEvent){var s=e+i.__tauid;t["e"+s]=i,t[s]=function(){t["e"+s]&&t["e"+s](window.event)},t.attachEvent("on"+e,t[s])}}function Uf(t,e,i){var n=this;null!=i&&Wf(t,(function(o){if(function(t,e,i){if(t.__ta&&t.__ta[e]&&delete t.__ta[e][i.__tauid],i.__taExtra){for(var n=0;n<i.__taExtra.length;n++)Uf(t,i.__taExtra[n][0],i.__taExtra[n][1]);i.__taExtra.length=0}i.__taUnstore&&i.__taUnstore()}(o,e,i),null!=i.__tauid)if(o.removeEventListener)o.removeEventListener(e,i,!1),Rf()&&Bf[e]&&o.removeEventListener(Bf[e],i,!1);else if(n.detachEvent){var s=e+i.__tauid;o[s]&&o.detachEvent("on"+e,o[s]),o[s]=null,o["e"+s]=null}i.__taTouchProxy&&Uf(t,i.__taTouchProxy[1],i.__taTouchProxy[0])}))}function Wf(t,e){if(null!=t)for(var i="string"==typeof t?document.querySelectorAll(t):null!=t.length?t:[t],n=0;n<i.length;n++)e(i[n])}function Gf(t,e,i){var n=zf++;return t.__ta=t.__ta||{},t.__ta[e]=t.__ta[e]||{},t.__ta[e][n]=i,i.__tauid=n,n}var Zf=/:not\(([^)]+)\)/;function Yf(t,e,i,n){if(null==t)return i;var o=t.split(","),s=[],r=[];Gd(o,(function(t){var e=t.match(Zf);null!=e?r.push(e[1]):s.push(t)})),r.length>0&&0===s.length&&s.push(Of);var a=function n(o){n.__tauid=i.__tauid;var a=Lf(o),l=!1,c=a,h=$f(o,a,e,null!=t);if(-1!=h.end)for(var d=0;!l&&d<h.end;d++){c=h.path[d];for(var u=0;u<r.length;u++)if(If(c,r[u],e))return;for(var p=0;!l&&p<s.length;p++)if(If(c,s[p],e)){i.apply(c,[o,c]),l=!0;break}}};return function(t,e,i){t.__taExtra=t.__taExtra||[],t.__taExtra.push([e,i])}(i,n,a),a}var Xf=function(t,e,i,n,o){if(Rf()&&Bf[e]){var s=Yf(n,t,i,Bf[e]);Hf(t,Bf[e],s,i,o)}"focus"===e&&null==t.getAttribute(ju)&&t.setAttribute(ju,"1"),Hf(t,e,Yf(n,t,i,e),i,o)},Kf=(Cd(Cf={},Vp,{touches:1,taps:1}),Cd(Cf,$p,{touches:1,taps:2}),Cd(Cf,Ip,{touches:2,taps:1}),Cf);function Qf(t,e,i,n){for(var o in i.__tamee[t])i.__tamee[t].hasOwnProperty(o)&&i.__tamee[t][o].apply(n,[e])}var Jf=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"generate",value:function(t,e){return function(i,n,o,s){if(n==Ip&&Nf())Xf(i,n,o,s);else{if(null==i.__taTapHandler){var r=i.__taTapHandler={tap:[],dbltap:[],down:!1,taps:0,downSelectors:[]},a=function(n){for(var o=Lf(n),a=$f(n,o,i,null!=s),l=!1,d=0;d<a.end;d++){if(l)return;o=a.path[d];for(var u=0;u<r.downSelectors.length;u++)if(null==r.downSelectors[u]||If(o,r.downSelectors[u],i)){r.down=!0,setTimeout(c,t),setTimeout(h,e),l=!0;break}}},l=function(t){if(r.down){var e,n,o=Lf(t);r.taps++;var s=function(t){return Vf(t).length}(t);for(var a in Kf)if(Kf.hasOwnProperty(a)){var l=Kf[a];if(l.touches===s&&(1===l.taps||l.taps===r.taps))for(var c=0;c<r[a].length;c++){n=$f(t,o,i,null!=r[a][c][1]);for(var h=0;h<n.end;h++)if(e=n.path[h],null==r[a][c][1]||If(e,r[a][c][1],i)){r[a][c][0].apply(e,[t,e]);break}}}}},c=function(){r.down=!1},h=function(){r.taps=0};i.__taTapHandler.downHandler=a,i.__taTapHandler.upHandler=l,Xf(i,zp,a),Xf(i,jp,l)}i.__taTapHandler.downSelectors.push(s),i.__taTapHandler[n].push([o,s]),o.__taUnstore=function(){null!=i.__taTapHandler&&(Kd(i.__taTapHandler.downSelectors,(function(t){return t===s})),function(t,e){var i,n=0;for(n=0,i=t.length;n<i&&t[n][0]!==e;n++);n<t.length&&t.splice(n,1)}(i.__taTapHandler[n],o),0===i.__taTapHandler.downSelectors.length&&(Uf(i,zp,i.__taTapHandler.downHandler),Uf(i,jp,i.__taTapHandler.upHandler),delete i.__taTapHandler))}}}}}]),t}(),tm=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"generate",value:function(){var t=[];return function(e,i,n,o){if(!e.__tamee){e.__tamee={over:!1,mouseenter:[],mouseexit:[]};var s=function(i){var n=Lf(i);(null==o&&n==e&&!e.__tamee.over||If(n,o,e)&&(null==n.__tamee||!n.__tamee.over))&&(Qf(Rp,i,e,n),n.__tamee=n.__tamee||{},n.__tamee.over=!0,t.push(n))},r=function(i){for(var n=Lf(i),o=0;o<t.length;o++)n!=t[o]||If(i.relatedTarget||i.toElement,"*",n)||(n.__tamee.over=!1,t.splice(o,1),Qf(Np,i,e,n))};Hf(e,qp,Yf(o,e,s,qp),s),Hf(e,Fp,Yf(o,e,r,Fp),r)}n.__taUnstore=function(){delete e.__tamee[i][n.__tauid]},Gf(e,i,n),e.__tamee[i][n.__tauid]=n}}}]),t}(),em=function(){function t(e){wd(this,t),Cd(this,"clickThreshold",void 0),Cd(this,"dblClickThreshold",void 0),Cd(this,"tapHandler",void 0),Cd(this,"mouseEnterExitHandler",void 0),e=e||{},this.clickThreshold=e.clickThreshold||250,this.dblClickThreshold=e.dblClickThreshold||450,this.mouseEnterExitHandler=tm.generate(),this.tapHandler=Jf.generate(this.clickThreshold,this.dblClickThreshold)}return Sd(t,[{key:"_doBind",value:function(t,e,i,n,o){if(null!=i){var s=t;e===Vp||e===$p||e===Ip?this.tapHandler(s,e,i,n,o):e===Rp||e==Np?this.mouseEnterExitHandler(s,e,i,n,o):Xf(s,e,i,n,o)}}},{key:"on",value:function(t,e,i,n,o){var s=null==n?null:i,r=null==n?i:n;return this._doBind(t,e,r,s,o),this}},{key:"off",value:function(t,e,i){return Uf(t,e,i),this}},{key:"trigger",value:function(t,e,i,n,o){var s=Nf()&&("undefined"==typeof MouseEvent||null==i||i.constructor===MouseEvent),r=Rf()&&!Nf()&&Bf[e]?Bf[e]:e,a=!(Rf()&&!Nf()&&Bf[e]),l=qf(i),c=function(t){return Ff(t,"screen")}(i),h=function(t){return Ff(t,"client")}(i);return Wf(t,(function(t){var d;i=i||{screenX:c.x,screenY:c.y,clientX:h.x,clientY:h.y};var u,p={TouchEvent:function(e){var i=Df(t,l.x,l.y,c.x,c.y,h.x,h.y);(e.initTouchEvent||e.initEvent)(r,!0,!0,window,null,c.x,c.y,h.x,h.y,!1,!1,!1,!1,i,i,i,1,0)},MouseEvents:function(e){e.initMouseEvent(r,!0,!0,window,null==o?1:o,c.x,c.y,h.x,h.y,!1,!1,!1,!1,1,t)}},f=!a&&!s&&Rf()&&Bf[e]?"TouchEvent":"MouseEvents";d=document.createEvent(f),p[f](d),u=d,n&&(u.payload=n),t.dispatchEvent(d)})),this}}]),t}(),im=[null,[1,-1],[1,1],[-1,1],[-1,-1]],nm=[null,[-1,-1],[-1,1],[1,1],[1,-1]],om=2*Math.PI;function sm(t,e){return e.x===t.x?e.y>t.y?1/0:-1/0:e.y===t.y?e.x>t.x?0:-0:(e.y-t.y)/(e.x-t.x)}function rm(t,e){return Math.sqrt(Math.pow(e.y-t.y,2)+Math.pow(e.x-t.x,2))}function am(t,e){return e.x>t.x||e.x==t.x?e.y>t.y?2:1:e.y>t.y?3:4}function lm(t,e){var i=t.x,n=t.x+t.w,o=t.y,s=t.y+t.h,r=e.x,a=e.x+e.w,l=e.y,c=e.y+e.h;return i<=r&&r<=n&&o<=l&&l<=s||i<=a&&a<=n&&o<=l&&l<=s||i<=r&&r<=n&&o<=c&&c<=s||i<=a&&r<=n&&o<=c&&c<=s||r<=i&&i<=a&&l<=o&&o<=c||r<=n&&n<=a&&l<=o&&o<=c||r<=i&&i<=a&&l<=s&&s<=c||r<=n&&i<=a&&l<=s&&s<=c}function cm(t,e,i){var n=sm(t,e),o=am(t,e),s=i>0?im[o]:nm[o],r=Math.atan(n),a=Math.abs(i*Math.sin(r))*s[1],l=Math.abs(i*Math.cos(r))*s[0];return{x:t.x+l,y:t.y+a}}function hm(t,e,i){if(fu(e,i,t))return e;for(var n=e.parentNode;null!=n&&n!==t;){if(fu(n,i,t))return n;n=n.parentNode}}function dm(t,e,i){var n=e.parentNode,o=t.getSize(n),s=t.getSize(e),r=i.x,a=r+s.w,l=i.y,c=l+s.h;return a>0&&r<o.w&&c>0&&l<o.h}var um,pm="start",fm="beforeStart",mm="drag",gm="stop",vm="katavorio-draggable",ym=function(){return!0},bm=function(){return!1},xm="katavorio-delegated-draggable",_m="katavorio-drag-no-select",wm="katavorio-ghost-proxy",km="katavorio-clone-drag";!function(t){t.absolutePosition="absolutePosition",t.transform="transform",t.xyAttributes="xyAttributes"}(um||(um={}));var Sm=new Map;Sm.set(um.absolutePosition,(function(t,e){t.style.left="".concat(e.x,"px"),t.style.top="".concat(e.y,"px")})),Sm.set(um.xyAttributes,(function(t,e){t.setAttribute("x","".concat(e.x)),t.setAttribute("y","".concat(e.y))}));var Cm=new Map;Cm.set(um.absolutePosition,(function(t){return{x:t.offsetLeft,y:t.offsetTop}})),Cm.set(um.xyAttributes,(function(t){return{x:parseFloat(t.getAttribute("x")),y:parseFloat(t.getAttribute("y"))}}));var Em=new Map;Em.set(um.absolutePosition,(function(t,e){t.style.width="".concat(e.w,"px"),t.style.height="".concat(e.h,"px")})),Em.set(um.xyAttributes,(function(t,e){t.setAttribute("width","".concat(e.w)),t.setAttribute("height","".concat(e.h))}));var Am=new Map;Am.set(um.absolutePosition,(function(t){return{w:t.offsetWidth,h:t.offsetHeight}})),Am.set(um.xyAttributes,(function(t){return{w:parseFloat(t.getAttribute("width")),h:parseFloat(t.getAttribute("height"))}}));var Mm,Tm=[gm,pm,mm,"drop","over","out",fm],Pm=function(){},Om=function(t,e){if(null!=t){t=Bd(t)||null!=t.tagName||null==t.length?[t]:t;for(var i=0;i<t.length;i++)e.apply(t[i],[t[i]])}},Dm=function(){function t(e,i){wd(this,t),this.el=e,this.manager=i,Cd(this,"_class",void 0),Cd(this,"uuid",su()),Cd(this,"enabled",!0),Cd(this,"scopes",[]),Cd(this,"eventManager",void 0),this.eventManager=i.eventManager}return Sd(t,[{key:"setEnabled",value:function(t){this.enabled=t}},{key:"isEnabled",value:function(){return this.enabled}},{key:"toggleEnabled",value:function(){this.enabled=!this.enabled}},{key:"addScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){e[t]=!0})),this.scopes.length=0,e)this.scopes.push(i)}},{key:"removeScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){delete e[t]})),this.scopes.length=0,e)this.scopes.push(i)}},{key:"toggleScope",value:function(t){var e={};for(var i in Om(this.scopes,(function(t){e[t]=!0})),Om(t?t.split(/\s+/):[],(function(t){e[t]?delete e[t]:e[t]=!0})),this.scopes.length=0,e)this.scopes.push(i)}}]),t}();!function(t){t.notNegative="notNegative",t.parent="parent",t.parentEnclosed="parentEnclosed"}(Mm||(Mm={}));var Im=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;if(wd(this,i),Cd(Td(s=e.call(this,t,o)),"_class",void 0),Cd(Td(s),"rightButtonCanDrag",void 0),Cd(Td(s),"consumeStartEvent",void 0),Cd(Td(s),"clone",void 0),Cd(Td(s),"scroll",void 0),Cd(Td(s),"trackScroll",void 0),Cd(Td(s),"_downAt",void 0),Cd(Td(s),"_posAtDown",void 0),Cd(Td(s),"_pagePosAtDown",void 0),Cd(Td(s),"_pageDelta",{x:0,y:0}),Cd(Td(s),"_moving",void 0),Cd(Td(s),"_lastPosition",void 0),Cd(Td(s),"_lastScrollValues",{x:0,y:0}),Cd(Td(s),"_initialScroll",{x:0,y:0}),Cd(Td(s),"_size",void 0),Cd(Td(s),"_currentParentPosition",void 0),Cd(Td(s),"_ghostParentPosition",void 0),Cd(Td(s),"_dragEl",void 0),Cd(Td(s),"_multipleDrop",void 0),Cd(Td(s),"_ghostProxyOffsets",void 0),Cd(Td(s),"_ghostDx",void 0),Cd(Td(s),"_ghostDy",void 0),Cd(Td(s),"_isConstrained",!1),Cd(Td(s),"_ghostProxyParent",void 0),Cd(Td(s),"_useGhostProxy",void 0),Cd(Td(s),"_ghostProxyFunction",void 0),Cd(Td(s),"_activeSelectorParams",void 0),Cd(Td(s),"_availableSelectors",[]),Cd(Td(s),"_canDrag",void 0),Cd(Td(s),"_consumeFilteredEvents",void 0),Cd(Td(s),"_parent",void 0),Cd(Td(s),"_ignoreZoom",void 0),Cd(Td(s),"_filters",{}),Cd(Td(s),"_constrainRect",void 0),Cd(Td(s),"_elementToDrag",void 0),Cd(Td(s),"downListener",void 0),Cd(Td(s),"moveListener",void 0),Cd(Td(s),"upListener",void 0),Cd(Td(s),"scrollTracker",void 0),Cd(Td(s),"listeners",{start:[],drag:[],stop:[],over:[],out:[],beforeStart:[],revert:[]}),s._class=s.manager.css.draggable,_u(s.el,s._class),s.downListener=s._downListener.bind(Td(s)),s.upListener=s._upListener.bind(Td(s)),s.moveListener=s._moveListener.bind(Td(s)),s.rightButtonCanDrag=!0===n.rightButtonCanDrag,s.consumeStartEvent=!1!==n.consumeStartEvent,s._dragEl=s.el,s.clone=!0===n.clone,s.scroll=!0===n.scroll,s.trackScroll=!1!==n.trackScroll,s._multipleDrop=!1!==n.multipleDrop,s._canDrag=n.canDrag||ym,s._consumeFilteredEvents=n.consumeFilteredEvents,s._parent=n.parent,s._ignoreZoom=!0===n.ignoreZoom,s._ghostProxyParent=n.ghostProxyParent,s.trackScroll&&(s.scrollTracker=s._trackScroll.bind(Td(s)),document.addEventListener("scroll",s.scrollTracker)),!0===n.ghostProxy?s._useGhostProxy=ym:n.ghostProxy&&"function"==typeof n.ghostProxy?s._useGhostProxy=n.ghostProxy:s._useGhostProxy=function(t,e){return!(!s._activeSelectorParams||!s._activeSelectorParams.useGhostProxy)&&s._activeSelectorParams.useGhostProxy(t,e)},n.makeGhostProxy?s._ghostProxyFunction=n.makeGhostProxy:s._ghostProxyFunction=function(t){return s._activeSelectorParams&&s._activeSelectorParams.makeGhostProxy?s._activeSelectorParams.makeGhostProxy(t):t.cloneNode(!0)},n.selector){var r=s.el.getAttribute(vm);null==r&&(r=""+(new Date).getTime(),s.el.setAttribute("katavorio-draggable",r)),s._availableSelectors.push(n)}return s.eventManager.on(s.el,zp,s.downListener),s}return Sd(i,[{key:"_trackScroll",value:function(t){if(this._moving){var e={x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop},i=e.x-this._lastScrollValues.x,n=e.y-this._lastScrollValues.y,o={x:i+this._lastPosition.x,y:n+this._lastPosition.y},s=o.x-this._downAt.x,r=o.y-this._downAt.y,a=this._ignoreZoom?1:this.manager.getZoom();this._dragEl&&this._dragEl.parentNode&&(s+=this._dragEl.parentNode.scrollLeft-this._initialScroll.x,r+=this._dragEl.parentNode.scrollTop-this._initialScroll.y),s/=a,r/=a,this.moveBy(s,r,t),this._lastPosition=o,this._lastScrollValues=e}}},{key:"on",value:function(t,e){this.listeners[t]&&this.listeners[t].push(e)}},{key:"off",value:function(t,e){if(this.listeners[t]){for(var i=[],n=0;n<this.listeners[t].length;n++)this.listeners[t][n]!==e&&i.push(this.listeners[t][n]);this.listeners[t]=i}}},{key:"_upListener",value:function(t){this._downAt&&(this._downAt=null,this.eventManager.off(document,Bp,this.moveListener),this.eventManager.off(document,jp,this.upListener),wu(document.body,_m),this.unmark(t),this.stop(t),this._moving=!1,this.clone?(this._dragEl&&this._dragEl.parentNode&&this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=null):this._activeSelectorParams&&this._activeSelectorParams.revertFunction&&!0===this._activeSelectorParams.revertFunction(this._dragEl,this.manager.getPosition(this._dragEl))&&(this.manager.setPosition(this._dragEl,this._posAtDown),this._dispatch(Hp,this._dragEl)))}},{key:"_downListener",value:function(t){if(!t.defaultPrevented&&((this.rightButtonCanDrag||3!==t.which&&2!==t.button)&&this.isEnabled()&&this._canDrag())){var e=this._testFilter(t)&&function(t,e,i){return!fu(t.srcElement||t.target,i.getInputFilterSelector(),e)}(t,this.el,this.manager);if(e){this._activeSelectorParams=null,this._elementToDrag=null,0===this._availableSelectors.length&&console.log("JSPLUMB: no available drag selectors");var i=t.target||t.srcElement,n=function(t,e,i){for(var n=null,o=e.getAttribute("katavorio-draggable"),s=null!=o?"[katavorio-draggable='"+o+"'] ":"",r=0;r<t.length;r++)if(null!=(n=hm(e,i,s+t[r].selector))){if(t[r].filter){var a=fu(i,t[r].filter,n);if(!0===t[r].filterExclude&&!a||a)return null}return[t[r],n]}return null}(this._availableSelectors,this.el,i);if(null!=n&&(this._activeSelectorParams=n[0],this._elementToDrag=n[1]),null==this._activeSelectorParams||null==this._elementToDrag)return;var o=this._activeSelectorParams.dragInit?this._activeSelectorParams.dragInit(this._elementToDrag,t):null;if(null!=o&&(this._elementToDrag=o),this.clone)if(this._dragEl=this._elementToDrag.cloneNode(!0),_u(this._dragEl,km),this._dragEl.setAttribute("id",null),this._dragEl.style.position="absolute",null!=this._parent){var s=this.manager.getPosition(this.el);this._dragEl.style.left=s.x+"px",this._dragEl.style.top=s.y+"px",this._parent.appendChild(this._dragEl)}else{var r=Cu(this._elementToDrag);this._dragEl.style.left=r.x+"px",this._dragEl.style.top=r.y+"px",document.body.appendChild(this._dragEl)}else this._dragEl=this._elementToDrag;this.consumeStartEvent&&mu(t),this._downAt=qf(t),this._dragEl&&this._dragEl.parentNode&&(this._initialScroll={x:this._dragEl.parentNode.scrollLeft,y:this._dragEl.parentNode.scrollTop}),this._posAtDown=this.manager.getPosition(this._dragEl),this._pagePosAtDown=Cu(this._dragEl),this._pageDelta={x:this._pagePosAtDown.x-this._posAtDown.x,y:this._pagePosAtDown.y-this._posAtDown.y},this._size=this.manager.getSize(this._dragEl),this.eventManager.on(document,Bp,this.moveListener),this.eventManager.on(document,jp,this.upListener),_u(document.body,_m),this._dispatch(fm,{el:this.el,pos:this._posAtDown,e:t,drag:this,size:this._size})}else this._consumeFilteredEvents&&mu(t)}}},{key:"_moveListener",value:function(t){if(this._downAt){if(!this._moving){var e=this._dispatch(pm,{el:this.el,pos:this._posAtDown,e:t,drag:this,size:this._size});if(!1!==e){if(!this._downAt)return;this.mark(e),this._moving=!0}else this.abort()}if(this._downAt){var i=qf(t),n=i.x-this._downAt.x,o=i.y-this._downAt.y,s=this._ignoreZoom?1:this.manager.getZoom();this._lastPosition={x:i.x,y:i.y},this._lastScrollValues={x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop},this._dragEl&&this._dragEl.parentNode&&(n+=this._dragEl.parentNode.scrollLeft-this._initialScroll.x,o+=this._dragEl.parentNode.scrollTop-this._initialScroll.y),n/=s,o/=s,this.moveBy(n,o,t)}}}},{key:"getDragDelta",value:function(){return null!=this._posAtDown&&null!=this._downAt?{x:this._downAt.x-this._posAtDown.x,y:this._downAt.y-this._posAtDown.y}:{x:0,y:0}}},{key:"mark",value:function(t){var e;this._posAtDown=this.manager.getPosition(this._dragEl),this._pagePosAtDown=Cu(this._dragEl),this._pageDelta={x:this._pagePosAtDown.x-this._posAtDown.x,y:this._pagePosAtDown.y-this._posAtDown.y},this._size=this.manager.getSize(this._dragEl),_u(this._dragEl,this.manager.css.drag),this._constrainRect={w:(e=this._dragEl).parentNode.offsetWidth+e.parentNode.scrollLeft,h:e.parentNode.offsetHeight+e.parentNode.scrollTop},this._ghostDx=0,this._ghostDy=0}},{key:"unmark",value:function(t){this._isConstrained&&this._useGhostProxy(this._elementToDrag,this._dragEl)?(this._ghostProxyOffsets={x:this._dragEl.offsetLeft-this._ghostDx,y:this._dragEl.offsetTop-this._ghostDy},this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=this._elementToDrag):this._ghostProxyOffsets=null,wu(this._dragEl,this.manager.css.drag),this._isConstrained=!1}},{key:"moveBy",value:function(t,e,i){var n=this.toGrid({x:this._posAtDown.x+t,y:this._posAtDown.y+e}),o=this._doConstrain(n,this._dragEl,this._constrainRect,this._size,i);if(null!=o){if(this._useGhostProxy(this.el,this._dragEl))if(n.x!==o.x||n.y!==o.y){if(!this._isConstrained){var s=this._ghostProxyFunction(this._elementToDrag);_u(s,wm),this._ghostProxyParent?(this._ghostProxyParent.appendChild(s),this._currentParentPosition=Cu(this._elementToDrag.parentNode),this._ghostParentPosition=Cu(this._ghostProxyParent),this._ghostDx=this._currentParentPosition.x-this._ghostParentPosition.x,this._ghostDy=this._currentParentPosition.y-this._ghostParentPosition.y):this._elementToDrag.parentNode.appendChild(s),this._dragEl=s,this._isConstrained=!0}o=n}else this._isConstrained&&(this._dragEl.parentNode.removeChild(this._dragEl),this._dragEl=this._elementToDrag,this._isConstrained=!1,this._currentParentPosition=null,this._ghostParentPosition=null,this._ghostDx=0,this._ghostDy=0);this.manager.setPosition(this._dragEl,{x:o.x+this._ghostDx,y:o.y+this._ghostDy}),this._dispatch(mm,{el:this.el,pos:o,e:i,drag:this,size:this._size,originalPos:this._posAtDown})}}},{key:"abort",value:function(){null!=this._downAt&&this._upListener()}},{key:"getDragElement",value:function(t){return t?this._elementToDrag||this.el:this._dragEl||this.el}},{key:"stop",value:function(t,e){if(e||this._moving){var i=[],n=this.manager.getPosition(this._dragEl);i.push([this._dragEl,n,this,this._size]),this._dispatch(gm,{el:this._dragEl,pos:this._ghostProxyOffsets||n,finalPos:n,e:t,drag:this,selection:i,size:this._size,originalPos:{x:this._posAtDown.x,y:this._posAtDown.y}})}else this._moving||this._activeSelectorParams.dragAbort&&this._activeSelectorParams.dragAbort(this._elementToDrag)}},{key:"_dispatch",value:function(t,e){var i=null;if(this._activeSelectorParams&&this._activeSelectorParams[t])i=this._activeSelectorParams[t](e);else if(this.listeners[t])for(var n=0;n<this.listeners[t].length;n++)try{var o=this.listeners[t][n](e);null!=o&&(i=o)}catch(t){}return i}},{key:"resolveGrid",value:function(){var t={grid:null,thresholdX:5,thresholdY:5};return null!=this._activeSelectorParams&&null!=this._activeSelectorParams.grid&&(t.grid=this._activeSelectorParams.grid,null!=this._activeSelectorParams.snapThreshold&&(t.thresholdX=this._activeSelectorParams.snapThreshold,t.thresholdY=this._activeSelectorParams.snapThreshold)),t}},{key:"toGrid",value:function(t){var e=this.resolveGrid(),i=e.grid,n=e.thresholdX,o=e.thresholdY;return null==i?t:function(t,e,i,n){i=null==i?null==e.thresholdX?e.w/2:e.thresholdX:i,n=null==n?null==e.thresholdY?e.h/2:e.thresholdY:n;var o=Math.floor(t.x/e.w),s=e.w*o,r=s+e.w,a=Math.abs(t.x-s)<=i?s:Math.abs(r-t.x)<=i?r:t.x,l=Math.floor(t.y/e.h),c=e.h*l,h=c+e.h;return{x:a,y:Math.abs(t.y-c)<=n?c:Math.abs(h-t.y)<=n?h:t.y}}(t,i,i?i.w/2:n,i?i.h/2:o)}},{key:"setUseGhostProxy",value:function(t){this._useGhostProxy=t?ym:bm}},{key:"_doConstrain",value:function(t,e,i,n,o){return null!=this._activeSelectorParams&&this._activeSelectorParams.constrainFunction&&"function"==typeof this._activeSelectorParams.constrainFunction?this._activeSelectorParams.constrainFunction(t,e,i,n,o):t}},{key:"_testFilter",value:function(t){for(var e in this._filters){var i=this._filters[e],n=i[0](t);if(i[1]&&(n=!n),!n)return!1}return!0}},{key:"addFilter",value:function(t,e){var i,n=this;if(t){var o="function"==typeof(i=t)?(i._katavorioId=su(),i._katavorioId):i;this._filters[o]=[function(e){var i,o=e.srcElement||e.target;return Bd(t)?i=fu(o,t,n.el):"function"==typeof t&&(i=t(e,n.el)),i},!1!==e]}}},{key:"removeFilter",value:function(t){var e="function"==typeof t?t._katavorioId:t;delete this._filters[e]}},{key:"clearAllFilters",value:function(){this._filters={}}},{key:"addSelector",value:function(t,e){t.selector&&(e?this._availableSelectors.unshift(t):this._availableSelectors.push(t))}},{key:"destroy",value:function(){this.eventManager.off(this.el,zp,this.downListener),this.eventManager.off(document,Bp,this.moveListener),this.eventManager.off(document,jp,this.upListener),this.downListener=null,this.upListener=null,this.moveListener=null,null!=this.scrollTracker&&document.removeEventListener("scroll",this.scrollTracker)}}]),i}(Dm),Lm=["input","textarea","select","button","option"].join(","),$m=function(){function t(e){wd(this,t),Cd(this,"eventManager",void 0),Cd(this,"zoom",1),Cd(this,"css",{}),Cd(this,"inputFilterSelector",void 0),Cd(this,"positioningStrategy",void 0),Cd(this,"_positionSetter",void 0),Cd(this,"_positionGetter",void 0),Cd(this,"_sizeSetter",void 0),Cd(this,"_sizeGetter",void 0),e=e||{},this.inputFilterSelector=e.inputFilterSelector||Lm,this.eventManager=new em,this.zoom=e.zoom||1,this.positioningStrategy=e.positioningStrategy||um.absolutePosition,this._positionGetter=Cm.get(this.positioningStrategy),this._positionSetter=Sm.get(this.positioningStrategy),this._sizeGetter=Am.get(this.positioningStrategy),this._sizeSetter=Em.get(this.positioningStrategy);var i=e.css||{};Rd(this.css,i)}return Sd(t,[{key:"getPosition",value:function(t){return this._positionGetter(t)}},{key:"setPosition",value:function(t,e){this._positionSetter(t,e)}},{key:"getSize",value:function(t){return this._sizeGetter(t)}},{key:"getZoom",value:function(){return this.zoom}},{key:"setZoom",value:function(t){this.zoom=t}},{key:"_prepareParams",value:function(t){t=t||{};var e,i={events:{}};for(e in t)i[e]=t[e];for(e=0;e<Tm.length;e++)i.events[Tm[e]]=t[Tm[e]]||Pm;return i}},{key:"getInputFilterSelector",value:function(){return this.inputFilterSelector}},{key:"setInputFilterSelector",value:function(t){return this.inputFilterSelector=t,this}},{key:"draggable",value:function(t,e){if(null==t._katavorioDrag){var i=this._prepareParams(e),n=new Im(t,i,this);return _u(t,xm),t._katavorioDrag=n,n}return t._katavorioDrag}},{key:"destroyDraggable",value:function(t){t._katavorioDrag&&(t._katavorioDrag.destroy(),delete t._katavorioDrag)}}]),t}(),zm="jtk-drag-selected",Rm=function(){function t(e){wd(this,t),this.instance=e,Cd(this,"_dragSelection",[]),Cd(this,"_dragSizes",new Map),Cd(this,"_dragElements",new Map),Cd(this,"_dragElementStartPositions",new Map),Cd(this,"_dragElementPositions",new Map),Cd(this,"__activeSet",void 0)}return Sd(t,[{key:"_activeSet",get:function(){return null==this.__activeSet?this._dragSelection:this.__activeSet}},{key:"length",get:function(){return this._dragSelection.length}},{key:"filterActiveSet",value:function(t){var e=this;this.__activeSet=[],Gd(this._dragSelection,(function(i){t(i)&&e.__activeSet.push(i)}))}},{key:"clear",value:function(){var t=this;this.reset(),Gd(this._dragSelection,(function(e){return t.instance.removeClass(e.jel,zm)})),this._dragSelection.length=0}},{key:"reset",value:function(){this._dragElementStartPositions.clear(),this._dragElementPositions.clear(),this._dragSizes.clear(),this._dragElements.clear(),this.__activeSet=null}},{key:"initialisePositions",value:function(){var t=this;Gd(this._activeSet,(function(e){var i=t.instance.viewport.getPosition(e.id),n={x:parseInt(""+e.jel.offsetLeft,10),y:parseInt(""+e.jel.offsetTop,10)};t._dragElementStartPositions.set(e.id,n),t._dragElementPositions.set(e.id,n),t._dragSizes.set(e.id,{w:i.w,h:i.h})}))}},{key:"updatePositions",value:function(t,e,i){var n=this,o=t.x-e.x,s=t.y-e.y;Gd(this._activeSet,(function(t){var e=n._dragElementStartPositions.get(t.id);if(e){var r=e.x+o,a=e.y+s,l=n._dragSizes.get(t.id),c={x:r,y:a,w:l.w,h:l.h};if(t.jel._jsPlumbParentGroup&&t.jel._jsPlumbParentGroup.constrain){var h={w:t.jel.parentNode.offsetWidth+t.jel.parentNode.scrollLeft,h:t.jel.parentNode.offsetHeight+t.jel.parentNode.scrollTop};c.x=Math.max(c.x,0),c.y=Math.max(c.y,0),c.x=Math.min(c.x,h.w-l.w),c.y=Math.min(c.y,h.h-l.h)}n._dragElementPositions.set(t.id,{x:r,y:a}),t.jel.style.left=c.x+"px",t.jel.style.top=c.y+"px",i(t.jel,t.id,l,c)}}))}},{key:"each",value:function(t){var e=this;Gd(this._activeSet,(function(i){var n=e._dragSizes.get(i.id),o=e._dragElementPositions.get(i.id),s=e._dragElementStartPositions.get(i.id);t(i.jel,i.id,o,n,s)}))}},{key:"add",value:function(t,e){var i=t;e=e||this.instance.getId(i);var n=Zd(this._dragSelection,(function(t){return t.id===e}));-1===n&&(this.instance.addClass(t,zm),this._dragSelection.push({id:e,jel:i}))}},{key:"remove",value:function(t){var e=this,i=t;this._dragSelection=this._dragSelection.filter((function(t){var n=t.jel!==i;return n||e.instance.removeClass(t.jel,zm),n}))}},{key:"toggle",value:function(t){var e=t,i=Zd(this._dragSelection,(function(t){return t.jel===e}));-1!==i?this.remove(e):this.add(t)}}]),t}(),Nm="jtk-drag-active",Bm="jtk-drag-hover",jm=function(){function t(e,i,n){var o=this;wd(this,t),this.instance=e,this.dragSelection=i,Cd(this,"collicat",void 0),Cd(this,"drag",void 0),Cd(this,"_draggables",{}),Cd(this,"_dlist",[]),Cd(this,"_elementsWithEndpoints",{}),Cd(this,"_draggablesForElements",{}),Cd(this,"handlers",[]),Cd(this,"_trackScroll",void 0),Cd(this,"_filtersToAdd",[]),this.collicat=new $m({zoom:this.instance.currentZoom,css:{noSelect:this.instance.dragSelectClass,delegatedDraggable:"jtk-delegated-draggable",draggable:"jtk-draggable",drag:"jtk-drag",selected:zm,active:Nm,hover:Bm,ghostProxy:"jtk-ghost-proxy"}}),this.instance.bind(np,(function(t){o.collicat.setZoom(t)})),n=n||{},this._trackScroll=!1!==n.trackScroll}return Sd(t,[{key:"addHandler",value:function(t,e){var i=this,n=Rd({selector:t.selector},e||{});n.start=du(n.start,(function(e){return t.onStart(e)}),!1),n.drag=du(n.drag,(function(e){return t.onDrag(e)})),n.stop=du(n.stop,(function(e){return t.onStop(e)}));var o=(t.onBeforeStart||function(t){}).bind(t);if(n.beforeStart=du(n.beforeStart,(function(t){return o(t)})),n.dragInit=function(e,i){return t.onDragInit(e,i)},n.dragAbort=function(e){return t.onDragAbort(e)},t.useGhostProxy&&(n.useGhostProxy=t.useGhostProxy,n.makeGhostProxy=t.makeGhostProxy),null==n.constrainFunction&&null!=n.containment)switch(n.containment){case Mm.notNegative:n.constrainFunction=function(t,e,i,n){return{x:Math.max(0,Math.min(t.x)),y:Math.max(0,Math.min(t.y))}};break;case Mm.parent:var s=n.containmentPadding||5;n.constrainFunction=function(t,e,i,n){return{x:t.x<0?0:t.x>i.w-s?i.w-s:t.x,y:t.y<0?0:t.y>i.h-s?i.h-s:t.y}};break;case Mm.parentEnclosed:n.constrainFunction=function(t,e,i,n){return{x:t.x<0?0:t.x+n.w>i.w?i.w-n.w:t.x,y:t.y<0?0:t.y+n.h>i.h?i.h-n.h:t.y}}}null==this.drag?(n.trackScroll=this._trackScroll,this.drag=this.collicat.draggable(this.instance.getContainer(),n),Gd(this._filtersToAdd,(function(t){return i.drag.addFilter(t[0],t[1])})),this.drag.on(Hp,(function(t){i.instance.revalidate(t)}))):this.drag.addSelector(n),this.handlers.push({handler:t,options:n}),t.init(this.drag)}},{key:"addSelector",value:function(t,e){this.drag&&this.drag.addSelector(t,e)}},{key:"addFilter",value:function(t,e){null==this.drag?this._filtersToAdd.push([t,!0===e]):this.drag.addFilter(t,e)}},{key:"removeFilter",value:function(t){null!=this.drag&&this.drag.removeFilter(t)}},{key:"setFilters",value:function(t){var e=this;Gd(t,(function(t){e.drag.addFilter(t[0],t[1])}))}},{key:"reset",value:function(){var t=[];if(Gd(this.handlers,(function(t){t.handler.reset()})),this.handlers.length=0,null!=this.drag){var e=this.drag._filters;for(var i in e)t.push([i,e[i][1]]);this.collicat.destroyDraggable(this.instance.getContainer())}return delete this.drag,t}},{key:"setOption",value:function(t,e){var i=Yd(this.handlers,(function(e){return e.handler===t}));null!=i&&Rd(i.options,e||{})}}]),t}();var Fm,qm,Vm,Hm,Um=function(){function t(e,i){wd(this,t),this.instance=e,this._dragSelection=i,Cd(this,"selector","> "+ap+":not("+Tu(Zu)+")"),Cd(this,"_dragOffset",null),Cd(this,"_groupLocations",[]),Cd(this,"_intersectingGroups",[]),Cd(this,"_currentDragParentGroup",null),Cd(this,"_dragGroupByElementIdMap",{}),Cd(this,"_dragGroupMap",{}),Cd(this,"_currentDragGroup",null),Cd(this,"_currentDragGroupOffsets",new Map),Cd(this,"_currentDragGroupSizes",new Map),Cd(this,"_currentDragGroupOriginalPositions",new Map),Cd(this,"_dragPayload",null),Cd(this,"drag",void 0),Cd(this,"originalPosition",void 0)}return Sd(t,[{key:"onDragInit",value:function(t){return null}},{key:"onDragAbort",value:function(t){return null}},{key:"getDropGroup",value:function(){var t=null;if(this._intersectingGroups.length>0){var e=this._intersectingGroups[0].groupLoc.group,i=this._intersectingGroups[0].intersectingElement,n=i._jsPlumbParentGroup;n!==e&&(null!=n&&n.overrideDrop(i,e)||(t=this._intersectingGroups[0]))}return t}},{key:"onStop",value:function(t){var e,i=this,n=t.drag.getDragElement(),o=this.getDropGroup(),s=[];function r(t,e,i,n,r){var a=i.x,l=i.y;if(t._jsPlumbParentGroup&&t._jsPlumbParentGroup.constrain){var c={w:t.parentNode.offsetWidth+t.parentNode.scrollLeft,h:t.parentNode.offsetHeight+t.parentNode.scrollTop};a=Math.max(a,0),l=Math.max(l,0),a=Math.min(a,c.w-n.w),l=Math.min(l,c.h-n.h),i.x=a,i.y=l}s.push({el:t,id:e,pos:i,originalPos:r,originalGroup:t._jsPlumbParentGroup,redrawResult:null,reverted:!1,dropGroup:null==o?void 0:o.groupLoc.group})}if(s.push({el:n,id:this.instance.getId(n),pos:t.finalPos,originalGroup:n._jsPlumbParentGroup,redrawResult:null,originalPos:t.originalPos,reverted:!1,dropGroup:null!=o?o.groupLoc.group:null}),this._dragSelection.each((function(e,i,n,o,s){e!==t.el&&r(e,i,{x:n.x,y:n.y},o,s)})),null===(e=this._currentDragGroup)||void 0===e||e.members.forEach((function(e){if(e.el!==t.el){var n=i._currentDragGroupOffsets.get(e.elId),o=i._currentDragGroupSizes.get(e.elId),s={x:t.finalPos.x+n[0].x,y:t.finalPos.y+n[0].y};r(e.el,e.elId,s,o,i._currentDragGroupOriginalPositions.get(e.elId))}})),Gd(s,(function(t){var e=null!=t.originalGroup,n=e&&dm(i.instance,t.el,t.pos),s={x:0,y:0};if(e&&!n){if(null==o){var r=i._pruneOrOrphan(t,!0,!0);null!=r.pos?t.pos=r.pos.pos:!r.pruned&&t.originalGroup.revert&&(t.pos=t.originalPos,t.reverted=!0)}}else e&&n&&(s=i._computeOffsetByParentGroup(t.originalGroup));null==o||n?t.dropGroup=null:i.instance.groupManager.addToGroup(o.groupLoc.group,!1,t.el),t.reverted&&i.instance.setPosition(t.el,t.pos),t.redrawResult=i.instance.setElementPosition(t.el,t.pos.x+s.x,t.pos.y+s.y),i.instance.removeClass(t.el,"jtk-dragged"),i.instance.select({source:t.el}).removeClass(i.instance.elementDraggingClass+" "+i.instance.sourceElementDraggingClass,!0),i.instance.select({target:t.el}).removeClass(i.instance.elementDraggingClass+" "+i.instance.targetElementDraggingClass,!0)})),null!=s[0].originalGroup){var a=n._jsPlumbParentGroup;if(a!==s[0].originalGroup){var l=t.drag.getDragElement(!0);if(s[0].originalGroup.ghost){var c=this.instance.getPosition(this.instance.getGroupContentArea(a)),h=this.instance.getPosition(this.instance.getGroupContentArea(s[0].originalGroup)),d={x:h.x+t.pos.x-c.x,y:h.y+t.pos.y-c.y};l.style.left=d.x+"px",l.style.top=d.y+"px",this.instance.revalidate(l)}}}this.instance.fire("drag:stop",{elements:s,e:t.e,el:n,payload:this._dragPayload}),this._cleanup()}},{key:"_cleanup",value:function(){var t=this;Gd(this._groupLocations,(function(e){t.instance.removeClass(e.el,Nm),t.instance.removeClass(e.el,Bm)})),this._currentDragParentGroup=null,this._groupLocations.length=0,this.instance.hoverSuspended=!1,this._dragOffset=null,this._dragSelection.reset(),this._dragPayload=null,this._currentDragGroupOffsets.clear(),this._currentDragGroupSizes.clear(),this._currentDragGroupOriginalPositions.clear(),this._currentDragGroup=null}},{key:"reset",value:function(){}},{key:"init",value:function(t){this.drag=t}},{key:"onDrag",value:function(t){var e=this,i=t.drag.getDragElement(),n=this.instance.getId(i),o=t.pos,s=this.instance.viewport.getPosition(n),r={x:o.x,y:o.y};this._intersectingGroups.length=0,null!=this._dragOffset&&(r.x+=this._dragOffset.x,r.y+=this._dragOffset.y);var a=function(i,n,o){if(o){var s=new Set;Gd(e._groupLocations,(function(i){!s.has(i.group.id)&&lm(n,i.r)?(i.group!==e._currentDragParentGroup&&e.instance.addClass(i.el,Bm),e._intersectingGroups.push({groupLoc:i,intersectingElement:t.drag.getDragElement(!0),d:0}),Gd(e.instance.groupManager.getAncestors(i.group),(function(t){return s.add(t.id)}))):e.instance.removeClass(i.el,Bm)}))}e.instance.setElementPosition(i,n.x,n.y),e.instance.fire("drag:move",{el:i,e:t.e,pos:{x:n.x,y:n.y},originalPosition:e.originalPosition,payload:e._dragPayload})},l={x:r.x,y:r.y,w:s.w,h:s.h};a(i,l,!0),this._dragSelection.updatePositions(o,this.originalPosition,(function(t,e,i,n){a(t,n,!1)})),this._currentDragGroupOffsets.forEach((function(t,i){var n=e._currentDragGroupSizes.get(i),o={x:l.x+t[0].x,y:l.y+t[0].y,w:n.w,h:n.h};t[1].style.left=o.x+"px",t[1].style.top=o.y+"px",a(t[1],o,!1)}))}},{key:"_computeOffsetByParentGroup",value:function(t){var e=this.instance.getPosition(t.el),i=t.contentArea;if(i!==t.el){var n=this.instance.getPosition(i);e.x+=n.x,e.y+=n.y}if(t.el._jsPlumbParentGroup){var o=this._computeOffsetByParentGroup(t.el._jsPlumbParentGroup);e.x+=o.x,e.y+=o.y}return e}},{key:"onStart",value:function(t){var e=this,i=t.drag.getDragElement(),n=this.instance.getPosition(i);this.originalPosition={x:t.pos.x,y:t.pos.y},i._jsPlumbParentGroup&&(this._dragOffset=this._computeOffsetByParentGroup(i._jsPlumbParentGroup),this._currentDragParentGroup=i._jsPlumbParentGroup);var o=!0,s=i.getAttribute(Bu);if((!1===this.instance.elementsDraggable||null!=s&&s!==Pf)&&(o=!1),o){this._groupLocations.length=0,this._intersectingGroups.length=0,this.instance.hoverSuspended=!0;var r=t.drag.getDragElement(!0),a=r.querySelectorAll(ap),l=function(t){for(var e=[],i=t._jsPlumbParentGroup;null!=i;)e.push(i.el),i=i.group;return e}(r),c=[];Array.prototype.push.apply(c,a),Array.prototype.push.apply(c,l),this._dragSelection.filterActiveSet((function(t){return-1===c.indexOf(t.jel)})),this._dragSelection.initialisePositions();var h=function(i,n,o){if(!i._isJsPlumbGroup||e.instance.allowNestedGroups){var s=!i._jsPlumbParentGroup,r=s||!0!==i._jsPlumbParentGroup.dropOverride,a=!s&&(i._jsPlumbParentGroup.ghost||!0!==i._jsPlumbParentGroup.constrain);(s||r&&a)&&(Gd(e.instance.groupManager.getGroups(),(function(t){var n=i._jsPlumbGroup;if(!1!==t.droppable&&!1!==t.enabled&&i._jsPlumbGroup!==t&&!e.instance.groupManager.isDescendant(t,n)){var o=t.el,s=e.instance.getId(o),r=e.instance.viewport.getPosition(s),a={el:o,r:{x:r.x,y:r.y,w:r.w,h:r.h},group:t};e._groupLocations.push(a),t!==e._currentDragParentGroup&&e.instance.addClass(o,Nm)}})),e._groupLocations.sort((function(t,i){return e.instance.groupManager.isDescendant(t.group,i.group)?-1:e.instance.groupManager.isAncestor(i.group,t.group)?1:0})))}return e.instance.select({source:i}).addClass(e.instance.elementDraggingClass+" "+e.instance.sourceElementDraggingClass,!0),e.instance.select({target:i}).addClass(e.instance.elementDraggingClass+" "+e.instance.targetElementDraggingClass,!0),e.instance.fire("drag:start",{el:i,e:t.e,originalPosition:e.originalPosition,pos:e.originalPosition,dragGroup:n,dragGroupMemberSpec:o})},d=this.instance.getId(i);this._currentDragGroup=this._dragGroupByElementIdMap[d],this._currentDragGroup&&!function(t,e){var i=Xd(t.members,(function(t){return t.el===e}));return null!==i&&!0===i.active}(this._currentDragGroup,i)&&(this._currentDragGroup=null);var u=h(i);if(!1===u)return this._cleanup(),!1;this._dragPayload=u,null!=this._currentDragGroup&&(this._currentDragGroupOffsets.clear(),this._currentDragGroupSizes.clear(),this._currentDragGroup.members.forEach((function(t){var i=e.instance.viewport.getPosition(t.elId);e._currentDragGroupOffsets.set(t.elId,[{x:i.x-n.x,y:i.y-n.y},t.el]),e._currentDragGroupSizes.set(t.elId,i),e._currentDragGroupOriginalPositions.set(t.elId,{x:i.x,y:i.y}),h(t.el,e._currentDragGroup,t)})))}return o}},{key:"addToDragGroup",value:function(t){var e=this,i=function(t,e){return Bd(e)?{id:e,active:!0}:{id:e.id,active:e.active}}(this.instance,t),n=this._dragGroupMap[i.id];null==n&&(n={id:i.id,members:new Set},this._dragGroupMap[i.id]=n);for(var o=arguments.length,s=new Array(o>1?o-1:0),r=1;r<o;r++)s[r-1]=arguments[r];this.removeFromDragGroup.apply(this,s),Gd(s,(function(t){var o=e.instance.getId(t);n.members.add({elId:o,el:t,active:i.active}),e._dragGroupByElementIdMap[o]=n}))}},{key:"removeFromDragGroup",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){var i=t.instance.getId(e),n=t._dragGroupByElementIdMap[i];if(null!=n){var o=new Set;n.members.forEach((function(t){t.el!==e&&o.add(t)})),n.members=o,delete t._dragGroupByElementIdMap[i]}}))}},{key:"setDragGroupState",value:function(t){for(var e=this,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];Gd(n.map((function(t){return e.instance.getId(t)})),(function(i){var n=e._dragGroupByElementIdMap[i];if(null!=n){var o=Xd(n.members,(function(t){return t.elId===i}));null!=o&&(o.active=t)}}))}},{key:"clearDragGroup",value:function(t){var e=this,i=this._dragGroupMap[t];null!=i&&(i.members.forEach((function(t){delete e._dragGroupByElementIdMap[t.elId]})),i.members.clear())}},{key:"_pruneOrOrphan",value:function(t,e,i){var n=t.el,o={pruned:!1,pos:null};if(i||!dm(this.instance,n,t.pos)){var s=n._jsPlumbParentGroup;s.prune?(n._isJsPlumbGroup?this.instance.removeGroup(n._jsPlumbGroup):s.remove(t.el,!0),o.pruned=!0):s.orphan&&(o.pos=this.instance.groupManager.orphan(t.el,e),n._isJsPlumbGroup?s.removeGroup(n._jsPlumbGroup):s.remove(t.el))}return o}}]),t}(),Wm={},Gm={},Zm={},Ym={get:function(t,e,i){var n=Wm[e];if(n)return new n(t,i);throw{message:"jsPlumb: unknown endpoint type '"+e+"'"}},clone:function(t){var e=Zm[t.type];return Ym.get(t.endpoint,t.type,e.getParams(t))},compute:function(t,e,i,n){var o=Gm[t.type];if(null!=o)return o(t,e,i,n);cu("jsPlumb: cannot find endpoint calculator for endpoint of type ",t.type)},registerHandler:function(t){Zm[t.type]=t,Wm[t.type]=t.cls,Gm[t.type]=t.compute}},Xm=function(){function t(e,i){wd(this,t),this.endpoint=e,Cd(this,"typeId",void 0),Cd(this,"x",void 0),Cd(this,"y",void 0),Cd(this,"w",void 0),Cd(this,"h",void 0),Cd(this,"computedValue",void 0),Cd(this,"bounds",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"classes",[]),Cd(this,"instance",void 0),Cd(this,"type",void 0),i=i||{},this.instance=e.instance,e.cssClass&&this.classes.push(e.cssClass),i.cssClass&&this.classes.push(i.cssClass)}return Sd(t,[{key:"addClass",value:function(t){this.classes.push(t),this.instance.addEndpointClass(this.endpoint,t)}},{key:"removeClass",value:function(t){this.classes=this.classes.filter((function(e){return e!==t})),this.instance.removeEndpointClass(this.endpoint,t)}},{key:"compute",value:function(t,e,i){this.computedValue=Ym.compute(this,t,e,i),this.bounds.xmin=this.x,this.bounds.ymin=this.y,this.bounds.xmax=this.x+this.w,this.bounds.ymax=this.y+this.h}},{key:"setVisible",value:function(t){this.instance.setEndpointVisible(this.endpoint,t)}}]),t}();!function(t){t.top="top",t.left="left",t.right="right",t.bottom="bottom"}(Hm||(Hm={}));var Km=Hm.top,Qm=Hm.left,Jm=Hm.right,tg=Hm.bottom,eg=[Qm,Jm],ig=[Km,tg],ng=function(){function t(e,i,n){wd(this,t),this.instance=e,this.element=i,Cd(this,"isFloating",!0),Cd(this,"isContinuous",void 0),Cd(this,"isDynamic",void 0),Cd(this,"locations",[]),Cd(this,"currentLocation",0),Cd(this,"locked",!1),Cd(this,"cssClass",""),Cd(this,"timestamp",null),Cd(this,"type","Floating"),Cd(this,"id",su()),Cd(this,"orientation",[0,0]),Cd(this,"size",void 0),this.size=e.viewport.getPosition(n),this.locations.push({x:.5,y:.5,ox:this.orientation[0],oy:this.orientation[1],offx:0,offy:0,iox:this.orientation[0],ioy:this.orientation[1],cls:""})}return Sd(t,[{key:"_updateOrientationInRouter",value:function(){this.instance.router.setAnchorOrientation(this,[this.locations[0].ox,this.locations[0].oy])}},{key:"over",value:function(t){this.orientation=this.instance.router.getEndpointOrientation(t),this.locations[0].ox=this.orientation[0],this.locations[0].oy=this.orientation[1],this._updateOrientationInRouter()}},{key:"out",value:function(){this.orientation=null,this.locations[0].ox=this.locations[0].iox,this.locations[0].oy=this.locations[0].ioy,this._updateOrientationInRouter()}}]),t}(),og=(Cd(Fm={},Km,tg),Cd(Fm,Jm,Qm),Cd(Fm,Qm,Jm),Cd(Fm,tg,Km),Fm),sg=(Cd(qm={},Km,Jm),Cd(qm,Jm,tg),Cd(qm,Qm,Km),Cd(qm,tg,Qm),qm),rg=(Cd(Vm={},Km,Qm),Cd(Vm,Jm,Km),Cd(Vm,Qm,tg),Cd(Vm,tg,Jm),Vm);function ag(t){return 0===t.faces.length?Km:t.faces[0]}function lg(t,e){return-1!==t.faces.indexOf(e)}function cg(t,e){return null==t.lockedAxis?null==t.lockedFace?!0===lg(t,e):t.lockedFace===e:-1!==t.lockedAxis.indexOf(e)}function hg(t,e){if(lg(t,e))return e;if(lg(t,og[e]))return og[e];var i=function(t,e){return(t.clockwise?sg:rg)[e]}(t,e);if(lg(t,i))return i;var n=function(t,e){return(t.clockwise?rg:sg)[e]}(t,e);return lg(t,n)?n:e}var dg={x:.5,y:0,ox:0,oy:-1,offx:0,offy:0},ug={x:.5,y:1,ox:0,oy:1,offx:0,offy:0},pg={x:0,y:.5,ox:-1,oy:0,offx:0,offy:0},fg={x:1,y:.5,ox:1,oy:0,offx:0,offy:0},mg={Top:[dg],Bottom:[ug],Left:[pg],Right:[fg],TopLeft:[{x:0,y:0,ox:0,oy:-1,offx:0,offy:0}],TopRight:[{x:1,y:0,ox:1,oy:-1,offx:0,offy:0}],BottomLeft:[{x:0,y:1,ox:0,oy:1,offx:0,offy:0}],BottomRight:[{x:1,y:1,ox:0,oy:1,offx:0,offy:0}],Center:[{x:.5,y:.5,ox:0,oy:0,offx:0,offy:0}],AutoDefault:[dg,pg,ug,fg]},gg={Continuous:{faces:[Km,Qm,tg,Jm]},ContinuousTop:{faces:[Km]},ContinuousRight:{faces:[Jm]},ContinuousBottom:{faces:[tg]},ContinuousLeft:{faces:[Qm]},ContinuousLeftRight:{faces:[Qm,Jm]},ContinuousTopBottom:{faces:[Km,tg]}};function vg(t,e){if(e=e||{},t===Cp.Perimeter)return function(t){t=t||{};var e=t.anchorCount||60,i=t.shape;if(!i)throw new Error("no shape supplied to Perimeter Anchor type");if(!Cg.has(i))throw new Error("Shape ["+i+"] is unknown by Perimeter Anchor type");var n=Cg.get(i)(e);t.rotation&&(n=function(t,e){for(var i=[],n=e/180*Math.PI,o=0;o<t.length;o++){var s=t[o].x-.5,r=t[o].y-.5;i.push({x:s*Math.cos(n)-r*Math.sin(n)+.5,y:s*Math.sin(n)+r*Math.cos(n)+.5,ox:t[o].ox,oy:t[o].oy,offx:0,offy:0,iox:0,ioy:0,cls:""})}return i}(n,t.rotation));var o=yg(Cp.Perimeter,n,t),s=Rd(o,{shape:i});return s}(e);var i=mg[t];if(null!=i)return yg(t,lu(i,(function(t){return Rd({iox:t.ox,ioy:t.oy},t)})),e);if(null!=(i=gg[t]))return function(t,e,i){var n={type:t,locations:[],currentLocation:0,locked:!1,id:su(),cssClass:i.cssClass||"",isFloating:!1,isContinuous:!0,timestamp:null,faces:i.faces||e,lockedFace:null,lockedAxis:null,clockwise:!(!1===i.clockwise),__currentFace:null};return Object.defineProperty(n,bg,{get:function(){return this.__currentFace},set:function(t){this.__currentFace=hg(this,t)}}),n}(t,i.faces,e);throw{message:"jsPlumb: unknown anchor type '"+t+"'"}}function yg(t,e,i){return{type:t,locations:e,currentLocation:0,locked:!1,id:su(),isFloating:!1,isContinuous:!1,isDynamic:e.length>1,timestamp:null,cssClass:i.cssClass||""}}var bg="currentFace";function xg(t){return t.length<7&&t.every(Nd)||7===t.length&&t.slice(0,5).every(Nd)&&Bd(t[6])}function _g(t){if(Bd(t))return vg(t,null);if(Array.isArray(t)){if(xg(t)){var e=t;return yg(null,[{x:e[0],y:e[1],ox:e[2],oy:e[3],offx:null==e[4]?0:e[4],offy:null==e[5]?0:e[5],iox:e[2],ioy:e[3],cls:e[6]||""}],{cssClass:e[6]||""})}var i=lu(t,(function(t){if(Bd(t)){var e=mg[t];return null!=e?Rd({iox:e[0].ox,ioy:e[0].oy,cls:""},e[0]):null}if(xg(t))return{x:t[0],y:t[1],ox:t[2],oy:t[3],offx:null==t[4]?0:t[4],offy:null==t[5]?0:t[5],iox:t[2],ioy:t[3],cls:t[6]||""}})).filter((function(t){return null!=t}));return yg("Dynamic",i,{})}var n=t;return vg(n.type,n.options)}function wg(t){for(var e=.5,i=2*Math.PI/t,n=[],o=0,s=0;s<t;s++){var r=e+e*Math.sin(o),a=e+e*Math.cos(o);n.push({x:r,y:a,ox:0,oy:0,offx:0,offy:0,iox:0,ioy:0,cls:""}),o+=i}return n}function kg(t,e){for(var i=[],n=0;n<t.length;n++)i.push([t[n][0],t[n][1],t[n][2],t[n][3],1/t.length,t[n][4],t[n][5]]);return function(t,e){for(var i=e/t.length,n=[],o=function(t,o,s,r,a,l,c){for(var h=(s-t)/(i=e*a),d=(r-o)/i,u=0;u<i;u++)n.push({x:t+h*u,y:o+d*u,ox:null==l?0:l,oy:null==c?0:c,offx:0,offy:0,iox:0,ioy:0,cls:""})},s=0;s<t.length;s++)o.apply(null,t[s]);return n}(i,e)}function Sg(t){return kg([[0,0,1,0,0,-1],[1,0,1,1,1,0],[1,1,0,1,0,1],[0,1,0,0,-1,0]],t)}var Cg=new Map;Cg.set(Sp.Circle,wg),Cg.set(Sp.Ellipse,wg),Cg.set(Sp.Rectangle,Sg),Cg.set(Sp.Square,Sg),Cg.set(Sp.Diamond,(function(t){return kg([[.5,0,1,.5],[1,.5,.5,1],[.5,1,0,.5],[0,.5,.5,0]],t)})),Cg.set(Sp.Triangle,(function(t){return kg([[.5,0,1,1],[1,1,0,1],[0,1,.5,0]],t)}));var Eg=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];wd(this,t),this.selector=e,this.def=i,this.exclude=n,Cd(this,"id",void 0),Cd(this,"redrop",void 0),this.id=su(),this.redrop=i.def.redrop||Ag}return Sd(t,[{key:"setEnabled",value:function(t){this.def.enabled=t}},{key:"isEnabled",value:function(){return!1!==this.def.enabled}}]),t}(),Ag="strict";function Mg(t,e,i,n,o,s){var r=function(t,e,i){return new ng(t,e,i)}(s,n,o),a={paintStyle:t.getPaintStyle(),preparedAnchor:r,element:n,scope:t.scope,cssClass:[Uu,t.cssClass].join(" ")};null!=e&&(pu(e,Xm)?a.existingEndpoint=e:a.endpoint=e);var l=s._internal_newEndpoint(a);return s._paintEndpoint(l,{}),l}function Tg(t,e,i,n,o){for(var s=t.target||t.srcElement,r=!1,a=n.getSelector(e,i),l=0;l<a.length;l++)if(a[l]===s){r=!0;break}return o?!r:r}var Pg=Tu(Nm,Bm),Og="sourceSelectorEndpoint",Dg=function(){function t(e){wd(this,t),this.instance=e,Cd(this,"jpc",void 0),Cd(this,"existingJpc",void 0),Cd(this,"_originalAnchorSpec",void 0),Cd(this,"ep",void 0),Cd(this,"endpointRepresentation",void 0),Cd(this,"canvasElement",void 0),Cd(this,"_activeDefinition",void 0),Cd(this,"placeholderInfo",{id:null,element:null}),Cd(this,"floatingIndex",void 0),Cd(this,"floatingId",void 0),Cd(this,"floatingElement",void 0),Cd(this,"floatingEndpoint",void 0),Cd(this,"floatingAnchor",void 0),Cd(this,"_stopped",void 0),Cd(this,"inPlaceCopy",void 0),Cd(this,"endpointDropTargets",[]),Cd(this,"currentDropTarget",null),Cd(this,"payload",void 0),Cd(this,"floatingConnections",{}),Cd(this,"_forceReattach",void 0),Cd(this,"_forceDetach",void 0),Cd(this,"mousedownHandler",void 0),Cd(this,"mouseupHandler",void 0),Cd(this,"selector",Tu(Hu));var i=e.getContainer();this.mousedownHandler=this._mousedownHandler.bind(this),this.mouseupHandler=this._mouseupHandler.bind(this),e.on(i,zp,ap,this.mousedownHandler),e.on(i,jp,[ap,Tu(Hu)].join(","),this.mouseupHandler)}return Sd(t,[{key:"_resolveDragParent",value:function(t,e){var i=this.instance.getContainer(),n=gu(e,ap,i,!0);if(null!=t.parentSelector){var o=gu(e,t.parentSelector,i,!0);return null!=o&&(n=gu(o.parentNode,ap,i,!1)),o||n}return n}},{key:"_mousedownHandler",value:function(t){var e,i;if(3!==t.which&&2!==t.button){var n=t.target||t.srcElement;if((null==(i=this._getSourceDefinition(t))||null!=(e=this._resolveDragParent(i.def.def,n))&&e.getAttribute(Ap)!==Pf)&&i){var o,s=t.currentTarget;if(n.getAttribute(Ap)!==Pf){if(mu(t),this._activeDefinition=i,null!=(o=i.def.def).canAcceptNewConnection&&!o.canAcceptNewConnection(e,t))return!1;var r=ty(t,e,this.instance.currentZoom),a={element:e};if(Rd(a,o),a.isTemporarySource=!0,o.scope)a.scope=o.scope;else{var l=n.getAttribute(Mp);null!=l&&(a.scope=l)}if(null!=(a=Hd(a,o.parameterExtractor?o.parameterExtractor(e,n,t):{})).maxConnections&&a.maxConnections>=0)if(this.instance.select({source:e}).length>=a.maxConnections)return mu(t),o.onMaxConnections&&o.onMaxConnections({element:e,maxConnections:a.maxConnections},t),t.stopImmediatePropagation&&t.stopImmediatePropagation(),!1;if(o.anchorPositionFinder){var c=o.anchorPositionFinder(e,r,o,t);null!=c&&(a.anchor=c)}this._originalAnchorSpec=a.anchor||(this.instance.areDefaultAnchorsSet()?this.instance.defaults.anchors[0]:this.instance.defaults.anchor);var h=this.instance.router.prepareAnchor(this._originalAnchorSpec),d=[r.x,r.y,0,0];if(h.locations.length>0)d[2]=h.locations[0].ox,d[3]=h.locations[0].oy;else if(h.isContinuous){var u=r.x<.5?r.x:1-r.x,p=r.y<.5?r.y:1-r.y;d[2]=u<p?r.x<.5?-1:1:0,d[3]=p<u?r.y<.5?-1:1:0}a.anchor=d,a.deleteOnEmpty=!0,this.ep=this.instance._internal_newEndpoint(a);var f={};if(o.extract){for(var m in o.extract){var g=n.getAttribute(m);g&&(f[o.extract[m]]=g)}this.ep.mergeParameters(f)}if(a.uniqueEndpoint){var v=this.ep.elementId,y=this.instance.getManagedData(v,Og,i.id);null==y?(this.instance.setManagedData(v,Og,i.id,this.ep),this.ep.deleteOnEmpty=!1):this.ep.finalEndpoint=y}s._jsPlumbOrphanedEndpoints=s._jsPlumbOrphanedEndpoints||[],s._jsPlumbOrphanedEndpoints.push(this.ep),this.instance.trigger(this.ep.endpoint.canvas,zp,t,f)}}}}},{key:"_mouseupHandler",value:function(t){var e=t.currentTarget||t.srcElement;e._jsPlumbOrphanedEndpoints&&(!function(t,e){t=null==t.length||"string"==typeof t?[t]:t;for(var i=0;i<t.length;i++)e(t[i])}(e._jsPlumbOrphanedEndpoints,this.instance._maybePruneEndpoint.bind(this.instance)),e._jsPlumbOrphanedEndpoints.length=0),this._activeDefinition=null}},{key:"onDragInit",value:function(t){var e=Eu(t,this.instance),i=Au(t,this.instance);return this._makeDraggablePlaceholder(e,i),this.placeholderInfo.element.jtk=t.jtk,this.placeholderInfo.element}},{key:"onDragAbort",value:function(t){this._cleanupDraggablePlaceholder()}},{key:"_makeDraggablePlaceholder",value:function(t,e){this.placeholderInfo=this.placeholderInfo||{};var i=ku("div",{position:"absolute"});this.instance._appendElementToContainer(i);var n=this.instance.getId(i);return this.instance.setPosition(i,t),i.style.width=e.w+"px",i.style.height=e.h+"px",this.instance.manage(i),this.placeholderInfo.id=n,this.placeholderInfo.element=i,i}},{key:"_cleanupDraggablePlaceholder",value:function(){this.placeholderInfo.element&&(this.instance.unmanage(this.placeholderInfo.element,!0),delete this.placeholderInfo.element,delete this.placeholderInfo.id)}},{key:"reset",value:function(){var t=this.instance.getContainer();this.instance.off(t,jp,this.mouseupHandler),this.instance.off(t,zp,this.mousedownHandler)}},{key:"init",value:function(t){}},{key:"startNewConnectionDrag",value:function(t,e){this.jpc=this.instance._newConnection({sourceEndpoint:this.ep,targetEndpoint:this.floatingEndpoint,source:this.ep.element,target:this.placeholderInfo.element,paintStyle:this.ep.connectorStyle,hoverPaintStyle:this.ep.connectorHoverStyle,connector:this.ep.connector,overlays:this.ep.connectorOverlays,type:this.ep.edgeType,cssClass:this.ep.connectorClass,hoverClass:this.ep.connectorHoverClass,scope:t,data:e}),this.jpc.pending=!0,this.jpc.addClass(this.instance.draggingClass),this.ep.addClass(this.instance.draggingClass),this.instance.fire(Up,this.jpc)}},{key:"startExistingConnectionDrag",value:function(){this.existingJpc=!0,this.instance.setHover(this.jpc,!1);var t=this.jpc.endpoints[0].id===this.ep.id?0:1;this.ep.detachFromConnection(this.jpc,null,!0),this.floatingEndpoint.addConnection(this.jpc),this.instance.fire(Up,this.jpc),this.instance.sourceOrTargetChanged(this.jpc.endpoints[t].elementId,this.placeholderInfo.id,this.jpc,this.placeholderInfo.element,t),this.jpc.suspendedEndpoint=this.jpc.endpoints[t],this.jpc.suspendedElement=this.jpc.endpoints[t].element,this.jpc.suspendedElementId=this.jpc.endpoints[t].elementId,this.jpc.suspendedElementType=0===t?Ou:Du,this.instance.setHover(this.jpc.suspendedEndpoint,!1),this.floatingEndpoint.referenceEndpoint=this.jpc.suspendedEndpoint,this.floatingEndpoint.mergeParameters(this.jpc.suspendedEndpoint.parameters),this.jpc.endpoints[t]=this.floatingEndpoint,this.jpc.addClass(this.instance.draggingClass),this.floatingId=this.placeholderInfo.id,this.floatingIndex=t,this.instance._refreshEndpoint(this.ep)}},{key:"_shouldStartDrag",value:function(){var t=!0;this.ep.enabled||(t=!1),null!=this.jpc||this.ep.isSource||this.ep.isTemporarySource||(t=!1),!this.ep.isSource||!this.ep.isFull()||null!=this.jpc&&this.ep.dragAllowedWhenFull||(t=!1),null==this.jpc||this.jpc.isDetachable(this.ep)||(this.ep.isFull()?t=!1:this.jpc=null);var e={},i=this.instance.checkCondition(null==this.jpc?"beforeDrag":"beforeStartDetach",{endpoint:this.ep,source:this.ep.element,sourceId:this.ep.elementId,connection:this.jpc});return!1===i?t=!1:"object"===_d(i)?Rd(e=i,this.payload||{}):e=this.payload||{},[t,e]}},{key:"_createFloatingEndpoint",value:function(t){var e=this.ep.endpoint;null!=this.ep.edgeType&&(e=this.instance._deriveEndpointAndAnchorSpec(this.ep.edgeType).endpoints[1]);this.floatingEndpoint=Mg(this.ep,e,0,this.placeholderInfo.element,this.placeholderInfo.id,this.instance),this.floatingAnchor=this.floatingEndpoint._anchor,this.floatingEndpoint.deleteOnEmpty=!0,this.floatingElement=this.floatingEndpoint.endpoint.canvas,this.floatingId=this.instance.getId(this.floatingElement)}},{key:"_populateTargets",value:function(t,e){var i,n=this,o=this.jpc&&this.jpc.endpoints[0]===this.ep;if(Gd(this.instance.getContainer().querySelectorAll([".",Hu,"[",Fu,this.ep.scope,"]:not(.",Uu,")"].join("")),(function(e){if(!(null==n.jpc&&e===t||e===n.floatingElement||null==n.jpc&&e.jtk.endpoint.isFull())&&(o&&e.jtk.endpoint.isSource||!o&&e.jtk.endpoint.isTarget)){var s=Eu(e,n.instance),r=Au(e,n.instance);i={x:s.x,y:s.y,w:r.w,h:r.h},n.endpointDropTargets.push({el:e,targetEl:e,r:i,endpoint:e.jtk.endpoint,def:null}),n.instance.addClass(e,Nm)}})),o){var s=Yd(this.instance.sourceSelectors,(function(t){return t.isEnabled()&&(null==t.def.def.scope||t.def.def.scope===n.ep.scope)}));if(null!=s)Gd(this._findTargetZones(s),(function(t){if(t.getAttribute(Ap)!==Pf){var e=t.getAttribute(Mp);if(null!=e&&e!==n.ep.scope)return;var i={r:null,el:t};i.targetEl=gu(t,ap,n.instance.getContainer(),!0);var o=Eu(i.el,n.instance),r=Au(i.el,n.instance);i.r={x:o.x,y:o.y,w:r.w,h:r.h},null!=s.def.def.rank&&(i.rank=s.def.def.rank),i.def=s.def,n.endpointDropTargets.push(i),n.instance.addClass(i.targetEl,Nm)}}))}else{var r=function(t,e){var i=function(t,e){var i=[];if(t)for(var n=0;n<t.length;n++)e(t[n])&&i.push(n);return i}(t,e);return i.map((function(e){return t[e]}))}(this.instance.targetSelectors,(function(t){return t.isEnabled()}));r.forEach((function(t){Gd(n._findTargetZones(t),(function(i){if(i.getAttribute(Ap)!==Pf){var o=i.getAttribute(Mp);if(null!=o&&o!==n.ep.scope)return;var s={r:null,el:i};if(null!=t.def.def.parentSelector&&(s.targetEl=gu(i,t.def.def.parentSelector,n.instance.getContainer(),!0)),null==s.targetEl&&(s.targetEl=gu(i,ap,n.instance.getContainer(),!0)),(!1===t.def.def.allowLoopback||n._activeDefinition&&!1===n._activeDefinition.def.def.allowLoopback)&&s.targetEl===n.ep.element)return;if(null!=t.def.def.canAcceptNewConnection&&!t.def.def.canAcceptNewConnection(s.targetEl,e))return;var r=t.def.def.maxConnections;if(null!=r&&-1!==r&&n.instance.select({target:s.targetEl}).length>=r)return;var a=Eu(i,n.instance),l=Au(i,n.instance);s.r={x:a.x,y:a.y,w:l.w,h:l.h},s.def=t.def,null!=t.def.def.rank&&(s.rank=t.def.def.rank),n.endpointDropTargets.push(s),n.instance.addClass(s.targetEl,Nm)}}))}))}this.endpointDropTargets.sort((function(t,e){if(t.targetEl._isJsPlumbGroup&&!e.targetEl._isJsPlumbGroup)return 1;if(!t.targetEl._isJsPlumbGroup&&e.targetEl._isJsPlumbGroup)return-1;if(t.targetEl._isJsPlumbGroup&&e.targetEl._isJsPlumbGroup){if(n.instance.groupManager.isAncestor(t.targetEl._jsPlumbGroup,e.targetEl._jsPlumbGroup))return-1;if(n.instance.groupManager.isAncestor(e.targetEl._jsPlumbGroup,t.targetEl._jsPlumbGroup))return 1}else{if(null==t.rank||null==e.rank)return 0;if(t.rank>e.rank)return-1;if(t.rank<e.rank)return 1}}))}},{key:"_findTargetZones",value:function(t){var e;if("any"===t.redrop){var i=this.instance.targetSelectors.map((function(t){return t.selector}));i.push.apply(i,Id(this.instance.sourceSelectors.map((function(t){return t.selector})))),i.push(ap),e=i.join(",")}else if(t.redrop===Ag)e=t.selector;else if("anySource"===t.redrop)e=this.instance.sourceSelectors.map((function(t){return t.selector})).join(",");else if("anyTarget"===t.redrop)e=this.instance.targetSelectors.map((function(t){return t.selector})).join(",");else if("anySourceOrTarget"===t.redrop){var n=this.instance.targetSelectors.map((function(t){return t.selector}));n.push.apply(n,Id(this.instance.sourceSelectors.map((function(t){return t.selector})))),e=n.join(",")}return this.instance.getContainer().querySelectorAll(e)}},{key:"onStart",value:function(t){this.endpointDropTargets.length=0,this.currentDropTarget=null,this._stopped=!1;var e=t.drag.getDragElement();if(this.ep=e.jtk.endpoint,!this.ep)return!1;this.endpointRepresentation=this.ep.endpoint,this.canvasElement=this.endpointRepresentation.canvas,this.jpc=this.ep.connectorSelector();var i=Dd(this._shouldStartDrag(),2),n=i[0],o=i[1];if(!1===n)return this._stopped=!0,!1;this.instance.setHover(this.ep,!1),this.instance.isConnectionBeingDragged=!0,this.jpc&&!this.ep.isFull()&&this.ep.isSource&&(this.jpc=null),this._createFloatingEndpoint(this.canvasElement),this._populateTargets(this.canvasElement,t.e),null==this.jpc?this.startNewConnectionDrag(this.ep.scope,o):this.startExistingConnectionDrag(),this._registerFloatingConnection(this.placeholderInfo,this.jpc),this.instance.currentlyDragging=!0}},{key:"onBeforeStart",value:function(t){this.payload=t.e.payload||{}}},{key:"onDrag",value:function(t){if(this._stopped)return!0;if(this.placeholderInfo.element){var e=Au(this.floatingElement,this.instance);this.instance.setElementPosition(this.placeholderInfo.element,t.pos.x,t.pos.y);for(var i,n,o={x:t.pos.x,y:t.pos.y,w:e.w,h:e.h},s=0;s<this.endpointDropTargets.length;s++)if(lm(o,this.endpointDropTargets[s].r)){i=this.endpointDropTargets[s];break}if(i!==this.currentDropTarget&&null!=this.currentDropTarget&&(n=this._getFloatingAnchorIndex(),this.instance.removeClass(this.currentDropTarget.el,Bm),this.currentDropTarget.endpoint&&(this.currentDropTarget.endpoint.endpoint.removeClass(this.instance.endpointDropAllowedClass),this.currentDropTarget.endpoint.endpoint.removeClass(this.instance.endpointDropForbiddenClass)),this.floatingAnchor.out()),null!=i)if(this.instance.addClass(i.el,Bm),n=this._getFloatingAnchorIndex(),null!=i.endpoint)if(i.endpoint.isSource&&0===n||i.endpoint.isTarget&&0!==n||this.jpc.suspendedEndpoint&&i.endpoint.referenceEndpoint&&i.endpoint.referenceEndpoint.id===this.jpc.suspendedEndpoint.id)this.instance.checkCondition("checkDropAllowed",{sourceEndpoint:this.jpc.endpoints[n],targetEndpoint:i.endpoint.endpoint,connection:this.jpc})?(i.endpoint.endpoint.addClass(this.instance.endpointDropAllowedClass),i.endpoint.endpoint.removeClass(this.instance.endpointDropForbiddenClass)):(i.endpoint.endpoint.removeClass(this.instance.endpointDropAllowedClass),i.endpoint.endpoint.addClass(this.instance.endpointDropForbiddenClass)),this.floatingAnchor.over(i.endpoint),this.instance._paintConnection(this.jpc);else i=null;this.currentDropTarget=i}}},{key:"_maybeCleanup",value:function(t){t._mtNew&&0===t.connections.length?this.instance.deleteEndpoint(t):delete t._mtNew}},{key:"_reattachOrDiscard",value:function(t){var e=null!=this.jpc.suspendedEndpoint,i=this._getFloatingAnchorIndex();return e&&this._shouldReattach()?(0===i?(this.jpc.source=this.jpc.suspendedElement,this.jpc.sourceId=this.jpc.suspendedElementId):(this.jpc.target=this.jpc.suspendedElement,this.jpc.targetId=this.jpc.suspendedElementId),this._doForceReattach(i),!0):(this._discard(i,t),!1)}},{key:"onStop",value:function(t){var e=this,i=t.e;this.instance.isConnectionBeingDragged=!1,this.instance.currentlyDragging=!1;var n=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.join(" ")}(Bm,Nm);if(Gd(this.instance.getContainer().querySelectorAll(Pg),(function(t){e.instance.removeClass(t,n)})),this.jpc&&null!=this.jpc.endpoints){var o,s=null!=this.jpc.suspendedEndpoint,r=this._getFloatingAnchorIndex(),a=this.jpc.suspendedEndpoint;if(null!=this.currentDropTarget)if(null==(o=this._getDropEndpoint(t,this.jpc)))this._reattachOrDiscard(t.e);else if(a&&a.id===o.id)this._doForceReattach(r);else if(o.enabled)if(o.isFull())o.fire(ep,{endpoint:this,connection:this.jpc,maxConnections:this.instance.defaults.maxConnections},i),this._reattachOrDiscard(t.e);else{0===r?(this.jpc.source=o.element,this.jpc.sourceId=o.elementId):(this.jpc.target=o.element,this.jpc.targetId=o.elementId);var l=!0;s&&this.jpc.suspendedEndpoint.id!==o.id&&(this.jpc.isDetachAllowed(this.jpc)&&this.jpc.endpoints[r].isDetachAllowed(this.jpc)&&this.jpc.suspendedEndpoint.isDetachAllowed(this.jpc)&&this.instance.checkCondition("beforeDetach",this.jpc)||(l=!1)),(l=l&&o.isDropAllowed(this.jpc.sourceId,this.jpc.targetId,this.jpc.scope,this.jpc,o))?this._drop(o,r,i,l):this._reattachOrDiscard(t.e)}else this._reattachOrDiscard(t.e);else this._reattachOrDiscard(t.e);this.instance._refreshEndpoint(this.ep),this.ep.removeClass(this.instance.draggingClass),this._cleanupDraggablePlaceholder(),this.jpc.removeClass(this.instance.draggingClass),delete this.jpc.suspendedEndpoint,delete this.jpc.suspendedElement,delete this.jpc.suspendedElementType,delete this.jpc.suspendedElementId,delete this.jpc.suspendedIndex,delete this.floatingId,delete this.floatingIndex,delete this.floatingElement,delete this.floatingEndpoint,delete this.floatingAnchor,delete this.jpc.pending,null!=o&&this._maybeCleanup(o)}}},{key:"_getSourceDefinition",value:function(t){for(var e,i=this.instance.getContainer(),n=0;n<this.instance.sourceSelectors.length;n++){if((e=this.instance.sourceSelectors[n]).isEnabled())if(!1!==Tg(t,i,e.selector,this.instance,e.exclude))return e}}},{key:"_getDropEndpoint",value:function(t,e){var i;if(null==this.currentDropTarget.endpoint){var n=this.currentDropTarget.def,o=t.e.target||t.e.srcElement;if(null==n)return null;var s=this.currentDropTarget.targetEl,r=ty(t.e,s,this.instance.currentZoom),a=this.instance._deriveEndpointAndAnchorSpec(e.getType().join(" "),!0),l=a.endpoints?Rd(t,{endpoint:n.def.endpoint||a.endpoints[1],cssClass:n.def.cssClass||"",source:!0===n.def.source,target:!0===n.def.target}):t,c=this.instance.validAnchorsSpec(a.anchors)?a.anchors:this.instance.areDefaultAnchorsSet()?this.instance.defaults.anchors:null,h=n.def.anchor,d=n.def.anchorPositionFinder?n.def.anchorPositionFinder(s,r,n.def,t.e):null,u=null!=d?d:null!=h?h:null!=c&&null!=c[1]?c[1]:null;if(null!=u&&(l=Rd(l,{anchor:u})),null!=n.def.portId&&(l.portId=n.def.portId),(l=Hd(l,n.def.parameterExtractor?n.def.parameterExtractor(this.currentDropTarget.el,o,t.e):{})).element=s,(i=this.instance._internal_newEndpoint(l))._mtNew=!0,i.deleteOnEmpty=!0,n.def.parameters&&i.mergeParameters(n.def.parameters),n.def.extract){var p={};for(var f in n.def.extract){var m=this.currentDropTarget.el.getAttribute(f);m&&(p[n.def.extract[f]]=m)}i.mergeParameters(p)}}else i=this.currentDropTarget.endpoint;return i&&(i.removeClass(this.instance.endpointDropAllowedClass),i.removeClass(this.instance.endpointDropForbiddenClass)),i}},{key:"_doForceReattach",value:function(t){this.floatingEndpoint.detachFromConnection(this.jpc,null,!0),this.jpc.endpoints[t]=this.jpc.suspendedEndpoint,this.instance.setHover(this.jpc,!1),this.jpc._forceDetach=!0,this.jpc.suspendedEndpoint.addConnection(this.jpc),this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.suspendedEndpoint.elementId,this.jpc,this.jpc.suspendedEndpoint.element,t),this.instance.deleteEndpoint(this.floatingEndpoint),this.instance.repaint(this.jpc.source),delete this.jpc._forceDetach}},{key:"_shouldReattach",value:function(){if(this.jpc.isReattach()||this.jpc._forceReattach)return!0;var t=this.jpc.suspendedEndpoint,e=this.jpc.suspendedElementType==Ou?1:0,i=this.jpc.endpoints[e];return!Ud(!0,!1,[[t,op,[this.jpc]],[i,op,[this.jpc]],[this.jpc,op,[this.jpc]],[this.instance,qu,[rp,this.jpc]]])}},{key:"_discard",value:function(t,e){this.jpc.pending?this.instance.fire("connection:abort",this.jpc,e):(0===t?(this.jpc.source=this.jpc.suspendedEndpoint.element,this.jpc.sourceId=this.jpc.suspendedEndpoint.elementId):(this.jpc.target=this.jpc.suspendedEndpoint.element,this.jpc.targetId=this.jpc.suspendedEndpoint.elementId),this.jpc.endpoints[t]=this.jpc.suspendedEndpoint),this.floatingEndpoint&&this.floatingEndpoint.detachFromConnection(this.jpc),this.instance.deleteConnection(this.jpc,{originalEvent:e,force:!0})}},{key:"_drop",value:function(t,e,i,n){if(this.jpc.endpoints[e].detachFromConnection(this.jpc),this.jpc.suspendedEndpoint&&this.jpc.suspendedEndpoint.detachFromConnection(this.jpc),this.jpc.endpoints[e]=t,t.addConnection(this.jpc),this.jpc.suspendedEndpoint){var o=this.jpc.suspendedEndpoint.elementId;this.instance.fireMoveEvent({index:e,originalSourceId:0===e?o:this.jpc.sourceId,newSourceId:0===e?t.elementId:this.jpc.sourceId,originalTargetId:1===e?o:this.jpc.targetId,newTargetId:1===e?t.elementId:this.jpc.targetId,originalEndpoint:this.jpc.suspendedEndpoint,connection:this.jpc,newEndpoint:t},i)}(1===e?this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.targetId,this.jpc,this.jpc.target,1):this.instance.sourceOrTargetChanged(this.floatingId,this.jpc.sourceId,this.jpc,this.jpc.source,0),this.jpc.endpoints[0].finalEndpoint)&&(this.jpc.endpoints[0].detachFromConnection(this.jpc),this.jpc.endpoints[0]=this.jpc.endpoints[0].finalEndpoint,this.jpc.endpoints[0].addConnection(this.jpc));Fd(n)&&this.jpc.mergeData(n),this._originalAnchorSpec&&(this.jpc.endpoints[0].setAnchor(this._originalAnchorSpec),this._originalAnchorSpec=null),this.instance._finaliseConnection(this.jpc,null,i),this.instance.setHover(this.jpc,!1),this.instance.revalidate(this.jpc.endpoints[0].element)}},{key:"_registerFloatingConnection",value:function(t,e){this.floatingConnections[t.id]=e}},{key:"_getFloatingAnchorIndex",value:function(){return null==this.floatingIndex?1:this.floatingIndex}}]),t}(),Ig=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).instance=t,o.dragSelection=n,Cd(Td(o),"selector",[">",_f,ap].join(" ")),Cd(Td(o),"doRevalidate",void 0),o.doRevalidate=o._revalidate.bind(Td(o)),o}return Sd(i,[{key:"reset",value:function(){this.drag.off(Hp,this.doRevalidate)}},{key:"_revalidate",value:function(t){this.instance.revalidate(t)}},{key:"init",value:function(t){this.drag=t,t.on(Hp,this.doRevalidate)}},{key:"useGhostProxy",value:function(t,e){var i=e._jsPlumbParentGroup;return null!=i&&!0===i.ghost}},{key:"makeGhostProxy",value:function(t){var e=t,i=e.cloneNode(!0);return i._jsPlumbParentGroup=e._jsPlumbParentGroup,i}}]),i}(Um),Lg=function(){function t(e,i){wd(this,t),this.instance=e,this.overlay=i,Cd(this,"htmlElementOverlay",void 0),this.htmlElementOverlay=i}return Sd(t,null,[{key:"getElement",value:function(t,e,i){if(null==t.canvas){if(i&&e){t.canvas=i(e);var n=t.instance.overlayClass+" "+(t.cssClass?t.cssClass:"");t.instance.addClass(t.canvas,n)}else t.canvas=ku("div",{},t.instance.overlayClass+" "+(t.cssClass?t.cssClass:""));for(var o in t.instance.setAttribute(t.canvas,"jtk-overlay-id",t.id),t.attributes)t.instance.setAttribute(t.canvas,o,t.attributes[o]);t.canvas.style.position=$u,t.instance._appendElement(t.canvas,t.instance.getContainer()),t.instance.getId(t.canvas);var s="translate(-50%, -50%)";t.canvas.style.webkitTransform=s,t.canvas.style.mozTransform=s,t.canvas.style.msTransform=s,t.canvas.style.oTransform=s,t.canvas.style.transform=s,t.isVisible()||(t.canvas.style.display=Lu),t.canvas.jtk={overlay:t}}return t.canvas}},{key:"destroy",value:function(t){t.canvas&&t.canvas.parentNode&&t.canvas.parentNode.removeChild(t.canvas),delete t.canvas,delete t.cachedDimensions}},{key:"_getDimensions",value:function(t,e){return(null==t.cachedDimensions||e)&&(t.cachedDimensions={w:1,h:1}),t.cachedDimensions}}]),t}(),$g=function(){function t(){wd(this,t),Cd(this,"_listeners",{}),Cd(this,"eventsSuspended",!1),Cd(this,"tick",!1),Cd(this,"eventsToDieOn",{ready:!0}),Cd(this,"queue",[])}return Sd(t,[{key:"fire",value:function(t,e,i){var n=null;if(this.tick)this.queue.unshift(arguments);else{if(this.tick=!0,!this.eventsSuspended&&this._listeners[t]){var o=this._listeners[t].length,s=0,r=!1;if(!this.shouldFireEvent||this.shouldFireEvent(t,e,i))for(;!r&&s<o&&!1!==n;){if(this.eventsToDieOn[t])this._listeners[t][s](e,i);else try{n=this._listeners[t][s](e,i)}catch(e){cu("jsPlumb: fire failed for event "+t+" : "+(e.message||e))}s++,null!=this._listeners&&null!=this._listeners[t]||(r=!0)}}this.tick=!1,this._drain()}return n}},{key:"_drain",value:function(){var t=this.queue.pop();t&&this.fire.apply(this,t)}},{key:"unbind",value:function(t,e){if(0===arguments.length)this._listeners={};else if(1===arguments.length){if("string"==typeof t)delete this._listeners[t];else if(t.__jsPlumb){var i;for(var n in t.__jsPlumb)i=t.__jsPlumb[n],Jd(this._listeners[i]||[],t)}}else 2===arguments.length&&Jd(this._listeners[t]||[],e);return this}},{key:"getListener",value:function(t){return this._listeners[t]||[]}},{key:"isSuspendEvents",value:function(){return this.eventsSuspended}},{key:"setSuspendEvents",value:function(t){this.eventsSuspended=t}},{key:"bind",value:function(t,e,i){var n=this,o=function(t){tu(n._listeners,t,e,i),e.__jsPlumb=e.__jsPlumb||{},e.__jsPlumb[su()]=t};if("string"==typeof t)o(t);else if(null!=t.length)for(var s=0;s<t.length;s++)o(t[s]);return this}},{key:"silently",value:function(t){this.setSuspendEvents(!0);try{t()}catch(t){cu("Cannot execute silent function "+t)}this.setSuspendEvents(!1)}}]),t}();function zg(t){var e=null;return(e=Bd(t)?{type:t,options:{}}:t).options.id=e.options.id||su(),e}!function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}Sd(i,[{key:"shouldFireEvent",value:function(t,e,i){return!0}}])}($g);var Rg=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;for(var r in wd(this,i),(s=e.call(this)).instance=t,s.component=n,Cd(Td(s),"id",void 0),Cd(Td(s),"type",void 0),Cd(Td(s),"cssClass",void 0),Cd(Td(s),"visible",!0),Cd(Td(s),"location",void 0),Cd(Td(s),"events",void 0),Cd(Td(s),"attributes",void 0),o=o||{},s.id=o.id||su(),s.cssClass=o.cssClass||"",s.setLocation(o.location),s.events=o.events||{},s.attributes=o.attributes||{},s.events)s.bind(r,s.events[r]);return s}return Sd(i,[{key:"setLocation",value:function(t){var e=null==this.location?.5:this.location;if(null!=t)try{var i="string"==typeof t?parseFloat(t):t;isNaN(i)||(e=i)}catch(t){}this.location=e}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"setVisible",value:function(t){this.visible=t,this.instance.setOverlayVisible(this,t)}},{key:"isVisible",value:function(){return this.visible}}]),i}($g),Ng={},Bg=function(t,e,i,n){var o=Ng[e];if(o)return new o(t,i,n);throw{message:"jsPlumb: unknown overlay type '"+e+"'"}},jg=function(t,e){Ng[t]=e},Fg=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"label",void 0),Cd(Td(s),"labelText",void 0),Cd(Td(s),"type",i.type),Cd(Td(s),"cachedDimensions",void 0),o=o||{label:""},s.setLabel(o.label),s}return Sd(i,[{key:"getLabel",value:function(){return qd(this.label)?this.label(this):this.labelText}},{key:"setLabel",value:function(t){this.label=t,this.labelText=null,this.instance.updateLabel(this)}},{key:"getDimensions",value:function(){return{w:1,h:1}}},{key:"updateFrom",value:function(t){null!=t.label&&this.setLabel(t.label),null!=t.location&&(this.setLocation(t.location),this.instance.updateLabel(this))}}]),i}(Rg);function qg(t){return t.type===Fg.type}function Vg(t){return null==t?null:t.split(" ").filter((function(t){return null!=t&&t.length>0}))}function Hg(t,e,i){for(var n in e)t[n]=i}Cd(Fg,"type","Label"),jg(Fg.type,Fg);var Ug="__default",Wg="__label",Gg="overlay",Zg="remove";function Yg(t,e){if(t.getDefaultType){var i=t.getTypeDescriptor(),n={},o=t.getDefaultType(),s=Rd({},o);Hg(n,o,Ug),t._types.forEach((function(e){if(e!==Ug){var o=t.instance.getType(e,i);if(null!=o){var r=new Set(["connector","anchor","anchors"]);if("override"===o.mergeStrategy)for(var a in o)r.add(a);s=Hd(s,o,["cssClass"],function(t){var e=[];return t.forEach((function(t){e.push(t)})),e}(r)),Hg(n,o,e)}}})),e&&(s=Wd(s,e,"_")),t.applyType(s,n)}}function Xg(t,e){var i=t.instance.getType(e,t.getTypeDescriptor());null!=i&&i.cssClass&&t.removeClass(i.cssClass)}function Kg(t){if(t.paintStyle&&t.hoverPaintStyle){var e={};Rd(e,t.paintStyle),Rd(e,t.hoverPaintStyle),t.hoverPaintStyle=e}}var Qg=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;if(wd(this,i),(o=e.call(this)).instance=t,Cd(Td(o),"defaultLabelLocation",.5),Cd(Td(o),"overlays",{}),Cd(Td(o),"overlayPositions",{}),Cd(Td(o),"overlayPlacements",{}),Cd(Td(o),"clone",void 0),Cd(Td(o),"deleted",void 0),Cd(Td(o),"segment",void 0),Cd(Td(o),"x",void 0),Cd(Td(o),"y",void 0),Cd(Td(o),"w",void 0),Cd(Td(o),"h",void 0),Cd(Td(o),"id",void 0),Cd(Td(o),"visible",!0),Cd(Td(o),"typeId",void 0),Cd(Td(o),"params",{}),Cd(Td(o),"paintStyle",void 0),Cd(Td(o),"hoverPaintStyle",void 0),Cd(Td(o),"paintStyleInUse",void 0),Cd(Td(o),"_hover",!1),Cd(Td(o),"lastPaintedAt",void 0),Cd(Td(o),"data",void 0),Cd(Td(o),"_defaultType",void 0),Cd(Td(o),"events",void 0),Cd(Td(o),"parameters",void 0),Cd(Td(o),"_types",void 0),Cd(Td(o),"_typeCache",void 0),Cd(Td(o),"cssClass",void 0),Cd(Td(o),"hoverClass",void 0),Cd(Td(o),"beforeDetach",void 0),Cd(Td(o),"beforeDrop",void 0),n=n||{},o.cssClass=n.cssClass||"",o.hoverClass=n.hoverClass||t.defaults.hoverClass,o.beforeDetach=n.beforeDetach,o.beforeDrop=n.beforeDrop,o._types=new Set,o._typeCache={},o.parameters=Vd(n.parameters||{}),o.id=n.id||o.getIdPrefix()+(new Date).getTime(),o._defaultType={parameters:o.parameters,scope:n.scope||o.instance.defaultScope,overlays:{}},n.events)for(var s in n.events)o.bind(s,n.events[s]);o.clone=function(){var e=Object.create(o.constructor.prototype);return o.constructor.apply(e,[t,n]),e},o.overlays={},o.overlayPositions={};var r=n.overlays||[],a={},l=o.getDefaultOverlayKey();if(l){var c=o.instance.defaults[l];c&&r.push.apply(r,Id(c));for(var h=0;h<r.length;h++){var d=zg(r[h]);a[d.options.id]=d}}return o._defaultType.overlays=a,n.label&&(o.getDefaultType().overlays[Wg]={type:Fg.type,options:{label:n.label,location:n.labelLocation||o.defaultLabelLocation,id:Wg,cssClass:"jtk-default-label"}}),o}return Sd(i,[{key:"isDetachAllowed",value:function(t){var e=!0;if(this.beforeDetach)try{e=this.beforeDetach(t)}catch(t){cu("jsPlumb: beforeDetach callback failed",t)}return e}},{key:"isDropAllowed",value:function(t,e,i,n,o){var s,r={sourceId:t,targetId:e,scope:i,connection:n,dropEndpoint:o};if(this.beforeDrop)try{s=this.beforeDrop(r)}catch(t){cu("jsPlumb: beforeDrop callback failed",t)}else s=this.instance.checkCondition(sp,r);return s}},{key:"getDefaultType",value:function(){return this._defaultType}},{key:"appendToDefaultType",value:function(t){for(var e in t)this._defaultType[e]=t[e]}},{key:"getId",value:function(){return this.id}},{key:"cacheTypeItem",value:function(t,e,i){this._typeCache[i]=this._typeCache[i]||{},this._typeCache[i][t]=e}},{key:"getCachedTypeItem",value:function(t,e){return this._typeCache[e]?this._typeCache[e][t]:null}},{key:"setType",value:function(t,e){this.clearTypes(),(Vg(t)||[]).forEach(this._types.add,this._types),Yg(this,e)}},{key:"getType",value:function(){return Array.from(this._types.keys())}},{key:"reapplyTypes",value:function(t){Yg(this,t)}},{key:"hasType",value:function(t){return this._types.has(t)}},{key:"addType",value:function(t,e){var i=Vg(t),n=!1;if(null!=i){for(var o=0,s=i.length;o<s;o++)this._types.has(i[o])||(this._types.add(i[o]),n=!0);n&&Yg(this,e)}}},{key:"removeType",value:function(t,e){var i,n=this,o=Vg(t),s=!1;if(null!=o){for(var r=0,a=o.length;r<a;r++)i=o[r],s=!!n._types.has(i)&&(Xg(n,i),n._types.delete(i),!0)||s;s&&Yg(this,e)}}},{key:"clearTypes",value:function(t){var e=this;this._types.forEach((function(t){Xg(e,t)})),this._types.clear(),Yg(this,t)}},{key:"toggleType",value:function(t,e){var i=Vg(t);if(null!=i){for(var n=0,o=i.length;n<o;n++)this._types.has(i[n])?(Xg(this,i[n]),this._types.delete(i[n])):this._types.add(i[n]);Yg(this,e)}}},{key:"applyType",value:function(t,e){if(this.setPaintStyle(t.paintStyle),this.setHoverPaintStyle(t.hoverPaintStyle),this.mergeParameters(t.parameters),this.paintStyleInUse=this.getPaintStyle(),t.overlays){var i,n={};for(i in t.overlays){var o=this.overlays[t.overlays[i].options.id];if(o)o.updateFrom(t.overlays[i].options),n[t.overlays[i].options.id]=!0,this.instance.reattachOverlay(o,this);else{var s=this.getCachedTypeItem(Gg,t.overlays[i].options.id);null!=s?(this.instance.reattachOverlay(s,this),s.setVisible(!0),s.updateFrom(t.overlays[i].options),this.overlays[s.id]=s):s=this.addOverlay(t.overlays[i]),n[s.id]=!0}}for(i in this.overlays)null==n[this.overlays[i].id]&&this.removeOverlay(this.overlays[i].id,!0)}}},{key:"setPaintStyle",value:function(t){this.paintStyle=t,this.paintStyleInUse=this.paintStyle,Kg(this)}},{key:"getPaintStyle",value:function(){return this.paintStyle}},{key:"setHoverPaintStyle",value:function(t){this.hoverPaintStyle=t,Kg(this)}},{key:"getHoverPaintStyle",value:function(){return this.hoverPaintStyle}},{key:"destroy",value:function(){for(var t in this.overlays)this.instance.destroyOverlay(this.overlays[t]);this.overlays={},this.overlayPositions={},this.unbind(),this.clone=null}},{key:"isHover",value:function(){return this._hover}},{key:"mergeParameters",value:function(t){null!=t&&Rd(this.parameters,t)}},{key:"setVisible",value:function(t){this.visible=t,t?this.showOverlays():this.hideOverlays()}},{key:"isVisible",value:function(){return this.visible}},{key:"setAbsoluteOverlayPosition",value:function(t,e){this.overlayPositions[t.id]=e}},{key:"getAbsoluteOverlayPosition",value:function(t){return this.overlayPositions?this.overlayPositions[t.id]:null}},{key:"_clazzManip",value:function(t,e){for(var i in this.overlays)"add"===t?this.instance.addOverlayClass(this.overlays[i],e):t===Zg&&this.instance.removeOverlayClass(this.overlays[i],e)}},{key:"addClass",value:function(t,e){var i=(this.cssClass||"").split(" ");i.push(t),this.cssClass=i.join(" "),this._clazzManip("add",t)}},{key:"removeClass",value:function(t,e){var i=(this.cssClass||"").split(" ");this.cssClass=i.filter((function(e){return e!==t})).join(" "),this._clazzManip(Zg,t)}},{key:"getClass",value:function(){return this.cssClass}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"getData",value:function(){return this.data}},{key:"setData",value:function(t){this.data=t||{}}},{key:"mergeData",value:function(t){this.data=Rd(this.data,t)}},{key:"addOverlay",value:function(t){var e=function(t,e){var i=null;if(Bd(e))i=Bg(t.instance,e,t,{});else if(null!=e.type&&null!=e.options){var n=e,o=Rd({},n.options);i=Bg(t.instance,n.type,t,o)}else i=e;return i.id=i.id||su(),t.cacheTypeItem(Gg,i,i.id),t.overlays[i.id]=i,i}(this,t);if(this.getData&&e.type===Fg.type&&!Bd(t)){var i=this.getData(),n=t.options;if(i){var o=i[n.labelLocationAttribute||"labelLocation"];o&&(e.location=o)}}return e}},{key:"getOverlay",value:function(t){return this.overlays[t]}},{key:"getOverlays",value:function(){return this.overlays}},{key:"hideOverlay",value:function(t){var e=this.getOverlay(t);e&&e.setVisible(!1)}},{key:"hideOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n in e=e||[],this.overlays)0!==e.length&&-1===e.indexOf(n)||this.overlays[n].setVisible(!1)}},{key:"showOverlay",value:function(t){var e=this.getOverlay(t);e&&e.setVisible(!0)}},{key:"showOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n in e=e||[],this.overlays)0!==e.length&&-1===e.indexOf(n)||this.overlays[n].setVisible(!0)}},{key:"removeAllOverlays",value:function(){for(var t in this.overlays)this.instance.destroyOverlay(this.overlays[t]);this.overlays={},this.overlayPositions=null,this.overlayPlacements={}}},{key:"removeOverlay",value:function(t,e){var i=this.overlays[t];i&&(i.setVisible(!1),e||this.instance.destroyOverlay(i),delete this.overlays[t],this.overlayPositions&&delete this.overlayPositions[t],this.overlayPlacements&&delete this.overlayPlacements[t])}},{key:"removeOverlays",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n=0,o=e.length;n<o;n++)this.removeOverlay(arguments[n])}},{key:"getLabel",value:function(){var t=this.getLabelOverlay();return null!=t?t.getLabel():null}},{key:"getLabelOverlay",value:function(){return this.getOverlay(Wg)}},{key:"setLabel",value:function(t){var e,i,n,o=this.getLabelOverlay();if(o)if(Bd(t)||qd(t))o.setLabel(t);else{var s=t;s.label&&o.setLabel(s.label),s.location&&(o.location=s.location)}else{var r=Bd(t)||qd(t)?{label:t}:t;e=this,n=Rd({cssClass:(i=r).cssClass,id:Wg,component:e},i),o=new Fg(e.instance,e,n),this.overlays[Wg]=o}}}]),i}($g),Jg=["connectorStyle","connectorHoverStyle","connectorOverlays","connector","connectionType","connectorClass","connectorHoverClass"],tv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;wd(this,i),(o=e.call(this,t,n)).instance=t,Cd(Td(o),"connections",[]),Cd(Td(o),"endpoint",void 0),Cd(Td(o),"element",void 0),Cd(Td(o),"elementId",void 0),Cd(Td(o),"dragAllowedWhenFull",!0),Cd(Td(o),"timestamp",void 0),Cd(Td(o),"portId",void 0),Cd(Td(o),"maxConnections",void 0),Cd(Td(o),"proxiedBy",void 0),Cd(Td(o),"connectorClass",void 0),Cd(Td(o),"connectorHoverClass",void 0),Cd(Td(o),"finalEndpoint",void 0),Cd(Td(o),"enabled",!0),Cd(Td(o),"isSource",void 0),Cd(Td(o),"isTarget",void 0),Cd(Td(o),"isTemporarySource",void 0),Cd(Td(o),"connectionCost",1),Cd(Td(o),"connectionsDirected",void 0),Cd(Td(o),"connectionsDetachable",void 0),Cd(Td(o),"reattachConnections",void 0),Cd(Td(o),"currentAnchorClass",void 0),Cd(Td(o),"referenceEndpoint",void 0),Cd(Td(o),"edgeType",void 0),Cd(Td(o),"connector",void 0),Cd(Td(o),"connectorOverlays",void 0),Cd(Td(o),"connectorStyle",void 0),Cd(Td(o),"connectorHoverStyle",void 0),Cd(Td(o),"deleteOnEmpty",void 0),Cd(Td(o),"uuid",void 0),Cd(Td(o),"scope",void 0),Cd(Td(o),"_anchor",void 0),Cd(Td(o),"defaultLabelLocation",[.5,.5]),o.appendToDefaultType({edgeType:n.edgeType,maxConnections:null==n.maxConnections?o.instance.defaults.maxConnections:n.maxConnections,paintStyle:n.paintStyle||o.instance.defaults.endpointStyle,hoverPaintStyle:n.hoverPaintStyle||o.instance.defaults.endpointHoverStyle,connectorStyle:n.connectorStyle,connectorHoverStyle:n.connectorHoverStyle,connectorClass:n.connectorClass,connectorHoverClass:n.connectorHoverClass,connectorOverlays:n.connectorOverlays,connector:n.connector}),o.enabled=!(!1===n.enabled),o.visible=!0,o.element=n.element,o.uuid=n.uuid,o.portId=n.portId,o.elementId=n.elementId,o.connectionCost=null==n.connectionCost?1:n.connectionCost,o.connectionsDirected=n.connectionsDirected,o.currentAnchorClass="",o.events={},o.connectorOverlays=n.connectorOverlays,o.connectorStyle=n.connectorStyle,o.connectorHoverStyle=n.connectorHoverStyle,o.connector=n.connector,o.edgeType=n.edgeType,o.connectorClass=n.connectorClass,o.connectorHoverClass=n.connectorHoverClass,o.deleteOnEmpty=!0===n.deleteOnEmpty,o.isSource=n.source||!1,o.isTemporarySource=n.isTemporarySource||!1,o.isTarget=n.target||!1,o.connections=n.connections||[],o.scope=n.scope||t.defaultScope,o.timestamp=null,o.reattachConnections=n.reattachConnections||t.defaults.reattachConnections,o.connectionsDetachable=t.defaults.connectionsDetachable,!1===n.connectionsDetachable&&(o.connectionsDetachable=!1),o.dragAllowedWhenFull=!1!==n.dragAllowedWhenFull,n.onMaxConnections&&o.bind(ep,n.onMaxConnections);var s=n.endpoint||n.existingEndpoint||t.defaults.endpoint;if(o.setEndpoint(s),null!=n.preparedAnchor)o.setPreparedAnchor(n.preparedAnchor);else{var r=n.anchor?n.anchor:n.anchors?n.anchors:t.defaults.anchor||Cp.Top;o.setAnchor(r)}var a=[Mf,n.type||""].join(" ");return o.addType(a,n.data),o}return Sd(i,[{key:"getIdPrefix",value:function(){return"_jsplumb_e"}},{key:"getTypeDescriptor",value:function(){return"endpoint"}},{key:"getXY",value:function(){return{x:this.endpoint.x,y:this.endpoint.y}}},{key:"getDefaultOverlayKey",value:function(){return"endpointOverlays"}},{key:"_updateAnchorClass",value:function(){var t=this._anchor&&this._anchor.cssClass;if(null!=t&&t.length>0){var e=this.instance.endpointAnchorClassPrefix+"-"+this.currentAnchorClass;this.currentAnchorClass=t;var i=this.instance.endpointAnchorClassPrefix+(this.currentAnchorClass?"-"+this.currentAnchorClass:"");e!==i&&(this.removeClass(e),this.addClass(i),this.instance.removeClass(this.element,e),this.instance.addClass(this.element,i))}}},{key:"setPreparedAnchor",value:function(t){return this.instance.router.setAnchor(this,t),this._updateAnchorClass(),this}},{key:"_anchorLocationChanged",value:function(t){this.fire("anchor:changed",{endpoint:this,anchor:t}),this._updateAnchorClass()}},{key:"setAnchor",value:function(t){var e=this.instance.router.prepareAnchor(t);return this.setPreparedAnchor(e),this}},{key:"addConnection",value:function(t){this.connections.push(t),this.instance._refreshEndpoint(this)}},{key:"detachFromConnection",value:function(t,e,i){(e=null==e?this.connections.indexOf(t):e)>=0&&(this.connections.splice(e,1),this.instance._refreshEndpoint(this)),!i&&this.deleteOnEmpty&&0===this.connections.length&&this.instance.deleteEndpoint(this)}},{key:"deleteEveryConnection",value:function(t){for(var e=this.connections.length,i=0;i<e;i++)this.instance.deleteConnection(this.connections[0],t)}},{key:"detachFrom",value:function(t){for(var e=[],i=0;i<this.connections.length;i++)this.connections[i].endpoints[1]!==t&&this.connections[i].endpoints[0]!==t||e.push(this.connections[i]);for(var n=0,o=e.length;n<o;n++)this.instance.deleteConnection(e[0]);return this}},{key:"setVisible",value:function(t,e,n){if(Od(Ad(i.prototype),"setVisible",this).call(this,t),this.endpoint.setVisible(t),t?this.showOverlays():this.hideOverlays(),!e)for(var o=0;o<this.connections.length;o++)if(this.connections[o].setVisible(t),!n){var s=this===this.connections[o].endpoints[0]?1:0;1===this.connections[o].endpoints[s].connections.length&&this.connections[o].endpoints[s].setVisible(t,!0,!0)}}},{key:"applyType",value:function(t,e){Od(Ad(i.prototype),"applyType",this).call(this,t,e),this.setPaintStyle(t.endpointStyle||t.paintStyle),this.setHoverPaintStyle(t.endpointHoverStyle||t.hoverPaintStyle),this.connectorStyle=t.connectorStyle,this.connectorHoverStyle=t.connectorHoverStyle,this.connector=t.connector,this.connectorOverlays=t.connectorOverlays,this.edgeType=t.edgeType,null!=t.maxConnections&&(this.maxConnections=t.maxConnections),t.scope&&(this.scope=t.scope),Rd(t,Jg),this.instance.applyEndpointType(this,t)}},{key:"destroy",value:function(){Od(Ad(i.prototype),"destroy",this).call(this),this.deleted=!0,null!=this.endpoint&&this.instance.destroyEndpoint(this)}},{key:"isFull",value:function(){return 0===this.maxConnections||!(this.isFloating()||this.maxConnections<0||this.connections.length<this.maxConnections)}},{key:"isFloating",value:function(){return this.instance.router.isFloating(this)}},{key:"isConnectedTo",value:function(t){var e=!1;if(t)for(var i=0;i<this.connections.length;i++)if(this.connections[i].endpoints[1]===t||this.connections[i].endpoints[0]===t){e=!0;break}return e}},{key:"setDragAllowedWhenFull",value:function(t){this.dragAllowedWhenFull=t}},{key:"getUuid",value:function(){return this.uuid}},{key:"connectorSelector",value:function(){return this.connections[0]}},{key:"prepareEndpoint",value:function(t,e){var i,n={cssClass:this.cssClass,endpoint:this};if(pu(t,Xm)){var o=t;(i=Ym.clone(o)).classes=n.cssClass.split(" ")}else if(Bd(t))i=Ym.get(this,t,n);else{var s=t;Rd(n,s.options||{}),i=Ym.get(this,s.type,n)}return i.typeId=e,i}},{key:"setEndpoint",value:function(t){var e=this.prepareEndpoint(t);this.setPreparedEndpoint(e)}},{key:"setPreparedEndpoint",value:function(t){null!=this.endpoint&&this.instance.destroyEndpoint(this),this.endpoint=t}},{key:"addClass",value:function(t,e){Od(Ad(i.prototype),"addClass",this).call(this,t,e),null!=this.endpoint&&this.endpoint.addClass(t)}},{key:"removeClass",value:function(t,e){Od(Ad(i.prototype),"removeClass",this).call(this,t,e),null!=this.endpoint&&this.endpoint.removeClass(t)}}]),i}(Qg),ev="anchors",iv="connector";function nv(t,e,i,n,o,s,r){var a;if(e)t.endpoints[i]=e,e.addConnection(t);else{var l=r||t.endpointSpec||t.endpointsSpec[i]||t.instance.defaults.endpoints[i]||t.instance.defaults.endpoint,c=t.endpointStyles[i]||t.endpointStyle||t.instance.defaults.endpointStyles[i]||t.instance.defaults.endpointStyle;null==c.fill&&null!=t.paintStyle&&(c.fill=t.paintStyle.stroke),null==c.outlineStroke&&null!=t.paintStyle&&(c.outlineStroke=t.paintStyle.outlineStroke),null==c.outlineWidth&&null!=t.paintStyle&&(c.outlineWidth=t.paintStyle.outlineWidth);var h=t.endpointHoverStyles[i]||t.endpointHoverStyle||t.endpointHoverStyle||t.instance.defaults.endpointHoverStyles[i]||t.instance.defaults.endpointHoverStyle;null!=t.hoverPaintStyle&&(null==h&&(h={}),null==h.fill&&(h.fill=t.hoverPaintStyle.stroke));var d=t.uuids?t.uuids[i]:null;n=null!=n?n:null!=t.instance.defaults.anchors?t.instance.defaults.anchors[i]:t.instance.defaults.anchor,a=t.instance._internal_newEndpoint({paintStyle:c,hoverPaintStyle:h,endpoint:l,connections:[t],uuid:d,element:o,scope:t.scope,anchor:n,reattachConnections:t.reattach||t.instance.defaults.reattachConnections,connectionsDetachable:t.detachable||t.instance.defaults.connectionsDetachable}),t.instance._refreshEndpoint(a),null==e&&(a.deleteOnEmpty=!0),t.endpoints[i]=a}return a}var ov=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;wd(this,i),(o=e.call(this,t,n)).instance=t,Cd(Td(o),"connector",void 0),Cd(Td(o),"defaultLabelLocation",.5),Cd(Td(o),"scope",void 0),Cd(Td(o),"typeId","_jsplumb_connection"),Cd(Td(o),"previousConnection",void 0),Cd(Td(o),"sourceId",void 0),Cd(Td(o),"targetId",void 0),Cd(Td(o),"source",void 0),Cd(Td(o),"target",void 0),Cd(Td(o),"detachable",!0),Cd(Td(o),"reattach",!1),Cd(Td(o),"uuids",void 0),Cd(Td(o),"cost",1),Cd(Td(o),"directed",void 0),Cd(Td(o),"endpoints",[null,null]),Cd(Td(o),"endpointStyles",void 0),Cd(Td(o),"endpointSpec",void 0),Cd(Td(o),"endpointsSpec",void 0),Cd(Td(o),"endpointStyle",{}),Cd(Td(o),"endpointHoverStyle",{}),Cd(Td(o),"endpointHoverStyles",void 0),Cd(Td(o),"suspendedEndpoint",void 0),Cd(Td(o),"suspendedIndex",void 0),Cd(Td(o),"suspendedElement",void 0),Cd(Td(o),"suspendedElementId",void 0),Cd(Td(o),"suspendedElementType",void 0),Cd(Td(o),"_forceReattach",void 0),Cd(Td(o),"_forceDetach",void 0),Cd(Td(o),"proxies",[]),Cd(Td(o),"pending",!1),o.id=n.id,o.previousConnection=n.previousConnection,o.source=n.source,o.target=n.target,n.sourceEndpoint?(o.source=n.sourceEndpoint.element,o.sourceId=n.sourceEndpoint.elementId):o.sourceId=t.getId(o.source),n.targetEndpoint?(o.target=n.targetEndpoint.element,o.targetId=n.targetEndpoint.elementId):o.targetId=t.getId(o.target),o.scope=n.scope;var s=n.anchors?n.anchors[0]:n.anchor,r=n.anchors?n.anchors[1]:n.anchor;t.manage(o.source),t.manage(o.target),o.visible=!0,o.params={cssClass:n.cssClass,hoverClass:n.hoverClass,"pointer-events":n["pointer-events"],overlays:n.overlays},o.lastPaintedAt=null,n.type&&(n.endpoints=n.endpoints||o.instance._deriveEndpointAndAnchorSpec(n.type).endpoints),o.endpointSpec=n.endpoint,o.endpointsSpec=n.endpoints||[null,null],o.endpointStyle=n.endpointStyle,o.endpointHoverStyle=n.endpointHoverStyle,o.endpointStyles=n.endpointStyles||[null,null],o.endpointHoverStyles=n.endpointHoverStyles||[null,null],o.paintStyle=n.paintStyle,o.hoverPaintStyle=n.hoverPaintStyle,o.uuids=n.uuids,o.makeEndpoint(!0,o.source,o.sourceId,s,n.sourceEndpoint),o.makeEndpoint(!1,o.target,o.targetId,r,n.targetEndpoint),o.scope||(o.scope=o.endpoints[0].scope),null!=n.deleteEndpointsOnEmpty&&(o.endpoints[0].deleteOnEmpty=n.deleteEndpointsOnEmpty,o.endpoints[1].deleteOnEmpty=n.deleteEndpointsOnEmpty);var a=o.instance.defaults.connectionsDetachable;!1===n.detachable&&(a=!1),!1===o.endpoints[0].connectionsDetachable&&(a=!1),!1===o.endpoints[1].connectionsDetachable&&(a=!1),o.endpointsSpec=n.endpoints||[null,null],o.endpointSpec=n.endpoint||null;var l=n.reattach||o.endpoints[0].reattachConnections||o.endpoints[1].reattachConnections||o.instance.defaults.reattachConnections,c=Rd({},o.endpoints[0].connectorStyle||o.endpoints[1].connectorStyle||n.paintStyle||o.instance.defaults.paintStyle);if(o.appendToDefaultType({detachable:a,reattach:l,paintStyle:c,hoverPaintStyle:Rd({},o.endpoints[0].connectorHoverStyle||o.endpoints[1].connectorHoverStyle||n.hoverPaintStyle||o.instance.defaults.hoverPaintStyle)}),n.outlineWidth&&(c.outlineWidth=n.outlineWidth),n.outlineColor&&(c.outlineStroke=n.outlineColor),n.lineWidth&&(c.strokeWidth=n.lineWidth),n.color&&(c.stroke=n.color),!o.instance._suspendDrawing){var h=o.instance._suspendedAt||su();o.instance._paintEndpoint(o.endpoints[0],{timestamp:h}),o.instance._paintEndpoint(o.endpoints[1],{timestamp:h})}o.cost=n.cost||o.endpoints[0].connectionCost,o.directed=n.directed,null==n.directed&&(o.directed=o.endpoints[0].connectionsDirected);var d=Rd({},o.endpoints[1].parameters);Rd(d,o.endpoints[0].parameters),Rd(d,o.parameters),o.parameters=d,o.paintStyleInUse=o.getPaintStyle()||{},o._setConnector(o.endpoints[0].connector||o.endpoints[1].connector||n.connector||o.instance.defaults.connector,!0);var u=null!=n.data&&Fd(n.data)?n.data:{};o.setData(u);var p=[Mf,o.endpoints[0].edgeType,o.endpoints[1].edgeType,n.type].join(" ");return/[^\s]/.test(p)&&o.addType(p,n.data),o}return Sd(i,[{key:"getIdPrefix",value:function(){return"_jsPlumb_c"}},{key:"getDefaultOverlayKey",value:function(){return"connectionOverlays"}},{key:"getXY",value:function(){return{x:this.connector.x,y:this.connector.y}}},{key:"makeEndpoint",value:function(t,e,i,n,o){return i=i||this.instance.getId(e),nv(this,o,t?0:1,n,e)}},{key:"getTypeDescriptor",value:function(){return i.type}},{key:"isDetachable",value:function(t){return!1!==this.detachable&&(null!=t?!0===t.connectionsDetachable:!0===this.detachable)}},{key:"setDetachable",value:function(t){this.detachable=!0===t}},{key:"isReattach",value:function(){return!0===this.reattach||!0===this.endpoints[0].reattachConnections||!0===this.endpoints[1].reattachConnections}},{key:"setReattach",value:function(t){this.reattach=!0===t}},{key:"applyType",value:function(t,e){var n=null;null!=t.connector&&(null==(n=this.getCachedTypeItem(iv,e.connector))&&(n=this.prepareConnector(t.connector,e.connector),this.cacheTypeItem(iv,n,e.connector)),this.setPreparedConnector(n)),Od(Ad(i.prototype),"applyType",this).call(this,t,e),null!=t.detachable&&this.setDetachable(t.detachable),null!=t.reattach&&this.setReattach(t.reattach),t.scope&&(this.scope=t.scope);var o=null;t.anchor?null==(o=this.getCachedTypeItem(ev,e.anchor))&&(o=[_g(t.anchor),_g(t.anchor)],this.cacheTypeItem(ev,o,e.anchor)):t.anchors&&null==(o=this.getCachedTypeItem(ev,e.anchors))&&(o=[_g(t.anchors[0]),_g(t.anchors[1])],this.cacheTypeItem(ev,o,e.anchors)),null!=o&&(this.instance.router.setConnectionAnchors(this,o),this.instance.router.isDynamicAnchor(this.endpoints[1])&&this.instance.repaint(this.endpoints[1].element)),this.instance.applyConnectorType(this.connector,t)}},{key:"addClass",value:function(t,e){Od(Ad(i.prototype),"addClass",this).call(this,t),e&&(this.endpoints[0].addClass(t),this.endpoints[1].addClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.addClass(t)),this.connector&&this.instance.addConnectorClass(this.connector,t)}},{key:"removeClass",value:function(t,e){Od(Ad(i.prototype),"removeClass",this).call(this,t),e&&(this.endpoints[0].removeClass(t),this.endpoints[1].removeClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.removeClass(t)),this.connector&&this.instance.removeConnectorClass(this.connector,t)}},{key:"setVisible",value:function(t){Od(Ad(i.prototype),"setVisible",this).call(this,t),this.connector&&this.instance.setConnectorVisible(this.connector,t),this.instance._paintConnection(this)}},{key:"destroy",value:function(){Od(Ad(i.prototype),"destroy",this).call(this),this.endpoints=null,this.endpointStyles=null,this.source=null,this.target=null,this.instance.destroyConnector(this),this.connector=null,this.deleted=!0}},{key:"getUuids",value:function(){return[this.endpoints[0].getUuid(),this.endpoints[1].getUuid()]}},{key:"prepareConnector",value:function(t,e){var i,n={cssClass:this.params.cssClass,hoverClass:this.params.hoverClass,"pointer-events":this.params["pointer-events"]};if(Bd(t))i=this.instance._makeConnector(this,t,n);else{var o=t;i=this.instance._makeConnector(this,o.type,Hd(o.options||{},n))}return null!=e&&(i.typeId=e),i}},{key:"setPreparedConnector",value:function(t,e,i,n){if(this.connector!==t){var o,s="";if(null!=this.connector&&(o=this.connector,s=this.instance.getConnectorClass(this.connector),this.instance.destroyConnector(this)),this.connector=t,n&&this.cacheTypeItem(iv,t,n),this.addClass(s),null!=o){var r=this.getOverlays();for(var a in r)this.instance.reattachOverlay(r[a],this)}e||this.instance._paintConnection(this)}}},{key:"_setConnector",value:function(t,e,i,n){var o=this.prepareConnector(t,n);this.setPreparedConnector(o,e,i,n)}},{key:"replaceEndpoint",value:function(t,e){var i=this.endpoints[t],n=(i.elementId,this.instance.getEndpoints(i.element)),o=n.indexOf(i),s=nv(this,null,t,null,i.element,0,e);this.endpoints[t]=s,n.splice(o,1,s),i.detachFromConnection(this),this.instance.deleteEndpoint(i),this.instance.fire("endpoint:replaced",{previous:i,current:s})}}]),i}(Qg);function sv(t){if(null==t.path){var e=Rd({"jtk-overlay-id":t.id},t.attributes);t.path=bp(gp,e);var i=t.instance.overlayClass+" "+(t.cssClass?t.cssClass:"");t.instance.addClass(t.path,i),t.path.jtk={overlay:t}}var n=t.path.parentNode;if(null==n){if(t.component instanceof ov){var o=t.component.connector;n=null!=o?o.canvas:null}else if(t.component instanceof tv){var s=t.component.endpoint;n=null!=s?s.canvas:s}null!=n&&wp(n,t.path,1)}return t.path}Cd(ov,"type","connection"),function(t){Ed(i,t);var e=Pd(i);function i(){var t;wd(this,i);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return Cd(Td(t=e.call.apply(e,[this].concat(o))),"path",void 0),t}}(Rg);var rv=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"paint",value:function(t,e,i,n){if(null!=i){var o=[t.x,t.y],s=[t.w,t.h];if(null!=n&&(n.xmin<0&&(o[0]+=n.xmin),n.ymin<0&&(o[1]+=n.ymin),s[0]=n.xmax+(n.xmin<0?-n.xmin:0),s[1]=n.ymax+(n.ymin<0?-n.ymin:0)),isFinite(s[0])&&isFinite(s[1])){var r={width:""+(s[0]||0),height:""+(s[1]||0)};e.containerType===iu.HTML?yp(t.canvas,Rd(r,{style:xp([o[0],o[1]])})):yp(t.canvas,Rd(r,{x:o[0],y:o[1]}))}}}}]),t}();function av(t,e,i,n){!function(t,e){if(null!=e.canvas)return e.canvas;var i=bp(mp,{style:"",width:"0",height:"0","pointer-events":Lu,position:$u});e.canvas=i,t._appendElement(e.canvas,t.getContainer()),null!=e.cssClass&&t.addClass(i,e.cssClass),t.addClass(i,t.connectorClass),i.jtk=i.jtk||{},i.jtk.connector=e}(t,e),rv.paint(e,t,i,n);var o=[0,0];if(n.xmin<0&&(o[0]=-n.xmin),n.ymin<0&&(o[1]=-n.ymin),e.segments.length>0){var s={d:t.getPathData(e),transform:"translate("+o[0]+","+o[1]+")","pointer-events":"visibleStroke"},r=null;if(i.outlineStroke){var a=i.outlineWidth||1,l=i.strokeWidth+2*a;(r=Rd({},i)).stroke=i.outlineStroke,r.strokeWidth=l,null==e.bgPath?(e.bgPath=bp(gp,s),t.addClass(e.bgPath,t.connectorOutlineClass),wp(e.canvas,e.bgPath,0)):yp(e.bgPath,s),_p(e.canvas,e.bgPath,r)}var c=e;null==c.path?(c.path=bp(gp,s),wp(c.canvas,c.path,i.outlineStroke?1:0)):(c.path.parentNode!==c.canvas&&wp(c.canvas,c.path,i.outlineStroke?1:0),yp(e.path,s)),_p(e.canvas,e.path,i)}}var lv=function(){function t(){wd(this,t)}return Sd(t,null,[{key:"getEndpointElement",value:function(t){if(null!=t.canvas)return t.canvas;var e=bp(mp,{style:"",width:"0",height:"0","pointer-events":"all",position:$u});t.canvas=e;var i=t.classes.join(" ");t.instance.addClass(e,i);for(var n=t.endpoint.scope.split(/\s/),o=0;o<n.length;o++)t.instance.setAttribute(e,Fu+n[o],Tf);return t.instance._appendElementToContainer(e),null!=t.cssClass&&t.instance.addClass(e,t.cssClass),t.instance.addClass(e,t.instance.endpointClass),e.jtk=e.jtk||{},e.jtk.endpoint=t.endpoint,e.style.display=!1!==t.endpoint.visible?Iu:Lu,e}},{key:"paint",value:function(t,e,i){if(!0!==t.endpoint.deleted){this.getEndpointElement(t),rv.paint(t,t.instance,i);var n=Rd({},i);n.outlineStroke&&(n.stroke=n.outlineStroke),null==t.node?(t.node=e.makeNode(t,n),t.canvas.appendChild(t.node)):null!=e.updateNode&&e.updateNode(t,t.node),_p(t.canvas,t.node,n)}}}]),t}(),cv=function(){function t(e,i){wd(this,t),this.connection=e,Cd(this,"type",void 0),Cd(this,"edited",!1),Cd(this,"stub",void 0),Cd(this,"sourceStub",void 0),Cd(this,"targetStub",void 0),Cd(this,"maxStub",void 0),Cd(this,"typeId",void 0),Cd(this,"gap",void 0),Cd(this,"sourceGap",void 0),Cd(this,"targetGap",void 0),Cd(this,"segments",[]),Cd(this,"totalLength",0),Cd(this,"segmentProportions",[]),Cd(this,"segmentProportionalLengths",[]),Cd(this,"paintInfo",null),Cd(this,"strokeWidth",void 0),Cd(this,"x",void 0),Cd(this,"y",void 0),Cd(this,"w",void 0),Cd(this,"h",void 0),Cd(this,"segment",void 0),Cd(this,"bounds",{xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}),Cd(this,"cssClass",void 0),Cd(this,"hoverClass",void 0),Cd(this,"geometry",void 0),this.stub=i.stub||this.getDefaultStubs(),this.sourceStub=Array.isArray(this.stub)?this.stub[0]:this.stub,this.targetStub=Array.isArray(this.stub)?this.stub[1]:this.stub,this.gap=i.gap||0,this.sourceGap=Array.isArray(this.gap)?this.gap[0]:this.gap,this.targetGap=Array.isArray(this.gap)?this.gap[1]:this.gap,this.maxStub=Math.max(this.sourceStub,this.targetStub),this.cssClass=i.cssClass||"",this.hoverClass=i.hoverClass||""}return Sd(t,[{key:"getTypeDescriptor",value:function(){return"connector"}},{key:"getIdPrefix",value:function(){return"_jsplumb_connector"}},{key:"setGeometry",value:function(t,e){this.geometry=t,this.edited=null!=t&&!e}},{key:"exportGeometry",value:function(){return this.geometry}},{key:"importGeometry",value:function(t){return this.geometry=t,!0}},{key:"resetGeometry",value:function(){this.geometry=null,this.edited=!1}},{key:"transformAnchorPlacement",value:function(t,e,i){return{x:t.x,y:t.y,ox:t.ox,oy:t.oy,curX:t.curX+e,curY:t.curY+i}}},{key:"resetBounds",value:function(){this.bounds={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0}}},{key:"findSegmentForPoint",value:function(t,e){for(var i={d:1/0,s:null,x:null,y:null,l:null,x1:null,y1:null,x2:null,y2:null,index:null,connectorLocation:null},n=0;n<this.segments.length;n++){var o=this.segments[n].findClosestPointOnPath(t,e);o.d<i.d&&(i.d=o.d,i.l=o.l,i.x=o.x,i.y=o.y,i.s=this.segments[n],i.x1=o.x1,i.x2=o.x2,i.y1=o.y1,i.y2=o.y2,i.index=n,i.connectorLocation=this.segmentProportions[n][0]+o.l*(this.segmentProportions[n][1]-this.segmentProportions[n][0]))}return i}},{key:"lineIntersection",value:function(t,e,i,n){for(var o=[],s=0;s<this.segments.length;s++)o.push.apply(o,this.segments[s].lineIntersection(t,e,i,n));return o}},{key:"boxIntersection",value:function(t,e,i,n){for(var o=[],s=0;s<this.segments.length;s++)o.push.apply(o,this.segments[s].boxIntersection(t,e,i,n));return o}},{key:"boundingBoxIntersection",value:function(t){for(var e=[],i=0;i<this.segments.length;i++)e.push.apply(e,this.segments[i].boundingBoxIntersection(t));return e}},{key:"_updateSegmentProportions",value:function(){for(var t=0,e=0;e<this.segments.length;e++){var i=this.segments[e].getLength();this.segmentProportionalLengths[e]=i/this.totalLength,this.segmentProportions[e]=[t,t+=i/this.totalLength]}}},{key:"_findSegmentForLocation",value:function(t,e){var i,n,o;if(e&&(t=t>0?t/this.totalLength:(this.totalLength+t)/this.totalLength),1===t)i=this.segments.length-1,o=1;else if(0===t)o=0,i=0;else if(t>=.5){for(i=0,o=0,n=this.segmentProportions.length-1;n>-1;n--)if(this.segmentProportions[n][1]>=t&&this.segmentProportions[n][0]<=t){i=n,o=(t-this.segmentProportions[n][0])/this.segmentProportionalLengths[n];break}}else for(i=this.segmentProportions.length-1,o=1,n=0;n<this.segmentProportions.length;n++)if(this.segmentProportions[n][1]>=t){i=n,o=(t-this.segmentProportions[n][0])/this.segmentProportionalLengths[n];break}return{segment:this.segments[i],proportion:o,index:i}}},{key:"_addSegment",value:function(t,e){if(e.x1!==e.x2||e.y1!==e.y2){var i=new t(e);this.segments.push(i),this.totalLength+=i.getLength(),this.updateBounds(i)}}},{key:"_clearSegments",value:function(){this.totalLength=0,this.segments.length=0,this.segmentProportions.length=0,this.segmentProportionalLengths.length=0}},{key:"getLength",value:function(){return this.totalLength}},{key:"_prepareCompute",value:function(t){this.strokeWidth=t.strokeWidth;var e=t.sourcePos.curX,i=t.targetPos.curX,n=t.sourcePos.curY,o=t.targetPos.curY,s=am({x:e,y:n},{x:i,y:o}),r=i<e,a=o<n,l=[t.sourcePos.ox,t.sourcePos.oy],c=[t.targetPos.ox,t.targetPos.oy],h=r?i:e,d=a?o:n,u=Math.abs(i-e),p=Math.abs(o-n),f=0===l[0]&&0===l[1],m=0===c[0]&&0===c[1];if(f||m){var g=u>p?0:1,v=[1,0][g],y=0===g?e:n,b=0===g?i:o;f&&(l[g]=y>b?-1:1,l[v]=0),m&&(c[g]=y>b?1:-1,c[v]=0)}var x=r?u+this.sourceGap*l[0]:this.sourceGap*l[0],_=a?p+this.sourceGap*l[1]:this.sourceGap*l[1],w=r?this.targetGap*c[0]:u+this.targetGap*c[0],k=a?this.targetGap*c[1]:p+this.targetGap*c[1],S=l[0]*c[0]+l[1]*c[1],C={sx:x,sy:_,tx:w,ty:k,xSpan:Math.abs(w-x),ySpan:Math.abs(k-_),mx:(x+w)/2,my:(_+k)/2,so:l,to:c,x:h,y:d,w:u,h:p,segment:s,startStubX:x+l[0]*this.sourceStub,startStubY:_+l[1]*this.sourceStub,endStubX:w+c[0]*this.targetStub,endStubY:k+c[1]*this.targetStub,isXGreaterThanStubTimes2:Math.abs(x-w)>this.sourceStub+this.targetStub,isYGreaterThanStubTimes2:Math.abs(_-k)>this.sourceStub+this.targetStub,opposite:-1===S,perpendicular:0===S,orthogonal:1===S,sourceAxis:0===l[0]?"y":"x",points:[h,d,u,p,x,_,w,k],stubs:[this.sourceStub,this.targetStub]};return C.anchorOrientation=C.opposite?"opposite":C.orthogonal?"orthogonal":"perpendicular",C}},{key:"updateBounds",value:function(t){var e=t.extents;this.bounds.xmin=Math.min(this.bounds.xmin,e.xmin),this.bounds.xmax=Math.max(this.bounds.xmax,e.xmax),this.bounds.ymin=Math.min(this.bounds.ymin,e.ymin),this.bounds.ymax=Math.max(this.bounds.ymax,e.ymax)}},{key:"dumpSegmentsToConsole",value:function(){cu("SEGMENTS:");for(var t=0;t<this.segments.length;t++)cu(this.segments[t].type,""+this.segments[t].getLength(),""+this.segmentProportions[t])}},{key:"pointOnPath",value:function(t,e){var i=this._findSegmentForLocation(t,e);return i.segment&&i.segment.pointOnPath(i.proportion,!1)||{x:0,y:0}}},{key:"gradientAtPoint",value:function(t,e){var i=this._findSegmentForLocation(t,e);return i.segment&&i.segment.gradientAtPoint(i.proportion,!1)||0}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this._findSegmentForLocation(t,i);return n.segment&&n.segment.pointAlongPathFrom(n.proportion,e,!1)||{x:0,y:0}}},{key:"compute",value:function(t){this.paintInfo=this._prepareCompute(t),this._clearSegments(),this._compute(this.paintInfo,t),this.x=this.paintInfo.points[0],this.y=this.paintInfo.points[1],this.w=this.paintInfo.points[2],this.h=this.paintInfo.points[3],this.segment=this.paintInfo.segment,this._updateSegmentProportions()}},{key:"setAnchorOrientation",value:function(t,e){}}]),t}(),hv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"width",void 0),Cd(Td(s),"length",void 0),Cd(Td(s),"foldback",void 0),Cd(Td(s),"direction",void 0),Cd(Td(s),"location",.5),Cd(Td(s),"paintStyle",void 0),Cd(Td(s),"type",i.type),Cd(Td(s),"cachedDimensions",void 0),o=o||{},s.width=o.width||20,s.length=o.length||20,s.direction=(o.direction||1)<0?-1:1,s.foldback=o.foldback||.623,s.paintStyle=o.paintStyle||{strokeWidth:1},s.location=null==o.location?s.location:Array.isArray(o.location)?o.location[0]:o.location,s}return Sd(i,[{key:"draw",value:function(t,e,i){if(t instanceof cv){var n,o,s,r=t;if(this.location>1||this.location<0){var a=this.location<0?1:0;o=cm(n=r.pointAlongPathFrom(a,this.location,!1),r.pointAlongPathFrom(a,this.location-this.direction*this.length/2,!1),this.length)}else if(1===this.location){if(o=cm(n=r.pointOnPath(this.location),r.pointAlongPathFrom(this.location,-this.length),this.length),-1===this.direction){var l=o;o=n,n=l}}else if(0===this.location){if(n=cm(o=r.pointOnPath(this.location),r.pointAlongPathFrom(this.location,this.length),this.length),-1===this.direction){var c=o;o=n,n=c}}else o=cm(n=r.pointAlongPathFrom(this.location,this.direction*this.length/2),r.pointOnPath(this.location),this.length);s=function(t,e,i){var n=sm(t,e),o=Math.atan(-1/n),s=i/2*Math.sin(o),r=i/2*Math.cos(o);return[{x:e.x+r,y:e.y+s},{x:e.x-r,y:e.y-s}]}(n,o,this.width);var h={hxy:n,tail:s,cxy:cm(n,o,this.foldback*this.length)},d=this.paintStyle.stroke||e.stroke,u=this.paintStyle.fill||e.stroke;return{component:t,d:h,"stroke-width":this.paintStyle.strokeWidth||e.strokeWidth,stroke:d,fill:u,xmin:Math.min(n.x,s[0].x,s[1].x),xmax:Math.max(n.x,s[0].x,s[1].x),ymin:Math.min(n.y,s[0].y,s[1].y),ymax:Math.max(n.y,s[0].y,s[1].y)}}}},{key:"updateFrom",value:function(t){}}]),i}(Rg);function dv(t){return t.type===hv.type}Cd(hv,"type","Arrow"),jg(hv.type,hv);var uv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,Cd(Td(s),"type",i.type),s.length=s.length/2,s.foldback=2,s}return i}(hv);function pv(t){return t.type===uv.type}Cd(uv,"type","Diamond"),jg(uv.type,uv);var fv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,Cd(Td(s),"type",i.type),s.foldback=1,s}return i}(hv);function mv(t){return t.type===fv.type}Cd(fv,"type","PlainArrow"),jg("PlainArrow",fv);var gv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;return wd(this,i),(s=e.call(this,t,n,o)).instance=t,s.component=n,Cd(Td(s),"create",void 0),Cd(Td(s),"type",i.type),s.create=o.create,s}return Sd(i,[{key:"updateFrom",value:function(t){}}]),i}(Rg);function vv(t){return t.type===gv.type}Cd(gv,"type","Custom"),jg(gv.type,gv);var yv="paintStyle",bv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"radius",void 0),Cd(Td(o),"defaultOffset",void 0),Cd(Td(o),"defaultInnerRadius",void 0),Cd(Td(o),"type",i.type),n=n||{},o.radius=n.radius||5,o.defaultOffset=.5*o.radius,o.defaultInnerRadius=o.radius/3,o}return i}(Xm);Cd(bv,"type","Dot");var xv={type:bv.type,cls:bv,compute:function(t,e,i,n){var o=e.curX-t.radius,s=e.curY-t.radius,r=2*t.radius,a=2*t.radius;if(n&&n.stroke){var l=n.strokeWidth||1;o-=l,s-=l,r+=2*l,a+=2*l}return t.x=o,t.y=s,t.w=r,t.h=a,[o,s,r,a,t.radius]},getParams:function(t){return{radius:t.radius}}},_v=function t(e,i){wd(this,t),this.instance=e,this.el=i,Cd(this,"group",void 0)},wv=function(t){Ed(i,t);var e=Pd(i);function i(t,n,o){var s;wd(this,i),(s=e.call(this,t,n)).instance=t,Cd(Td(s),"children",[]),Cd(Td(s),"collapsed",!1),Cd(Td(s),"droppable",void 0),Cd(Td(s),"enabled",void 0),Cd(Td(s),"orphan",void 0),Cd(Td(s),"constrain",void 0),Cd(Td(s),"proxied",void 0),Cd(Td(s),"ghost",void 0),Cd(Td(s),"revert",void 0),Cd(Td(s),"prune",void 0),Cd(Td(s),"dropOverride",void 0),Cd(Td(s),"anchor",void 0),Cd(Td(s),"endpoint",void 0),Cd(Td(s),"connections",{source:[],target:[],internal:[]}),Cd(Td(s),"manager",void 0),Cd(Td(s),"id",void 0),Cd(Td(s),"elId",void 0);var r=s.el;return r._isJsPlumbGroup=!0,r._jsPlumbGroup=Td(s),s.elId=t.getId(n),s.orphan=!0===o.orphan,s.revert=!0!==s.orphan&&!1!==o.revert,s.droppable=!1!==o.droppable,s.ghost=!0===o.ghost,s.enabled=!1!==o.enabled,s.prune=!0!==s.orphan&&!0===o.prune,s.constrain=s.ghost||!0===o.constrain,s.proxied=!1!==o.proxied,s.id=o.id||su(),s.dropOverride=!0===o.dropOverride,s.anchor=o.anchor,s.endpoint=o.endpoint,s.anchor=o.anchor,t.setAttribute(n,Ru,""),s}return Sd(i,[{key:"contentArea",get:function(){return this.instance.getGroupContentArea(this)}},{key:"overrideDrop",value:function(t,e){return this.dropOverride&&(this.revert||this.prune||this.orphan)}},{key:"getAnchor",value:function(t,e){return this.anchor||"Continuous"}},{key:"getEndpoint",value:function(t,e){return this.endpoint||{type:bv.type,options:{radius:10}}}},{key:"add",value:function(t,e){var i=this.instance.getGroupContentArea(this),n=t;if(null!=n._jsPlumbParentGroup){if(n._jsPlumbParentGroup===this)return;n._jsPlumbParentGroup.remove(t,!0,e,!1)}n._jsPlumbParentGroup=this,this.children.push(new _v(this.instance,t)),this.instance._appendElement(n,i),this.manager._updateConnectionsForGroup(this)}},{key:"resolveNode",value:function(t){return null==t?null:Yd(this.children,(function(e){return e.el===t}))}},{key:"remove",value:function(t,e,i,n,o){var s=this.resolveNode(t);null!=s&&this._doRemove(s,e,i,n,o)}},{key:"_doRemove",value:function(t,e,i,n,o){var s=t.el;if(delete s._jsPlumbParentGroup,Kd(this.children,(function(e){return e===t})),e)try{this.instance.getGroupContentArea(this).removeChild(s)}catch(t){cu("Could not remove element from Group "+t)}if(!i){var r={group:this,el:s};o&&(r.targetGroup=o),this.instance.fire("group:member:removed",r)}n||this.manager._updateConnectionsForGroup(this)}},{key:"removeAll",value:function(t,e){for(var i=0,n=this.children.length;i<n;i++){var o=this.children[0];this._doRemove(o,t,e,!0),this.instance.unmanage(o.el,!0)}this.children.length=0,this.manager._updateConnectionsForGroup(this)}},{key:"orphanAll",value:function(){for(var t={},e=0;e<this.children.length;e++){var i=this.manager.orphan(this.children[e].el,!1);t[i.id]=i.pos}return this.children.length=0,t}},{key:"addGroup",value:function(t){if(this.instance.allowNestedGroups&&t!==this){if(this.instance.groupManager.isAncestor(this,t))return!1;null!=t.group&&t.group.removeGroup(t);var e=this.instance.getId(t.el);this.instance.getManagedElements()[e].group=this.elId;var i=this.instance.getOffsetRelativeToRoot(t.el),n=this.collapsed?this.instance.getOffsetRelativeToRoot(this.el):this.instance.getOffsetRelativeToRoot(this.instance.getGroupContentArea(this));t.el._jsPlumbParentGroup=this,this.children.push(t),this.instance._appendElementToGroup(this,t.el),t.group=this;var o={x:i.x-n.x,y:i.y-n.y};return this.instance.setPosition(t.el,o),this.instance.fire("group:nested:added",{parent:this,child:t}),!0}return!1}},{key:"removeGroup",value:function(t){if(t.group===this){var e=t.el,i=this.instance.getGroupContentArea(this);i===e.parentNode&&i.removeChild(t.el);var n=this.instance.getId(t.el),o=this.instance.getManagedElements()[n];o&&delete o.group,this.children=this.children.filter((function(e){return e.id!==t.id})),delete t.group,delete e._jsPlumbParentGroup,this.instance.fire("group:nested:removed",{parent:this,child:t})}}},{key:"getGroups",value:function(){return this.children.filter((function(t){return t.constructor===i}))}},{key:"getNodes",value:function(){return this.children.filter((function(t){return t.constructor===_v}))}},{key:"collapseParent",get:function(){var t=null;if(null==this.group)return null;for(var e=this.group;null!=e;)e.collapsed&&(t=e),e=e.group;return t}}]),i}(_v),kv=function(){function t(e){var i=this;wd(this,t),this.instance=e,Cd(this,"groupMap",{}),Cd(this,"_connectionSourceMap",{}),Cd(this,"_connectionTargetMap",{}),e.bind(Xu,(function(t){var e=i.getGroupFor(t.source),n=i.getGroupFor(t.target);null!=e&&null!=n&&e===n?(i._connectionSourceMap[t.connection.id]=e,i._connectionTargetMap[t.connection.id]=e,eu(e.connections.internal,t.connection)):(null!=e&&(t.target._jsPlumbGroup===e?eu(e.connections.internal,t.connection):eu(e.connections.source,t.connection),i._connectionSourceMap[t.connection.id]=e),null!=n&&(t.source._jsPlumbGroup===n?eu(n.connections.internal,t.connection):eu(n.connections.target,t.connection),i._connectionTargetMap[t.connection.id]=n))})),e.bind(Ju,(function(t){i._cleanupDetachedConnection(t.connection)})),e.bind(Ku,(function(t){var e=t.originalEndpoint.element,n=i.getGroupFor(e),o=t.connection.endpoints[t.index].element,s=i.getGroupFor(o),r=0===t.index?i._connectionSourceMap:i._connectionTargetMap,a=0===t.index?i._connectionTargetMap:i._connectionSourceMap;null!=s?(r[t.connection.id]=s,t.connection.source===t.connection.target&&(a[t.connection.id]=s)):(delete r[t.connection.id],t.connection.source===t.connection.target&&delete a[t.connection.id]),null!=n&&i._updateConnectionsForGroup(n),null!=s&&i._updateConnectionsForGroup(s)}))}return Sd(t,[{key:"_cleanupDetachedConnection",value:function(t){t.proxies.length=0;var e,i=this._connectionSourceMap[t.id];null!=i&&(e=function(e){return e.id===t.id},Kd(i.connections.source,e),Kd(i.connections.target,e),Kd(i.connections.internal,e),delete this._connectionSourceMap[t.id]),null!=(i=this._connectionTargetMap[t.id])&&(e=function(e){return e.id===t.id},Kd(i.connections.source,e),Kd(i.connections.target,e),Kd(i.connections.internal,e),delete this._connectionTargetMap[t.id])}},{key:"addGroup",value:function(t){var e=t.el;if(null!=this.groupMap[t.id])throw new Error("cannot create Group ["+t.id+"]; a Group with that ID exists");if(null!=e._isJsPlumbGroup)throw new Error("cannot create Group ["+t.id+"]; the given element is already a Group");var i=new wv(this.instance,t.el,t);return this.groupMap[i.id]=i,t.collapsed&&this.collapseGroup(i),this.instance.manage(i.el),this.instance.addClass(i.el,Gu),i.manager=this,this._updateConnectionsForGroup(i),this.instance.fire("group:added",{group:i}),i}},{key:"getGroup",value:function(t){var e=t;if(Bd(t)&&null==(e=this.groupMap[t]))throw new Error("No such group ["+t+"]");return e}},{key:"getGroupFor",value:function(t){for(var e=t,i=this.instance.getContainer(),n=!1,o=null;!n;)null==e||e===i?n=!0:e._jsPlumbParentGroup?(o=e._jsPlumbParentGroup,n=!0):e=e.parentNode;return o}},{key:"getGroups",value:function(){var t=[];for(var e in this.groupMap)t.push(this.groupMap[e]);return t}},{key:"removeGroup",value:function(t,e,i,n){var o=this,s=this.getGroup(t);this.expandGroup(s,!0);var r={};return Gd(s.children,(function(t){var e=o.instance.getManagedElements()[o.instance.getId(t.el)];e&&delete e.group})),e?(Gd(s.getGroups(),(function(t){return o.removeGroup(t,e,i)})),s.removeAll(i,n)):(s.group&&Gd(s.children,(function(t){return s.group.add(t.el)})),r=s.orphanAll()),s.group&&s.group.removeGroup(s),this.instance.unmanage(s.el,!0),delete this.groupMap[s.id],this.instance.fire("group:removed",{group:s}),r}},{key:"removeAllGroups",value:function(t,e,i){for(var n in this.groupMap)this.removeGroup(this.groupMap[n],t,e,i)}},{key:"forEach",value:function(t){for(var e in this.groupMap)t(this.groupMap[e])}},{key:"orphan",value:function(t,e){var i=t;if(i._jsPlumbParentGroup){var n=i._jsPlumbParentGroup,o=this.instance.getId(i),s=this.instance.getOffset(t);return!0!==e&&n.group?this.instance._appendElementToGroup(n.group,t):this.instance._appendElementToContainer(t),this.instance.setPosition(t,s),delete i._jsPlumbParentGroup,{id:o,pos:s}}}},{key:"_updateConnectionsForGroup",value:function(t){var e=this;t.connections.source.length=0,t.connections.target.length=0,t.connections.internal.length=0;var i=t.children.slice().map((function(t){return t.el})),n=[];if(Gd(i,(function(t){Array.prototype.push.apply(n,e.instance.getSelector(t,ap))})),Array.prototype.push.apply(i,n),i.length>0){var o,s,r=this.instance.getConnections({source:i,scope:Of},!0),a=this.instance.getConnections({target:i,scope:Of},!0),l={},c=function(i){for(var n=0;n<i.length;n++)l[i[n].id]||(l[i[n].id]=!0,o=e.getGroupFor(i[n].source),s=e.getGroupFor(i[n].target),i[n].source===t.el&&s===t||i[n].target===t.el&&o===t?t.connections.internal.push(i[n]):o===t?(s!==t?t.connections.source.push(i[n]):t.connections.internal.push(i[n]),e._connectionSourceMap[i[n].id]=t):s===t&&(t.connections.target.push(i[n]),e._connectionTargetMap[i[n].id]=t))};c(r),c(a)}}},{key:"_collapseConnection",value:function(t,e,i){var n=t.endpoints[0===e?1:0].element;if(n._jsPlumbParentGroup&&!n._jsPlumbParentGroup.proxied&&n._jsPlumbParentGroup.collapsed)return!1;var o=t.endpoints[0].element._jsPlumbParentGroup,s=null!=o?o.collapseParent||o:null,r=t.endpoints[1].element._jsPlumbParentGroup,a=null!=r?r.collapseParent||r:null;if(null==s||null==a||s.id!==a.id){var l=i.el;return this.instance.getId(l),this.instance.proxyConnection(t,e,l,(function(t,e){return i.getEndpoint(t,e)}),(function(t,e){return i.getAnchor(t,e)})),!0}return!1}},{key:"_expandConnection",value:function(t,e,i){this.instance.unproxyConnection(t,e)}},{key:"isElementDescendant",value:function(t,e){for(var i=this.instance.getContainer();;){if(null==t||t===i)return!1;if(t===e)return!0;t=t.parentNode}}},{key:"collapseGroup",value:function(t){var e=this,i=this.getGroup(t);if(null!=i&&!i.collapsed){var n=i.el;if(null==i.collapseParent){if(this.instance.setGroupVisible(i,!1),i.collapsed=!0,this.instance.removeClass(n,Gu),this.instance.addClass(n,Wu),i.proxied){var o=new Set,s=function(t,n){for(var s=0;s<t.length;s++){var r=t[s];!0===e._collapseConnection(r,n,i)&&o.add(r.id)}};s(i.connections.source,0),s(i.connections.target,1),Gd(i.getGroups(),(function(t){e.cascadeCollapse(i,t,o)}))}this.instance.revalidate(n),this.repaintGroup(i),this.instance.fire("group:collapse",{group:i})}else i.collapsed=!0,this.instance.removeClass(n,Gu),this.instance.addClass(n,Wu)}}},{key:"cascadeCollapse",value:function(t,e,i){var n=this;if(t.proxied){var o=function(e,o){for(var s=0;s<e.length;s++){var r=e[s];i.has(r.id)||!0===n._collapseConnection(r,o,t)&&i.add(r.id)}};o(e.connections.source,0),o(e.connections.target,1)}Gd(e.getGroups(),(function(e){n.cascadeCollapse(t,e,i)}))}},{key:"expandGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(null!=n){var o=n.el;if(null==n.collapseParent){if(this.instance.setGroupVisible(n,!0),n.collapsed=!1,this.instance.addClass(o,Gu),this.instance.removeClass(o,Wu),n.proxied){var s=function(t,e){for(var o=0;o<t.length;o++){var s=t[o];i._expandConnection(s,e,n)}};s(n.connections.source,0),s(n.connections.target,1);Gd(n.getGroups(),(function t(e,n){if(n||e.collapsed){var o=function(t,n){for(var o=0;o<t.length;o++){var s=t[o];i._collapseConnection(s,n,e.collapseParent||e)}};o(e.connections.source,0),o(e.connections.target,1),Gd(e.connections.internal,(function(t){return t.setVisible(!1)})),Gd(e.getGroups(),(function(e){return t(e,!0)}))}else i.expandGroup(e,!0)}))}this.instance.revalidate(o),this.repaintGroup(n),e||this.instance.fire("group:expand",{group:n})}else n.collapsed=!1,this.instance.addClass(o,Gu),this.instance.removeClass(o,Wu)}}},{key:"toggleGroup",value:function(t){null!=(t=this.getGroup(t))&&(t.collapsed?this.expandGroup(t):this.collapseGroup(t))}},{key:"repaintGroup",value:function(t){for(var e=this.getGroup(t).children,i=0;i<e.length;i++)this.instance.revalidate(e[i].el)}},{key:"addToGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(n){for(var o=n.el,s=arguments.length,r=new Array(s>2?s-2:0),a=2;a<s;a++)r[a-2]=arguments[a];Gd(r,(function(t){var s=t,r=null!=s._isJsPlumbGroup,a=s._jsPlumbGroup,l=s._jsPlumbParentGroup;if(l!==n){var c=i.instance.manage(t),h=i.instance.getOffset(t),d=n.collapsed?i.instance.getOffsetRelativeToRoot(o):i.instance.getOffset(i.instance.getGroupContentArea(n));c.group=n.elId,null!=l&&(l.remove(t,!1,e,!1,n),i._updateConnectionsForGroup(l)),r?n.addGroup(a):n.add(t,e);var u=function(t,e){var o=0===e?1:0;t.each((function(t){t.setVisible(!1),t.endpoints[o].element._jsPlumbGroup===n?(t.endpoints[o].setVisible(!1),i._expandConnection(t,o,n)):(t.endpoints[e].setVisible(!1),i._collapseConnection(t,e,n))}))};n.collapsed&&(u(i.instance.select({source:t}),0),u(i.instance.select({target:t}),1)),i.instance.getId(t);var p={x:h.x-d.x,y:h.y-d.y};if(i.instance.setPosition(t,p),i._updateConnectionsForGroup(n),i.instance.revalidate(t),!e){var f={group:n,el:t,pos:p};l&&(f.sourceGroup=l),i.instance.fire("group:member:added",f)}}}))}}},{key:"removeFromGroup",value:function(t,e){var i=this,n=this.getGroup(t);if(n){for(var o=arguments.length,s=new Array(o>2?o-2:0),r=2;r<o;r++)s[r-2]=arguments[r];Gd(s,(function(t){if(n.collapsed){var o=function(e,o){for(var s=0;s<e.length;s++){var r=e[s];if(r.proxies)for(var a=0;a<r.proxies.length;a++)if(null!=r.proxies[a]){var l=r.proxies[a].originalEp.element;(l===t||i.isElementDescendant(l,t))&&i._expandConnection(r,o,n)}}};o(n.connections.source.slice(),0),o(n.connections.target.slice(),1)}n.remove(t,null,e);var s=i.instance.getManagedElements()[i.instance.getId(t)];s&&delete s.group}))}}},{key:"getAncestors",value:function(t){for(var e=[],i=t.group;null!=i;)e.push(i),i=i.group;return e}},{key:"isAncestor",value:function(t,e){return null!=t&&null!=e&&-1!==this.getAncestors(t).indexOf(e)}},{key:"getDescendants",value:function(t){var e=[];return function t(i){var n=i.getGroups();e.push.apply(e,Id(n)),Gd(n,t)}(t),e}},{key:"isDescendant",value:function(t,e){return null!=t&&null!=e&&-1!==this.getDescendants(e).indexOf(t)}},{key:"reset",value:function(){this._connectionSourceMap={},this._connectionTargetMap={},this.groupMap={}}}]),t}(),Sv=function(){function t(e,i){wd(this,t),this.instance=e,this.entries=i}return Sd(t,[{key:"length",get:function(){return this.entries.length}},{key:"each",value:function(t){return Gd(this.entries,(function(e){return t(e)})),this}},{key:"get",value:function(t){return this.entries[t]}},{key:"addClass",value:function(t,e){return this.each((function(i){return i.addClass(t,e)})),this}},{key:"removeClass",value:function(t,e){return this.each((function(i){return i.removeClass(t,e)})),this}},{key:"removeAllOverlays",value:function(){return this.each((function(t){return t.removeAllOverlays()})),this}},{key:"setLabel",value:function(t){return this.each((function(e){return e.setLabel(t)})),this}},{key:"clear",value:function(){return this.entries.length=0,this}},{key:"map",value:function(t){var e=[];return this.each((function(i){return e.push(t(i))})),e}},{key:"addOverlay",value:function(t){return this.each((function(e){return e.addOverlay(t)})),this}},{key:"removeOverlay",value:function(t){return this.each((function(e){return e.removeOverlay(t)})),this}},{key:"removeOverlays",value:function(){return this.each((function(t){return t.removeOverlays()})),this}},{key:"showOverlay",value:function(t){return this.each((function(e){return e.showOverlay(t)})),this}},{key:"hideOverlay",value:function(t){return this.each((function(e){return e.hideOverlay(t)})),this}},{key:"setPaintStyle",value:function(t){return this.each((function(e){return e.setPaintStyle(t)})),this}},{key:"setHoverPaintStyle",value:function(t){return this.each((function(e){return e.setHoverPaintStyle(t)})),this}},{key:"setSuspendEvents",value:function(t){return this.each((function(e){return e.setSuspendEvents(t)})),this}},{key:"setParameter",value:function(t,e){return this.each((function(i){return i.parameters[t]=e})),this}},{key:"setParameters",value:function(t){return this.each((function(e){return e.parameters=t})),this}},{key:"setVisible",value:function(t){return this.each((function(e){return e.setVisible(t)})),this}},{key:"addType",value:function(t){return this.each((function(e){return e.addType(t)})),this}},{key:"toggleType",value:function(t){return this.each((function(e){return e.toggleType(t)})),this}},{key:"removeType",value:function(t){return this.each((function(e){return e.removeType(t)})),this}},{key:"bind",value:function(t,e){return this.each((function(i){return i.bind(t,e)})),this}},{key:"unbind",value:function(t,e){return this.each((function(i){return i.unbind(t,e)})),this}},{key:"setHover",value:function(t){var e=this;return this.each((function(i){return e.instance.setHover(i,t)})),this}}]),t}(),Cv=function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}return Sd(i,[{key:"setEnabled",value:function(t){return this.each((function(e){return e.enabled=t})),this}},{key:"setAnchor",value:function(t){return this.each((function(e){return e.setAnchor(t)})),this}},{key:"deleteEveryConnection",value:function(){return this.each((function(t){return t.deleteEveryConnection()})),this}},{key:"deleteAll",value:function(){var t=this;return this.each((function(e){return t.instance.deleteEndpoint(e)})),this.clear(),this}}]),i}(Sv),Ev=function(t){Ed(i,t);var e=Pd(i);function i(){return wd(this,i),e.apply(this,arguments)}return Sd(i,[{key:"setDetachable",value:function(t){return this.each((function(e){return e.setDetachable(t)})),this}},{key:"setReattach",value:function(t){return this.each((function(e){return e.setReattach(t)})),this}},{key:"setConnector",value:function(t){return this.each((function(e){return e._setConnector(t)})),this}},{key:"deleteAll",value:function(){var t=this;this.each((function(e){return t.instance.deleteConnection(e)})),this.clear()}},{key:"repaint",value:function(){var t=this;return this.each((function(e){return t.instance._paintConnection(e)})),this}}]),i}(Sv),Av=function t(){wd(this,t),Cd(this,"affectedElements",new Set)};function Mv(){return{x:0,y:0,w:0,h:0,r:0,c:{x:0,y:0},x2:0,y2:0,t:{x:0,y:0,c:{x:0,y:0},w:0,h:0,r:0,x2:0,y2:0,cr:0,sr:0},dirty:!0}}var Tv=function(t,e){var i=0;return e[1]>t[1]?i=-1:e[1]<t[1]&&(i=1),i},Pv=function(t,e){return-1*Tv(t,e)};function Ov(t,e,i,n){!function(t,e,i,n){if(0===e.length)e.push(t);else{for(var o=n?-1:1,s=0,r=e.length,a=Math.floor((s+r)/2);r>s;)i(t,e[a])*o<0?r=a:s=a+1,a=Math.floor((s+r)/2);e.splice(a,0,t)}}([t,e],i,Tv,n)}function Dv(t,e){var i=Zd(e,(function(e){return e[0]===t}));i>-1&&e.splice(i,1)}var Iv,Lv=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),(n=e.call(this)).instance=t,Cd(Td(n),"_currentTransaction",null),Cd(Td(n),"_sortedElements",{xmin:[],xmax:[],ymin:[],ymax:[]}),Cd(Td(n),"_elementMap",new Map),Cd(Td(n),"_transformedElementMap",new Map),Cd(Td(n),"_bounds",{minx:0,maxx:0,miny:0,maxy:0}),n}return Sd(i,[{key:"_updateBounds",value:function(t,e,i){null!=e&&(Dv(t,this._sortedElements.xmin),Dv(t,this._sortedElements.xmax),Dv(t,this._sortedElements.ymin),Dv(t,this._sortedElements.ymax),Ov(t,e.t.x,this._sortedElements.xmin,!1),Ov(t,e.t.x+e.t.w,this._sortedElements.xmax,!0),Ov(t,e.t.y,this._sortedElements.ymin,!1),Ov(t,e.t.y+e.t.h,this._sortedElements.ymax,!0),!0!==i&&this._recalculateBounds())}},{key:"_recalculateBounds",value:function(){this._bounds.minx=this._sortedElements.xmin.length>0?this._sortedElements.xmin[0][1]:0,this._bounds.maxx=this._sortedElements.xmax.length>0?this._sortedElements.xmax[0][1]:0,this._bounds.miny=this._sortedElements.ymin.length>0?this._sortedElements.ymin[0][1]:0,this._bounds.maxy=this._sortedElements.ymax.length>0?this._sortedElements.ymax[0][1]:0}},{key:"recomputeBounds",value:function(){var t=this;this._sortedElements.xmin.length=0,this._sortedElements.xmax.length=0,this._sortedElements.ymin.length=0,this._sortedElements.ymax.length=0,this._elementMap.forEach((function(e,i){t._sortedElements.xmin.push([i,e.t.x]),t._sortedElements.xmax.push([i,e.t.x+e.t.w]),t._sortedElements.ymin.push([i,e.t.y]),t._sortedElements.ymax.push([i,e.t.y+e.t.h])})),this._sortedElements.xmin.sort(Tv),this._sortedElements.ymin.sort(Tv),this._sortedElements.xmax.sort(Pv),this._sortedElements.ymax.sort(Pv),this._recalculateBounds()}},{key:"_finaliseUpdate",value:function(t,e,i){e.t=function(t,e,i,n,o){var s=t+i/2,r=e+n/2,a=Math.cos(o/360*Math.PI*2),l=Math.sin(o/360*Math.PI*2),c=function(t,e){return{x:s+Math.round((t-s)*a-(e-r)*l),y:r+Math.round((e-r)*a-(t-s)*l)}},h=c(t,e),d=c(t+i,e),u=c(t+i,e+n),p=c(t,e+n),f=c(t+i/2,e+n/2),m=Math.min(h.x,d.x,u.x,p.x),g=Math.max(h.x,d.x,u.x,p.x),v=Math.min(h.y,d.y,u.y,p.y),y=Math.max(h.y,d.y,u.y,p.y);return{x:m,y:v,w:g-m,h:y-v,c:f,r:o,x2:g,y2:y,cr:a,sr:l}}(e.x,e.y,e.w,e.h,e.r),this._transformedElementMap.set(t,e.t),!0!==i&&this._updateBounds(t,e,i)}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"startTransaction",value:function(){if(null!=this._currentTransaction)throw new Error("Viewport: cannot start transaction; a transaction is currently active.");this._currentTransaction=new Av}},{key:"endTransaction",value:function(){var t=this;null!=this._currentTransaction&&(this._currentTransaction.affectedElements.forEach((function(e){var i=t.getPosition(e);t._finaliseUpdate(e,i,!0)})),this.recomputeBounds(),this._currentTransaction=null)}},{key:"updateElements",value:function(t){var e=this;Gd(t,(function(t){return e.updateElement(t.id,t.x,t.y,t.width,t.height,t.rotation)}))}},{key:"updateElement",value:function(t,e,i,n,o,s,r){var a=uu(this._elementMap,t,Mv);return a.dirty=null==e&&null==a.x||null==i&&null==a.y||null==n&&null==a.w||null==o&&null==a.h,null!=e&&(a.x=e),null!=i&&(a.y=i),null!=n&&(a.w=n),null!=o&&(a.h=o),null!=s&&(a.r=s||0),a.c.x=a.x+a.w/2,a.c.y=a.y+a.h/2,a.x2=a.x+a.w,a.y2=a.y+a.h,null==this._currentTransaction?this._finaliseUpdate(t,a,r):this._currentTransaction.affectedElements.add(t),a}},{key:"refreshElement",value:function(t,e){var i=this.instance.getManagedElements(),n=i[t]?i[t].el:null;if(null!=n){var o=this.getSize(n),s=this.getOffset(n);return this.updateElement(t,s.x,s.y,o.w,o.h,null,e)}return null}},{key:"getSize",value:function(t){return this.instance.getSize(t)}},{key:"getOffset",value:function(t){return this.instance.getOffset(t)}},{key:"registerElement",value:function(t,e){return this.updateElement(t,0,0,0,0,0,e)}},{key:"addElement",value:function(t,e,i,n,o,s){return this.updateElement(t,e,i,n,o,s)}},{key:"rotateElement",value:function(t,e){var i=uu(this._elementMap,t,Mv);return i.r=e||0,this._finaliseUpdate(t,i),i}},{key:"getBoundsWidth",value:function(){return this._bounds.maxx-this._bounds.minx}},{key:"getBoundsHeight",value:function(){return this._bounds.maxy-this._bounds.miny}},{key:"getX",value:function(){return this._bounds.minx}},{key:"getY",value:function(){return this._bounds.miny}},{key:"setSize",value:function(t,e,i){if(this._elementMap.has(t))return this.updateElement(t,null,null,e,i,null)}},{key:"setPosition",value:function(t,e,i){if(this._elementMap.has(t))return this.updateElement(t,e,i,null,null,null)}},{key:"reset",value:function(){this._sortedElements.xmin.length=0,this._sortedElements.xmax.length=0,this._sortedElements.ymin.length=0,this._sortedElements.ymax.length=0,this._elementMap.clear(),this._transformedElementMap.clear(),this._recalculateBounds()}},{key:"remove",value:function(t){Dv(t,this._sortedElements.xmin),Dv(t,this._sortedElements.xmax),Dv(t,this._sortedElements.ymin),Dv(t,this._sortedElements.ymax),this._elementMap.delete(t),this._transformedElementMap.delete(t),this._recalculateBounds()}},{key:"getPosition",value:function(t){return this._elementMap.get(t)}},{key:"getElements",value:function(){return this._elementMap}},{key:"isEmpty",value:function(){return 0===this._elementMap.size}}]),i}($g);function $v(t,e){return e.theta-t.theta}function zv(t,e){return(t.theta<0?-Math.PI-t.theta:Math.PI-t.theta)-(e.theta<0?-Math.PI-e.theta:Math.PI-e.theta)}var Rv=(Cd(Iv={},Km,zv),Cd(Iv,Jm,$v),Cd(Iv,tg,$v),Cd(Iv,Qm,zv),Iv);function Nv(t){return!0===t.isContinuous}function Bv(t){return!0===t.isContinuous}function jv(t){return t.locations.length>1}function Fv(t){return[t.currentLocation,t.locations[t.currentLocation]]}var qv=function(){function t(e){var i=this;wd(this,t),this.instance=e,Cd(this,"anchorLists",new Map),Cd(this,"anchorLocations",new Map),e.bind(Ju,(function(t){t.sourceEndpoint._anchor.isContinuous&&i._removeEndpointFromAnchorLists(t.sourceEndpoint),t.targetEndpoint._anchor.isContinuous&&i._removeEndpointFromAnchorLists(t.targetEndpoint)})),e.bind(Qu,(function(t){i._removeEndpointFromAnchorLists(t)}))}return Sd(t,[{key:"getAnchorOrientation",value:function(t){var e=this.anchorLocations.get(t.id);return e?[e.ox,e.oy]:[0,0]}},{key:"_distance",value:function(t,e,i,n,o,s,r){var a=n.x+t.x*o.w,l=n.y+t.y*o.h,c=n.x+o.w/2,h=n.y+o.h/2;if(null!=s&&s.length>0){var d=this.instance._applyRotations([a,l,0,0],s);a=d.x,l=d.y}return Math.sqrt(Math.pow(e-a,2)+Math.pow(i-l,2))+Math.sqrt(Math.pow(c-a,2)+Math.pow(h-l,2))}},{key:"_anchorSelector",value:function(t,e,i,n,o,s,r){for(var a=i.x+n.w/2,l=i.y+n.h/2,c=-1,h=1/0,d=0;d<r.length;d++){var u=this._distance(r[d],a,l,t,e,o,s);u<h&&(c=d+0,h=u)}return[c,r[c]]}},{key:"_floatingAnchorCompute",value:function(t,e){var i=e.xy,n={curX:i.x+t.size.w/2,curY:i.y+t.size.h/2,x:0,y:0,ox:0,oy:0};return this._setComputedPosition(t,n)}},{key:"_setComputedPosition",value:function(t,e,i){return this.anchorLocations.set(t.id,e),t.computedPosition=e,i&&(t.timestamp=i),e}},{key:"_computeSingleLocation",value:function(t,e,i,n){var o,s=n.rotation,r={curX:e.x+t.x*i.w+t.offx,curY:e.y+t.y*i.h+t.offy,x:t.x,y:t.y,ox:0,oy:0};if(null!=s&&s.length>0){var a=[t.iox,t.ioy],l={x:r.curX,y:r.curY,cr:0,sr:0};Gd(s,(function(t){l=ru(l,t.c,t.r);var e=[Math.round(a[0]*l.cr-a[1]*l.sr),Math.round(a[1]*l.cr+a[0]*l.sr)];a=e.slice()})),t.ox=a[0],t.oy=a[1],o={curX:l.x,curY:l.y,x:t.x,y:t.y,ox:a[0],oy:a[1]}}else t.ox=t.iox,t.oy=t.ioy,o=Rd({ox:t.iox,oy:t.ioy},r);return o}},{key:"_singleAnchorCompute",value:function(t,e){var i=e.xy,n=e.wh,o=e.timestamp,s=this.anchorLocations.get(t.id);if(null!=s&&o&&o===t.timestamp)return s;var r=Dd(Fv(t),2);r[0];var a=r[1];return s=this._computeSingleLocation(a,i,n,e),this._setComputedPosition(t,s,o)}},{key:"_defaultAnchorCompute",value:function(t,e){var i;if(1===t.locations.length)return this._singleAnchorCompute(t,e);var n=e.xy,o=e.wh,s=e.txy,r=e.twh,a=Dd(Fv(t),2),l=a[0],c=a[1];if(t.locked||null==s||null==r)i=this._computeSingleLocation(c,n,o,e);else{var h=Dd(this._anchorSelector(n,o,s,r,e.rotation,e.tRotation,t.locations),2),d=h[0],u=h[1];t.currentLocation=d,d!==l&&(t.cssClass=u.cls||t.cssClass,e.element._anchorLocationChanged(t)),i=this._computeSingleLocation(u,n,o,e)}return this._setComputedPosition(t,i,e.timestamp)}},{key:"_placeAnchors",value:function(t,e){var i=this,n=this.instance.viewport.getPosition(t),o=function(e,o,s,r,a,l){if(s.length>0)for(var c=s.sort(Rv[e]),h=function(t,e,i,n,o){for(var s=i?t.w:t.h,r=i?t.h:t.w,a=[],l=s/(e.length+1),c=0;c<e.length;c++){var h=(c+1)*l,d=n*r;o&&(h=s-h);var u=i?h:d,p=t.x+u,f=u/t.w,m=i?d:h,g=t.y+m,v=m/t.h;if(0!==t.r&&null!=t.r){var y=ru({x:p,y:g},t.c,t.r);p=y.x,g=y.y}a.push({x:p,y:g,xLoc:f,yLoc:v,c:e[c].c})}return a}(n,c,r,a,e===Jm||e===Km),d=0;d<h.length;d++){var u=h[d].c,p=u.endpoints[0].elementId===t?u.endpoints[0]:u.endpoints[1];i._setComputedPosition(p._anchor,{curX:h[d].x,curY:h[d].y,x:h[d].xLoc,y:h[d].yLoc,ox:l[0],oy:l[1]})}};o(tg,0,e.bottom,!0,1,[0,1]),o(Km,0,e.top,!0,0,[0,-1]),o(Qm,0,e.left,!1,0,[-1,0]),o(Jm,0,e.right,!1,1,[1,0])}},{key:"_updateAnchorList",value:function(t,e,i,n,o,s,r,a,l,c,h){var d,u=n.endpoints[r],p=u.id,f=[1,0][r],m={theta:e,order:i,c:n,b:o,elId:s,epId:p},g=t[l],v=u._continuousAnchorEdge?t[u._continuousAnchorEdge]:null;if(v){var y=Zd(v,(function(t){return t.epId===p}));if(-1!==y){v.splice(y,1);for(var b=0;b<v.length;b++)!0!==(d=v[b].c).placeholder&&c.add(d),h.add(v[b].c.endpoints[r]),h.add(v[b].c.endpoints[f])}}for(var x=0;x<g.length;x++)!0!==(d=g[x].c).placeholder&&c.add(d),h.add(g[x].c.endpoints[r]),h.add(g[x].c.endpoints[f]);var _=a?0:g.length;g.splice(_,0,m),u._continuousAnchorEdge=l}},{key:"_removeEndpointFromAnchorLists",value:function(t){var e=this.anchorLists.get(t.elementId),i=0;!function(t,e){if(t){var n=function(t){return t.epId===e};Kd(t.top,n),Kd(t.left,n),Kd(t.bottom,n),Kd(t.right,n),i+=t.top.length,i+=t.left.length,i+=t.bottom.length,i+=t.right.length}}(e,t.id),0===i&&this.anchorLists.delete(t.elementId),this.anchorLocations.delete(t._anchor.id)}},{key:"computeAnchorLocation",value:function(t,e){var i;return i=Nv(t)?this.anchorLocations.get(t.id)||{curX:0,curY:0,x:0,y:0,ox:0,oy:0}:Bv(t)?this._floatingAnchorCompute(t,e):this._defaultAnchorCompute(t,e),t.timestamp=e.timestamp,i}},{key:"computePath",value:function(t,e){var i=this.instance.viewport.getPosition(t.sourceId),n=this.instance.viewport.getPosition(t.targetId),o=t.endpoints[0],s=t.endpoints[1],r=this.getEndpointLocation(o,{xy:i,wh:i,element:o,timestamp:e,rotation:this.instance._getRotations(t.sourceId)}),a=this.getEndpointLocation(s,{xy:n,wh:n,element:s,timestamp:e,rotation:this.instance._getRotations(t.targetId)});t.connector.resetBounds(),t.connector.compute({sourcePos:r,targetPos:a,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1],strokeWidth:t.paintStyleInUse.strokeWidth,sourceInfo:i,targetInfo:n})}},{key:"getEndpointLocation",value:function(t,e){e=e||{};var i=t._anchor,n=this.anchorLocations.get(i.id);return(null==n||null!=e.timestamp&&i.timestamp!==e.timestamp)&&(n=this.computeAnchorLocation(i,e),this._setComputedPosition(i,n,e.timestamp)),n}},{key:"getEndpointOrientation",value:function(t){return t._anchor?this.getAnchorOrientation(t._anchor):[0,0]}},{key:"setAnchorOrientation",value:function(t,e){var i=this.anchorLocations.get(t.id);null!=i&&(i.ox=e[0],i.oy=e[1])}},{key:"isDynamicAnchor",value:function(t){return!!t._anchor&&(!Nv(t._anchor)&&t._anchor.locations.length>1)}},{key:"isFloating",value:function(t){return!!t._anchor&&Bv(t._anchor)}},{key:"prepareAnchor",value:function(t){return _g(t)}},{key:"redraw",value:function(t,e,i){var n=this,o=new Set,s=new Set,r=new Set;if(!this.instance._suspendDrawing){var a=this.instance.endpointsByElement[t]||[];e=e||su();for(var l,c,h={},d=0;d<a.length;d++)if(!1!==(c=a[d]).visible)if(s.add(c),l=c._anchor,0===c.connections.length)Nv(l)&&(this.anchorLists.has(t)||this.anchorLists.set(t,{top:[],right:[],bottom:[],left:[]}),this._updateAnchorList(this.anchorLists.get(t),-Math.PI/2,0,{endpoints:[c,c],placeholder:!0},!1,t,0,!1,ag(l),o,s),r.add(t));else for(var u=0;u<c.connections.length;u++){var p=c.connections[u],f=p.sourceId,m=p.targetId,g=Nv(p.endpoints[0]._anchor),v=Nv(p.endpoints[1]._anchor);if(g||v){var y=[f,(p.endpoints[0]._anchor.faces||[]).join("-"),m,(p.endpoints[1]._anchor.faces||[]).join("-")].join("-"),b=h[y],x=p.sourceId===t?1:0;g&&!this.anchorLists.has(f)&&this.anchorLists.set(f,{top:[],right:[],bottom:[],left:[]}),v&&!this.anchorLists.has(m)&&this.anchorLists.set(m,{top:[],right:[],bottom:[],left:[]});var _=this.instance.viewport.getPosition(m),w=this.instance.viewport.getPosition(f);if(m===f&&(g||v))this._updateAnchorList(this.anchorLists.get(f),-Math.PI/2,0,p,!1,m,0,!1,Km,o,s),this._updateAnchorList(this.anchorLists.get(m),-Math.PI/2,0,p,!1,f,1,!1,Km,o,s);else{var k=this.instance._getRotations(f),S=this.instance._getRotations(m);b||(b=this._calculateOrientation(f,m,w,_,p.endpoints[0]._anchor,p.endpoints[1]._anchor,k,S),h[y]=b),g&&this._updateAnchorList(this.anchorLists.get(f),b.theta,0,p,!1,m,0,!1,b.a[0],o,s),v&&this._updateAnchorList(this.anchorLists.get(m),b.theta2,-1,p,!0,f,1,!0,b.a[1],o,s)}g&&r.add(f),v&&r.add(m),o.add(p),(g&&0===x||v&&1===x)&&s.add(p.endpoints[x])}else{var C=c.connections[u].endpoints[p.sourceId===t?1:0];if(jv(C._anchor)){this.instance._paintEndpoint(C,{elementWithPrecedence:t,timestamp:e}),o.add(c.connections[u]);for(var E=0;E<C.connections.length;E++)C.connections[E]!==c.connections[u]&&o.add(C.connections[E])}else o.add(c.connections[u])}}r.forEach((function(t){n._placeAnchors(t,n.anchorLists.get(t))})),s.forEach((function(t){var i=n.instance.viewport.getPosition(t.elementId);n.instance._paintEndpoint(t,{timestamp:e,offset:i})})),o.forEach((function(t){n.instance._paintConnection(t,{timestamp:e})}))}return{c:o,e:s}}},{key:"reset",value:function(){this.anchorLocations.clear(),this.anchorLists.clear()}},{key:"setAnchor",value:function(t,e){null!=e&&(t._anchor=e)}},{key:"setConnectionAnchors",value:function(t,e){t.endpoints[0]._anchor=e[0],t.endpoints[1]._anchor=e[1]}},{key:"_calculateOrientation",value:function(t,e,i,n,o,s,r,a){var l=this;if(t===e)return{orientation:"identity",a:[Km,Km]};var c=Math.atan2(n.c.y-i.c.y,n.c.x-i.c.x),h=Math.atan2(i.c.y-n.c.y,i.c.x-n.c.x),d=[],u={};!function(t,e){for(var i=0;i<t.length;i++){var n;if(u[t[i]]=(Cd(n={},Qm,{x:e[i][0].x,y:e[i][0].c.y}),Cd(n,Jm,{x:e[i][0].x+e[i][0].w,y:e[i][0].c.y}),Cd(n,Km,{x:e[i][0].c.x,y:e[i][0].y}),Cd(n,tg,{x:e[i][0].c.x,y:e[i][0].y+e[i][0].h}),n),null!=e[i][1]&&e[i][1].length>0)for(var o in u[t[i]])u[t[i]][o]=l.instance._applyRotationsXY(u[t[i]][o],e[i][1])}}([Ou,Du],[[i,r],[n,a]]);for(var p=[Km,Qm,Jm,tg],f=0;f<p.length;f++)for(var m=0;m<p.length;m++)d.push({source:p[f],target:p[m],dist:rm(u.source[p[f]],u.target[p[m]])});d.sort((function(t,e){if(t.dist<e.dist)return-1;if(e.dist<t.dist)return 1;var i,n=(Cd(i={},Qm,0),Cd(i,Km,1),Cd(i,Jm,2),Cd(i,tg,3),i),o=n[t.source],s=n[e.source],r=n[t.target],a=n[e.target];return o<s?-1:s<o?1:r<a?-1:a<r?1:0}));for(var g=d[0].source,v=d[0].target,y=0;y<d.length&&(g=Nv(o)&&o.locked?o.currentFace:!o.isContinuous||cg(o,d[y].source)?d[y].source:null,v=s.isContinuous&&s.locked?s.currentFace:!s.isContinuous||cg(s,d[y].target)?d[y].target:null,null==g||null==v);y++);return o.isContinuous&&this.setCurrentFace(o,g),s.isContinuous&&this.setCurrentFace(s,v),{a:[g,v],theta:c,theta2:h}}},{key:"setCurrentFace",value:function(t,e,i){t.currentFace=e,i&&null!=t.lockedFace&&(t.lockedFace=t.currentFace)}},{key:"lock",value:function(t){t.locked=!0,Nv(t)&&(t.lockedFace=t.currentFace)}},{key:"unlock",value:function(t){t.locked=!1,Nv(t)&&(t.lockedFace=null)}},{key:"selectAnchorLocation",value:function(t,e){var i=Zd(t.locations,(function(t){return t.x===e.x&&t.y===e.y}));return-1!==i&&(t.currentLocation=i,!0)}},{key:"lockCurrentAxis",value:function(t){null!=t.currentFace&&(t.lockedAxis=t.currentFace===Qm||t.currentFace===Jm?eg:ig)}},{key:"unlockCurrentAxis",value:function(t){t.lockedAxis=null}},{key:"anchorsEqual",value:function(t,e){if(!t||!e)return!1;var i=t.locations[t.currentLocation],n=e.locations[e.currentLocation];return i.x===n.x&&i.y===n.y&&i.offx===n.offx&&i.offy===n.offy&&i.ox===n.ox&&i.oy===n.oy}}]),t}(),Vv={},Hv=function(t,e,i){var n=Vv[e];if(n)return new n(t,i);throw{message:"jsPlumb: unknown connector type '"+e+"'"}},Uv=function(t,e){Vv[t]=e},Wv=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),Cd(Td(n=e.call(this,t)),"length",void 0),Cd(Td(n),"m",void 0),Cd(Td(n),"m2",void 0),Cd(Td(n),"type",i.segmentType),n._setCoordinates({x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}),n}return Sd(i,[{key:"getPath",value:function(t){return(t?"M "+this.x1+" "+this.y1+" ":"")+"L "+this.x2+" "+this.y2}},{key:"_recalc",value:function(){this.length=Math.sqrt(Math.pow(this.x2-this.x1,2)+Math.pow(this.y2-this.y1,2)),this.m=sm({x:this.x1,y:this.y1},{x:this.x2,y:this.y2}),this.m2=-1/this.m,this.extents={xmin:Math.min(this.x1,this.x2),ymin:Math.min(this.y1,this.y2),xmax:Math.max(this.x1,this.x2),ymax:Math.max(this.y1,this.y2)}}},{key:"getLength",value:function(){return this.length}},{key:"getGradient",value:function(){return this.m}},{key:"_setCoordinates",value:function(t){this.x1=t.x1,this.y1=t.y1,this.x2=t.x2,this.y2=t.y2,this._recalc()}},{key:"pointOnPath",value:function(t,e){if(0!==t||e){if(1!==t||e){var i=e?t>0?t:this.length+t:t*this.length;return cm({x:this.x1,y:this.y1},{x:this.x2,y:this.y2},i)}return{x:this.x2,y:this.y2}}return{x:this.x1,y:this.y1}}},{key:"gradientAtPoint",value:function(t,e){return this.m}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this.pointOnPath(t,i),o=e<=0?{x:this.x1,y:this.y1}:{x:this.x2,y:this.y2};return e<=0&&Math.abs(e)>1&&(e*=-1),cm(n,o,e)}},{key:"within",value:function(t,e,i){return i>=Math.min(t,e)&&i<=Math.max(t,e)}},{key:"closest",value:function(t,e,i){return Math.abs(i-t)<Math.abs(i-e)?t:e}},{key:"findClosestPointOnPath",value:function(t,e){var i={d:1/0,x:null,y:null,l:null,x1:this.x1,x2:this.x2,y1:this.y1,y2:this.y2};if(0===this.m)i.y=this.y1,i.x=this.within(this.x1,this.x2,t)?t:this.closest(this.x1,this.x2,t);else if(this.m===1/0||this.m===-1/0)i.x=this.x1,i.y=this.within(this.y1,this.y2,e)?e:this.closest(this.y1,this.y2,e);else{var n=this.y1-this.m*this.x1,o=(e-this.m2*t-n)/(this.m-this.m2),s=this.m*o+n;i.x=this.within(this.x1,this.x2,o)?o:this.closest(this.x1,this.x2,o),i.y=this.within(this.y1,this.y2,s)?s:this.closest(this.y1,this.y2,s)}var r=rm({x:i.x,y:i.y},{x:this.x1,y:this.y1});return i.d=rm({x:t,y:e},i),i.l=r/length,i}},{key:"_pointLiesBetween",value:function(t,e,i){return i>e?e<=t&&t<=i:e>=t&&t>=i}},{key:"lineIntersection",value:function(t,e,i,n){var o=Math.abs(sm({x:t,y:e},{x:i,y:n})),s=Math.abs(this.m),r=s===1/0?this.x1:this.y1-s*this.x1,a=[],l=o===1/0?t:e-o*t;if(o!==s)if(o===1/0&&0===s)this._pointLiesBetween(t,this.x1,this.x2)&&this._pointLiesBetween(this.y1,e,n)&&a.push({x:t,y:this.y1});else if(0===o&&s===1/0)this._pointLiesBetween(e,this.y1,this.y2)&&this._pointLiesBetween(this.x1,t,i)&&a.push({x:this.x1,y:e});else{var c,h;o===1/0?(c=t,this._pointLiesBetween(c,this.x1,this.x2)&&(h=s*t+r,this._pointLiesBetween(h,e,n)&&a.push({x:c,y:h}))):0===o?(h=e,this._pointLiesBetween(h,this.y1,this.y2)&&(c=(e-r)/s,this._pointLiesBetween(c,t,i)&&a.push({x:c,y:h}))):(h=s*(c=(l-r)/(s-o))+r,this._pointLiesBetween(c,this.x1,this.x2)&&this._pointLiesBetween(h,this.y1,this.y2)&&a.push({x:c,y:h}))}return a}},{key:"boxIntersection",value:function(t,e,i,n){var o=[];return o.push.apply(o,this.lineIntersection(t,e,t+i,e)),o.push.apply(o,this.lineIntersection(t+i,e,t+i,e+n)),o.push.apply(o,this.lineIntersection(t+i,e+n,t,e+n)),o.push.apply(o,this.lineIntersection(t,e+n,t,e)),o}}]),i}(Ef);Cd(Wv,"segmentType","Straight");var Gv=function(t){Ed(i,t);var e=Pd(i);function i(){var t;wd(this,i);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return Cd(Td(t=e.call.apply(e,[this].concat(o))),"type",i.type),t}return Sd(i,[{key:"getDefaultStubs",value:function(){return[0,0]}},{key:"_compute",value:function(t,e){this._addSegment(Wv,{x1:t.sx,y1:t.sy,x2:t.startStubX,y2:t.startStubY}),this._addSegment(Wv,{x1:t.startStubX,y1:t.startStubY,x2:t.endStubX,y2:t.endStubY}),this._addSegment(Wv,{x1:t.endStubX,y1:t.endStubY,x2:t.tx,y2:t.ty}),this.geometry={source:e.sourcePos,target:e.targetPos}}},{key:"transformGeometry",value:function(t,e,i){return{source:this.transformAnchorPlacement(t.source,e,i),target:this.transformAnchorPlacement(t.target,e,i)}}}]),i}(cv);function Zv(t,e,i){var n=[],o=function(e){return Bd(e)?e:t.getId(e)};if(e)if("string"==typeof e){if("*"===e)return e;n.push(e)}else{var s;if(i)n=e;else if(null!=e.length)(s=n).push.apply(s,Id(Id(e).map(o)));else n.push(o(e))}return n}function Yv(t,e,i){null!=e&&(e.connections.push(t),1===e.connections.length&&t.instance.addClass(t.source,t.instance.connectedClass)),null!=i&&(null!=e&&t.sourceId===t.targetId||(i.connections.push(t),1===i.connections.length&&t.instance.addClass(t.target,t.instance.connectedClass)))}function Xv(t,e,i){if(null!=e){var n=e.connections.length;Kd(e.connections,(function(e){return t.id===e.id})),n>0&&0===e.connections.length&&t.instance.removeClass(t.source,t.instance.connectedClass)}if(null!=i){var o=i.connections.length;null!=e&&t.sourceId===t.targetId||Kd(i.connections,(function(e){return t.id===e.id})),o>0&&0===i.connections.length&&t.instance.removeClass(t.target,t.instance.connectedClass)}}Cd(Gv,"type","Straight");var Kv=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this))._instanceIndex=t,Cd(Td(o),"defaults",void 0),Cd(Td(o),"_initialDefaults",{}),Cd(Td(o),"isConnectionBeingDragged",!1),Cd(Td(o),"currentlyDragging",!1),Cd(Td(o),"hoverSuspended",!1),Cd(Td(o),"_suspendDrawing",!1),Cd(Td(o),"_suspendedAt",null),Cd(Td(o),"connectorClass",Vu),Cd(Td(o),"connectorOutlineClass","jtk-connector-outline"),Cd(Td(o),"connectedClass","jtk-connected"),Cd(Td(o),"endpointClass",Hu),Cd(Td(o),"endpointConnectedClass","jtk-endpoint-connected"),Cd(Td(o),"endpointFullClass","jtk-endpoint-full"),Cd(Td(o),"endpointFloatingClass",Uu),Cd(Td(o),"endpointDropAllowedClass","jtk-endpoint-drop-allowed"),Cd(Td(o),"endpointDropForbiddenClass","jtk-endpoint-drop-forbidden"),Cd(Td(o),"endpointAnchorClassPrefix","jtk-endpoint-anchor"),Cd(Td(o),"overlayClass",Zu),Cd(Td(o),"connections",[]),Cd(Td(o),"endpointsByElement",{}),Cd(Td(o),"endpointsByUUID",new Map),Cd(Td(o),"sourceSelectors",[]),Cd(Td(o),"targetSelectors",[]),Cd(Td(o),"allowNestedGroups",void 0),Cd(Td(o),"_curIdStamp",1),Cd(Td(o),"viewport",new Lv(Td(o))),Cd(Td(o),"router",void 0),Cd(Td(o),"groupManager",void 0),Cd(Td(o),"_connectionTypes",new Map),Cd(Td(o),"_endpointTypes",new Map),Cd(Td(o),"_container",void 0),Cd(Td(o),"_managedElements",{}),Cd(Td(o),"DEFAULT_SCOPE",void 0),Cd(Td(o),"_zoom",1),o.defaults={anchor:Cp.Bottom,anchors:[null,null],connectionsDetachable:!0,connectionOverlays:[],connector:Gv.type,container:null,endpoint:bv.type,endpointOverlays:[],endpoints:[null,null],endpointStyle:{fill:"#456"},endpointStyles:[null,null],endpointHoverStyle:null,endpointHoverStyles:[null,null],hoverPaintStyle:null,listStyle:{},maxConnections:1,paintStyle:{strokeWidth:2,stroke:"#456"},reattachConnections:!1,scope:"jsplumb_defaultscope",allowNestedGroups:!0},n&&Rd(o.defaults,n),Rd(o._initialDefaults,o.defaults),null!=o._initialDefaults[yv]&&(o._initialDefaults[yv].strokeWidth=o._initialDefaults[yv].strokeWidth||2),o.DEFAULT_SCOPE=o.defaults.scope,o.allowNestedGroups=!1!==o._initialDefaults.allowNestedGroups,o.router=new qv(Td(o)),o.groupManager=new kv(Td(o)),o.setContainer(o._initialDefaults.container),o}return Sd(i,[{key:"defaultScope",get:function(){return this.DEFAULT_SCOPE}},{key:"currentZoom",get:function(){return this._zoom}},{key:"areDefaultAnchorsSet",value:function(){return this.validAnchorsSpec(this.defaults.anchors)}},{key:"validAnchorsSpec",value:function(t){return null!=t&&null!=t[0]&&null!=t[1]}},{key:"getContainer",value:function(){return this._container}},{key:"setZoom",value:function(t,e){return this._zoom=t,this.fire(np,this._zoom),e&&this.repaintEverything(),!0}},{key:"_idstamp",value:function(){return""+this._curIdStamp++}},{key:"checkCondition",value:function(t,e){var i=this.getListener(t),n=!0;if(i&&i.length>0){var o=Array.prototype.slice.call(arguments,1);try{for(var s=0,r=i.length;s<r;s++)n=n&&i[s].apply(i[s],o)}catch(e){cu("cannot check condition ["+t+"]"+e)}}return n}},{key:"getId",value:function(t,e){if(null==t)return null;var i=this.getAttribute(t,Nu);return i&&"undefined"!==i||(2===arguments.length&&void 0!==arguments[1]?i=e:(1===arguments.length||3===arguments.length&&!arguments[2])&&(i="jsplumb-"+this._instanceIndex+"-"+this._idstamp()),this.setAttribute(t,Nu,i)),i}},{key:"getConnections",value:function(t,e){t?t.constructor===String&&(t={scope:t}):t={};for(var i=Zv(this,t.scope||this.defaultScope,!0),n=Zv(this,t.source),o=Zv(this,t.target),s=!e&&i.length>1?{}:[],r=function(t,n){if(!e&&i.length>1){var o=s[t];null==o&&(o=s[t]=[]),o.push(n)}else s.push(n)},a=0,l=this.connections.length;a<l;a++){var c=this.connections[a],h=c.proxies&&c.proxies[0]?c.proxies[0].originalEp.elementId:c.sourceId,d=c.proxies&&c.proxies[1]?c.proxies[1].originalEp.elementId:c.targetId;zd(i,c.scope)&&zd(n,h)&&zd(o,d)&&r(c.scope,c)}return s}},{key:"select",value:function(t){return(t=t||{}).scope=t.scope||"*",new Ev(this,t.connections||this.getConnections(t,!0))}},{key:"selectEndpoints",value:function(t){(t=t||{}).scope=t.scope||Of;var e=!t.element&&!t.source&&!t.target,i=e?Of:Zv(this,t.element),n=e?Of:Zv(this,t.source),o=e?Of:Zv(this,t.target),s=Zv(this,t.scope,!0),r=[];for(var a in this.endpointsByElement){var l=zd(i,a,!0),c=zd(n,a,!0),h="*"!==n,d=zd(o,a,!0),u="*"!==o;if(l||c||d)t:for(var p=0,f=this.endpointsByElement[a].length;p<f;p++){var m=this.endpointsByElement[a][p];if(zd(s,m.scope,!0)){var g=h&&n.length>0&&!m.isSource,v=u&&o.length>0&&!m.isTarget;if(g||v)continue t;r.push(m)}}}return new Cv(this,r)}},{key:"setContainer",value:function(t){this._container=t,this.fire("container:change",this._container)}},{key:"_set",value:function(t,e,i){var n,o,s=[{el:"source",elId:"sourceId"},{el:"target",elId:"targetId"}][i],r=t[s.elId],a=t.endpoints[i],l={index:i,originalEndpoint:a,originalSourceId:0===i?r:t.sourceId,newSourceId:t.sourceId,originalTargetId:1===i?r:t.targetId,newTargetId:t.targetId,connection:t,newEndpoint:a};return e instanceof tv?(n=e).addConnection(t):n=(o=this.getId(e))===t[s.elId]?null:t.makeEndpoint(0===i,e,o),null!=n&&(l.newEndpoint=n,a.detachFromConnection(t),t.endpoints[i]=n,t[s.el]=n.element,t[s.elId]=n.elementId,l[0===i?"newSourceId":"newTargetId"]=n.elementId,this.fireMoveEvent(l),this._paintConnection(t)),l}},{key:"setSource",value:function(t,e){Xv(t,this._managedElements[t.sourceId]);var i=this._set(t,e,0);Yv(t,this._managedElements[i.newSourceId])}},{key:"setTarget",value:function(t,e){Xv(t,this._managedElements[t.targetId]);var i=this._set(t,e,1);Yv(t,this._managedElements[i.newTargetId])}},{key:"setConnectionType",value:function(t,e,i){t.setType(e,i),this._paintConnection(t)}},{key:"isHoverSuspended",value:function(){return this.hoverSuspended}},{key:"setSuspendDrawing",value:function(t,e){var i=this._suspendDrawing;return this._suspendDrawing=t,t?this._suspendedAt=""+(new Date).getTime():(this._suspendedAt=null,this.viewport.recomputeBounds()),e&&this.repaintEverything(),i}},{key:"getSuspendedAt",value:function(){return this._suspendedAt}},{key:"batch",value:function(t,e){var i=!0===this._suspendDrawing;i||this.setSuspendDrawing(!0),t(),i||this.setSuspendDrawing(!1,!e)}},{key:"each",value:function(t,e){if(null!=t){if(null!=t.length)for(var i=0;i<t.length;i++)e(t[i]);else e(t);return this}}},{key:"updateOffset",value:function(t){var e=t.elId;return t.recalc?this.viewport.refreshElement(e):this.viewport.getPosition(e)}},{key:"deleteConnection",value:function(t,e){if(null!=t&&!0!==t.deleted&&((e=e||{}).force||Ud(!0,!1,[[t.endpoints[0],op,[t]],[t.endpoints[1],op,[t]],[t,op,[t]],[this,qu,[rp,t]]]))){Xv(t,this._managedElements[t.sourceId],this._managedElements[t.targetId]),this.fireDetachEvent(t,!t.pending&&!1!==e.fireEvent,e.originalEvent);var i=t.endpoints[0],n=t.endpoints[1];return i!==e.endpointToIgnore&&i.detachFromConnection(t,null,!0),n!==e.endpointToIgnore&&n.detachFromConnection(t,null,!0),Kd(this.connections,(function(e){return t.id===e.id})),t.destroy(),i!==e.endpointToIgnore&&i.deleteOnEmpty&&0===i.connections.length&&this.deleteEndpoint(i),n!==e.endpointToIgnore&&n.deleteOnEmpty&&0===n.connections.length&&this.deleteEndpoint(n),!0}return!1}},{key:"deleteEveryConnection",value:function(t){var e=this;t=t||{};var i=this.connections.length,n=0;return this.batch((function(){for(var o=0;o<i;o++)n+=e.deleteConnection(e.connections[0],t)?1:0})),n}},{key:"deleteConnectionsForElement",value:function(t,e){var i=this.getId(t),n=this._managedElements[i];if(n)for(var o=n.connections.length,s=0;s<o;s++)this.deleteConnection(n.connections[0],e);return this}},{key:"fireDetachEvent",value:function(t,e,i){var n=null!=t.id?{connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]}:t;e&&this.fire("connection:detach",n,i),this.fire(Ju,n,i)}},{key:"fireMoveEvent",value:function(t,e){this.fire(Ku,t,e)}},{key:"manageAll",value:function(t,e){for(var i=Bd(t)?this.getSelector(this.getContainer(),t):t,n=0;n<i.length;n++)this.manage(i[n],null,e)}},{key:"manage",value:function(t,e,i){null==this.getAttribute(t,Nu)&&(e=e||this.getAttribute(t,"id")||su(),this.setAttribute(t,Nu,e));var n=this.getId(t);if(this._managedElements[n])i&&(this._managedElements[n].viewportElement=this.updateOffset({elId:n,timestamp:null,recalc:!0}));else{var o={el:t,endpoints:[],connections:[],rotation:0,data:{}};this._managedElements[n]=o,this._suspendDrawing?o.viewportElement=this.viewport.registerElement(n,!0):o.viewportElement=this.updateOffset({elId:n,recalc:!0}),this.fire(tp,{el:t})}return this._managedElements[n]}},{key:"getManagedData",value:function(t,e,i){if(this._managedElements[t]){var n=this._managedElements[t].data[e];return null!=n?n[i]:null}}},{key:"setManagedData",value:function(t,e,i,n){this._managedElements[t]&&(this._managedElements[t].data[e]=this._managedElements[t].data[e]||{},this._managedElements[t].data[e][i]=n)}},{key:"getManagedElement",value:function(t){return this._managedElements[t]?this._managedElements[t].el:null}},{key:"unmanage",value:function(t,e){var i=this;this.removeAllEndpoints(t,!0);var n=function(t){var n=i.getId(t);i.removeAttribute(t,Nu),delete i._managedElements[n],i.viewport.remove(n),i.fire(ip,{el:t,id:n}),t&&e&&i._removeElement(t)};this._getAssociatedElements(t).map(n),n(t)}},{key:"rotate",value:function(t,e,i){var n=this.getId(t);return this._managedElements[n]&&(this._managedElements[n].rotation=e,this.viewport.rotateElement(n,e),!0!==i)?this.revalidate(t):{c:new Set,e:new Set}}},{key:"_getRotation",value:function(t){var e=this._managedElements[t];return null!=e&&e.rotation||0}},{key:"_getRotations",value:function(t){var e=this,i=[],n=this._managedElements[t];return null!=n&&(i.push({r:n.viewportElement.r||0,c:n.viewportElement.c}),function t(n){if(null!=n.group){var o=e._managedElements[n.group];null!=o&&(i.push({r:o.viewportElement.r,c:o.viewportElement.c}),t(o))}}(n)),i}},{key:"_applyRotations",value:function(t,e){var i=t.slice(),n={x:i[0],y:i[1],cr:0,sr:0};return Gd(e,(function(t){n=ru(n,t.c,t.r)})),n}},{key:"_applyRotationsXY",value:function(t,e){return Gd(e,(function(e){t=ru(t,e.c,e.r)})),t}},{key:"_internal_newEndpoint",value:function(t){var e=Rd({},t),i=this.manage(e.element);e.elementId=this.getId(e.element),e.id="ep_"+this._idstamp();var n=new tv(this,e);return function(t,e){null!=t&&t.endpoints.push(e)}(i,n),t.uuid&&this.endpointsByUUID.set(t.uuid,n),tu(this.endpointsByElement,n.elementId,n),this._suspendDrawing||this._paintEndpoint(n,{timestamp:this._suspendedAt}),n}},{key:"_deriveEndpointAndAnchorSpec",value:function(t,e){for(var i=((e?"":"default ")+t).split(/[\s]/),n=null,o=null,s=null,r=null,a=0;a<i.length;a++){var l=this.getConnectionType(i[a]);l&&(l.endpoints&&(n=l.endpoints),l.endpoint&&(o=l.endpoint),l.anchors&&(r=l.anchors),l.anchor&&(s=l.anchor))}return{endpoints:n||[o,o],anchors:r||[s,s]}}},{key:"revalidate",value:function(t,e){var i=this.getId(t);return this.updateOffset({elId:i,recalc:!0,timestamp:e}),this.repaint(t)}},{key:"repaintEverything",value:function(){var t,e=su();for(t in this._managedElements)this.viewport.refreshElement(t,!0);for(t in this.viewport.recomputeBounds(),this._managedElements)this.repaint(this._managedElements[t].el,e,!0);return this}},{key:"setElementPosition",value:function(t,e,i){var n=this.getId(t);return this.viewport.setPosition(n,e,i),this.repaint(t)}},{key:"repaint",value:function(t,e,i){var n={c:new Set,e:new Set},o=function(t){t.c.forEach((function(t){return n.c.add(t)})),t.e.forEach((function(t){return n.e.add(t)}))};if(!this._suspendDrawing){var s=this.getId(t);if(null!=t){var r=this._getAssociatedElements(t);if(null==e&&(e=su()),!i)for(var a=0;a<r.length;a++)this.updateOffset({elId:this.getId(r[a]),recalc:!0,timestamp:e});if(o(this.router.redraw(s,e,null)),r.length>0)for(var l=0;l<r.length;l++)o(this.router.redraw(this.getId(r[l]),e,null))}}return n}},{key:"unregisterEndpoint",value:function(t){var e=t.getUuid();e&&this.endpointsByUUID.delete(e),function(t,e){null!=t&&Kd(t.endpoints,(function(t){return t===e}))}(this._managedElements[t.elementId],t);var i=this.endpointsByElement[t.elementId];null!=i&&(this.endpointsByElement[t.elementId]=i.filter((function(e){return e!==t}))),this.fire(Qu,t)}},{key:"_maybePruneEndpoint",value:function(t){return!(!t.deleteOnEmpty||0!==t.connections.length)&&(this.deleteEndpoint(t),!0)}},{key:"deleteEndpoint",value:function(t){var e=this,i="string"==typeof t?this.endpointsByUUID.get(t):t;if(i){var n=i.proxiedBy,o=i.connections.slice();Gd(o,(function(t){i.detachFromConnection(t,null,!0)})),this.unregisterEndpoint(i),i.destroy(),Gd(o,(function(t){e.deleteConnection(t,{force:!0,endpointToIgnore:i})})),null!=n&&this.deleteEndpoint(n)}return this}},{key:"addEndpoint",value:function(t,e,i){var n=Rd({},i=i||{});Rd(n,e||{});var o=Rd({element:t},n);return this._internal_newEndpoint(o)}},{key:"addEndpoints",value:function(t,e,i){for(var n=[],o=0,s=e.length;o<s;o++)n.push(this.addEndpoint(t,e[o],i));return n}},{key:"reset",value:function(){var t=this;this.silently((function(){t.endpointsByElement={},t._managedElements={},t.endpointsByUUID.clear(),t.viewport.reset(),t.router.reset(),t.groupManager.reset(),t.connections.length=0}))}},{key:"destroy",value:function(){this.reset(),this.unbind(),this.sourceSelectors.length=0,this.targetSelectors.length=0,this._connectionTypes.clear(),this._endpointTypes.clear()}},{key:"getEndpoints",value:function(t){return this.endpointsByElement[this.getId(t)]||[]}},{key:"getEndpoint",value:function(t){return this.endpointsByUUID.get(t)}},{key:"setEndpointUuid",value:function(t,e){t.uuid&&this.endpointsByUUID.delete(t.uuid),t.uuid=e,this.endpointsByUUID.set(e,t)}},{key:"connect",value:function(t,e){try{var i=this._prepareConnectionParams(t,e),n=this._newConnection(i);return this._finaliseConnection(n,i),n}catch(t){return void cu(t)}}},{key:"_prepareConnectionParams",value:function(t,e){var i=Rd({},t);e&&Rd(i,e);var n=i;if(n.source&&n.source.endpoint&&(n.sourceEndpoint=n.source),n.target&&n.target.endpoint&&(n.targetEndpoint=n.target),t.uuids&&(n.sourceEndpoint=this.getEndpoint(t.uuids[0]),n.targetEndpoint=this.getEndpoint(t.uuids[1])),null!=n.sourceEndpoint){if(n.sourceEndpoint.isFull())throw"Cannot establish connection: source endpoint is full";if(n.type||(n.type=n.sourceEndpoint.edgeType),n.sourceEndpoint.connectorOverlays){n.overlays=n.overlays||[];for(var o=0,s=n.sourceEndpoint.connectorOverlays.length;o<s;o++)n.overlays.push(n.sourceEndpoint.connectorOverlays[o])}n.sourceEndpoint.scope&&(n.scope=n.sourceEndpoint.scope)}else if(null==n.source)throw"Cannot establish connection: source does not exist";if(null!=n.targetEndpoint){if(n.targetEndpoint.isFull())throw"Cannot establish connection: target endpoint is full"}else if(null==n.target)throw"Cannot establish connection: target does not exist";if(n.sourceEndpoint&&n.targetEndpoint&&!function(t,e){for(var i=t.scope.split(/\s/),n=e.scope.split(/\s/),o=0;o<i.length;o++)for(var s=0;s<n.length;s++)if(n[s]===i[o])return!0;return!1}(n.sourceEndpoint,n.targetEndpoint))throw"Cannot establish connection: scopes do not match";return n}},{key:"_newConnection",value:function(t){t.id="con_"+this._idstamp();var e=new ov(this,t);return Yv(e,this._managedElements[e.sourceId],this._managedElements[e.targetId]),this._paintConnection(e),e}},{key:"_finaliseConnection",value:function(t,e,i){e=e||{},t.suspendedEndpoint||this.connections.push(t),t.pending=null,t.endpoints[0].isTemporarySource=!1,this.repaint(t.source);var n={connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]};this.fire(Xu,n,i),e.doNotFireConnectionEvent||!1===e.fireEvent||this.fire(Yu,n,i)}},{key:"removeAllEndpoints",value:function(t,e){var i=this,n=function(t){var e,n,o=i.getId(t),s=i.endpointsByElement[o];if(s)for(e=0,n=s.length;e<n;e++)i.deleteEndpoint(s[e]);delete i.endpointsByElement[o]};return e&&this._getAssociatedElements(t).map(n),n(t),this}},{key:"_createSourceDefinition",value:function(t,e){var i=Rd({},e);Rd(i,t),i.edgeType=i.edgeType||Mf;var n=this._deriveEndpointAndAnchorSpec(i.edgeType);i.endpoint=i.endpoint||n.endpoints[0],i.anchor=i.anchor||n.anchors[0];var o=i.maxConnections||-1;return{def:Rd({},i),uniqueEndpoint:i.uniqueEndpoint,maxConnections:o,enabled:!0,endpoint:null}}},{key:"addSourceSelector",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._createSourceDefinition(e),o=new Eg(t,n,i);return this.sourceSelectors.push(o),o}},{key:"removeSourceSelector",value:function(t){Kd(this.sourceSelectors,(function(e){return e===t}))}},{key:"removeTargetSelector",value:function(t){Kd(this.targetSelectors,(function(e){return e===t}))}},{key:"addTargetSelector",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._createTargetDefinition(e),o=new Eg(t,n,i);return this.targetSelectors.push(o),o}},{key:"_createTargetDefinition",value:function(t,e){var i=Rd({},e);Rd(i,t),i.edgeType=i.edgeType||Mf;var n=i.maxConnections||-1;return{def:Rd({},i),uniqueEndpoint:i.uniqueEndpoint,maxConnections:n,enabled:!0,endpoint:null}}},{key:"show",value:function(t,e){return this._setVisible(t,Iu,e)}},{key:"hide",value:function(t,e){return this._setVisible(t,Lu,e)}},{key:"_setVisible",value:function(t,e,i){var n=e===Iu,o=null;i&&(o=function(t){t.setVisible(n,!0,!0)});var s=this.getId(t);return this._operation(t,(function(t){if(n&&i){var e=t.sourceId===s?1:0;t.endpoints[e].isVisible()&&t.setVisible(!0)}else t.setVisible(n)}),o),this}},{key:"toggleVisible",value:function(t,e){var i=null;e&&(i=function(t){var e=t.isVisible();t.setVisible(!e)}),this._operation(t,(function(t){var e=t.isVisible();t.setVisible(!e)}),i)}},{key:"_operation",value:function(t,e,i){var n=this.getId(t),o=this.endpointsByElement[n];if(o&&o.length)for(var s=0,r=o.length;s<r;s++){for(var a=0,l=o[s].connections.length;a<l;a++){if(e(o[s].connections[a]))return}i&&i(o[s])}}},{key:"registerConnectionType",value:function(t,e){if(this._connectionTypes.set(t,Rd({},e)),e.overlays){for(var i={},n=0;n<e.overlays.length;n++){var o=zg(e.overlays[n]);i[o.options.id]=o}this._connectionTypes.get(t).overlays=i}}},{key:"registerConnectionTypes",value:function(t){for(var e in t)this.registerConnectionType(e,t[e])}},{key:"registerEndpointType",value:function(t,e){if(this._endpointTypes.set(t,Rd({},e)),e.overlays){for(var i={},n=0;n<e.overlays.length;n++){var o=zg(e.overlays[n]);i[o.options.id]=o}this._endpointTypes.get(t).overlays=i}}},{key:"registerEndpointTypes",value:function(t){for(var e in t)this.registerEndpointType(e,t[e])}},{key:"getType",value:function(t,e){return"connection"===e?this.getConnectionType(t):this.getEndpointType(t)}},{key:"getConnectionType",value:function(t){return this._connectionTypes.get(t)}},{key:"getEndpointType",value:function(t){return this._endpointTypes.get(t)}},{key:"importDefaults",value:function(t){for(var e in t)this.defaults[e]=t[e];return null!=this.defaults[yv]&&(this.defaults[yv].strokeWidth=this.defaults[yv].strokeWidth||2),t.container&&this.setContainer(t.container),this}},{key:"restoreDefaults",value:function(){return this.defaults=Rd({},this._initialDefaults),this}},{key:"getManagedElements",value:function(){return this._managedElements}},{key:"proxyConnection",value:function(t,e,i,n,o){var s,r=null!=t.proxies[e],a=r?t.proxies[e].originalEp.elementId:t.endpoints[e].elementId,l=r?t.proxies[e].originalEp:t.endpoints[e],c=this.getId(i);t.proxies[e]?t.proxies[e].ep.elementId===c?s=t.proxies[e].ep:(t.proxies[e].ep.detachFromConnection(t,e),s=this._internal_newEndpoint({element:i,endpoint:n(t,e),anchor:o(t,e),parameters:{isProxyEndpoint:!0}})):s=this._internal_newEndpoint({element:i,endpoint:n(t,e),anchor:o(t,e),parameters:{isProxyEndpoint:!0}}),s.deleteOnEmpty=!0,t.proxies[e]={ep:s,originalEp:l},this.sourceOrTargetChanged(a,c,t,i,e),l.detachFromConnection(t,null,!0),s.connections=[t],t.endpoints[e]=s,l.proxiedBy=s,l.setVisible(!1),t.setVisible(!0),this.revalidate(i)}},{key:"unproxyConnection",value:function(t,e){if(null!=t.proxies&&null!=t.proxies[e]){var i=t.proxies[e].originalEp.element,n=t.proxies[e].originalEp.elementId,o=t.proxies[e].ep.elementId;t.endpoints[e]=t.proxies[e].originalEp,delete t.proxies[e].originalEp.proxiedBy,this.sourceOrTargetChanged(o,n,t,i,e),t.proxies[e].ep.detachFromConnection(t,null),t.proxies[e].originalEp.addConnection(t),t.isVisible()&&t.proxies[e].originalEp.setVisible(!0),t.proxies[e]=null,-1===Zd(t.proxies,(function(t){return null!=t}))&&(t.proxies.length=0)}}},{key:"sourceOrTargetChanged",value:function(t,e,i,n,o){t!==e&&(0===o?(i.sourceId=e,i.source=n):1===o&&(i.targetId=e,i.target=n),Xv(i,this._managedElements[t]),Yv(i,this._managedElements[e]))}},{key:"getGroup",value:function(t){return this.groupManager.getGroup(t)}},{key:"getGroupFor",value:function(t){return this.groupManager.getGroupFor(t)}},{key:"addGroup",value:function(t){return this.groupManager.addGroup(t)}},{key:"addToGroup",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return(e=this.groupManager).addToGroup.apply(e,[t,!1].concat(n))}},{key:"collapseGroup",value:function(t){this.groupManager.collapseGroup(t)}},{key:"expandGroup",value:function(t){this.groupManager.expandGroup(t)}},{key:"toggleGroup",value:function(t){this.groupManager.toggleGroup(t)}},{key:"removeGroup",value:function(t,e,i,n){return this.groupManager.removeGroup(t,e,i,n)}},{key:"removeAllGroups",value:function(t,e){this.groupManager.removeAllGroups(t,e,!1)}},{key:"removeFromGroup",value:function(t,e,i){this.groupManager.removeFromGroup(t,i,e),this._appendElement(e,this.getContainer()),this.updateOffset({recalc:!0,elId:this.getId(e)})}},{key:"_paintEndpoint",value:function(t,e){var i=(e=e||{}).timestamp,n=!(!1===e.recalc);if(!i||t.timestamp!==i){var o=this.viewport.getPosition(t.elementId),s=e.offset?{x:e.offset.x,y:e.offset.y}:{x:o.x,y:o.y};if(null!=s){var r=e.anchorLoc;if(null==r){var a={xy:s,wh:o,element:t,timestamp:i};if(n&&this.router.isDynamicAnchor(t)&&t.connections.length>0){var l=function(t){var i=0;if(null!=e.elementWithPrecedence)for(var n=0;n<t.connections.length;n++)if(t.connections[n].sourceId===e.elementWithPrecedence||t.connections[n].targetId===e.elementWithPrecedence){i=n;break}return t.connections[i]}(t),c=l.endpoints[0]===t?1:0,h=0===c?l.sourceId:l.targetId,d=this.viewport.getPosition(h);a.index=0===c?1:0,a.connection=l,a.txy=d,a.twh=d,a.tElement=l.endpoints[c],a.tRotation=this._getRotations(h)}else t.connections.length>0&&(a.connection=t.connections[0]);a.rotation=this._getRotations(t.elementId),r=this.router.computeAnchorLocation(t._anchor,a)}for(var u in t.endpoint.compute(r,this.router.getEndpointOrientation(t),t.paintStyleInUse),this.renderEndpoint(t,t.paintStyleInUse),t.timestamp=i,t.overlays)if(t.overlays.hasOwnProperty(u)){var p=t.overlays[u];p.isVisible()&&(t.overlayPlacements[u]=this.drawOverlay(p,t.endpoint,t.paintStyleInUse,t.getAbsoluteOverlayPosition(p)),this._paintOverlay(p,t.overlayPlacements[u],{xmin:0,ymin:0}))}}}}},{key:"_paintConnection",value:function(t,e){if(!this._suspendDrawing&&!1!==t.visible){var i=(e=e||{}).timestamp;if(null!=i&&i===t.lastPaintedAt)return;if(null==i||i!==t.lastPaintedAt){this.router.computePath(t,i);var n={xmin:1/0,ymin:1/0,xmax:-1/0,ymax:-1/0};for(var o in t.overlays)if(t.overlays.hasOwnProperty(o)){var s=t.overlays[o];s.isVisible()&&(t.overlayPlacements[o]=this.drawOverlay(s,t.connector,t.paintStyleInUse,t.getAbsoluteOverlayPosition(s)),n.xmin=Math.min(n.xmin,t.overlayPlacements[o].xmin),n.xmax=Math.max(n.xmax,t.overlayPlacements[o].xmax),n.ymin=Math.min(n.ymin,t.overlayPlacements[o].ymin),n.ymax=Math.max(n.ymax,t.overlayPlacements[o].ymax))}var r=parseFloat(""+t.paintStyleInUse.strokeWidth||"1")/2,a=parseFloat(""+t.paintStyleInUse.strokeWidth||"0"),l={xmin:Math.min(t.connector.bounds.xmin-(r+a),n.xmin),ymin:Math.min(t.connector.bounds.ymin-(r+a),n.ymin),xmax:Math.max(t.connector.bounds.xmax+(r+a),n.xmax),ymax:Math.max(t.connector.bounds.ymax+(r+a),n.ymax)};for(var c in this.paintConnector(t.connector,t.paintStyleInUse,l),t.overlays)if(t.overlays.hasOwnProperty(c)){var h=t.overlays[c];h.isVisible()&&this._paintOverlay(h,t.overlayPlacements[c],l)}}t.lastPaintedAt=i}}},{key:"_refreshEndpoint",value:function(t){t._anchor.isFloating||(t.connections.length>0?this.addEndpointClass(t,this.endpointConnectedClass):this.removeEndpointClass(t,this.endpointConnectedClass),t.isFull()?this.addEndpointClass(t,this.endpointFullClass):this.removeEndpointClass(t,this.endpointFullClass))}},{key:"_makeConnector",value:function(t,e,i){return Hv(t,e,i)}},{key:"addOverlay",value:function(t,e,i){if(t.addOverlay(e),!i){var n=t instanceof tv?t.element:t.source;this.revalidate(n)}}},{key:"removeOverlay",value:function(t,e){t.removeOverlay(e);var i=t instanceof tv?t.element:t.source;this.revalidate(i)}},{key:"setOutlineColor",value:function(t,e){t.paintStyleInUse.outlineStroke=e,this._paintConnection(t)}},{key:"setOutlineWidth",value:function(t,e){t.paintStyleInUse.outlineWidth=e,this._paintConnection(t)}},{key:"setColor",value:function(t,e){t.paintStyleInUse.stroke=e,this._paintConnection(t)}},{key:"setLineWidth",value:function(t,e){t.paintStyleInUse.strokeWidth=e,this._paintConnection(t)}},{key:"setLineStyle",value:function(t,e){null!=e.lineWidth&&(t.paintStyleInUse.strokeWidth=e.lineWidth),null!=e.outlineWidth&&(t.paintStyleInUse.outlineWidth=e.outlineWidth),null!=e.color&&(t.paintStyleInUse.stroke=e.color),null!=e.outlineColor&&(t.paintStyleInUse.outlineStroke=e.outlineColor),this._paintConnection(t)}},{key:"getPathData",value:function(t){for(var e="",i=0;i<t.segments.length;i++)e+=t.segments[i].getPath(0===i),e+=" ";return e}}]),i}($g),Qv={};function Jv(t,e){Qv[t]=e}function ty(t,e,i){var n=e,o=_d(e.getBoundingClientRect)!==Af?e.getBoundingClientRect():{left:0,top:0,width:0,height:0},s=document.body,r=document.documentElement,a=window.pageYOffset||r.scrollTop||s.scrollTop,l=window.pageXOffset||r.scrollLeft||s.scrollLeft,c=r.clientTop||s.clientTop||0,h=r.clientLeft||s.clientLeft||0,d=o.top+a-c+0*i,u=o.left+l-h+0*i,p=qf(t),f=o.width||n.offsetWidth*i,m=o.height||n.offsetHeight*i;return{x:(p.x-u)/f,y:(p.y-d)/m}}function ey(t){return dv(t)||pv(t)||mv(t)}function iy(t,e){t.canvas&&(t.canvas.style.display=e?"block":"none")}function ny(t){t.canvas&&t.canvas.parentNode.removeChild(t.canvas),delete t.canvas}function oy(t){return t.canvas}function sy(t){return Lg.getElement(t)}function ry(t){return Lg.getElement(t,t.component,(function(e){var i=t.create(e);return t.instance.addClass(i,t.instance.overlayClass),i}))}function ay(t,e,i,n){var o=t.x,s=t.y;return e._jsPlumbParentGroup&&e._jsPlumbParentGroup.constrain&&(o=Math.max(t.x,0),s=Math.max(t.y,0),o=Math.min(o,i.w-n.w),s=Math.min(s,i.h-n.h)),{x:o,y:s}}var ly=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;if(wd(this,i),(o=e.call(this,t,n))._instanceIndex=t,Cd(Td(o),"containerType",null),Cd(Td(o),"dragSelection",void 0),Cd(Td(o),"dragManager",void 0),Cd(Td(o),"_connectorClick",void 0),Cd(Td(o),"_connectorDblClick",void 0),Cd(Td(o),"_connectorTap",void 0),Cd(Td(o),"_connectorDblTap",void 0),Cd(Td(o),"_endpointClick",void 0),Cd(Td(o),"_endpointDblClick",void 0),Cd(Td(o),"_overlayClick",void 0),Cd(Td(o),"_overlayDblClick",void 0),Cd(Td(o),"_overlayTap",void 0),Cd(Td(o),"_overlayDblTap",void 0),Cd(Td(o),"_connectorMouseover",void 0),Cd(Td(o),"_connectorMouseout",void 0),Cd(Td(o),"_endpointMouseover",void 0),Cd(Td(o),"_endpointMouseout",void 0),Cd(Td(o),"_connectorContextmenu",void 0),Cd(Td(o),"_connectorMousedown",void 0),Cd(Td(o),"_connectorMouseup",void 0),Cd(Td(o),"_endpointMousedown",void 0),Cd(Td(o),"_endpointMouseup",void 0),Cd(Td(o),"_overlayMouseover",void 0),Cd(Td(o),"_overlayMouseout",void 0),Cd(Td(o),"_elementClick",void 0),Cd(Td(o),"_elementTap",void 0),Cd(Td(o),"_elementDblTap",void 0),Cd(Td(o),"_elementMouseenter",void 0),Cd(Td(o),"_elementMouseexit",void 0),Cd(Td(o),"_elementMousemove",void 0),Cd(Td(o),"_elementMouseup",void 0),Cd(Td(o),"_elementMousedown",void 0),Cd(Td(o),"_elementContextmenu",void 0),Cd(Td(o),"_resizeObserver",void 0),Cd(Td(o),"eventManager",void 0),Cd(Td(o),"draggingClass","jtk-dragging"),Cd(Td(o),"elementDraggingClass","jtk-element-dragging"),Cd(Td(o),"hoverClass","jtk-hover"),Cd(Td(o),"sourceElementDraggingClass","jtk-source-element-dragging"),Cd(Td(o),"targetElementDraggingClass","jtk-target-element-dragging"),Cd(Td(o),"hoverSourceClass","jtk-source-hover"),Cd(Td(o),"hoverTargetClass","jtk-target-hover"),Cd(Td(o),"dragSelectClass","jtk-drag-select"),Cd(Td(o),"managedElementsSelector",void 0),Cd(Td(o),"elementsDraggable",void 0),Cd(Td(o),"elementDragHandler",void 0),Cd(Td(o),"groupDragOptions",void 0),Cd(Td(o),"elementDragOptions",void 0),Cd(Td(o),"svg",{node:function(t,e){return bp(t,e)},attr:function(t,e){return yp(t,e)},pos:function(t){return xp(t)}}),n=n||{},o.containerType=Mu(o.getContainer()),o.elementsDraggable=n&&!1!==n.elementsDraggable,o.managedElementsSelector=n&&n.managedElementsSelector||ap,o.eventManager=new em,o.dragSelection=new Rm(Td(o)),o.dragManager=new jm(Td(o),o.dragSelection),o.dragManager.addHandler(new Dg(Td(o))),o.groupDragOptions={constrainFunction:ay},o.dragManager.addHandler(new Ig(Td(o),o.dragSelection),o.groupDragOptions),o.elementDragHandler=new Um(Td(o),o.dragSelection),o.elementDragOptions=n&&n.dragOptions||{},o.dragManager.addHandler(o.elementDragHandler,o.elementDragOptions),n&&n.dragOptions&&n.dragOptions.filter&&o.dragManager.addFilter(n.dragOptions.filter),o._createEventListeners(),o._attachEventDelegates(),!1!==n.resizeObserver)try{o._resizeObserver=new ResizeObserver((function(t){var e=t.filter((function(t){var e=o.getAttribute(t.target,Nu);if(null!=e){var i=o.viewport._elementMap.get(e);return!!i&&(i.w!==t.contentRect.width||i.h!==t.contentRect.height)}return!1}));e.forEach((function(t){return o.revalidate(t.target)}))}))}catch(t){cu("WARN: ResizeObserver could not be attached.")}return o}return Sd(i,[{key:"fireOverlayMethod",value:function(t,e,i){var n=kp(t.component instanceof ov?Op:Tp,e);i._jsPlumbOverlay=t,t.fire(e,{e:i,overlay:t}),this.fire(n,t.component,i)}},{key:"addDragFilter",value:function(t,e){this.dragManager.addFilter(t,e)}},{key:"removeDragFilter",value:function(t){this.dragManager.removeFilter(t)}},{key:"setDragGrid",value:function(t){this.dragManager.setOption(this.elementDragHandler,{grid:t})}},{key:"setDragConstrainFunction",value:function(t){this.dragManager.setOption(this.elementDragHandler,{constrainFunction:t})}},{key:"_removeElement",value:function(t){t.parentNode&&t.parentNode.removeChild(t)}},{key:"_appendElement",value:function(t,e){e&&e.appendChild(t)}},{key:"_appendElementToGroup",value:function(t,e){this.getGroupContentArea(t).appendChild(e)}},{key:"_appendElementToContainer",value:function(t){this._appendElement(t,this.getContainer())}},{key:"_getAssociatedElements",value:function(t){var e=[];if(3!==t.nodeType&&8!==t.nodeType){var i=t.querySelectorAll(ap);Array.prototype.push.apply(e,i)}return e.filter((function(t){return 3!==t.nodeType&&8!==t.nodeType}))}},{key:"shouldFireEvent",value:function(t,e,i){return!0}},{key:"getClass",value:function(t){return function(t){return yu(t)}(t)}},{key:"addClass",value:function(t,e){_u(t,e)}},{key:"hasClass",value:function(t,e){return function(t,e){return t.classList?t.classList.contains(e):-1!==yu(t).indexOf(e)}(t,e)}},{key:"removeClass",value:function(t,e){wu(t,e)}},{key:"toggleClass",value:function(t,e){!function(t,e){var i=this,n=function(t,e){null!=t&&null!=e&&e.length>0&&(t.classList?t.classList.toggle(e):i.hasClass(t,e)?i.removeClass(t,e):i.addClass(t,e))};xu(t)?Gd(t,(function(t){return n(t,e)})):n(t,e)}(t,e)}},{key:"setAttribute",value:function(t,e,i){t.setAttribute(e,i)}},{key:"getAttribute",value:function(t,e){return t.getAttribute(e)}},{key:"setAttributes",value:function(t,e){for(var i in e)t.setAttribute(i,e[i])}},{key:"removeAttribute",value:function(t,e){t.removeAttribute&&t.removeAttribute(e)}},{key:"on",value:function(t,e,i,n){var o=this,s=function(t){null==n?o.eventManager.on(t,e,i):o.eventManager.on(t,e,i,n)};return xu(t)?Gd(t,(function(t){return s(t)})):s(t),this}},{key:"off",value:function(t,e,i){var n=this;return xu(t)?Gd(t,(function(t){return n.eventManager.off(t,e,i)})):this.eventManager.off(t,e,i),this}},{key:"trigger",value:function(t,e,i,n,o){this.eventManager.trigger(t,e,i,n,o)}},{key:"getOffsetRelativeToRoot",value:function(t){return Cu(t)}},{key:"getOffset",value:function(t){for(var e,i=t,n=this.getContainer(),o=this.getPosition(i),s=t!==n&&i.offsetParent!==n?i.offsetParent:null;null!=s;)o.x+=s.offsetLeft,o.y+=s.offsetTop,null!=(e=s)&&e!==document.body&&(e.scrollTop>0||e.scrollLeft>0)&&(o.x-=e.scrollLeft,o.y-=e.scrollTop),s=s.offsetParent===n?null:s.offsetParent;if(null!=n&&(n.scrollTop>0||n.scrollLeft>0)){var r=null!=i.offsetParent?this.getStyle(i.offsetParent,yf):"static",a=this.getStyle(i,yf);a!==$u&&a!==zu&&r!==$u&&r!==zu&&(o.x-=n.scrollLeft,o.y-=n.scrollTop)}return o}},{key:"getSize",value:function(t){var e=t;return null!=e.offsetWidth?function(t){return{w:t.offsetWidth,h:t.offsetHeight}}(t):e.width&&e.width.baseVal?function(t){try{return{w:parseFloat(t.width.baseVal.value),h:parseFloat(t.height.baseVal.value)}}catch(t){return{w:0,h:0}}}(e):void 0}},{key:"getPosition",value:function(t){var e=t;return null!=e.offsetLeft?{x:parseFloat(e.offsetLeft),y:parseFloat(e.offsetTop)}:e.x&&e.x.baseVal?function(t){try{return{x:parseFloat(t.x.baseVal.value),y:parseFloat(t.y.baseVal.value)}}catch(t){return{x:0,y:0}}}(e):void 0}},{key:"getStyle",value:function(t,e){return _d(window.getComputedStyle)!==Af?getComputedStyle(t,null).getPropertyValue(e):t.currentStyle[e]}},{key:"getGroupContentArea",value:function(t){var e=this.getSelector(t.el,wf);return e&&e.length>0?e[0]:t.el}},{key:"getSelector",value:function(t,e){var i=null;if(1===arguments.length){if(!Bd(t)){var n=document.createDocumentFragment();return n.appendChild(t),Qd(n.childNodes)}i=Qd(document.querySelectorAll(t))}else i=Qd(t.querySelectorAll(e));return i}},{key:"setPosition",value:function(t,e){var i=t;i.style.left=e.x+"px",i.style.top=e.y+"px"}},{key:"setDraggable",value:function(t,e){e?this.removeAttribute(t,Bu):this.setAttribute(t,Bu,Tf)}},{key:"isDraggable",value:function(t){var e=this.getAttribute(t,Bu);return null==e||e===Pf}},{key:"toggleDraggable",value:function(t){var e=this.isDraggable(t);return this.setDraggable(t,!e),!e}},{key:"_createEventListeners",value:function(){var t=function(t,e){if(!e.defaultPrevented&&null==e._jsPlumbOverlay){var i=gu(vu(e),bf,this.getContainer(),!0);this.fire(t,i.jtk.connector.connection,e)}};this._connectorClick=t.bind(this,cf),this._connectorDblClick=t.bind(this,hf),this._connectorTap=t.bind(this,vf),this._connectorDblTap=t.bind(this,df);var e=function(t,e){var i=vu(e).parentNode;if(i.jtk&&i.jtk.connector){var n=i.jtk.connector,o=n.connection;this.setConnectorHover(n,t),t?(this.addClass(o.source,this.hoverSourceClass),this.addClass(o.target,this.hoverTargetClass)):(this.removeClass(o.source,this.hoverSourceClass),this.removeClass(o.target,this.hoverTargetClass)),this.fire(t?pf:uf,i.jtk.connector.connection,e)}};this._connectorMouseover=e.bind(this,!0),this._connectorMouseout=e.bind(this,!1);var i=function(t,e){var i=vu(e).parentNode;i.jtk&&i.jtk.connector&&this.fire(t?ff:mf,i.jtk.connector.connection,e)};this._connectorMouseup=i.bind(this,!0),this._connectorMousedown=i.bind(this,!1),this._connectorContextmenu=function(t){var e=vu(t).parentNode;e.jtk&&e.jtk.connector&&this.fire(gf,e.jtk.connector.connection,t)}.bind(this);var n=function(t,e,i){e.defaultPrevented||null!=e._jsPlumbOverlay||this.fire(t,i.jtk.endpoint,e)};this._endpointClick=n.bind(this,nf),this._endpointDblClick=n.bind(this,of);var o=function(t,e){var i=vu(e);i.jtk&&i.jtk.endpoint&&(this.setEndpointHover(i.jtk.endpoint,t),this.fire(t?rf:sf,i.jtk.endpoint,e))};this._endpointMouseover=o.bind(this,!0),this._endpointMouseout=o.bind(this,!1);var s=function(t,e){var i=vu(e);i.jtk&&i.jtk.endpoint&&this.fire(t?af:lf,i.jtk.endpoint,e)};this._endpointMouseup=s.bind(this,!0),this._endpointMousedown=s.bind(this,!1);var r=function(t,e){var i=gu(vu(e),kf,this.getContainer(),!0).jtk.overlay;i&&this.fireOverlayMethod(i,t,e)}.bind(this);this._overlayClick=r.bind(this,Dp),this._overlayDblClick=r.bind(this,Lp),this._overlayTap=r.bind(this,Vp),this._overlayDblTap=r.bind(this,$p);var a=function(t,e){var i=gu(vu(e),kf,this.getContainer(),!0).jtk.overlay;i&&this.setOverlayHover(i,t)};this._overlayMouseover=a.bind(this,!0),this._overlayMouseout=a.bind(this,!1);this._elementClick=function(t,e,i){e.defaultPrevented||this.fire(1===e.detail?Wp:Gp,i,e)}.bind(this,Wp);this._elementTap=function(t,e,i){e.defaultPrevented||this.fire(ef,i,e)}.bind(this,ef);this._elementDblTap=function(t,e,i){e.defaultPrevented||this.fire(Zp,i,e)}.bind(this,Zp);var l=function(t,e){this.fire(t?Xp:Yp,vu(e),e)};this._elementMouseenter=l.bind(this,!0),this._elementMouseexit=l.bind(this,!1),this._elementMousemove=function(t){this.fire(Kp,vu(t),t)}.bind(this),this._elementMouseup=function(t){this.fire(Qp,vu(t),t)}.bind(this),this._elementMousedown=function(t){this.fire(Jp,vu(t),t)}.bind(this),this._elementContextmenu=function(t){this.fire(tf,vu(t),t)}.bind(this)}},{key:"_attachEventDelegates",value:function(){var t=this.getContainer();this.eventManager.on(t,Dp,kf,this._overlayClick),this.eventManager.on(t,Lp,kf,this._overlayDblClick),this.eventManager.on(t,Vp,kf,this._overlayTap),this.eventManager.on(t,$p,kf,this._overlayDblTap),this.eventManager.on(t,Dp,bf,this._connectorClick),this.eventManager.on(t,Lp,bf,this._connectorDblClick),this.eventManager.on(t,Vp,bf,this._connectorTap),this.eventManager.on(t,$p,bf,this._connectorDblTap),this.eventManager.on(t,Dp,xf,this._endpointClick),this.eventManager.on(t,Lp,xf,this._endpointDblClick),this.eventManager.on(t,Dp,this.managedElementsSelector,this._elementClick),this.eventManager.on(t,Vp,this.managedElementsSelector,this._elementTap),this.eventManager.on(t,$p,this.managedElementsSelector,this._elementDblTap),this.eventManager.on(t,qp,bf,this._connectorMouseover),this.eventManager.on(t,Fp,bf,this._connectorMouseout),this.eventManager.on(t,Ip,bf,this._connectorContextmenu),this.eventManager.on(t,jp,bf,this._connectorMouseup),this.eventManager.on(t,zp,bf,this._connectorMousedown),this.eventManager.on(t,qp,xf,this._endpointMouseover),this.eventManager.on(t,Fp,xf,this._endpointMouseout),this.eventManager.on(t,jp,xf,this._endpointMouseup),this.eventManager.on(t,zp,xf,this._endpointMousedown),this.eventManager.on(t,qp,kf,this._overlayMouseover),this.eventManager.on(t,Fp,kf,this._overlayMouseout),this.eventManager.on(t,qp,ap,this._elementMouseenter),this.eventManager.on(t,Fp,ap,this._elementMouseexit),this.eventManager.on(t,Bp,ap,this._elementMousemove),this.eventManager.on(t,jp,ap,this._elementMouseup),this.eventManager.on(t,zp,ap,this._elementMousedown),this.eventManager.on(t,Ip,ap,this._elementContextmenu)}},{key:"_detachEventDelegates",value:function(){var t=this.getContainer();t&&(this.eventManager.off(t,Dp,this._connectorClick),this.eventManager.off(t,Lp,this._connectorDblClick),this.eventManager.off(t,Vp,this._connectorTap),this.eventManager.off(t,$p,this._connectorDblTap),this.eventManager.off(t,Dp,this._endpointClick),this.eventManager.off(t,Lp,this._endpointDblClick),this.eventManager.off(t,Dp,this._overlayClick),this.eventManager.off(t,Lp,this._overlayDblClick),this.eventManager.off(t,Vp,this._overlayTap),this.eventManager.off(t,$p,this._overlayDblTap),this.eventManager.off(t,Dp,this._elementClick),this.eventManager.off(t,Vp,this._elementTap),this.eventManager.off(t,$p,this._elementDblTap),this.eventManager.off(t,qp,this._connectorMouseover),this.eventManager.off(t,Fp,this._connectorMouseout),this.eventManager.off(t,Ip,this._connectorContextmenu),this.eventManager.off(t,jp,this._connectorMouseup),this.eventManager.off(t,zp,this._connectorMousedown),this.eventManager.off(t,qp,this._endpointMouseover),this.eventManager.off(t,Fp,this._endpointMouseout),this.eventManager.off(t,jp,this._endpointMouseup),this.eventManager.off(t,zp,this._endpointMousedown),this.eventManager.off(t,qp,this._overlayMouseover),this.eventManager.off(t,Fp,this._overlayMouseout),this.eventManager.off(t,Rp,this._elementMouseenter),this.eventManager.off(t,Np,this._elementMouseexit),this.eventManager.off(t,Bp,this._elementMousemove),this.eventManager.off(t,jp,this._elementMouseup),this.eventManager.off(t,zp,this._elementMousedown),this.eventManager.off(t,Ip,this._elementContextmenu))}},{key:"setContainer",value:function(t){var e,n=this;if(t===document||t===document.body)throw new Error("Cannot set document or document.body as container element");this._detachEventDelegates(),null!=this.dragManager&&(e=this.dragManager.reset()),this.setAttribute(t,Ep,su().replace("-",""));var o=this.getContainer();null!=o&&(o.removeAttribute(Ep),Gd(Qd(o.childNodes).filter((function(t){return null!=t&&(n.hasClass(t,Vu)||n.hasClass(t,Hu)||n.hasClass(t,Zu)||t.getAttribute&&null!=t.getAttribute(Nu))})),(function(e){t.appendChild(e)})));Od(Ad(i.prototype),"setContainer",this).call(this,t),this.containerType=Mu(t),null!=this.eventManager&&this._attachEventDelegates(),null!=this.dragManager&&(this.dragManager.addHandler(new Dg(this)),this.dragManager.addHandler(new Ig(this,this.dragSelection),this.groupDragOptions),this.elementDragHandler=new Um(this,this.dragSelection),this.dragManager.addHandler(this.elementDragHandler,this.elementDragOptions),null!=e&&this.dragManager.setFilters(e))}},{key:"reset",value:function(){Od(Ad(i.prototype),"reset",this).call(this),this._resizeObserver&&this._resizeObserver.disconnect(),Gd(this.getContainer().querySelectorAll([ap,xf,bf,kf].join(",")),(function(t){return t.parentNode&&t.parentNode.removeChild(t)}))}},{key:"destroy",value:function(){this._detachEventDelegates(),null!=this.dragManager&&this.dragManager.reset(),this.clearDragSelection(),Od(Ad(i.prototype),"destroy",this).call(this)}},{key:"unmanage",value:function(t,e){null!=this._resizeObserver&&this._resizeObserver.unobserve(t),this.removeFromDragSelection(t),Od(Ad(i.prototype),"unmanage",this).call(this,t,e)}},{key:"addToDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.add(e)}))}},{key:"clearDragSelection",value:function(){this.dragSelection.clear()}},{key:"removeFromDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.remove(e)}))}},{key:"toggleDragSelection",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];Gd(i,(function(e){return t.dragSelection.toggle(e)}))}},{key:"addToDragGroup",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this.elementDragHandler).addToDragGroup.apply(e,[t].concat(n))}},{key:"removeFromDragGroup",value:function(){var t;(t=this.elementDragHandler).removeFromDragGroup.apply(t,arguments)}},{key:"setDragGroupState",value:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this.elementDragHandler).setDragGroupState.apply(e,[t].concat(n))}},{key:"clearDragGroup",value:function(t){this.elementDragHandler.clearDragGroup(t)}},{key:"consume",value:function(t,e){mu(t,e)}},{key:"rotate",value:function(t,e,n){var o=this.getId(t);return this._managedElements[o]?(this._managedElements[o].el.style.transform="rotate("+e+"deg)",this._managedElements[o].el.style.transformOrigin="center center",Od(Ad(i.prototype),"rotate",this).call(this,t,e,n)):{c:new Set,e:new Set}}},{key:"addOverlayClass",value:function(t,e){if(qg(t))t.instance.addClass(sy(t),e);else if(ey(t))t.instance.addClass(sv(t),e);else{if(!vv(t))throw"Could not add class to overlay of type ["+t.type+"]";t.instance.addClass(ry(t),e)}}},{key:"removeOverlayClass",value:function(t,e){if(qg(t))t.instance.removeClass(sy(t),e);else if(ey(t))t.instance.removeClass(sv(t),e);else{if(!vv(t))throw"Could not remove class from overlay of type ["+t.type+"]";t.instance.removeClass(ry(t),e)}}},{key:"_paintOverlay",value:function(t,e,i){if(qg(t)){sy(t);var n=t.component.getXY();t.canvas.style.left=n.x+e.d.minx+"px",t.canvas.style.top=n.y+e.d.miny+"px"}else if(ey(t)){!function(t,e,i,n){sv(t);var o=[0,0];n.xmin<0&&(o[0]=-n.xmin),n.ymin<0&&(o[1]=-n.ymin);var s={d:e,stroke:i.stroke?i.stroke:null,fill:i.fill?i.fill:null,transform:"translate("+o[0]+","+o[1]+")","pointer-events":"visibleStroke"};yp(t.path,s)}(t,isNaN(e.d.cxy.x)||isNaN(e.d.cxy.y)?"M 0 0":"M"+e.d.hxy.x+","+e.d.hxy.y+" L"+e.d.tail[0].x+","+e.d.tail[0].y+" L"+e.d.cxy.x+","+e.d.cxy.y+" L"+e.d.tail[1].x+","+e.d.tail[1].y+" Z",e,i)}else{if(!vv(t))throw"Could not paint overlay of type ["+t.type+"]";ry(t);var o=t.component.getXY();t.canvas.style.left=o.x+e.d.minx+"px",t.canvas.style.top=o.y+e.d.miny+"px"}}},{key:"setOverlayVisible",value:function(t,e){var i=e?"block":"none";function n(t){null!=t&&(t.style.display=i)}qg(t)?n(sy(t)):vv(t)?n(ry(t)):ey(t)&&n(t.path)}},{key:"reattachOverlay",value:function(t,e){qg(t)?t.instance._appendElement(sy(t),this.getContainer()):vv(t)?t.instance._appendElement(ry(t),this.getContainer()):ey(t)&&this._appendElement(sv(t),e.connector.canvas)}},{key:"setOverlayHover",value:function(t,e){var i;qg(t)?i=sy(t):vv(t)?i=ry(t):ey(t)&&(i=sv(t)),null!=i&&(null!=this.hoverClass&&(e?this.addClass(i,this.hoverClass):this.removeClass(i,this.hoverClass)),this.setHover(t.component,e))}},{key:"destroyOverlay",value:function(t){if(qg(t)){var e=sy(t);e.parentNode.removeChild(e),delete t.canvas,delete t.cachedDimensions}else if(dv(t)||pv(t)||mv(t))!function(t,e){var i=t;null!=i.path&&null!=i.path.parentNode&&i.path.parentNode.removeChild(i.path),null!=i.bgPath&&null!=i.bgPath.parentNode&&i.bgPath.parentNode.removeChild(i.bgPath),delete i.path,delete i.bgPath}(t);else if(vv(t)){var i=ry(t);i.parentNode.removeChild(i),delete t.canvas,delete t.cachedDimensions}}},{key:"drawOverlay",value:function(t,e,i,n){if(qg(t)||vv(t)){var o=Lg._getDimensions(t);if(null!=o&&null!=o.w&&null!=o.h){var s={x:0,y:0};if(n)s={x:n.x,y:n.y};else if(e instanceof Xm){var r=Array.isArray(t.location)?t.location:[t.location,t.location];s={x:r[0]*e.w,y:r[1]*e.h}}else{var a=t.location,l=!1;(Bd(t.location)||t.location<0||t.location>1)&&(a=parseInt(""+t.location,10),l=!0),s=e.pointOnPath(a,l)}var c=s.x-o.w/2,h=s.y-o.h/2;return{component:t,d:{minx:c,miny:h,td:o,cxy:s},xmin:c,xmax:c+o.w,ymin:h,ymax:h+o.h}}return{xmin:0,xmax:0,ymin:0,ymax:0}}if(dv(t)||pv(t)||mv(t))return t.draw(e,i,n);throw"Could not draw overlay of type ["+t.type+"]"}},{key:"updateLabel",value:function(t){if(qd(t.label)){var e=t.label(this);sy(t).innerText=null!=e?e:""}else null==t.labelText&&(t.labelText=t.label,null!=t.labelText?sy(t).innerText=t.labelText:sy(t).innerText="")}},{key:"setHover",value:function(t,e){t._hover=e,t instanceof tv&&null!=t.endpoint?this.setEndpointHover(t,e,-1):t instanceof ov&&null!=t.connector&&this.setConnectorHover(t.connector,e)}},{key:"paintConnector",value:function(t,e,i){av(this,t,e,i)}},{key:"setConnectorHover",value:function(t,e,i){if(!1===e||!this.currentlyDragging&&!this.isHoverSuspended()){var n=t.canvas;null!=n&&(null!=t.hoverClass&&(e?this.addClass(n,t.hoverClass):this.removeClass(n,t.hoverClass)),e?this.addClass(n,this.hoverClass):this.removeClass(n,this.hoverClass)),null!=t.connection.hoverPaintStyle&&(t.connection.paintStyleInUse=e?t.connection.hoverPaintStyle:t.connection.paintStyle,this._suspendDrawing||this._paintConnection(t.connection)),t.connection.endpoints[0]!==i&&this.setEndpointHover(t.connection.endpoints[0],e,0,!0),t.connection.endpoints[1]!==i&&this.setEndpointHover(t.connection.endpoints[1],e,1,!0)}}},{key:"destroyConnector",value:function(t){null!=t.connector&&ny(t.connector)}},{key:"addConnectorClass",value:function(t,e){t.canvas&&this.addClass(t.canvas,e)}},{key:"removeConnectorClass",value:function(t,e){t.canvas&&this.removeClass(t.canvas,e)}},{key:"getConnectorClass",value:function(t){return t.canvas?t.canvas.className.baseVal:""}},{key:"setConnectorVisible",value:function(t,e){iy(t,e)}},{key:"applyConnectorType",value:function(t,e){if(t.canvas&&e.cssClass){var i=Array.isArray(e.cssClass)?e.cssClass:[e.cssClass];this.addClass(t.canvas,i.join(" "))}}},{key:"addEndpointClass",value:function(t,e){var i=oy(t.endpoint);null!=i&&this.addClass(i,e)}},{key:"applyEndpointType",value:function(t,e){if(e.cssClass){var i=oy(t.endpoint);if(i){var n=Array.isArray(e.cssClass)?e.cssClass:[e.cssClass];this.addClass(i,n.join(" "))}}}},{key:"destroyEndpoint",value:function(t){var e=this.endpointAnchorClassPrefix+(t.currentAnchorClass?"-"+t.currentAnchorClass:"");this.removeClass(t.element,e),ny(t.endpoint)}},{key:"renderEndpoint",value:function(t,e){var i=Qv[t.endpoint.type];null!=i?lv.paint(t.endpoint,i,e):cu("jsPlumb: no endpoint renderer found for type ["+t.endpoint.type+"]")}},{key:"removeEndpointClass",value:function(t,e){var i=oy(t.endpoint);null!=i&&this.removeClass(i,e)}},{key:"getEndpointClass",value:function(t){var e=oy(t.endpoint);return null!=e?e.className:""}},{key:"setEndpointHover",value:function(t,e,i,n){if(null!=t&&(!1===e||!this.currentlyDragging&&!this.isHoverSuspended())){var o=oy(t.endpoint);if(null!=o&&(null!=t.hoverClass&&(e?this.addClass(o,t.hoverClass):this.removeClass(o,t.hoverClass)),0===i||1===i)){var s=0===i?this.hoverSourceClass:this.hoverTargetClass;e?this.addClass(o,s):this.removeClass(o,s)}if(null!=t.hoverPaintStyle&&(t.paintStyleInUse=e?t.hoverPaintStyle:t.paintStyle,this._suspendDrawing||this.renderEndpoint(t,t.paintStyleInUse)),!n)for(var r=0;r<t.connections.length;r++)this.setConnectorHover(t.connections[r].connector,e,t)}}},{key:"setEndpointVisible",value:function(t,e){iy(t.endpoint,e)}},{key:"setGroupVisible",value:function(t,e){for(var i=t.el.querySelectorAll(ap),n=0;n<i.length;n++)e?this.show(i[n],!0):this.hide(i[n],!0)}},{key:"deleteConnection",value:function(t,e){return null!=t&&!0!==t.deleted&&(!0!==t.endpoints[0].deleted&&this.setEndpointHover(t.endpoints[0],!1,0,!0),!0!==t.endpoints[1].deleted&&this.setEndpointHover(t.endpoints[1],!1,1,!0),Od(Ad(i.prototype),"deleteConnection",this).call(this,t,e))}},{key:"addSourceSelector",value:function(t,e,n){return this.addDragFilter(t),Od(Ad(i.prototype),"addSourceSelector",this).call(this,t,e,n)}},{key:"removeSourceSelector",value:function(t){this.removeDragFilter(t.selector),Od(Ad(i.prototype),"removeSourceSelector",this).call(this,t)}},{key:"manage",value:function(t,e,n){if(this.containerType===iu.SVG&&Mu(t)!==iu.SVG)throw new Error("ERROR: cannot manage non-svg element when container is an SVG element.");var o=Od(Ad(i.prototype),"manage",this).call(this,t,e,n);return null!=o&&null!=this._resizeObserver&&this._resizeObserver.observe(o.el),o}}]),i}(Kv),cy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"width",void 0),Cd(Td(o),"height",void 0),Cd(Td(o),"type",i.type),n=n||{},o.width=n.width||10,o.height=n.height||10,o}return Sd(i,null,[{key:"_getParams",value:function(t){return{width:t.width,height:t.height}}}]),i}(Xm);Cd(cy,"type","Rectangle");var hy={type:cy.type,cls:cy,compute:function(t,e,i,n){var o=n.width||t.width,s=n.height||t.height,r=e.curX-o/2,a=e.curY-s/2;return t.x=r,t.y=a,t.w=o,t.h=s,[r,a,o,s]},getParams:function(t){return{width:t.width,height:t.height}}},dy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),Cd(Td(o=e.call(this,t,n)),"type",i.type),o}return i}(Xm);Cd(dy,"type","Blank");var uy,py={type:dy.type,cls:dy,compute:function(t,e,i,n){return t.x=e.curX,t.y=e.curY,t.w=10,t.h=0,[e.curX,e.curY,10,0]},getParams:function(t){return{}}},fy={width:10,height:0,fill:"transparent",stroke:"transparent"};Jv(bv.type,{makeNode:function(t,e){return bp("circle",{cx:t.w/2,cy:t.h/2,r:t.radius})},updateNode:function(t,e){yp(e,{cx:""+t.w/2,cy:""+t.h/2,r:""+t.radius})}}),Jv(dy.type,{makeNode:function(t,e){return bp("rect",fy)},updateNode:function(t,e){yp(e,fy)}}),Jv(cy.type,{makeNode:function(t,e){return bp("rect",{width:t.w,height:t.h})},updateNode:function(t,e){yp(e,{width:t.w,height:t.h})}}),function(t){t[t.top=0]="top",t[t.bottom=1]="bottom"}(uy||(uy={}));var my=new Map;my.set(uy.top,[Cp.TopRight,Cp.TopLeft]),my.set(uy.bottom,[Cp.BottomRight,Cp.BottomLeft]);var gy={deriveAnchor:function(t,e,i,n){return my.get(t)[e]}},vy="jtk-scrollable-list",yy=Pu(vy),by="scroll";!function(){function t(e,i){var n=this;wd(this,t),this.instance=e,Cd(this,"options",void 0),Cd(this,"count",void 0),Cd(this,"lists",void 0),this.count=0,this.lists={},this.options=i||{},this.instance.bind(tp,(function(t){for(var e=n.instance.getSelector(t.el,yy),i=0;i<e.length;i++)n.addList(e[i])})),this.instance.bind(ip,(function(t){n.removeList(t.el)})),this.instance.bind(Yu,(function(t,e){if(null==e){var i=n.findParentList(t.target);null!=i&&i.newConnection(t.connection,t.target,1);var o=n.findParentList(t.source);null!=o&&o.newConnection(t.connection,t.source,0)}})),this.instance.bind(sp,(function(t){var e=t.dropEndpoint.element,i=n.findParentList(e);return null==i||e.offsetTop>=i.domElement.scrollTop&&e.offsetTop+e.offsetHeight<=i.domElement.scrollTop+i.domElement.offsetHeight}))}Sd(t,[{key:"addList",value:function(t,e){var i=Rd({},gy);Rd(i,this.options),e=Rd(i,e||{});var n=[this.instance._instanceIndex,this.count++].join("_");return this.lists[n]=new xy(this.instance,t,e,n),this.lists[n]}},{key:"getList",value:function(t){var e=this.instance.getAttribute(t,vy);if(null!=e)return this.lists[e]}},{key:"removeList",value:function(t){var e=this.getList(t);e&&(e.destroy(),delete this.lists[e.id])}},{key:"findParentList",value:function(t){for(var e,i=t.parentNode,n=this.instance.getContainer();null!=i&&i!==n&&i!==document;){if(null!=(e=this.getList(i)))return e;i=i.parentNode}}}])}();var xy=function(){function t(e,i,n,o){wd(this,t),this.instance=e,this.el=i,this.options=n,this.id=o,Cd(this,"_scrollHandler",void 0),Cd(this,"domElement",void 0),Cd(this,"elId",void 0),this.domElement=i,this.elId=this.instance.getId(i),e.setAttribute(i,vy,o),this._scrollHandler=this.scrollHandler.bind(this),this.domElement._jsPlumbScrollHandler=this._scrollHandler,e.on(i,by,this._scrollHandler),this._scrollHandler()}return Sd(t,[{key:"deriveAnchor",value:function(t,e,i,n){return this.options.anchor?this.options.anchor:this.options.deriveAnchor(t,e,i,n)}},{key:"deriveEndpoint",value:function(t,e,i,n){return this.options.deriveEndpoint?this.options.deriveEndpoint(t,e,i,n):this.options.endpoint?this.options.endpoint:i.endpoint.type}},{key:"newConnection",value:function(t,e,i){e.offsetTop<this.el.scrollTop?this._proxyConnection(e,t,i,uy.top):e.offsetTop+e.offsetHeight>this.el.scrollTop+this.domElement.offsetHeight&&this._proxyConnection(e,t,i,uy.bottom)}},{key:"scrollHandler",value:function(){for(var t=this,e=this.instance.getSelector(this.el,ap),i=function(i){if(e[i].offsetTop<t.el.scrollTop)e[i]._jsPlumbProxies=e[i]._jsPlumbProxies||[],t.instance.select({source:e[i]}).each((function(n){t._proxyConnection(e[i],n,0,uy.top)})),t.instance.select({target:e[i]}).each((function(n){t._proxyConnection(e[i],n,1,uy.top)}));else if(e[i].offsetTop+e[i].offsetHeight>t.el.scrollTop+t.domElement.offsetHeight)e[i]._jsPlumbProxies=e[i]._jsPlumbProxies||[],t.instance.select({source:e[i]}).each((function(n){t._proxyConnection(e[i],n,0,uy.bottom)})),t.instance.select({target:e[i]}).each((function(n){t._proxyConnection(e[i],n,1,uy.bottom)}));else if(e[i]._jsPlumbProxies){for(var n=0;n<e[i]._jsPlumbProxies.length;n++)t.instance.unproxyConnection(e[i]._jsPlumbProxies[n][0],e[i]._jsPlumbProxies[n][1]);delete e[i]._jsPlumbProxies}t.instance.revalidate(e[i])},n=0;n<e.length;n++)i(n)}},{key:"_proxyConnection",value:function(t,e,i,n){var o=this;this.instance.proxyConnection(e,i,this.domElement,(function(t,i){return o.deriveEndpoint(n,i,e.endpoints[i],e)}),(function(t,i){return o.deriveAnchor(n,i,e.endpoints[i],e)})),t._jsPlumbProxies=t._jsPlumbProxies||[],t._jsPlumbProxies.push([e,i])}},{key:"destroy",value:function(){this.instance.off(this.el,by,this._scrollHandler),delete this.domElement._jsPlumbScrollHandler;for(var t=this.instance.getSelector(this.el,ap),e=0;e<t.length;e++)if(t[e]._jsPlumbProxies){for(var i=0;i<t[e]._jsPlumbProxies.length;i++)this.instance.unproxyConnection(t[e]._jsPlumbProxies[i][0],t[e]._jsPlumbProxies[i][1]);delete t[e]._jsPlumbProxies}}}]),t}();function _y(t){var e=Math.floor(t),i=Math.ceil(t);return t-e<1e-10?e:i-t<1e-10?i:t}var wy=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;wd(this,i),Cd(Td(n=e.call(this,t)),"type",i.segmentType),Cd(Td(n),"cx",void 0),Cd(Td(n),"cy",void 0),Cd(Td(n),"radius",void 0),Cd(Td(n),"anticlockwise",void 0),Cd(Td(n),"startAngle",void 0),Cd(Td(n),"endAngle",void 0),Cd(Td(n),"sweep",void 0),Cd(Td(n),"length",void 0),Cd(Td(n),"circumference",void 0),Cd(Td(n),"frac",void 0),n.cx=t.cx,n.cy=t.cy,n.radius=t.r,n.anticlockwise=t.ac,t.startAngle&&t.endAngle?(n.startAngle=t.startAngle,n.endAngle=t.endAngle,n.x1=n.cx+n.radius*Math.cos(n.startAngle),n.y1=n.cy+n.radius*Math.sin(n.startAngle),n.x2=n.cx+n.radius*Math.cos(n.endAngle),n.y2=n.cy+n.radius*Math.sin(n.endAngle)):(n.startAngle=n._calcAngle(n.x1,n.y1),n.endAngle=n._calcAngle(n.x2,n.y2)),n.endAngle<0&&(n.endAngle+=om),n.startAngle<0&&(n.startAngle+=om);var o=n.endAngle<n.startAngle?n.endAngle+om:n.endAngle;return n.sweep=Math.abs(o-n.startAngle),n.anticlockwise&&(n.sweep=om-n.sweep),n.circumference=2*Math.PI*n.radius,n.frac=n.sweep/om,n.length=n.circumference*n.frac,n.extents={xmin:n.cx-n.radius,xmax:n.cx+n.radius,ymin:n.cy-n.radius,ymax:n.cy+n.radius},n}return Sd(i,[{key:"_calcAngle",value:function(t,e){return function(t,e){var i=sm(t,e),n=Math.atan(i),o=am(t,e);return 4!=o&&3!=o||(n+=Math.PI),n<0&&(n+=2*Math.PI),n}({x:this.cx,y:this.cy},{x:t,y:e})}},{key:"_calcAngleForLocation",value:function(t,e){if(t.anticlockwise){var i=t.startAngle<t.endAngle?t.startAngle+om:t.startAngle;return i-Math.abs(i-t.endAngle)*e}var n=t.endAngle<t.startAngle?t.endAngle+om:t.endAngle,o=Math.abs(n-t.startAngle);return t.startAngle+o*e}},{key:"getPath",value:function(t){var e=this.sweep>Math.PI?1:0,i=this.anticlockwise?0:1;return(t?"M"+this.x1+" "+this.y1+" ":"")+"A "+this.radius+" "+this.radius+" 0 "+e+","+i+" "+this.x2+" "+this.y2}},{key:"getLength",value:function(){return this.length}},{key:"pointOnPath",value:function(t,e){if(0===t)return{x:this.x1,y:this.y1,theta:this.startAngle};if(1===t)return{x:this.x2,y:this.y2,theta:this.endAngle};e&&(t/=length);var i=this._calcAngleForLocation(this,t),n=this.cx+this.radius*Math.cos(i),o=this.cy+this.radius*Math.sin(i);return{x:_y(n),y:_y(o),theta:i}}},{key:"gradientAtPoint",value:function(t,e){var i=this.pointOnPath(t,e),n=-1/sm({x:this.cx,y:this.cy},i);return this.anticlockwise||n!==1/0&&n!==-1/0||(n*=-1),n}},{key:"pointAlongPathFrom",value:function(t,e,i){var n=this.pointOnPath(t,i),o=e/this.circumference*2*Math.PI,s=this.anticlockwise?-1:1,r=n.theta+s*o;return{x:this.cx+this.radius*Math.cos(r),y:this.cy+this.radius*Math.sin(r)}}}]),i}(Ef);Cd(wy,"segmentType","Arc");var ky=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"showLoopback",void 0),Cd(Td(o),"curviness",void 0),Cd(Td(o),"margin",void 0),Cd(Td(o),"proximityLimit",void 0),Cd(Td(o),"orientation",void 0),Cd(Td(o),"loopbackRadius",void 0),Cd(Td(o),"clockwise",void 0),Cd(Td(o),"isLoopbackCurrently",void 0),Cd(Td(o),"geometry",null),n=n||{},o.showLoopback=!1!==n.showLoopback,o.curviness=n.curviness||10,o.margin=n.margin||5,o.proximityLimit=n.proximityLimit||80,o.clockwise=n.orientation&&"clockwise"===n.orientation,o.loopbackRadius=n.loopbackRadius||25,o.isLoopbackCurrently=!1,o}return Sd(i,[{key:"getDefaultStubs",value:function(){return[0,0]}},{key:"_compute",value:function(t,e){var i=e.sourcePos,n=e.targetPos,o=Math.abs(i.curX-n.curX),s=Math.abs(i.curY-n.curY);if(this.showLoopback&&e.sourceEndpoint.elementId===e.targetEndpoint.elementId){this.isLoopbackCurrently=!0;var r=e.sourcePos.curX,a=e.sourcePos.curY-this.margin,l=r,c=a-this.loopbackRadius,h=l-this.loopbackRadius,d=c-this.loopbackRadius;o=2*this.loopbackRadius,s=2*this.loopbackRadius,t.points[0]=h,t.points[1]=d,t.points[2]=o,t.points[3]=s,this._addSegment(wy,{loopback:!0,x1:r-h+4,y1:a-d,startAngle:0,endAngle:2*Math.PI,r:this.loopbackRadius,ac:!this.clockwise,x2:r-h-4,y2:a-d,cx:l-h,cy:c-d})}else this.isLoopbackCurrently=!1,this._computeBezier(t,e,i,n,o,s)}},{key:"exportGeometry",value:function(){return null==this.geometry?null:{controlPoints:[Rd({},this.geometry.controlPoints[0]),Rd({},this.geometry.controlPoints[1])],source:Rd({},this.geometry.source),target:Rd({},this.geometry.target)}}},{key:"transformGeometry",value:function(t,e,i){return{controlPoints:[{x:t.controlPoints[0].x+e,y:t.controlPoints[0].y+i},{x:t.controlPoints[1].x+e,y:t.controlPoints[1].y+i}],source:this.transformAnchorPlacement(t.source,e,i),target:this.transformAnchorPlacement(t.target,e,i)}}},{key:"importGeometry",value:function(t){return null!=t&&(null==t.controlPoints||2!=t.controlPoints.length?(cu("jsPlumb Bezier: cannot import geometry; controlPoints missing or does not have length 2"),this.setGeometry(null,!0),!1):null==t.controlPoints[0].x||null==t.controlPoints[0].y||null==t.controlPoints[1].x||null==t.controlPoints[1].y?(cu("jsPlumb Bezier: cannot import geometry; controlPoints malformed"),this.setGeometry(null,!0),!1):null==t.source||null==t.source.curX||null==t.source.curY?(cu("jsPlumb Bezier: cannot import geometry; source missing or malformed"),this.setGeometry(null,!0),!1):null==t.target||null==t.target.curX||null==t.target.curY?(cu("jsPlumb Bezier: cannot import geometry; target missing or malformed"),this.setGeometry(null,!0),!1):(this.setGeometry(t,!1),!0))}}]),i}(cv),Sy={subtract:function(t,e){return{x:t.x-e.x,y:t.y-e.y}},dotProduct:function(t,e){return t.x*e.x+t.y*e.y},square:function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},scale:function(t,e){return{x:t.x*e,y:t.y*e}}},Cy=64,Ey=Math.pow(2,-Cy-1);function Ay(t,e){for(var i,n=[],o=function(t,e){for(var i=e.length-1,n=2*i-1,o=[],s=[],r=[],a=[],l=[[1,.6,.3,.1],[.4,.6,.6,.4],[.1,.3,.6,1]],c=0;c<=i;c++)o[c]=Sy.subtract(e[c],t);for(var h=0;h<=i-1;h++)s[h]=Sy.subtract(e[h+1],e[h]),s[h]=Sy.scale(s[h],3);for(var d=0;d<=i-1;d++)for(var u=0;u<=i;u++)r[d]||(r[d]=[]),r[d][u]=Sy.dotProduct(s[d],o[u]);for(var p=0;p<=n;p++)a[p]||(a[p]=[]),a[p].y=0,a[p].x=parseFloat(""+p)/n;for(var f=i,m=i-1,g=0;g<=f+m;g++)for(var v=Math.max(0,g-m),y=Math.min(g,f),b=v;b<=y;b++){var x=g-b;a[b+x].y+=r[x][b]*l[x][b]}return a}(t,e),s=e.length-1,r=My(o,2*s-1,n,0),a=Sy.subtract(t,e[0]),l=Sy.square(a),c=0,h=0;h<r;h++)a=Sy.subtract(t,Ty(e,s,n[h],null,null)),(i=Sy.square(a))<l&&(l=i,c=n[h]);return a=Sy.subtract(t,e[s]),(i=Sy.square(a))<l&&(l=i,c=1),{location:c,distance:l}}function My(t,e,i,n){var o,s,r=[],a=[],l=[],c=[];switch(function(t,e){var i,n,o=0;i=n=hu(t[0].y);for(var s=1;s<=e;s++)(i=hu(t[s].y))!=n&&o++,n=i;return o}(t,e)){case 0:return 0;case 1:if(n>=Cy)return i[0]=(t[0].x+t[e].x)/2,1;if(function(t,e){var i,n,o,s,r,a,l,c,h,d,u,p,f,m,g;r=t[0].y-t[e].y,a=t[e].x-t[0].x,l=t[0].x*t[e].y-t[e].x*t[0].y,m=g=0;for(var v=1;v<e;v++){var y=r*t[v].x+a*t[v].y+l;y>m?m=y:y<g&&(g=y)}return u=r,p=a,f=l-m,i=((h=1)*f-p*(d=0))*(1/((c=0)*p-u*h)),u=r,p=a,f=l-g,n=(h*f-p*d)*(1/(c*p-u*h)),o=Math.min(i,n),s=Math.max(i,n),s-o<Ey?1:0}(t,e))return i[0]=function(t,e){var i=1,n=0,o=t[e].x-t[0].x,s=t[e].y-t[0].y,r=t[0].x-0,a=t[0].y-0,l=1/(o*n-s*i)*(o*a-s*r);return 0+i*l}(t,e),1}Ty(t,e,.5,r,a),o=My(r,e,l,n+1),s=My(a,e,c,n+1);for(var h=0;h<o;h++)i[h]=l[h];for(var d=0;d<s;d++)i[d+o]=c[d];return o+s}function Ty(t,e,i,n,o){for(var s=[[]],r=0;r<=e;r++)s[0][r]=t[r];for(var a=1;a<=e;a++)for(var l=0;l<=e-a;l++)s[a]||(s[a]=[]),s[a][l]||(s[a][l]={}),s[a][l].x=(1-i)*s[a-1][l].x+i*s[a-1][l+1].x,s[a][l].y=(1-i)*s[a-1][l].y+i*s[a-1][l+1].y;if(null!=n)for(var c=0;c<=e;c++)n[c]=s[c][0];if(null!=o)for(var h=0;h<=e;h++)o[h]=s[e-h][h];return s[e][0]}function Py(t,e){var i={x:0,y:0};if(0===t)return e[0];var n=e.length-1;if(1===t)return e[n];var o=e,s=1-t;if(0===n)return e[0];if(1===n)return{x:s*o[0].x+t*o[1].x,y:s*o[0].y+t*o[1].y};if(4>n){var r,a,l,c=s*s,h=t*t,d=0;return 2===n?(o=[o[0],o[1],o[2],i],r=c,a=s*t*2,l=h):3===n&&(r=c*s,a=c*t*3,l=s*h*3,d=t*h),{x:r*o[0].x+a*o[1].x+l*o[2].x+d*o[3].x,y:r*o[0].y+a*o[1].y+l*o[2].y+d*o[3].y}}return i}function Oy(t){var e=0;if(!$y(t))for(var i=function(t,e){var i=[];t--;for(var n=0;n<=t;n++)i.push(Py(n/t,e));return i}(16,t),n=0;n<15;n++){e+=Ly(i[n],i[n+1])}return e}var Dy=new Map;function Iy(t,e){for(var i=function(t){var e=Dy.get(t);if(!e){var i=function(t){return function(e){return t}},n=function(t){return function(e){for(var i=1,n=0;n<t.length;n++)i*=t[n](e);return i}};(e=[]).push((function(e){return Math.pow(e,t)}));for(var o=1;o<t;o++){for(var s=[i(t)],r=0;r<t-o;r++)s.push((function(t){return t}));for(var a=0;a<o;a++)s.push((function(t){return 1-t}));e.push(n(s))}e.push((function(e){return Math.pow(1-e,t)})),Dy.set(t,e)}return e}(t.length-1),n=0,o=0,s=0;s<t.length;s++)n+=t[s].x*i[s](e),o+=t[s].y*i[s](e);return{x:n,y:o}}function Ly(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function $y(t){return t[0].x===t[1].x&&t[0].y===t[1].y}function zy(t,e,i){if($y(t))return{point:t[0],location:e};for(var n=Iy(t,e),o=0,s=e,r=i>0?1:-1,a=null;o<Math.abs(i);)o+=Ly(a=Iy(t,s+=.005*r),n),n=a;return{point:a,location:s}}function Ry(t,e,i,n,o){var s=n-e,r=t-i,a=t*(e-n)+e*(i-t),l=function(t){return[Ny(t,"x"),Ny(t,"y")]}(o),c=[s*l[0][0]+r*l[1][0],s*l[0][1]+r*l[1][1],s*l[0][2]+r*l[1][2],s*l[0][3]+r*l[1][3]+a],h=By.apply(null,c),d=[];if(null!=h)for(var u=0;u<3;u++){var p=h[u],f=Math.pow(p,2),m=Math.pow(p,3),g={x:l[0][0]*m+l[0][1]*f+l[0][2]*p+l[0][3],y:l[1][0]*m+l[1][1]*f+l[1][2]*p+l[1][3]},v=void 0;v=i-t!=0?(g[0]-t)/(i-t):(g[1]-e)/(n-e),p>=0&&p<=1&&v>=0&&v<=1&&d.push(g)}return d}function Ny(t,e){return[-t[0][e]+3*t[1][e]+-3*t[2][e]+t[3][e],3*t[0][e]-6*t[1][e]+3*t[2][e],-3*t[0][e]+3*t[1][e],t[0][e]]}function By(t,e,i,n){var o,s,r=e/t,a=i/t,l=n/t,c=(3*a-Math.pow(r,2))/9,h=(9*r*a-27*l-2*Math.pow(r,3))/54,d=Math.pow(c,3)+Math.pow(h,2),u=[0,0,0];if(d>=0)o=hu(h+Math.sqrt(d))*Math.pow(Math.abs(h+Math.sqrt(d)),1/3),s=hu(h-Math.sqrt(d))*Math.pow(Math.abs(h-Math.sqrt(d)),1/3),u[0]=-r/3+(o+s),u[1]=-r/3-(o+s)/2,u[2]=-r/3-(o+s)/2,0!==Math.abs(Math.sqrt(3)*(o-s)/2)&&(u[1]=-1,u[2]=-1);else{var p=Math.acos(h/Math.sqrt(-Math.pow(c,3)));u[0]=2*Math.sqrt(-c)*Math.cos(p/3)-r/3,u[1]=2*Math.sqrt(-c)*Math.cos((p+2*Math.PI)/3)-r/3,u[2]=2*Math.sqrt(-c)*Math.cos((p+4*Math.PI)/3)-r/3}for(var f=0;f<3;f++)(u[f]<0||u[f]>1)&&(u[f]=-1);return u}var jy=function(t){Ed(i,t);var e=Pd(i);function i(t){var n;return wd(this,i),Cd(Td(n=e.call(this,t)),"curve",void 0),Cd(Td(n),"cp1x",void 0),Cd(Td(n),"cp1y",void 0),Cd(Td(n),"cp2x",void 0),Cd(Td(n),"cp2y",void 0),Cd(Td(n),"length",0),Cd(Td(n),"type",i.segmentType),n.cp1x=t.cp1x,n.cp1y=t.cp1y,n.cp2x=t.cp2x,n.cp2y=t.cp2y,n.x1=t.x1,n.x2=t.x2,n.y1=t.y1,n.y2=t.y2,n.curve=[{x:n.x1,y:n.y1},{x:n.cp1x,y:n.cp1y},{x:n.cp2x,y:n.cp2y},{x:n.x2,y:n.y2}],n.extents={xmin:Math.min(n.x1,n.x2,n.cp1x,n.cp2x),ymin:Math.min(n.y1,n.y2,n.cp1y,n.cp2y),xmax:Math.max(n.x1,n.x2,n.cp1x,n.cp2x),ymax:Math.max(n.y1,n.y2,n.cp1y,n.cp2y)},n}return Sd(i,[{key:"getPath",value:function(t){return(t?"M "+this.x2+" "+this.y2+" ":"")+"C "+this.cp2x+" "+this.cp2y+" "+this.cp1x+" "+this.cp1y+" "+this.x1+" "+this.y1}},{key:"pointOnPath",value:function(t,e){return t=i._translateLocation(this.curve,t,e),Iy(this.curve,t)}},{key:"gradientAtPoint",value:function(t,e){return t=i._translateLocation(this.curve,t,e),function(t,e){var i=Iy(t,e),n=Iy(t.slice(0,t.length-1),e),o=n.y-i.y,s=n.x-i.x;return 0===o?1/0:Math.atan(o/s)}(this.curve,t)}},{key:"pointAlongPathFrom",value:function(t,e,n){return t=i._translateLocation(this.curve,t,n),function(t,e,i){return zy(t,e,i).point}(this.curve,t,e)}},{key:"getLength",value:function(){return null!=this.length&&0!==this.length||(this.length=Oy(this.curve)),this.length}},{key:"findClosestPointOnPath",value:function(t,e){var i,n,o,s=(i={x:t,y:e},n=this.curve,o=Ay(i,n),{point:Ty(n,n.length-1,o.location,null,null),location:o.location});return{d:Math.sqrt(Math.pow(s.point.x-t,2)+Math.pow(s.point.y-e,2)),x:s.point.x,y:s.point.y,l:1-s.location,s:this,x1:null,y1:null,x2:null,y2:null}}},{key:"lineIntersection",value:function(t,e,i,n){return Ry(t,e,i,n,this.curve)}}],[{key:"_translateLocation",value:function(t,e,i){return i&&(e=function(t,e,i){return zy(t,e,i).location}(t,e>0?0:1,e)),e}}]),i}(Ef);Cd(jy,"segmentType","Bezier");var Fy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"majorAnchor",void 0),Cd(Td(o),"minorAnchor",void 0),n=n||{},o.majorAnchor=n.curviness||150,o.minorAnchor=10,o}return Sd(i,[{key:"getCurviness",value:function(){return this.majorAnchor}},{key:"_findControlPoint",value:function(t,e,i,n,o){var s={x:0,y:0};return n[0]!==o[0]||n[1]===o[1]?(0===o[0]?s.x=i.curX<e.curX?t.x+this.minorAnchor:t.x-this.minorAnchor:s.x=t.x+this.majorAnchor*o[0],0===o[1]?s.y=i.curY<e.curY?t.y+this.minorAnchor:t.y-this.minorAnchor:s.y=t.y+this.majorAnchor*n[1]):(0===n[0]?s.x=e.curX<i.curX?t.x+this.minorAnchor:t.x-this.minorAnchor:s.x=t.x-this.majorAnchor*n[0],0===n[1]?s.y=e.curY<i.curY?t.y+this.minorAnchor:t.y-this.minorAnchor:s.y=t.y+this.majorAnchor*o[1]),s}},{key:"_computeBezier",value:function(t,e,i,n,o,s){var r,a,l=i.curX<n.curX?o:0,c=i.curY<n.curY?s:0,h=i.curX<n.curX?0:o,d=i.curY<n.curY?0:s;!0!==this.edited?(r=this._findControlPoint({x:l,y:c},i,n,t.so,t.to),a=this._findControlPoint({x:h,y:d},n,i,t.to,t.so)):(r=this.geometry.controlPoints[0],a=this.geometry.controlPoints[1]),this.geometry={controlPoints:[r,a],source:e.sourcePos,target:e.targetPos},this._addSegment(jy,{x1:l,y1:c,x2:h,y2:d,cp1x:r.x,cp1y:r.y,cp2x:a.x,cp2y:a.y})}}]),i}(ky);Cd(Fy,"type","Bezier");var qy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"_controlPoint",void 0),o.curviness=n.curviness||10,o.margin=n.margin||5,o.proximityLimit=n.proximityLimit||80,o.clockwise=n.orientation&&"clockwise"===n.orientation,o}return Sd(i,[{key:"_computeBezier",value:function(t,e,i,n,o,s){var r,a,l,c,h,d,u,p,f=i.curX<n.curX?0:o,m=i.curY<n.curY?0:s,g=i.curX<n.curX?o:0,v=i.curY<n.curY?s:0;if(0===i.x&&(f-=this.margin),1===i.x&&(f+=this.margin),0===i.y&&(m-=this.margin),1===i.y&&(m+=this.margin),0===n.x&&(g-=this.margin),1===n.x&&(g+=this.margin),0===n.y&&(v-=this.margin),1===n.y&&(v+=this.margin),!0!==this.edited){var y=(f+g)/2,b=(m+v)/2,x=(a=m,c=v,(r=f)<=(l=g)&&c<=a?1:r<=l&&a<=c?2:l<=r&&c>=a?3:4),_=Math.sqrt(Math.pow(g-f,2)+Math.pow(v-m,2));this._controlPoint=function(t,e,i,n,o,s,r,a,l){return a<=l?{x:t,y:e}:1===i?n.curY<=0&&o.curY>=1?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX>=1&&o.curX<=0?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+-1*s,y:e+-1*r}:2===i?n.curY>=1&&o.curY<=0?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX>=1&&o.curX<=0?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+s,y:e+-1*r}:3===i?n.curY>=1&&o.curY<=0?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX<=0&&o.curX>=1?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+-1*s,y:e+-1*r}:4===i?n.curY<=0&&o.curY>=1?{x:t+(n.x<.5?-1*s:s),y:e}:n.curX<=0&&o.curX>=1?{x:t,y:e+(n.y<.5?-1*r:r)}:{x:t+s,y:e+-1*r}:void 0}(y,b,x,e.sourcePos,e.targetPos,this.curviness,this.curviness,_,this.proximityLimit)}else this._controlPoint=this.geometry.controlPoints[0];h=this._controlPoint.x,d=this._controlPoint.x,u=this._controlPoint.y,p=this._controlPoint.y,this.geometry={controlPoints:[this._controlPoint,this._controlPoint],source:e.sourcePos,target:e.targetPos},this._addSegment(jy,{x1:g,y1:v,x2:f,y2:m,cp1x:h,cp1y:u,cp2x:d,cp2y:p})}}]),i}(ky);function Vy(t){return t<0?-1:0===t?0:1}function Hy(t){return[Vy(t[2]-t[0]),Vy(t[3]-t[1])]}function Uy(t){return Math.sqrt(Math.pow(t[0]-t[2],2)+Math.pow(t[1]-t[3],2))}function Wy(t){var e=[];return e.push.apply(e,t),e}Cd(qy,"type","StateMachine"),Uv(Fy.type,Fy),Uv(qy.type,qy);var Gy=function(t){Ed(i,t);var e=Pd(i);function i(t,n){var o;return wd(this,i),(o=e.call(this,t,n)).connection=t,Cd(Td(o),"type",i.type),Cd(Td(o),"internalSegments",[]),Cd(Td(o),"midpoint",void 0),Cd(Td(o),"alwaysRespectStubs",void 0),Cd(Td(o),"cornerRadius",void 0),Cd(Td(o),"lastx",void 0),Cd(Td(o),"lasty",void 0),Cd(Td(o),"lastOrientation",void 0),Cd(Td(o),"loopbackRadius",void 0),Cd(Td(o),"isLoopbackCurrently",void 0),o.midpoint=null==n.midpoint||isNaN(n.midpoint)?.5:n.midpoint,o.cornerRadius=null!=n.cornerRadius?n.cornerRadius:0,o.alwaysRespectStubs=!0===n.alwaysRespectStubs,o.lastx=null,o.lasty=null,o.lastOrientation=null,o.loopbackRadius=n.loopbackRadius||25,o.isLoopbackCurrently=!1,o}return Sd(i,[{key:"getDefaultStubs",value:function(){return[30,30]}},{key:"addASegment",value:function(t,e,i){if(this.lastx!==t||this.lasty!==e){var n=null==this.lastx?i.sx:this.lastx,o=null==this.lasty?i.sy:this.lasty,s=n===t?"v":"h";this.lastx=t,this.lasty=e,this.internalSegments.push([n,o,t,e,s])}}},{key:"writeSegments",value:function(t){for(var e,i,n,o=null,s=0;s<this.internalSegments.length-1;s++){if(o=o||Wy(this.internalSegments[s]),e=Wy(this.internalSegments[s+1]),i=Hy(o),n=Hy(e),this.cornerRadius>0&&o[4]!==e[4]){var r=Math.min(Uy(o),Uy(e)),a=Math.min(this.cornerRadius,r/2);o[2]-=i[0]*a,o[3]-=i[1]*a,e[0]+=n[0]*a,e[1]+=n[1]*a;var l=i[1]===n[0]&&1===n[0]||i[1]===n[0]&&0===n[0]&&i[0]!==n[1]||i[1]===n[0]&&-1===n[0],c=(e[1]>o[3]?1:-1)===(e[0]>o[2]?1:-1),h=c&&l||!c&&!l?e[0]:o[2],d=c&&l||!c&&!l?o[3]:e[1];this._addSegment(Wv,{x1:o[0],y1:o[1],x2:o[2],y2:o[3]}),this._addSegment(wy,{r:a,x1:o[2],y1:o[3],x2:e[0],y2:e[1],cx:h,cy:d,ac:l})}else this._addSegment(Wv,{x1:o[0],y1:o[1],x2:o[2],y2:o[3]});o=e}null!=e&&this._addSegment(Wv,{x1:e[0],y1:e[1],x2:e[2],y2:e[3]})}},{key:"_compute",value:function(t,e){var i=this;this.internalSegments.length=0,this.lastx=null,this.lasty=null,this.lastOrientation=null;var n=function(e){return[t.startStubX,t.startStubY,t.endStubX,t.endStubY]},o={perpendicular:n,orthogonal:n,opposite:function(e){var n=t,o="x"===e?0:1,s={x:function(){return 1===n.so[o]&&(n.startStubX>n.endStubX&&n.tx>n.startStubX||n.sx>n.endStubX&&n.tx>n.sx)||-1===n.so[o]&&(n.startStubX<n.endStubX&&n.tx<n.startStubX||n.sx<n.endStubX&&n.tx<n.sx)},y:function(){return 1===n.so[o]&&(n.startStubY>n.endStubY&&n.ty>n.startStubY||n.sy>n.endStubY&&n.ty>n.sy)||-1===n.so[o]&&(n.startStubY<n.endStubY&&n.ty<n.startStubY||n.sy<n.endStubY&&n.ty<n.sy)}};return!i.alwaysRespectStubs&&s[e]()?{x:[(t.sx+t.tx)/2,t.startStubY,(t.sx+t.tx)/2,t.endStubY],y:[t.startStubX,(t.sy+t.ty)/2,t.endStubX,(t.sy+t.ty)/2]}[e]:[t.startStubX,t.startStubY,t.endStubX,t.endStubY]}},s=o[t.anchorOrientation](t.sourceAxis),r="x"===t.sourceAxis?0:1,a="x"===t.sourceAxis?1:0,l=s[r],c=s[a],h=s[r+2],d=s[a+2];this.addASegment(s[0],s[1],t);var u=t.startStubX+(t.endStubX-t.startStubX)*this.midpoint,p=t.startStubY+(t.endStubY-t.startStubY)*this.midpoint,f={x:[0,1],y:[1,0]},m={perpendicular:function(e,i,n,o,s){var r=t,a={x:[[r.startStubX,r.endStubX],null,[r.endStubX,r.startStubX]],y:[[r.startStubY,r.endStubY],null,[r.endStubY,r.startStubY]]},l={x:[[u,r.startStubY],[u,r.endStubY]],y:[[r.startStubX,p],[r.endStubX,p]]},c={x:[[r.endStubX,r.startStubY]],y:[[r.startStubX,r.endStubY]]},h={x:[[r.startStubX,r.endStubY],[r.endStubX,r.endStubY]],y:[[r.endStubX,r.startStubY],[r.endStubX,r.endStubY]]},d={x:[[r.startStubX,p],[r.endStubX,p],[r.endStubX,r.endStubY]],y:[[u,r.startStubY],[u,r.endStubY],[r.endStubX,r.endStubY]]},m={x:[r.startStubY,r.endStubY],y:[r.startStubX,r.endStubX]},g=f[e][0],v=f[e][1],y=r.so[g]+1,b=r.to[v]+1,x=-1===r.to[v]&&m[e][1]<m[e][0]||1===r.to[v]&&m[e][1]>m[e][0],_=a[e][y][0],w=a[e][y][1],k={x:[[[1,2,3,4],null,[2,1,4,3]],null,[[4,3,2,1],null,[3,4,1,2]]],y:[[[3,2,1,4],null,[2,3,4,1]],null,[[4,1,2,3],null,[1,4,3,2]]]}[e][y][b];return r.segment===k[3]||r.segment===k[2]&&x?l[e]:r.segment===k[2]&&w<_?c[e]:r.segment===k[2]&&w>=_||r.segment===k[1]&&!x?d[e]:r.segment===k[0]||r.segment===k[1]&&x?h[e]:void 0},orthogonal:function(e,i,n,o,s){var r=t,a={x:-1===r.so[0]?Math.min(i,o):Math.max(i,o),y:-1===r.so[1]?Math.min(i,o):Math.max(i,o)}[e];return{x:[[a,n],[a,s],[o,s]],y:[[n,a],[s,a],[s,o]]}[e]},opposite:function(n,o,s,a,l){var c=t,h={x:"y",y:"x"}[n],d={x:"h",y:"w"}[n],f=c["is"+n.toUpperCase()+"GreaterThanStubTimes2"];if(e.sourceEndpoint.elementId===e.targetEndpoint.elementId){var m=s+(1-e.sourceEndpoint._anchor.computedPosition[h])*e.sourceInfo[d]+i.maxStub;return{x:[[o,m],[a,m]],y:[[m,o],[m,a]]}[n]}return!f||1===c.so[r]&&o>a||-1===c.so[r]&&o<a?{x:[[o,p],[a,p]],y:[[u,o],[u,a]]}[n]:1===c.so[r]&&o<a||-1===c.so[r]&&o>a?{x:[[u,c.sy],[u,c.ty]],y:[[c.sx,p],[c.tx,p]]}[n]:void 0}},g=m[t.anchorOrientation](t.sourceAxis,l,c,h,d);if(g)for(var v=0;v<g.length;v++)this.addASegment(g[v][0],g[v][1],t);this.addASegment(s[2],s[3],t),this.addASegment(t.tx,t.ty,t),this.writeSegments(t)}},{key:"transformGeometry",value:function(t,e,i){return t}}]),i}(cv);function Zy(){var t=Math.floor(2e3*Math.random()),e=Math.floor(2e3*Math.random());return{clientX:t,clientY:e,screenX:t,screenY:e,pageX:t,pageY:e}}Cd(Gy,"type","Flowchart"),Uv(Gy.type,Gy),Ym.registerHandler(xv),Ym.registerHandler(hy),Ym.registerHandler(py),Uv(Gv.type,Gv);for(var Yy={clientX:5e4,clientY:5e4,screenX:5e4,screenY:5e4,pageX:5e4,pageY:5e4},Xy=0;Xy<256;Xy++)Xy.toString(16);!function(){function t(e,i,n){wd(this,t),this._jsPlumb=e,this.ok=i,this.equal=n,Cd(this,"_divs",[]),Cd(this,"mottle",void 0),this.mottle=new em}Sd(t,[{key:"_t",value:function(t,e,i,n){this.mottle.trigger(t,e,{pageX:i,pageY:n,screenX:i,screenY:n,clientX:i,clientY:n})}},{key:"addDiv",value:function(t,e,i,n,o,s,r){var a=document.createElement("div");return a.style.position="absolute",a.innerHTML=t,e?e.appendChild(a):this._jsPlumb.getContainer().appendChild(a),a.setAttribute("id",t),a.style.left=(null!=n?n:Math.floor(1e3*Math.random()))+"px",a.style.top=(null!=o?o:Math.floor(1e3*Math.random()))+"px",i&&(a.className=i),s&&(a.style.width=s+"px"),r&&(a.style.height=r+"px"),this._divs.push(t),a}},{key:"addDivs",value:function(t,e){for(var i=0;i<t.length;i++)this.addDiv(t[i],e)}},{key:"assertEndpointCount",value:function(t,e){var i=this._jsPlumb.getEndpoints(t),n=i?i.length:0;this.equal(n,e,t.getAttribute("data-jtk-managed")+" has "+e+(e>1||0==e?" endpoints":" endpoint"))}},{key:"_assertManagedEndpointCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.endpoints.length,e,i+" has "+e+" endpoints in managed record")}},{key:"_assertManagedConnectionCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.connections.length,e,i+" has "+e+" connections in managed record")}},{key:"_registerDiv",value:function(t){this._divs.push(t)}},{key:"makeDragStartEvt",value:function(t){var e=this.makeEvent(t),i=this._jsPlumb.getContainer();return e.clientX+=i.offsetLeft,e.screenX+=i.offsetLeft,e.pageX+=i.offsetLeft,e.clientY+=i.offsetTop,e.screenY+=i.offsetTop,e.pageY+=i.offsetTop,e}},{key:"getAttribute",value:function(t,e){return t.getAttribute(e)}},{key:"dragNodeBy",value:function(t,e,i,n){(n=n||{}).before&&n.before();var o=this.makeEvent(t);this._jsPlumb.trigger(t,zp,o),n.beforeMouseMove&&n.beforeMouseMove(),this._t(document,Bp,o.pageX+e,o.pageY+i),n.beforeMouseUp&&n.beforeMouseUp(),this.mottle.trigger(document,jp,null),n.after&&n.after()}},{key:"dragNodeTo",value:function(t,e,i,n){n=n||{};var o=this._jsPlumb.viewport.getPosition(this._jsPlumb.getId(t));n.before&&n.before();var s=this.makeEvent(t);this._jsPlumb.trigger(t,zp,s);var r=this._jsPlumb.getContainer().getBoundingClientRect();n.beforeMouseMove&&n.beforeMouseMove(),this._t(document,Bp,r.x+e+o.w/2,r.y+i+o.h/2),n.beforeMouseUp&&n.beforeMouseUp(),this.mottle.trigger(document,jp,null),n.after&&n.after()}},{key:"dragToGroup",value:function(t,e,i){var n=this._jsPlumb.getGroup(e),o=this._jsPlumb.viewport.getPosition(n.elId),s=o.x+o.w/2,r=o.y+o.h/2;this.dragNodeTo(t,s,r,i)}},{key:"aSyncDragNodeBy",value:function(t,e,i,n){var o=this;(n=n||{}).before&&n.before();var s=this.makeEvent(t);this._jsPlumb.trigger(t,zp,s),n.beforeMouseMove&&n.beforeMouseMove(),setTimeout((function(){o._t(document,Bp,s.pageX+e,s.pageY+i),n.beforeMouseUp&&n.beforeMouseUp(),setTimeout((function(){o.mottle.trigger(document,jp,null),n.after&&n.after()}),45)}),45)}},{key:"dragANodeAround",value:function(t,e,i){this._jsPlumb.trigger(t,zp,this.makeEvent(t));for(var n=50*Math.random(),o=0;o<n;o++){var s=Zy();t.style.left=s.screenX+"px",t.style.top=s.screenY+"px",this._jsPlumb.trigger(document,Bp,s)}e&&this.ok(e(),i||"while dragging assert"),this._jsPlumb.trigger(document,jp,Yy)}},{key:"dragConnection",value:function(t,e,i,n){var o=this.getCanvas(t),s=this.getCanvas(e),r=this.makeEvent(o),a=this.makeEvent(s);n=n||{};var l=this._jsPlumb.select().length;return this._jsPlumb.trigger(o,zp,r),n.beforeMouseMove&&n.beforeMouseMove(),this._jsPlumb.trigger(i?s:document,Bp,a),n.beforeMouseUp&&n.beforeMouseUp(),this._jsPlumb.trigger(i?s:document,jp,a),this._jsPlumb.select().get(l)}},{key:"aSyncDragConnection",value:function(t,e,i){var n=this;i=i||{};var o=this.getCanvas(t),s=this.getCanvas(e),r=this.makeEvent(o),a=this.makeEvent(s),l=this._jsPlumb.select().length;this._jsPlumb.trigger(o,zp,r),setTimeout((function(){i.beforeMouseMove&&i.beforeMouseMove(),n._jsPlumb.trigger(document,Bp,a),setTimeout((function(){i.beforeMouseUp&&i.beforeMouseUp(),n._jsPlumb.trigger(s,jp,a),i.after&&i.after(n._jsPlumb.select().get(l))}),5)}),5)}},{key:"dragAndAbortConnection",value:function(t){var e=this.getCanvas(t),i=this.makeEvent(e);this._jsPlumb.trigger(e,zp,i),this._jsPlumb.trigger(document,Bp,Yy),this._jsPlumb.trigger(document,jp,Yy)}},{key:"detachConnection",value:function(t,e){e=e||{};var i=this.getEndpointCanvas(t),n=this.makeEvent(i);e.before&&e.before(),this._jsPlumb.trigger(i,zp,n),e.beforeMouseMove&&e.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,Yy),e.beforeMouseUp&&e.beforeMouseUp(),this._jsPlumb.trigger(document,jp,Yy),e.after&&e.after()}},{key:"detachAndReattachConnection",value:function(t,e){e=e||{};var i=this.getEndpointCanvas(t),n=this.makeEvent(i);e.before&&e.before(),this._jsPlumb.trigger(i,zp,n),e.beforeMouseMove&&e.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,Yy),this._jsPlumb.trigger(document,Bp,n),e.beforeMouseUp&&e.beforeMouseUp(),this._jsPlumb.trigger(document,jp,n),e.after&&e.after()}},{key:"detachConnectionByTarget",value:function(t,e){this.detachConnection(t.endpoints[1],e)}},{key:"relocateTarget",value:function(t,e,i){this.relocate(t,1,e,i)}},{key:"relocate",value:function(t,e,i,n){n=n||{},i=this.getCanvas(i);var o=this.getEndpointCanvas(t.endpoints[e]),s=this.makeEvent(o),r=this.makeEvent(i);n.before&&n.before(),this._jsPlumb.trigger(o,zp,s),n.beforeMouseMove&&n.beforeMouseMove(),this._jsPlumb.trigger(document,Bp,r),n.beforeMouseUp&&n.beforeMouseUp(),this._jsPlumb.trigger(i,jp,r),n.after&&n.after()}},{key:"relocateSource",value:function(t,e,i){this.relocate(t,0,e,i)}},{key:"makeEvent",value:function(t){var e=t.getBoundingClientRect(),i=e.x+e.width/2,n=e.y+e.height/2;return{clientX:i,clientY:n,screenX:i,screenY:n,pageX:i,pageY:n}}},{key:"getCanvas",value:function(t){return t.endpoint?this.getEndpointCanvas(t):t}},{key:"getEndpointCanvas",value:function(t){return t.endpoint.canvas}},{key:"getConnectionCanvas",value:function(t){return t.connector.canvas}},{key:"getEndpointCanvasPosition",value:function(t){var e=this.getEndpointCanvas(t);return{x:parseInt(e.style.left,10),y:parseInt(e.style.top,10),w:e.getAttribute("width"),h:e.getAttribute("height")}}},{key:"within",value:function(t,e,i){this.ok(Math.abs(t-e)<1e-11,i+"[expected: "+e+" got "+t+"] [diff:"+Math.abs(t-e)+"]")}},{key:"assertManagedEndpointCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.endpoints.length,e,i+" has "+e+" endpoints in managed record")}},{key:"assertManagedConnectionCount",value:function(t,e){var i=this._jsPlumb.getId(t),n=this._jsPlumb._managedElements[i];this.equal(n.connections.length,e,i+" has "+e+" connections in managed record")}},{key:"fireEventOnEndpoint",value:function(t){for(var e=this.getEndpointCanvas(t),i=0;i<(arguments.length<=1?0:arguments.length-1);i++)this._jsPlumb.trigger(e,i+1<1||arguments.length<=i+1?void 0:arguments[i+1])}},{key:"fireEventOnElement",value:function(t){for(var e=0;e<(arguments.length<=1?0:arguments.length-1);e++)this._jsPlumb.trigger(t,e+1<1||arguments.length<=e+1?void 0:arguments[e+1])}},{key:"fireEventOnConnection",value:function(t){for(var e=this.getConnectionCanvas(t),i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];this.fireEventOnElement.apply(this,[e].concat(n))}},{key:"clickOnConnection",value:function(t){this.fireEventOnConnection(t,Dp)}},{key:"dblClickOnConnection",value:function(t){this.fireEventOnConnection(t,Lp)}},{key:"tapOnConnection",value:function(t){this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp)}},{key:"dblTapOnConnection",value:function(t){this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp),this.fireEventOnConnection(t,zp),this.fireEventOnConnection(t,jp)}},{key:"clickOnElement",value:function(t,e){this._jsPlumb.trigger(t,Dp,null,null,null==e?1:e)}},{key:"dblClickOnElement",value:function(t){this._jsPlumb.trigger(t,Lp)}},{key:"tapOnElement",value:function(t){this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp)}},{key:"dblTapOnElement",value:function(t){this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp),this._jsPlumb.trigger(t,zp),this._jsPlumb.trigger(t,jp)}},{key:"getOverlayCanvas",value:function(t){return t.canvas||t.path}},{key:"fireEventOnOverlay",value:function(t,e,i){var n=t.getOverlay(e),o=this.getOverlayCanvas(n);this._jsPlumb.trigger(o,i)}},{key:"clickOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,Dp)}},{key:"dblClickOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,Lp)}},{key:"tapOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp)}},{key:"dblTapOnOverlay",value:function(t,e){this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp),this.fireEventOnOverlay(t,e,zp),this.fireEventOnOverlay(t,e,jp)}},{key:"cleanup",value:function(){var t=this._jsPlumb.getContainer();for(var e in this._jsPlumb.destroy(),this._divs){var i=document.getElementById(this._divs[e]);i&&i.parentNode.removeChild(i)}this._divs.length=0;var n=this._jsPlumb.select().length,o=this._jsPlumb.selectEndpoints().length,s=t.querySelectorAll(".jtk-endpoint").length,r=t.querySelectorAll(".jtk-connector").length;for(var a in t.__ta)for(var l in t.__ta[a])throw"Container event bindings not empty for key "+a;if(n>0)throw"there are connections in the data model!";if(o>0)throw"there are endpoints in the data model!";if(s>0)throw"there are "+s+" endpoints left in the dom!";if(r>0)throw"there are "+r+" connections left in the dom!"}},{key:"makeContent",value:function(t){var e=document.createElement("div");return e.innerHTML=t,e.firstChild}},{key:"length",value:function(t){var e=0;for(var i in t)t.hasOwnProperty(i)&&e++;return e}},{key:"head",value:function(t){for(var e in t)return t[e]}},{key:"uuid",value:function(){return su()}}])}();var Ky=0;function Qy(t){return new ly(function(){var t=Ky+1;return Ky++,t}(),t)}const Jy={endpoint:{type:bv.type,options:{radius:6,connectedClass:"plumb-connected",cssClass:"plumb-source",hoverClass:"plumb-source-hover"}},anchors:["Bottom","Continuous"],maxConnections:1,dragAllowedWhenFull:!1,deleteEndpointsOnEmpty:!0,isSource:!0},tb={endpoint:{type:cy.type,options:{width:23,height:23,cssClass:"plumb-target",hoverClass:"plumb-target-hover"}},anchor:{type:"Continuous",options:{faces:["top","left","right"],cssClass:"continuos plumb-target-anchor"}},dragAllowedWhenFull:!1,deleteEndpointsOnEmpty:!0,isTarget:!0};class eb{constructor(t){this.jsPlumb=null,this.pendingConnections=[],this.connectionWait=null,function(t){!function e(){/complete|loaded|interactive/.test(document.readyState)&&void 0!==document.body&&null!=document.body?t():setTimeout(e,9)}()}((()=>{this.jsPlumb=Qy({container:t})}))}makeTarget(t){const e=document.getElementById(t);this.jsPlumb.addEndpoint(e,tb)}makeSource(t){const e=document.getElementById(t);this.jsPlumb.addEndpoint(e,Jy)}processPendingConnections(){this.connectionWait&&(clearTimeout(this.connectionWait),this.connectionWait=null),this.connectionWait=setTimeout((()=>{this.jsPlumb.batch((()=>{this.pendingConnections.forEach((t=>{const{fromId:e,toId:i}=t,n=document.getElementById(e),o=document.getElementById(i),s=this.jsPlumb.addEndpoint(n,{...Jy,endpoint:{...Jy.endpoint,options:{...Jy.endpoint.options,cssClass:"plumb-source connected"}}}),r=this.jsPlumb.addEndpoint(o,tb);this.jsPlumb.connect({source:s,target:r,connector:{type:Gy.type,options:{stub:12,midpoint:.75,alwaysRespectStubs:!1,gap:[0,5],cornerRadius:3,cssClass:"plumb-connector"}},overlays:[{type:"PlainArrow",options:{width:13,length:13,location:.999,cssClass:"plumb-arrow"}}]})})),this.pendingConnections=[]}))}),50)}connectIds(t,e){this.pendingConnections.push({fromId:t,toId:e}),this.processPendingConnections()}repaintEverything(){this.jsPlumb&&this.jsPlumb.repaintEverything()}elevateNodeConnections(t){if(!this.jsPlumb)return;const e=this.jsPlumb.getConnections(),i=document.getElementById(t),n=i?i.querySelectorAll(".exit"):[],o=Array.from(n).map((t=>t.id));e.forEach((e=>{const i=e.source.id;if(e.target.id===t||o.includes(i)){const t=e.connector.canvas;t&&t.classList.add("elevated")}}))}restoreNodeConnections(t){if(!this.jsPlumb)return;const e=this.jsPlumb.getConnections(),i=document.getElementById(t),n=i?i.querySelectorAll(".exit"):[],o=Array.from(n).map((t=>t.id));e.forEach((e=>{const i=e.source.id;if(e.target.id===t||o.includes(i)){const t=e.connector.canvas;t&&t.classList.remove("elevated")}}))}}const ib="#3498db",nb="#01c1af",ob="#8e5ea7",sb="#e68628",rb="#aaaaaa",ab="#666666",lb={add_input_labels:{name:"Add Labels",color:nb},add_contact_urn:{name:"Add Contact URN",color:nb},set_contact_field:{name:"Update Contact Field",color:nb},set_contact_channel:{name:"Update Contact Channel",color:nb},set_contact_language:{name:"Update Contact Language",color:nb},send_broadcast:{name:"Send Broadcast",color:ob},set_run_result:{name:"Save Flow Result",color:"#1a777c",render:(t,e)=>U`<div>Save ${e.value} as <b>${e.name}</b></div>`},send_msg:{name:"Send Message",color:ib,render:(t,e)=>{const i=e.text.replace(/\n/g,"<br>");return U`
8056
8056
  ${Pa(i)}
8057
8057
  ${e.quick_replies.length>0?U`<div class="quick-replies">
8058
8058
  ${e.quick_replies.map((t=>U`<div class="quick-reply">${t}</div>`))}
@@ -8063,7 +8063,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8063
8063
  style="margin-right:0.5em"
8064
8064
  ></temba-icon>`}
8065
8065
  <div>${t.name}</div>
8066
- </div>`))}</div>`;var i,n}},remove_contact_groups:{name:"Remove from Group",color:"#e74c3c"},request_optin:{name:"Request Opt-in",color:ib},split_by_run_result:{name:"Split by Flow Result",color:rb},split_by_expression:{name:"Split by Expression",color:rb},split_by_contact_field:{name:"Split by <Contact Field Name>",color:rb},split_by_groups:{name:"Split by Group",color:rb},split_by_scheme:{name:"Split by URN Type",color:rb},split_by_random:{name:"Split by Random",color:rb}};class cb extends ge{createRenderRoot(){return this}static get styles(){return a`
8066
+ </div>`))}</div>`;var i,n}},remove_contact_groups:{name:"Remove from Group",color:"#e74c3c"},request_optin:{name:"Request Opt-in",color:ib},split_by_run_result:{name:"Split by Flow Result",color:rb},split_by_expression:{name:"Split by Expression",color:rb},split_by_contact_field:{name:"Split by <Contact Field Name>",color:rb},split_by_groups:{name:"Split by Group",color:rb},split_by_scheme:{name:"Split by URN Type",color:rb},split_by_random:{name:"Split by Random",color:rb}};class cb extends ge{constructor(){super(...arguments),this.isDragging=!1,this.dragStartPos={x:0,y:0},this.nodeStartPos={left:0,top:0},this.boundMouseMove=this.handleMouseMove.bind(this),this.boundMouseUp=this.handleMouseUp.bind(this)}createRenderRoot(){return this}snapToGrid(t){return 20*Math.round(t/20)}static get styles(){return a`
8067
8067
  .node {
8068
8068
  position: absolute;
8069
8069
  background-color: #fff;
@@ -8072,6 +8072,19 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8072
8072
  border-radius: calc(var(--curvature) * 1.5);
8073
8073
  overflow: hidden;
8074
8074
  color: #333;
8075
+ cursor: move;
8076
+ user-select: none;
8077
+ z-index: 500;
8078
+ }
8079
+
8080
+ .node:hover {
8081
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
8082
+ }
8083
+
8084
+ .node.dragging {
8085
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);
8086
+ transform: scale(1.02);
8087
+ z-index: 1000;
8075
8088
  }
8076
8089
 
8077
8090
  .action {
@@ -8142,7 +8155,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8142
8155
  padding-top: 10px;
8143
8156
  margin-bottom: -10px;
8144
8157
  }
8145
- }`}updated(t){if(super.updated(t),t.has("node")){this.plumber.makeTarget(this.node.uuid);for(const t of this.node.exits)t.destination_uuid?this.plumber.connectIds(t.uuid,t.destination_uuid):this.plumber.makeSource(t.uuid);const t=this.querySelector(".node").getBoundingClientRect();_a().getState().expandCanvas(this.ui.position.left+t.width,this.ui.position.top+t.height)}}renderTitle(t){return U`<div class="title" style="background:${t.color}">
8158
+ }`}updated(t){if(super.updated(t),t.has("node")){this.plumber.makeTarget(this.node.uuid);for(const t of this.node.exits)t.destination_uuid?this.plumber.connectIds(t.uuid,t.destination_uuid):this.plumber.makeSource(t.uuid);const t=this.querySelector(".node").getBoundingClientRect();_a().getState().expandCanvas(this.ui.position.left+t.width,this.ui.position.top+t.height),this.addDragEventListeners()}}addDragEventListeners(){const t=this.querySelector(".node");t&&(t.addEventListener("mousedown",this.handleMouseDown.bind(this)),document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp))}handleMouseDown(t){const e=t.target;if(e.classList.contains("exit")||e.closest(".exit"))return;this.isDragging=!0,this.dragStartPos={x:t.clientX,y:t.clientY},this.nodeStartPos={left:this.ui.position.left,top:this.ui.position.top};const i=this.querySelector(".node");i&&i.classList.add("dragging"),this.plumber&&this.plumber.elevateNodeConnections(this.node.uuid),t.preventDefault(),t.stopPropagation()}handleMouseMove(t){if(!this.isDragging)return;const e=t.clientX-this.dragStartPos.x,i=t.clientY-this.dragStartPos.y,n=this.nodeStartPos.left+e,o=this.nodeStartPos.top+i,s=this.querySelector(".node");s&&(s.style.left=`${n}px`,s.style.top=`${o}px`),this.plumber&&this.plumber.repaintEverything()}handleMouseUp(t){if(!this.isDragging)return;this.isDragging=!1;const e=this.querySelector(".node");e&&e.classList.remove("dragging"),this.plumber&&this.plumber.restoreNodeConnections(this.node.uuid);const i=t.clientX-this.dragStartPos.x,n=t.clientY-this.dragStartPos.y,o=this.nodeStartPos.left+i,s=this.nodeStartPos.top+n,r={left:this.snapToGrid(o),top:this.snapToGrid(s)};_a().getState().updateCanvasPositions({[this.node.uuid]:r}),this.plumber&&this.plumber.repaintEverything(),_a().getState().updateNodePosition(this.node.uuid,r)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp)}renderTitle(t){return U`<div class="title" style="background:${t.color}">
8146
8159
  ${t.name}
8147
8160
  </div>`}renderAction(t,e){const i=lb[e.type];return i?U`<div class="action ${e.type}">
8148
8161
  ${this.renderTitle(i)}
@@ -8161,7 +8174,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8161
8174
  </div>`}));return U`<div class="categories">${e}</div>`}renderExit(t){return U`<div
8162
8175
  id="${t.uuid}"
8163
8176
  class=${Wt({exit:!0,connected:!!t.destination_uuid})}
8164
- ></div>`}render(){return U`
8177
+ ></div>`}render(){return this.node&&this.ui?U`
8165
8178
  <div
8166
8179
  id="${this.node.uuid}"
8167
8180
  class="node"
@@ -8173,7 +8186,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8173
8186
  ${this.node.exits.map((t=>this.renderExit(t)))}
8174
8187
  </div>`}
8175
8188
  </div>
8176
- `}}t([pe()],cb.prototype,"plumber",void 0),t([pe()],cb.prototype,"node",void 0),t([pe()],cb.prototype,"ui",void 0);class hb extends ge{createRenderRoot(){return this}static get styles(){return a`
8189
+ `:U`<div class="node">Loading...</div>`}}t([ue({type:Object})],cb.prototype,"plumber",void 0),t([ue({type:Object})],cb.prototype,"node",void 0),t([ue({type:Object})],cb.prototype,"ui",void 0);class hb extends ge{createRenderRoot(){return this}static get styles(){return a`
8177
8190
  #editor {
8178
8191
  overflow: scroll;
8179
8192
  flex: 1;
@@ -8182,7 +8195,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8182
8195
  #grid {
8183
8196
  position: relative;
8184
8197
  background-color: #f9f9f9;
8185
- background-position: 13px 13px;
8198
+ background-position: 10px 10px;
8186
8199
  background-image: linear-gradient(
8187
8200
  0deg,
8188
8201
  transparent 24%,
@@ -8226,11 +8239,11 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8226
8239
  }
8227
8240
 
8228
8241
  .jtk-endpoint {
8229
- z-index: 1;
8242
+ z-index: 600;
8230
8243
  }
8231
8244
 
8232
8245
  .plumb-source {
8233
- z-index: 300;
8246
+ z-index: 600;
8234
8247
  border: 0px solid var(--color-connectors);
8235
8248
  }
8236
8249
 
@@ -8254,7 +8267,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8254
8267
 
8255
8268
  .plumb-target {
8256
8269
  margin-top: -6px;
8257
- z-index: 200;
8270
+ z-index: 600;
8258
8271
  opacity: 0;
8259
8272
  cursor: pointer;
8260
8273
  }
@@ -8262,6 +8275,29 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8262
8275
  body .plumb-connector path {
8263
8276
  stroke: var(--color-connectors) !important;
8264
8277
  stroke-width: 3px;
8278
+ z-index: 10;
8279
+ }
8280
+
8281
+ body .plumb-connector {
8282
+ z-index: 10;
8283
+ }
8284
+
8285
+ body .plumb-connector.elevated {
8286
+ z-index: 550;
8287
+ }
8288
+
8289
+ body .plumb-connector.elevated path {
8290
+ stroke: var(--color-connectors) !important;
8291
+ stroke-width: 3px;
8292
+ z-index: 550;
8293
+ }
8294
+
8295
+ body .plumb-connector.elevated .plumb-arrow {
8296
+ fill: var(--color-connectors);
8297
+ stroke: var(--color-connectors);
8298
+ stroke-width: 0px;
8299
+ margin-top: 6px;
8300
+ z-index: 550;
8265
8301
  }
8266
8302
 
8267
8303
  body .plumb-connector .plumb-arrow {
@@ -8269,6 +8305,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8269
8305
  stroke: var(--color-connectors);
8270
8306
  stroke-width: 0px;
8271
8307
  margin-top: 6px;
8308
+ z-index: 10;
8272
8309
  }
8273
8310
 
8274
8311
  body svg.jtk-connector.jtk-hover path {
@@ -8279,8 +8316,9 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8279
8316
  body .plumb-connector.jtk-hover .plumb-arrow {
8280
8317
  fill: var(--color-success) !important;
8281
8318
  stroke-width: 0px;
8319
+ z-index: 10;
8282
8320
  }
8283
- `}constructor(){super()}firstUpdated(t){super.firstUpdated(t),this.plumber=new eb(this.querySelector("#canvas")),t.has("flow")&&_a().getState().fetchRevision(`/flow/revisions/${this.flow}`)}updated(t){super.updated(t),t.has("canvasSize")}render(){const t=U`<style>
8321
+ `}constructor(){super(),this.saveTimer=null}firstUpdated(t){super.firstUpdated(t),this.plumber=new eb(this.querySelector("#canvas")),t.has("flow")&&_a().getState().fetchRevision(`/flow/revisions/${this.flow}`)}updated(t){super.updated(t),t.has("canvasSize"),t.has("dirtyDate")&&this.dirtyDate&&this.debouncedSave()}debouncedSave(){null!==this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=window.setTimeout((()=>{(new Date).getTime()-this.dirtyDate.getTime()>=500?(this.saveChanges(),this.saveTimer=null):this.debouncedSave()}),500)}saveChanges(){_a().postJSON(`/flow/revisions/${this.flow}`,this.definition),_a().getState().setDirtyDate(null)}disconnectedCallback(){super.disconnectedCallback(),null!==this.saveTimer&&(clearTimeout(this.saveTimer),this.saveTimer=null)}render(){const t=U`<style>
8284
8322
  ${r(hb.styles.cssText)}
8285
8323
  ${r(cb.styles.cssText)}
8286
8324
  </style>`;return U`${t}
@@ -8297,7 +8335,7 @@ const{I:hd}=at,dd=()=>document.createComment(""),ud=(t,e,i)=>{const n=t._$AA.par
8297
8335
  ></temba-flow-node>`)):U`<temba-loading></temba-loading>`}
8298
8336
  </div>
8299
8337
  </div>
8300
- </div>`}}t([ue({type:String})],hb.prototype,"flow",void 0),t([ue({type:String})],hb.prototype,"version",void 0),t([ba(ya,(t=>t.flowDefinition))],hb.prototype,"definition",void 0),t([ba(ya,(t=>t.canvasSize))],hb.prototype,"canvasSize",void 0);class db extends Dc{constructor(){super(...arguments),this.dirtyMessage="You have unsaved changes to the contact notepad. Are you sure you want to contiunue?"}static get styles(){return a`
8338
+ </div>`}}t([ue({type:String})],hb.prototype,"flow",void 0),t([ue({type:String})],hb.prototype,"version",void 0),t([ba(ya,(t=>t.flowDefinition))],hb.prototype,"definition",void 0),t([ba(ya,(t=>t.canvasSize))],hb.prototype,"canvasSize",void 0),t([ba(ya,(t=>t.dirtyDate))],hb.prototype,"dirtyDate",void 0);class db extends Dc{constructor(){super(...arguments),this.dirtyMessage="You have unsaved changes to the contact notepad. Are you sure you want to contiunue?"}static get styles(){return a`
8301
8339
  :host {
8302
8340
  height: 100%;
8303
8341
  display: flex;
@@ -8710,7 +8748,7 @@ var UE=function(){if("undefined"!=typeof window){if(window.devicePixelRatio)retu
8710
8748
  padding: 2em 1em 1.5em 1em;
8711
8749
  max-height: 50px;
8712
8750
  }
8713
- `}constructor(){super(),this.chartType="bar",this.header="",this.other=!1,this.datasets=[],this.maxSplits=2,this.xType="category",this.yType="count",this.hideOther=!1,this.splits=[],this.dataname="Counts",this.single=!1,this.legend=!1,this.config=!1,this.showAll=!1,this.colorIndex=0,this.showConfig=!1,this.opacity=1,this.seriesBorderRadius=2,this.seriesBorderWidth=1,this.showPercent=!1}firstUpdated(t){super.firstUpdated(t);const e=this.shadowRoot.querySelector("#canvas-wrapper");this.canvas=document.createElement("canvas"),this.canvas.setAttribute("height","300px"),e.appendChild(this.canvas),this.ctx=this.canvas.getContext("2d")}updated(t){if(super.updated(t),t.has("splitNames")&&(this.splits=this.splitNames.split(",").map((t=>t.trim()))),(t.has("data")||t.has("splits"))&&this.calculateSplits(),t.has("datasets")&&this.updateChart(),t.has("url")){_a().getUrl(this.url,{skipCache:!0}).then((t=>{this.data=t.json.data}))}if(t.has("chartType")&&"line"===this.chartType&&(this.seriesBorderWidth=Math.max(1,this.seriesBorderWidth)),t.has("showPercent")&&this.chart){const t=this.chart.options.scales.y;t.ticks.display=!this.showPercent,t.grid.display=!this.showPercent,t.border.display=!this.showPercent,t.max=this.showPercent?this.getInflatedMax():void 0,this.chart.update()}}get colors(){const t=MA[this.palette]||MA["qualitative-set1"],e=Math.max(0,Math.min(1,this.opacity)),i=t.map((t=>ce(t,.25))),n=t.map((t=>{if(t.startsWith("rgba"))return t.replace(/rgba\(([^,]+),([^,]+),([^,]+),([^)]+)\)/,((t,i,n,o)=>`rgba(${i},${n},${o},${e})`));if(t.startsWith("rgb("))return t.replace(/rgb\(([^,]+),([^,]+),([^,]+)\)/,((t,i,n,o)=>`rgba(${i},${n},${o},${e})`));if(t.startsWith("#")){let i=t.replace("#","");3===i.length&&(i=i.split("").map((t=>t+t)).join(""));const n=parseInt(i,16);return`rgba(${n>>16&255},${n>>8&255},${255&n},${e})`}return t}));return[n,i]}calculateSplits(){if(this.data){const t=[],e=[],[i,n]=this.colors;for(const o of this.data.datasets)if(this.showAll||void 0!==this.splits.find((t=>t===o.label))){const e=(t.length+this.colorIndex)%i.length,s=i[e],r=n[e];t.push({...o,backgroundColor:s,borderColor:r,borderWidth:this.seriesBorderWidth,borderRadius:this.seriesBorderRadius})}else for(let t=0;t<o.data.length;t++)void 0===e[t]?e[t]=o.data[t]:e[t]+=o.data[t];if(0===t.length){const o=this.colorIndex%i.length;t.push({label:this.single?this.dataname:`All ${this.dataname}`,data:e,backgroundColor:i[o],borderColor:n[o],borderWidth:this.seriesBorderWidth,borderRadius:this.seriesBorderRadius})}else this.hideOther||this.showAll||t.push({label:"Other",data:e,backgroundColor:TA,borderColor:ce(TA,.05),borderWidth:1,borderRadius:this.seriesBorderRadius});this.datasets=t}}updateChart(){var t;if((null===(t=this.datasets)||void 0===t?void 0:t.length)>0){const t=this.datasets.reduce(((t,e)=>t+e.data.reduce(((t,e)=>t+(null!=e?e:0)),0)),0)||void 0,e=e=>{const i=t?e/t*100:0;return`${Math.round(i)}%`};if(this.chart){this.chart.data.labels=this.data.labels,this.chart.data.datasets=this.datasets,this.showPercent&&(this.chart.options.scales.y.max=this.getInflatedMax());const t=this.chart.options.plugins.datalabels||{};t.display=this.showPercent,this.showPercent?t.formatter=e:delete t.formatter,this.chart.options.plugins.datalabels=t,this.chart.update()}else{const t={type:this.chartType,data:{labels:this.data.labels,datasets:this.datasets},options:{maxBarThickness:80,plugins:{legend:{display:this.legend},tooltip:{callbacks:{label:t=>{const e=t.dataset.label||"",i=t.parsed.y;return"duration"===this.yType?`${e}: ${PA(i)}`:`${e}: ${i}`}}},datalabels:{display:this.showPercent,anchor:"end",align:"end",offset:-3,clamp:!0,...this.showPercent&&{formatter:e},color:"#666",font:{weight:"600"}}},responsive:!0,maintainAspectRatio:!1,animations:{x:{duration:0},y:{duration:200,easing:"easeOutCubic"}},scales:{y:{min:0,...this.showPercent&&{max:this.getInflatedMax()},stacked:!0,grid:{color:"rgba(0,0,0,0.04)",display:!this.showPercent,drawBorder:!this.showPercent},border:{display:!this.showPercent},ticks:{display:!this.showPercent,..."duration"===this.yType&&!this.showPercent&&{callback:t=>PA(t)}}},x:{type:this.xType,grid:{display:!1},stacked:!0,time:{unit:"day",tooltipFormat:"DDD",displayFormats:{day:"MMM dd"}}}}}};this.chart=new VS(this.ctx,t)}}}handleSplitsChanged(t){const e=t.target;this.splits=e.values.map((t=>t.value))}handleToggleConfig(){this.showConfig=!this.showConfig,this.showConfig||(this.splits=[])}render(){var t,e,i;return U`<div>
8751
+ `}constructor(){super(),this.chartType="bar",this.header="",this.other=!1,this.datasets=[],this.maxSplits=2,this.xType="category",this.xMaxTicks=10,this.yType="count",this.xFormat="auto",this.hideOther=!1,this.splits=[],this.dataname="Counts",this.single=!1,this.legend=!1,this.config=!1,this.showAll=!1,this.colorIndex=0,this.showConfig=!1,this.opacity=1,this.seriesBorderRadius=2,this.seriesBorderWidth=1,this.showPercent=!1}firstUpdated(t){super.firstUpdated(t);const e=this.shadowRoot.querySelector("#canvas-wrapper");this.canvas=document.createElement("canvas"),this.canvas.setAttribute("height","300px"),e.appendChild(this.canvas),this.ctx=this.canvas.getContext("2d")}updated(t){if(super.updated(t),t.has("splitNames")&&(this.splits=this.splitNames.split(",").map((t=>t.trim()))),(t.has("data")||t.has("splits"))&&this.calculateSplits(),t.has("datasets")&&this.updateChart(),t.has("url")){_a().getUrl(this.url,{skipCache:!0}).then((t=>{this.data=t.json.data}))}if(t.has("chartType")&&"line"===this.chartType&&(this.seriesBorderWidth=Math.max(1,this.seriesBorderWidth)),t.has("showPercent")&&this.chart){const t=this.chart.options.scales.y;t.ticks.display=!this.showPercent,t.grid.display=!this.showPercent,t.border.display=!this.showPercent,t.max=this.showPercent?this.getInflatedMax():void 0,this.chart.update()}}get colors(){const t=MA[this.palette]||MA["qualitative-set1"],e=Math.max(0,Math.min(1,this.opacity)),i=t.map((t=>ce(t,.25))),n=t.map((t=>{if(t.startsWith("rgba"))return t.replace(/rgba\(([^,]+),([^,]+),([^,]+),([^)]+)\)/,((t,i,n,o)=>`rgba(${i},${n},${o},${e})`));if(t.startsWith("rgb("))return t.replace(/rgb\(([^,]+),([^,]+),([^,]+)\)/,((t,i,n,o)=>`rgba(${i},${n},${o},${e})`));if(t.startsWith("#")){let i=t.replace("#","");3===i.length&&(i=i.split("").map((t=>t+t)).join(""));const n=parseInt(i,16);return`rgba(${n>>16&255},${n>>8&255},${255&n},${e})`}return t}));return[n,i]}calculateSplits(){if(this.data){const t=[],e=[],[i,n]=this.colors;for(const o of this.data.datasets)if(this.showAll||void 0!==this.splits.find((t=>t===o.label))){const e=(t.length+this.colorIndex)%i.length,s=i[e],r=n[e];t.push({...o,backgroundColor:s,borderColor:r,borderWidth:this.seriesBorderWidth,borderRadius:this.seriesBorderRadius})}else for(let t=0;t<o.data.length;t++)void 0===e[t]?e[t]=o.data[t]:e[t]+=o.data[t];if(0===t.length){const o=this.colorIndex%i.length;t.push({label:this.single?this.dataname:`All ${this.dataname}`,data:e,backgroundColor:i[o],borderColor:n[o],borderWidth:this.seriesBorderWidth,borderRadius:this.seriesBorderRadius})}else this.hideOther||this.showAll||t.push({label:"Other",data:e,backgroundColor:TA,borderColor:ce(TA,.05),borderWidth:1,borderRadius:this.seriesBorderRadius});this.datasets=t}}updateChart(){var t;if((null===(t=this.datasets)||void 0===t?void 0:t.length)>0){const t=this.datasets.reduce(((t,e)=>t+e.data.reduce(((t,e)=>t+(null!=e?e:0)),0)),0)||void 0,e=e=>{const i=t?e/t*100:0;return 0===i?"":`${Math.round(i)}%`};if(this.chart){this.chart.data.labels=this.data.labels,this.chart.data.datasets=this.datasets,this.showPercent&&(this.chart.options.scales.y.max=this.getInflatedMax());const t=this.chart.options.plugins.datalabels||{};t.display=this.showPercent,this.showPercent?t.formatter=e:delete t.formatter,this.chart.options.plugins.datalabels=t,this.chart.update()}else{let t=this.xFormat;if("time"===this.xType&&"auto"===this.xFormat){const e=this.data.labels[0],i=this.data.labels[this.data.labels.length-1],n=Date.parse(e),o=Date.parse(i);t="MMM dd",Math.ceil((o-n)/864e5)>365&&(t="MMM yyyy")}const i={type:this.chartType,data:{labels:this.data.labels,datasets:this.datasets},options:{maxBarThickness:80,plugins:{legend:{display:this.legend},tooltip:{callbacks:{label:t=>{const e=t.dataset.label||"",i=t.parsed.y;return"duration"===this.yType?`${e}: ${PA(i)}`:`${e}: ${i}`}}},datalabels:{display:this.showPercent,anchor:"end",align:"end",offset:-3,clamp:!0,...this.showPercent&&{formatter:e},color:"#666",font:{weight:"600"}}},responsive:!0,maintainAspectRatio:!1,animations:{x:{duration:0},y:{duration:200,easing:"easeOutCubic"}},scales:{y:{min:0,...this.showPercent&&{max:this.getInflatedMax()},stacked:!0,grid:{color:"rgba(0,0,0,0.04)",display:!this.showPercent,drawBorder:!this.showPercent},border:{display:!this.showPercent},ticks:{display:!this.showPercent,..."duration"===this.yType&&!this.showPercent&&{callback:t=>PA(t)}}},x:{type:this.xType,grid:{display:!1},stacked:!0,ticks:{maxTicksLimit:this.xMaxTicks},..."time"===this.xType&&{time:{unit:"day",tooltipFormat:"DDD",displayFormats:{day:t}}}}}}};this.chart=new VS(this.ctx,i)}}}handleSplitsChanged(t){const e=t.target;this.splits=e.values.map((t=>t.value))}handleToggleConfig(){this.showConfig=!this.showConfig,this.showConfig||(this.splits=[])}render(){var t,e,i;return U`<div>
8714
8752
  ${this.header?U`<div class="chart-title">${this.header}</div>`:null}
8715
8753
  <div id="canvas-wrapper"></div>
8716
8754
  ${this.config&&this.data?U`
@@ -8742,7 +8780,7 @@ var UE=function(){if("undefined"!=typeof window){if(window.devicePixelRatio)retu
8742
8780
  </temba-select>
8743
8781
  <div></div>
8744
8782
  </div>
8745
- </div>`}}function DA(t,e){window.customElements.get(t)||window.customElements.define(t,e)}t([ue({type:String})],OA.prototype,"chartType",void 0),t([ue({type:String})],OA.prototype,"url",void 0),t([ue({type:String})],OA.prototype,"header",void 0),t([ue({type:Boolean})],OA.prototype,"other",void 0),t([ue({type:Object})],OA.prototype,"data",void 0),t([pe()],OA.prototype,"datasets",void 0),t([ue({type:Number})],OA.prototype,"maxSplits",void 0),t([ue({type:String,attribute:"splits"})],OA.prototype,"splitNames",void 0),t([ue({type:String})],OA.prototype,"xType",void 0),t([ue({type:String})],OA.prototype,"yType",void 0),t([ue({type:Boolean})],OA.prototype,"hideOther",void 0),t([pe()],OA.prototype,"splits",void 0),t([ue({type:String})],OA.prototype,"dataname",void 0),t([ue({type:Boolean})],OA.prototype,"single",void 0),t([ue({type:Boolean})],OA.prototype,"legend",void 0),t([ue({type:Boolean})],OA.prototype,"config",void 0),t([ue({type:Boolean})],OA.prototype,"showAll",void 0),t([ue({type:Number})],OA.prototype,"colorIndex",void 0),t([pe()],OA.prototype,"showConfig",void 0),t([ue({type:String})],OA.prototype,"palette",void 0),t([ue({type:Number})],OA.prototype,"opacity",void 0),t([ue({type:Number})],OA.prototype,"seriesBorderRadius",void 0),t([ue({type:Number})],OA.prototype,"seriesBorderWidth",void 0),t([ue({type:Boolean,attribute:"percent"})],OA.prototype,"showPercent",void 0),DA("temba-anchor",wh),DA("temba-alert",dh),DA("temba-store",wa),DA("temba-textinput",Ie),DA("temba-datepicker",Fh),DA("temba-date",Yh),DA("temba-completion",pc),DA("temba-checkbox",be),DA("temba-select",uc),DA("temba-options",ka),DA("temba-loading",xc),DA("temba-lightbox",Kh),DA("temba-button",yc),DA("temba-omnibox",gh),DA("temba-tip",bh),DA("temba-contact-name",Ah),DA("temba-contact-name-fetch",jh),DA("temba-contact-field",Oh),DA("temba-contact-fields",Th),DA("temba-field-manager",Hh),DA("temba-urn",Mh),DA("temba-content-menu",Gh),DA("temba-field",bc),DA("temba-dialog",gc),DA("temba-modax",vc),DA("temba-charcount",Tc),DA("temba-contact-chat",rh),DA("temba-contact-details",class extends Dc{static get styles(){return a`
8783
+ </div>`}}function DA(t,e){window.customElements.get(t)||window.customElements.define(t,e)}t([ue({type:String})],OA.prototype,"chartType",void 0),t([ue({type:String})],OA.prototype,"url",void 0),t([ue({type:String})],OA.prototype,"header",void 0),t([ue({type:Boolean})],OA.prototype,"other",void 0),t([ue({type:Object})],OA.prototype,"data",void 0),t([pe()],OA.prototype,"datasets",void 0),t([ue({type:Number})],OA.prototype,"maxSplits",void 0),t([ue({type:String,attribute:"splits"})],OA.prototype,"splitNames",void 0),t([ue({type:String})],OA.prototype,"xType",void 0),t([ue({type:Number})],OA.prototype,"xMaxTicks",void 0),t([ue({type:String})],OA.prototype,"yType",void 0),t([ue({type:String})],OA.prototype,"xFormat",void 0),t([ue({type:Boolean})],OA.prototype,"hideOther",void 0),t([pe()],OA.prototype,"splits",void 0),t([ue({type:String})],OA.prototype,"dataname",void 0),t([ue({type:Boolean})],OA.prototype,"single",void 0),t([ue({type:Boolean})],OA.prototype,"legend",void 0),t([ue({type:Boolean})],OA.prototype,"config",void 0),t([ue({type:Boolean})],OA.prototype,"showAll",void 0),t([ue({type:Number})],OA.prototype,"colorIndex",void 0),t([pe()],OA.prototype,"showConfig",void 0),t([ue({type:String})],OA.prototype,"palette",void 0),t([ue({type:Number})],OA.prototype,"opacity",void 0),t([ue({type:Number})],OA.prototype,"seriesBorderRadius",void 0),t([ue({type:Number})],OA.prototype,"seriesBorderWidth",void 0),t([ue({type:Boolean,attribute:"percent"})],OA.prototype,"showPercent",void 0),DA("temba-anchor",wh),DA("temba-alert",dh),DA("temba-store",wa),DA("temba-textinput",Ie),DA("temba-datepicker",Fh),DA("temba-date",Yh),DA("temba-completion",pc),DA("temba-checkbox",be),DA("temba-select",uc),DA("temba-options",ka),DA("temba-loading",xc),DA("temba-lightbox",Kh),DA("temba-button",yc),DA("temba-omnibox",gh),DA("temba-tip",bh),DA("temba-contact-name",Ah),DA("temba-contact-name-fetch",jh),DA("temba-contact-field",Oh),DA("temba-contact-fields",Th),DA("temba-field-manager",Hh),DA("temba-urn",Mh),DA("temba-content-menu",Gh),DA("temba-field",bc),DA("temba-dialog",gc),DA("temba-modax",vc),DA("temba-charcount",Tc),DA("temba-contact-chat",rh),DA("temba-contact-details",class extends Dc{static get styles(){return a`
8746
8784
  .urn {
8747
8785
  display: flex;
8748
8786
  padding: 0.4em 1em 0.8em 1em;