n8n-editor-ui 1.77.0 → 1.77.2

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 (82) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DI9LKNPl.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-C9LVFaJT.js} +1 -1
  2. package/dist/assets/{AuthView-DM7o3O4n.js → AuthView-C383xWYW.js} +2 -2
  3. package/dist/assets/{CanvasChat-D_6gR76j.js → CanvasChat-BGlghV3T.js} +13 -19
  4. package/dist/assets/{CanvasControls-Nhfb4Lvl.js → CanvasControls-Crujpx17.js} +1 -1
  5. package/dist/assets/{ChangePasswordView-BaAm4ZVG.js → ChangePasswordView-DXzIgEaK.js} +3 -3
  6. package/dist/assets/CollectionParameter-C_1RVSJv.js +4 -0
  7. package/dist/assets/{ConcurrentExecutionsHeader-DIjBdza6.js → ConcurrentExecutionsHeader-D9E-tPI2.js} +2 -2
  8. package/dist/assets/{CredentialsView-Xu6hENWr.js → CredentialsView-Db-yh1UW.js} +4 -4
  9. package/dist/assets/{ErrorView-DUTGEeMV.js → ErrorView-DVEUcXeM.js} +1 -1
  10. package/dist/assets/{ExecutionsView-BUxJO71n.js → ExecutionsView-CqcJ1jBb.js} +5 -5
  11. package/dist/assets/{FileSaver.min-BEdek61R.js → FileSaver.min-DRMcruyG.js} +1 -1
  12. package/dist/assets/{FixedCollectionParameter-C347CzJX.js → FixedCollectionParameter-rnJQitY7.js} +1 -1
  13. package/dist/assets/{ForgotMyPasswordView-COBAL4BR.js → ForgotMyPasswordView-CCuBQ23v.js} +3 -3
  14. package/dist/assets/{Logo-D0YIkpeq.js → Logo-vj6e7OLa.js} +1 -1
  15. package/dist/assets/{MainHeader-C9fFpTj2.js → MainHeader-Bz40v4tX.js} +9 -9
  16. package/dist/assets/{MainSidebar-DqTz49bY.js → MainSidebar-7b7uQIcC.js} +2 -2
  17. package/dist/assets/{NodeCreation-BfPITu8g.js → NodeCreation-KBmCqr6_.js} +4 -4
  18. package/dist/assets/{NodeCreator-CK6kn0Jv.js → NodeCreator-DTMPwVj5.js} +4 -4
  19. package/dist/assets/{NodeViewSwitcher-Ccwulgc_.js → NodeViewSwitcher-O6VqzxIl.js} +21 -21
  20. package/dist/assets/{ProjectCardBadge-Dzk3JBiy.js → ProjectCardBadge-OKM1Xgdw.js} +1 -1
  21. package/dist/assets/{ProjectHeader-DScDlb97.js → ProjectHeader-6S5uaHXh.js} +1 -1
  22. package/dist/assets/{ProjectSettings-BKBT1ZQ3.js → ProjectSettings-BnHtiDEV.js} +2 -2
  23. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-vHkaCcgH.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-IciN-pmV.js} +1 -1
  24. package/dist/assets/{ResourcesListLayout-Bm25PbPe.js → ResourcesListLayout-D4r1wqjJ.js} +1 -1
  25. package/dist/assets/{RunDataJson-DdPA-vUg.js → RunDataJson-wyo45w7C.js} +14 -14
  26. package/dist/assets/{RunDataJsonActions-DQOpbX-O.js → RunDataJsonActions-D46WL4YN.js} +2 -2
  27. package/dist/assets/{RunDataSearch-CouFZTIv.js → RunDataSearch-B3EyVssL.js} +1 -1
  28. package/dist/assets/{RunDataTable-BTSlSsV8.js → RunDataTable-DGMN5nF6.js} +2 -2
  29. package/dist/assets/{SamlOnboarding-ByjacAW7.js → SamlOnboarding-CnXUkDfT.js} +3 -3
  30. package/dist/assets/{SettingsApiView-Bcy_zE6E.js → SettingsApiView-EFylgnqH.js} +1 -1
  31. package/dist/assets/{SettingsCommunityNodesView-Cjl8HKbz.js → SettingsCommunityNodesView-9KrggWFu.js} +4 -4
  32. package/dist/assets/{SettingsExternalSecrets-BdjUgns5.js → SettingsExternalSecrets-DBPzjP3z.js} +1 -1
  33. package/dist/assets/{SettingsLdapView-JZznK2gT.js → SettingsLdapView-Bg2KWXN0.js} +1 -1
  34. package/dist/assets/{SettingsLogStreamingView-Dr-YFp2W.js → SettingsLogStreamingView-tgIsDBAk.js} +1 -1
  35. package/dist/assets/{SettingsPersonalView-inpY_nzK.js → SettingsPersonalView-CDJ8_Cuz.js} +1 -1
  36. package/dist/assets/{SettingsSourceControl-Cg7lS-SE.js → SettingsSourceControl-ap8XMKcG.js} +1 -1
  37. package/dist/assets/{SettingsSso-NG13hUzi.js → SettingsSso-B91oi5bN.js} +1 -1
  38. package/dist/assets/{SettingsUsageAndPlan-BgSLN2VF.js → SettingsUsageAndPlan-Bb6yK99X.js} +1 -1
  39. package/dist/assets/{SettingsUsersView-DUmnh2jo.js → SettingsUsersView-Ci2z6Jpz.js} +1 -1
  40. package/dist/assets/{SettingsView-DdHGr_vR.js → SettingsView-CStRsQ-w.js} +1 -1
  41. package/dist/assets/{SetupView-ByLBPzaO.js → SetupView-B5zAoB3c.js} +3 -3
  42. package/dist/assets/{SetupWorkflowCredentialsButton-Dv3O2B1n.js → SetupWorkflowCredentialsButton-Cro6GHxL.js} +1 -1
  43. package/dist/assets/{SetupWorkflowFromTemplateView-DFn8kOzj.js → SetupWorkflowFromTemplateView-CcwL92Id.js} +3 -3
  44. package/dist/assets/{SigninView-DIJ4QhSe.js → SigninView-DsPEhU2L.js} +3 -3
  45. package/dist/assets/{SignoutView-CzgpQ3SX.js → SignoutView-BIckw4fs.js} +1 -1
  46. package/dist/assets/{SignupView-Ki2_QcUU.js → SignupView-DdJWtYpI.js} +3 -3
  47. package/dist/assets/{TemplateDetails-BSeVX-wU.js → TemplateDetails-C41VgGvk.js} +1 -1
  48. package/dist/assets/{TemplateList-CM9EZ6da.js → TemplateList-DkS7PdQW.js} +1 -1
  49. package/dist/assets/{TemplatesCollectionView-DQMG3Nx0.js → TemplatesCollectionView-BV7HXuai.js} +5 -5
  50. package/dist/assets/{TemplatesSearchView-BG5Bfpq9.js → TemplatesSearchView-BKY_Lw-C.js} +3 -3
  51. package/dist/assets/{TemplatesView-D3vhmKK2.js → TemplatesView-C312c1EZ.js} +1 -1
  52. package/dist/assets/{TemplatesWorkflowView-BVZExmo-.js → TemplatesWorkflowView-BfzWwupR.js} +5 -5
  53. package/dist/assets/{TestDefinitionEditView-DeYXSHuX.js → TestDefinitionEditView-CwoHUF5w.js} +3 -3
  54. package/dist/assets/{TestDefinitionListView-Dm0Wfpbk.js → TestDefinitionListView-2tWTEUz0.js} +1 -1
  55. package/dist/assets/{TestDefinitionRootView-v_AUC4gJ.js → TestDefinitionRootView-gJRxCHz3.js} +1 -1
  56. package/dist/assets/{VariablesView-BBjPCn4K.js → VariablesView-DqbIksP3.js} +2 -2
  57. package/dist/assets/{WorkerView-wAx-DxZp.js → WorkerView-DSPfcsXN.js} +5 -5
  58. package/dist/assets/{WorkflowActivator-KzTynbZM.js → WorkflowActivator-Bm8OihqN.js} +2 -2
  59. package/dist/assets/{WorkflowExecutionsInfoAccordion-BWYv1FIv.js → WorkflowExecutionsInfoAccordion-B78-cQSW.js} +1 -1
  60. package/dist/assets/{WorkflowExecutionsLandingPage-LwIHX7rs.js → WorkflowExecutionsLandingPage-C39BBF2o.js} +2 -2
  61. package/dist/assets/{WorkflowExecutionsPreview-D68OCpWf.js → WorkflowExecutionsPreview-CdlK3mFb.js} +5 -5
  62. package/dist/assets/{WorkflowExecutionsView-C47WjaF2.js → WorkflowExecutionsView-a-Pjy5V5.js} +5 -5
  63. package/dist/assets/{WorkflowHistory-VBfitRhR.js → WorkflowHistory-Bwqmh22i.js} +3 -3
  64. package/dist/assets/{WorkflowOnboardingView-X9Yz2kZe.js → WorkflowOnboardingView-CipWLUUf.js} +1 -1
  65. package/dist/assets/{WorkflowPreview-D0IqMbWq.js → WorkflowPreview-CAjmdxrY.js} +1 -1
  66. package/dist/assets/{WorkflowsView-CXhmco5U.js → WorkflowsView-DP6J_TRf.js} +7 -7
  67. package/dist/assets/{easyAiWorkflowUtils-B7xBZAZO.js → easyAiWorkflowUtils-BLdDr_bc.js} +1 -1
  68. package/dist/assets/{index-BW7gX0J2.js → index-DablXALM.js} +54 -54
  69. package/dist/assets/{polyfills-DNwgos9f.js → polyfills-DfOJfMlf.js} +257 -847
  70. package/dist/assets/{pushConnection.store-C6PSl50Z.js → pushConnection.store-DmLr_C_P.js} +1 -1
  71. package/dist/assets/{templateActions-BHlzMnfj.js → templateActions--1waaCku.js} +1 -1
  72. package/dist/assets/{useBeforeUnload-BudMrcxz.js → useBeforeUnload-C9Q3IFHU.js} +1 -1
  73. package/dist/assets/{useCanvasOperations-ZjLeZwpS.js → useCanvasOperations-CEPzjX8I.js} +545 -669
  74. package/dist/assets/{useExecutionDebugging-C_Y6ee_L.js → useExecutionDebugging-Pzj1BQ1f.js} +1 -1
  75. package/dist/assets/{useExecutionHelpers-MX6P-wr8.js → useExecutionHelpers-F_WL-Kvp.js} +1 -1
  76. package/dist/assets/{usePinnedData-CHMuwypo.js → usePinnedData-BEOJK2e-.js} +1 -1
  77. package/dist/assets/{usePushConnection-3HzYJp1-.js → usePushConnection-BlvBVLFC.js} +3 -3
  78. package/dist/assets/{useRunWorkflow-DUK8ev8x.js → useRunWorkflow-CoRVHZg2.js} +3 -3
  79. package/dist/assets/{useWorkflowActivate-BjJ3P-qa.js → useWorkflowActivate-wvqU9rPU.js} +1 -1
  80. package/dist/index.html +2 -2
  81. package/package.json +1 -1
  82. package/dist/assets/CollectionParameter-B6Y-W51v.js +0 -4
