@toyz/loom 0.18.1 → 0.18.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.
- package/dist/element/dnd.d.ts +12 -0
- package/dist/element/dnd.d.ts.map +1 -1
- package/dist/element/dnd.js +106 -24
- package/dist/element/dnd.js.map +1 -1
- package/package.json +1 -1
package/dist/element/dnd.d.ts
CHANGED
|
@@ -22,6 +22,12 @@ export interface DraggableOptions {
|
|
|
22
22
|
type?: string;
|
|
23
23
|
/** Drag effect, default "move" */
|
|
24
24
|
effect?: DataTransfer["effectAllowed"];
|
|
25
|
+
/**
|
|
26
|
+
* CSS selector for child elements to make draggable.
|
|
27
|
+
* Enables event delegation — the matched element is passed
|
|
28
|
+
* as the first argument to the decorated method.
|
|
29
|
+
*/
|
|
30
|
+
selector?: string;
|
|
25
31
|
}
|
|
26
32
|
export interface DropzoneOptions {
|
|
27
33
|
/** MIME-like type key to accept, default "text/plain" */
|
|
@@ -30,6 +36,12 @@ export interface DropzoneOptions {
|
|
|
30
36
|
effect?: DataTransfer["dropEffect"];
|
|
31
37
|
/** CSS class to add when dragging over, default "drag-over" */
|
|
32
38
|
overClass?: string;
|
|
39
|
+
/**
|
|
40
|
+
* CSS selector for child drop targets.
|
|
41
|
+
* Enables event delegation — the matched element is passed
|
|
42
|
+
* as the third argument to the decorated method.
|
|
43
|
+
*/
|
|
44
|
+
selector?: string;
|
|
33
45
|
/**
|
|
34
46
|
* Optional JSX overlay rendered into the element's shadow DOM (or light DOM)
|
|
35
47
|
* during dragover. Removed on dragleave/drop. Accepts a function that returns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnd.d.ts","sourceRoot":"","sources":["../../src/element/dnd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dnd.d.ts","sourceRoot":"","sources":["../../src/element/dnd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACpC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,IAK9B,QAAQ,QAAQ,EAAE,SAAS,2BAA2B,UAqExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,IAO5B,QAAQ,QAAQ,EAAE,SAAS,2BAA2B,UA6GxE"}
|
package/dist/element/dnd.js
CHANGED
|
@@ -27,28 +27,66 @@ import { CONNECT_HOOKS } from "../decorators/symbols";
|
|
|
27
27
|
export function draggable(opts) {
|
|
28
28
|
const mimeType = opts?.type ?? "text/plain";
|
|
29
29
|
const effect = opts?.effect ?? "move";
|
|
30
|
+
const selector = opts?.selector;
|
|
30
31
|
return function (method, context) {
|
|
31
32
|
context.addInitializer(function () {
|
|
32
33
|
if (!this[CONNECT_HOOKS.key])
|
|
33
34
|
this[CONNECT_HOOKS.key] = [];
|
|
34
35
|
this[CONNECT_HOOKS.key].push((el) => {
|
|
35
|
-
|
|
36
|
+
if (!selector) {
|
|
37
|
+
// Host-level draggable (original behavior)
|
|
38
|
+
el.draggable = true;
|
|
39
|
+
const onStart = (e) => {
|
|
40
|
+
const data = method.call(el);
|
|
41
|
+
e.dataTransfer?.setData(mimeType, String(data ?? ""));
|
|
42
|
+
if (e.dataTransfer)
|
|
43
|
+
e.dataTransfer.effectAllowed = effect;
|
|
44
|
+
el.classList.add("dragging");
|
|
45
|
+
};
|
|
46
|
+
const onEnd = () => {
|
|
47
|
+
el.classList.remove("dragging");
|
|
48
|
+
};
|
|
49
|
+
el.addEventListener("dragstart", onStart);
|
|
50
|
+
el.addEventListener("dragend", onEnd);
|
|
51
|
+
return () => {
|
|
52
|
+
el.removeEventListener("dragstart", onStart);
|
|
53
|
+
el.removeEventListener("dragend", onEnd);
|
|
54
|
+
el.draggable = false;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// Selector-based: event delegation on child elements
|
|
58
|
+
const root = el.shadowRoot ?? el;
|
|
59
|
+
// Mark matching children as draggable
|
|
60
|
+
const markDraggable = () => {
|
|
61
|
+
const targets = root.querySelectorAll(selector);
|
|
62
|
+
for (const t of targets)
|
|
63
|
+
t.draggable = true;
|
|
64
|
+
};
|
|
65
|
+
markDraggable();
|
|
66
|
+
// Re-mark after DOM updates (morph may add/remove elements)
|
|
67
|
+
const observer = new MutationObserver(markDraggable);
|
|
68
|
+
observer.observe(root, { childList: true, subtree: true });
|
|
36
69
|
const onStart = (e) => {
|
|
37
|
-
const
|
|
70
|
+
const target = e.target?.closest?.(selector);
|
|
71
|
+
if (!target)
|
|
72
|
+
return;
|
|
73
|
+
const data = method.call(el, target);
|
|
38
74
|
e.dataTransfer?.setData(mimeType, String(data ?? ""));
|
|
39
75
|
if (e.dataTransfer)
|
|
40
76
|
e.dataTransfer.effectAllowed = effect;
|
|
41
|
-
|
|
77
|
+
target.classList.add("dragging");
|
|
42
78
|
};
|
|
43
|
-
const onEnd = () => {
|
|
44
|
-
|
|
79
|
+
const onEnd = (e) => {
|
|
80
|
+
const target = e.target?.closest?.(selector);
|
|
81
|
+
if (target)
|
|
82
|
+
target.classList.remove("dragging");
|
|
45
83
|
};
|
|
46
|
-
|
|
47
|
-
|
|
84
|
+
root.addEventListener("dragstart", onStart);
|
|
85
|
+
root.addEventListener("dragend", onEnd);
|
|
48
86
|
return () => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
87
|
+
root.removeEventListener("dragstart", onStart);
|
|
88
|
+
root.removeEventListener("dragend", onEnd);
|
|
89
|
+
observer.disconnect();
|
|
52
90
|
};
|
|
53
91
|
});
|
|
54
92
|
});
|
|
@@ -69,6 +107,7 @@ export function dropzone(opts) {
|
|
|
69
107
|
const dropEffect = opts?.effect ?? "move";
|
|
70
108
|
const overClass = opts?.overClass ?? "drag-over";
|
|
71
109
|
const overFn = opts?.over;
|
|
110
|
+
const selector = opts?.selector;
|
|
72
111
|
return function (method, context) {
|
|
73
112
|
context.addInitializer(function () {
|
|
74
113
|
if (!this[CONNECT_HOOKS.key])
|
|
@@ -98,31 +137,74 @@ export function dropzone(opts) {
|
|
|
98
137
|
overlayEl = null;
|
|
99
138
|
}
|
|
100
139
|
};
|
|
140
|
+
if (!selector) {
|
|
141
|
+
// Host-level dropzone (original behavior)
|
|
142
|
+
const onOver = (e) => {
|
|
143
|
+
e.preventDefault();
|
|
144
|
+
if (e.dataTransfer)
|
|
145
|
+
e.dataTransfer.dropEffect = dropEffect;
|
|
146
|
+
el.classList.add(overClass);
|
|
147
|
+
showOverlay();
|
|
148
|
+
};
|
|
149
|
+
const onLeave = () => {
|
|
150
|
+
el.classList.remove(overClass);
|
|
151
|
+
hideOverlay();
|
|
152
|
+
};
|
|
153
|
+
const onDrop = (e) => {
|
|
154
|
+
e.preventDefault();
|
|
155
|
+
el.classList.remove(overClass);
|
|
156
|
+
hideOverlay();
|
|
157
|
+
const data = e.dataTransfer?.getData(mimeType) ?? "";
|
|
158
|
+
method.call(el, data, e);
|
|
159
|
+
};
|
|
160
|
+
el.addEventListener("dragover", onOver);
|
|
161
|
+
el.addEventListener("dragleave", onLeave);
|
|
162
|
+
el.addEventListener("drop", onDrop);
|
|
163
|
+
return () => {
|
|
164
|
+
el.removeEventListener("dragover", onOver);
|
|
165
|
+
el.removeEventListener("dragleave", onLeave);
|
|
166
|
+
el.removeEventListener("drop", onDrop);
|
|
167
|
+
hideOverlay();
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
// Selector-based: event delegation on child elements
|
|
171
|
+
const root = el.shadowRoot ?? el;
|
|
172
|
+
let currentOverTarget = null;
|
|
101
173
|
const onOver = (e) => {
|
|
102
174
|
e.preventDefault();
|
|
103
175
|
if (e.dataTransfer)
|
|
104
176
|
e.dataTransfer.dropEffect = dropEffect;
|
|
105
|
-
|
|
106
|
-
|
|
177
|
+
const target = e.target?.closest?.(selector);
|
|
178
|
+
if (target && target !== currentOverTarget) {
|
|
179
|
+
currentOverTarget?.classList.remove(overClass);
|
|
180
|
+
target.classList.add(overClass);
|
|
181
|
+
currentOverTarget = target;
|
|
182
|
+
}
|
|
107
183
|
};
|
|
108
|
-
const onLeave = () => {
|
|
109
|
-
|
|
110
|
-
|
|
184
|
+
const onLeave = (e) => {
|
|
185
|
+
const target = e.target?.closest?.(selector);
|
|
186
|
+
if (target) {
|
|
187
|
+
target.classList.remove(overClass);
|
|
188
|
+
if (target === currentOverTarget)
|
|
189
|
+
currentOverTarget = null;
|
|
190
|
+
}
|
|
111
191
|
};
|
|
112
192
|
const onDrop = (e) => {
|
|
113
193
|
e.preventDefault();
|
|
114
|
-
|
|
115
|
-
|
|
194
|
+
const target = e.target?.closest?.(selector);
|
|
195
|
+
if (currentOverTarget)
|
|
196
|
+
currentOverTarget.classList.remove(overClass);
|
|
197
|
+
currentOverTarget = null;
|
|
116
198
|
const data = e.dataTransfer?.getData(mimeType) ?? "";
|
|
117
|
-
method.call(el, data, e);
|
|
199
|
+
method.call(el, data, e, target);
|
|
118
200
|
};
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
201
|
+
root.addEventListener("dragover", onOver);
|
|
202
|
+
root.addEventListener("dragleave", onLeave);
|
|
203
|
+
root.addEventListener("drop", onDrop);
|
|
122
204
|
return () => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
205
|
+
root.removeEventListener("dragover", onOver);
|
|
206
|
+
root.removeEventListener("dragleave", onLeave);
|
|
207
|
+
root.removeEventListener("drop", onDrop);
|
|
126
208
|
hideOverlay();
|
|
127
209
|
};
|
|
128
210
|
});
|
package/dist/element/dnd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnd.js","sourceRoot":"","sources":["../../src/element/dnd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"dnd.js","sourceRoot":"","sources":["../../src/element/dnd.ts"],"names":[],"mappings":"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"}
|