From 2837b0e845fc6f533e1b0516e15e8926c32e8756 Mon Sep 17 00:00:00 2001
From: Tamara Steinwender <tamara.steinwender@tugraz.at>
Date: Mon, 7 Jun 2021 09:09:50 +0200
Subject: [PATCH] Avoid circular dependencies in clipboard

---
 packages/file-handling/src/clipboard.js | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/packages/file-handling/src/clipboard.js b/packages/file-handling/src/clipboard.js
index abb44e32..460d1d06 100644
--- a/packages/file-handling/src/clipboard.js
+++ b/packages/file-handling/src/clipboard.js
@@ -7,8 +7,7 @@ import * as fileHandlingStyles from '@dbp-toolkit/file-handling/src/styles';
 import {Icon} from '@dbp-toolkit/common';
 import Tabulator from "tabulator-tables";
 import {humanFileSize} from "@dbp-toolkit/common/i18next";
-import {FileSink} from "@dbp-toolkit/file-handling/src/file-sink";
-import {FileSource} from "@dbp-toolkit/file-handling/src/file-source";
+
 import {name as pkgName} from "@dbp-toolkit/file-handling/package.json";
 import {send} from "@dbp-toolkit/common/notification";
 import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element";
@@ -35,13 +34,16 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) {
 
         this.isFileSource = false;
         this.isFileSink = false;
+
+        // To avoid a cyclic dependency
+        import('./file-sink').then(({ FileSink }) => this.defineScopedElement('dbp-file-sink', FileSink));
+        import('./file-source').then(({ FileSource }) => this.defineScopedElement('dbp-file-source', FileSource));
+
     }
 
     static get scopedElements() {
         return {
             'dbp-icon': Icon,
-            'dbp-file-sink': FileSink,
-            'dbp-file-source': FileSource,
         };
     }
 
-- 
GitLab