react-sync-board 1.4.3 → 1.4.5
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 +560 -461
- 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,35 +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
|
-
}, me = /* @__PURE__ */ new Set([
|
|
226
|
-
"grid",
|
|
227
|
-
"hexH",
|
|
228
|
-
"hexV"
|
|
229
|
-
]), he = (e, t) => t && me.has(t.type) ? t : e && me.has(e.type) ? e : null, ge = /* @__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("."), _e = () => ge[Math.floor(Math.random() * ge.length)], F = ({ 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) => {
|
|
230
276
|
a({ ready: !1 });
|
|
231
277
|
let c = [];
|
|
232
278
|
(async () => {
|
|
@@ -250,7 +296,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
250
296
|
return d.unsub = () => {
|
|
251
297
|
c.forEach((e) => e());
|
|
252
298
|
}, d;
|
|
253
|
-
},
|
|
299
|
+
}, xe = e.createContext(), Se = (e, t) => ({
|
|
254
300
|
items: {},
|
|
255
301
|
getItems: () => t().items,
|
|
256
302
|
setItems: (t) => e({ items: t }),
|
|
@@ -273,7 +319,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
273
319
|
});
|
|
274
320
|
}), { items: r };
|
|
275
321
|
})
|
|
276
|
-
}),
|
|
322
|
+
}), Ce = (e, t) => ({
|
|
277
323
|
itemIds: [],
|
|
278
324
|
setItemIds: (t) => e({ itemIds: t }),
|
|
279
325
|
getItemIds: () => t().itemIds,
|
|
@@ -290,7 +336,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
290
336
|
return r[t] = n, { itemIds: r };
|
|
291
337
|
}),
|
|
292
338
|
updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
|
|
293
|
-
}),
|
|
339
|
+
}), we = (e, t) => ({
|
|
294
340
|
removeItemsById: (t) => e((e) => ({
|
|
295
341
|
itemIds: e.itemIds.filter((e) => !t.includes(e)),
|
|
296
342
|
items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
|
|
@@ -317,7 +363,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
317
363
|
itemIds: r
|
|
318
364
|
};
|
|
319
365
|
})
|
|
320
|
-
}),
|
|
366
|
+
}), Te = (e, t) => ({
|
|
321
367
|
boardConfig: {},
|
|
322
368
|
getBoardConfig: () => t().boardConfig,
|
|
323
369
|
setBoardConfig: (t) => e({ boardConfig: t }),
|
|
@@ -325,7 +371,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
325
371
|
...e.boardConfig,
|
|
326
372
|
...t
|
|
327
373
|
} }))
|
|
328
|
-
}),
|
|
374
|
+
}), Ee = (e, t) => ({
|
|
329
375
|
session: {},
|
|
330
376
|
getSessionInfo: () => t().session,
|
|
331
377
|
setSessionInfo: (t) => e({ session: t }),
|
|
@@ -333,34 +379,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
333
379
|
...e.session,
|
|
334
380
|
...t
|
|
335
381
|
} }))
|
|
336
|
-
}),
|
|
337
|
-
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({
|
|
338
384
|
wire: i,
|
|
339
385
|
storeName: t,
|
|
340
386
|
defaultValue: r
|
|
341
387
|
}, (...e) => ({
|
|
342
|
-
...ye(...e),
|
|
343
|
-
...be(...e),
|
|
344
|
-
...xe(...e),
|
|
345
388
|
...Se(...e),
|
|
346
|
-
...Ce(...e)
|
|
389
|
+
...Ce(...e),
|
|
390
|
+
...we(...e),
|
|
391
|
+
...Te(...e),
|
|
392
|
+
...Ee(...e)
|
|
347
393
|
}))));
|
|
348
394
|
return e.useEffect(() => {
|
|
349
395
|
let e = l.subscribe((t) => {
|
|
350
396
|
t.ready && (e(), c(!0));
|
|
351
397
|
});
|
|
352
|
-
}, [l]), o ? /* @__PURE__ */ a(
|
|
398
|
+
}, [l]), o ? /* @__PURE__ */ a(xe.Provider, {
|
|
353
399
|
value: l,
|
|
354
400
|
children: n
|
|
355
401
|
}) : null;
|
|
356
|
-
},
|
|
357
|
-
let t = r(
|
|
402
|
+
}, R = (e) => {
|
|
403
|
+
let t = r(xe);
|
|
358
404
|
return c(t, e, l);
|
|
359
|
-
},
|
|
360
|
-
let [t, n] =
|
|
405
|
+
}, Oe = () => {
|
|
406
|
+
let [t, n] = R((e) => [e.itemIds, e.items]);
|
|
361
407
|
return e.useMemo(() => t.map((e) => n[e]), [t, n]);
|
|
362
|
-
},
|
|
363
|
-
let [t, n, r] =
|
|
408
|
+
}, ke = () => {
|
|
409
|
+
let [t, n, r] = R((e) => [
|
|
364
410
|
e.items,
|
|
365
411
|
e.itemIds,
|
|
366
412
|
e.getItemList
|
|
@@ -375,7 +421,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
375
421
|
n,
|
|
376
422
|
r
|
|
377
423
|
]), i;
|
|
378
|
-
},
|
|
424
|
+
}, Ae = 5e4, je = e.createContext(), Me = (e, t) => ({
|
|
379
425
|
config: {
|
|
380
426
|
itemTemplates: {},
|
|
381
427
|
actions: {},
|
|
@@ -386,14 +432,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
386
432
|
radius: 0
|
|
387
433
|
},
|
|
388
434
|
boardWrapperRect: {},
|
|
389
|
-
boardSize:
|
|
435
|
+
boardSize: Ae
|
|
390
436
|
},
|
|
391
437
|
updateConfiguration: (t) => e((e) => ({ config: {
|
|
392
438
|
...e.config,
|
|
393
439
|
...t
|
|
394
440
|
} })),
|
|
395
441
|
getConfiguration: () => t().config
|
|
396
|
-
}),
|
|
442
|
+
}), Ne = (e, t) => ({
|
|
397
443
|
boardState: {
|
|
398
444
|
movingItems: !1,
|
|
399
445
|
selecting: !1,
|
|
@@ -409,7 +455,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
409
455
|
...t
|
|
410
456
|
} })),
|
|
411
457
|
getBoardState: () => t().boardState
|
|
412
|
-
}),
|
|
458
|
+
}), Pe = (e, t) => ({
|
|
413
459
|
interactions: {},
|
|
414
460
|
getInteractions: () => t().interactions,
|
|
415
461
|
register: (t, n) => e((e) => {
|
|
@@ -431,7 +477,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
431
477
|
setTimeout(() => e(n), 0);
|
|
432
478
|
});
|
|
433
479
|
}
|
|
434
|
-
}),
|
|
480
|
+
}), Fe = (e, t) => ({
|
|
435
481
|
selection: [],
|
|
436
482
|
setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
|
|
437
483
|
getSelection: () => t().selection,
|
|
@@ -447,34 +493,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
447
493
|
let n = e.selectionBox;
|
|
448
494
|
return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
|
|
449
495
|
})
|
|
450
|
-
}),
|
|
496
|
+
}), Ie = ({ children: t }) => {
|
|
451
497
|
let [n] = e.useState(() => s((...e) => ({
|
|
452
|
-
...
|
|
453
|
-
...
|
|
454
|
-
...
|
|
455
|
-
...
|
|
498
|
+
...Me(...e),
|
|
499
|
+
...Ne(...e),
|
|
500
|
+
...Pe(...e),
|
|
501
|
+
...Fe(...e)
|
|
456
502
|
})));
|
|
457
|
-
return /* @__PURE__ */ a(
|
|
503
|
+
return /* @__PURE__ */ a(je.Provider, {
|
|
458
504
|
value: n,
|
|
459
505
|
children: t
|
|
460
506
|
});
|
|
461
|
-
},
|
|
462
|
-
let t = r(
|
|
507
|
+
}, z = (e) => {
|
|
508
|
+
let t = r(je);
|
|
463
509
|
return c(t, e, l);
|
|
464
|
-
},
|
|
465
|
-
let [e] =
|
|
510
|
+
}, Le = () => {
|
|
511
|
+
let [e] = z((e) => [e.selection]);
|
|
466
512
|
return e;
|
|
467
|
-
},
|
|
468
|
-
let [e] =
|
|
513
|
+
}, Re = () => {
|
|
514
|
+
let [e] = z((e) => [e.getSelection]);
|
|
469
515
|
return e;
|
|
470
|
-
},
|
|
471
|
-
let [t, n, r, i, a] =
|
|
516
|
+
}, ze = 1e3, Be = .8, Ve = !1, B = () => {
|
|
517
|
+
let [t, n, r, i, a] = z((e) => [
|
|
472
518
|
e.getBoardState,
|
|
473
519
|
e.updateBoardState,
|
|
474
520
|
e.config.itemExtent,
|
|
475
521
|
e.getConfiguration,
|
|
476
522
|
e.updateConfiguration
|
|
477
|
-
]), o = e.useRef([.15, 5]), [s] =
|
|
523
|
+
]), o = e.useRef([.15, 5]), [s] = R((e) => [e.getItemList]), c = e.useCallback(() => {
|
|
478
524
|
let { translateX: e, translateY: n, scale: r, rotate: i } = t();
|
|
479
525
|
return {
|
|
480
526
|
translateX: e,
|
|
@@ -482,9 +528,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
482
528
|
scale: r,
|
|
483
529
|
rotate: i
|
|
484
530
|
};
|
|
485
|
-
}, [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) => {
|
|
486
532
|
let { scale: r, rotate: i } = t();
|
|
487
|
-
return
|
|
533
|
+
return fe([e, n], {
|
|
488
534
|
translateX: 0,
|
|
489
535
|
translateY: 0,
|
|
490
536
|
rotate: i,
|
|
@@ -495,9 +541,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
495
541
|
...r,
|
|
496
542
|
...e(r)
|
|
497
543
|
};
|
|
498
|
-
|
|
544
|
+
Ve && console.log("New expected values: ", i, a, o, s);
|
|
499
545
|
let c = p(o), l = i, u = a;
|
|
500
|
-
|
|
546
|
+
Ve && console.log("New fixed values: ", l, u, c, s), n({
|
|
501
547
|
translateX: Number.isFinite(l) ? l : r.translateX,
|
|
502
548
|
translateY: Number.isFinite(u) ? u : r.translateY,
|
|
503
549
|
scale: Number.isFinite(c) ? c : p(1),
|
|
@@ -542,7 +588,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
542
588
|
e || 0,
|
|
543
589
|
n || 0,
|
|
544
590
|
r || 2e3
|
|
545
|
-
], 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], {
|
|
546
592
|
translateX: o.width / 2,
|
|
547
593
|
translateY: o.height / 2,
|
|
548
594
|
scale: f,
|
|
@@ -567,7 +613,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
567
613
|
};
|
|
568
614
|
}, [l, i]), y = e.useCallback(() => {
|
|
569
615
|
let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
|
|
570
|
-
let r =
|
|
616
|
+
let r = F(t, n.id);
|
|
571
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;
|
|
572
618
|
}, {
|
|
573
619
|
left: Infinity,
|
|
@@ -579,7 +625,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
579
625
|
a({ itemExtent: {
|
|
580
626
|
x: 0,
|
|
581
627
|
y: 0,
|
|
582
|
-
radius:
|
|
628
|
+
radius: ze
|
|
583
629
|
} });
|
|
584
630
|
return;
|
|
585
631
|
}
|
|
@@ -587,7 +633,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
587
633
|
x: (n.right + n.left) / 2,
|
|
588
634
|
y: (n.bottom + n.top) / 2
|
|
589
635
|
};
|
|
590
|
-
r.radius = Math.max(
|
|
636
|
+
r.radius = Math.max(ue([r.x, r.y], [n.left, n.top]), ze), a({ itemExtent: r });
|
|
591
637
|
}, [
|
|
592
638
|
i,
|
|
593
639
|
s,
|
|
@@ -606,7 +652,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
606
652
|
]), x = u(() => y(), [y], 200);
|
|
607
653
|
return e.useEffect(() => {
|
|
608
654
|
window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
|
|
609
|
-
|
|
655
|
+
Ve = !0;
|
|
610
656
|
};
|
|
611
657
|
}, [i, y]), {
|
|
612
658
|
setDim: m,
|
|
@@ -622,8 +668,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
622
668
|
fromWrapperToBoard: l,
|
|
623
669
|
fromBoardToWrapper: d
|
|
624
670
|
};
|
|
625
|
-
},
|
|
626
|
-
let [n, r, i] =
|
|
671
|
+
}, He = (t) => {
|
|
672
|
+
let [n, r, i] = z(({ register: e, unregister: t, callInteractions: n }) => [
|
|
627
673
|
e,
|
|
628
674
|
t,
|
|
629
675
|
n
|
|
@@ -641,167 +687,168 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
641
687
|
}, [i, t])
|
|
642
688
|
};
|
|
643
689
|
}, V = () => {
|
|
644
|
-
let { call: t } =
|
|
690
|
+
let { call: t } = He("place"), { call: n } = He("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = z((e) => [
|
|
645
691
|
e.clear,
|
|
646
692
|
e.reverse,
|
|
647
693
|
e.unselect,
|
|
648
694
|
e.getConfiguration
|
|
649
|
-
]), {
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
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) => {
|
|
660
707
|
let r = t;
|
|
661
708
|
typeof t == "object" && (r = () => t);
|
|
662
|
-
let a =
|
|
709
|
+
let a = d().filter((t) => e.includes(t)), o = u(), s = a.map((e) => {
|
|
663
710
|
let t = o[e];
|
|
664
711
|
return n ? [e, r(t)] : [e, r({ ...t })];
|
|
665
712
|
}).filter(([, e]) => e);
|
|
666
713
|
if (s.length === 0) return;
|
|
667
714
|
let c = Object.fromEntries(s);
|
|
668
|
-
|
|
715
|
+
p(c, n), i();
|
|
669
716
|
}, [
|
|
717
|
+
d,
|
|
670
718
|
u,
|
|
671
|
-
l,
|
|
672
719
|
i,
|
|
673
|
-
|
|
674
|
-
]),
|
|
675
|
-
|
|
720
|
+
p
|
|
721
|
+
]), b = e.useCallback((e) => {
|
|
722
|
+
v(e), a(), i();
|
|
676
723
|
}, [
|
|
677
724
|
a,
|
|
678
|
-
|
|
725
|
+
v,
|
|
679
726
|
i
|
|
680
|
-
]),
|
|
681
|
-
|
|
682
|
-
}, [
|
|
683
|
-
|
|
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);
|
|
684
731
|
}, [
|
|
732
|
+
d,
|
|
685
733
|
u,
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
}, [u, d]), C = e.useCallback((e, t) => {
|
|
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) => {
|
|
692
739
|
let { uid: n } = c();
|
|
693
|
-
|
|
694
|
-
let r =
|
|
740
|
+
y(e, (e) => {
|
|
741
|
+
let r = F(n, e.id);
|
|
695
742
|
if (!r) return;
|
|
696
|
-
let i =
|
|
697
|
-
if (i) return
|
|
743
|
+
let i = ae(t, e.grid);
|
|
744
|
+
if (i) return le({
|
|
698
745
|
x: e.x,
|
|
699
746
|
y: e.y,
|
|
700
|
-
|
|
701
|
-
height: r.clientHeight
|
|
747
|
+
...se(r)
|
|
702
748
|
}, i);
|
|
703
749
|
}, !0);
|
|
704
|
-
}, [c,
|
|
705
|
-
let
|
|
706
|
-
|
|
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();
|
|
707
753
|
}, [
|
|
708
|
-
|
|
754
|
+
y,
|
|
709
755
|
t,
|
|
710
|
-
u,
|
|
711
756
|
l,
|
|
712
|
-
|
|
757
|
+
d,
|
|
758
|
+
u,
|
|
713
759
|
C,
|
|
760
|
+
w,
|
|
714
761
|
i
|
|
715
762
|
]), ee = e.useCallback((e) => {
|
|
716
|
-
|
|
717
|
-
}, [
|
|
718
|
-
let t =
|
|
719
|
-
|
|
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();
|
|
720
767
|
}, [
|
|
721
|
-
|
|
768
|
+
d,
|
|
722
769
|
o,
|
|
723
|
-
|
|
724
|
-
]),
|
|
725
|
-
let n =
|
|
770
|
+
f
|
|
771
|
+
]), te = e.useCallback((e, t) => {
|
|
772
|
+
let n = u(), r = Object.fromEntries(t.map((t, r) => {
|
|
726
773
|
let i = n[e[r]];
|
|
727
774
|
return [t, {
|
|
728
775
|
x: i.x,
|
|
729
776
|
y: i.y
|
|
730
777
|
}];
|
|
731
778
|
}));
|
|
732
|
-
|
|
733
|
-
let i = Object.fromEntries(e.map((e, n) => [e, t[n]])), a =
|
|
734
|
-
|
|
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);
|
|
735
782
|
}, [
|
|
736
|
-
l,
|
|
737
|
-
v,
|
|
738
783
|
u,
|
|
739
|
-
|
|
784
|
+
y,
|
|
785
|
+
d,
|
|
786
|
+
f
|
|
740
787
|
]), D = e.useCallback((e, t) => {
|
|
741
788
|
let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
|
|
742
789
|
...e,
|
|
743
790
|
x: n.x + 2 * t,
|
|
744
791
|
y: n.y + 2 * t
|
|
745
792
|
} : e);
|
|
746
|
-
|
|
747
|
-
|
|
793
|
+
_(i, t), requestAnimationFrame(() => {
|
|
794
|
+
T(e.map(({ id: e }) => e));
|
|
748
795
|
});
|
|
749
796
|
}, [
|
|
750
797
|
r,
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
]),
|
|
798
|
+
_,
|
|
799
|
+
T
|
|
800
|
+
]), O = e.useCallback((e, t) => {
|
|
754
801
|
D([e], t);
|
|
755
|
-
}, [D]),
|
|
756
|
-
s(e),
|
|
802
|
+
}, [D]), ne = e.useCallback((e) => {
|
|
803
|
+
s(e), h(e), n(e);
|
|
757
804
|
}, [
|
|
758
805
|
s,
|
|
759
|
-
|
|
806
|
+
h,
|
|
760
807
|
n
|
|
761
|
-
]),
|
|
762
|
-
let t =
|
|
808
|
+
]), re = e.useCallback((e) => {
|
|
809
|
+
let t = u();
|
|
763
810
|
return e.map((e) => t[e]);
|
|
764
|
-
}, [
|
|
811
|
+
}, [u]);
|
|
765
812
|
return {
|
|
766
|
-
putItemsOnTop:
|
|
767
|
-
batchUpdateItems:
|
|
813
|
+
putItemsOnTop: C,
|
|
814
|
+
batchUpdateItems: y,
|
|
768
815
|
updateItemOrder: ee,
|
|
769
|
-
moveItems:
|
|
770
|
-
placeItems:
|
|
771
|
-
updateItem:
|
|
772
|
-
swapItems:
|
|
773
|
-
reverseItemsOrder:
|
|
774
|
-
setItemList:
|
|
775
|
-
pushItem:
|
|
816
|
+
moveItems: S,
|
|
817
|
+
placeItems: T,
|
|
818
|
+
updateItem: x,
|
|
819
|
+
swapItems: te,
|
|
820
|
+
reverseItemsOrder: E,
|
|
821
|
+
setItemList: b,
|
|
822
|
+
pushItem: O,
|
|
776
823
|
pushItems: D,
|
|
777
|
-
removeItems:
|
|
778
|
-
getItemList:
|
|
824
|
+
removeItems: ne,
|
|
825
|
+
getItemList: g,
|
|
779
826
|
findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
|
|
780
827
|
if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
|
|
781
|
-
let a =
|
|
828
|
+
let a = N(e, "item");
|
|
782
829
|
if (a) {
|
|
783
|
-
if (
|
|
784
|
-
if (!i &&
|
|
785
|
-
if (
|
|
786
|
-
let e =
|
|
787
|
-
let a =
|
|
788
|
-
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({
|
|
789
836
|
x: t,
|
|
790
837
|
y: n
|
|
791
838
|
}, o) && e.unshift(a), e;
|
|
792
839
|
}, []);
|
|
793
840
|
for (let e = 0; e < o.length; e += 1) {
|
|
794
841
|
let t = o[e];
|
|
795
|
-
if (t !== a && (i || !
|
|
842
|
+
if (t !== a && (i || !M(t, "locked"))) return t;
|
|
796
843
|
}
|
|
797
844
|
return null;
|
|
798
845
|
}
|
|
799
846
|
}
|
|
800
847
|
return a;
|
|
801
|
-
}, [c,
|
|
802
|
-
getItems:
|
|
848
|
+
}, [c, d]),
|
|
849
|
+
getItems: re
|
|
803
850
|
};
|
|
804
|
-
},
|
|
851
|
+
}, Ue = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
805
852
|
t.exports = function e(t, n) {
|
|
806
853
|
if (t === n) return !0;
|
|
807
854
|
if (t && n && typeof t == "object" && typeof n == "object") {
|
|
@@ -841,17 +888,17 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
841
888
|
}
|
|
842
889
|
return t !== t && n !== n;
|
|
843
890
|
};
|
|
844
|
-
})))(), 1),
|
|
891
|
+
})))(), 1), We = (e, t) => {
|
|
845
892
|
if (e.type in t) {
|
|
846
893
|
let n = t[e.type].defaultActions;
|
|
847
894
|
return typeof n == "function" ? n(e) : n;
|
|
848
895
|
}
|
|
849
896
|
return [];
|
|
850
|
-
},
|
|
851
|
-
let { actions: n =
|
|
897
|
+
}, Ge = (e, t) => {
|
|
898
|
+
let { actions: n = We(e, t) } = e;
|
|
852
899
|
return n.map((e) => typeof e == "string" ? { name: e } : e);
|
|
853
|
-
},
|
|
854
|
-
let [t, r] =
|
|
900
|
+
}, Ke = () => {
|
|
901
|
+
let [t, r] = R((e) => [e.items, e.getItems]), [i, a, o] = z((e) => [
|
|
855
902
|
e.config.itemTemplates,
|
|
856
903
|
e.selection,
|
|
857
904
|
e.getSelection
|
|
@@ -869,9 +916,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
869
916
|
if (e.length > 0) {
|
|
870
917
|
if (!l.current) return;
|
|
871
918
|
let e = t.reduce((e, t) => {
|
|
872
|
-
let n =
|
|
873
|
-
return e.filter((e) => n.some((t) => (0,
|
|
874
|
-
},
|
|
919
|
+
let n = Ge(t, i);
|
|
920
|
+
return e.filter((e) => n.some((t) => (0, Ue.default)(e, t)));
|
|
921
|
+
}, Ge(t[0], i));
|
|
875
922
|
u(() => {
|
|
876
923
|
c(e);
|
|
877
924
|
});
|
|
@@ -884,28 +931,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
884
931
|
a,
|
|
885
932
|
p
|
|
886
933
|
], 100), { availableActions: s };
|
|
887
|
-
},
|
|
888
|
-
let [e] =
|
|
934
|
+
}, qe = () => {
|
|
935
|
+
let [e] = z((e) => [e.selectionBox]);
|
|
889
936
|
return e;
|
|
890
|
-
},
|
|
937
|
+
}, Je = e.createContext(), Ye = (e) => {
|
|
891
938
|
localStorage.setItem("user", JSON.stringify(e));
|
|
892
|
-
},
|
|
939
|
+
}, Xe = () => {
|
|
893
940
|
if (localStorage.user) {
|
|
894
941
|
let e = {
|
|
895
942
|
name: "Player",
|
|
896
|
-
color:
|
|
943
|
+
color: be(),
|
|
897
944
|
uid: w(),
|
|
898
945
|
...JSON.parse(localStorage.user)
|
|
899
946
|
};
|
|
900
|
-
return
|
|
947
|
+
return Ye(e), e;
|
|
901
948
|
}
|
|
902
949
|
let e = {
|
|
903
950
|
name: "Player",
|
|
904
|
-
color:
|
|
951
|
+
color: be(),
|
|
905
952
|
uid: w()
|
|
906
953
|
};
|
|
907
|
-
return
|
|
908
|
-
},
|
|
954
|
+
return Ye(e), e;
|
|
955
|
+
}, Ze = (e) => (t, n) => ({
|
|
909
956
|
isSpaceMaster: !1,
|
|
910
957
|
users: {},
|
|
911
958
|
getUser: () => n().users[e],
|
|
@@ -928,7 +975,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
928
975
|
id: r,
|
|
929
976
|
uid: t.users[r].uid
|
|
930
977
|
};
|
|
931
|
-
return a.id === e &&
|
|
978
|
+
return a.id === e && Ye(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
|
|
932
979
|
...t.users,
|
|
933
980
|
[r]: a
|
|
934
981
|
} };
|
|
@@ -951,7 +998,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
951
998
|
e < i.timestamp && (i.id = t, i.timestamp = e);
|
|
952
999
|
}), t({ isSpaceMaster: i.id === e });
|
|
953
1000
|
}
|
|
954
|
-
}),
|
|
1001
|
+
}), Qe = (e) => ({
|
|
955
1002
|
cursors: {},
|
|
956
1003
|
moveCursor: (t, n) => e((e) => ({ cursors: {
|
|
957
1004
|
...e.cursors,
|
|
@@ -961,12 +1008,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
961
1008
|
let n = { ...e.cursors };
|
|
962
1009
|
return delete n[t], { cursors: n };
|
|
963
1010
|
})
|
|
964
|
-
}),
|
|
1011
|
+
}), $e = ({ storeName: t, children: n }) => {
|
|
965
1012
|
let { wire: r, isMaster: i } = k("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
|
|
966
1013
|
return e.useEffect(() => {
|
|
967
1014
|
let e = !0, n = [];
|
|
968
1015
|
if (!o && !d.current) return d.current = !0, (() => {
|
|
969
|
-
let n = s(
|
|
1016
|
+
let n = s(L({
|
|
970
1017
|
wire: r,
|
|
971
1018
|
storeName: t,
|
|
972
1019
|
noSync: [
|
|
@@ -976,8 +1023,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
976
1023
|
"electSpaceMaster"
|
|
977
1024
|
]
|
|
978
1025
|
}, (...e) => ({
|
|
979
|
-
...
|
|
980
|
-
...
|
|
1026
|
+
...Ze(r.userId)(...e),
|
|
1027
|
+
...Qe(...e)
|
|
981
1028
|
}), r, t)), i = n.subscribe((t) => {
|
|
982
1029
|
t.ready && (i(), e && c(n));
|
|
983
1030
|
});
|
|
@@ -991,7 +1038,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
991
1038
|
r.userId
|
|
992
1039
|
]), e.useEffect(() => {
|
|
993
1040
|
if (o) return o.getState().addUser({
|
|
994
|
-
...
|
|
1041
|
+
...Xe(),
|
|
995
1042
|
id: r.userId
|
|
996
1043
|
}), u(!0), () => {
|
|
997
1044
|
o.getState().removeUser(r.userId);
|
|
@@ -1019,15 +1066,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1019
1066
|
i,
|
|
1020
1067
|
o,
|
|
1021
1068
|
r
|
|
1022
|
-
]), l ? /* @__PURE__ */ a(
|
|
1069
|
+
]), l ? /* @__PURE__ */ a(Je.Provider, {
|
|
1023
1070
|
value: o,
|
|
1024
1071
|
children: n
|
|
1025
1072
|
}) : null;
|
|
1026
|
-
},
|
|
1027
|
-
let t = r(
|
|
1073
|
+
}, H = (e) => {
|
|
1074
|
+
let t = r(Je);
|
|
1028
1075
|
return c(t, e, l);
|
|
1029
|
-
},
|
|
1030
|
-
let [t, n, r, i, a] =
|
|
1076
|
+
}, et = () => {
|
|
1077
|
+
let [t, n, r, i, a] = H((e) => [
|
|
1031
1078
|
e.isSpaceMaster,
|
|
1032
1079
|
e.getUser(),
|
|
1033
1080
|
e.users,
|
|
@@ -1045,8 +1092,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1045
1092
|
}, [n, o]),
|
|
1046
1093
|
joinSpace: a
|
|
1047
1094
|
};
|
|
1048
|
-
},
|
|
1049
|
-
let [t, n, r] =
|
|
1095
|
+
}, tt = () => {
|
|
1096
|
+
let [t, n, r] = R((e) => [
|
|
1050
1097
|
e.boardConfig,
|
|
1051
1098
|
e.getBoardConfig,
|
|
1052
1099
|
e.setBoardConfig
|
|
@@ -1057,11 +1104,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1057
1104
|
let i = n(), a = t(i);
|
|
1058
1105
|
r(a);
|
|
1059
1106
|
}, [n, r])];
|
|
1060
|
-
},
|
|
1061
|
-
let [e] =
|
|
1107
|
+
}, nt = () => {
|
|
1108
|
+
let [e] = z((e) => [e.boardState]);
|
|
1062
1109
|
return e;
|
|
1063
|
-
},
|
|
1064
|
-
let [e, t, n, r] =
|
|
1110
|
+
}, rt = () => {
|
|
1111
|
+
let [e, t, n, r] = R((e) => [
|
|
1065
1112
|
e.getSessionInfo,
|
|
1066
1113
|
e.setSessionInfo,
|
|
1067
1114
|
e.updateSessionInfo,
|
|
@@ -1073,7 +1120,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1073
1120
|
sessionInfo: r,
|
|
1074
1121
|
updateSessionInfo: n
|
|
1075
1122
|
};
|
|
1076
|
-
},
|
|
1123
|
+
}, it = e.createContext(), at = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
|
|
1077
1124
|
type: "message",
|
|
1078
1125
|
user: {
|
|
1079
1126
|
name: e,
|
|
@@ -1083,7 +1130,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1083
1130
|
content: r,
|
|
1084
1131
|
uid: w(),
|
|
1085
1132
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
1086
|
-
}),
|
|
1133
|
+
}), ot = (e, t) => ({
|
|
1087
1134
|
messages: [],
|
|
1088
1135
|
setMessages: (t) => e({ messages: t.map((e) => ({
|
|
1089
1136
|
...e,
|
|
@@ -1094,28 +1141,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1094
1141
|
timestamp: Date.parse(t.timestamp)
|
|
1095
1142
|
}] })),
|
|
1096
1143
|
sendMessage: (e, n) => {
|
|
1097
|
-
let r =
|
|
1144
|
+
let r = at({
|
|
1098
1145
|
user: e,
|
|
1099
1146
|
content: n
|
|
1100
1147
|
});
|
|
1101
1148
|
r && t().addMessage(r);
|
|
1102
1149
|
}
|
|
1103
|
-
}),
|
|
1104
|
-
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({
|
|
1105
1152
|
wire: i,
|
|
1106
1153
|
storeName: t,
|
|
1107
1154
|
defaultValue: r,
|
|
1108
1155
|
noSync: ["sendMessage"]
|
|
1109
|
-
}, (...e) => ({ ...
|
|
1110
|
-
return /* @__PURE__ */ a(
|
|
1156
|
+
}, (...e) => ({ ...ot(...e) }))));
|
|
1157
|
+
return /* @__PURE__ */ a(it.Provider, {
|
|
1111
1158
|
value: o,
|
|
1112
1159
|
children: n
|
|
1113
1160
|
});
|
|
1114
|
-
},
|
|
1115
|
-
let t = r(
|
|
1161
|
+
}, ct = (e) => {
|
|
1162
|
+
let t = r(it);
|
|
1116
1163
|
return c(t, e, l);
|
|
1117
|
-
},
|
|
1118
|
-
let n =
|
|
1164
|
+
}, lt = () => {}, ut = (t = lt) => {
|
|
1165
|
+
let n = H((e) => e.getUser()), [r, i, a] = ct((e) => [
|
|
1119
1166
|
e.messages,
|
|
1120
1167
|
e.setMessages,
|
|
1121
1168
|
e.sendMessage
|
|
@@ -1129,23 +1176,23 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1129
1176
|
a(n, e);
|
|
1130
1177
|
}, [n, a])
|
|
1131
1178
|
};
|
|
1132
|
-
},
|
|
1133
|
-
let r =
|
|
1179
|
+
}, dt = ({ children: t, session: n }) => {
|
|
1180
|
+
let r = H((e) => e.joinSpace);
|
|
1134
1181
|
return e.useEffect(() => (r(n), () => {
|
|
1135
1182
|
r(null);
|
|
1136
1183
|
}), [r, n]), t;
|
|
1137
|
-
},
|
|
1184
|
+
}, ft = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
|
|
1138
1185
|
let [l] = e.useState(n || w()), [u] = e.useState(r || w()), [d] = e.useState(() => ({
|
|
1139
1186
|
itemIds: i.map(({ id: e }) => e),
|
|
1140
1187
|
items: Object.fromEntries(i.map((e) => [e.id, e]))
|
|
1141
1188
|
}));
|
|
1142
|
-
return k("room") ? /* @__PURE__ */ a(
|
|
1189
|
+
return k("room") ? /* @__PURE__ */ a(st, {
|
|
1143
1190
|
storeName: `${u}_messages`,
|
|
1144
1191
|
defaultValue: o,
|
|
1145
|
-
children: /* @__PURE__ */ a(
|
|
1192
|
+
children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
|
|
1146
1193
|
storeName: `${u}_item`,
|
|
1147
1194
|
defaultValue: d,
|
|
1148
|
-
children: /* @__PURE__ */ a(
|
|
1195
|
+
children: /* @__PURE__ */ a(dt, {
|
|
1149
1196
|
...c,
|
|
1150
1197
|
session: u
|
|
1151
1198
|
})
|
|
@@ -1155,15 +1202,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1155
1202
|
channel: "room",
|
|
1156
1203
|
socket: t,
|
|
1157
1204
|
LoadingComponent: s,
|
|
1158
|
-
children: /* @__PURE__ */ a(
|
|
1205
|
+
children: /* @__PURE__ */ a($e, {
|
|
1159
1206
|
storeName: `${l}_users`,
|
|
1160
|
-
children: /* @__PURE__ */ a(
|
|
1207
|
+
children: /* @__PURE__ */ a(st, {
|
|
1161
1208
|
storeName: `${u}_messages`,
|
|
1162
1209
|
defaultValue: o,
|
|
1163
|
-
children: /* @__PURE__ */ a(
|
|
1210
|
+
children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
|
|
1164
1211
|
storeName: `${u}_item`,
|
|
1165
1212
|
defaultValue: d,
|
|
1166
|
-
children: /* @__PURE__ */ a(
|
|
1213
|
+
children: /* @__PURE__ */ a(dt, {
|
|
1167
1214
|
...c,
|
|
1168
1215
|
session: u
|
|
1169
1216
|
})
|
|
@@ -1171,19 +1218,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1171
1218
|
})
|
|
1172
1219
|
})
|
|
1173
1220
|
});
|
|
1174
|
-
},
|
|
1221
|
+
}, pt = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
|
|
1175
1222
|
let [o] = e.useState(n || w());
|
|
1176
1223
|
return /* @__PURE__ */ a(re, {
|
|
1177
1224
|
room: o,
|
|
1178
1225
|
channel: "room",
|
|
1179
1226
|
socket: t,
|
|
1180
1227
|
LoadingComponent: i,
|
|
1181
|
-
children: /* @__PURE__ */ a(
|
|
1228
|
+
children: /* @__PURE__ */ a($e, {
|
|
1182
1229
|
storeName: `${o}_users`,
|
|
1183
1230
|
children: r
|
|
1184
1231
|
})
|
|
1185
1232
|
});
|
|
1186
|
-
},
|
|
1233
|
+
}, mt = { data: "" }, ht = (e) => {
|
|
1187
1234
|
if (typeof window == "object") {
|
|
1188
1235
|
let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
|
|
1189
1236
|
innerHTML: " ",
|
|
@@ -1191,58 +1238,58 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1191
1238
|
});
|
|
1192
1239
|
return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
|
|
1193
1240
|
}
|
|
1194
|
-
return e ||
|
|
1195
|
-
},
|
|
1241
|
+
return e || mt;
|
|
1242
|
+
}, gt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, _t = /\/\*[^]*?\*\/| +/g, vt = /\n+/g, U = (e, t) => {
|
|
1196
1243
|
let n = "", r = "", i = "";
|
|
1197
1244
|
for (let a in e) {
|
|
1198
1245
|
let o = e[a];
|
|
1199
|
-
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 + ";");
|
|
1200
1247
|
}
|
|
1201
1248
|
return n + (t && i ? t + "{" + i + "}" : i) + r;
|
|
1202
|
-
},
|
|
1249
|
+
}, W = {}, yt = (e) => {
|
|
1203
1250
|
if (typeof e == "object") {
|
|
1204
1251
|
let t = "";
|
|
1205
|
-
for (let n in e) t += n +
|
|
1252
|
+
for (let n in e) t += n + yt(e[n]);
|
|
1206
1253
|
return t;
|
|
1207
1254
|
}
|
|
1208
1255
|
return e;
|
|
1209
|
-
},
|
|
1210
|
-
let a =
|
|
1256
|
+
}, bt = (e, t, n, r, i) => {
|
|
1257
|
+
let a = yt(e), o = W[a] || (W[a] = ((e) => {
|
|
1211
1258
|
let t = 0, n = 11;
|
|
1212
1259
|
for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
|
|
1213
1260
|
return "go" + n;
|
|
1214
1261
|
})(a));
|
|
1215
|
-
if (!
|
|
1262
|
+
if (!W[o]) {
|
|
1216
1263
|
let t = a === e ? ((e) => {
|
|
1217
1264
|
let t, n, r = [{}];
|
|
1218
|
-
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();
|
|
1219
1266
|
return r[0];
|
|
1220
1267
|
})(e) : e;
|
|
1221
|
-
|
|
1268
|
+
W[o] = U(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
|
|
1222
1269
|
}
|
|
1223
|
-
let s = n &&
|
|
1224
|
-
return n && (
|
|
1270
|
+
let s = n && W.g;
|
|
1271
|
+
return n && (W.g = W[o]), ((e, t, n, r) => {
|
|
1225
1272
|
r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
|
|
1226
|
-
})(
|
|
1227
|
-
},
|
|
1273
|
+
})(W[o], t, r, s), o;
|
|
1274
|
+
}, xt = (e, t, n) => e.reduce((e, r, i) => {
|
|
1228
1275
|
let a = t[i];
|
|
1229
1276
|
if (a && a.call) {
|
|
1230
1277
|
let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
|
|
1231
|
-
a = t ? "." + t : e && typeof e == "object" ? e.props ? "" :
|
|
1278
|
+
a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : U(e, "") : !1 === e ? "" : e;
|
|
1232
1279
|
}
|
|
1233
1280
|
return e + r + (a ?? "");
|
|
1234
1281
|
}, "");
|
|
1235
|
-
function
|
|
1282
|
+
function G(e) {
|
|
1236
1283
|
let t = this || {}, n = e.call ? e(t.p) : e;
|
|
1237
|
-
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);
|
|
1238
1285
|
}
|
|
1239
|
-
|
|
1240
|
-
function
|
|
1241
|
-
|
|
1286
|
+
G.bind({ g: 1 }), G.bind({ k: 1 });
|
|
1287
|
+
function St(e, t, n, r) {
|
|
1288
|
+
U.p = t;
|
|
1242
1289
|
}
|
|
1243
1290
|
//#endregion
|
|
1244
1291
|
//#region src/lib/board/Gesture.jsx
|
|
1245
|
-
var
|
|
1292
|
+
var Ct = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
1246
1293
|
t.exports = function e(t, n) {
|
|
1247
1294
|
if (t === n) return !0;
|
|
1248
1295
|
if (t && n && typeof t == "object" && typeof n == "object") {
|
|
@@ -1266,44 +1313,44 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1266
1313
|
}
|
|
1267
1314
|
return t !== t && n !== n;
|
|
1268
1315
|
};
|
|
1269
|
-
})))(), 1),
|
|
1316
|
+
})))(), 1), wt = () => {
|
|
1270
1317
|
let e = navigator.userAgent.toLowerCase();
|
|
1271
1318
|
return /mac os ?x 10/.test(e);
|
|
1272
|
-
},
|
|
1319
|
+
}, Tt = (() => {
|
|
1273
1320
|
let e = document.createElement("iframe");
|
|
1274
1321
|
e.src = "#", document.body.appendChild(e);
|
|
1275
1322
|
let t = e.contentWindow.document;
|
|
1276
1323
|
t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
|
|
1277
1324
|
let n = t.body.firstElementChild.offsetHeight;
|
|
1278
1325
|
return document.body.removeChild(e), n;
|
|
1279
|
-
})(),
|
|
1326
|
+
})(), Et = 800, Dt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], Ot = ([e, t], [n, r]) => {
|
|
1280
1327
|
let i = Math.abs(e - n), a = Math.abs(t - r);
|
|
1281
1328
|
return Math.hypot(i, a);
|
|
1282
|
-
},
|
|
1329
|
+
}, K = () => {}, kt = (e) => (t) => {
|
|
1283
1330
|
let { event: n } = t;
|
|
1284
1331
|
return n.isPropagationStopped() ? null : e(t);
|
|
1285
|
-
},
|
|
1332
|
+
}, At = (e) => async (...t) => {
|
|
1286
1333
|
try {
|
|
1287
1334
|
await e(...t);
|
|
1288
1335
|
} catch (e) {
|
|
1289
1336
|
console.error(e);
|
|
1290
1337
|
}
|
|
1291
|
-
},
|
|
1338
|
+
}, q = new class {
|
|
1292
1339
|
lastPromise = Promise.resolve(!0);
|
|
1293
1340
|
add(e, ...t) {
|
|
1294
1341
|
return new Promise((n, r) => {
|
|
1295
|
-
this.lastPromise = this.lastPromise.then(() =>
|
|
1342
|
+
this.lastPromise = this.lastPromise.then(() => kt(At(e))(...t)).then(n).catch(r);
|
|
1296
1343
|
});
|
|
1297
1344
|
}
|
|
1298
|
-
}(),
|
|
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 }) => {
|
|
1299
1346
|
let p = e.useRef(null), m = e.useRef({
|
|
1300
1347
|
moving: !1,
|
|
1301
1348
|
pointers: {},
|
|
1302
1349
|
mainPointer: void 0
|
|
1303
1350
|
}), h = (e) => {
|
|
1304
1351
|
let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
|
|
1305
|
-
if (!(c || s && !
|
|
1306
|
-
if (
|
|
1352
|
+
if (!(c || s && !wt())) {
|
|
1353
|
+
if (wt() && !s) q.add(o, {
|
|
1307
1354
|
deltaX: -2 * t,
|
|
1308
1355
|
deltaY: -2 * n,
|
|
1309
1356
|
button: 1,
|
|
@@ -1317,11 +1364,11 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1317
1364
|
let t = n;
|
|
1318
1365
|
switch (a) {
|
|
1319
1366
|
case 1:
|
|
1320
|
-
t *=
|
|
1367
|
+
t *= Tt;
|
|
1321
1368
|
break;
|
|
1322
|
-
case 2: t *=
|
|
1369
|
+
case 2: t *= Et;
|
|
1323
1370
|
}
|
|
1324
|
-
|
|
1371
|
+
wt() && (t *= 2), q.add(u, {
|
|
1325
1372
|
scale: t,
|
|
1326
1373
|
clientX: r,
|
|
1327
1374
|
clientY: i,
|
|
@@ -1336,7 +1383,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1336
1383
|
clientY: i
|
|
1337
1384
|
}, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
|
|
1338
1385
|
if (m.current.mainPointer !== a) try {
|
|
1339
|
-
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]);
|
|
1340
1387
|
Object.assign(m.current, {
|
|
1341
1388
|
pressed: !0,
|
|
1342
1389
|
moving: !1,
|
|
@@ -1368,7 +1415,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1368
1415
|
target: t,
|
|
1369
1416
|
timeStart: Date.now(),
|
|
1370
1417
|
longTapTimeout: setTimeout(async () => {
|
|
1371
|
-
m.current.noTap = !0,
|
|
1418
|
+
m.current.noTap = !0, q.add(c, {
|
|
1372
1419
|
clientX: r,
|
|
1373
1420
|
clientY: i,
|
|
1374
1421
|
altKey: o,
|
|
@@ -1393,14 +1440,14 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1393
1440
|
}, m.current.moving = !0;
|
|
1394
1441
|
let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
|
|
1395
1442
|
if (g) {
|
|
1396
|
-
let { clientX: e, clientY: n } =
|
|
1397
|
-
_ = (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]);
|
|
1398
1445
|
} else _ = i, v = a;
|
|
1399
1446
|
let b = c || s || l || f || h !== 1;
|
|
1400
1447
|
d !== "drag" && (b = !b);
|
|
1401
1448
|
let x = !b, S = b;
|
|
1402
1449
|
if (x) {
|
|
1403
|
-
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, {
|
|
1404
1451
|
deltaX: 0,
|
|
1405
1452
|
deltaY: 0,
|
|
1406
1453
|
startX: m.current.startX,
|
|
@@ -1418,7 +1465,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1418
1465
|
event: m.current.pointerDownEvent
|
|
1419
1466
|
}));
|
|
1420
1467
|
let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
|
|
1421
|
-
|
|
1468
|
+
q.add(n, {
|
|
1422
1469
|
deltaX: t,
|
|
1423
1470
|
deltaY: i,
|
|
1424
1471
|
startX: m.current.startX,
|
|
@@ -1439,7 +1486,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1439
1486
|
if (S) {
|
|
1440
1487
|
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
|
|
1441
1488
|
let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
|
|
1442
|
-
if (
|
|
1489
|
+
if (q.add(o, {
|
|
1443
1490
|
deltaX: t,
|
|
1444
1491
|
deltaY: n,
|
|
1445
1492
|
button: m.current.currentButton,
|
|
@@ -1451,7 +1498,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1451
1498
|
event: e
|
|
1452
1499
|
}), y !== m.current.prevDistance && u) {
|
|
1453
1500
|
let t = m.current.prevDistance - y;
|
|
1454
|
-
Math.abs(t) > 0 && (
|
|
1501
|
+
Math.abs(t) > 0 && (q.add(u, {
|
|
1455
1502
|
scale: t * 3,
|
|
1456
1503
|
clientX: _,
|
|
1457
1504
|
clientY: v,
|
|
@@ -1490,7 +1537,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1490
1537
|
console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
|
|
1491
1538
|
}
|
|
1492
1539
|
}
|
|
1493
|
-
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, {
|
|
1494
1541
|
deltaX: t - m.current.prevX,
|
|
1495
1542
|
deltaY: n - m.current.prevY,
|
|
1496
1543
|
startX: m.current.startX,
|
|
@@ -1508,7 +1555,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1508
1555
|
}), p.current.style.cursor = "auto";
|
|
1509
1556
|
else {
|
|
1510
1557
|
let i = Date.now();
|
|
1511
|
-
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, {
|
|
1512
1559
|
clientX: t,
|
|
1513
1560
|
clientY: n,
|
|
1514
1561
|
altKey: r,
|
|
@@ -1529,7 +1576,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1529
1576
|
onPointerCancel: v,
|
|
1530
1577
|
onDoubleClick: (e) => {
|
|
1531
1578
|
let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
|
|
1532
|
-
|
|
1579
|
+
q.add(l, {
|
|
1533
1580
|
clientX: t,
|
|
1534
1581
|
clientY: n,
|
|
1535
1582
|
altKey: r,
|
|
@@ -1550,9 +1597,9 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1550
1597
|
ref: p,
|
|
1551
1598
|
children: t
|
|
1552
1599
|
});
|
|
1553
|
-
},
|
|
1554
|
-
let [n] =
|
|
1555
|
-
return /* @__PURE__ */ a(
|
|
1600
|
+
}, jt = ({ onResize: e, ...t }) => {
|
|
1601
|
+
let [n] = z((e) => [e.getBoardState]);
|
|
1602
|
+
return /* @__PURE__ */ a(J, {
|
|
1556
1603
|
onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
|
|
1557
1604
|
i.stopPropagation();
|
|
1558
1605
|
let { scale: a } = n();
|
|
@@ -1563,36 +1610,36 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1563
1610
|
},
|
|
1564
1611
|
children: /* @__PURE__ */ a("div", { ...t })
|
|
1565
1612
|
});
|
|
1566
|
-
},
|
|
1613
|
+
}, Mt = G`
|
|
1567
1614
|
display: inline-block;
|
|
1568
1615
|
transition: transform 150ms;
|
|
1569
1616
|
user-select: none;
|
|
1570
1617
|
padding: 2px;
|
|
1571
1618
|
box-sizing: border-box;
|
|
1572
|
-
`,
|
|
1619
|
+
`, Nt = G`
|
|
1573
1620
|
border: 2px dashed #db5034;
|
|
1574
1621
|
padding: 0px;
|
|
1575
1622
|
cursor: pointer;
|
|
1576
|
-
`,
|
|
1623
|
+
`, Y = G`
|
|
1577
1624
|
position: absolute;
|
|
1578
1625
|
width: 0px;
|
|
1579
1626
|
height: 0px;
|
|
1580
|
-
`,
|
|
1627
|
+
`, Pt = G`
|
|
1581
1628
|
top: 0;
|
|
1582
1629
|
left: 0;
|
|
1583
|
-
`,
|
|
1630
|
+
`, Ft = G`
|
|
1584
1631
|
top: 0;
|
|
1585
1632
|
right: 0;
|
|
1586
|
-
`,
|
|
1633
|
+
`, It = G`
|
|
1587
1634
|
bottom: 0;
|
|
1588
1635
|
left: 0;
|
|
1589
|
-
`,
|
|
1636
|
+
`, Lt = G`
|
|
1590
1637
|
bottom: 0;
|
|
1591
1638
|
right: 0;
|
|
1592
|
-
`,
|
|
1639
|
+
`, Rt = G`
|
|
1593
1640
|
top: 50%;
|
|
1594
1641
|
left: 50%;
|
|
1595
|
-
`,
|
|
1642
|
+
`, X = G`
|
|
1596
1643
|
position: absolute;
|
|
1597
1644
|
|
|
1598
1645
|
width: 10px;
|
|
@@ -1600,20 +1647,20 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1600
1647
|
border: 2px solid #db5034;
|
|
1601
1648
|
background-color: #db5034;
|
|
1602
1649
|
cursor: move;
|
|
1603
|
-
`,
|
|
1650
|
+
`, zt = G`
|
|
1604
1651
|
cursor: ew-resize;
|
|
1605
1652
|
right: -6px;
|
|
1606
1653
|
top: calc(50% - 5px);
|
|
1607
|
-
`,
|
|
1654
|
+
`, Bt = G`
|
|
1608
1655
|
cursor: ns-resize;
|
|
1609
1656
|
bottom: -6px;
|
|
1610
1657
|
left: calc(50% - 5px);
|
|
1611
|
-
`,
|
|
1658
|
+
`, Vt = G`
|
|
1612
1659
|
cursor: nwse-resize;
|
|
1613
1660
|
bottom: -6px;
|
|
1614
1661
|
right: -6px;
|
|
1615
|
-
`,
|
|
1616
|
-
className: `syncboard-error-item ${
|
|
1662
|
+
`, Ht = ({ onReload: e }) => /* @__PURE__ */ o("div", {
|
|
1663
|
+
className: `syncboard-error-item ${G({
|
|
1617
1664
|
width: "100px",
|
|
1618
1665
|
display: "flex",
|
|
1619
1666
|
flexDirection: "column",
|
|
@@ -1625,7 +1672,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1625
1672
|
onClick: e,
|
|
1626
1673
|
children: "Reload it"
|
|
1627
1674
|
})]
|
|
1628
|
-
}),
|
|
1675
|
+
}), Ut = class extends e.Component {
|
|
1629
1676
|
constructor(e) {
|
|
1630
1677
|
super(e), this.state = {
|
|
1631
1678
|
hasError: !1,
|
|
@@ -1645,9 +1692,9 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1645
1692
|
let { ErrorComponent: e } = this.props;
|
|
1646
1693
|
return this.state.hasError ? /* @__PURE__ */ a(e, { onReload: this.onReload }) : this.props.children;
|
|
1647
1694
|
}
|
|
1648
|
-
},
|
|
1695
|
+
}, Wt = (e) => {
|
|
1649
1696
|
e.target.className = "";
|
|
1650
|
-
},
|
|
1697
|
+
}, Gt = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
|
|
1651
1698
|
let { width: o, height: s } = i;
|
|
1652
1699
|
if ([o, s] = [parseFloat(o), parseFloat(s)], (!o || Number.isNaN(Number(o))) && (o = n), (!s || Number.isNaN(Number(s))) && (s = r), a) {
|
|
1653
1700
|
let n = o / s;
|
|
@@ -1662,21 +1709,21 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1662
1709
|
width: (o + e).toFixed(1),
|
|
1663
1710
|
height: (s + t).toFixed(1)
|
|
1664
1711
|
};
|
|
1665
|
-
},
|
|
1712
|
+
}, Kt = {
|
|
1666
1713
|
w: !0,
|
|
1667
1714
|
h: !0,
|
|
1668
1715
|
b: !0
|
|
1669
|
-
},
|
|
1670
|
-
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]);
|
|
1671
1718
|
e.useEffect(() => {
|
|
1672
1719
|
h.current.className = d;
|
|
1673
1720
|
}, [d]);
|
|
1674
1721
|
let x = [
|
|
1675
1722
|
"item",
|
|
1676
1723
|
s,
|
|
1677
|
-
|
|
1724
|
+
Mt
|
|
1678
1725
|
];
|
|
1679
|
-
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);
|
|
1680
1727
|
let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
|
|
1681
1728
|
b((r) => {
|
|
1682
1729
|
let { offsetWidth: i, offsetHeight: a } = h.current;
|
|
@@ -1691,9 +1738,9 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1691
1738
|
});
|
|
1692
1739
|
}, w = ({ width: e }) => {
|
|
1693
1740
|
C({ width: e });
|
|
1694
|
-
},
|
|
1741
|
+
}, T = ({ height: e }) => {
|
|
1695
1742
|
C({ height: e });
|
|
1696
|
-
},
|
|
1743
|
+
}, ee = ({ width: e }) => {
|
|
1697
1744
|
C({
|
|
1698
1745
|
height: e,
|
|
1699
1746
|
width: e,
|
|
@@ -1708,63 +1755,63 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1708
1755
|
children: /* @__PURE__ */ o("div", {
|
|
1709
1756
|
style: { display: "flex" },
|
|
1710
1757
|
ref: h,
|
|
1711
|
-
onAnimationEnd:
|
|
1758
|
+
onAnimationEnd: Wt,
|
|
1712
1759
|
onKeyDown: (e) => e.stopPropagation(),
|
|
1713
1760
|
onKeyUp: (e) => e.stopPropagation(),
|
|
1714
1761
|
children: [
|
|
1715
|
-
/* @__PURE__ */ a(
|
|
1762
|
+
/* @__PURE__ */ a(Ut, {
|
|
1716
1763
|
itemId: s,
|
|
1717
1764
|
state: u,
|
|
1718
|
-
ErrorComponent: p?.error?.component ||
|
|
1765
|
+
ErrorComponent: p?.error?.component || Ht,
|
|
1719
1766
|
children: /* @__PURE__ */ a(_, {
|
|
1720
1767
|
...u,
|
|
1721
1768
|
id: s,
|
|
1722
1769
|
setState: b
|
|
1723
1770
|
})
|
|
1724
1771
|
}),
|
|
1725
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1726
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1727
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1728
|
-
/* @__PURE__ */ a("div", { className: `corner ${
|
|
1729
|
-
/* @__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}` }),
|
|
1730
1777
|
m && /* @__PURE__ */ o(i, { children: [
|
|
1731
|
-
v.b && /* @__PURE__ */ a(
|
|
1732
|
-
className: `${
|
|
1733
|
-
onResize: T
|
|
1734
|
-
}),
|
|
1735
|
-
v.h && /* @__PURE__ */ a(Tt, {
|
|
1736
|
-
className: `${Nt} ${Ft}`,
|
|
1778
|
+
v.b && /* @__PURE__ */ a(jt, {
|
|
1779
|
+
className: `${X} ${Vt}`,
|
|
1737
1780
|
onResize: ee
|
|
1738
1781
|
}),
|
|
1739
|
-
v.
|
|
1740
|
-
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}`,
|
|
1741
1788
|
onResize: w
|
|
1742
1789
|
})
|
|
1743
1790
|
] })
|
|
1744
1791
|
]
|
|
1745
1792
|
})
|
|
1746
1793
|
});
|
|
1747
|
-
}, ({ 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 }) => {
|
|
1748
1795
|
if (!r.itemMap[e.type]) return null;
|
|
1749
|
-
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);
|
|
1750
1797
|
return /* @__PURE__ */ a("div", {
|
|
1751
1798
|
className: n,
|
|
1752
1799
|
style: {
|
|
1753
1800
|
transform: `translate(${o}px, ${s}px)`,
|
|
1754
1801
|
zIndex: d
|
|
1755
1802
|
},
|
|
1756
|
-
children: /* @__PURE__ */ a(
|
|
1803
|
+
children: /* @__PURE__ */ a(qt, {
|
|
1757
1804
|
...r,
|
|
1758
1805
|
showResizeHandle: r.isSelected && r.showResizeHandle,
|
|
1759
1806
|
state: u
|
|
1760
1807
|
})
|
|
1761
1808
|
});
|
|
1762
|
-
}),
|
|
1763
|
-
let { updateItem: e } = V(), [t, n] =
|
|
1809
|
+
}), Xt = () => {
|
|
1810
|
+
let { updateItem: e } = V(), [t, n] = R((e) => [e.itemIds, e.items]), [r, i, o] = z((e) => [
|
|
1764
1811
|
e.config.showResizeHandle,
|
|
1765
1812
|
e.config.itemTemplates,
|
|
1766
1813
|
e.selection
|
|
1767
|
-
]), [s] =
|
|
1814
|
+
]), [s] = H((e) => [e.getUser]), c = G({
|
|
1768
1815
|
position: "absolute",
|
|
1769
1816
|
top: 0,
|
|
1770
1817
|
left: 0,
|
|
@@ -1772,7 +1819,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1772
1819
|
display: "inline-block",
|
|
1773
1820
|
lineHeight: 0
|
|
1774
1821
|
});
|
|
1775
|
-
return t.map((t) => /* @__PURE__ */ a(
|
|
1822
|
+
return t.map((t) => /* @__PURE__ */ a(Yt, {
|
|
1776
1823
|
state: n[t],
|
|
1777
1824
|
setState: e,
|
|
1778
1825
|
isSelected: o.includes(t),
|
|
@@ -1781,28 +1828,28 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1781
1828
|
showResizeHandle: r,
|
|
1782
1829
|
className: c
|
|
1783
1830
|
}, t));
|
|
1784
|
-
},
|
|
1831
|
+
}, Zt = G({
|
|
1785
1832
|
zIndex: 210,
|
|
1786
1833
|
position: "absolute",
|
|
1787
1834
|
backgroundColor: "hsla(0, 40%, 50%, 10%)",
|
|
1788
1835
|
border: "2px solid hsl(0, 55%, 40%)"
|
|
1789
|
-
}),
|
|
1836
|
+
}), Qt = (e, t, n = !1) => {
|
|
1790
1837
|
let r = t.getElementsByClassName("selector");
|
|
1791
1838
|
if (!r.length) return [];
|
|
1792
1839
|
let i = r[0];
|
|
1793
1840
|
return Array.from(t.getElementsByClassName("item")).filter((t) => {
|
|
1794
|
-
let r = e[
|
|
1795
|
-
return !r || !n && r.locked ? !1 :
|
|
1796
|
-
}).map((e) =>
|
|
1797
|
-
},
|
|
1798
|
-
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) => [
|
|
1799
1846
|
e.getSelection,
|
|
1800
1847
|
e.clear,
|
|
1801
1848
|
e.setSelection,
|
|
1802
1849
|
e.select,
|
|
1803
1850
|
e.getConfiguration,
|
|
1804
1851
|
e.updateBoardState
|
|
1805
|
-
]), { findElementUnderPointer: d } = V(), [p] =
|
|
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 });
|
|
1806
1853
|
return f(document, "keydown", (e) => {
|
|
1807
1854
|
e.key === "l" && v(!0);
|
|
1808
1855
|
}), f(document, "keyup", (e) => {
|
|
@@ -1811,7 +1858,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1811
1858
|
i();
|
|
1812
1859
|
}), [i]), e.useEffect(() => {
|
|
1813
1860
|
if (b.current.moving) {
|
|
1814
|
-
let e = p(), { boardWrapper: t } = l(), n =
|
|
1861
|
+
let e = p(), { boardWrapper: t } = l(), n = Qt(e, t, _);
|
|
1815
1862
|
g(() => {
|
|
1816
1863
|
s(n);
|
|
1817
1864
|
});
|
|
@@ -1822,7 +1869,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1822
1869
|
m,
|
|
1823
1870
|
s,
|
|
1824
1871
|
_
|
|
1825
|
-
]), /* @__PURE__ */ a(
|
|
1872
|
+
]), /* @__PURE__ */ a(J, {
|
|
1826
1873
|
fill: !0,
|
|
1827
1874
|
onDragStart: async (e) => {
|
|
1828
1875
|
await d(e) || (b.current.moving = !0, g(() => {
|
|
@@ -1847,7 +1894,7 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1847
1894
|
let { ctrlKey: t, metaKey: n } = e, a = d(e);
|
|
1848
1895
|
if (!a) i();
|
|
1849
1896
|
else {
|
|
1850
|
-
let e =
|
|
1897
|
+
let e = I(a);
|
|
1851
1898
|
if (!e) {
|
|
1852
1899
|
i();
|
|
1853
1900
|
return;
|
|
@@ -1857,9 +1904,9 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1857
1904
|
}
|
|
1858
1905
|
},
|
|
1859
1906
|
onLongTap: ({ target: e }) => {
|
|
1860
|
-
let t =
|
|
1907
|
+
let t = N(e, "item");
|
|
1861
1908
|
if (t) {
|
|
1862
|
-
let e =
|
|
1909
|
+
let e = I(t);
|
|
1863
1910
|
s([e]);
|
|
1864
1911
|
}
|
|
1865
1912
|
},
|
|
@@ -1876,31 +1923,18 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1876
1923
|
height: `${m.height}px`,
|
|
1877
1924
|
width: `${m.width}px`
|
|
1878
1925
|
},
|
|
1879
|
-
className: `selector ${
|
|
1926
|
+
className: `selector ${Zt}`
|
|
1880
1927
|
}), t]
|
|
1881
1928
|
})
|
|
1882
1929
|
});
|
|
1883
|
-
},
|
|
1884
|
-
let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } =
|
|
1930
|
+
}, en = ({ children: t }) => {
|
|
1931
|
+
let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = z((e) => [
|
|
1885
1932
|
e.select,
|
|
1886
1933
|
e.setSelection,
|
|
1887
1934
|
e.getSelection,
|
|
1888
1935
|
e.getBoardState,
|
|
1889
1936
|
e.updateBoardState
|
|
1890
|
-
]),
|
|
1891
|
-
let { grid: e, gridType: t, gridSize: n = 1 } = p(), r = e || {
|
|
1892
|
-
type: t === void 0 ? n ? "grid" : "none" : t,
|
|
1893
|
-
size: n
|
|
1894
|
-
};
|
|
1895
|
-
return {
|
|
1896
|
-
type: r.type || "none",
|
|
1897
|
-
size: Number(r.size) || 1,
|
|
1898
|
-
offset: {
|
|
1899
|
-
x: Number(r.offset?.x) || 0,
|
|
1900
|
-
y: Number(r.offset?.y) || 0
|
|
1901
|
-
}
|
|
1902
|
-
};
|
|
1903
|
-
}, h = e.useRef({}), g = e.useRef({ items: [] });
|
|
1937
|
+
]), p = e.useRef({}), m = e.useRef({ items: [] });
|
|
1904
1938
|
return f(document, "keydown", (e) => {
|
|
1905
1939
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
|
|
1906
1940
|
let t = l();
|
|
@@ -1924,37 +1958,37 @@ var _t = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1924
1958
|
n(t, {
|
|
1925
1959
|
x: s,
|
|
1926
1960
|
y: c
|
|
1927
|
-
}, !0), r(t
|
|
1961
|
+
}, !0), r(t), e.preventDefault();
|
|
1928
1962
|
}
|
|
1929
1963
|
}
|
|
1930
|
-
}), /* @__PURE__ */ a(
|
|
1964
|
+
}), /* @__PURE__ */ a(J, {
|
|
1931
1965
|
fill: !0,
|
|
1932
1966
|
onDragStart: (e) => {
|
|
1933
1967
|
let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
|
|
1934
1968
|
if (a) {
|
|
1935
1969
|
r.stopPropagation();
|
|
1936
1970
|
let e = l();
|
|
1937
|
-
|
|
1938
|
-
let i =
|
|
1939
|
-
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 });
|
|
1940
1974
|
}
|
|
1941
1975
|
},
|
|
1942
1976
|
onDrag: ({ deltaX: e, deltaY: t, event: r }) => {
|
|
1943
|
-
if (
|
|
1977
|
+
if (p.current.moving) {
|
|
1944
1978
|
r.stopPropagation();
|
|
1945
1979
|
let { movingItems: i } = u(), [a, s] = o(e, t);
|
|
1946
|
-
n(
|
|
1980
|
+
n(m.current.items, {
|
|
1947
1981
|
x: a,
|
|
1948
1982
|
y: s
|
|
1949
1983
|
}, !0), i || d({ movingItems: !0 });
|
|
1950
1984
|
}
|
|
1951
1985
|
},
|
|
1952
1986
|
onDragEnd: () => {
|
|
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 _t = /* @__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 _t = /* @__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 } =
|
|
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 _t = /* @__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 _t = /* @__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 _t = /* @__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 _t = /* @__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 _t = /* @__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 an(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(""), un = 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 yn = 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 yn = 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 yn = 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 En(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 Dn(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 On(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 An(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 Mn({ 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,17 +2523,17 @@ function Mn({ 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,
|
|
2501
2535
|
e.boardState.rotate
|
|
2502
|
-
]), { updateItemExtent: b } =
|
|
2536
|
+
]), { updateItemExtent: b } = B(), x = {
|
|
2503
2537
|
userSelect: "none",
|
|
2504
2538
|
position: "absolute",
|
|
2505
2539
|
inset: 0,
|
|
@@ -2536,8 +2570,8 @@ var Nn = ({ children: e }) => e, Pn = {}, Fn = {
|
|
|
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 Nn = ({ children: e }) => e, Pn = {}, Fn = {
|
|
|
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 Nn = ({ children: e }) => e, Pn = {}, Fn = {
|
|
|
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 Nn = ({ children: e }) => e, Pn = {}, Fn = {
|
|
|
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
|