react-sync-board 1.4.2 → 1.4.4
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/README.md +38 -0
- package/dist/react-sync-board.js +574 -475
- package/dist/react-sync-board.js.map +1 -1
- package/dist/react-sync-board.umd.cjs +13 -13
- package/dist/react-sync-board.umd.cjs.map +1 -1
- package/package.json +1 -1
package/dist/react-sync-board.js
CHANGED
|
@@ -18,9 +18,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
18
18
|
let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
|
|
19
19
|
for (; e--;) t += C[n[e] & 63];
|
|
20
20
|
return t;
|
|
21
|
-
},
|
|
22
|
-
if (!
|
|
23
|
-
},
|
|
21
|
+
}, T = 128, ee = (e) => typeof e == "string" && e.length > 0 && e.length <= T && !/[\u0000-\u001f\u007f]/u.test(e), E = (e, t) => {
|
|
22
|
+
if (!ee(e)) throw Error(`Invalid ${t}`);
|
|
23
|
+
}, te = class {
|
|
24
24
|
constructor(e, t, n = null) {
|
|
25
25
|
this._socket = e, this.userId = n, this.room = t, this.toUnregister = [() => {
|
|
26
26
|
this._socket.off(`${this.room}.isMaster`), this._socket.off(`${this.room}.roomJoined`), this._socket.off(`${this.room}._call`);
|
|
@@ -89,9 +89,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
89
89
|
params: t
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
},
|
|
92
|
+
}, D = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
|
|
93
93
|
E(t, "room name"), i != null && E(i, "user id");
|
|
94
|
-
let a = new
|
|
94
|
+
let a = new te(e, t, i);
|
|
95
95
|
return new Promise((o) => {
|
|
96
96
|
let s = !0;
|
|
97
97
|
e.on(`${t}.isMaster`, () => {
|
|
@@ -132,7 +132,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
132
132
|
t.off("disconnect", e);
|
|
133
133
|
};
|
|
134
134
|
}, [i, t]), e.useEffect(() => {
|
|
135
|
-
if (t) return t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0,
|
|
135
|
+
if (t) return t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, D({
|
|
136
136
|
socket: t,
|
|
137
137
|
room: n,
|
|
138
138
|
onMaster: () => {
|
|
@@ -160,34 +160,105 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
160
160
|
},
|
|
161
161
|
children: s
|
|
162
162
|
});
|
|
163
|
-
}, k = (e = "default") => (r(O) || {})[e],
|
|
163
|
+
}, k = (e = "default") => (r(O) || {})[e], ie = /* @__PURE__ */ new Set([
|
|
164
|
+
"grid",
|
|
165
|
+
"hexH",
|
|
166
|
+
"hexV"
|
|
167
|
+
]), A = (e, t = 0) => Number.isFinite(Number(e)) ? Number(e) : t, j = (e) => {
|
|
168
|
+
if (!ie.has(e?.type)) return null;
|
|
169
|
+
let t = A(e.size, 1);
|
|
170
|
+
return {
|
|
171
|
+
...e,
|
|
172
|
+
size: t > 0 ? t : 1,
|
|
173
|
+
offset: {
|
|
174
|
+
x: A(e.offset?.x),
|
|
175
|
+
y: A(e.offset?.y)
|
|
176
|
+
},
|
|
177
|
+
show: e.show !== !1,
|
|
178
|
+
color: e.color || "#000000",
|
|
179
|
+
opacity: Math.max(0, Math.min(1, A(e.opacity ?? .2, .2)))
|
|
180
|
+
};
|
|
181
|
+
}, ae = (e, t) => j(t) || j(e), oe = (e, t) => {
|
|
182
|
+
let n = ae(e, t), r = j(t);
|
|
183
|
+
return !n || r || typeof t?.show != "boolean" ? n : {
|
|
184
|
+
...n,
|
|
185
|
+
show: t.show
|
|
186
|
+
};
|
|
187
|
+
}, se = (e) => {
|
|
188
|
+
let t = getComputedStyle(e), n = (e, n, r, i) => {
|
|
189
|
+
let a = parseFloat(t[e]);
|
|
190
|
+
return Number.isFinite(a) ? (t.boxSizing !== "border-box" && (a += (parseFloat(t[`padding${n}`]) || 0) + (parseFloat(t[`padding${r}`]) || 0) + (parseFloat(t[`border${n}Width`]) || 0) + (parseFloat(t[`border${r}Width`]) || 0)), a) : i;
|
|
191
|
+
};
|
|
192
|
+
return {
|
|
193
|
+
width: n("width", "Left", "Right", e.offsetWidth),
|
|
194
|
+
height: n("height", "Top", "Bottom", e.offsetHeight)
|
|
195
|
+
};
|
|
196
|
+
}, ce = ({ type: e, size: t }) => {
|
|
197
|
+
let n = Math.sqrt(3) * t / 2;
|
|
198
|
+
return e === "grid" ? {
|
|
199
|
+
width: t,
|
|
200
|
+
height: t,
|
|
201
|
+
centers: [[t / 2, t / 2]]
|
|
202
|
+
} : e === "hexH" ? {
|
|
203
|
+
width: 2 * n,
|
|
204
|
+
height: 3 * t,
|
|
205
|
+
centers: [[0, 0], [n, 1.5 * t]]
|
|
206
|
+
} : {
|
|
207
|
+
width: 3 * t,
|
|
208
|
+
height: 2 * n,
|
|
209
|
+
centers: [[0, 0], [1.5 * t, n]]
|
|
210
|
+
};
|
|
211
|
+
}, le = (e, t) => {
|
|
212
|
+
let { x: n, y: r, width: i, height: a } = e, o = j(t);
|
|
213
|
+
if (!o || ![
|
|
214
|
+
n,
|
|
215
|
+
r,
|
|
216
|
+
i,
|
|
217
|
+
a
|
|
218
|
+
].every(Number.isFinite)) return {
|
|
219
|
+
x: n,
|
|
220
|
+
y: r
|
|
221
|
+
};
|
|
222
|
+
let { offset: s } = o, c = n + i / 2 - s.x, l = r + a / 2 - s.y, u = ce(o), d, f = Infinity;
|
|
223
|
+
for (let [e, t] of u.centers) {
|
|
224
|
+
let n = Math.round((c - e) / u.width) * u.width + e, r = Math.round((l - t) / u.height) * u.height + t, o = Math.hypot(n - c, r - l);
|
|
225
|
+
o < f && (d = {
|
|
226
|
+
x: n + s.x - i / 2,
|
|
227
|
+
y: r + s.y - a / 2
|
|
228
|
+
}, f = o);
|
|
229
|
+
}
|
|
230
|
+
return d && Number.isFinite(d.x) && Number.isFinite(d.y) ? d : {
|
|
231
|
+
x: n,
|
|
232
|
+
y: r
|
|
233
|
+
};
|
|
234
|
+
}, M = (e, t) => e.classList && e.classList.contains(t), N = (e, t) => M(e, t) ? e : e.parentNode ? N(e.parentNode, t) : !1, ue = ([e, t], [n, r]) => {
|
|
164
235
|
let i = Math.abs(e - n), a = Math.abs(t - r);
|
|
165
236
|
return Math.hypot(i, a);
|
|
166
|
-
},
|
|
237
|
+
}, de = (e, t, n) => {
|
|
167
238
|
let r = n * Math.PI / 180;
|
|
168
239
|
return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
|
|
169
|
-
},
|
|
170
|
-
let [o, s] =
|
|
240
|
+
}, fe = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => de((e - i) / n, (t - a) / n, -r), P = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
|
|
241
|
+
let [o, s] = de(e, t, r);
|
|
171
242
|
return [o * n + i, s * n + a];
|
|
172
|
-
},
|
|
243
|
+
}, pe = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, me = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
|
|
173
244
|
let { top: n, left: r } = e.getBoundingClientRect();
|
|
174
|
-
return
|
|
245
|
+
return pe({
|
|
175
246
|
x: r,
|
|
176
247
|
y: n
|
|
177
248
|
}, t);
|
|
178
|
-
}),
|
|
249
|
+
}), he = (e, t) => me(e, t.getBoundingClientRect()), F = (e, t) => {
|
|
179
250
|
try {
|
|
180
251
|
return document.getElementById(`${e}__${t}`);
|
|
181
252
|
} catch {
|
|
182
253
|
console.error(`Error while getting item with id ${t} inside wrapper`, e);
|
|
183
254
|
return;
|
|
184
255
|
}
|
|
185
|
-
},
|
|
256
|
+
}, I = (e) => {
|
|
186
257
|
let t = e?.dataset?.id;
|
|
187
258
|
return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
|
|
188
|
-
},
|
|
259
|
+
}, ge = (e, t) => {
|
|
189
260
|
let n = e.reduce((e, n) => {
|
|
190
|
-
let r =
|
|
261
|
+
let r = F(t, n);
|
|
191
262
|
if (!r) return e || null;
|
|
192
263
|
let { left: i, right: a, top: o, bottom: s } = r.getBoundingClientRect(), c;
|
|
193
264
|
return c = e || {
|
|
@@ -198,31 +269,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
198
269
|
}, c.left = Math.min(i, c.left), c.top = Math.min(o, c.top), c.right = Math.max(a, c.right), c.bottom = Math.max(s, c.bottom), c;
|
|
199
270
|
}, null);
|
|
200
271
|
return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
|
|
201
|
-
},
|
|
202
|
-
let r = new Set(
|
|
272
|
+
}, _e = (e, t, n = null) => (n === null && (n = /* @__PURE__ */ new Set()), !Array.isArray(t) || t.length === 0 ? [] : t.map((t) => n.has(t) ? [] : (n.add(t), e[t] ? [t, ..._e(e, e[t].linkedItems, n)] : [])).flat()), ve = (e, t, n) => {
|
|
273
|
+
let r = new Set(_e(e, n));
|
|
203
274
|
return t.filter((e) => r.has(e));
|
|
204
|
-
},
|
|
205
|
-
x: 0,
|
|
206
|
-
y: 0
|
|
207
|
-
} }) => {
|
|
208
|
-
let [s, c] = [e + n / 2 - o.x, t + r / 2 - o.y], l, u, d, f, p, m, h, g, _, v, y = a / 1.1547;
|
|
209
|
-
switch (i) {
|
|
210
|
-
case "grid":
|
|
211
|
-
l = Math.round(s / a) * a, u = Math.round(c / a) * a;
|
|
212
|
-
break;
|
|
213
|
-
case "hexH":
|
|
214
|
-
d = 2 * y, f = 3 * a, p = Math.round(s / d) * d, h = Math.round(c / f) * f, m = p > s ? p - y : p + y, g = h > c ? h - 1.5 * a : h + 1.5 * a, _ = Math.hypot(p - s, h - c), v = Math.hypot(m - s, g - c), _ < v ? (l = p, u = h) : (l = m, u = g);
|
|
215
|
-
break;
|
|
216
|
-
case "hexV":
|
|
217
|
-
d = 3 * a, f = 2 * y, p = Math.round(s / d) * d, h = Math.round(c / f) * f, m = p > s ? p - 1.5 * a : p + 1.5 * a, g = h > c ? h - y : h + y, _ = Math.hypot(p - s, h - c), v = Math.hypot(m - s, g - c), _ < v ? (l = p, u = h) : (l = m, u = g);
|
|
218
|
-
break;
|
|
219
|
-
default: l = e + n / 2, u = t + r / 2;
|
|
220
|
-
}
|
|
221
|
-
return {
|
|
222
|
-
x: l + o.x - n / 2,
|
|
223
|
-
y: u + o.y - r / 2
|
|
224
|
-
};
|
|
225
|
-
}, pe = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), me = () => pe[Math.floor(Math.random() * pe.length)], I = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
|
|
275
|
+
}, ye = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), be = () => ye[Math.floor(Math.random() * ye.length)], L = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
|
|
226
276
|
a({ ready: !1 });
|
|
227
277
|
let c = [];
|
|
228
278
|
(async () => {
|
|
@@ -246,7 +296,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
246
296
|
return d.unsub = () => {
|
|
247
297
|
c.forEach((e) => e());
|
|
248
298
|
}, d;
|
|
249
|
-
},
|
|
299
|
+
}, xe = e.createContext(), Se = (e, t) => ({
|
|
250
300
|
items: {},
|
|
251
301
|
getItems: () => t().items,
|
|
252
302
|
setItems: (t) => e({ items: t }),
|
|
@@ -269,7 +319,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
269
319
|
});
|
|
270
320
|
}), { items: r };
|
|
271
321
|
})
|
|
272
|
-
}),
|
|
322
|
+
}), Ce = (e, t) => ({
|
|
273
323
|
itemIds: [],
|
|
274
324
|
setItemIds: (t) => e({ itemIds: t }),
|
|
275
325
|
getItemIds: () => t().itemIds,
|
|
@@ -286,7 +336,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
286
336
|
return r[t] = n, { itemIds: r };
|
|
287
337
|
}),
|
|
288
338
|
updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
|
|
289
|
-
}),
|
|
339
|
+
}), we = (e, t) => ({
|
|
290
340
|
removeItemsById: (t) => e((e) => ({
|
|
291
341
|
itemIds: e.itemIds.filter((e) => !t.includes(e)),
|
|
292
342
|
items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
|
|
@@ -313,7 +363,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
313
363
|
itemIds: r
|
|
314
364
|
};
|
|
315
365
|
})
|
|
316
|
-
}),
|
|
366
|
+
}), Te = (e, t) => ({
|
|
317
367
|
boardConfig: {},
|
|
318
368
|
getBoardConfig: () => t().boardConfig,
|
|
319
369
|
setBoardConfig: (t) => e({ boardConfig: t }),
|
|
@@ -321,7 +371,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
321
371
|
...e.boardConfig,
|
|
322
372
|
...t
|
|
323
373
|
} }))
|
|
324
|
-
}),
|
|
374
|
+
}), Ee = (e, t) => ({
|
|
325
375
|
session: {},
|
|
326
376
|
getSessionInfo: () => t().session,
|
|
327
377
|
setSessionInfo: (t) => e({ session: t }),
|
|
@@ -329,34 +379,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
329
379
|
...e.session,
|
|
330
380
|
...t
|
|
331
381
|
} }))
|
|
332
|
-
}),
|
|
333
|
-
let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(
|
|
382
|
+
}), De = ({ storeName: t, children: n, defaultValue: r }) => {
|
|
383
|
+
let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(L({
|
|
334
384
|
wire: i,
|
|
335
385
|
storeName: t,
|
|
336
386
|
defaultValue: r
|
|
337
387
|
}, (...e) => ({
|
|
338
|
-
...
|
|
339
|
-
...
|
|
340
|
-
...
|
|
341
|
-
...
|
|
342
|
-
...
|
|
388
|
+
...Se(...e),
|
|
389
|
+
...Ce(...e),
|
|
390
|
+
...we(...e),
|
|
391
|
+
...Te(...e),
|
|
392
|
+
...Ee(...e)
|
|
343
393
|
}))));
|
|
344
394
|
return e.useEffect(() => {
|
|
345
395
|
let e = l.subscribe((t) => {
|
|
346
396
|
t.ready && (e(), c(!0));
|
|
347
397
|
});
|
|
348
|
-
}, [l]), o ? /* @__PURE__ */ a(
|
|
398
|
+
}, [l]), o ? /* @__PURE__ */ a(xe.Provider, {
|
|
349
399
|
value: l,
|
|
350
400
|
children: n
|
|
351
401
|
}) : null;
|
|
352
|
-
},
|
|
353
|
-
let t = r(
|
|
402
|
+
}, R = (e) => {
|
|
403
|
+
let t = r(xe);
|
|
354
404
|
return c(t, e, l);
|
|
355
|
-
},
|
|
356
|
-
let [t, n] =
|
|
405
|
+
}, Oe = () => {
|
|
406
|
+
let [t, n] = R((e) => [e.itemIds, e.items]);
|
|
357
407
|
return e.useMemo(() => t.map((e) => n[e]), [t, n]);
|
|
358
|
-
},
|
|
359
|
-
let [t, n, r] =
|
|
408
|
+
}, ke = () => {
|
|
409
|
+
let [t, n, r] = R((e) => [
|
|
360
410
|
e.items,
|
|
361
411
|
e.itemIds,
|
|
362
412
|
e.getItemList
|
|
@@ -371,7 +421,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
371
421
|
n,
|
|
372
422
|
r
|
|
373
423
|
]), i;
|
|
374
|
-
},
|
|
424
|
+
}, Ae = 5e4, je = e.createContext(), Me = (e, t) => ({
|
|
375
425
|
config: {
|
|
376
426
|
itemTemplates: {},
|
|
377
427
|
actions: {},
|
|
@@ -382,14 +432,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
382
432
|
radius: 0
|
|
383
433
|
},
|
|
384
434
|
boardWrapperRect: {},
|
|
385
|
-
boardSize:
|
|
435
|
+
boardSize: Ae
|
|
386
436
|
},
|
|
387
437
|
updateConfiguration: (t) => e((e) => ({ config: {
|
|
388
438
|
...e.config,
|
|
389
439
|
...t
|
|
390
440
|
} })),
|
|
391
441
|
getConfiguration: () => t().config
|
|
392
|
-
}),
|
|
442
|
+
}), Ne = (e, t) => ({
|
|
393
443
|
boardState: {
|
|
394
444
|
movingItems: !1,
|
|
395
445
|
selecting: !1,
|
|
@@ -405,7 +455,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
405
455
|
...t
|
|
406
456
|
} })),
|
|
407
457
|
getBoardState: () => t().boardState
|
|
408
|
-
}),
|
|
458
|
+
}), Pe = (e, t) => ({
|
|
409
459
|
interactions: {},
|
|
410
460
|
getInteractions: () => t().interactions,
|
|
411
461
|
register: (t, n) => e((e) => {
|
|
@@ -427,7 +477,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
427
477
|
setTimeout(() => e(n), 0);
|
|
428
478
|
});
|
|
429
479
|
}
|
|
430
|
-
}),
|
|
480
|
+
}), Fe = (e, t) => ({
|
|
431
481
|
selection: [],
|
|
432
482
|
setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
|
|
433
483
|
getSelection: () => t().selection,
|
|
@@ -443,34 +493,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
443
493
|
let n = e.selectionBox;
|
|
444
494
|
return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
|
|
445
495
|
})
|
|
446
|
-
}),
|
|
496
|
+
}), Ie = ({ children: t }) => {
|
|
447
497
|
let [n] = e.useState(() => s((...e) => ({
|
|
448
|
-
...
|
|
449
|
-
...
|
|
450
|
-
...
|
|
451
|
-
...
|
|
498
|
+
...Me(...e),
|
|
499
|
+
...Ne(...e),
|
|
500
|
+
...Pe(...e),
|
|
501
|
+
...Fe(...e)
|
|
452
502
|
})));
|
|
453
|
-
return /* @__PURE__ */ a(
|
|
503
|
+
return /* @__PURE__ */ a(je.Provider, {
|
|
454
504
|
value: n,
|
|
455
505
|
children: t
|
|
456
506
|
});
|
|
457
|
-
},
|
|
458
|
-
let t = r(
|
|
507
|
+
}, z = (e) => {
|
|
508
|
+
let t = r(je);
|
|
459
509
|
return c(t, e, l);
|
|
460
|
-
},
|
|
461
|
-
let [e] =
|
|
510
|
+
}, Le = () => {
|
|
511
|
+
let [e] = z((e) => [e.selection]);
|
|
462
512
|
return e;
|
|
463
|
-
},
|
|
464
|
-
let [e] =
|
|
513
|
+
}, Re = () => {
|
|
514
|
+
let [e] = z((e) => [e.getSelection]);
|
|
465
515
|
return e;
|
|
466
|
-
},
|
|
467
|
-
let [t, n, r, i, a] =
|
|
516
|
+
}, ze = 1e3, Be = .8, Ve = !1, B = () => {
|
|
517
|
+
let [t, n, r, i, a] = z((e) => [
|
|
468
518
|
e.getBoardState,
|
|
469
519
|
e.updateBoardState,
|
|
470
520
|
e.config.itemExtent,
|
|
471
521
|
e.getConfiguration,
|
|
472
522
|
e.updateConfiguration
|
|
473
|
-
]), o = e.useRef([.15, 5]), [s] =
|
|
523
|
+
]), o = e.useRef([.15, 5]), [s] = R((e) => [e.getItemList]), c = e.useCallback(() => {
|
|
474
524
|
let { translateX: e, translateY: n, scale: r, rotate: i } = t();
|
|
475
525
|
return {
|
|
476
526
|
translateX: e,
|
|
@@ -478,9 +528,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
478
528
|
scale: r,
|
|
479
529
|
rotate: i
|
|
480
530
|
};
|
|
481
|
-
}, [t]), l = e.useCallback((e, n) =>
|
|
531
|
+
}, [t]), l = e.useCallback((e, n) => fe([e, n], t()), [t]), d = e.useCallback((e, n) => P([e, n], t()), [t]), f = e.useCallback((e, n) => {
|
|
482
532
|
let { scale: r, rotate: i } = t();
|
|
483
|
-
return
|
|
533
|
+
return fe([e, n], {
|
|
484
534
|
translateX: 0,
|
|
485
535
|
translateY: 0,
|
|
486
536
|
rotate: i,
|
|
@@ -491,9 +541,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
491
541
|
...r,
|
|
492
542
|
...e(r)
|
|
493
543
|
};
|
|
494
|
-
|
|
544
|
+
Ve && console.log("New expected values: ", i, a, o, s);
|
|
495
545
|
let c = p(o), l = i, u = a;
|
|
496
|
-
|
|
546
|
+
Ve && console.log("New fixed values: ", l, u, c, s), n({
|
|
497
547
|
translateX: Number.isFinite(l) ? l : r.translateX,
|
|
498
548
|
translateY: Number.isFinite(u) ? u : r.translateY,
|
|
499
549
|
scale: Number.isFinite(c) ? c : p(1),
|
|
@@ -538,7 +588,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
538
588
|
e || 0,
|
|
539
589
|
n || 0,
|
|
540
590
|
r || 2e3
|
|
541
|
-
], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) *
|
|
591
|
+
], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Be), [h, g] = P([-s, -c], {
|
|
542
592
|
translateX: o.width / 2,
|
|
543
593
|
translateY: o.height / 2,
|
|
544
594
|
scale: f,
|
|
@@ -563,7 +613,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
563
613
|
};
|
|
564
614
|
}, [l, i]), y = e.useCallback(() => {
|
|
565
615
|
let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
|
|
566
|
-
let r =
|
|
616
|
+
let r = F(t, n.id);
|
|
567
617
|
return r && (e.left = Math.min(n.x, e.left), e.top = Math.min(n.y, e.top), e.right = Math.max(n.x + r.offsetWidth, e.right), e.bottom = Math.max(n.y + r.offsetHeight, e.bottom)), e;
|
|
568
618
|
}, {
|
|
569
619
|
left: Infinity,
|
|
@@ -575,7 +625,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
575
625
|
a({ itemExtent: {
|
|
576
626
|
x: 0,
|
|
577
627
|
y: 0,
|
|
578
|
-
radius:
|
|
628
|
+
radius: ze
|
|
579
629
|
} });
|
|
580
630
|
return;
|
|
581
631
|
}
|
|
@@ -583,7 +633,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
583
633
|
x: (n.right + n.left) / 2,
|
|
584
634
|
y: (n.bottom + n.top) / 2
|
|
585
635
|
};
|
|
586
|
-
r.radius = Math.max(
|
|
636
|
+
r.radius = Math.max(ue([r.x, r.y], [n.left, n.top]), ze), a({ itemExtent: r });
|
|
587
637
|
}, [
|
|
588
638
|
i,
|
|
589
639
|
s,
|
|
@@ -602,7 +652,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
602
652
|
]), x = u(() => y(), [y], 200);
|
|
603
653
|
return e.useEffect(() => {
|
|
604
654
|
window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
|
|
605
|
-
|
|
655
|
+
Ve = !0;
|
|
606
656
|
};
|
|
607
657
|
}, [i, y]), {
|
|
608
658
|
setDim: m,
|
|
@@ -618,8 +668,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
618
668
|
fromWrapperToBoard: l,
|
|
619
669
|
fromBoardToWrapper: d
|
|
620
670
|
};
|
|
621
|
-
},
|
|
622
|
-
let [n, r, i] =
|
|
671
|
+
}, He = (t) => {
|
|
672
|
+
let [n, r, i] = z(({ register: e, unregister: t, callInteractions: n }) => [
|
|
623
673
|
e,
|
|
624
674
|
t,
|
|
625
675
|
n
|
|
@@ -636,176 +686,169 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
636
686
|
i(t, e);
|
|
637
687
|
}, [i, t])
|
|
638
688
|
};
|
|
639
|
-
},
|
|
640
|
-
let { call: t } =
|
|
689
|
+
}, V = () => {
|
|
690
|
+
let { call: t } = He("place"), { call: n } = He("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = z((e) => [
|
|
641
691
|
e.clear,
|
|
642
692
|
e.reverse,
|
|
643
693
|
e.unselect,
|
|
644
694
|
e.getConfiguration
|
|
645
|
-
]), {
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
695
|
+
]), { getBoardConfig: l, getItems: u, getItemIds: d, setItemIds: f, updateItems: p, moveItems: m, removeItemsById: h, getItemList: g, insertItems: _, setItemList: v } = R(({ getBoardConfig: e, getItems: t, getItemIds: n, setItemIds: r, updateItems: i, moveItems: a, removeItemsById: o, getItemList: s, insertItems: c, setItemList: l }) => ({
|
|
696
|
+
getBoardConfig: e,
|
|
697
|
+
getItems: t,
|
|
698
|
+
getItemIds: n,
|
|
699
|
+
setItemIds: r,
|
|
700
|
+
updateItems: i,
|
|
701
|
+
moveItems: a,
|
|
702
|
+
removeItemsById: o,
|
|
703
|
+
getItemList: s,
|
|
704
|
+
insertItems: c,
|
|
705
|
+
setItemList: l
|
|
706
|
+
})), y = e.useCallback((e, t, n = !1) => {
|
|
656
707
|
let r = t;
|
|
657
708
|
typeof t == "object" && (r = () => t);
|
|
658
|
-
let a =
|
|
709
|
+
let a = d().filter((t) => e.includes(t)), o = u(), s = a.map((e) => {
|
|
659
710
|
let t = o[e];
|
|
660
711
|
return n ? [e, r(t)] : [e, r({ ...t })];
|
|
661
712
|
}).filter(([, e]) => e);
|
|
662
713
|
if (s.length === 0) return;
|
|
663
714
|
let c = Object.fromEntries(s);
|
|
664
|
-
|
|
715
|
+
p(c, n), i();
|
|
665
716
|
}, [
|
|
717
|
+
d,
|
|
666
718
|
u,
|
|
667
|
-
l,
|
|
668
719
|
i,
|
|
669
|
-
|
|
670
|
-
]),
|
|
671
|
-
|
|
720
|
+
p
|
|
721
|
+
]), b = e.useCallback((e) => {
|
|
722
|
+
v(e), a(), i();
|
|
672
723
|
}, [
|
|
673
724
|
a,
|
|
674
|
-
|
|
725
|
+
v,
|
|
675
726
|
i
|
|
676
|
-
]),
|
|
677
|
-
|
|
678
|
-
}, [
|
|
679
|
-
|
|
727
|
+
]), x = e.useCallback((e, t, n = !1) => {
|
|
728
|
+
y([e], t, n);
|
|
729
|
+
}, [y]), S = e.useCallback((e, t) => {
|
|
730
|
+
m(ve(u(), d(), e), t);
|
|
680
731
|
}, [
|
|
732
|
+
d,
|
|
681
733
|
u,
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
type: t || "grid",
|
|
694
|
-
size: n || 1,
|
|
695
|
-
offset: {
|
|
696
|
-
x: 0,
|
|
697
|
-
y: 0
|
|
698
|
-
},
|
|
699
|
-
...e.grid
|
|
700
|
-
};
|
|
701
|
-
return fe({
|
|
734
|
+
m
|
|
735
|
+
]), C = e.useCallback((e) => {
|
|
736
|
+
let t = d(), n = t.filter((t) => !e.includes(t)), r = t.filter((t) => e.includes(t));
|
|
737
|
+
f([...n, ...r]);
|
|
738
|
+
}, [d, f]), w = e.useCallback((e, t) => {
|
|
739
|
+
let { uid: n } = c();
|
|
740
|
+
y(e, (e) => {
|
|
741
|
+
let r = F(n, e.id);
|
|
742
|
+
if (!r) return;
|
|
743
|
+
let i = ae(t, e.grid);
|
|
744
|
+
if (i) return le({
|
|
702
745
|
x: e.x,
|
|
703
746
|
y: e.y,
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
}, a);
|
|
747
|
+
...se(r)
|
|
748
|
+
}, i);
|
|
707
749
|
}, !0);
|
|
708
|
-
}, [c,
|
|
709
|
-
let
|
|
710
|
-
|
|
750
|
+
}, [c, y]), T = e.useCallback((e) => {
|
|
751
|
+
let n = ve(u(), d(), e);
|
|
752
|
+
C(n), y(n, { moving: !1 }, !0), w(n, l().grid), t(e), i();
|
|
711
753
|
}, [
|
|
712
|
-
|
|
754
|
+
y,
|
|
713
755
|
t,
|
|
714
|
-
u,
|
|
715
756
|
l,
|
|
716
|
-
|
|
757
|
+
d,
|
|
758
|
+
u,
|
|
717
759
|
C,
|
|
760
|
+
w,
|
|
718
761
|
i
|
|
719
762
|
]), ee = e.useCallback((e) => {
|
|
720
|
-
|
|
721
|
-
}, [
|
|
722
|
-
let t =
|
|
723
|
-
|
|
763
|
+
f(e);
|
|
764
|
+
}, [f]), E = e.useCallback((e) => {
|
|
765
|
+
let t = d(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
|
|
766
|
+
f(r), o();
|
|
724
767
|
}, [
|
|
725
|
-
|
|
768
|
+
d,
|
|
726
769
|
o,
|
|
727
|
-
|
|
728
|
-
]),
|
|
729
|
-
let n =
|
|
770
|
+
f
|
|
771
|
+
]), te = e.useCallback((e, t) => {
|
|
772
|
+
let n = u(), r = Object.fromEntries(t.map((t, r) => {
|
|
730
773
|
let i = n[e[r]];
|
|
731
774
|
return [t, {
|
|
732
775
|
x: i.x,
|
|
733
776
|
y: i.y
|
|
734
777
|
}];
|
|
735
778
|
}));
|
|
736
|
-
|
|
737
|
-
let i = Object.fromEntries(e.map((e, n) => [e, t[n]])), a =
|
|
738
|
-
|
|
779
|
+
y(e, (e) => r[e.id], !0);
|
|
780
|
+
let i = Object.fromEntries(e.map((e, n) => [e, t[n]])), a = d().map((t) => e.includes(t) ? i[t] : t);
|
|
781
|
+
f(a);
|
|
739
782
|
}, [
|
|
740
|
-
l,
|
|
741
|
-
v,
|
|
742
783
|
u,
|
|
743
|
-
|
|
784
|
+
y,
|
|
785
|
+
d,
|
|
786
|
+
f
|
|
744
787
|
]), D = e.useCallback((e, t) => {
|
|
745
788
|
let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
|
|
746
789
|
...e,
|
|
747
790
|
x: n.x + 2 * t,
|
|
748
791
|
y: n.y + 2 * t
|
|
749
792
|
} : e);
|
|
750
|
-
|
|
751
|
-
|
|
793
|
+
_(i, t), requestAnimationFrame(() => {
|
|
794
|
+
T(e.map(({ id: e }) => e));
|
|
752
795
|
});
|
|
753
796
|
}, [
|
|
754
797
|
r,
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
]),
|
|
798
|
+
_,
|
|
799
|
+
T
|
|
800
|
+
]), O = e.useCallback((e, t) => {
|
|
758
801
|
D([e], t);
|
|
759
|
-
}, [D]),
|
|
760
|
-
s(e),
|
|
802
|
+
}, [D]), ne = e.useCallback((e) => {
|
|
803
|
+
s(e), h(e), n(e);
|
|
761
804
|
}, [
|
|
762
805
|
s,
|
|
763
|
-
|
|
806
|
+
h,
|
|
764
807
|
n
|
|
765
|
-
]),
|
|
766
|
-
let t =
|
|
808
|
+
]), re = e.useCallback((e) => {
|
|
809
|
+
let t = u();
|
|
767
810
|
return e.map((e) => t[e]);
|
|
768
|
-
}, [
|
|
811
|
+
}, [u]);
|
|
769
812
|
return {
|
|
770
|
-
putItemsOnTop:
|
|
771
|
-
batchUpdateItems:
|
|
813
|
+
putItemsOnTop: C,
|
|
814
|
+
batchUpdateItems: y,
|
|
772
815
|
updateItemOrder: ee,
|
|
773
|
-
moveItems:
|
|
774
|
-
placeItems:
|
|
775
|
-
updateItem:
|
|
776
|
-
swapItems:
|
|
777
|
-
reverseItemsOrder:
|
|
778
|
-
setItemList:
|
|
779
|
-
pushItem:
|
|
816
|
+
moveItems: S,
|
|
817
|
+
placeItems: T,
|
|
818
|
+
updateItem: x,
|
|
819
|
+
swapItems: te,
|
|
820
|
+
reverseItemsOrder: E,
|
|
821
|
+
setItemList: b,
|
|
822
|
+
pushItem: O,
|
|
780
823
|
pushItems: D,
|
|
781
|
-
removeItems:
|
|
782
|
-
getItemList:
|
|
824
|
+
removeItems: ne,
|
|
825
|
+
getItemList: g,
|
|
783
826
|
findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
|
|
784
827
|
if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
|
|
785
|
-
let a =
|
|
828
|
+
let a = N(e, "item");
|
|
786
829
|
if (a) {
|
|
787
|
-
if (
|
|
788
|
-
if (!i &&
|
|
789
|
-
if (
|
|
790
|
-
let e =
|
|
791
|
-
let a =
|
|
792
|
-
return
|
|
830
|
+
if (M(a, "selected")) return a;
|
|
831
|
+
if (!i && M(a, "locked") && !M(e, "passthrough")) return r ? a : null;
|
|
832
|
+
if (M(e, "passthrough")) {
|
|
833
|
+
let e = d(), { uid: r } = c(), o = e.reduce((e, i) => {
|
|
834
|
+
let a = F(r, i), o = a.getBoundingClientRect();
|
|
835
|
+
return pe({
|
|
793
836
|
x: t,
|
|
794
837
|
y: n
|
|
795
838
|
}, o) && e.unshift(a), e;
|
|
796
839
|
}, []);
|
|
797
840
|
for (let e = 0; e < o.length; e += 1) {
|
|
798
841
|
let t = o[e];
|
|
799
|
-
if (t !== a && (i || !
|
|
842
|
+
if (t !== a && (i || !M(t, "locked"))) return t;
|
|
800
843
|
}
|
|
801
844
|
return null;
|
|
802
845
|
}
|
|
803
846
|
}
|
|
804
847
|
return a;
|
|
805
|
-
}, [c,
|
|
806
|
-
getItems:
|
|
848
|
+
}, [c, d]),
|
|
849
|
+
getItems: re
|
|
807
850
|
};
|
|
808
|
-
},
|
|
851
|
+
}, Ue = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
809
852
|
t.exports = function e(t, n) {
|
|
810
853
|
if (t === n) return !0;
|
|
811
854
|
if (t && n && typeof t == "object" && typeof n == "object") {
|
|
@@ -845,17 +888,17 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
845
888
|
}
|
|
846
889
|
return t !== t && n !== n;
|
|
847
890
|
};
|
|
848
|
-
})))(), 1),
|
|
891
|
+
})))(), 1), We = (e, t) => {
|
|
849
892
|
if (e.type in t) {
|
|
850
893
|
let n = t[e.type].defaultActions;
|
|
851
894
|
return typeof n == "function" ? n(e) : n;
|
|
852
895
|
}
|
|
853
896
|
return [];
|
|
854
|
-
},
|
|
855
|
-
let { actions: n =
|
|
897
|
+
}, Ge = (e, t) => {
|
|
898
|
+
let { actions: n = We(e, t) } = e;
|
|
856
899
|
return n.map((e) => typeof e == "string" ? { name: e } : e);
|
|
857
|
-
},
|
|
858
|
-
let [t, r] =
|
|
900
|
+
}, Ke = () => {
|
|
901
|
+
let [t, r] = R((e) => [e.items, e.getItems]), [i, a, o] = z((e) => [
|
|
859
902
|
e.config.itemTemplates,
|
|
860
903
|
e.selection,
|
|
861
904
|
e.getSelection
|
|
@@ -873,9 +916,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
873
916
|
if (e.length > 0) {
|
|
874
917
|
if (!l.current) return;
|
|
875
918
|
let e = t.reduce((e, t) => {
|
|
876
|
-
let n =
|
|
877
|
-
return e.filter((e) => n.some((t) => (0,
|
|
878
|
-
},
|
|
919
|
+
let n = Ge(t, i);
|
|
920
|
+
return e.filter((e) => n.some((t) => (0, Ue.default)(e, t)));
|
|
921
|
+
}, Ge(t[0], i));
|
|
879
922
|
u(() => {
|
|
880
923
|
c(e);
|
|
881
924
|
});
|
|
@@ -888,28 +931,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
888
931
|
a,
|
|
889
932
|
p
|
|
890
933
|
], 100), { availableActions: s };
|
|
891
|
-
},
|
|
892
|
-
let [e] =
|
|
934
|
+
}, qe = () => {
|
|
935
|
+
let [e] = z((e) => [e.selectionBox]);
|
|
893
936
|
return e;
|
|
894
|
-
},
|
|
937
|
+
}, Je = e.createContext(), Ye = (e) => {
|
|
895
938
|
localStorage.setItem("user", JSON.stringify(e));
|
|
896
|
-
},
|
|
939
|
+
}, Xe = () => {
|
|
897
940
|
if (localStorage.user) {
|
|
898
941
|
let e = {
|
|
899
942
|
name: "Player",
|
|
900
|
-
color:
|
|
943
|
+
color: be(),
|
|
901
944
|
uid: w(),
|
|
902
945
|
...JSON.parse(localStorage.user)
|
|
903
946
|
};
|
|
904
|
-
return
|
|
947
|
+
return Ye(e), e;
|
|
905
948
|
}
|
|
906
949
|
let e = {
|
|
907
950
|
name: "Player",
|
|
908
|
-
color:
|
|
951
|
+
color: be(),
|
|
909
952
|
uid: w()
|
|
910
953
|
};
|
|
911
|
-
return
|
|
912
|
-
},
|
|
954
|
+
return Ye(e), e;
|
|
955
|
+
}, Ze = (e) => (t, n) => ({
|
|
913
956
|
isSpaceMaster: !1,
|
|
914
957
|
users: {},
|
|
915
958
|
getUser: () => n().users[e],
|
|
@@ -932,7 +975,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
932
975
|
id: r,
|
|
933
976
|
uid: t.users[r].uid
|
|
934
977
|
};
|
|
935
|
-
return a.id === e &&
|
|
978
|
+
return a.id === e && Ye(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
|
|
936
979
|
...t.users,
|
|
937
980
|
[r]: a
|
|
938
981
|
} };
|
|
@@ -955,7 +998,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
955
998
|
e < i.timestamp && (i.id = t, i.timestamp = e);
|
|
956
999
|
}), t({ isSpaceMaster: i.id === e });
|
|
957
1000
|
}
|
|
958
|
-
}),
|
|
1001
|
+
}), Qe = (e) => ({
|
|
959
1002
|
cursors: {},
|
|
960
1003
|
moveCursor: (t, n) => e((e) => ({ cursors: {
|
|
961
1004
|
...e.cursors,
|
|
@@ -965,12 +1008,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
965
1008
|
let n = { ...e.cursors };
|
|
966
1009
|
return delete n[t], { cursors: n };
|
|
967
1010
|
})
|
|
968
|
-
}),
|
|
1011
|
+
}), $e = ({ storeName: t, children: n }) => {
|
|
969
1012
|
let { wire: r, isMaster: i } = k("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
|
|
970
1013
|
return e.useEffect(() => {
|
|
971
1014
|
let e = !0, n = [];
|
|
972
1015
|
if (!o && !d.current) return d.current = !0, (() => {
|
|
973
|
-
let n = s(
|
|
1016
|
+
let n = s(L({
|
|
974
1017
|
wire: r,
|
|
975
1018
|
storeName: t,
|
|
976
1019
|
noSync: [
|
|
@@ -980,8 +1023,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
980
1023
|
"electSpaceMaster"
|
|
981
1024
|
]
|
|
982
1025
|
}, (...e) => ({
|
|
983
|
-
...
|
|
984
|
-
...
|
|
1026
|
+
...Ze(r.userId)(...e),
|
|
1027
|
+
...Qe(...e)
|
|
985
1028
|
}), r, t)), i = n.subscribe((t) => {
|
|
986
1029
|
t.ready && (i(), e && c(n));
|
|
987
1030
|
});
|
|
@@ -995,7 +1038,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
995
1038
|
r.userId
|
|
996
1039
|
]), e.useEffect(() => {
|
|
997
1040
|
if (o) return o.getState().addUser({
|
|
998
|
-
...
|
|
1041
|
+
...Xe(),
|
|
999
1042
|
id: r.userId
|
|
1000
1043
|
}), u(!0), () => {
|
|
1001
1044
|
o.getState().removeUser(r.userId);
|
|
@@ -1023,15 +1066,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1023
1066
|
i,
|
|
1024
1067
|
o,
|
|
1025
1068
|
r
|
|
1026
|
-
]), l ? /* @__PURE__ */ a(
|
|
1069
|
+
]), l ? /* @__PURE__ */ a(Je.Provider, {
|
|
1027
1070
|
value: o,
|
|
1028
1071
|
children: n
|
|
1029
1072
|
}) : null;
|
|
1030
|
-
},
|
|
1031
|
-
let t = r(
|
|
1073
|
+
}, H = (e) => {
|
|
1074
|
+
let t = r(Je);
|
|
1032
1075
|
return c(t, e, l);
|
|
1033
|
-
},
|
|
1034
|
-
let [t, n, r, i, a] =
|
|
1076
|
+
}, et = () => {
|
|
1077
|
+
let [t, n, r, i, a] = H((e) => [
|
|
1035
1078
|
e.isSpaceMaster,
|
|
1036
1079
|
e.getUser(),
|
|
1037
1080
|
e.users,
|
|
@@ -1049,8 +1092,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1049
1092
|
}, [n, o]),
|
|
1050
1093
|
joinSpace: a
|
|
1051
1094
|
};
|
|
1052
|
-
},
|
|
1053
|
-
let [t, n, r] =
|
|
1095
|
+
}, tt = () => {
|
|
1096
|
+
let [t, n, r] = R((e) => [
|
|
1054
1097
|
e.boardConfig,
|
|
1055
1098
|
e.getBoardConfig,
|
|
1056
1099
|
e.setBoardConfig
|
|
@@ -1061,11 +1104,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1061
1104
|
let i = n(), a = t(i);
|
|
1062
1105
|
r(a);
|
|
1063
1106
|
}, [n, r])];
|
|
1064
|
-
},
|
|
1065
|
-
let [e] =
|
|
1107
|
+
}, nt = () => {
|
|
1108
|
+
let [e] = z((e) => [e.boardState]);
|
|
1066
1109
|
return e;
|
|
1067
|
-
},
|
|
1068
|
-
let [e, t, n, r] =
|
|
1110
|
+
}, rt = () => {
|
|
1111
|
+
let [e, t, n, r] = R((e) => [
|
|
1069
1112
|
e.getSessionInfo,
|
|
1070
1113
|
e.setSessionInfo,
|
|
1071
1114
|
e.updateSessionInfo,
|
|
@@ -1077,7 +1120,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1077
1120
|
sessionInfo: r,
|
|
1078
1121
|
updateSessionInfo: n
|
|
1079
1122
|
};
|
|
1080
|
-
},
|
|
1123
|
+
}, it = e.createContext(), at = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
|
|
1081
1124
|
type: "message",
|
|
1082
1125
|
user: {
|
|
1083
1126
|
name: e,
|
|
@@ -1087,7 +1130,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1087
1130
|
content: r,
|
|
1088
1131
|
uid: w(),
|
|
1089
1132
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
1090
|
-
}),
|
|
1133
|
+
}), ot = (e, t) => ({
|
|
1091
1134
|
messages: [],
|
|
1092
1135
|
setMessages: (t) => e({ messages: t.map((e) => ({
|
|
1093
1136
|
...e,
|
|
@@ -1098,28 +1141,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1098
1141
|
timestamp: Date.parse(t.timestamp)
|
|
1099
1142
|
}] })),
|
|
1100
1143
|
sendMessage: (e, n) => {
|
|
1101
|
-
let r =
|
|
1144
|
+
let r = at({
|
|
1102
1145
|
user: e,
|
|
1103
1146
|
content: n
|
|
1104
1147
|
});
|
|
1105
1148
|
r && t().addMessage(r);
|
|
1106
1149
|
}
|
|
1107
|
-
}),
|
|
1108
|
-
let { wire: i } = k("room"), [o] = e.useState(() => s(
|
|
1150
|
+
}), st = ({ storeName: t, children: n, defaultValue: r = [] }) => {
|
|
1151
|
+
let { wire: i } = k("room"), [o] = e.useState(() => s(L({
|
|
1109
1152
|
wire: i,
|
|
1110
1153
|
storeName: t,
|
|
1111
1154
|
defaultValue: r,
|
|
1112
1155
|
noSync: ["sendMessage"]
|
|
1113
|
-
}, (...e) => ({ ...
|
|
1114
|
-
return /* @__PURE__ */ a(
|
|
1156
|
+
}, (...e) => ({ ...ot(...e) }))));
|
|
1157
|
+
return /* @__PURE__ */ a(it.Provider, {
|
|
1115
1158
|
value: o,
|
|
1116
1159
|
children: n
|
|
1117
1160
|
});
|
|
1118
|
-
},
|
|
1119
|
-
let t = r(
|
|
1161
|
+
}, ct = (e) => {
|
|
1162
|
+
let t = r(it);
|
|
1120
1163
|
return c(t, e, l);
|
|
1121
|
-
},
|
|
1122
|
-
let n =
|
|
1164
|
+
}, lt = () => {}, ut = (t = lt) => {
|
|
1165
|
+
let n = H((e) => e.getUser()), [r, i, a] = ct((e) => [
|
|
1123
1166
|
e.messages,
|
|
1124
1167
|
e.setMessages,
|
|
1125
1168
|
e.sendMessage
|
|
@@ -1133,23 +1176,23 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1133
1176
|
a(n, e);
|
|
1134
1177
|
}, [n, a])
|
|
1135
1178
|
};
|
|
1136
|
-
},
|
|
1137
|
-
let r =
|
|
1179
|
+
}, dt = ({ children: t, session: n }) => {
|
|
1180
|
+
let r = H((e) => e.joinSpace);
|
|
1138
1181
|
return e.useEffect(() => (r(n), () => {
|
|
1139
1182
|
r(null);
|
|
1140
1183
|
}), [r, n]), t;
|
|
1141
|
-
},
|
|
1184
|
+
}, ft = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
|
|
1142
1185
|
let [l] = e.useState(n || w()), [u] = e.useState(r || w()), [d] = e.useState(() => ({
|
|
1143
1186
|
itemIds: i.map(({ id: e }) => e),
|
|
1144
1187
|
items: Object.fromEntries(i.map((e) => [e.id, e]))
|
|
1145
1188
|
}));
|
|
1146
|
-
return k("room") ? /* @__PURE__ */ a(
|
|
1189
|
+
return k("room") ? /* @__PURE__ */ a(st, {
|
|
1147
1190
|
storeName: `${u}_messages`,
|
|
1148
1191
|
defaultValue: o,
|
|
1149
|
-
children: /* @__PURE__ */ a(
|
|
1192
|
+
children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
|
|
1150
1193
|
storeName: `${u}_item`,
|
|
1151
1194
|
defaultValue: d,
|
|
1152
|
-
children: /* @__PURE__ */ a(
|
|
1195
|
+
children: /* @__PURE__ */ a(dt, {
|
|
1153
1196
|
...c,
|
|
1154
1197
|
session: u
|
|
1155
1198
|
})
|
|
@@ -1159,15 +1202,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1159
1202
|
channel: "room",
|
|
1160
1203
|
socket: t,
|
|
1161
1204
|
LoadingComponent: s,
|
|
1162
|
-
children: /* @__PURE__ */ a(
|
|
1205
|
+
children: /* @__PURE__ */ a($e, {
|
|
1163
1206
|
storeName: `${l}_users`,
|
|
1164
|
-
children: /* @__PURE__ */ a(
|
|
1207
|
+
children: /* @__PURE__ */ a(st, {
|
|
1165
1208
|
storeName: `${u}_messages`,
|
|
1166
1209
|
defaultValue: o,
|
|
1167
|
-
children: /* @__PURE__ */ a(
|
|
1210
|
+
children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
|
|
1168
1211
|
storeName: `${u}_item`,
|
|
1169
1212
|
defaultValue: d,
|
|
1170
|
-
children: /* @__PURE__ */ a(
|
|
1213
|
+
children: /* @__PURE__ */ a(dt, {
|
|
1171
1214
|
...c,
|
|
1172
1215
|
session: u
|
|
1173
1216
|
})
|
|
@@ -1175,19 +1218,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1175
1218
|
})
|
|
1176
1219
|
})
|
|
1177
1220
|
});
|
|
1178
|
-
},
|
|
1221
|
+
}, pt = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
|
|
1179
1222
|
let [o] = e.useState(n || w());
|
|
1180
1223
|
return /* @__PURE__ */ a(re, {
|
|
1181
1224
|
room: o,
|
|
1182
1225
|
channel: "room",
|
|
1183
1226
|
socket: t,
|
|
1184
1227
|
LoadingComponent: i,
|
|
1185
|
-
children: /* @__PURE__ */ a(
|
|
1228
|
+
children: /* @__PURE__ */ a($e, {
|
|
1186
1229
|
storeName: `${o}_users`,
|
|
1187
1230
|
children: r
|
|
1188
1231
|
})
|
|
1189
1232
|
});
|
|
1190
|
-
},
|
|
1233
|
+
}, mt = { data: "" }, ht = (e) => {
|
|
1191
1234
|
if (typeof window == "object") {
|
|
1192
1235
|
let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
|
|
1193
1236
|
innerHTML: " ",
|
|
@@ -1195,58 +1238,58 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1195
1238
|
});
|
|
1196
1239
|
return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
|
|
1197
1240
|
}
|
|
1198
|
-
return e ||
|
|
1199
|
-
},
|
|
1241
|
+
return e || mt;
|
|
1242
|
+
}, gt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, _t = /\/\*[^]*?\*\/| +/g, vt = /\n+/g, U = (e, t) => {
|
|
1200
1243
|
let n = "", r = "", i = "";
|
|
1201
1244
|
for (let a in e) {
|
|
1202
1245
|
let o = e[a];
|
|
1203
|
-
a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ?
|
|
1246
|
+
a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? U(o, a) : a + "{" + U(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += U(o, t ? t.replace(/([^,])+/g, (e) => a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t) => /&/.test(t) ? t.replace(/&/g, e) : e ? e + " " + t : t)) : a) : o != null && (a = a[1] == "-" ? a : a.replace(/[A-Z]/g, "-$&").toLowerCase(), i += U.p ? U.p(a, o) : a + ":" + o + ";");
|
|
1204
1247
|
}
|
|
1205
1248
|
return n + (t && i ? t + "{" + i + "}" : i) + r;
|
|
1206
|
-
},
|
|
1249
|
+
}, W = {}, yt = (e) => {
|
|
1207
1250
|
if (typeof e == "object") {
|
|
1208
1251
|
let t = "";
|
|
1209
|
-
for (let n in e) t += n +
|
|
1252
|
+
for (let n in e) t += n + yt(e[n]);
|
|
1210
1253
|
return t;
|
|
1211
1254
|
}
|
|
1212
1255
|
return e;
|
|
1213
|
-
},
|
|
1214
|
-
let a =
|
|
1256
|
+
}, bt = (e, t, n, r, i) => {
|
|
1257
|
+
let a = yt(e), o = W[a] || (W[a] = ((e) => {
|
|
1215
1258
|
let t = 0, n = 11;
|
|
1216
1259
|
for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
|
|
1217
1260
|
return "go" + n;
|
|
1218
1261
|
})(a));
|
|
1219
|
-
if (!
|
|
1262
|
+
if (!W[o]) {
|
|
1220
1263
|
let t = a === e ? ((e) => {
|
|
1221
1264
|
let t, n, r = [{}];
|
|
1222
|
-
for (; t =
|
|
1265
|
+
for (; t = gt.exec(e.replace(_t, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(vt, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(vt, " ").trim();
|
|
1223
1266
|
return r[0];
|
|
1224
1267
|
})(e) : e;
|
|
1225
|
-
|
|
1268
|
+
W[o] = U(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
|
|
1226
1269
|
}
|
|
1227
|
-
let s = n &&
|
|
1228
|
-
return n && (
|
|
1270
|
+
let s = n && W.g;
|
|
1271
|
+
return n && (W.g = W[o]), ((e, t, n, r) => {
|
|
1229
1272
|
r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
|
|
1230
|
-
})(
|
|
1231
|
-
},
|
|
1273
|
+
})(W[o], t, r, s), o;
|
|
1274
|
+
}, xt = (e, t, n) => e.reduce((e, r, i) => {
|
|
1232
1275
|
let a = t[i];
|
|
1233
1276
|
if (a && a.call) {
|
|
1234
1277
|
let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
|
|
1235
|
-
a = t ? "." + t : e && typeof e == "object" ? e.props ? "" :
|
|
1278
|
+
a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : U(e, "") : !1 === e ? "" : e;
|
|
1236
1279
|
}
|
|
1237
1280
|
return e + r + (a ?? "");
|
|
1238
1281
|
}, "");
|
|
1239
|
-
function
|
|
1282
|
+
function G(e) {
|
|
1240
1283
|
let t = this || {}, n = e.call ? e(t.p) : e;
|
|
1241
|
-
return
|
|
1284
|
+
return bt(n.unshift ? n.raw ? xt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, ht(t.target), t.g, t.o, t.k);
|
|
1242
1285
|
}
|
|
1243
|
-
|
|
1244
|
-
function
|
|
1245
|
-
|
|
1286
|
+
G.bind({ g: 1 }), G.bind({ k: 1 });
|
|
1287
|
+
function St(e, t, n, r) {
|
|
1288
|
+
U.p = t;
|
|
1246
1289
|
}
|
|
1247
1290
|
//#endregion
|
|
1248
1291
|
//#region src/lib/board/Gesture.jsx
|
|
1249
|
-
var
|
|
1292
|
+
var Ct = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
1250
1293
|
t.exports = function e(t, n) {
|
|
1251
1294
|
if (t === n) return !0;
|
|
1252
1295
|
if (t && n && typeof t == "object" && typeof n == "object") {
|
|
@@ -1270,44 +1313,44 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1270
1313
|
}
|
|
1271
1314
|
return t !== t && n !== n;
|
|
1272
1315
|
};
|
|
1273
|
-
})))(), 1),
|
|
1316
|
+
})))(), 1), wt = () => {
|
|
1274
1317
|
let e = navigator.userAgent.toLowerCase();
|
|
1275
1318
|
return /mac os ?x 10/.test(e);
|
|
1276
|
-
},
|
|
1319
|
+
}, Tt = (() => {
|
|
1277
1320
|
let e = document.createElement("iframe");
|
|
1278
1321
|
e.src = "#", document.body.appendChild(e);
|
|
1279
1322
|
let t = e.contentWindow.document;
|
|
1280
1323
|
t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
|
|
1281
1324
|
let n = t.body.firstElementChild.offsetHeight;
|
|
1282
1325
|
return document.body.removeChild(e), n;
|
|
1283
|
-
})(),
|
|
1326
|
+
})(), Et = 800, Dt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], Ot = ([e, t], [n, r]) => {
|
|
1284
1327
|
let i = Math.abs(e - n), a = Math.abs(t - r);
|
|
1285
1328
|
return Math.hypot(i, a);
|
|
1286
|
-
},
|
|
1329
|
+
}, K = () => {}, kt = (e) => (t) => {
|
|
1287
1330
|
let { event: n } = t;
|
|
1288
1331
|
return n.isPropagationStopped() ? null : e(t);
|
|
1289
|
-
},
|
|
1332
|
+
}, At = (e) => async (...t) => {
|
|
1290
1333
|
try {
|
|
1291
1334
|
await e(...t);
|
|
1292
1335
|
} catch (e) {
|
|
1293
1336
|
console.error(e);
|
|
1294
1337
|
}
|
|
1295
|
-
},
|
|
1338
|
+
}, q = new class {
|
|
1296
1339
|
lastPromise = Promise.resolve(!0);
|
|
1297
1340
|
add(e, ...t) {
|
|
1298
1341
|
return new Promise((n, r) => {
|
|
1299
|
-
this.lastPromise = this.lastPromise.then(() =>
|
|
1342
|
+
this.lastPromise = this.lastPromise.then(() => kt(At(e))(...t)).then(n).catch(r);
|
|
1300
1343
|
});
|
|
1301
1344
|
}
|
|
1302
|
-
}(),
|
|
1345
|
+
}(), J = ({ children: t, onDrag: n = K, onDragStart: r = K, onDragEnd: i = K, onPan: o = K, onTap: s = K, onLongTap: c = K, onDoubleTap: l = K, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
|
|
1303
1346
|
let p = e.useRef(null), m = e.useRef({
|
|
1304
1347
|
moving: !1,
|
|
1305
1348
|
pointers: {},
|
|
1306
1349
|
mainPointer: void 0
|
|
1307
1350
|
}), h = (e) => {
|
|
1308
1351
|
let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
|
|
1309
|
-
if (!(c || s && !
|
|
1310
|
-
if (
|
|
1352
|
+
if (!(c || s && !wt())) {
|
|
1353
|
+
if (wt() && !s) q.add(o, {
|
|
1311
1354
|
deltaX: -2 * t,
|
|
1312
1355
|
deltaY: -2 * n,
|
|
1313
1356
|
button: 1,
|
|
@@ -1321,11 +1364,11 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1321
1364
|
let t = n;
|
|
1322
1365
|
switch (a) {
|
|
1323
1366
|
case 1:
|
|
1324
|
-
t *=
|
|
1367
|
+
t *= Tt;
|
|
1325
1368
|
break;
|
|
1326
|
-
case 2: t *=
|
|
1369
|
+
case 2: t *= Et;
|
|
1327
1370
|
}
|
|
1328
|
-
|
|
1371
|
+
wt() && (t *= 2), q.add(u, {
|
|
1329
1372
|
scale: t,
|
|
1330
1373
|
clientX: r,
|
|
1331
1374
|
clientY: i,
|
|
@@ -1340,7 +1383,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1340
1383
|
clientY: i
|
|
1341
1384
|
}, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
|
|
1342
1385
|
if (m.current.mainPointer !== a) try {
|
|
1343
|
-
let { clientX: e, clientY: t } =
|
|
1386
|
+
let { clientX: e, clientY: t } = Dt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = Ot([e, t], [r, i]);
|
|
1344
1387
|
Object.assign(m.current, {
|
|
1345
1388
|
pressed: !0,
|
|
1346
1389
|
moving: !1,
|
|
@@ -1372,7 +1415,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1372
1415
|
target: t,
|
|
1373
1416
|
timeStart: Date.now(),
|
|
1374
1417
|
longTapTimeout: setTimeout(async () => {
|
|
1375
|
-
m.current.noTap = !0,
|
|
1418
|
+
m.current.noTap = !0, q.add(c, {
|
|
1376
1419
|
clientX: r,
|
|
1377
1420
|
clientY: i,
|
|
1378
1421
|
altKey: o,
|
|
@@ -1397,14 +1440,14 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1397
1440
|
}, m.current.moving = !0;
|
|
1398
1441
|
let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
|
|
1399
1442
|
if (g) {
|
|
1400
|
-
let { clientX: e, clientY: n } =
|
|
1401
|
-
_ = (e + i) / 2, v = (n + a) / 2, y =
|
|
1443
|
+
let { clientX: e, clientY: n } = Dt(m.current.pointers, t);
|
|
1444
|
+
_ = (e + i) / 2, v = (n + a) / 2, y = Ot([e, n], [i, a]);
|
|
1402
1445
|
} else _ = i, v = a;
|
|
1403
1446
|
let b = c || s || l || f || h !== 1;
|
|
1404
1447
|
d !== "drag" && (b = !b);
|
|
1405
1448
|
let x = !b, S = b;
|
|
1406
1449
|
if (x) {
|
|
1407
|
-
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout),
|
|
1450
|
+
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), q.add(r, {
|
|
1408
1451
|
deltaX: 0,
|
|
1409
1452
|
deltaY: 0,
|
|
1410
1453
|
startX: m.current.startX,
|
|
@@ -1422,7 +1465,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1422
1465
|
event: m.current.pointerDownEvent
|
|
1423
1466
|
}));
|
|
1424
1467
|
let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
|
|
1425
|
-
|
|
1468
|
+
q.add(n, {
|
|
1426
1469
|
deltaX: t,
|
|
1427
1470
|
deltaY: i,
|
|
1428
1471
|
startX: m.current.startX,
|
|
@@ -1443,7 +1486,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1443
1486
|
if (S) {
|
|
1444
1487
|
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
|
|
1445
1488
|
let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
|
|
1446
|
-
if (
|
|
1489
|
+
if (q.add(o, {
|
|
1447
1490
|
deltaX: t,
|
|
1448
1491
|
deltaY: n,
|
|
1449
1492
|
button: m.current.currentButton,
|
|
@@ -1455,7 +1498,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1455
1498
|
event: e
|
|
1456
1499
|
}), y !== m.current.prevDistance && u) {
|
|
1457
1500
|
let t = m.current.prevDistance - y;
|
|
1458
|
-
Math.abs(t) > 0 && (
|
|
1501
|
+
Math.abs(t) > 0 && (q.add(u, {
|
|
1459
1502
|
scale: t * 3,
|
|
1460
1503
|
clientX: _,
|
|
1461
1504
|
clientY: v,
|
|
@@ -1494,7 +1537,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1494
1537
|
console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
|
|
1495
1538
|
}
|
|
1496
1539
|
}
|
|
1497
|
-
if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1,
|
|
1540
|
+
if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, q.add(i, {
|
|
1498
1541
|
deltaX: t - m.current.prevX,
|
|
1499
1542
|
deltaY: n - m.current.prevY,
|
|
1500
1543
|
startX: m.current.startX,
|
|
@@ -1512,7 +1555,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1512
1555
|
}), p.current.style.cursor = "auto";
|
|
1513
1556
|
else {
|
|
1514
1557
|
let i = Date.now();
|
|
1515
|
-
m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 &&
|
|
1558
|
+
m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && q.add(s, {
|
|
1516
1559
|
clientX: t,
|
|
1517
1560
|
clientY: n,
|
|
1518
1561
|
altKey: r,
|
|
@@ -1533,7 +1576,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1533
1576
|
onPointerCancel: v,
|
|
1534
1577
|
onDoubleClick: (e) => {
|
|
1535
1578
|
let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
|
|
1536
|
-
|
|
1579
|
+
q.add(l, {
|
|
1537
1580
|
clientX: t,
|
|
1538
1581
|
clientY: n,
|
|
1539
1582
|
altKey: r,
|
|
@@ -1554,9 +1597,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1554
1597
|
ref: p,
|
|
1555
1598
|
children: t
|
|
1556
1599
|
});
|
|
1557
|
-
},
|
|
1558
|
-
let [n] =
|
|
1559
|
-
return /* @__PURE__ */ a(
|
|
1600
|
+
}, jt = ({ onResize: e, ...t }) => {
|
|
1601
|
+
let [n] = z((e) => [e.getBoardState]);
|
|
1602
|
+
return /* @__PURE__ */ a(J, {
|
|
1560
1603
|
onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
|
|
1561
1604
|
i.stopPropagation();
|
|
1562
1605
|
let { scale: a } = n();
|
|
@@ -1567,36 +1610,36 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1567
1610
|
},
|
|
1568
1611
|
children: /* @__PURE__ */ a("div", { ...t })
|
|
1569
1612
|
});
|
|
1570
|
-
},
|
|
1613
|
+
}, Mt = G`
|
|
1571
1614
|
display: inline-block;
|
|
1572
1615
|
transition: transform 150ms;
|
|
1573
1616
|
user-select: none;
|
|
1574
1617
|
padding: 2px;
|
|
1575
1618
|
box-sizing: border-box;
|
|
1576
|
-
`,
|
|
1619
|
+
`, Nt = G`
|
|
1577
1620
|
border: 2px dashed #db5034;
|
|
1578
1621
|
padding: 0px;
|
|
1579
1622
|
cursor: pointer;
|
|
1580
|
-
`,
|
|
1623
|
+
`, Y = G`
|
|
1581
1624
|
position: absolute;
|
|
1582
1625
|
width: 0px;
|
|
1583
1626
|
height: 0px;
|
|
1584
|
-
`,
|
|
1627
|
+
`, Pt = G`
|
|
1585
1628
|
top: 0;
|
|
1586
1629
|
left: 0;
|
|
1587
|
-
`,
|
|
1630
|
+
`, Ft = G`
|
|
1588
1631
|
top: 0;
|
|
1589
1632
|
right: 0;
|
|
1590
|
-
`,
|
|
1633
|
+
`, It = G`
|
|
1591
1634
|
bottom: 0;
|
|
1592
1635
|
left: 0;
|
|
1593
|
-
`,
|
|
1636
|
+
`, Lt = G`
|
|
1594
1637
|
bottom: 0;
|
|
1595
1638
|
right: 0;
|
|
1596
|
-
`,
|
|
1639
|
+
`, Rt = G`
|
|
1597
1640
|
top: 50%;
|
|
1598
1641
|
left: 50%;
|
|
1599
|
-
`,
|
|
1642
|
+
`, X = G`
|
|
1600
1643
|
position: absolute;
|
|
1601
1644
|
|
|
1602
1645
|
width: 10px;
|
|
@@ -1604,20 +1647,20 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1604
1647
|
border: 2px solid #db5034;
|
|
1605
1648
|
background-color: #db5034;
|
|
1606
1649
|
cursor: move;
|
|
1607
|
-
`,
|
|
1650
|
+
`, zt = G`
|
|
1608
1651
|
cursor: ew-resize;
|
|
1609
1652
|
right: -6px;
|
|
1610
1653
|
top: calc(50% - 5px);
|
|
1611
|
-
`,
|
|
1654
|
+
`, Bt = G`
|
|
1612
1655
|
cursor: ns-resize;
|
|
1613
1656
|
bottom: -6px;
|
|
1614
1657
|
left: calc(50% - 5px);
|
|
1615
|
-
`,
|
|
1658
|
+
`, Vt = G`
|
|
1616
1659
|
cursor: nwse-resize;
|
|
1617
1660
|
bottom: -6px;
|
|
1618
1661
|
right: -6px;
|
|
1619
|
-
`,
|
|
1620
|
-
className: `syncboard-error-item ${
|
|
1662
|
+
`, Ht = ({ onReload: e }) => /* @__PURE__ */ o("div", {
|
|
1663
|
+
className: `syncboard-error-item ${G({
|
|
1621
1664
|
width: "100px",
|
|
1622
1665
|
display: "flex",
|
|
1623
1666
|
flexDirection: "column",
|
|
@@ -1629,7 +1672,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1629
1672
|
onClick: e,
|
|
1630
1673
|
children: "Reload it"
|
|
1631
1674
|
})]
|
|
1632
|
-
}),
|
|
1675
|
+
}), Ut = class extends e.Component {
|
|
1633
1676
|
constructor(e) {
|
|
1634
1677
|
super(e), this.state = {
|
|
1635
1678
|
hasError: !1,
|
|
@@ -1649,9 +1692,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1649
1692
|
let { ErrorComponent: e } = this.props;
|
|
1650
1693
|
return this.state.hasError ? /* @__PURE__ */ a(e, { onReload: this.onReload }) : this.props.children;
|
|
1651
1694
|
}
|
|
1652
|
-
},
|
|
1695
|
+
}, Wt = (e) => {
|
|
1653
1696
|
e.target.className = "";
|
|
1654
|
-
},
|
|
1697
|
+
}, Gt = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
|
|
1655
1698
|
let { width: o, height: s } = i;
|
|
1656
1699
|
if ([o, s] = [parseFloat(o), parseFloat(s)], (!o || Number.isNaN(Number(o))) && (o = n), (!s || Number.isNaN(Number(s))) && (s = r), a) {
|
|
1657
1700
|
let n = o / s;
|
|
@@ -1666,21 +1709,21 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1666
1709
|
width: (o + e).toFixed(1),
|
|
1667
1710
|
height: (s + t).toFixed(1)
|
|
1668
1711
|
};
|
|
1669
|
-
},
|
|
1712
|
+
}, Kt = {
|
|
1670
1713
|
w: !0,
|
|
1671
1714
|
h: !0,
|
|
1672
1715
|
b: !0
|
|
1673
|
-
},
|
|
1674
|
-
let h = e.useRef(null), [g] =
|
|
1716
|
+
}, qt = t(({ setState: t, state: { type: n, rotation: r = 0, id: s, locked: c, extraClasses: l, ...u } = {}, animate: d = "hvr-pop", isSelected: f, itemMap: p, showResizeHandle: m = !0 }) => {
|
|
1717
|
+
let h = e.useRef(null), [g] = z((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = Kt, resize: y = Gt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
|
|
1675
1718
|
e.useEffect(() => {
|
|
1676
1719
|
h.current.className = d;
|
|
1677
1720
|
}, [d]);
|
|
1678
1721
|
let x = [
|
|
1679
1722
|
"item",
|
|
1680
1723
|
s,
|
|
1681
|
-
|
|
1724
|
+
Mt
|
|
1682
1725
|
];
|
|
1683
|
-
c && x.push("locked"), f && (x.push("selected"), x.push(
|
|
1726
|
+
c && x.push("locked"), f && (x.push("selected"), x.push(Nt)), Array.isArray(l) && x.concat(l);
|
|
1684
1727
|
let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
|
|
1685
1728
|
b((r) => {
|
|
1686
1729
|
let { offsetWidth: i, offsetHeight: a } = h.current;
|
|
@@ -1695,9 +1738,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1695
1738
|
});
|
|
1696
1739
|
}, w = ({ width: e }) => {
|
|
1697
1740
|
C({ width: e });
|
|
1698
|
-
},
|
|
1741
|
+
}, T = ({ height: e }) => {
|
|
1699
1742
|
C({ height: e });
|
|
1700
|
-
},
|
|
1743
|
+
}, ee = ({ width: e }) => {
|
|
1701
1744
|
C({
|
|
1702
1745
|
height: e,
|
|
1703
1746
|
width: e,
|
|
@@ -1712,63 +1755,63 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1712
1755
|
children: /* @__PURE__ */ o("div", {
|
|
1713
1756
|
style: { display: "flex" },
|
|
1714
1757
|
ref: h,
|
|
1715
|
-
onAnimationEnd:
|
|
1758
|
+
onAnimationEnd: Wt,
|
|
1716
1759
|
onKeyDown: (e) => e.stopPropagation(),
|
|
1717
1760
|
onKeyUp: (e) => e.stopPropagation(),
|
|
1718
1761
|
children: [
|
|
1719
|
-
/* @__PURE__ */ a(
|
|
1762
|
+
/* @__PURE__ */ a(Ut, {
|
|
1720
1763
|
itemId: s,
|
|
1721
1764
|
state: u,
|
|
1722
|
-
ErrorComponent: p?.error?.component ||
|
|
1765
|
+
ErrorComponent: p?.error?.component || Ht,
|
|
1723
1766
|
children: /* @__PURE__ */ a(_, {
|
|
1724
1767
|
...u,
|
|
1725
1768
|
id: s,
|
|
1726
1769
|
setState: b
|
|
1727
1770
|
})
|
|
1728
1771
|
}),
|
|
1729
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1730
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1731
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1732
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1733
|
-
/* @__PURE__ */ a("div", { className: `center ${
|
|
1772
|
+
/* @__PURE__ */ a("div", { className: `corner ${Y} ${Pt}` }),
|
|
1773
|
+
/* @__PURE__ */ a("div", { className: `corner ${Y} ${Ft}` }),
|
|
1774
|
+
/* @__PURE__ */ a("div", { className: `corner ${Y} ${Lt}` }),
|
|
1775
|
+
/* @__PURE__ */ a("div", { className: `corner ${Y} ${It}` }),
|
|
1776
|
+
/* @__PURE__ */ a("div", { className: `center ${Y} ${Rt}` }),
|
|
1734
1777
|
m && /* @__PURE__ */ o(i, { children: [
|
|
1735
|
-
v.b && /* @__PURE__ */ a(
|
|
1736
|
-
className: `${
|
|
1737
|
-
onResize: T
|
|
1738
|
-
}),
|
|
1739
|
-
v.h && /* @__PURE__ */ a(Ct, {
|
|
1740
|
-
className: `${jt} ${Nt}`,
|
|
1778
|
+
v.b && /* @__PURE__ */ a(jt, {
|
|
1779
|
+
className: `${X} ${Vt}`,
|
|
1741
1780
|
onResize: ee
|
|
1742
1781
|
}),
|
|
1743
|
-
v.
|
|
1744
|
-
className: `${
|
|
1782
|
+
v.h && /* @__PURE__ */ a(jt, {
|
|
1783
|
+
className: `${X} ${Bt}`,
|
|
1784
|
+
onResize: T
|
|
1785
|
+
}),
|
|
1786
|
+
v.w && /* @__PURE__ */ a(jt, {
|
|
1787
|
+
className: `${X} ${zt}`,
|
|
1745
1788
|
onResize: w
|
|
1746
1789
|
})
|
|
1747
1790
|
] })
|
|
1748
1791
|
]
|
|
1749
1792
|
})
|
|
1750
1793
|
});
|
|
1751
|
-
}, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0,
|
|
1794
|
+
}, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, Ct.default)(e, i)), Jt = (e) => e, Yt = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
|
|
1752
1795
|
if (!r.itemMap[e.type]) return null;
|
|
1753
|
-
let { stateHook: i =
|
|
1796
|
+
let { stateHook: i = Jt } = r.itemMap[e.type], { x: o = 0, y: s = 0, layer: c = 0, moving: l, ...u } = i(e, { currentUser: t?.() }), d = (c + 4) * 10 + 100 + (l ? 5 : 0);
|
|
1754
1797
|
return /* @__PURE__ */ a("div", {
|
|
1755
1798
|
className: n,
|
|
1756
1799
|
style: {
|
|
1757
1800
|
transform: `translate(${o}px, ${s}px)`,
|
|
1758
1801
|
zIndex: d
|
|
1759
1802
|
},
|
|
1760
|
-
children: /* @__PURE__ */ a(
|
|
1803
|
+
children: /* @__PURE__ */ a(qt, {
|
|
1761
1804
|
...r,
|
|
1762
1805
|
showResizeHandle: r.isSelected && r.showResizeHandle,
|
|
1763
1806
|
state: u
|
|
1764
1807
|
})
|
|
1765
1808
|
});
|
|
1766
|
-
}),
|
|
1767
|
-
let { updateItem: e } =
|
|
1809
|
+
}), Xt = () => {
|
|
1810
|
+
let { updateItem: e } = V(), [t, n] = R((e) => [e.itemIds, e.items]), [r, i, o] = z((e) => [
|
|
1768
1811
|
e.config.showResizeHandle,
|
|
1769
1812
|
e.config.itemTemplates,
|
|
1770
1813
|
e.selection
|
|
1771
|
-
]), [s] =
|
|
1814
|
+
]), [s] = H((e) => [e.getUser]), c = G({
|
|
1772
1815
|
position: "absolute",
|
|
1773
1816
|
top: 0,
|
|
1774
1817
|
left: 0,
|
|
@@ -1776,7 +1819,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1776
1819
|
display: "inline-block",
|
|
1777
1820
|
lineHeight: 0
|
|
1778
1821
|
});
|
|
1779
|
-
return t.map((t) => /* @__PURE__ */ a(
|
|
1822
|
+
return t.map((t) => /* @__PURE__ */ a(Yt, {
|
|
1780
1823
|
state: n[t],
|
|
1781
1824
|
setState: e,
|
|
1782
1825
|
isSelected: o.includes(t),
|
|
@@ -1785,28 +1828,28 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1785
1828
|
showResizeHandle: r,
|
|
1786
1829
|
className: c
|
|
1787
1830
|
}, t));
|
|
1788
|
-
},
|
|
1831
|
+
}, Zt = G({
|
|
1789
1832
|
zIndex: 210,
|
|
1790
1833
|
position: "absolute",
|
|
1791
1834
|
backgroundColor: "hsla(0, 40%, 50%, 10%)",
|
|
1792
1835
|
border: "2px solid hsl(0, 55%, 40%)"
|
|
1793
|
-
}),
|
|
1836
|
+
}), Qt = (e, t, n = !1) => {
|
|
1794
1837
|
let r = t.getElementsByClassName("selector");
|
|
1795
1838
|
if (!r.length) return [];
|
|
1796
1839
|
let i = r[0];
|
|
1797
1840
|
return Array.from(t.getElementsByClassName("item")).filter((t) => {
|
|
1798
|
-
let r = e[
|
|
1799
|
-
return !r || !n && r.locked ? !1 :
|
|
1800
|
-
}).map((e) =>
|
|
1801
|
-
},
|
|
1802
|
-
let [r, i, s, c, l, u] =
|
|
1841
|
+
let r = e[I(t)];
|
|
1842
|
+
return !r || !n && r.locked ? !1 : he(t, i);
|
|
1843
|
+
}).map((e) => I(e));
|
|
1844
|
+
}, $t = ({ children: t, moveFirst: n }) => {
|
|
1845
|
+
let [r, i, s, c, l, u] = z((e) => [
|
|
1803
1846
|
e.getSelection,
|
|
1804
1847
|
e.clear,
|
|
1805
1848
|
e.setSelection,
|
|
1806
1849
|
e.select,
|
|
1807
1850
|
e.getConfiguration,
|
|
1808
1851
|
e.updateBoardState
|
|
1809
|
-
]), { findElementUnderPointer: d } =
|
|
1852
|
+
]), { findElementUnderPointer: d } = V(), [p] = R((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
|
|
1810
1853
|
return f(document, "keydown", (e) => {
|
|
1811
1854
|
e.key === "l" && v(!0);
|
|
1812
1855
|
}), f(document, "keyup", (e) => {
|
|
@@ -1815,7 +1858,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1815
1858
|
i();
|
|
1816
1859
|
}), [i]), e.useEffect(() => {
|
|
1817
1860
|
if (b.current.moving) {
|
|
1818
|
-
let e = p(), { boardWrapper: t } = l(), n =
|
|
1861
|
+
let e = p(), { boardWrapper: t } = l(), n = Qt(e, t, _);
|
|
1819
1862
|
g(() => {
|
|
1820
1863
|
s(n);
|
|
1821
1864
|
});
|
|
@@ -1826,7 +1869,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1826
1869
|
m,
|
|
1827
1870
|
s,
|
|
1828
1871
|
_
|
|
1829
|
-
]), /* @__PURE__ */ a(
|
|
1872
|
+
]), /* @__PURE__ */ a(J, {
|
|
1830
1873
|
fill: !0,
|
|
1831
1874
|
onDragStart: async (e) => {
|
|
1832
1875
|
await d(e) || (b.current.moving = !0, g(() => {
|
|
@@ -1851,7 +1894,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1851
1894
|
let { ctrlKey: t, metaKey: n } = e, a = d(e);
|
|
1852
1895
|
if (!a) i();
|
|
1853
1896
|
else {
|
|
1854
|
-
let e =
|
|
1897
|
+
let e = I(a);
|
|
1855
1898
|
if (!e) {
|
|
1856
1899
|
i();
|
|
1857
1900
|
return;
|
|
@@ -1861,9 +1904,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1861
1904
|
}
|
|
1862
1905
|
},
|
|
1863
1906
|
onLongTap: ({ target: e }) => {
|
|
1864
|
-
let t =
|
|
1907
|
+
let t = N(e, "item");
|
|
1865
1908
|
if (t) {
|
|
1866
|
-
let e =
|
|
1909
|
+
let e = I(t);
|
|
1867
1910
|
s([e]);
|
|
1868
1911
|
}
|
|
1869
1912
|
},
|
|
@@ -1880,81 +1923,72 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1880
1923
|
height: `${m.height}px`,
|
|
1881
1924
|
width: `${m.width}px`
|
|
1882
1925
|
},
|
|
1883
|
-
className: `selector ${
|
|
1926
|
+
className: `selector ${Zt}`
|
|
1884
1927
|
}), t]
|
|
1885
1928
|
})
|
|
1886
1929
|
});
|
|
1887
|
-
},
|
|
1888
|
-
let { moveItems: n, placeItems: r, findElementUnderPointer: i } =
|
|
1930
|
+
}, en = ({ children: t }) => {
|
|
1931
|
+
let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = z((e) => [
|
|
1889
1932
|
e.select,
|
|
1890
1933
|
e.setSelection,
|
|
1891
1934
|
e.getSelection,
|
|
1892
1935
|
e.getBoardState,
|
|
1893
1936
|
e.updateBoardState
|
|
1894
|
-
]),
|
|
1937
|
+
]), p = e.useRef({}), m = e.useRef({ items: [] });
|
|
1895
1938
|
return f(document, "keydown", (e) => {
|
|
1896
1939
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
|
|
1897
1940
|
let t = l();
|
|
1898
1941
|
if (t.length) {
|
|
1899
|
-
let
|
|
1942
|
+
let i = 0, a = 0;
|
|
1900
1943
|
switch (e.key) {
|
|
1901
1944
|
case "ArrowLeft":
|
|
1902
|
-
|
|
1945
|
+
i = -10;
|
|
1903
1946
|
break;
|
|
1904
1947
|
case "ArrowRight":
|
|
1905
|
-
|
|
1948
|
+
i = 10;
|
|
1906
1949
|
break;
|
|
1907
1950
|
case "ArrowUp":
|
|
1908
|
-
|
|
1951
|
+
a = -10;
|
|
1909
1952
|
break;
|
|
1910
|
-
case "ArrowDown":
|
|
1953
|
+
case "ArrowDown": a = 10;
|
|
1911
1954
|
}
|
|
1912
|
-
if (
|
|
1913
|
-
e.shiftKey && (
|
|
1914
|
-
let [
|
|
1955
|
+
if (i || a) {
|
|
1956
|
+
e.shiftKey && (i *= 5, a *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (i /= 10, a /= 10);
|
|
1957
|
+
let [s, c] = o(i, a);
|
|
1915
1958
|
n(t, {
|
|
1916
|
-
x:
|
|
1917
|
-
y:
|
|
1918
|
-
}, !0), r(t,
|
|
1919
|
-
type: "grid",
|
|
1920
|
-
size: i || 1
|
|
1921
|
-
}), e.preventDefault();
|
|
1959
|
+
x: s,
|
|
1960
|
+
y: c
|
|
1961
|
+
}, !0), r(t), e.preventDefault();
|
|
1922
1962
|
}
|
|
1923
1963
|
}
|
|
1924
|
-
}), /* @__PURE__ */ a(
|
|
1964
|
+
}), /* @__PURE__ */ a(J, {
|
|
1925
1965
|
fill: !0,
|
|
1926
1966
|
onDragStart: (e) => {
|
|
1927
1967
|
let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
|
|
1928
1968
|
if (a) {
|
|
1929
1969
|
r.stopPropagation();
|
|
1930
1970
|
let e = l();
|
|
1931
|
-
|
|
1932
|
-
let i =
|
|
1933
|
-
e.includes(i) || (t || n ? (
|
|
1971
|
+
m.current.items = e;
|
|
1972
|
+
let i = I(a);
|
|
1973
|
+
e.includes(i) || (t || n ? (m.current.items = [...e, i], s([i])) : (m.current.items = [i], c([i]))), Object.assign(p.current, { moving: !0 });
|
|
1934
1974
|
}
|
|
1935
1975
|
},
|
|
1936
1976
|
onDrag: ({ deltaX: e, deltaY: t, event: r }) => {
|
|
1937
|
-
if (
|
|
1977
|
+
if (p.current.moving) {
|
|
1938
1978
|
r.stopPropagation();
|
|
1939
1979
|
let { movingItems: i } = u(), [a, s] = o(e, t);
|
|
1940
|
-
n(
|
|
1980
|
+
n(m.current.items, {
|
|
1941
1981
|
x: a,
|
|
1942
1982
|
y: s
|
|
1943
1983
|
}, !0), i || d({ movingItems: !0 });
|
|
1944
1984
|
}
|
|
1945
1985
|
},
|
|
1946
1986
|
onDragEnd: () => {
|
|
1947
|
-
|
|
1948
|
-
let { gridSize: e = 1 } = p(), t = e || 1;
|
|
1949
|
-
m.current = { moving: !1 }, r(h.current.items, {
|
|
1950
|
-
type: "grid",
|
|
1951
|
-
size: t
|
|
1952
|
-
}), d({ movingItems: !1 });
|
|
1953
|
-
}
|
|
1987
|
+
p.current.moving && (p.current = { moving: !1 }, r(m.current.items), d({ movingItems: !1 }));
|
|
1954
1988
|
},
|
|
1955
1989
|
children: t
|
|
1956
1990
|
});
|
|
1957
|
-
},
|
|
1991
|
+
}, tn = (t) => {
|
|
1958
1992
|
let n = e.useRef({
|
|
1959
1993
|
hover: !1,
|
|
1960
1994
|
x: 0,
|
|
@@ -1968,16 +2002,16 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1968
2002
|
}), f(t, "mouseleave", () => {
|
|
1969
2003
|
n.current.hover = !1;
|
|
1970
2004
|
}), e.useCallback(() => n.current, []);
|
|
1971
|
-
},
|
|
2005
|
+
}, nn = [...[
|
|
1972
2006
|
,
|
|
1973
2007
|
,
|
|
1974
2008
|
,
|
|
1975
2009
|
,
|
|
1976
2010
|
,
|
|
1977
|
-
].keys()].map((e) => `Digit${e + 1}`),
|
|
1978
|
-
let [t, n] = e.useState({}), [r, i] =
|
|
2011
|
+
].keys()].map((e) => `Digit${e + 1}`), rn = () => {
|
|
2012
|
+
let [t, n] = e.useState({}), [r, i] = z((e) => [e.getBoardState, e.updateBoardState]);
|
|
1979
2013
|
return f(document, "keydown", (e) => {
|
|
1980
|
-
if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) &&
|
|
2014
|
+
if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && nn.includes(e.code)) {
|
|
1981
2015
|
let a = e.code, { translateX: o, translateY: s, scale: c } = r();
|
|
1982
2016
|
e.altKey || e.metaKey || e.ctrlKey || e.shiftKey ? n((e) => ({
|
|
1983
2017
|
...e,
|
|
@@ -1989,14 +2023,14 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1989
2023
|
})) : t[a] && i(t[a]), e.preventDefault();
|
|
1990
2024
|
}
|
|
1991
2025
|
}), null;
|
|
1992
|
-
},
|
|
1993
|
-
let r = e.useRef(null), [i, o, s, c] =
|
|
2026
|
+
}, an = ({ children: t, moveFirst: n = !1 }) => {
|
|
2027
|
+
let r = e.useRef(null), [i, o, s, c] = z((e) => [
|
|
1994
2028
|
e.config.itemExtent,
|
|
1995
2029
|
e.getConfiguration,
|
|
1996
2030
|
e.updateBoardState,
|
|
1997
2031
|
e.getSelection
|
|
1998
|
-
]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g =
|
|
1999
|
-
|
|
2032
|
+
]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g = tn(r);
|
|
2033
|
+
rn();
|
|
2000
2034
|
let _ = e.useCallback(() => {
|
|
2001
2035
|
let { itemExtent: e } = o();
|
|
2002
2036
|
u(e);
|
|
@@ -2045,11 +2079,11 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2045
2079
|
factor: 1 / 3,
|
|
2046
2080
|
to: g()
|
|
2047
2081
|
});
|
|
2048
|
-
}), /* @__PURE__ */ a(
|
|
2082
|
+
}), /* @__PURE__ */ a(J, {
|
|
2049
2083
|
fill: !0,
|
|
2050
2084
|
onPan: ({ deltaX: e, deltaY: t, target: n }) => {
|
|
2051
|
-
let r =
|
|
2052
|
-
r &&
|
|
2085
|
+
let r = N(n, "item");
|
|
2086
|
+
r && M(r, "selected") || (d(({ translateX: n, translateY: r }) => ({
|
|
2053
2087
|
translateX: n + e,
|
|
2054
2088
|
translateY: r + t
|
|
2055
2089
|
})), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
|
|
@@ -2082,7 +2116,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2082
2116
|
children: t
|
|
2083
2117
|
})
|
|
2084
2118
|
});
|
|
2085
|
-
},
|
|
2119
|
+
}, on = G({
|
|
2086
2120
|
position: "absolute",
|
|
2087
2121
|
top: 0,
|
|
2088
2122
|
left: 0,
|
|
@@ -2090,8 +2124,8 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2090
2124
|
backgroundColor: "hsla(0, 40%, 50%, 0%)",
|
|
2091
2125
|
border: "2px dashed hsl(20, 55%, 40%)",
|
|
2092
2126
|
pointerEvents: "none"
|
|
2093
|
-
}),
|
|
2094
|
-
let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] =
|
|
2127
|
+
}), sn = () => {
|
|
2128
|
+
let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = z((e) => [
|
|
2095
2129
|
e.selection,
|
|
2096
2130
|
e.getSelection,
|
|
2097
2131
|
e.selectionBox,
|
|
@@ -2102,13 +2136,13 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2102
2136
|
translateY: e.boardState.translateY,
|
|
2103
2137
|
scale: e.boardState.scale
|
|
2104
2138
|
}
|
|
2105
|
-
]), [d] =
|
|
2139
|
+
]), [d] = R((e) => [e.items]), f = e.useCallback(() => {
|
|
2106
2140
|
let e = n(), { boardWrapperRect: t, uid: r } = o();
|
|
2107
2141
|
if (e.length === 0) {
|
|
2108
2142
|
i(null);
|
|
2109
2143
|
return;
|
|
2110
2144
|
}
|
|
2111
|
-
let a =
|
|
2145
|
+
let a = ge(e, r);
|
|
2112
2146
|
if (!a) {
|
|
2113
2147
|
i(null);
|
|
2114
2148
|
return;
|
|
@@ -2141,15 +2175,15 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2141
2175
|
height: `${r.height}px`,
|
|
2142
2176
|
width: `${r.width}px`
|
|
2143
2177
|
},
|
|
2144
|
-
className: `selection ${
|
|
2178
|
+
className: `selection ${on}`
|
|
2145
2179
|
});
|
|
2146
|
-
},
|
|
2147
|
-
let [e] =
|
|
2148
|
-
return e ? null : /* @__PURE__ */ a(
|
|
2180
|
+
}, cn = () => {
|
|
2181
|
+
let [e] = z((e) => [e.boardState.movingItems]);
|
|
2182
|
+
return e ? null : /* @__PURE__ */ a(sn, {});
|
|
2149
2183
|
};
|
|
2150
2184
|
//#endregion
|
|
2151
2185
|
//#region node_modules/color2k/dist/index.exports.import.es.mjs
|
|
2152
|
-
function
|
|
2186
|
+
function ln(e, t, n) {
|
|
2153
2187
|
return Math.min(Math.max(e, n), t);
|
|
2154
2188
|
}
|
|
2155
2189
|
var Z = class extends Error {
|
|
@@ -2157,7 +2191,7 @@ var Z = class extends Error {
|
|
|
2157
2191
|
super(`Failed to parse color: "${e}"`);
|
|
2158
2192
|
}
|
|
2159
2193
|
};
|
|
2160
|
-
function
|
|
2194
|
+
function un(e) {
|
|
2161
2195
|
if (typeof e != "string") throw new Z(e);
|
|
2162
2196
|
if (e.trim().toLowerCase() === "transparent") return [
|
|
2163
2197
|
0,
|
|
@@ -2166,52 +2200,52 @@ function nn(e) {
|
|
|
2166
2200
|
0
|
|
2167
2201
|
];
|
|
2168
2202
|
let t = e.trim();
|
|
2169
|
-
t =
|
|
2170
|
-
let n =
|
|
2203
|
+
t = yn.test(e) ? mn(e) : e;
|
|
2204
|
+
let n = hn.exec(t);
|
|
2171
2205
|
if (n) {
|
|
2172
2206
|
let e = Array.from(n).slice(1);
|
|
2173
2207
|
return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
|
|
2174
2208
|
}
|
|
2175
|
-
let r =
|
|
2209
|
+
let r = gn.exec(t);
|
|
2176
2210
|
if (r) {
|
|
2177
2211
|
let e = Array.from(r).slice(1);
|
|
2178
2212
|
return [...e.slice(0, 3).map((e) => parseInt(e, 16)), parseInt(e[3] || "ff", 16) / 255];
|
|
2179
2213
|
}
|
|
2180
|
-
let i =
|
|
2214
|
+
let i = _n.exec(t);
|
|
2181
2215
|
if (i) {
|
|
2182
2216
|
let e = Array.from(i).slice(1);
|
|
2183
2217
|
return [...e.slice(0, 3).map((e) => parseInt(e, 10)), parseFloat(e[3] || "1")];
|
|
2184
2218
|
}
|
|
2185
|
-
let a =
|
|
2219
|
+
let a = vn.exec(t);
|
|
2186
2220
|
if (a) {
|
|
2187
2221
|
let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
|
|
2188
|
-
if (
|
|
2189
|
-
return [...
|
|
2222
|
+
if (ln(0, 100, n) !== n || ln(0, 100, r) !== r) throw new Z(e);
|
|
2223
|
+
return [...xn(t, n, r), Number.isNaN(i) ? 1 : i];
|
|
2190
2224
|
}
|
|
2191
2225
|
throw new Z(e);
|
|
2192
2226
|
}
|
|
2193
|
-
function
|
|
2227
|
+
function dn(e) {
|
|
2194
2228
|
let t = 5381, n = e.length;
|
|
2195
2229
|
for (; n;) t = t * 33 ^ e.charCodeAt(--n);
|
|
2196
2230
|
return (t >>> 0) % 2341;
|
|
2197
2231
|
}
|
|
2198
|
-
var
|
|
2199
|
-
let n =
|
|
2232
|
+
var fn = (e) => parseInt(e.replace(/_/g, ""), 36), pn = "1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e, t) => {
|
|
2233
|
+
let n = fn(t.substring(0, 3)), r = fn(t.substring(3)).toString(16), i = "";
|
|
2200
2234
|
for (let e = 0; e < 6 - r.length; e++) i += "0";
|
|
2201
2235
|
return e[n] = `${i}${r}`, e;
|
|
2202
2236
|
}, {});
|
|
2203
|
-
function
|
|
2204
|
-
let t =
|
|
2237
|
+
function mn(e) {
|
|
2238
|
+
let t = pn[dn(e.toLowerCase().trim())];
|
|
2205
2239
|
if (!t) throw new Z(e);
|
|
2206
2240
|
return `#${t}`;
|
|
2207
2241
|
}
|
|
2208
|
-
var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""),
|
|
2242
|
+
var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), hn = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), gn = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), _n = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), vn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, yn = /^[a-z]+$/i, bn = (e) => Math.round(e * 255), xn = (e, t, n) => {
|
|
2209
2243
|
let r = n / 100;
|
|
2210
2244
|
if (t === 0) return [
|
|
2211
2245
|
r,
|
|
2212
2246
|
r,
|
|
2213
2247
|
r
|
|
2214
|
-
].map(
|
|
2248
|
+
].map(bn);
|
|
2215
2249
|
let i = (e % 360 + 360) % 360 / 60, a = (1 - Math.abs(2 * r - 1)) * (t / 100), o = a * (1 - Math.abs(i % 2 - 1)), s = 0, c = 0, l = 0;
|
|
2216
2250
|
i >= 0 && i < 1 ? (s = a, c = o) : i >= 1 && i < 2 ? (s = o, c = a) : i >= 2 && i < 3 ? (c = a, l = o) : i >= 3 && i < 4 ? (c = o, l = a) : i >= 4 && i < 5 ? (s = o, l = a) : i >= 5 && i < 6 && (s = a, l = o);
|
|
2217
2251
|
let u = r - a / 2;
|
|
@@ -2219,29 +2253,29 @@ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${Q
|
|
|
2219
2253
|
s + u,
|
|
2220
2254
|
c + u,
|
|
2221
2255
|
l + u
|
|
2222
|
-
].map(
|
|
2256
|
+
].map(bn);
|
|
2223
2257
|
};
|
|
2224
|
-
function
|
|
2258
|
+
function Sn(e) {
|
|
2225
2259
|
if (e === "transparent") return 0;
|
|
2226
2260
|
function t(e) {
|
|
2227
2261
|
let t = e / 255;
|
|
2228
2262
|
return t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
|
|
2229
2263
|
}
|
|
2230
|
-
let [n, r, i] =
|
|
2264
|
+
let [n, r, i] = un(e);
|
|
2231
2265
|
return .2126 * t(n) + .7152 * t(r) + .0722 * t(i);
|
|
2232
2266
|
}
|
|
2233
|
-
function
|
|
2234
|
-
return
|
|
2267
|
+
function Cn(e) {
|
|
2268
|
+
return Sn(e) > .179;
|
|
2235
2269
|
}
|
|
2236
2270
|
//#endregion
|
|
2237
2271
|
//#region src/lib/board/Cursors/Cursor.jsx
|
|
2238
|
-
var
|
|
2272
|
+
var wn = G({
|
|
2239
2273
|
display: "flex",
|
|
2240
2274
|
flexDirection: "row",
|
|
2241
2275
|
alignItems: "center",
|
|
2242
2276
|
zIndex: 210,
|
|
2243
2277
|
pointerEvents: "none"
|
|
2244
|
-
}),
|
|
2278
|
+
}), Tn = G({
|
|
2245
2279
|
fontWeight: "bold",
|
|
2246
2280
|
padding: "0 0.5em",
|
|
2247
2281
|
borderRadius: "2px",
|
|
@@ -2252,10 +2286,10 @@ var _n = K({
|
|
|
2252
2286
|
marginTop: "1.7em",
|
|
2253
2287
|
whitespace: "nowrap",
|
|
2254
2288
|
pointerEvents: "none"
|
|
2255
|
-
}),
|
|
2256
|
-
let r =
|
|
2289
|
+
}), En = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
|
|
2290
|
+
let r = Cn(e) ? "#222" : "#EEE";
|
|
2257
2291
|
return /* @__PURE__ */ o("div", {
|
|
2258
|
-
className:
|
|
2292
|
+
className: wn,
|
|
2259
2293
|
children: [/* @__PURE__ */ o("svg", {
|
|
2260
2294
|
version: "1.1",
|
|
2261
2295
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2278,27 +2312,27 @@ var _n = K({
|
|
|
2278
2312
|
color: r,
|
|
2279
2313
|
backgroundColor: e
|
|
2280
2314
|
},
|
|
2281
|
-
className:
|
|
2315
|
+
className: Tn,
|
|
2282
2316
|
children: n
|
|
2283
2317
|
})]
|
|
2284
2318
|
});
|
|
2285
|
-
}),
|
|
2319
|
+
}), Dn = G({
|
|
2286
2320
|
top: 0,
|
|
2287
2321
|
left: 0,
|
|
2288
2322
|
zIndex: 210,
|
|
2289
2323
|
position: "fixed",
|
|
2290
2324
|
pointerEvents: "none"
|
|
2291
|
-
}),
|
|
2292
|
-
className:
|
|
2325
|
+
}), On = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
|
|
2326
|
+
className: Dn,
|
|
2293
2327
|
style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
|
|
2294
|
-
children: /* @__PURE__ */ a(
|
|
2295
|
-
}),
|
|
2296
|
-
let [t] =
|
|
2328
|
+
children: /* @__PURE__ */ a(En, { ...t })
|
|
2329
|
+
}), kn = ({ children: e }) => {
|
|
2330
|
+
let [t] = z((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = B(), [i, s, c, l] = H((e) => [
|
|
2297
2331
|
e.getUser(),
|
|
2298
2332
|
e.getLocalUsers(),
|
|
2299
2333
|
e.cursors,
|
|
2300
2334
|
e.users
|
|
2301
|
-
]), [u, d] =
|
|
2335
|
+
]), [u, d] = H((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
|
|
2302
2336
|
let [r, a] = n(e - f.left, t - f.top);
|
|
2303
2337
|
u(i.id, {
|
|
2304
2338
|
x: r,
|
|
@@ -2315,15 +2349,15 @@ var _n = K({
|
|
|
2315
2349
|
x: n + f.left,
|
|
2316
2350
|
y: i + f.top
|
|
2317
2351
|
};
|
|
2318
|
-
return
|
|
2352
|
+
return pe(o, f) ? /* @__PURE__ */ a(On, {
|
|
2319
2353
|
pos: o,
|
|
2320
2354
|
text: l[e].name,
|
|
2321
2355
|
color: l[e].color
|
|
2322
2356
|
}, e) : null;
|
|
2323
2357
|
})]
|
|
2324
2358
|
});
|
|
2325
|
-
},
|
|
2326
|
-
function
|
|
2359
|
+
}, An = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
|
|
2360
|
+
function jn(e, t = ",") {
|
|
2327
2361
|
let n = 0, r = "", i = 0, a = [];
|
|
2328
2362
|
for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
|
|
2329
2363
|
else if (s === "\"" || s === "'") r = s;
|
|
@@ -2337,10 +2371,10 @@ function wn(e, t = ",") {
|
|
|
2337
2371
|
return o && a.push(o), a;
|
|
2338
2372
|
}
|
|
2339
2373
|
function $(e, t) {
|
|
2340
|
-
return [...e.replace(/\s/g, "").matchAll(
|
|
2374
|
+
return [...e.replace(/\s/g, "").matchAll(An)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
|
|
2341
2375
|
}
|
|
2342
|
-
function
|
|
2343
|
-
let [i, a = "auto"] =
|
|
2376
|
+
function Mn(e, t, n, r) {
|
|
2377
|
+
let [i, a = "auto"] = jn(e, " "), o = r?.width, s = r?.height;
|
|
2344
2378
|
if (i === "cover" || i === "contain") {
|
|
2345
2379
|
if (!o || !s) return [t, n];
|
|
2346
2380
|
let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
|
|
@@ -2349,13 +2383,13 @@ function Tn(e, t, n, r) {
|
|
|
2349
2383
|
let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
|
|
2350
2384
|
return c === null && l === null ? [o || t, s || n] : (c === null && (c = o && s ? l * o / s : t), l === null && (l = o && s ? c * s / o : n), [c, l]);
|
|
2351
2385
|
}
|
|
2352
|
-
function
|
|
2386
|
+
function Nn(e, t, n) {
|
|
2353
2387
|
let r = [
|
|
2354
2388
|
[0, 0],
|
|
2355
2389
|
[e, 0],
|
|
2356
2390
|
[0, t],
|
|
2357
2391
|
[e, t]
|
|
2358
|
-
].map((e) =>
|
|
2392
|
+
].map((e) => fe(e, n)), i = r.map(([e]) => e), a = r.map(([, e]) => e), o = Math.floor(Math.min(...i)) - 2, s = Math.floor(Math.min(...a)) - 2, c = Math.ceil(Math.max(...i)) + 2, l = Math.ceil(Math.max(...a)) + 2, [u, d] = P([o, s], n);
|
|
2359
2393
|
return {
|
|
2360
2394
|
left: o,
|
|
2361
2395
|
top: s,
|
|
@@ -2365,9 +2399,9 @@ function En(e, t, n) {
|
|
|
2365
2399
|
y: d
|
|
2366
2400
|
};
|
|
2367
2401
|
}
|
|
2368
|
-
var
|
|
2369
|
-
function
|
|
2370
|
-
let i =
|
|
2402
|
+
var Pn = (e, t, n) => ((e - t) % n + n) % n;
|
|
2403
|
+
function Fn(e, t, n, r) {
|
|
2404
|
+
let i = Nn(e, t, n), a = Number.isFinite(r) && r > 0 ? r : 512 * 2 ** Math.max(0, Math.ceil(Math.log2(1 / n.scale))), o = Math.floor(i.left / a) - 1, s = Math.floor((i.left + i.width) / a) + 1, c = Math.floor(i.top / a) - 1, l = Math.floor((i.top + i.height) / a) + 1, u = o * a, d = c * a, [f, p] = P([u, d], n);
|
|
2371
2405
|
return {
|
|
2372
2406
|
tiles: Array.from({ length: l - c + 1 }, (e, t) => {
|
|
2373
2407
|
let n = c + t;
|
|
@@ -2389,18 +2423,18 @@ function On(e, t, n, r) {
|
|
|
2389
2423
|
}
|
|
2390
2424
|
//#endregion
|
|
2391
2425
|
//#region src/lib/board/WorldBackground.jsx
|
|
2392
|
-
var
|
|
2426
|
+
var In = {
|
|
2393
2427
|
position: "absolute",
|
|
2394
2428
|
inset: 0,
|
|
2395
2429
|
pointerEvents: "none"
|
|
2396
2430
|
};
|
|
2397
|
-
function
|
|
2398
|
-
let [r, i] =
|
|
2431
|
+
function Ln({ style: t, tileSizeOverride: n }) {
|
|
2432
|
+
let [r, i] = z((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
|
|
2399
2433
|
color: "#333",
|
|
2400
2434
|
layers: []
|
|
2401
2435
|
}), [f, p] = e.useState({});
|
|
2402
2436
|
e.useLayoutEffect(() => {
|
|
2403
|
-
let e = getComputedStyle(l.current), t = (t) =>
|
|
2437
|
+
let e = getComputedStyle(l.current), t = (t) => jn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
|
|
2404
2438
|
d({
|
|
2405
2439
|
color: e.backgroundColor,
|
|
2406
2440
|
layers: t("backgroundImage").map((e, t) => ({
|
|
@@ -2434,19 +2468,19 @@ function An({ style: t, tileSizeOverride: n }) {
|
|
|
2434
2468
|
e = !1;
|
|
2435
2469
|
};
|
|
2436
2470
|
}, [u.layers]);
|
|
2437
|
-
let m =
|
|
2438
|
-
let [t, n] =
|
|
2471
|
+
let m = Fn(s, c, r, n), h = u.layers.map((e) => {
|
|
2472
|
+
let [t, n] = Mn(e.size, s, c, f[e.image]), r = ["repeat", "repeat-x"].includes(e.repeat) || e.repeat.startsWith("repeat "), i = ["repeat", "repeat-y"].includes(e.repeat) || e.repeat.endsWith(" repeat"), a = $(e.x, s - t), o = $(e.y, c - n);
|
|
2439
2473
|
return {
|
|
2440
2474
|
...e,
|
|
2441
2475
|
size: `${t}px ${n}px`,
|
|
2442
|
-
position: (e, s) => `${r && t ?
|
|
2476
|
+
position: (e, s) => `${r && t ? Pn(a, e, t) : a - e}px ${i && n ? Pn(o, s, n) : o - s}px`
|
|
2443
2477
|
};
|
|
2444
2478
|
});
|
|
2445
2479
|
return /* @__PURE__ */ o("div", {
|
|
2446
2480
|
className: "world-background",
|
|
2447
2481
|
"aria-hidden": "true",
|
|
2448
2482
|
style: {
|
|
2449
|
-
...
|
|
2483
|
+
...In,
|
|
2450
2484
|
overflow: "hidden",
|
|
2451
2485
|
backgroundColor: u.color
|
|
2452
2486
|
},
|
|
@@ -2489,12 +2523,12 @@ function An({ style: t, tileSizeOverride: n }) {
|
|
|
2489
2523
|
}
|
|
2490
2524
|
//#endregion
|
|
2491
2525
|
//#region src/lib/board/Board.jsx
|
|
2492
|
-
var
|
|
2526
|
+
var Rn = ({ children: e }) => e, zn = {}, Bn = {
|
|
2493
2527
|
overflow: "hidden",
|
|
2494
2528
|
position: "absolute",
|
|
2495
2529
|
inset: 0
|
|
2496
|
-
},
|
|
2497
|
-
let f = e.useRef(null), [m, h] =
|
|
2530
|
+
}, Vn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = zn, boardSize: s = Ae, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = Rn }) => {
|
|
2531
|
+
let f = e.useRef(null), [m, h] = z((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = z((e) => [
|
|
2498
2532
|
e.boardState.translateX,
|
|
2499
2533
|
e.boardState.translateY,
|
|
2500
2534
|
e.boardState.scale,
|
|
@@ -2536,8 +2570,8 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
|
|
|
2536
2570
|
}, [h, b]), p(f, () => {
|
|
2537
2571
|
f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
|
|
2538
2572
|
});
|
|
2539
|
-
let S =
|
|
2540
|
-
...
|
|
2573
|
+
let S = G({
|
|
2574
|
+
...Bn,
|
|
2541
2575
|
...r
|
|
2542
2576
|
});
|
|
2543
2577
|
return /* @__PURE__ */ o("div", {
|
|
@@ -2545,15 +2579,15 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
|
|
|
2545
2579
|
id: m,
|
|
2546
2580
|
className: `sync-board ${S}`,
|
|
2547
2581
|
children: [
|
|
2548
|
-
/* @__PURE__ */ a(
|
|
2582
|
+
/* @__PURE__ */ a(Ln, {
|
|
2549
2583
|
style: n,
|
|
2550
2584
|
tileSizeOverride: c
|
|
2551
2585
|
}),
|
|
2552
|
-
/* @__PURE__ */ a(
|
|
2586
|
+
/* @__PURE__ */ a(kn, { children: /* @__PURE__ */ a($t, {
|
|
2553
2587
|
moveFirst: t,
|
|
2554
|
-
children: /* @__PURE__ */ a(
|
|
2588
|
+
children: /* @__PURE__ */ a(an, {
|
|
2555
2589
|
moveFirst: t,
|
|
2556
|
-
children: /* @__PURE__ */ a(
|
|
2590
|
+
children: /* @__PURE__ */ a(en, {
|
|
2557
2591
|
moveFirst: t,
|
|
2558
2592
|
children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
|
|
2559
2593
|
onContextMenu: (e) => {
|
|
@@ -2561,7 +2595,7 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
|
|
|
2561
2595
|
},
|
|
2562
2596
|
style: x,
|
|
2563
2597
|
className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
|
|
2564
|
-
children: [/* @__PURE__ */ a(
|
|
2598
|
+
children: [/* @__PURE__ */ a(Xt, {}), /* @__PURE__ */ a("div", {
|
|
2565
2599
|
style: { pointerEvents: "auto" },
|
|
2566
2600
|
children: l
|
|
2567
2601
|
})]
|
|
@@ -2569,14 +2603,79 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
|
|
|
2569
2603
|
})
|
|
2570
2604
|
})
|
|
2571
2605
|
}) }),
|
|
2572
|
-
/* @__PURE__ */ a(
|
|
2606
|
+
/* @__PURE__ */ a(cn, {})
|
|
2573
2607
|
]
|
|
2574
2608
|
});
|
|
2609
|
+
}, Hn = ({ grid: t, item: n, uid: r }) => {
|
|
2610
|
+
let i = e.useId(), s = F(r, n.id), [c, l] = e.useState(null);
|
|
2611
|
+
if (e.useLayoutEffect(() => {
|
|
2612
|
+
if (!s) return;
|
|
2613
|
+
let e = () => l(se(s));
|
|
2614
|
+
e();
|
|
2615
|
+
let t = new ResizeObserver(e);
|
|
2616
|
+
return t.observe(s), () => t.disconnect();
|
|
2617
|
+
}, [s]), !c) return null;
|
|
2618
|
+
let { type: u, size: d, offset: f, color: p, opacity: m } = t, { width: h, height: g, centers: _ } = ce(t), v = Math.max(360, Math.min(d * 12, 960)), y = n.x + c.width / 2 - v / 2, b = n.y + c.height / 2 - v / 2, x = [];
|
|
2619
|
+
if (u !== "grid") {
|
|
2620
|
+
let e = u === "hexH" ? Math.PI / 6 : 0;
|
|
2621
|
+
for (let t = -1; t <= 1; t++) for (let n = -1; n <= 1; n++) _.forEach(([r, i], o) => {
|
|
2622
|
+
let s = Array.from({ length: 6 }, (a, o) => {
|
|
2623
|
+
let s = e + o * Math.PI / 3;
|
|
2624
|
+
return `${n * h + r + d * Math.cos(s)},${t * g + i + d * Math.sin(s)}`;
|
|
2625
|
+
}).join(" ");
|
|
2626
|
+
x.push(/* @__PURE__ */ a("polygon", { points: s }, `${t}:${n}:${o}`));
|
|
2627
|
+
});
|
|
2628
|
+
}
|
|
2629
|
+
return /* @__PURE__ */ o("svg", {
|
|
2630
|
+
"data-grid-item": n.id,
|
|
2631
|
+
"data-grid-type": u,
|
|
2632
|
+
width: v,
|
|
2633
|
+
height: v,
|
|
2634
|
+
style: {
|
|
2635
|
+
position: "absolute",
|
|
2636
|
+
left: 0,
|
|
2637
|
+
top: 0,
|
|
2638
|
+
transform: `translate3d(${y}px, ${b}px, 0)`,
|
|
2639
|
+
willChange: "transform",
|
|
2640
|
+
pointerEvents: "none",
|
|
2641
|
+
zIndex: n.moving ? ((n.layer ?? 0) + 4) * 10 + 101 : 90,
|
|
2642
|
+
opacity: m,
|
|
2643
|
+
maskImage: "radial-gradient(circle, #000 35%, transparent 72%)"
|
|
2644
|
+
},
|
|
2645
|
+
children: [/* @__PURE__ */ a("defs", { children: /* @__PURE__ */ a("pattern", {
|
|
2646
|
+
id: i,
|
|
2647
|
+
patternUnits: "userSpaceOnUse",
|
|
2648
|
+
width: h,
|
|
2649
|
+
height: g,
|
|
2650
|
+
x: f.x - y,
|
|
2651
|
+
y: f.y - b,
|
|
2652
|
+
children: /* @__PURE__ */ a("g", {
|
|
2653
|
+
fill: "none",
|
|
2654
|
+
stroke: p,
|
|
2655
|
+
strokeWidth: "1",
|
|
2656
|
+
children: u === "grid" ? /* @__PURE__ */ a("path", { d: `M0 ${g}V0H${h}` }) : x
|
|
2657
|
+
})
|
|
2658
|
+
}) }), /* @__PURE__ */ a("rect", {
|
|
2659
|
+
width: "100%",
|
|
2660
|
+
height: "100%",
|
|
2661
|
+
fill: `url(#${i})`
|
|
2662
|
+
})]
|
|
2663
|
+
});
|
|
2664
|
+
}, Un = ({ preview: e = !1, enabled: t = !0 }) => {
|
|
2665
|
+
let n = Oe(), r = Le(), [i] = tt(), { movingItems: o } = nt(), s = z((e) => e.config.uid), c = o || n.some((e) => e.moving);
|
|
2666
|
+
return !t || !e && !c ? null : n.filter((e) => r.includes(e.id)).map((t) => {
|
|
2667
|
+
let n = j(t.grid), r = oe(i.grid, t.grid);
|
|
2668
|
+
return !r || !(e && n) && (!c || !r.show) ? null : /* @__PURE__ */ a(Hn, {
|
|
2669
|
+
grid: r,
|
|
2670
|
+
item: t,
|
|
2671
|
+
uid: s
|
|
2672
|
+
}, t.id);
|
|
2673
|
+
});
|
|
2575
2674
|
};
|
|
2576
2675
|
//#endregion
|
|
2577
2676
|
//#region src/lib/index.js
|
|
2578
|
-
|
|
2677
|
+
St(e.createElement);
|
|
2579
2678
|
//#endregion
|
|
2580
|
-
export {
|
|
2679
|
+
export { Vn as Board, Un as BoardGridOverlay, ft as BoardWrapper, pt as RoomWrapper, Ke as useAvailableActions, tt as useBoardConfig, B as useBoardPosition, nt as useBoardState, ke as useDebouncedItems, Re as useGetSelectedItems, V as useItemActions, He as useItemInteraction, Oe as useItems, ut as useMessage, Le as useSelectedItems, qe as useSelectionBox, rt as useSessionInfo, et as useUsers, k as useWire };
|
|
2581
2680
|
|
|
2582
2681
|
//# sourceMappingURL=react-sync-board.js.map
|