@dmitryvim/form-builder 0.2.28 → 0.2.29

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.
@@ -2664,23 +2664,35 @@ function setEmptyFileContainer(fileContainer, state, hint) {
2664
2664
  </div>
2665
2665
  `;
2666
2666
  }
2667
+ var dragDropHandlers = /* @__PURE__ */ new WeakMap();
2667
2668
  function setupDragAndDrop(element, dropHandler) {
2668
- element.addEventListener("dragover", (e) => {
2669
+ const prev = dragDropHandlers.get(element);
2670
+ if (prev) {
2671
+ element.removeEventListener("dragover", prev.dragover);
2672
+ element.removeEventListener("dragleave", prev.dragleave);
2673
+ element.removeEventListener("drop", prev.drop);
2674
+ }
2675
+ const dragover = (e) => {
2669
2676
  e.preventDefault();
2670
2677
  element.classList.add("border-blue-500", "bg-blue-50");
2671
- });
2672
- element.addEventListener("dragleave", (e) => {
2678
+ };
2679
+ const dragleave = (e) => {
2673
2680
  e.preventDefault();
2674
2681
  element.classList.remove("border-blue-500", "bg-blue-50");
2675
- });
2676
- element.addEventListener("drop", (e) => {
2682
+ };
2683
+ const drop = (e) => {
2677
2684
  var _a;
2678
2685
  e.preventDefault();
2679
2686
  element.classList.remove("border-blue-500", "bg-blue-50");
2680
- if ((_a = e.dataTransfer) == null ? void 0 : _a.files) {
2681
- dropHandler(e.dataTransfer.files);
2687
+ const files = (_a = e.dataTransfer) == null ? void 0 : _a.files;
2688
+ if (files) {
2689
+ dropHandler(files);
2682
2690
  }
2683
- });
2691
+ };
2692
+ element.addEventListener("dragover", dragover);
2693
+ element.addEventListener("dragleave", dragleave);
2694
+ element.addEventListener("drop", drop);
2695
+ dragDropHandlers.set(element, { dragover, dragleave, drop });
2684
2696
  }
2685
2697
 
2686
2698
  // src/components/file/preview.ts
@@ -3957,7 +3969,7 @@ function renderFileElementEdit(element, ctx, wrapper, pathKey) {
3957
3969
  releaseLocalFileUrl((_a2 = state.resourceIndex.get(currentRid)) == null ? void 0 : _a2.file);
3958
3970
  }
3959
3971
  if (hiddenInput) hiddenInput.value = "";
3960
- handlers.restoreDropzone();
3972
+ renderEmptySingleState();
3961
3973
  }
3962
3974
  };
3963
3975
  const buildDeps = () => ({
@@ -3972,6 +3984,9 @@ function renderFileElementEdit(element, ctx, wrapper, pathKey) {
3972
3984
  fileContainer.className = "file-preview-container";
3973
3985
  fileContainer.removeAttribute("style");
3974
3986
  fileContainer.onclick = null;
3987
+ while (fileContainer.firstChild) {
3988
+ fileContainer.removeChild(fileContainer.firstChild);
3989
+ }
3975
3990
  const row = document.createElement("div");
3976
3991
  row.className = "fb-file-card-row";
3977
3992
  row.style.cssText = "display:flex;gap:8px;align-items:stretch;";