@@ -1,5 +1,5 @@
1
- import { gn as createCompounder, go as SetCache, gp as arrayIncludes, gq as cacheHas, gr as baseRest, gs as isArrayLikeObject, gt as baseFlatten, r as ref, K as useUIStore, bo as useNodeTypesStore, T as useWorkflowsStore, a0 as useSourceControlStore, q as computed, al as getResourcePermissions, cR as isPresent, H as watch, dz as getMousePosition$1, aB as STICKY_NODE_TYPE, g as useI18n, gu as NOT_DUPLICATABLE_NODE_TYPES, d as defineComponent, E as onClickOutside, l as unref, c as openBlock, e as createBlock, j as createBaseVNode, i as createVNode, w as withCtx, n as normalizeClass, gv as N8nActionDropdown, B as normalizeStyle, gw as Teleport, f as createCommentVNode, _ as _export_sfc$1, bk as v4, gx as CORE_NODES_CATEGORY, gy as DEFAULT_SUBCATEGORY, p as useSettingsStore, gz as AI_TRANSFORM_NODE_TYPE, gA as sublimeSearch, ba as AI_SUBCATEGORY, bb as AI_CATEGORY_AGENTS, gB as sortBy, fV as i18n, gC as AI_CATEGORY_OTHER_TOOLS, gD as AI_OTHERS_NODE_CREATOR_VIEW, gE as AI_CATEGORY_DOCUMENT_LOADERS, bh as NodeConnectionType, gF as AI_CATEGORY_LANGUAGE_MODELS, gG as AI_CATEGORY_MEMORY, gH as AI_CATEGORY_OUTPUTPARSER, gI as AI_CATEGORY_RETRIEVERS, gJ as AI_CATEGORY_TEXT_SPLITTERS, gK as AI_CATEGORY_TOOLS, gL as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, gM as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, gN as AI_CATEGORY_EMBEDDING, gO as AI_CATEGORY_VECTOR_STORES, gP as AI_UNCATEGORIZED_CATEGORY, aM as useTemplatesStore, eo as AI_NODE_CREATOR_VIEW, dP as TRIGGER_NODE_CREATOR_VIEW, bI as MANUAL_TRIGGER_NODE_TYPE, bJ as WEBHOOK_NODE_TYPE, gQ as EMAIL_IMAP_NODE_TYPE, gR as SCHEDULE_TRIGGER_NODE_TYPE, by as FORM_TRIGGER_NODE_TYPE, g9 as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, b7 as CHAT_TRIGGER_NODE_TYPE, gS as OTHER_TRIGGER_NODES_SUBCATEGORY, eH as REGULAR_NODE_CREATOR_VIEW, gT as RSS_READ_NODE_TYPE, gU as EMAIL_SEND_NODE_TYPE, gV as TRANSFORM_DATA_SUBCATEGORY, gW as FILTER_NODE_TYPE, gX as REMOVE_DUPLICATES_NODE_TYPE, gY as SPLIT_OUT_NODE_TYPE, gZ as LIMIT_NODE_TYPE, g_ as SUMMARIZE_NODE_TYPE, g$ as AGGREGATE_NODE_TYPE, h0 as MERGE_NODE_TYPE, co as HTML_NODE_TYPE, h1 as MARKDOWN_NODE_TYPE, h2 as XML_NODE_TYPE, h3 as CRYPTO_NODE_TYPE, h4 as EXTRACT_FROM_FILE_NODE_TYPE, h5 as CONVERT_TO_FILE_NODE_TYPE, h6 as COMPRESSION_NODE_TYPE, h7 as EDIT_IMAGE_NODE_TYPE, h8 as FLOWS_CONTROL_SUBCATEGORY, h9 as IF_NODE_TYPE, ha as SPLIT_IN_BATCHES_NODE_TYPE, hb as HELPERS_SUBCATEGORY, hc as HTTP_REQUEST_NODE_TYPE, hd as CODE_NODE_TYPE, bc as AI_CATEGORY_CHAINS, he as SET_NODE_TYPE, hf as DATETIME_NODE_TYPE, R as defineStore, $ as useCanvasStore, hg as AI_CATEGORY_ROOT_NODES, y as nextTick, bd as AI_CODE_NODE_TYPE, bK as AI_TRANSFORM_NODE_TYPE$1, eQ as CanvasConnectionMode, hh as isValidCanvasConnectionMode, d7 as isValidNodeConnectionType, S as STORES, as as useNDVStore, dE as NODE_CREATOR_OPEN_SOURCES, hi as isVueFlowConnection, d$ as nodeConnectionTypes, be as getNodeInputs, dp as CUSTOM_API_CALL_KEY, aT as useExternalHooks, aj as useTelemetry, hj as effectScope, cj as toRef, h as createElementBlock, s as renderSlot, ca as useSlots, bq as provide, b4 as onUnmounted, aw as onBeforeMount, o as onMounted, hk as createPropsRestProxy, hl as useAttrs, F as Fragment, d5 as getCurrentInstance, dy as reactive, aW as inject, t as toDisplayString, A as renderList, x as onBeforeUnmount, hm as isMemoSame, hn as getCurrentScope, ho as onScopeDispose, aX as isRef, aY as toRefs$1, hp as customRef, hq as toValue$1, b0 as resolveDynamicComponent, k as createTextVNode, a$ as mergeProps, m as resolveComponent, ap as h, hr as markRaw, hs as readonly, dD as KeyboardShortcutTooltip, ht as CanvasKey, aa as useCssModule, bn as watchEffect, aZ as normalizeProps, hu as CanvasNodeKey, eN as CanvasNodeRenderType, hv as refThrottled, hw as mergeModels, hx as useModel, bp as useNodeHelpers, bH as TitledList, cO as resolveDirective, ax as withDirectives, ac as nodeViewEventBus, hy as CanvasNodeHandleKey, ay as vShow, cZ as Transition$2, br as _sfc_main$y, I as withModifiers, C as createEventBus, bP as isEqual, hz as useActiveElement, d0 as useDeviceSupport, hA as useEventListener$1, aS as createSlots, dk as GRID_SIZE, hB as onKeyDown, hC as onKeyUp, c9 as useThrottleFn, a_ as guardReactiveProps, cr as Suspense, bg as getNodeOutputs, c$ as getTriggerNodeServiceName, eW as sanitizeHtml, bG as nodeIssuesToString, ds as WAIT_NODE_TYPE, dt as SEND_AND_WAIT_OPERATION, du as FORM_NODE_TYPE, dv as WAIT_INDEFINITELY, Z as useRootStore, bR as useCredentialsStore, bU as useHistoryStore, D as useTagsStore, at as useExecutionsStore, a as useToast, a4 as useWorkflowHelpers, b6 as useClipboard, dS as MoveNodeCommand, c3 as RenameNodeCommand, eL as RemoveNodeCommand, eJ as useDataSchema, dZ as NODE_SIZE, hD as AddNodeCommand, b$ as getNodeParameters, dU as getNewNodePosition, hE as DEFAULT_NODE_SIZE, hF as CONFIGURATION_NODE_SIZE, bf as getConnectionTypes, d_ as generateOffsets, hG as CONFIGURABLE_NODE_SIZE, dY as PUSH_NODES_OFFSET, e8 as AddConnectionCommand, ei as RemoveConnectionCommand, dT as UPDATE_WEBHOOK_ID_NODE_TYPES, dN as generateNodesGraph, a8 as EnterpriseEditionFeature, c0 as deepCopy } from "./index-BW7gX0J2.js";
2
- import { c as capitalize, u as usePinnedData } from "./usePinnedData-CHMuwypo.js";
1
+ import { gn as createCompounder, go as SetCache, gp as arrayIncludes, gq as cacheHas, gr as baseRest, gs as isArrayLikeObject, gt as baseFlatten, r as ref, K as useUIStore, bo as useNodeTypesStore, T as useWorkflowsStore, a0 as useSourceControlStore, q as computed, al as getResourcePermissions, cR as isPresent, H as watch, dz as getMousePosition$1, aB as STICKY_NODE_TYPE, g as useI18n, gu as NOT_DUPLICATABLE_NODE_TYPES, d as defineComponent, E as onClickOutside, l as unref, c as openBlock, e as createBlock, j as createBaseVNode, i as createVNode, w as withCtx, n as normalizeClass, gv as N8nActionDropdown, B as normalizeStyle, gw as Teleport, f as createCommentVNode, _ as _export_sfc$1, bk as v4, gx as CORE_NODES_CATEGORY, gy as DEFAULT_SUBCATEGORY, p as useSettingsStore, gz as AI_TRANSFORM_NODE_TYPE, gA as sublimeSearch, ba as AI_SUBCATEGORY, bb as AI_CATEGORY_AGENTS, gB as sortBy, fV as i18n, gC as AI_CATEGORY_OTHER_TOOLS, gD as AI_OTHERS_NODE_CREATOR_VIEW, gE as AI_CATEGORY_DOCUMENT_LOADERS, bh as NodeConnectionType, gF as AI_CATEGORY_LANGUAGE_MODELS, gG as AI_CATEGORY_MEMORY, gH as AI_CATEGORY_OUTPUTPARSER, gI as AI_CATEGORY_RETRIEVERS, gJ as AI_CATEGORY_TEXT_SPLITTERS, gK as AI_CATEGORY_TOOLS, gL as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, gM as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, gN as AI_CATEGORY_EMBEDDING, gO as AI_CATEGORY_VECTOR_STORES, gP as AI_UNCATEGORIZED_CATEGORY, aM as useTemplatesStore, eo as AI_NODE_CREATOR_VIEW, dP as TRIGGER_NODE_CREATOR_VIEW, bI as MANUAL_TRIGGER_NODE_TYPE, bJ as WEBHOOK_NODE_TYPE, gQ as EMAIL_IMAP_NODE_TYPE, gR as SCHEDULE_TRIGGER_NODE_TYPE, by as FORM_TRIGGER_NODE_TYPE, g9 as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, b7 as CHAT_TRIGGER_NODE_TYPE, gS as OTHER_TRIGGER_NODES_SUBCATEGORY, eH as REGULAR_NODE_CREATOR_VIEW, gT as RSS_READ_NODE_TYPE, gU as EMAIL_SEND_NODE_TYPE, gV as TRANSFORM_DATA_SUBCATEGORY, gW as FILTER_NODE_TYPE, gX as REMOVE_DUPLICATES_NODE_TYPE, gY as SPLIT_OUT_NODE_TYPE, gZ as LIMIT_NODE_TYPE, g_ as SUMMARIZE_NODE_TYPE, g$ as AGGREGATE_NODE_TYPE, h0 as MERGE_NODE_TYPE, co as HTML_NODE_TYPE, h1 as MARKDOWN_NODE_TYPE, h2 as XML_NODE_TYPE, h3 as CRYPTO_NODE_TYPE, h4 as EXTRACT_FROM_FILE_NODE_TYPE, h5 as CONVERT_TO_FILE_NODE_TYPE, h6 as COMPRESSION_NODE_TYPE, h7 as EDIT_IMAGE_NODE_TYPE, h8 as FLOWS_CONTROL_SUBCATEGORY, h9 as IF_NODE_TYPE, ha as SPLIT_IN_BATCHES_NODE_TYPE, hb as HELPERS_SUBCATEGORY, hc as HTTP_REQUEST_NODE_TYPE, hd as CODE_NODE_TYPE, bc as AI_CATEGORY_CHAINS, he as SET_NODE_TYPE, hf as DATETIME_NODE_TYPE, R as defineStore, $ as useCanvasStore, hg as AI_CATEGORY_ROOT_NODES, y as nextTick, bd as AI_CODE_NODE_TYPE, bK as AI_TRANSFORM_NODE_TYPE$1, eQ as CanvasConnectionMode, hh as isValidCanvasConnectionMode, d7 as isValidNodeConnectionType, S as STORES, as as useNDVStore, dE as NODE_CREATOR_OPEN_SOURCES, hi as isVueFlowConnection, d$ as nodeConnectionTypes, be as getNodeInputs, dp as CUSTOM_API_CALL_KEY, aT as useExternalHooks, aj as useTelemetry, hj as effectScope, cj as toRef, h as createElementBlock, s as renderSlot, ca as useSlots, bq as provide, b4 as onUnmounted, aw as onBeforeMount, o as onMounted, hk as useAttrs, a$ as mergeProps, F as Fragment, d5 as getCurrentInstance, dy as reactive, aW as inject, t as toDisplayString, A as renderList, x as onBeforeUnmount, hl as isMemoSame, hm as getCurrentScope, hn as onScopeDispose, aX as isRef, aY as toRefs$1, ho as customRef, hp as toValue$1, hq as createPropsRestProxy, b0 as resolveDynamicComponent, k as createTextVNode, m as resolveComponent, ap as h, hr as readonly, hs as markRaw, dD as KeyboardShortcutTooltip, ht as CanvasKey, aa as useCssModule, bn as watchEffect, aZ as normalizeProps, hu as CanvasNodeKey, eN as CanvasNodeRenderType, hv as refThrottled, hw as mergeModels, hx as useModel, bp as useNodeHelpers, bH as TitledList, cO as resolveDirective, ax as withDirectives, ac as nodeViewEventBus, hy as CanvasNodeHandleKey, ay as vShow, cZ as Transition$2, br as _sfc_main$y, I as withModifiers, C as createEventBus, bP as isEqual, hz as useActiveElement, d0 as useDeviceSupport, hA as useEventListener$1, aS as createSlots, dk as GRID_SIZE, hB as onKeyDown, hC as onKeyUp, c9 as useThrottleFn, a_ as guardReactiveProps, cr as Suspense, bg as getNodeOutputs, c$ as getTriggerNodeServiceName, eW as sanitizeHtml, bG as nodeIssuesToString, ds as WAIT_NODE_TYPE, dt as SEND_AND_WAIT_OPERATION, du as FORM_NODE_TYPE, dv as WAIT_INDEFINITELY, Z as useRootStore, bR as useCredentialsStore, bU as useHistoryStore, D as useTagsStore, at as useExecutionsStore, a as useToast, a4 as useWorkflowHelpers, b6 as useClipboard, dS as MoveNodeCommand, c3 as RenameNodeCommand, eL as RemoveNodeCommand, eJ as useDataSchema, dZ as NODE_SIZE, hD as AddNodeCommand, b$ as getNodeParameters, dU as getNewNodePosition, hE as DEFAULT_NODE_SIZE, hF as CONFIGURATION_NODE_SIZE, bf as getConnectionTypes, d_ as generateOffsets, hG as CONFIGURABLE_NODE_SIZE, dY as PUSH_NODES_OFFSET, e8 as AddConnectionCommand, ei as RemoveConnectionCommand, dT as UPDATE_WEBHOOK_ID_NODE_TYPES, dN as generateNodesGraph, a8 as EnterpriseEditionFeature, c0 as deepCopy } from "./index-DablXALM.js";
2
+ import { c as capitalize, u as usePinnedData } from "./usePinnedData-BEOJK2e-.js";
3
3
  var camelCase = createCompounder(function(result, word, index) {
4
4
  word = word.toLowerCase();
5
5
  return result + (index ? capitalize(word) : word);
@@ -5865,36 +5865,27 @@ function calcNextPosition(node2, nextPosition, triggerError, nodeExtent, parentN
5865
5865
  computedPosition: clampedPos
5866
5866
  };
5867
5867
  }
5868
- function getHandlePosition(node2, handle2, fallbackPosition = Position.Left) {
5868
+ function getHandlePosition(node2, handle2, fallbackPosition = Position.Left, center = false) {
5869
5869
  const x = ((handle2 == null ? void 0 : handle2.x) ?? 0) + node2.computedPosition.x;
5870
5870
  const y = ((handle2 == null ? void 0 : handle2.y) ?? 0) + node2.computedPosition.y;
5871
5871
  const { width, height } = handle2 ?? getNodeDimensions(node2);
5872
+ if (center) {
5873
+ return { x: x + width / 2, y: y + height / 2 };
5874
+ }
5872
5875
  const position2 = (handle2 == null ? void 0 : handle2.position) ?? fallbackPosition;
5873
5876
  switch (position2) {
5874
5877
  case Position.Top:
5875
- return {
5876
- x: x + width / 2,
5877
- y
5878
- };
5878
+ return { x: x + width / 2, y };
5879
5879
  case Position.Right:
5880
- return {
5881
- x: x + width,
5882
- y: y + height / 2
5883
- };
5880
+ return { x: x + width, y: y + height / 2 };
5884
5881
  case Position.Bottom:
5885
- return {
5886
- x: x + width / 2,
5887
- y: y + height
5888
- };
5882
+ return { x: x + width / 2, y: y + height };
5889
5883
  case Position.Left:
5890
- return {
5891
- x,
5892
- y: y + height / 2
5893
- };
5884
+ return { x, y: y + height / 2 };
5894
5885
  }
5895
5886
  }
5896
- function getHandle(bounds = [], handleId) {
5897
- if (!bounds.length) {
5887
+ function getEdgeHandle(bounds, handleId) {
5888
+ if (!bounds) {
5898
5889
  return null;
5899
5890
  }
5900
5891
  return (!handleId ? bounds[0] : bounds.find((d) => d.id === handleId)) || null;
@@ -6094,103 +6085,90 @@ function snapPosition(position2, snapGrid = [1, 1]) {
6094
6085
  y: snapGrid[1] * Math.round(position2.y / snapGrid[1])
6095
6086
  };
6096
6087
  }
6097
- function defaultValidHandleResult() {
6098
- return {
6099
- handleDomNode: null,
6100
- isValid: false,
6101
- connection: { source: "", target: "", sourceHandle: null, targetHandle: null },
6102
- endHandle: null
6103
- };
6104
- }
6088
+ const alwaysValid$1 = () => true;
6105
6089
  function resetRecentHandle(handleDomNode) {
6106
6090
  handleDomNode == null ? void 0 : handleDomNode.classList.remove("valid", "connecting", "vue-flow__handle-valid", "vue-flow__handle-connecting");
6107
6091
  }
6108
- function getHandles(node2, handleBounds, type, currentHandle) {
6109
- const connectionHandles = [];
6110
- for (const handle2 of handleBounds[type] || []) {
6111
- if (`${node2.id}-${handle2.id}-${type}` !== currentHandle) {
6112
- const { x, y } = getHandlePosition(node2, handle2);
6113
- connectionHandles.push({
6114
- id: handle2.id || null,
6115
- type,
6116
- nodeId: node2.id,
6117
- x,
6118
- y
6119
- });
6092
+ function getNodesWithinDistance(position2, nodeLookup, distance2) {
6093
+ const nodes = [];
6094
+ const rect = {
6095
+ x: position2.x - distance2,
6096
+ y: position2.y - distance2,
6097
+ width: distance2 * 2,
6098
+ height: distance2 * 2
6099
+ };
6100
+ for (const node2 of nodeLookup.values()) {
6101
+ if (getOverlappingArea(rect, nodeToRect(node2)) > 0) {
6102
+ nodes.push(node2);
6120
6103
  }
6121
6104
  }
6122
- return connectionHandles;
6105
+ return nodes;
6123
6106
  }
6124
- function getClosestHandle(event, doc, pos, connectionRadius, handles, validator) {
6125
- const { x, y } = getEventPosition(event);
6126
- const domNodes = doc.elementsFromPoint(x, y);
6127
- const handleBelow = domNodes.find((el) => el.classList.contains("vue-flow__handle"));
6128
- if (handleBelow) {
6129
- const handleNodeId = handleBelow.getAttribute("data-nodeid");
6130
- if (handleNodeId) {
6131
- const handleType = getHandleType(void 0, handleBelow);
6132
- const handleId = handleBelow.getAttribute("data-handleid");
6133
- const validHandleResult = validator({ nodeId: handleNodeId, id: handleId, type: handleType });
6134
- if (validHandleResult) {
6135
- const handle2 = handles.find((h2) => h2.nodeId === handleNodeId && h2.type === handleType && h2.id === handleId);
6136
- return {
6137
- handle: {
6138
- id: handleId,
6139
- type: handleType,
6140
- nodeId: handleNodeId,
6141
- x: (handle2 == null ? void 0 : handle2.x) || pos.x,
6142
- y: (handle2 == null ? void 0 : handle2.y) || pos.y
6143
- },
6144
- validHandleResult
6145
- };
6146
- }
6147
- }
6148
- }
6107
+ const ADDITIONAL_DISTANCE = 250;
6108
+ function getClosestHandle(position2, connectionRadius, nodeLookup, fromHandle) {
6109
+ var _a, _b;
6149
6110
  let closestHandles = [];
6150
6111
  let minDistance = Number.POSITIVE_INFINITY;
6151
- for (const handle2 of handles) {
6152
- const distance2 = Math.sqrt((handle2.x - pos.x) ** 2 + (handle2.y - pos.y) ** 2);
6153
- if (distance2 <= connectionRadius) {
6154
- const validHandleResult = validator(handle2);
6155
- if (distance2 <= minDistance) {
6156
- if (distance2 < minDistance) {
6157
- closestHandles = [{ handle: handle2, validHandleResult }];
6158
- } else if (distance2 === minDistance) {
6159
- closestHandles.push({
6160
- handle: handle2,
6161
- validHandleResult
6162
- });
6163
- }
6112
+ const closeNodes = getNodesWithinDistance(position2, nodeLookup, connectionRadius + ADDITIONAL_DISTANCE);
6113
+ for (const node2 of closeNodes) {
6114
+ const allHandles = [...((_a = node2.handleBounds) == null ? void 0 : _a.source) ?? [], ...((_b = node2.handleBounds) == null ? void 0 : _b.target) ?? []];
6115
+ for (const handle2 of allHandles) {
6116
+ if (fromHandle.nodeId === handle2.nodeId && fromHandle.type === handle2.type && fromHandle.id === handle2.id) {
6117
+ continue;
6118
+ }
6119
+ const { x, y } = getHandlePosition(node2, handle2, handle2.position, true);
6120
+ const distance2 = Math.sqrt((x - position2.x) ** 2 + (y - position2.y) ** 2);
6121
+ if (distance2 > connectionRadius) {
6122
+ continue;
6123
+ }
6124
+ if (distance2 < minDistance) {
6125
+ closestHandles = [{ ...handle2, x, y }];
6164
6126
  minDistance = distance2;
6127
+ } else if (distance2 === minDistance) {
6128
+ closestHandles.push({ ...handle2, x, y });
6165
6129
  }
6166
6130
  }
6167
6131
  }
6168
6132
  if (!closestHandles.length) {
6169
- return { handle: null, validHandleResult: defaultValidHandleResult() };
6170
- }
6171
- if (closestHandles.length === 1) {
6172
- return closestHandles[0];
6133
+ return null;
6173
6134
  }
6174
- const hasValidHandle = closestHandles.some(({ validHandleResult }) => validHandleResult.isValid);
6175
- const hasTargetHandle = closestHandles.some(({ handle: handle2 }) => handle2.type === "target");
6176
- return closestHandles.find(
6177
- ({ handle: handle2, validHandleResult }) => hasTargetHandle ? handle2.type === "target" : hasValidHandle ? validHandleResult.isValid : true
6178
- ) || closestHandles[0];
6179
- }
6180
- function isValidHandle(event, handle2, connectionMode, fromNodeId, fromHandleId, fromType, isValidConnection, doc, edges, nodes, findNode) {
6135
+ if (closestHandles.length > 1) {
6136
+ const oppositeHandleType = fromHandle.type === "source" ? "target" : "source";
6137
+ return closestHandles.find((handle2) => handle2.type === oppositeHandleType) ?? closestHandles[0];
6138
+ }
6139
+ return closestHandles[0];
6140
+ }
6141
+ function isValidHandle(event, {
6142
+ handle: handle2,
6143
+ connectionMode,
6144
+ fromNodeId,
6145
+ fromHandleId,
6146
+ fromType,
6147
+ doc,
6148
+ lib,
6149
+ flowId,
6150
+ isValidConnection = alwaysValid$1
6151
+ }, edges, nodes, findNode) {
6181
6152
  const isTarget = fromType === "target";
6182
- const handleDomNode = doc.querySelector(`.vue-flow__handle[data-id="${handle2 == null ? void 0 : handle2.nodeId}-${handle2 == null ? void 0 : handle2.id}-${handle2 == null ? void 0 : handle2.type}"]`);
6153
+ const handleDomNode = handle2 ? doc.querySelector(`.${lib}-flow__handle[data-id="${flowId}-${handle2 == null ? void 0 : handle2.nodeId}-${handle2 == null ? void 0 : handle2.id}-${handle2 == null ? void 0 : handle2.type}"]`) : null;
6183
6154
  const { x, y } = getEventPosition(event);
6184
- const elementBelow = doc.elementFromPoint(x, y);
6185
- const handleToCheck = (elementBelow == null ? void 0 : elementBelow.classList.contains("vue-flow__handle")) ? elementBelow : handleDomNode;
6186
- const result = defaultValidHandleResult();
6155
+ const handleBelow = doc.elementFromPoint(x, y);
6156
+ const handleToCheck = (handleBelow == null ? void 0 : handleBelow.classList.contains(`${lib}-flow__handle`)) ? handleBelow : handleDomNode;
6157
+ const result = {
6158
+ handleDomNode: handleToCheck,
6159
+ isValid: false,
6160
+ connection: null,
6161
+ toHandle: null
6162
+ };
6187
6163
  if (handleToCheck) {
6188
- result.handleDomNode = handleToCheck;
6189
6164
  const handleType = getHandleType(void 0, handleToCheck);
6190
6165
  const handleNodeId = handleToCheck.getAttribute("data-nodeid");
6191
6166
  const handleId = handleToCheck.getAttribute("data-handleid");
6192
6167
  const connectable = handleToCheck.classList.contains("connectable");
6193
6168
  const connectableEnd = handleToCheck.classList.contains("connectableend");
6169
+ if (!handleNodeId || !handleType) {
6170
+ return result;
6171
+ }
6194
6172
  const connection = {
6195
6173
  source: isTarget ? handleNodeId : fromNodeId,
6196
6174
  sourceHandle: isTarget ? handleId : fromHandleId,
@@ -6200,38 +6178,16 @@ function isValidHandle(event, handle2, connectionMode, fromNodeId, fromHandleId,
6200
6178
  result.connection = connection;
6201
6179
  const isConnectable = connectable && connectableEnd;
6202
6180
  const isValid = isConnectable && (connectionMode === ConnectionMode.Strict ? isTarget && handleType === "source" || !isTarget && handleType === "target" : handleNodeId !== fromNodeId || handleId !== fromHandleId);
6203
- if (isValid) {
6204
- result.isValid = isValidConnection(connection, {
6205
- edges,
6206
- nodes,
6207
- sourceNode: findNode(connection.source),
6208
- targetNode: findNode(connection.target)
6209
- });
6210
- result.endHandle = {
6211
- nodeId: handleNodeId,
6212
- handleId,
6213
- type: handleType,
6214
- position: result.isValid ? handleToCheck.getAttribute("data-handlepos") : null
6215
- };
6216
- }
6181
+ result.isValid = isValid && isValidConnection(connection, {
6182
+ nodes,
6183
+ edges,
6184
+ sourceNode: findNode(fromNodeId),
6185
+ targetNode: findNode(handleNodeId)
6186
+ });
6187
+ result.toHandle = handle2;
6217
6188
  }
6218
6189
  return result;
6219
6190
  }
6220
- function getHandleLookup({ nodes, nodeId, handleId, handleType }) {
6221
- const handleLookup = [];
6222
- for (let i = 0; i < nodes.length; i++) {
6223
- const node2 = nodes[i];
6224
- const { handleBounds } = node2;
6225
- let sourceHandles = [];
6226
- let targetHandles = [];
6227
- if (handleBounds) {
6228
- sourceHandles = getHandles(node2, handleBounds, "source", `${nodeId}-${handleId}-${handleType}`);
6229
- targetHandles = getHandles(node2, handleBounds, "target", `${nodeId}-${handleId}-${handleType}`);
6230
- }
6231
- handleLookup.push(...sourceHandles, ...targetHandles);
6232
- }
6233
- return handleLookup;
6234
- }
6235
6191
  function getHandleType(edgeUpdaterType, handleDomNode) {
6236
6192
  if (edgeUpdaterType) {
6237
6193
  return edgeUpdaterType;
@@ -6251,6 +6207,31 @@ function getConnectionStatus(isInsideConnectionRadius, isHandleValid) {
6251
6207
  }
6252
6208
  return connectionStatus;
6253
6209
  }
6210
+ function isConnectionValid(isInsideConnectionRadius, isHandleValid) {
6211
+ let isValid = null;
6212
+ if (isHandleValid) {
6213
+ isValid = true;
6214
+ } else if (isInsideConnectionRadius && !isHandleValid) {
6215
+ isValid = false;
6216
+ }
6217
+ return isValid;
6218
+ }
6219
+ function getHandle(nodeId, handleType, handleId, nodeLookup, connectionMode, withAbsolutePosition = false) {
6220
+ var _a, _b, _c;
6221
+ const node2 = nodeLookup.get(nodeId);
6222
+ if (!node2) {
6223
+ return null;
6224
+ }
6225
+ const handles = connectionMode === ConnectionMode.Strict ? (_a = node2.handleBounds) == null ? void 0 : _a[handleType] : [...((_b = node2.handleBounds) == null ? void 0 : _b.source) ?? [], ...((_c = node2.handleBounds) == null ? void 0 : _c.target) ?? []];
6226
+ const handle2 = (handleId ? handles == null ? void 0 : handles.find((h2) => h2.id === handleId) : handles == null ? void 0 : handles[0]) ?? null;
6227
+ return handle2 && withAbsolutePosition ? { ...handle2, ...getHandlePosition(node2, handle2, handle2.position, true) } : handle2;
6228
+ }
6229
+ const oppositePosition = {
6230
+ [Position.Left]: Position.Right,
6231
+ [Position.Right]: Position.Left,
6232
+ [Position.Top]: Position.Bottom,
6233
+ [Position.Bottom]: Position.Top
6234
+ };
6254
6235
  const productionEnvs = ["production", "prod"];
6255
6236
  function warn(message, ...args) {
6256
6237
  if (isDev()) {
@@ -6260,14 +6241,16 @@ function warn(message, ...args) {
6260
6241
  function isDev() {
6261
6242
  return !productionEnvs.includes("production");
6262
6243
  }
6263
- function getHandleBounds(selector2, nodeElement, nodeBounds, zoom2) {
6264
- const handles = nodeElement.querySelectorAll(`.vue-flow__handle${selector2}`);
6244
+ function getHandleBounds(type, nodeElement, nodeBounds, zoom2) {
6245
+ const handles = nodeElement.querySelectorAll(`.vue-flow__handle.${type}`);
6265
6246
  const handlesArray = Array.from(handles);
6266
6247
  return handlesArray.map((handle2) => {
6267
6248
  const handleBounds = handle2.getBoundingClientRect();
6268
6249
  return {
6269
6250
  id: handle2.getAttribute("data-handleid"),
6270
6251
  position: handle2.getAttribute("data-handlepos"),
6252
+ nodeId: handle2.getAttribute("data-nodeid"),
6253
+ type,
6271
6254
  x: (handleBounds.left - nodeBounds.left) / zoom2,
6272
6255
  y: (handleBounds.top - nodeBounds.top) / zoom2,
6273
6256
  ...getDimensions(handle2)
@@ -6361,18 +6344,42 @@ function createGraphNodes(nodes, findNode, triggerError) {
6361
6344
  }
6362
6345
  return nextNodes;
6363
6346
  }
6364
- function updateConnectionLookup(connectionLookup, edges) {
6347
+ function addConnectionToLookup(type, connection, connectionKey, connectionLookup, nodeId, handleId) {
6348
+ let key = nodeId;
6349
+ const nodeMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();
6350
+ connectionLookup.set(key, nodeMap.set(connectionKey, connection));
6351
+ key = `${nodeId}-${type}`;
6352
+ const typeMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();
6353
+ connectionLookup.set(key, typeMap.set(connectionKey, connection));
6354
+ if (handleId) {
6355
+ key = `${nodeId}-${type}-${handleId}`;
6356
+ const handleMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();
6357
+ connectionLookup.set(key, handleMap.set(connectionKey, connection));
6358
+ }
6359
+ }
6360
+ function updateConnectionLookup(connectionLookup, edgeLookup, edges) {
6365
6361
  connectionLookup.clear();
6362
+ edgeLookup.clear();
6366
6363
  for (const edge2 of edges) {
6367
- const { id: edgeId, source, target: target2, sourceHandle = null, targetHandle = null } = edge2;
6368
- const sourceKey = `${source}-source-${sourceHandle}`;
6369
- const targetKey = `${target2}-target-${targetHandle}`;
6370
- const prevSource = connectionLookup.get(sourceKey) || /* @__PURE__ */ new Map();
6371
- const prevTarget = connectionLookup.get(targetKey) || /* @__PURE__ */ new Map();
6372
- const connection = markRaw({ edgeId, source, target: target2, sourceHandle, targetHandle });
6373
- connectionLookup.set(sourceKey, prevSource.set(`${target2}-${targetHandle}`, connection));
6374
- connectionLookup.set(targetKey, prevTarget.set(`${source}-${sourceHandle}`, connection));
6364
+ const { source: sourceNode, target: targetNode, sourceHandle = null, targetHandle = null } = edge2;
6365
+ const connection = { edgeId: edge2.id, source: sourceNode, target: targetNode, sourceHandle, targetHandle };
6366
+ const sourceKey = `${sourceNode}-${sourceHandle}--${targetNode}-${targetHandle}`;
6367
+ const targetKey = `${targetNode}-${targetHandle}--${sourceNode}-${sourceHandle}`;
6368
+ addConnectionToLookup("source", connection, targetKey, connectionLookup, sourceNode, sourceHandle);
6369
+ addConnectionToLookup("target", connection, sourceKey, connectionLookup, targetNode, targetHandle);
6370
+ edgeLookup.set(edge2.id, edge2);
6371
+ }
6372
+ }
6373
+ function areSetsEqual(a, b) {
6374
+ if (a.size !== b.size) {
6375
+ return false;
6376
+ }
6377
+ for (const item of a) {
6378
+ if (!b.has(item)) {
6379
+ return false;
6380
+ }
6375
6381
  }
6382
+ return true;
6376
6383
  }
6377
6384
  function createGraphEdges(nextEdges, isValidConnection, findNode, findEdge, onError, defaultEdgeOptions, nodes, edges) {
6378
6385
  const validEdges = [];
@@ -6712,6 +6719,7 @@ function useHandle({
6712
6719
  onEdgeUpdateEnd
6713
6720
  }) {
6714
6721
  const {
6722
+ id: flowId,
6715
6723
  vueFlowRef,
6716
6724
  connectionMode,
6717
6725
  connectionRadius,
@@ -6729,12 +6737,12 @@ function useHandle({
6729
6737
  viewport,
6730
6738
  edges,
6731
6739
  nodes,
6732
- isValidConnection: isValidConnectionProp
6740
+ isValidConnection: isValidConnectionProp,
6741
+ nodeLookup
6733
6742
  } = useVueFlow();
6734
6743
  let connection = null;
6735
6744
  let isValid = false;
6736
6745
  let handleDomNode = null;
6737
- let previousConnection = null;
6738
6746
  function handlePointerDown(event) {
6739
6747
  var _a;
6740
6748
  const isTarget = toValue$1(type) === "target";
@@ -6743,35 +6751,47 @@ function useHandle({
6743
6751
  if (isMouseTriggered && event.button === 0 || !isMouseTriggered) {
6744
6752
  let onPointerMove = function(event2) {
6745
6753
  connectionPosition = getEventPosition(event2, containerBounds);
6746
- const { handle: handle2, validHandleResult } = getClosestHandle(
6747
- event2,
6748
- doc,
6754
+ closestHandle = getClosestHandle(
6749
6755
  pointToRendererPoint(connectionPosition, viewport.value, false, [1, 1]),
6750
6756
  connectionRadius.value,
6751
- handleLookup,
6752
- (handle22) => isValidHandle(
6753
- event2,
6754
- handle22,
6755
- connectionMode.value,
6756
- toValue$1(nodeId),
6757
- toValue$1(handleId),
6758
- isTarget ? "target" : "source",
6759
- isValidConnectionHandler,
6760
- doc,
6761
- edges.value,
6762
- nodes.value,
6763
- findNode
6764
- )
6757
+ nodeLookup.value,
6758
+ fromHandle
6765
6759
  );
6766
- closestHandle = handle2;
6767
6760
  if (!autoPanStarted) {
6768
6761
  autoPan();
6769
6762
  autoPanStarted = true;
6770
6763
  }
6771
- connection = validHandleResult.connection;
6772
- isValid = validHandleResult.isValid;
6773
- handleDomNode = validHandleResult.handleDomNode;
6774
- if (isValid && closestHandle && (previousConnection == null ? void 0 : previousConnection.endHandle) && validHandleResult.endHandle && previousConnection.endHandle.type === validHandleResult.endHandle.type && previousConnection.endHandle.nodeId === validHandleResult.endHandle.nodeId && previousConnection.endHandle.handleId === validHandleResult.endHandle.handleId) {
6764
+ const result = isValidHandle(
6765
+ event2,
6766
+ {
6767
+ handle: closestHandle,
6768
+ connectionMode: connectionMode.value,
6769
+ fromNodeId: toValue$1(nodeId),
6770
+ fromHandleId: toValue$1(handleId),
6771
+ fromType: isTarget ? "target" : "source",
6772
+ isValidConnection: isValidConnectionHandler,
6773
+ doc,
6774
+ lib: "vue",
6775
+ flowId,
6776
+ nodeLookup: nodeLookup.value
6777
+ },
6778
+ edges.value,
6779
+ nodes.value,
6780
+ findNode
6781
+ );
6782
+ handleDomNode = result.handleDomNode;
6783
+ connection = result.connection;
6784
+ isValid = isConnectionValid(!!closestHandle, result.isValid);
6785
+ const newConnection2 = {
6786
+ // from stays the same
6787
+ ...previousConnection,
6788
+ isValid,
6789
+ to: closestHandle && isValid ? rendererPointToPoint({ x: closestHandle.x, y: closestHandle.y }, viewport.value) : connectionPosition,
6790
+ toHandle: result.toHandle,
6791
+ toPosition: isValid && result.toHandle ? result.toHandle.position : oppositePosition[fromHandle.position],
6792
+ toNode: result.toHandle ? nodeLookup.value.get(result.toHandle.nodeId) : null
6793
+ };
6794
+ if (isValid && closestHandle && (previousConnection == null ? void 0 : previousConnection.toHandle) && newConnection2.toHandle && previousConnection.toHandle.type === newConnection2.toHandle.type && previousConnection.toHandle.nodeId === newConnection2.toHandle.nodeId && previousConnection.toHandle.id === newConnection2.toHandle.id && previousConnection.to.x === newConnection2.to.x && previousConnection.to.y === newConnection2.to.y) {
6775
6795
  return;
6776
6796
  }
6777
6797
  updateConnection(
@@ -6782,10 +6802,10 @@ function useHandle({
6782
6802
  },
6783
6803
  viewport.value
6784
6804
  ) : connectionPosition,
6785
- validHandleResult.endHandle,
6805
+ result.toHandle,
6786
6806
  getConnectionStatus(!!closestHandle, isValid)
6787
6807
  );
6788
- previousConnection = validHandleResult;
6808
+ previousConnection = newConnection2;
6789
6809
  if (!closestHandle && !isValid && !handleDomNode) {
6790
6810
  return resetRecentHandle(prevActiveHandle);
6791
6811
  }
@@ -6793,8 +6813,8 @@ function useHandle({
6793
6813
  resetRecentHandle(prevActiveHandle);
6794
6814
  prevActiveHandle = handleDomNode;
6795
6815
  handleDomNode.classList.add("connecting", "vue-flow__handle-connecting");
6796
- handleDomNode.classList.toggle("valid", isValid);
6797
- handleDomNode.classList.toggle("vue-flow__handle-valid", isValid);
6816
+ handleDomNode.classList.toggle("valid", !!isValid);
6817
+ handleDomNode.classList.toggle("vue-flow__handle-valid", !!isValid);
6798
6818
  }
6799
6819
  }, onPointerUp = function(event2) {
6800
6820
  if ((closestHandle || handleDomNode) && connection && isValid) {
@@ -6834,15 +6854,13 @@ function useHandle({
6834
6854
  if (!containerBounds || !handleType) {
6835
6855
  return;
6836
6856
  }
6857
+ const fromHandleInternal = getHandle(toValue$1(nodeId), handleType, toValue$1(handleId), nodeLookup.value, connectionMode.value);
6858
+ if (!fromHandleInternal) {
6859
+ return;
6860
+ }
6837
6861
  let prevActiveHandle;
6838
6862
  let connectionPosition = getEventPosition(event, containerBounds);
6839
6863
  let autoPanStarted = false;
6840
- const handleLookup = getHandleLookup({
6841
- nodes: nodes.value,
6842
- nodeId: toValue$1(nodeId),
6843
- handleId: toValue$1(handleId),
6844
- handleType
6845
- });
6846
6864
  const autoPan = () => {
6847
6865
  if (!autoPanOnConnect.value) {
6848
6866
  return;
@@ -6851,10 +6869,30 @@ function useHandle({
6851
6869
  panBy({ x: xMovement, y: yMovement });
6852
6870
  autoPanId = requestAnimationFrame(autoPan);
6853
6871
  };
6872
+ const fromHandle = {
6873
+ ...fromHandleInternal,
6874
+ nodeId: toValue$1(nodeId),
6875
+ type: handleType,
6876
+ position: fromHandleInternal.position
6877
+ };
6878
+ const fromNodeInternal = nodeLookup.value.get(toValue$1(nodeId));
6879
+ const from = getHandlePosition(fromNodeInternal, fromHandle, Position.Left, true);
6880
+ const newConnection = {
6881
+ inProgress: true,
6882
+ isValid: null,
6883
+ from,
6884
+ fromHandle,
6885
+ fromPosition: fromHandle.position,
6886
+ fromNode: fromNodeInternal,
6887
+ to: connectionPosition,
6888
+ toHandle: null,
6889
+ toPosition: oppositePosition[fromHandle.position],
6890
+ toNode: null
6891
+ };
6854
6892
  startConnection(
6855
6893
  {
6856
6894
  nodeId: toValue$1(nodeId),
6857
- handleId: toValue$1(handleId),
6895
+ id: toValue$1(handleId),
6858
6896
  type: handleType,
6859
6897
  position: (clickedHandle == null ? void 0 : clickedHandle.getAttribute("data-handlepos")) || Position.Top
6860
6898
  },
@@ -6864,6 +6902,7 @@ function useHandle({
6864
6902
  }
6865
6903
  );
6866
6904
  emits.connectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId), handleType });
6905
+ let previousConnection = newConnection;
6867
6906
  doc.addEventListener("mousemove", onPointerMove);
6868
6907
  doc.addEventListener("mouseup", onPointerUp);
6869
6908
  doc.addEventListener("touchmove", onPointerMove);
@@ -6871,47 +6910,58 @@ function useHandle({
6871
6910
  }
6872
6911
  }
6873
6912
  function handleClick(event) {
6913
+ var _a, _b;
6874
6914
  if (!connectOnClick.value) {
6875
6915
  return;
6876
6916
  }
6877
6917
  const isTarget = toValue$1(type) === "target";
6878
6918
  if (!connectionClickStartHandle.value) {
6879
6919
  emits.clickConnectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId) });
6880
- startConnection({ nodeId: toValue$1(nodeId), type: toValue$1(type), handleId: toValue$1(handleId) }, void 0, true);
6881
- } else {
6882
- let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;
6883
- const node2 = findNode(toValue$1(nodeId));
6884
- if (!isValidConnectionHandler && node2) {
6885
- isValidConnectionHandler = (!isTarget ? node2.isValidTargetPos : node2.isValidSourcePos) || alwaysValid;
6886
- }
6887
- if (node2 && (typeof node2.connectable === "undefined" ? nodesConnectable.value : node2.connectable) === false) {
6888
- return;
6889
- }
6890
- const doc = getHostForElement(event.target);
6891
- const { connection: connection2, isValid: isValid2 } = isValidHandle(
6892
- event,
6893
- {
6920
+ startConnection(
6921
+ { nodeId: toValue$1(nodeId), type: toValue$1(type), id: toValue$1(handleId), position: Position.Top },
6922
+ void 0,
6923
+ true
6924
+ );
6925
+ return;
6926
+ }
6927
+ let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;
6928
+ const node2 = findNode(toValue$1(nodeId));
6929
+ if (!isValidConnectionHandler && node2) {
6930
+ isValidConnectionHandler = (!isTarget ? node2.isValidTargetPos : node2.isValidSourcePos) || alwaysValid;
6931
+ }
6932
+ if (node2 && (typeof node2.connectable === "undefined" ? nodesConnectable.value : node2.connectable) === false) {
6933
+ return;
6934
+ }
6935
+ const doc = getHostForElement(event.target);
6936
+ const result = isValidHandle(
6937
+ event,
6938
+ {
6939
+ handle: {
6894
6940
  nodeId: toValue$1(nodeId),
6895
6941
  id: toValue$1(handleId),
6896
- type: toValue$1(type)
6942
+ type: toValue$1(type),
6943
+ position: Position.Top
6897
6944
  },
6898
- connectionMode.value,
6899
- connectionClickStartHandle.value.nodeId,
6900
- connectionClickStartHandle.value.handleId || null,
6901
- connectionClickStartHandle.value.type,
6902
- isValidConnectionHandler,
6945
+ connectionMode: connectionMode.value,
6946
+ fromNodeId: connectionClickStartHandle.value.nodeId,
6947
+ fromHandleId: connectionClickStartHandle.value.id || null,
6948
+ fromType: connectionClickStartHandle.value.type,
6949
+ isValidConnection: isValidConnectionHandler,
6903
6950
  doc,
6904
- edges.value,
6905
- nodes.value,
6906
- findNode
6907
- );
6908
- const isOwnHandle = connection2.source === connection2.target;
6909
- if (isValid2 && !isOwnHandle) {
6910
- emits.connect(connection2);
6911
- }
6912
- emits.clickConnectEnd(event);
6913
- endConnection(event, true);
6951
+ lib: "vue",
6952
+ flowId,
6953
+ nodeLookup: nodeLookup.value
6954
+ },
6955
+ edges.value,
6956
+ nodes.value,
6957
+ findNode
6958
+ );
6959
+ const isOwnHandle = ((_a = result.connection) == null ? void 0 : _a.source) === ((_b = result.connection) == null ? void 0 : _b.target);
6960
+ if (result.isValid && result.connection && !isOwnHandle) {
6961
+ emits.connect(result.connection);
6914
6962
  }
6963
+ emits.clickConnectEnd(event);
6964
+ endConnection(event, true);
6915
6965
  }
6916
6966
  return {
6917
6967
  handlePointerDown,
@@ -7746,8 +7796,8 @@ function useActions(state, nodeLookup, edgeLookup) {
7746
7796
  if (doUpdate) {
7747
7797
  const nodeBounds = update.nodeElement.getBoundingClientRect();
7748
7798
  node2.dimensions = dimensions;
7749
- node2.handleBounds.source = getHandleBounds(".source", update.nodeElement, nodeBounds, zoom2);
7750
- node2.handleBounds.target = getHandleBounds(".target", update.nodeElement, nodeBounds, zoom2);
7799
+ node2.handleBounds.source = getHandleBounds("source", update.nodeElement, nodeBounds, zoom2);
7800
+ node2.handleBounds.target = getHandleBounds("target", update.nodeElement, nodeBounds, zoom2);
7751
7801
  changes.push({
7752
7802
  id: node2.id,
7753
7803
  type: "dimensions",
@@ -7902,7 +7952,7 @@ function useActions(state, nodeLookup, edgeLookup) {
7902
7952
  state.nodes,
7903
7953
  state.edges
7904
7954
  );
7905
- updateConnectionLookup(state.connectionLookup, validEdges);
7955
+ updateConnectionLookup(state.connectionLookup, edgeLookup.value, validEdges);
7906
7956
  state.edges = validEdges;
7907
7957
  };
7908
7958
  const setElements = (elements) => {
@@ -8040,7 +8090,7 @@ function useActions(state, nodeLookup, edgeLookup) {
8040
8090
  state.edges
8041
8091
  );
8042
8092
  state.edges.splice(state.edges.indexOf(prevEdge), 1, validEdge);
8043
- updateConnectionLookup(state.connectionLookup, [validEdge]);
8093
+ updateConnectionLookup(state.connectionLookup, edgeLookup.value, [validEdge]);
8044
8094
  return validEdge;
8045
8095
  }
8046
8096
  return false;
@@ -8058,7 +8108,7 @@ function useActions(state, nodeLookup, edgeLookup) {
8058
8108
  };
8059
8109
  const applyEdgeChanges2 = (changes) => {
8060
8110
  const changedEdges = applyChanges(changes, state.edges);
8061
- updateConnectionLookup(state.connectionLookup, changedEdges);
8111
+ updateConnectionLookup(state.connectionLookup, edgeLookup.value, changedEdges);
8062
8112
  return changedEdges;
8063
8113
  };
8064
8114
  const updateNode = (id2, nodeUpdate, options = { replace: false }) => {
@@ -8370,6 +8420,7 @@ const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
8370
8420
  const type = toRef(() => props.type ?? "source");
8371
8421
  const isValidConnection = toRef(() => props.isValidConnection ?? null);
8372
8422
  const {
8423
+ id: flowId,
8373
8424
  connectionStartHandle,
8374
8425
  connectionClickStartHandle,
8375
8426
  connectionEndHandle,
@@ -8385,13 +8436,13 @@ const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
8385
8436
  const isConnecting = toRef(
8386
8437
  () => {
8387
8438
  var _a, _b, _c, _d, _e, _f;
8388
- return ((_a = connectionStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionStartHandle.value) == null ? void 0 : _b.handleId) === __props.id && ((_c = connectionStartHandle.value) == null ? void 0 : _c.type) === type.value || ((_d = connectionEndHandle.value) == null ? void 0 : _d.nodeId) === nodeId && ((_e = connectionEndHandle.value) == null ? void 0 : _e.handleId) === __props.id && ((_f = connectionEndHandle.value) == null ? void 0 : _f.type) === type.value;
8439
+ return ((_a = connectionStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionStartHandle.value) == null ? void 0 : _b.id) === __props.id && ((_c = connectionStartHandle.value) == null ? void 0 : _c.type) === type.value || ((_d = connectionEndHandle.value) == null ? void 0 : _d.nodeId) === nodeId && ((_e = connectionEndHandle.value) == null ? void 0 : _e.id) === __props.id && ((_f = connectionEndHandle.value) == null ? void 0 : _f.type) === type.value;
8389
8440
  }
8390
8441
  );
8391
8442
  const isClickConnecting = toRef(
8392
8443
  () => {
8393
8444
  var _a, _b, _c;
8394
- return ((_a = connectionClickStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionClickStartHandle.value) == null ? void 0 : _b.handleId) === __props.id && ((_c = connectionClickStartHandle.value) == null ? void 0 : _c.type) === type.value;
8445
+ return ((_a = connectionClickStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionClickStartHandle.value) == null ? void 0 : _b.id) === __props.id && ((_c = connectionClickStartHandle.value) == null ? void 0 : _c.type) === type.value;
8395
8446
  }
8396
8447
  );
8397
8448
  const { handlePointerDown, handleClick } = useHandle({
@@ -8446,6 +8497,8 @@ const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
8446
8497
  position: __props.position,
8447
8498
  x: (handleBounds.left - nodeBounds.left) / zoom2,
8448
8499
  y: (handleBounds.top - nodeBounds.top) / zoom2,
8500
+ type: type.value,
8501
+ nodeId,
8449
8502
  ...getDimensions(handle2.value)
8450
8503
  };
8451
8504
  node2.handleBounds[type.value] = [...node2.handleBounds[type.value] ?? [], nextBounds];
@@ -8480,7 +8533,7 @@ const _sfc_main$f$1 = /* @__PURE__ */ defineComponent({
8480
8533
  return openBlock(), createElementBlock("div", {
8481
8534
  ref_key: "handle",
8482
8535
  ref: handle2,
8483
- "data-id": `${unref(nodeId)}-${__props.id}-${type.value}`,
8536
+ "data-id": `${unref(flowId)}-${unref(nodeId)}-${__props.id}-${type.value}`,
8484
8537
  "data-handleid": __props.id,
8485
8538
  "data-nodeid": unref(nodeId),
8486
8539
  "data-handlepos": _ctx.position,
@@ -8647,15 +8700,13 @@ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
8647
8700
  markerStart: {},
8648
8701
  markerEnd: {},
8649
8702
  interactionWidth: { default: 20 },
8650
- style: {},
8651
8703
  labelStyle: {},
8652
- labelShowBg: { type: Boolean, default: true },
8704
+ labelShowBg: { type: Boolean },
8653
8705
  labelBgStyle: {},
8654
8706
  labelBgPadding: {},
8655
8707
  labelBgBorderRadius: {}
8656
8708
  },
8657
8709
  setup(__props, { expose: __expose }) {
8658
- const props = createPropsRestProxy(__props, ["interactionWidth", "labelShowBg"]);
8659
8710
  const pathEl = ref(null);
8660
8711
  const interactionEl = ref(null);
8661
8712
  const labelEl = ref(null);
@@ -8667,16 +8718,15 @@ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
8667
8718
  });
8668
8719
  return (_ctx, _cache) => {
8669
8720
  return openBlock(), createElementBlock(Fragment, null, [
8670
- createBaseVNode("path", {
8721
+ createBaseVNode("path", mergeProps(unref(attrs), {
8671
8722
  id: _ctx.id,
8672
8723
  ref_key: "pathEl",
8673
8724
  ref: pathEl,
8674
8725
  d: _ctx.path,
8675
- style: normalizeStyle(props.style),
8676
- class: normalizeClass(["vue-flow__edge-path", unref(attrs).class]),
8726
+ class: "vue-flow__edge-path",
8677
8727
  "marker-end": _ctx.markerEnd,
8678
8728
  "marker-start": _ctx.markerStart
8679
- }, null, 14, _hoisted_1$7$1),
8729
+ }), null, 16, _hoisted_1$7$1),
8680
8730
  _ctx.interactionWidth ? (openBlock(), createElementBlock("path", {
8681
8731
  key: 0,
8682
8732
  ref_key: "interactionEl",
@@ -9396,7 +9446,7 @@ class Storage {
9396
9446
  edgeLookup,
9397
9447
  emits,
9398
9448
  id: id2,
9399
- vueFlowVersion: "1.41.6",
9449
+ vueFlowVersion: "1.42.1",
9400
9450
  $destroy: () => {
9401
9451
  this.remove(id2);
9402
9452
  }
@@ -9644,13 +9694,14 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9644
9694
  multiSelectionKeyCode,
9645
9695
  multiSelectionActive,
9646
9696
  edgeLookup,
9647
- nodeLookup
9697
+ nodeLookup,
9698
+ connectionLookup,
9699
+ defaultEdgeOptions
9648
9700
  } = useVueFlow();
9649
9701
  const container = ref(null);
9650
- const prevSelectedNodesCount = ref(0);
9651
- const prevSelectedEdgesCount = ref(0);
9702
+ const selectedNodeIds = ref(/* @__PURE__ */ new Set());
9703
+ const selectedEdgeIds = ref(/* @__PURE__ */ new Set());
9652
9704
  const containerBounds = ref();
9653
- const edgeIdLookup = ref(/* @__PURE__ */ new Map());
9654
9705
  const hasActiveSelection = toRef(() => elementsSelectable.value && (__props.isSelecting || userSelectionActive.value));
9655
9706
  let selectionInProgress = false;
9656
9707
  let selectionStarted = false;
@@ -9675,12 +9726,6 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9675
9726
  handler == null ? void 0 : handler(event);
9676
9727
  };
9677
9728
  }
9678
- function resetUserSelection() {
9679
- userSelectionActive.value = false;
9680
- userSelectionRect.value = null;
9681
- prevSelectedNodesCount.value = 0;
9682
- prevSelectedEdgesCount.value = 0;
9683
- }
9684
9729
  function onClick(event) {
9685
9730
  if (selectionInProgress) {
9686
9731
  selectionInProgress = false;
@@ -9699,7 +9744,7 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9699
9744
  emits.paneScroll(event);
9700
9745
  }
9701
9746
  function onPointerDown(event) {
9702
- var _a, _b, _c, _d, _e;
9747
+ var _a, _b, _c;
9703
9748
  containerBounds.value = (_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect();
9704
9749
  if (!elementsSelectable.value || !__props.isSelecting || event.button !== 0 || event.target !== container.value || !containerBounds.value) {
9705
9750
  return;
@@ -9708,11 +9753,6 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9708
9753
  const { x, y } = getMousePosition(event, containerBounds.value);
9709
9754
  selectionStarted = true;
9710
9755
  selectionInProgress = false;
9711
- edgeIdLookup.value = /* @__PURE__ */ new Map();
9712
- for (const [id2, edge2] of edgeLookup.value) {
9713
- edgeIdLookup.value.set(edge2.source, ((_d = edgeIdLookup.value.get(edge2.source)) == null ? void 0 : _d.add(id2)) || /* @__PURE__ */ new Set([id2]));
9714
- edgeIdLookup.value.set(edge2.target, ((_e = edgeIdLookup.value.get(edge2.target)) == null ? void 0 : _e.add(id2)) || /* @__PURE__ */ new Set([id2]));
9715
- }
9716
9756
  removeSelectedElements();
9717
9757
  userSelectionRect.value = {
9718
9758
  width: 0,
@@ -9725,6 +9765,7 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9725
9765
  emits.selectionStart(event);
9726
9766
  }
9727
9767
  function onPointerMove(event) {
9768
+ var _a;
9728
9769
  if (!containerBounds.value || !userSelectionRect.value) {
9729
9770
  return;
9730
9771
  }
@@ -9739,32 +9780,33 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9739
9780
  width: Math.abs(mouseX - startX),
9740
9781
  height: Math.abs(mouseY - startY)
9741
9782
  };
9742
- const selectedNodes = getNodesInside(
9743
- nodes.value,
9744
- nextUserSelectRect,
9745
- viewport.value,
9746
- selectionMode.value === SelectionMode.Partial,
9747
- true
9783
+ const prevSelectedNodeIds = selectedNodeIds.value;
9784
+ const prevSelectedEdgeIds = selectedEdgeIds.value;
9785
+ selectedNodeIds.value = new Set(
9786
+ getNodesInside(nodes.value, nextUserSelectRect, viewport.value, selectionMode.value === SelectionMode.Partial, true).map(
9787
+ (node2) => node2.id
9788
+ )
9748
9789
  );
9749
- const selectedEdgeIds = /* @__PURE__ */ new Set();
9750
- const selectedNodeIds = /* @__PURE__ */ new Set();
9751
- for (const selectedNode of selectedNodes) {
9752
- selectedNodeIds.add(selectedNode.id);
9753
- const edgeIds = edgeIdLookup.value.get(selectedNode.id);
9754
- if (edgeIds) {
9755
- for (const edgeId of edgeIds) {
9756
- selectedEdgeIds.add(edgeId);
9790
+ selectedEdgeIds.value = /* @__PURE__ */ new Set();
9791
+ const edgesSelectable = ((_a = defaultEdgeOptions.value) == null ? void 0 : _a.selectable) ?? true;
9792
+ for (const nodeId of selectedNodeIds.value) {
9793
+ const connections = connectionLookup.value.get(nodeId);
9794
+ if (!connections) {
9795
+ continue;
9796
+ }
9797
+ for (const { edgeId } of connections.values()) {
9798
+ const edge2 = edgeLookup.value.get(edgeId);
9799
+ if (edge2 && (edge2.selectable ?? edgesSelectable)) {
9800
+ selectedEdgeIds.value.add(edgeId);
9757
9801
  }
9758
9802
  }
9759
9803
  }
9760
- if (prevSelectedNodesCount.value !== selectedNodeIds.size) {
9761
- prevSelectedNodesCount.value = selectedNodeIds.size;
9762
- const changes = getSelectionChanges(nodeLookup.value, selectedNodeIds, true);
9804
+ if (!areSetsEqual(prevSelectedNodeIds, selectedNodeIds.value)) {
9805
+ const changes = getSelectionChanges(nodeLookup.value, selectedNodeIds.value, true);
9763
9806
  emits.nodesChange(changes);
9764
9807
  }
9765
- if (prevSelectedEdgesCount.value !== selectedEdgeIds.size) {
9766
- prevSelectedEdgesCount.value = selectedEdgeIds.size;
9767
- const changes = getSelectionChanges(edgeLookup.value, selectedEdgeIds);
9808
+ if (!areSetsEqual(prevSelectedEdgeIds, selectedEdgeIds.value)) {
9809
+ const changes = getSelectionChanges(edgeLookup.value, selectedEdgeIds.value);
9768
9810
  emits.edgesChange(changes);
9769
9811
  }
9770
9812
  userSelectionRect.value = nextUserSelectRect;
@@ -9780,10 +9822,9 @@ const _sfc_main$a$1 = /* @__PURE__ */ defineComponent({
9780
9822
  if (!userSelectionActive.value && userSelectionRect.value && event.target === container.value) {
9781
9823
  onClick(event);
9782
9824
  }
9783
- if (prevSelectedNodesCount.value > 0) {
9784
- nodesSelectionActive.value = true;
9785
- }
9786
- resetUserSelection();
9825
+ userSelectionActive.value = false;
9826
+ userSelectionRect.value = null;
9827
+ nodesSelectionActive.value = selectedNodeIds.value.size > 0;
9787
9828
  emits.selectionEnd(event);
9788
9829
  if (__props.selectionKeyPressed) {
9789
9830
  selectionInProgress = false;
@@ -10321,14 +10362,14 @@ const EdgeWrapper = defineComponent({
10321
10362
  } else {
10322
10363
  sourceNodeHandles = [...sourceNode.handleBounds.source || [], ...sourceNode.handleBounds.target || []];
10323
10364
  }
10324
- const sourceHandle = getHandle(sourceNodeHandles, edge2.value.sourceHandle);
10365
+ const sourceHandle = getEdgeHandle(sourceNodeHandles, edge2.value.sourceHandle);
10325
10366
  let targetNodeHandles;
10326
10367
  if (connectionMode.value === ConnectionMode.Strict) {
10327
10368
  targetNodeHandles = targetNode.handleBounds.target;
10328
10369
  } else {
10329
10370
  targetNodeHandles = [...targetNode.handleBounds.target || [], ...targetNode.handleBounds.source || []];
10330
10371
  }
10331
- const targetHandle = getHandle(targetNodeHandles, edge2.value.targetHandle);
10372
+ const targetHandle = getEdgeHandle(targetNodeHandles, edge2.value.targetHandle);
10332
10373
  const sourcePosition = (sourceHandle == null ? void 0 : sourceHandle.position) || Position.Bottom;
10333
10374
  const targetPosition = (targetHandle == null ? void 0 : targetHandle.position) || Position.Top;
10334
10375
  const { x: sourceX, y: sourceY } = getHandlePosition(sourceNode, sourceHandle, sourcePosition);
@@ -10515,12 +10556,6 @@ const EdgeWrapper = defineComponent({
10515
10556
  }
10516
10557
  });
10517
10558
  const EdgeWrapper$1 = EdgeWrapper;
10518
- const oppositePosition = {
10519
- [Position.Left]: Position.Right,
10520
- [Position.Right]: Position.Left,
10521
- [Position.Top]: Position.Bottom,
10522
- [Position.Bottom]: Position.Top
10523
- };
10524
10559
  const ConnectionLine = defineComponent({
10525
10560
  name: "ConnectionLine",
10526
10561
  compatConfig: { MODE: 3 },
@@ -10561,11 +10596,11 @@ const ConnectionLine = defineComponent({
10561
10596
  () => connectionLineOptions.value.markerEnd ? `url(#${getMarkerId(connectionLineOptions.value.markerEnd, id2)})` : ""
10562
10597
  );
10563
10598
  return () => {
10564
- var _a2, _b, _c, _d;
10599
+ var _a2, _b, _c;
10565
10600
  if (!fromNode.value || !connectionStartHandle.value) {
10566
10601
  return null;
10567
10602
  }
10568
- const startHandleId = connectionStartHandle.value.handleId;
10603
+ const startHandleId = connectionStartHandle.value.id;
10569
10604
  const handleType = connectionStartHandle.value.type;
10570
10605
  const fromHandleBounds = fromNode.value.handleBounds;
10571
10606
  let handleBounds = (fromHandleBounds == null ? void 0 : fromHandleBounds[handleType]) || [];
@@ -10580,24 +10615,24 @@ const ConnectionLine = defineComponent({
10580
10615
  const fromPosition = (fromHandle == null ? void 0 : fromHandle.position) || Position.Top;
10581
10616
  const { x: fromX, y: fromY } = getHandlePosition(fromNode.value, fromHandle, fromPosition);
10582
10617
  let toHandle = null;
10583
- if (toNode.value && ((_a2 = connectionEndHandle.value) == null ? void 0 : _a2.handleId)) {
10618
+ if (toNode.value) {
10584
10619
  if (connectionMode.value === ConnectionMode.Strict) {
10585
- toHandle = ((_b = toNode.value.handleBounds[handleType === "source" ? "target" : "source"]) == null ? void 0 : _b.find(
10620
+ toHandle = ((_a2 = toNode.value.handleBounds[handleType === "source" ? "target" : "source"]) == null ? void 0 : _a2.find(
10586
10621
  (d) => {
10587
10622
  var _a3;
10588
- return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.handleId);
10623
+ return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.id);
10589
10624
  }
10590
10625
  )) || null;
10591
10626
  } else {
10592
- toHandle = ((_c = [...toNode.value.handleBounds.source || [], ...toNode.value.handleBounds.target || []]) == null ? void 0 : _c.find(
10627
+ toHandle = ((_b = [...toNode.value.handleBounds.source || [], ...toNode.value.handleBounds.target || []]) == null ? void 0 : _b.find(
10593
10628
  (d) => {
10594
10629
  var _a3;
10595
- return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.handleId);
10630
+ return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.id);
10596
10631
  }
10597
10632
  )) || null;
10598
10633
  }
10599
10634
  }
10600
- const toPosition = ((_d = connectionEndHandle.value) == null ? void 0 : _d.position) ?? (fromPosition ? oppositePosition[fromPosition] : null);
10635
+ const toPosition = ((_c = connectionEndHandle.value) == null ? void 0 : _c.position) ?? (fromPosition ? oppositePosition[fromPosition] : null);
10601
10636
  if (!fromPosition || !toPosition) {
10602
10637
  return null;
10603
10638
  }
@@ -11804,8 +11839,7 @@ var noop$1 = { value: () => {
11804
11839
  } };
11805
11840
  function dispatch$1() {
11806
11841
  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
11807
- if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t))
11808
- throw new Error("illegal type: " + t);
11842
+ if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
11809
11843
  _[t] = [];
11810
11844
  }
11811
11845
  return new Dispatch$1(_);
@@ -11816,10 +11850,8 @@ function Dispatch$1(_) {
11816
11850
  function parseTypenames$1$1(typenames, types) {
11817
11851
  return typenames.trim().split(/^|\s+/).map(function(t) {
11818
11852
  var name = "", i = t.indexOf(".");
11819
- if (i >= 0)
11820
- name = t.slice(i + 1), t = t.slice(0, i);
11821
- if (t && !types.hasOwnProperty(t))
11822
- throw new Error("unknown type: " + t);
11853
+ if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
11854
+ if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
11823
11855
  return { type: t, name };
11824
11856
  });
11825
11857
  }
@@ -11828,42 +11860,29 @@ Dispatch$1.prototype = dispatch$1.prototype = {
11828
11860
  on: function(typename, callback) {
11829
11861
  var _ = this._, T = parseTypenames$1$1(typename + "", _), t, i = -1, n = T.length;
11830
11862
  if (arguments.length < 2) {
11831
- while (++i < n)
11832
- if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name)))
11833
- return t;
11863
+ while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t;
11834
11864
  return;
11835
11865
  }
11836
- if (callback != null && typeof callback !== "function")
11837
- throw new Error("invalid callback: " + callback);
11866
+ if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
11838
11867
  while (++i < n) {
11839
- if (t = (typename = T[i]).type)
11840
- _[t] = set$1(_[t], typename.name, callback);
11841
- else if (callback == null)
11842
- for (t in _)
11843
- _[t] = set$1(_[t], typename.name, null);
11868
+ if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback);
11869
+ else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null);
11844
11870
  }
11845
11871
  return this;
11846
11872
  },
11847
11873
  copy: function() {
11848
11874
  var copy = {}, _ = this._;
11849
- for (var t in _)
11850
- copy[t] = _[t].slice();
11875
+ for (var t in _) copy[t] = _[t].slice();
11851
11876
  return new Dispatch$1(copy);
11852
11877
  },
11853
11878
  call: function(type, that) {
11854
- if ((n = arguments.length - 2) > 0)
11855
- for (var args = new Array(n), i = 0, n, t; i < n; ++i)
11856
- args[i] = arguments[i + 2];
11857
- if (!this._.hasOwnProperty(type))
11858
- throw new Error("unknown type: " + type);
11859
- for (t = this._[type], i = 0, n = t.length; i < n; ++i)
11860
- t[i].value.apply(that, args);
11879
+ if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
11880
+ if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
11881
+ for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
11861
11882
  },
11862
11883
  apply: function(type, that, args) {
11863
- if (!this._.hasOwnProperty(type))
11864
- throw new Error("unknown type: " + type);
11865
- for (var t = this._[type], i = 0, n = t.length; i < n; ++i)
11866
- t[i].value.apply(that, args);
11884
+ if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
11885
+ for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
11867
11886
  }
11868
11887
  };
11869
11888
  function get$1(type, name) {
@@ -11880,8 +11899,7 @@ function set$1(type, name, callback) {
11880
11899
  break;
11881
11900
  }
11882
11901
  }
11883
- if (callback != null)
11884
- type.push({ name, value: callback });
11902
+ if (callback != null) type.push({ name, value: callback });
11885
11903
  return type;
11886
11904
  }
11887
11905
  var xhtml$1 = "http://www.w3.org/1999/xhtml";
@@ -11894,8 +11912,7 @@ const namespaces$1 = {
11894
11912
  };
11895
11913
  function namespace$1(name) {
11896
11914
  var prefix = name += "", i = prefix.indexOf(":");
11897
- if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns")
11898
- name = name.slice(i + 1);
11915
+ if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
11899
11916
  return namespaces$1.hasOwnProperty(prefix) ? { space: namespaces$1[prefix], local: name } : name;
11900
11917
  }
11901
11918
  function creatorInherit$1(name) {
@@ -11921,13 +11938,11 @@ function selector$1(selector2) {
11921
11938
  };
11922
11939
  }
11923
11940
  function selection_select$1(select2) {
11924
- if (typeof select2 !== "function")
11925
- select2 = selector$1(select2);
11941
+ if (typeof select2 !== "function") select2 = selector$1(select2);
11926
11942
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
11927
11943
  for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i = 0; i < n; ++i) {
11928
11944
  if ((node2 = group[i]) && (subnode = select2.call(node2, node2.__data__, i, group))) {
11929
- if ("__data__" in node2)
11930
- subnode.__data__ = node2.__data__;
11945
+ if ("__data__" in node2) subnode.__data__ = node2.__data__;
11931
11946
  subgroup[i] = subnode;
11932
11947
  }
11933
11948
  }
@@ -11951,10 +11966,8 @@ function arrayAll$1(select2) {
11951
11966
  };
11952
11967
  }
11953
11968
  function selection_selectAll$1(select2) {
11954
- if (typeof select2 === "function")
11955
- select2 = arrayAll$1(select2);
11956
- else
11957
- select2 = selectorAll$1(select2);
11969
+ if (typeof select2 === "function") select2 = arrayAll$1(select2);
11970
+ else select2 = selectorAll$1(select2);
11958
11971
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
11959
11972
  for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) {
11960
11973
  if (node2 = group[i]) {
@@ -12000,8 +12013,7 @@ function selection_selectChildren$1(match) {
12000
12013
  return this.selectAll(match == null ? children$1 : childrenFilter$1(typeof match === "function" ? match : childMatcher$1(match)));
12001
12014
  }
12002
12015
  function selection_filter$1(match) {
12003
- if (typeof match !== "function")
12004
- match = matcher$1(match);
12016
+ if (typeof match !== "function") match = matcher$1(match);
12005
12017
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
12006
12018
  for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i = 0; i < n; ++i) {
12007
12019
  if ((node2 = group[i]) && match.call(node2, node2.__data__, i, group)) {
@@ -12092,20 +12104,16 @@ function datum$1(node2) {
12092
12104
  return node2.__data__;
12093
12105
  }
12094
12106
  function selection_data$1(value, key) {
12095
- if (!arguments.length)
12096
- return Array.from(this, datum$1);
12107
+ if (!arguments.length) return Array.from(this, datum$1);
12097
12108
  var bind = key ? bindKey$1 : bindIndex$1, parents = this._parents, groups = this._groups;
12098
- if (typeof value !== "function")
12099
- value = constant$2(value);
12109
+ if (typeof value !== "function") value = constant$2(value);
12100
12110
  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
12101
12111
  var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike$1(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
12102
12112
  bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
12103
12113
  for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
12104
12114
  if (previous = enterGroup[i0]) {
12105
- if (i0 >= i1)
12106
- i1 = i0 + 1;
12107
- while (!(next = updateGroup[i1]) && ++i1 < dataLength)
12108
- ;
12115
+ if (i0 >= i1) i1 = i0 + 1;
12116
+ while (!(next = updateGroup[i1]) && ++i1 < dataLength) ;
12109
12117
  previous._next = next || null;
12110
12118
  }
12111
12119
  }
@@ -12125,20 +12133,16 @@ function selection_join$1(onenter, onupdate, onexit) {
12125
12133
  var enter = this.enter(), update = this, exit = this.exit();
12126
12134
  if (typeof onenter === "function") {
12127
12135
  enter = onenter(enter);
12128
- if (enter)
12129
- enter = enter.selection();
12136
+ if (enter) enter = enter.selection();
12130
12137
  } else {
12131
12138
  enter = enter.append(onenter + "");
12132
12139
  }
12133
12140
  if (onupdate != null) {
12134
12141
  update = onupdate(update);
12135
- if (update)
12136
- update = update.selection();
12142
+ if (update) update = update.selection();
12137
12143
  }
12138
- if (onexit == null)
12139
- exit.remove();
12140
- else
12141
- onexit(exit);
12144
+ if (onexit == null) exit.remove();
12145
+ else onexit(exit);
12142
12146
  return enter && update ? enter.merge(update).order() : update;
12143
12147
  }
12144
12148
  function selection_merge$1(context) {
@@ -12159,8 +12163,7 @@ function selection_order$1() {
12159
12163
  for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
12160
12164
  for (var group = groups[j], i = group.length - 1, next = group[i], node2; --i >= 0; ) {
12161
12165
  if (node2 = group[i]) {
12162
- if (next && node2.compareDocumentPosition(next) ^ 4)
12163
- next.parentNode.insertBefore(node2, next);
12166
+ if (next && node2.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node2, next);
12164
12167
  next = node2;
12165
12168
  }
12166
12169
  }
@@ -12168,8 +12171,7 @@ function selection_order$1() {
12168
12171
  return this;
12169
12172
  }
12170
12173
  function selection_sort$1(compare) {
12171
- if (!compare)
12172
- compare = ascending$1;
12174
+ if (!compare) compare = ascending$1;
12173
12175
  function compareNode(a, b) {
12174
12176
  return a && b ? compare(a.__data__, b.__data__) : !a - !b;
12175
12177
  }
@@ -12199,16 +12201,14 @@ function selection_node$1() {
12199
12201
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
12200
12202
  for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
12201
12203
  var node2 = group[i];
12202
- if (node2)
12203
- return node2;
12204
+ if (node2) return node2;
12204
12205
  }
12205
12206
  }
12206
12207
  return null;
12207
12208
  }
12208
12209
  function selection_size$1() {
12209
12210
  let size = 0;
12210
- for (const node2 of this)
12211
- ++size;
12211
+ for (const node2 of this) ++size;
12212
12212
  return size;
12213
12213
  }
12214
12214
  function selection_empty$1() {
@@ -12217,8 +12217,7 @@ function selection_empty$1() {
12217
12217
  function selection_each$1(callback) {
12218
12218
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
12219
12219
  for (var group = groups[j], i = 0, n = group.length, node2; i < n; ++i) {
12220
- if (node2 = group[i])
12221
- callback.call(node2, node2.__data__, i, group);
12220
+ if (node2 = group[i]) callback.call(node2, node2.__data__, i, group);
12222
12221
  }
12223
12222
  }
12224
12223
  return this;
@@ -12246,19 +12245,15 @@ function attrConstantNS$1(fullname, value) {
12246
12245
  function attrFunction$1(name, value) {
12247
12246
  return function() {
12248
12247
  var v = value.apply(this, arguments);
12249
- if (v == null)
12250
- this.removeAttribute(name);
12251
- else
12252
- this.setAttribute(name, v);
12248
+ if (v == null) this.removeAttribute(name);
12249
+ else this.setAttribute(name, v);
12253
12250
  };
12254
12251
  }
12255
12252
  function attrFunctionNS$1(fullname, value) {
12256
12253
  return function() {
12257
12254
  var v = value.apply(this, arguments);
12258
- if (v == null)
12259
- this.removeAttributeNS(fullname.space, fullname.local);
12260
- else
12261
- this.setAttributeNS(fullname.space, fullname.local, v);
12255
+ if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
12256
+ else this.setAttributeNS(fullname.space, fullname.local, v);
12262
12257
  };
12263
12258
  }
12264
12259
  function selection_attr$1(name, value) {
@@ -12285,10 +12280,8 @@ function styleConstant$1(name, value, priority) {
12285
12280
  function styleFunction$1(name, value, priority) {
12286
12281
  return function() {
12287
12282
  var v = value.apply(this, arguments);
12288
- if (v == null)
12289
- this.style.removeProperty(name);
12290
- else
12291
- this.style.setProperty(name, v, priority);
12283
+ if (v == null) this.style.removeProperty(name);
12284
+ else this.style.setProperty(name, v, priority);
12292
12285
  };
12293
12286
  }
12294
12287
  function selection_style$1(name, value, priority) {
@@ -12310,10 +12303,8 @@ function propertyConstant$1(name, value) {
12310
12303
  function propertyFunction$1(name, value) {
12311
12304
  return function() {
12312
12305
  var v = value.apply(this, arguments);
12313
- if (v == null)
12314
- delete this[name];
12315
- else
12316
- this[name] = v;
12306
+ if (v == null) delete this[name];
12307
+ else this[name] = v;
12317
12308
  };
12318
12309
  }
12319
12310
  function selection_property$1(name, value) {
@@ -12350,13 +12341,11 @@ ClassList$1.prototype = {
12350
12341
  };
12351
12342
  function classedAdd$1(node2, names) {
12352
12343
  var list = classList$1(node2), i = -1, n = names.length;
12353
- while (++i < n)
12354
- list.add(names[i]);
12344
+ while (++i < n) list.add(names[i]);
12355
12345
  }
12356
12346
  function classedRemove$1(node2, names) {
12357
12347
  var list = classList$1(node2), i = -1, n = names.length;
12358
- while (++i < n)
12359
- list.remove(names[i]);
12348
+ while (++i < n) list.remove(names[i]);
12360
12349
  }
12361
12350
  function classedTrue$1(names) {
12362
12351
  return function() {
@@ -12377,9 +12366,7 @@ function selection_classed$1(name, value) {
12377
12366
  var names = classArray$1(name + "");
12378
12367
  if (arguments.length < 2) {
12379
12368
  var list = classList$1(this.node()), i = -1, n = names.length;
12380
- while (++i < n)
12381
- if (!list.contains(names[i]))
12382
- return false;
12369
+ while (++i < n) if (!list.contains(names[i])) return false;
12383
12370
  return true;
12384
12371
  }
12385
12372
  return this.each((typeof value === "function" ? classedFunction$1 : value ? classedTrue$1 : classedFalse$1)(names, value));
@@ -12419,15 +12406,13 @@ function selection_html$1(value) {
12419
12406
  return arguments.length ? this.each(value == null ? htmlRemove$1 : (typeof value === "function" ? htmlFunction$1 : htmlConstant$1)(value)) : this.node().innerHTML;
12420
12407
  }
12421
12408
  function raise$1() {
12422
- if (this.nextSibling)
12423
- this.parentNode.appendChild(this);
12409
+ if (this.nextSibling) this.parentNode.appendChild(this);
12424
12410
  }
12425
12411
  function selection_raise$1() {
12426
12412
  return this.each(raise$1);
12427
12413
  }
12428
12414
  function lower$1() {
12429
- if (this.previousSibling)
12430
- this.parentNode.insertBefore(this, this.parentNode.firstChild);
12415
+ if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
12431
12416
  }
12432
12417
  function selection_lower$1() {
12433
12418
  return this.each(lower$1);
@@ -12449,8 +12434,7 @@ function selection_insert$1(name, before) {
12449
12434
  }
12450
12435
  function remove$1() {
12451
12436
  var parent = this.parentNode;
12452
- if (parent)
12453
- parent.removeChild(this);
12437
+ if (parent) parent.removeChild(this);
12454
12438
  }
12455
12439
  function selection_remove$1() {
12456
12440
  return this.each(remove$1);
@@ -12477,16 +12461,14 @@ function contextListener$1(listener) {
12477
12461
  function parseTypenames$2(typenames) {
12478
12462
  return typenames.trim().split(/^|\s+/).map(function(t) {
12479
12463
  var name = "", i = t.indexOf(".");
12480
- if (i >= 0)
12481
- name = t.slice(i + 1), t = t.slice(0, i);
12464
+ if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
12482
12465
  return { type: t, name };
12483
12466
  });
12484
12467
  }
12485
12468
  function onRemove$1(typename) {
12486
12469
  return function() {
12487
12470
  var on = this.__on;
12488
- if (!on)
12489
- return;
12471
+ if (!on) return;
12490
12472
  for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
12491
12473
  if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
12492
12474
  this.removeEventListener(o.type, o.listener, o.options);
@@ -12494,49 +12476,42 @@ function onRemove$1(typename) {
12494
12476
  on[++i] = o;
12495
12477
  }
12496
12478
  }
12497
- if (++i)
12498
- on.length = i;
12499
- else
12500
- delete this.__on;
12479
+ if (++i) on.length = i;
12480
+ else delete this.__on;
12501
12481
  };
12502
12482
  }
12503
12483
  function onAdd$1(typename, value, options) {
12504
12484
  return function() {
12505
12485
  var on = this.__on, o, listener = contextListener$1(value);
12506
- if (on)
12507
- for (var j = 0, m = on.length; j < m; ++j) {
12508
- if ((o = on[j]).type === typename.type && o.name === typename.name) {
12509
- this.removeEventListener(o.type, o.listener, o.options);
12510
- this.addEventListener(o.type, o.listener = listener, o.options = options);
12511
- o.value = value;
12512
- return;
12513
- }
12486
+ if (on) for (var j = 0, m = on.length; j < m; ++j) {
12487
+ if ((o = on[j]).type === typename.type && o.name === typename.name) {
12488
+ this.removeEventListener(o.type, o.listener, o.options);
12489
+ this.addEventListener(o.type, o.listener = listener, o.options = options);
12490
+ o.value = value;
12491
+ return;
12514
12492
  }
12493
+ }
12515
12494
  this.addEventListener(typename.type, listener, options);
12516
12495
  o = { type: typename.type, name: typename.name, value, listener, options };
12517
- if (!on)
12518
- this.__on = [o];
12519
- else
12520
- on.push(o);
12496
+ if (!on) this.__on = [o];
12497
+ else on.push(o);
12521
12498
  };
12522
12499
  }
12523
12500
  function selection_on$1(typename, value, options) {
12524
12501
  var typenames = parseTypenames$2(typename + ""), i, n = typenames.length, t;
12525
12502
  if (arguments.length < 2) {
12526
12503
  var on = this.node().__on;
12527
- if (on)
12528
- for (var j = 0, m = on.length, o; j < m; ++j) {
12529
- for (i = 0, o = on[j]; i < n; ++i) {
12530
- if ((t = typenames[i]).type === o.type && t.name === o.name) {
12531
- return o.value;
12532
- }
12504
+ if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
12505
+ for (i = 0, o = on[j]; i < n; ++i) {
12506
+ if ((t = typenames[i]).type === o.type && t.name === o.name) {
12507
+ return o.value;
12533
12508
  }
12534
12509
  }
12510
+ }
12535
12511
  return;
12536
12512
  }
12537
12513
  on = value ? onAdd$1 : onRemove$1;
12538
- for (i = 0; i < n; ++i)
12539
- this.each(on(typenames[i], value, options));
12514
+ for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
12540
12515
  return this;
12541
12516
  }
12542
12517
  function dispatchEvent$1(node2, type, params) {
@@ -12545,10 +12520,8 @@ function dispatchEvent$1(node2, type, params) {
12545
12520
  event = new event(type, params);
12546
12521
  } else {
12547
12522
  event = window2.document.createEvent("Event");
12548
- if (params)
12549
- event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
12550
- else
12551
- event.initEvent(type, false, false);
12523
+ if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
12524
+ else event.initEvent(type, false, false);
12552
12525
  }
12553
12526
  node2.dispatchEvent(event);
12554
12527
  }
@@ -12568,8 +12541,7 @@ function selection_dispatch$1(type, params) {
12568
12541
  function* selection_iterator$1() {
12569
12542
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
12570
12543
  for (var group = groups[j], i = 0, n = group.length, node2; i < n; ++i) {
12571
- if (node2 = group[i])
12572
- yield node2;
12544
+ if (node2 = group[i]) yield node2;
12573
12545
  }
12574
12546
  }
12575
12547
  }
@@ -12627,14 +12599,12 @@ function select$1(selector2) {
12627
12599
  }
12628
12600
  function sourceEvent$1(event) {
12629
12601
  let sourceEvent2;
12630
- while (sourceEvent2 = event.sourceEvent)
12631
- event = sourceEvent2;
12602
+ while (sourceEvent2 = event.sourceEvent) event = sourceEvent2;
12632
12603
  return event;
12633
12604
  }
12634
12605
  function pointer$1(event, node2) {
12635
12606
  event = sourceEvent$1(event);
12636
- if (node2 === void 0)
12637
- node2 = event.currentTarget;
12607
+ if (node2 === void 0) node2 = event.currentTarget;
12638
12608
  if (node2) {
12639
12609
  var svg = node2.ownerSVGElement || node2;
12640
12610
  if (svg.createSVGPoint) {
@@ -12685,8 +12655,7 @@ function define(constructor, factory, prototype) {
12685
12655
  }
12686
12656
  function extend(parent, definition) {
12687
12657
  var prototype = Object.create(parent.prototype);
12688
- for (var key in definition)
12689
- prototype[key] = definition[key];
12658
+ for (var key in definition) prototype[key] = definition[key];
12690
12659
  return prototype;
12691
12660
  }
12692
12661
  function Color() {
@@ -12880,15 +12849,12 @@ function rgbn(n) {
12880
12849
  return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
12881
12850
  }
12882
12851
  function rgba(r, g, b, a) {
12883
- if (a <= 0)
12884
- r = g = b = NaN;
12852
+ if (a <= 0) r = g = b = NaN;
12885
12853
  return new Rgb(r, g, b, a);
12886
12854
  }
12887
12855
  function rgbConvert(o) {
12888
- if (!(o instanceof Color))
12889
- o = color$1(o);
12890
- if (!o)
12891
- return new Rgb();
12856
+ if (!(o instanceof Color)) o = color$1(o);
12857
+ if (!o) return new Rgb();
12892
12858
  o = o.rgb();
12893
12859
  return new Rgb(o.r, o.g, o.b, o.opacity);
12894
12860
  }
@@ -12947,32 +12913,22 @@ function hex(value) {
12947
12913
  return (value < 16 ? "0" : "") + value.toString(16);
12948
12914
  }
12949
12915
  function hsla(h2, s, l, a) {
12950
- if (a <= 0)
12951
- h2 = s = l = NaN;
12952
- else if (l <= 0 || l >= 1)
12953
- h2 = s = NaN;
12954
- else if (s <= 0)
12955
- h2 = NaN;
12916
+ if (a <= 0) h2 = s = l = NaN;
12917
+ else if (l <= 0 || l >= 1) h2 = s = NaN;
12918
+ else if (s <= 0) h2 = NaN;
12956
12919
  return new Hsl(h2, s, l, a);
12957
12920
  }
12958
12921
  function hslConvert(o) {
12959
- if (o instanceof Hsl)
12960
- return new Hsl(o.h, o.s, o.l, o.opacity);
12961
- if (!(o instanceof Color))
12962
- o = color$1(o);
12963
- if (!o)
12964
- return new Hsl();
12965
- if (o instanceof Hsl)
12966
- return o;
12922
+ if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
12923
+ if (!(o instanceof Color)) o = color$1(o);
12924
+ if (!o) return new Hsl();
12925
+ if (o instanceof Hsl) return o;
12967
12926
  o = o.rgb();
12968
12927
  var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h2 = NaN, s = max - min, l = (max + min) / 2;
12969
12928
  if (s) {
12970
- if (r === max)
12971
- h2 = (g - b) / s + (g < b) * 6;
12972
- else if (g === max)
12973
- h2 = (b - r) / s + 2;
12974
- else
12975
- h2 = (r - g) / s + 4;
12929
+ if (r === max) h2 = (g - b) / s + (g < b) * 6;
12930
+ else if (g === max) h2 = (b - r) / s + 2;
12931
+ else h2 = (r - g) / s + 4;
12976
12932
  s /= l < 0.5 ? max + min : 2 - max - min;
12977
12933
  h2 *= 60;
12978
12934
  } else {
@@ -13085,16 +13041,12 @@ function interpolateString(a, b) {
13085
13041
  while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
13086
13042
  if ((bs = bm.index) > bi) {
13087
13043
  bs = b.slice(bi, bs);
13088
- if (s[i])
13089
- s[i] += bs;
13090
- else
13091
- s[++i] = bs;
13044
+ if (s[i]) s[i] += bs;
13045
+ else s[++i] = bs;
13092
13046
  }
13093
13047
  if ((am = am[0]) === (bm = bm[0])) {
13094
- if (s[i])
13095
- s[i] += bm;
13096
- else
13097
- s[++i] = bm;
13048
+ if (s[i]) s[i] += bm;
13049
+ else s[++i] = bm;
13098
13050
  } else {
13099
13051
  s[++i] = null;
13100
13052
  q.push({ i, x: interpolateNumber(am, bm) });
@@ -13103,14 +13055,11 @@ function interpolateString(a, b) {
13103
13055
  }
13104
13056
  if (bi < b.length) {
13105
13057
  bs = b.slice(bi);
13106
- if (s[i])
13107
- s[i] += bs;
13108
- else
13109
- s[++i] = bs;
13058
+ if (s[i]) s[i] += bs;
13059
+ else s[++i] = bs;
13110
13060
  }
13111
13061
  return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {
13112
- for (var i2 = 0, o; i2 < b; ++i2)
13113
- s[(o = q[i2]).i] = o.x(t);
13062
+ for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);
13114
13063
  return s.join("");
13115
13064
  });
13116
13065
  }
@@ -13125,14 +13074,10 @@ var identity$1 = {
13125
13074
  };
13126
13075
  function decompose(a, b, c, d, e, f) {
13127
13076
  var scaleX, scaleY, skewX;
13128
- if (scaleX = Math.sqrt(a * a + b * b))
13129
- a /= scaleX, b /= scaleX;
13130
- if (skewX = a * c + b * d)
13131
- c -= a * skewX, d -= b * skewX;
13132
- if (scaleY = Math.sqrt(c * c + d * d))
13133
- c /= scaleY, d /= scaleY, skewX /= scaleY;
13134
- if (a * d < b * c)
13135
- a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
13077
+ if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
13078
+ if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
13079
+ if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
13080
+ if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
13136
13081
  return {
13137
13082
  translateX: e,
13138
13083
  translateY: f,
@@ -13148,13 +13093,10 @@ function parseCss(value) {
13148
13093
  return m.isIdentity ? identity$1 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
13149
13094
  }
13150
13095
  function parseSvg(value) {
13151
- if (value == null)
13152
- return identity$1;
13153
- if (!svgNode)
13154
- svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
13096
+ if (value == null) return identity$1;
13097
+ if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
13155
13098
  svgNode.setAttribute("transform", value);
13156
- if (!(value = svgNode.transform.baseVal.consolidate()))
13157
- return identity$1;
13099
+ if (!(value = svgNode.transform.baseVal.consolidate())) return identity$1;
13158
13100
  value = value.matrix;
13159
13101
  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
13160
13102
  }
@@ -13172,10 +13114,8 @@ function interpolateTransform(parse, pxComma, pxParen, degParen) {
13172
13114
  }
13173
13115
  function rotate(a, b, s, q) {
13174
13116
  if (a !== b) {
13175
- if (a - b > 180)
13176
- b += 360;
13177
- else if (b - a > 180)
13178
- a += 360;
13117
+ if (a - b > 180) b += 360;
13118
+ else if (b - a > 180) a += 360;
13179
13119
  q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b) });
13180
13120
  } else if (b) {
13181
13121
  s.push(pop(s) + "rotate(" + b + degParen);
@@ -13206,8 +13146,7 @@ function interpolateTransform(parse, pxComma, pxParen, degParen) {
13206
13146
  a = b = null;
13207
13147
  return function(t) {
13208
13148
  var i = -1, n = q.length, o;
13209
- while (++i < n)
13210
- s[(o = q[i]).i] = o.x(t);
13149
+ while (++i < n) s[(o = q[i]).i] = o.x(t);
13211
13150
  return s.join("");
13212
13151
  };
13213
13152
  };
@@ -13272,14 +13211,11 @@ function Timer() {
13272
13211
  Timer.prototype = timer.prototype = {
13273
13212
  constructor: Timer,
13274
13213
  restart: function(callback, delay, time) {
13275
- if (typeof callback !== "function")
13276
- throw new TypeError("callback is not a function");
13214
+ if (typeof callback !== "function") throw new TypeError("callback is not a function");
13277
13215
  time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
13278
13216
  if (!this._next && taskTail !== this) {
13279
- if (taskTail)
13280
- taskTail._next = this;
13281
- else
13282
- taskHead = this;
13217
+ if (taskTail) taskTail._next = this;
13218
+ else taskHead = this;
13283
13219
  taskTail = this;
13284
13220
  }
13285
13221
  this._call = callback;
@@ -13304,8 +13240,7 @@ function timerFlush() {
13304
13240
  ++frame;
13305
13241
  var t = taskHead, e;
13306
13242
  while (t) {
13307
- if ((e = clockNow - t._time) >= 0)
13308
- t._call.call(void 0, e);
13243
+ if ((e = clockNow - t._time) >= 0) t._call.call(void 0, e);
13309
13244
  t = t._next;
13310
13245
  }
13311
13246
  --frame;
@@ -13323,15 +13258,13 @@ function wake() {
13323
13258
  }
13324
13259
  function poke() {
13325
13260
  var now2 = clock.now(), delay = now2 - clockLast;
13326
- if (delay > pokeDelay)
13327
- clockSkew -= delay, clockLast = now2;
13261
+ if (delay > pokeDelay) clockSkew -= delay, clockLast = now2;
13328
13262
  }
13329
13263
  function nap() {
13330
13264
  var t0, t1 = taskHead, t2, time = Infinity;
13331
13265
  while (t1) {
13332
13266
  if (t1._call) {
13333
- if (time > t1._time)
13334
- time = t1._time;
13267
+ if (time > t1._time) time = t1._time;
13335
13268
  t0 = t1, t1 = t1._next;
13336
13269
  } else {
13337
13270
  t2 = t1._next, t1._next = null;
@@ -13342,19 +13275,14 @@ function nap() {
13342
13275
  sleep(time);
13343
13276
  }
13344
13277
  function sleep(time) {
13345
- if (frame)
13346
- return;
13347
- if (timeout$1)
13348
- timeout$1 = clearTimeout(timeout$1);
13278
+ if (frame) return;
13279
+ if (timeout$1) timeout$1 = clearTimeout(timeout$1);
13349
13280
  var delay = time - clockNow;
13350
13281
  if (delay > 24) {
13351
- if (time < Infinity)
13352
- timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);
13353
- if (interval)
13354
- interval = clearInterval(interval);
13282
+ if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);
13283
+ if (interval) interval = clearInterval(interval);
13355
13284
  } else {
13356
- if (!interval)
13357
- clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
13285
+ if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
13358
13286
  frame = 1, setFrame(wake);
13359
13287
  }
13360
13288
  }
@@ -13378,10 +13306,8 @@ var ENDING = 5;
13378
13306
  var ENDED = 6;
13379
13307
  function schedule(node2, name, id2, index, group, timing) {
13380
13308
  var schedules = node2.__transition;
13381
- if (!schedules)
13382
- node2.__transition = {};
13383
- else if (id2 in schedules)
13384
- return;
13309
+ if (!schedules) node2.__transition = {};
13310
+ else if (id2 in schedules) return;
13385
13311
  create(node2, id2, {
13386
13312
  name,
13387
13313
  index,
@@ -13400,20 +13326,17 @@ function schedule(node2, name, id2, index, group, timing) {
13400
13326
  }
13401
13327
  function init(node2, id2) {
13402
13328
  var schedule2 = get$2(node2, id2);
13403
- if (schedule2.state > CREATED)
13404
- throw new Error("too late; already scheduled");
13329
+ if (schedule2.state > CREATED) throw new Error("too late; already scheduled");
13405
13330
  return schedule2;
13406
13331
  }
13407
13332
  function set$2(node2, id2) {
13408
13333
  var schedule2 = get$2(node2, id2);
13409
- if (schedule2.state > STARTED)
13410
- throw new Error("too late; already running");
13334
+ if (schedule2.state > STARTED) throw new Error("too late; already running");
13411
13335
  return schedule2;
13412
13336
  }
13413
13337
  function get$2(node2, id2) {
13414
13338
  var schedule2 = node2.__transition;
13415
- if (!schedule2 || !(schedule2 = schedule2[id2]))
13416
- throw new Error("transition not found");
13339
+ if (!schedule2 || !(schedule2 = schedule2[id2])) throw new Error("transition not found");
13417
13340
  return schedule2;
13418
13341
  }
13419
13342
  function create(node2, id2, self) {
@@ -13423,19 +13346,15 @@ function create(node2, id2, self) {
13423
13346
  function schedule2(elapsed) {
13424
13347
  self.state = SCHEDULED;
13425
13348
  self.timer.restart(start2, self.delay, self.time);
13426
- if (self.delay <= elapsed)
13427
- start2(elapsed - self.delay);
13349
+ if (self.delay <= elapsed) start2(elapsed - self.delay);
13428
13350
  }
13429
13351
  function start2(elapsed) {
13430
13352
  var i, j, n, o;
13431
- if (self.state !== SCHEDULED)
13432
- return stop();
13353
+ if (self.state !== SCHEDULED) return stop();
13433
13354
  for (i in schedules) {
13434
13355
  o = schedules[i];
13435
- if (o.name !== self.name)
13436
- continue;
13437
- if (o.state === STARTED)
13438
- return timeout(start2);
13356
+ if (o.name !== self.name) continue;
13357
+ if (o.state === STARTED) return timeout(start2);
13439
13358
  if (o.state === RUNNING) {
13440
13359
  o.state = ENDED;
13441
13360
  o.timer.stop();
@@ -13457,8 +13376,7 @@ function create(node2, id2, self) {
13457
13376
  });
13458
13377
  self.state = STARTING;
13459
13378
  self.on.call("start", node2, node2.__data__, self.index, self.group);
13460
- if (self.state !== STARTING)
13461
- return;
13379
+ if (self.state !== STARTING) return;
13462
13380
  self.state = STARTED;
13463
13381
  tween = new Array(n = self.tween.length);
13464
13382
  for (i = 0, j = -1; i < n; ++i) {
@@ -13482,15 +13400,13 @@ function create(node2, id2, self) {
13482
13400
  self.state = ENDED;
13483
13401
  self.timer.stop();
13484
13402
  delete schedules[id2];
13485
- for (var i in schedules)
13486
- return;
13403
+ for (var i in schedules) return;
13487
13404
  delete node2.__transition;
13488
13405
  }
13489
13406
  }
13490
13407
  function interrupt(node2, name) {
13491
13408
  var schedules = node2.__transition, schedule2, active, empty2 = true, i;
13492
- if (!schedules)
13493
- return;
13409
+ if (!schedules) return;
13494
13410
  name = name == null ? null : name + "";
13495
13411
  for (i in schedules) {
13496
13412
  if ((schedule2 = schedules[i]).name !== name) {
@@ -13503,8 +13419,7 @@ function interrupt(node2, name) {
13503
13419
  schedule2.on.call(active ? "interrupt" : "cancel", node2, node2.__data__, schedule2.index, schedule2.group);
13504
13420
  delete schedules[i];
13505
13421
  }
13506
- if (empty2)
13507
- delete node2.__transition;
13422
+ if (empty2) delete node2.__transition;
13508
13423
  }
13509
13424
  function selection_interrupt(name) {
13510
13425
  return this.each(function() {
@@ -13530,8 +13445,7 @@ function tweenRemove(id2, name) {
13530
13445
  }
13531
13446
  function tweenFunction(id2, name, value) {
13532
13447
  var tween0, tween1;
13533
- if (typeof value !== "function")
13534
- throw new Error();
13448
+ if (typeof value !== "function") throw new Error();
13535
13449
  return function() {
13536
13450
  var schedule2 = set$2(this, id2), tween = schedule2.tween;
13537
13451
  if (tween !== tween0) {
@@ -13542,8 +13456,7 @@ function tweenFunction(id2, name, value) {
13542
13456
  break;
13543
13457
  }
13544
13458
  }
13545
- if (i === n)
13546
- tween1.push(t);
13459
+ if (i === n) tween1.push(t);
13547
13460
  }
13548
13461
  schedule2.tween = tween1;
13549
13462
  };
@@ -13604,8 +13517,7 @@ function attrFunction$2(name, interpolate2, value) {
13604
13517
  var string00, string10, interpolate0;
13605
13518
  return function() {
13606
13519
  var string0, value1 = value(this), string1;
13607
- if (value1 == null)
13608
- return void this.removeAttribute(name);
13520
+ if (value1 == null) return void this.removeAttribute(name);
13609
13521
  string0 = this.getAttribute(name);
13610
13522
  string1 = value1 + "";
13611
13523
  return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
@@ -13615,8 +13527,7 @@ function attrFunctionNS$2(fullname, interpolate2, value) {
13615
13527
  var string00, string10, interpolate0;
13616
13528
  return function() {
13617
13529
  var string0, value1 = value(this), string1;
13618
- if (value1 == null)
13619
- return void this.removeAttributeNS(fullname.space, fullname.local);
13530
+ if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
13620
13531
  string0 = this.getAttributeNS(fullname.space, fullname.local);
13621
13532
  string1 = value1 + "";
13622
13533
  return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
@@ -13640,8 +13551,7 @@ function attrTweenNS(fullname, value) {
13640
13551
  var t0, i0;
13641
13552
  function tween() {
13642
13553
  var i = value.apply(this, arguments);
13643
- if (i !== i0)
13644
- t0 = (i0 = i) && attrInterpolateNS(fullname, i);
13554
+ if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
13645
13555
  return t0;
13646
13556
  }
13647
13557
  tween._value = value;
@@ -13651,8 +13561,7 @@ function attrTween(name, value) {
13651
13561
  var t0, i0;
13652
13562
  function tween() {
13653
13563
  var i = value.apply(this, arguments);
13654
- if (i !== i0)
13655
- t0 = (i0 = i) && attrInterpolate(name, i);
13564
+ if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
13656
13565
  return t0;
13657
13566
  }
13658
13567
  tween._value = value;
@@ -13660,12 +13569,9 @@ function attrTween(name, value) {
13660
13569
  }
13661
13570
  function transition_attrTween(name, value) {
13662
13571
  var key = "attr." + name;
13663
- if (arguments.length < 2)
13664
- return (key = this.tween(key)) && key._value;
13665
- if (value == null)
13666
- return this.tween(key, null);
13667
- if (typeof value !== "function")
13668
- throw new Error();
13572
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
13573
+ if (value == null) return this.tween(key, null);
13574
+ if (typeof value !== "function") throw new Error();
13669
13575
  var fullname = namespace$1(name);
13670
13576
  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
13671
13577
  }
@@ -13698,8 +13604,7 @@ function transition_duration(value) {
13698
13604
  return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get$2(this.node(), id2).duration;
13699
13605
  }
13700
13606
  function easeConstant(id2, value) {
13701
- if (typeof value !== "function")
13702
- throw new Error();
13607
+ if (typeof value !== "function") throw new Error();
13703
13608
  return function() {
13704
13609
  set$2(this, id2).ease = value;
13705
13610
  };
@@ -13711,19 +13616,16 @@ function transition_ease(value) {
13711
13616
  function easeVarying(id2, value) {
13712
13617
  return function() {
13713
13618
  var v = value.apply(this, arguments);
13714
- if (typeof v !== "function")
13715
- throw new Error();
13619
+ if (typeof v !== "function") throw new Error();
13716
13620
  set$2(this, id2).ease = v;
13717
13621
  };
13718
13622
  }
13719
13623
  function transition_easeVarying(value) {
13720
- if (typeof value !== "function")
13721
- throw new Error();
13624
+ if (typeof value !== "function") throw new Error();
13722
13625
  return this.each(easeVarying(this._id, value));
13723
13626
  }
13724
13627
  function transition_filter(match) {
13725
- if (typeof match !== "function")
13726
- match = matcher$1(match);
13628
+ if (typeof match !== "function") match = matcher$1(match);
13727
13629
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
13728
13630
  for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i = 0; i < n; ++i) {
13729
13631
  if ((node2 = group[i]) && match.call(node2, node2.__data__, i, group)) {
@@ -13734,8 +13636,7 @@ function transition_filter(match) {
13734
13636
  return new Transition(subgroups, this._parents, this._name, this._id);
13735
13637
  }
13736
13638
  function transition_merge(transition2) {
13737
- if (transition2._id !== this._id)
13738
- throw new Error();
13639
+ if (transition2._id !== this._id) throw new Error();
13739
13640
  for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
13740
13641
  for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node2, i = 0; i < n; ++i) {
13741
13642
  if (node2 = group0[i] || group1[i]) {
@@ -13751,8 +13652,7 @@ function transition_merge(transition2) {
13751
13652
  function start(name) {
13752
13653
  return (name + "").trim().split(/^|\s+/).every(function(t) {
13753
13654
  var i = t.indexOf(".");
13754
- if (i >= 0)
13755
- t = t.slice(0, i);
13655
+ if (i >= 0) t = t.slice(0, i);
13756
13656
  return !t || t === "start";
13757
13657
  });
13758
13658
  }
@@ -13760,8 +13660,7 @@ function onFunction(id2, name, listener) {
13760
13660
  var on0, on1, sit = start(name) ? init : set$2;
13761
13661
  return function() {
13762
13662
  var schedule2 = sit(this, id2), on = schedule2.on;
13763
- if (on !== on0)
13764
- (on1 = (on0 = on).copy()).on(name, listener);
13663
+ if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
13765
13664
  schedule2.on = on1;
13766
13665
  };
13767
13666
  }
@@ -13772,11 +13671,8 @@ function transition_on(name, listener) {
13772
13671
  function removeFunction(id2) {
13773
13672
  return function() {
13774
13673
  var parent = this.parentNode;
13775
- for (var i in this.__transition)
13776
- if (+i !== id2)
13777
- return;
13778
- if (parent)
13779
- parent.removeChild(this);
13674
+ for (var i in this.__transition) if (+i !== id2) return;
13675
+ if (parent) parent.removeChild(this);
13780
13676
  };
13781
13677
  }
13782
13678
  function transition_remove() {
@@ -13784,13 +13680,11 @@ function transition_remove() {
13784
13680
  }
13785
13681
  function transition_select(select2) {
13786
13682
  var name = this._name, id2 = this._id;
13787
- if (typeof select2 !== "function")
13788
- select2 = selector$1(select2);
13683
+ if (typeof select2 !== "function") select2 = selector$1(select2);
13789
13684
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
13790
13685
  for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i = 0; i < n; ++i) {
13791
13686
  if ((node2 = group[i]) && (subnode = select2.call(node2, node2.__data__, i, group))) {
13792
- if ("__data__" in node2)
13793
- subnode.__data__ = node2.__data__;
13687
+ if ("__data__" in node2) subnode.__data__ = node2.__data__;
13794
13688
  subgroup[i] = subnode;
13795
13689
  schedule(subgroup[i], name, id2, i, subgroup, get$2(node2, id2));
13796
13690
  }
@@ -13800,8 +13694,7 @@ function transition_select(select2) {
13800
13694
  }
13801
13695
  function transition_selectAll(select2) {
13802
13696
  var name = this._name, id2 = this._id;
13803
- if (typeof select2 !== "function")
13804
- select2 = selectorAll$1(select2);
13697
+ if (typeof select2 !== "function") select2 = selectorAll$1(select2);
13805
13698
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
13806
13699
  for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) {
13807
13700
  if (node2 = group[i]) {
@@ -13844,8 +13737,7 @@ function styleFunction$2(name, interpolate2, value) {
13844
13737
  var string00, string10, interpolate0;
13845
13738
  return function() {
13846
13739
  var string0 = styleValue$1(this, name), value1 = value(this), string1 = value1 + "";
13847
- if (value1 == null)
13848
- string1 = value1 = (this.style.removeProperty(name), styleValue$1(this, name));
13740
+ if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue$1(this, name));
13849
13741
  return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
13850
13742
  };
13851
13743
  }
@@ -13853,8 +13745,7 @@ function styleMaybeRemove(id2, name) {
13853
13745
  var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2;
13854
13746
  return function() {
13855
13747
  var schedule2 = set$2(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove$2(name)) : void 0;
13856
- if (on !== on0 || listener0 !== listener)
13857
- (on1 = (on0 = on).copy()).on(event, listener0 = listener);
13748
+ if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
13858
13749
  schedule2.on = on1;
13859
13750
  };
13860
13751
  }
@@ -13871,8 +13762,7 @@ function styleTween(name, value, priority) {
13871
13762
  var t, i0;
13872
13763
  function tween() {
13873
13764
  var i = value.apply(this, arguments);
13874
- if (i !== i0)
13875
- t = (i0 = i) && styleInterpolate(name, i, priority);
13765
+ if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
13876
13766
  return t;
13877
13767
  }
13878
13768
  tween._value = value;
@@ -13880,12 +13770,9 @@ function styleTween(name, value, priority) {
13880
13770
  }
13881
13771
  function transition_styleTween(name, value, priority) {
13882
13772
  var key = "style." + (name += "");
13883
- if (arguments.length < 2)
13884
- return (key = this.tween(key)) && key._value;
13885
- if (value == null)
13886
- return this.tween(key, null);
13887
- if (typeof value !== "function")
13888
- throw new Error();
13773
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
13774
+ if (value == null) return this.tween(key, null);
13775
+ if (typeof value !== "function") throw new Error();
13889
13776
  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
13890
13777
  }
13891
13778
  function textConstant$2(value) {
@@ -13911,8 +13798,7 @@ function textTween(value) {
13911
13798
  var t0, i0;
13912
13799
  function tween() {
13913
13800
  var i = value.apply(this, arguments);
13914
- if (i !== i0)
13915
- t0 = (i0 = i) && textInterpolate(i);
13801
+ if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
13916
13802
  return t0;
13917
13803
  }
13918
13804
  tween._value = value;
@@ -13920,12 +13806,9 @@ function textTween(value) {
13920
13806
  }
13921
13807
  function transition_textTween(value) {
13922
13808
  var key = "text";
13923
- if (arguments.length < 1)
13924
- return (key = this.tween(key)) && key._value;
13925
- if (value == null)
13926
- return this.tween(key, null);
13927
- if (typeof value !== "function")
13928
- throw new Error();
13809
+ if (arguments.length < 1) return (key = this.tween(key)) && key._value;
13810
+ if (value == null) return this.tween(key, null);
13811
+ if (typeof value !== "function") throw new Error();
13929
13812
  return this.tween(key, textTween(value));
13930
13813
  }
13931
13814
  function transition_transition() {
@@ -13949,8 +13832,7 @@ function transition_end() {
13949
13832
  var on0, on1, that = this, id2 = that._id, size = that.size();
13950
13833
  return new Promise(function(resolve, reject) {
13951
13834
  var cancel = { value: reject }, end = { value: function() {
13952
- if (--size === 0)
13953
- resolve();
13835
+ if (--size === 0) resolve();
13954
13836
  } };
13955
13837
  that.each(function() {
13956
13838
  var schedule2 = set$2(this, id2), on = schedule2.on;
@@ -13962,8 +13844,7 @@ function transition_end() {
13962
13844
  }
13963
13845
  schedule2.on = on1;
13964
13846
  });
13965
- if (size === 0)
13966
- resolve();
13847
+ if (size === 0) resolve();
13967
13848
  });
13968
13849
  }
13969
13850
  var id = 0;
@@ -14206,8 +14087,7 @@ function zoom() {
14206
14087
  }).tween("zoom", function() {
14207
14088
  var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform === "function" ? transform.apply(that, args) : transform, i = interpolate2(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
14208
14089
  return function(t) {
14209
- if (t === 1)
14210
- t = b;
14090
+ if (t === 1) t = b;
14211
14091
  else {
14212
14092
  var l = i(t), k = w / l[2];
14213
14093
  t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);
@@ -14229,8 +14109,7 @@ function zoom() {
14229
14109
  }
14230
14110
  Gesture.prototype = {
14231
14111
  event: function(event) {
14232
- if (event)
14233
- this.sourceEvent = event;
14112
+ if (event) this.sourceEvent = event;
14234
14113
  return this;
14235
14114
  },
14236
14115
  start: function() {
@@ -14241,12 +14120,9 @@ function zoom() {
14241
14120
  return this;
14242
14121
  },
14243
14122
  zoom: function(key, transform) {
14244
- if (this.mouse && key !== "mouse")
14245
- this.mouse[1] = transform.invert(this.mouse[0]);
14246
- if (this.touch0 && key !== "touch")
14247
- this.touch0[1] = transform.invert(this.touch0[0]);
14248
- if (this.touch1 && key !== "touch")
14249
- this.touch1[1] = transform.invert(this.touch1[0]);
14123
+ if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
14124
+ if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
14125
+ if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
14250
14126
  this.that.__zoom = transform;
14251
14127
  this.emit("zoom");
14252
14128
  return this;
@@ -14275,16 +14151,14 @@ function zoom() {
14275
14151
  }
14276
14152
  };
14277
14153
  function wheeled(event, ...args) {
14278
- if (!filter2.apply(this, arguments))
14279
- return;
14154
+ if (!filter2.apply(this, arguments)) return;
14280
14155
  var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = pointer$1(event);
14281
14156
  if (g.wheel) {
14282
14157
  if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
14283
14158
  g.mouse[1] = t.invert(g.mouse[0] = p);
14284
14159
  }
14285
14160
  clearTimeout(g.wheel);
14286
- } else if (t.k === k)
14287
- return;
14161
+ } else if (t.k === k) return;
14288
14162
  else {
14289
14163
  g.mouse = [p, t.invert(p)];
14290
14164
  interrupt(this);
@@ -14299,8 +14173,7 @@ function zoom() {
14299
14173
  }
14300
14174
  }
14301
14175
  function mousedowned(event, ...args) {
14302
- if (touchending || !filter2.apply(this, arguments))
14303
- return;
14176
+ if (touchending || !filter2.apply(this, arguments)) return;
14304
14177
  var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select$1(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), p = pointer$1(event, currentTarget), x0 = event.clientX, y0 = event.clientY;
14305
14178
  dragDisable(event.view);
14306
14179
  nopropagation$1(event);
@@ -14323,50 +14196,39 @@ function zoom() {
14323
14196
  }
14324
14197
  }
14325
14198
  function dblclicked(event, ...args) {
14326
- if (!filter2.apply(this, arguments))
14327
- return;
14199
+ if (!filter2.apply(this, arguments)) return;
14328
14200
  var t0 = this.__zoom, p0 = pointer$1(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
14329
14201
  noevent$2(event);
14330
- if (duration > 0)
14331
- select$1(this).transition().duration(duration).call(schedule2, t1, p0, event);
14332
- else
14333
- select$1(this).call(zoom2.transform, t1, p0, event);
14202
+ if (duration > 0) select$1(this).transition().duration(duration).call(schedule2, t1, p0, event);
14203
+ else select$1(this).call(zoom2.transform, t1, p0, event);
14334
14204
  }
14335
14205
  function touchstarted(event, ...args) {
14336
- if (!filter2.apply(this, arguments))
14337
- return;
14206
+ if (!filter2.apply(this, arguments)) return;
14338
14207
  var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p;
14339
14208
  nopropagation$1(event);
14340
14209
  for (i = 0; i < n; ++i) {
14341
14210
  t = touches[i], p = pointer$1(t, this);
14342
14211
  p = [p, this.__zoom.invert(p), t.identifier];
14343
- if (!g.touch0)
14344
- g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
14345
- else if (!g.touch1 && g.touch0[2] !== p[2])
14346
- g.touch1 = p, g.taps = 0;
14212
+ if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
14213
+ else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
14347
14214
  }
14348
- if (touchstarting)
14349
- touchstarting = clearTimeout(touchstarting);
14215
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
14350
14216
  if (started) {
14351
- if (g.taps < 2)
14352
- touchfirst = p[0], touchstarting = setTimeout(function() {
14353
- touchstarting = null;
14354
- }, touchDelay);
14217
+ if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() {
14218
+ touchstarting = null;
14219
+ }, touchDelay);
14355
14220
  interrupt(this);
14356
14221
  g.start();
14357
14222
  }
14358
14223
  }
14359
14224
  function touchmoved(event, ...args) {
14360
- if (!this.__zooming)
14361
- return;
14225
+ if (!this.__zooming) return;
14362
14226
  var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l;
14363
14227
  noevent$2(event);
14364
14228
  for (i = 0; i < n; ++i) {
14365
14229
  t = touches[i], p = pointer$1(t, this);
14366
- if (g.touch0 && g.touch0[2] === t.identifier)
14367
- g.touch0[0] = p;
14368
- else if (g.touch1 && g.touch1[2] === t.identifier)
14369
- g.touch1[0] = p;
14230
+ if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
14231
+ else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
14370
14232
  }
14371
14233
  t = g.that.__zoom;
14372
14234
  if (g.touch1) {
@@ -14374,41 +14236,32 @@ function zoom() {
14374
14236
  t = scale(t, Math.sqrt(dp / dl));
14375
14237
  p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
14376
14238
  l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
14377
- } else if (g.touch0)
14378
- p = g.touch0[0], l = g.touch0[1];
14379
- else
14380
- return;
14239
+ } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
14240
+ else return;
14381
14241
  g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
14382
14242
  }
14383
14243
  function touchended(event, ...args) {
14384
- if (!this.__zooming)
14385
- return;
14244
+ if (!this.__zooming) return;
14386
14245
  var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t;
14387
14246
  nopropagation$1(event);
14388
- if (touchending)
14389
- clearTimeout(touchending);
14247
+ if (touchending) clearTimeout(touchending);
14390
14248
  touchending = setTimeout(function() {
14391
14249
  touchending = null;
14392
14250
  }, touchDelay);
14393
14251
  for (i = 0; i < n; ++i) {
14394
14252
  t = touches[i];
14395
- if (g.touch0 && g.touch0[2] === t.identifier)
14396
- delete g.touch0;
14397
- else if (g.touch1 && g.touch1[2] === t.identifier)
14398
- delete g.touch1;
14253
+ if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
14254
+ else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
14399
14255
  }
14400
- if (g.touch1 && !g.touch0)
14401
- g.touch0 = g.touch1, delete g.touch1;
14402
- if (g.touch0)
14403
- g.touch0[1] = this.__zoom.invert(g.touch0[0]);
14256
+ if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
14257
+ if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
14404
14258
  else {
14405
14259
  g.end();
14406
14260
  if (g.taps === 2) {
14407
14261
  t = pointer$1(t, this);
14408
14262
  if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
14409
14263
  var p = select$1(this).on("dblclick.zoom");
14410
- if (p)
14411
- p.apply(this, arguments);
14264
+ if (p) p.apply(this, arguments);
14412
14265
  }
14413
14266
  }
14414
14267
  }
@@ -14456,7 +14309,8 @@ const Slots = Symbol("MiniMapSlots");
14456
14309
  const _hoisted_1$1$1 = ["id", "x", "y", "rx", "ry", "width", "height", "fill", "stroke", "stroke-width", "shape-rendering"];
14457
14310
  const __default__$1$1 = {
14458
14311
  name: "MiniMapNode",
14459
- compatConfig: { MODE: 3 }
14312
+ compatConfig: { MODE: 3 },
14313
+ inheritAttrs: false
14460
14314
  };
14461
14315
  const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
14462
14316
  ...__default__$1$1,
@@ -14471,14 +14325,15 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
14471
14325
  color: {},
14472
14326
  shapeRendering: {},
14473
14327
  strokeColor: {},
14474
- strokeWidth: {}
14328
+ strokeWidth: {},
14329
+ hidden: { type: Boolean }
14475
14330
  },
14476
14331
  emits: ["click", "dblclick", "mouseenter", "mousemove", "mouseleave"],
14477
14332
  setup(__props, { emit: emits }) {
14478
14333
  const props = __props;
14479
14334
  const miniMapSlots = inject(Slots);
14480
14335
  const attrs = useAttrs();
14481
- const style2 = toRef(() => attrs.style ?? {});
14336
+ const style = toRef(() => attrs.style ?? {});
14482
14337
  function onClick(event) {
14483
14338
  emits("click", event);
14484
14339
  }
@@ -14495,26 +14350,29 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
14495
14350
  emits("mouseleave", event);
14496
14351
  }
14497
14352
  return (_ctx, _cache) => {
14498
- return unref(miniMapSlots)[`node-${props.type}`] ? (openBlock(), createBlock(resolveDynamicComponent(unref(miniMapSlots)[`node-${props.type}`]), normalizeProps(mergeProps({ key: 0 }, props)), null, 16)) : (openBlock(), createElementBlock("rect", {
14499
- key: 1,
14500
- id: _ctx.id,
14501
- class: normalizeClass(["vue-flow__minimap-node", { selected: _ctx.selected, dragging: _ctx.dragging }]),
14502
- x: _ctx.position.x,
14503
- y: _ctx.position.y,
14504
- rx: _ctx.borderRadius,
14505
- ry: _ctx.borderRadius,
14506
- width: _ctx.dimensions.width,
14507
- height: _ctx.dimensions.height,
14508
- fill: _ctx.color || style2.value.background || style2.value.backgroundColor,
14509
- stroke: _ctx.strokeColor,
14510
- "stroke-width": _ctx.strokeWidth,
14511
- "shape-rendering": _ctx.shapeRendering,
14512
- onClick,
14513
- onDblclick,
14514
- onMouseenter: onMouseEnter,
14515
- onMousemove: onMouseMove,
14516
- onMouseleave: onMouseLeave
14517
- }, null, 42, _hoisted_1$1$1));
14353
+ return !_ctx.hidden && _ctx.dimensions.width !== 0 && _ctx.dimensions.height !== 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
14354
+ unref(miniMapSlots)[`node-${props.type}`] ? (openBlock(), createBlock(resolveDynamicComponent(unref(miniMapSlots)[`node-${props.type}`]), normalizeProps(mergeProps({ key: 0 }, { ...props, ..._ctx.$attrs })), null, 16)) : (openBlock(), createElementBlock("rect", mergeProps({
14355
+ key: 1,
14356
+ id: _ctx.id
14357
+ }, _ctx.$attrs, {
14358
+ class: ["vue-flow__minimap-node", { selected: _ctx.selected, dragging: _ctx.dragging }],
14359
+ x: _ctx.position.x,
14360
+ y: _ctx.position.y,
14361
+ rx: _ctx.borderRadius,
14362
+ ry: _ctx.borderRadius,
14363
+ width: _ctx.dimensions.width,
14364
+ height: _ctx.dimensions.height,
14365
+ fill: _ctx.color || style.value.background || style.value.backgroundColor,
14366
+ stroke: _ctx.strokeColor,
14367
+ "stroke-width": _ctx.strokeWidth,
14368
+ "shape-rendering": _ctx.shapeRendering,
14369
+ onClick,
14370
+ onDblclick,
14371
+ onMouseenter: onMouseEnter,
14372
+ onMousemove: onMouseMove,
14373
+ onMouseleave: onMouseLeave
14374
+ }), null, 16, _hoisted_1$1$1))
14375
+ ], 64)) : createCommentVNode("", true);
14518
14376
  };
14519
14377
  }
14520
14378
  });
@@ -14723,12 +14581,13 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
14723
14581
  "stroke-width": _ctx.nodeStrokeWidth,
14724
14582
  "shape-rendering": unref(shapeRendering),
14725
14583
  type: node2.type,
14584
+ hidden: node2.hidden,
14726
14585
  onClick: ($event) => onNodeClick($event, node2),
14727
14586
  onDblclick: ($event) => onNodeDblClick($event, node2),
14728
14587
  onMouseenter: ($event) => onNodeMouseEnter($event, node2),
14729
14588
  onMousemove: ($event) => onNodeMouseMove($event, node2),
14730
14589
  onMouseleave: ($event) => onNodeMouseLeave($event, node2)
14731
- }, null, 8, ["id", "position", "dimensions", "selected", "dragging", "style", "class", "color", "border-radius", "stroke-color", "stroke-width", "shape-rendering", "type", "onClick", "onDblclick", "onMouseenter", "onMousemove", "onMouseleave"]);
14590
+ }, null, 8, ["id", "position", "dimensions", "selected", "dragging", "style", "class", "color", "border-radius", "stroke-color", "stroke-width", "shape-rendering", "type", "hidden", "onClick", "onDblclick", "onMouseenter", "onMousemove", "onMouseleave"]);
14732
14591
  }), 128)),
14733
14592
  createBaseVNode("path", {
14734
14593
  class: "vue-flow__minimap-mask",
@@ -18066,6 +17925,7 @@ const cssModules$2 = {
18066
17925
  const CanvasEdgeToolbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__cssModules", cssModules$2]]);
18067
17926
  const _hoisted_1$3 = ["data-source-node-name", "data-target-node-name"];
18068
17927
  const _hoisted_2$2 = ["data-source-node-name", "data-target-node-name", "data-edge-status"];
17928
+ const delayedHoveredTimeout = 300;
18069
17929
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
18070
17930
  __name: "CanvasEdge",
18071
17931
  props: {
@@ -18112,7 +17972,23 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
18112
17972
  const connectionType = computed(
18113
17973
  () => isValidNodeConnectionType(props.data.source.type) ? props.data.source.type : NodeConnectionType.Main
18114
17974
  );
18115
- const renderToolbar = computed(() => props.hovered && !props.readOnly);
17975
+ const delayedHovered = ref(props.hovered);
17976
+ const delayedHoveredSetTimeoutRef = ref(null);
17977
+ watch(
17978
+ () => props.hovered,
17979
+ (isHovered) => {
17980
+ if (isHovered) {
17981
+ if (delayedHoveredSetTimeoutRef.value) clearTimeout(delayedHoveredSetTimeoutRef.value);
17982
+ delayedHovered.value = true;
17983
+ } else {
17984
+ delayedHoveredSetTimeoutRef.value = setTimeout(() => {
17985
+ delayedHovered.value = false;
17986
+ }, delayedHoveredTimeout);
17987
+ }
17988
+ },
17989
+ { immediate: true }
17990
+ );
17991
+ const renderToolbar = computed(() => (props.selected || delayedHovered.value) && !props.readOnly);
18116
17992
  const isMainConnection = computed(() => data.value.source.type === NodeConnectionType.Main);
18117
17993
  const status2 = computed(() => props.data.status);
18118
17994
  const edgeColor = computed(() => {