react-sync-board 1.3.1 → 1.4.1
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 +29 -0
- package/dist/react-sync-board.js +626 -475
- package/dist/react-sync-board.js.map +1 -1
- package/dist/react-sync-board.umd.cjs +13 -13
- package/dist/react-sync-board.umd.cjs.map +1 -1
- package/package.json +7 -8
package/dist/react-sync-board.js
CHANGED
|
@@ -14,12 +14,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
14
14
|
}, S = (e, t, n) => (n = e == null ? {} : m(v(e)), x(t || !e || !e.__esModule || !y.call(e, "default") ? h(n, "default", {
|
|
15
15
|
value: e,
|
|
16
16
|
enumerable: !0
|
|
17
|
-
}) : n, e)), C =
|
|
17
|
+
}) : n, e)), C = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", w = (e = 21) => {
|
|
18
|
+
let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
|
|
19
|
+
for (; e--;) t += C[n[e] & 63];
|
|
20
|
+
return t;
|
|
21
|
+
}, ee = 128, T = (e) => typeof e == "string" && e.length > 0 && e.length <= ee && !/[\u0000-\u001f\u007f]/u.test(e), E = (e, t) => {
|
|
22
|
+
if (!T(e)) throw Error(`Invalid ${t}`);
|
|
23
|
+
}, D = class {
|
|
18
24
|
constructor(e, t, n = null) {
|
|
19
25
|
this._socket = e, this.userId = n, this.room = t, this.toUnregister = [() => {
|
|
20
26
|
this._socket.off(`${this.room}.isMaster`), this._socket.off(`${this.room}.roomJoined`), this._socket.off(`${this.room}._call`);
|
|
21
|
-
}], this._left = !1, this.registeredRPC =
|
|
27
|
+
}], this._left = !1, this.registeredRPC = Object.create(null), this._socket.on(`${this.room}._call`, async ({ callId: t, name: n, params: r }) => {
|
|
22
28
|
try {
|
|
29
|
+
if (!Object.hasOwn(this.registeredRPC, n)) throw Error(`Function ${n} is not registered`);
|
|
23
30
|
let i = await this.registeredRPC[n](r);
|
|
24
31
|
e.emit(`${this.room}._result.${t}`, { ok: i || null });
|
|
25
32
|
} catch (n) {
|
|
@@ -28,10 +35,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
28
35
|
});
|
|
29
36
|
}
|
|
30
37
|
async _callServerRPC(e, t) {
|
|
31
|
-
let n =
|
|
38
|
+
let n = w();
|
|
32
39
|
return new Promise((r, i) => {
|
|
33
40
|
this._socket.once(`${this.room}._result.${n}`, (e) => {
|
|
34
|
-
|
|
41
|
+
Object.hasOwn(e, "ok") ? r(e.ok) : i(e.err);
|
|
35
42
|
}), this._socket.emit(`${this.room}._call`, {
|
|
36
43
|
callId: n,
|
|
37
44
|
name: e,
|
|
@@ -45,13 +52,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
45
52
|
}), this._socket.emit(`${this.room}.leave`);
|
|
46
53
|
}
|
|
47
54
|
publish(e, t, n = !1) {
|
|
48
|
-
this._socket.emit(`${this.room}.publish`, {
|
|
55
|
+
E(e, "event name"), this._socket.emit(`${this.room}.publish`, {
|
|
49
56
|
name: e,
|
|
50
57
|
params: t,
|
|
51
58
|
self: n
|
|
52
59
|
});
|
|
53
60
|
}
|
|
54
61
|
subscribe(e, t) {
|
|
62
|
+
if (E(e, "event name"), typeof t != "function") throw TypeError("Invalid callback");
|
|
55
63
|
this._socket.on(`${this.room}.${e}`, t);
|
|
56
64
|
let n = () => {
|
|
57
65
|
this._socket.off(`${this.room}.${e}`, t);
|
|
@@ -59,6 +67,13 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
59
67
|
return this.toUnregister.push(n), n;
|
|
60
68
|
}
|
|
61
69
|
async register(e, t, { invoke: n = "single" } = {}) {
|
|
70
|
+
if (E(e, "RPC name"), typeof t != "function") throw TypeError("Invalid callback");
|
|
71
|
+
if (![
|
|
72
|
+
"single",
|
|
73
|
+
"first",
|
|
74
|
+
"last",
|
|
75
|
+
"random"
|
|
76
|
+
].includes(n)) throw Error("Invalid invoke mode");
|
|
62
77
|
this.registeredRPC[e] = t, await this._callServerRPC("register", {
|
|
63
78
|
name: e,
|
|
64
79
|
invoke: n
|
|
@@ -74,8 +89,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
74
89
|
params: t
|
|
75
90
|
});
|
|
76
91
|
}
|
|
77
|
-
},
|
|
78
|
-
|
|
92
|
+
}, te = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
|
|
93
|
+
E(t, "room name"), i != null && E(i, "user id");
|
|
94
|
+
let a = new D(e, t, i);
|
|
79
95
|
return new Promise((o) => {
|
|
80
96
|
let s = !0;
|
|
81
97
|
e.on(`${t}.isMaster`, () => {
|
|
@@ -92,7 +108,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
92
108
|
userId: i
|
|
93
109
|
});
|
|
94
110
|
});
|
|
95
|
-
},
|
|
111
|
+
}, O = e.createContext(), ne = () => /* @__PURE__ */ a("div", {
|
|
96
112
|
style: {
|
|
97
113
|
position: "absolute",
|
|
98
114
|
top: "0",
|
|
@@ -103,8 +119,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
103
119
|
alignItems: "center"
|
|
104
120
|
},
|
|
105
121
|
children: /* @__PURE__ */ a("h2", { children: "🌀 Loading..." })
|
|
106
|
-
}),
|
|
107
|
-
let [c, l] = e.useState(!1), [u, d] = e.useState(!1), [f, p] = e.useState(null), m = e.useRef(null), h = e.useRef(!1), g = r(
|
|
122
|
+
}), re = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = ne, children: s }) => {
|
|
123
|
+
let [c, l] = e.useState(!1), [u, d] = e.useState(!1), [f, p] = e.useState(null), m = e.useRef(null), h = e.useRef(!1), g = r(O), _ = e.useRef(!1);
|
|
108
124
|
return e.useEffect(() => (h.current = !0, () => {
|
|
109
125
|
h.current = !1;
|
|
110
126
|
}), []), e.useEffect(() => {
|
|
@@ -115,7 +131,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
115
131
|
return t.on("disconnect", e), () => {
|
|
116
132
|
t.off("disconnect", e);
|
|
117
133
|
};
|
|
118
|
-
}, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0,
|
|
134
|
+
}, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, te({
|
|
119
135
|
socket: t,
|
|
120
136
|
room: n,
|
|
121
137
|
onMaster: () => {
|
|
@@ -130,7 +146,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
130
146
|
i,
|
|
131
147
|
n,
|
|
132
148
|
t
|
|
133
|
-
]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(
|
|
149
|
+
]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(O.Provider, {
|
|
134
150
|
value: {
|
|
135
151
|
...g,
|
|
136
152
|
[i]: {
|
|
@@ -142,33 +158,22 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
142
158
|
},
|
|
143
159
|
children: s
|
|
144
160
|
});
|
|
145
|
-
},
|
|
161
|
+
}, k = (e = "default") => (r(O) || {})[e], A = (e, t) => e.classList && e.classList.contains(t), j = (e, t) => A(e, t) ? e : e.parentNode ? j(e.parentNode, t) : !1, ie = ([e, t], [n, r]) => {
|
|
146
162
|
let i = Math.abs(e - n), a = Math.abs(t - r);
|
|
147
163
|
return Math.hypot(i, a);
|
|
148
|
-
},
|
|
164
|
+
}, ae = (e, t, n) => {
|
|
149
165
|
let r = n * Math.PI / 180;
|
|
150
166
|
return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
|
|
151
|
-
},
|
|
152
|
-
let [o, s] =
|
|
167
|
+
}, oe = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => ae((e - i) / n, (t - a) / n, -r), M = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
|
|
168
|
+
let [o, s] = ae(e, t, r);
|
|
153
169
|
return [o * n + i, s * n + a];
|
|
154
|
-
},
|
|
155
|
-
let i = e.x, a = e.y, o = t.x, s = t.y, c = n.x, l = n.y, u = o - i, d = s - a, f = i - c, p = a - l, m = u * u + d * d, h = 2 * (f * u + p * d), g = f * f + p * p - r * r, _ = h * h - 4 * m * g;
|
|
156
|
-
if (_ < 0) return [];
|
|
157
|
-
let v = (-h + Math.sqrt(_)) / (2 * m), y = (-h - Math.sqrt(_)) / (2 * m), b = [];
|
|
158
|
-
return v >= 0 && v <= 1 && b.push({
|
|
159
|
-
x: i + v * u,
|
|
160
|
-
y: a + v * d
|
|
161
|
-
}), y >= 0 && y <= 1 && b.push({
|
|
162
|
-
x: i + y * u,
|
|
163
|
-
y: a + y * d
|
|
164
|
-
}), b;
|
|
165
|
-
}, N = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, ie = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
|
|
170
|
+
}, N = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, se = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
|
|
166
171
|
let { top: n, left: r } = e.getBoundingClientRect();
|
|
167
172
|
return N({
|
|
168
173
|
x: r,
|
|
169
174
|
y: n
|
|
170
175
|
}, t);
|
|
171
|
-
}),
|
|
176
|
+
}), ce = (e, t) => se(e, t.getBoundingClientRect()), P = (e, t) => {
|
|
172
177
|
try {
|
|
173
178
|
return document.getElementById(`${e}__${t}`);
|
|
174
179
|
} catch {
|
|
@@ -178,7 +183,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
178
183
|
}, F = (e) => {
|
|
179
184
|
let t = e?.dataset?.id;
|
|
180
185
|
return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
|
|
181
|
-
},
|
|
186
|
+
}, le = (e, t) => {
|
|
182
187
|
let n = e.reduce((e, n) => {
|
|
183
188
|
let r = P(t, n);
|
|
184
189
|
if (!r) return e || null;
|
|
@@ -191,10 +196,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
191
196
|
}, 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;
|
|
192
197
|
}, null);
|
|
193
198
|
return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
|
|
194
|
-
},
|
|
195
|
-
let r = new Set(
|
|
199
|
+
}, ue = (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, ...ue(e, e[t].linkedItems, n)] : [])).flat()), de = (e, t, n) => {
|
|
200
|
+
let r = new Set(ue(e, n));
|
|
196
201
|
return t.filter((e) => r.has(e));
|
|
197
|
-
},
|
|
202
|
+
}, fe = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
|
|
198
203
|
x: 0,
|
|
199
204
|
y: 0
|
|
200
205
|
} }) => {
|
|
@@ -215,7 +220,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
215
220
|
x: l + o.x - n / 2,
|
|
216
221
|
y: u + o.y - r / 2
|
|
217
222
|
};
|
|
218
|
-
},
|
|
223
|
+
}, pe = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), me = () => pe[Math.floor(Math.random() * pe.length)], I = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
|
|
219
224
|
a({ ready: !1 });
|
|
220
225
|
let c = [];
|
|
221
226
|
(async () => {
|
|
@@ -239,7 +244,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
239
244
|
return d.unsub = () => {
|
|
240
245
|
c.forEach((e) => e());
|
|
241
246
|
}, d;
|
|
242
|
-
},
|
|
247
|
+
}, he = e.createContext(), ge = (e, t) => ({
|
|
243
248
|
items: {},
|
|
244
249
|
getItems: () => t().items,
|
|
245
250
|
setItems: (t) => e({ items: t }),
|
|
@@ -262,7 +267,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
262
267
|
});
|
|
263
268
|
}), { items: r };
|
|
264
269
|
})
|
|
265
|
-
}),
|
|
270
|
+
}), _e = (e, t) => ({
|
|
266
271
|
itemIds: [],
|
|
267
272
|
setItemIds: (t) => e({ itemIds: t }),
|
|
268
273
|
getItemIds: () => t().itemIds,
|
|
@@ -279,7 +284,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
279
284
|
return r[t] = n, { itemIds: r };
|
|
280
285
|
}),
|
|
281
286
|
updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
|
|
282
|
-
}),
|
|
287
|
+
}), ve = (e, t) => ({
|
|
283
288
|
removeItemsById: (t) => e((e) => ({
|
|
284
289
|
itemIds: e.itemIds.filter((e) => !t.includes(e)),
|
|
285
290
|
items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
|
|
@@ -306,7 +311,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
306
311
|
itemIds: r
|
|
307
312
|
};
|
|
308
313
|
})
|
|
309
|
-
}),
|
|
314
|
+
}), ye = (e, t) => ({
|
|
310
315
|
boardConfig: {},
|
|
311
316
|
getBoardConfig: () => t().boardConfig,
|
|
312
317
|
setBoardConfig: (t) => e({ boardConfig: t }),
|
|
@@ -314,7 +319,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
314
319
|
...e.boardConfig,
|
|
315
320
|
...t
|
|
316
321
|
} }))
|
|
317
|
-
}),
|
|
322
|
+
}), be = (e, t) => ({
|
|
318
323
|
session: {},
|
|
319
324
|
getSessionInfo: () => t().session,
|
|
320
325
|
setSessionInfo: (t) => e({ session: t }),
|
|
@@ -322,34 +327,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
322
327
|
...e.session,
|
|
323
328
|
...t
|
|
324
329
|
} }))
|
|
325
|
-
}),
|
|
326
|
-
let { wire: i } =
|
|
330
|
+
}), xe = ({ storeName: t, children: n, defaultValue: r }) => {
|
|
331
|
+
let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(I({
|
|
327
332
|
wire: i,
|
|
328
333
|
storeName: t,
|
|
329
334
|
defaultValue: r
|
|
330
335
|
}, (...e) => ({
|
|
331
|
-
...me(...e),
|
|
332
|
-
...he(...e),
|
|
333
336
|
...ge(...e),
|
|
334
337
|
..._e(...e),
|
|
335
|
-
...ve(...e)
|
|
338
|
+
...ve(...e),
|
|
339
|
+
...ye(...e),
|
|
340
|
+
...be(...e)
|
|
336
341
|
}))));
|
|
337
342
|
return e.useEffect(() => {
|
|
338
343
|
let e = l.subscribe((t) => {
|
|
339
344
|
t.ready && (e(), c(!0));
|
|
340
345
|
});
|
|
341
|
-
}, [l]), o ? /* @__PURE__ */ a(
|
|
346
|
+
}, [l]), o ? /* @__PURE__ */ a(he.Provider, {
|
|
342
347
|
value: l,
|
|
343
348
|
children: n
|
|
344
349
|
}) : null;
|
|
345
|
-
},
|
|
346
|
-
let t = r(
|
|
350
|
+
}, L = (e) => {
|
|
351
|
+
let t = r(he);
|
|
347
352
|
return c(t, e, l);
|
|
348
|
-
},
|
|
349
|
-
let [t, n] =
|
|
353
|
+
}, Se = () => {
|
|
354
|
+
let [t, n] = L((e) => [e.itemIds, e.items]);
|
|
350
355
|
return e.useMemo(() => t.map((e) => n[e]), [t, n]);
|
|
351
|
-
},
|
|
352
|
-
let [t, n, r] =
|
|
356
|
+
}, Ce = () => {
|
|
357
|
+
let [t, n, r] = L((e) => [
|
|
353
358
|
e.items,
|
|
354
359
|
e.itemIds,
|
|
355
360
|
e.getItemList
|
|
@@ -364,7 +369,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
364
369
|
n,
|
|
365
370
|
r
|
|
366
371
|
]), i;
|
|
367
|
-
},
|
|
372
|
+
}, we = 5e4, Te = e.createContext(), Ee = (e, t) => ({
|
|
368
373
|
config: {
|
|
369
374
|
itemTemplates: {},
|
|
370
375
|
actions: {},
|
|
@@ -375,14 +380,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
375
380
|
radius: 0
|
|
376
381
|
},
|
|
377
382
|
boardWrapperRect: {},
|
|
378
|
-
boardSize:
|
|
383
|
+
boardSize: we
|
|
379
384
|
},
|
|
380
385
|
updateConfiguration: (t) => e((e) => ({ config: {
|
|
381
386
|
...e.config,
|
|
382
387
|
...t
|
|
383
388
|
} })),
|
|
384
389
|
getConfiguration: () => t().config
|
|
385
|
-
}),
|
|
390
|
+
}), De = (e, t) => ({
|
|
386
391
|
boardState: {
|
|
387
392
|
movingItems: !1,
|
|
388
393
|
selecting: !1,
|
|
@@ -398,7 +403,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
398
403
|
...t
|
|
399
404
|
} })),
|
|
400
405
|
getBoardState: () => t().boardState
|
|
401
|
-
}),
|
|
406
|
+
}), Oe = (e, t) => ({
|
|
402
407
|
interactions: {},
|
|
403
408
|
getInteractions: () => t().interactions,
|
|
404
409
|
register: (t, n) => e((e) => {
|
|
@@ -420,7 +425,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
420
425
|
setTimeout(() => e(n), 0);
|
|
421
426
|
});
|
|
422
427
|
}
|
|
423
|
-
}),
|
|
428
|
+
}), ke = (e, t) => ({
|
|
424
429
|
selection: [],
|
|
425
430
|
setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
|
|
426
431
|
getSelection: () => t().selection,
|
|
@@ -436,76 +441,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
436
441
|
let n = e.selectionBox;
|
|
437
442
|
return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
|
|
438
443
|
})
|
|
439
|
-
}),
|
|
444
|
+
}), Ae = ({ children: t }) => {
|
|
440
445
|
let [n] = e.useState(() => s((...e) => ({
|
|
441
|
-
...we(...e),
|
|
442
|
-
...Te(...e),
|
|
443
446
|
...Ee(...e),
|
|
444
|
-
...De(...e)
|
|
447
|
+
...De(...e),
|
|
448
|
+
...Oe(...e),
|
|
449
|
+
...ke(...e)
|
|
445
450
|
})));
|
|
446
|
-
return /* @__PURE__ */ a(
|
|
451
|
+
return /* @__PURE__ */ a(Te.Provider, {
|
|
447
452
|
value: n,
|
|
448
453
|
children: t
|
|
449
454
|
});
|
|
450
|
-
},
|
|
451
|
-
let t = r(
|
|
455
|
+
}, R = (e) => {
|
|
456
|
+
let t = r(Te);
|
|
452
457
|
return c(t, e, l);
|
|
453
|
-
},
|
|
454
|
-
let [e] =
|
|
458
|
+
}, je = () => {
|
|
459
|
+
let [e] = R((e) => [e.selection]);
|
|
455
460
|
return e;
|
|
456
|
-
},
|
|
457
|
-
let [e] =
|
|
461
|
+
}, Me = () => {
|
|
462
|
+
let [e] = R((e) => [e.getSelection]);
|
|
458
463
|
return e;
|
|
459
|
-
},
|
|
460
|
-
let [
|
|
461
|
-
translateX: s,
|
|
462
|
-
translateY: c,
|
|
463
|
-
scale: n,
|
|
464
|
-
rotate: r
|
|
465
|
-
}), u = {
|
|
466
|
-
x: i.x + o / 2,
|
|
467
|
-
y: i.y + o / 2
|
|
468
|
-
}, d = {
|
|
469
|
-
x: o / 2,
|
|
470
|
-
y: o / 2
|
|
471
|
-
}, f = j(l, [u.x, u.y]), p = Math.min(a.width, a.height), m = i.radius + p / 2 / n - je / n;
|
|
472
|
-
if (f > m) {
|
|
473
|
-
let e = re({
|
|
474
|
-
x: l[0],
|
|
475
|
-
y: l[1]
|
|
476
|
-
}, u, u, m - 1 / n)[0], [t, i] = M([-e.x, -e.y], {
|
|
477
|
-
translateX: a.width / 2,
|
|
478
|
-
translateY: a.height / 2,
|
|
479
|
-
scale: n,
|
|
480
|
-
rotate: r
|
|
481
|
-
});
|
|
482
|
-
s = t, c = i;
|
|
483
|
-
}
|
|
484
|
-
let h = j(l, [d.x, d.y]), g = o / 2 - j([0, 0], [a.width, a.height]) / n;
|
|
485
|
-
if (h > g) {
|
|
486
|
-
let e = re({
|
|
487
|
-
x: l[0],
|
|
488
|
-
y: l[1]
|
|
489
|
-
}, d, d, g - 1 / n)[0];
|
|
490
|
-
if (e) {
|
|
491
|
-
let [t, i] = M([-e.x, -e.y], {
|
|
492
|
-
translateX: a.width / 2,
|
|
493
|
-
translateY: a.height / 2,
|
|
494
|
-
scale: n,
|
|
495
|
-
rotate: r
|
|
496
|
-
});
|
|
497
|
-
s = t, c = i;
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
return [s, c];
|
|
501
|
-
}, z = () => {
|
|
502
|
-
let [t, n, r, i, a] = L((e) => [
|
|
464
|
+
}, Ne = 1e3, Pe = .8, z = !1, B = () => {
|
|
465
|
+
let [t, n, r, i, a] = R((e) => [
|
|
503
466
|
e.getBoardState,
|
|
504
467
|
e.updateBoardState,
|
|
505
468
|
e.config.itemExtent,
|
|
506
469
|
e.getConfiguration,
|
|
507
470
|
e.updateConfiguration
|
|
508
|
-
]), o = e.useRef([.15, 5]), [s] =
|
|
471
|
+
]), o = e.useRef([.15, 5]), [s] = L((e) => [e.getItemList]), c = e.useCallback(() => {
|
|
509
472
|
let { translateX: e, translateY: n, scale: r, rotate: i } = t();
|
|
510
473
|
return {
|
|
511
474
|
translateX: e,
|
|
@@ -513,39 +476,30 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
513
476
|
scale: r,
|
|
514
477
|
rotate: i
|
|
515
478
|
};
|
|
516
|
-
}, [t]), l = e.useCallback((e, n) =>
|
|
479
|
+
}, [t]), l = e.useCallback((e, n) => oe([e, n], t()), [t]), d = e.useCallback((e, n) => M([e, n], t()), [t]), f = e.useCallback((e, n) => {
|
|
517
480
|
let { scale: r, rotate: i } = t();
|
|
518
|
-
return
|
|
481
|
+
return oe([e, n], {
|
|
519
482
|
translateX: 0,
|
|
520
483
|
translateY: 0,
|
|
521
484
|
rotate: i,
|
|
522
485
|
scale: r
|
|
523
486
|
});
|
|
524
487
|
}, [t]), p = e.useCallback((e) => e > o.current[1] ? o.current[1] : e < o.current[0] ? o.current[0] : e, []), m = e.useCallback((e) => {
|
|
525
|
-
let
|
|
526
|
-
...
|
|
527
|
-
...e(
|
|
488
|
+
let r = t(), { translateX: i, translateY: a, scale: o, rotate: s } = {
|
|
489
|
+
...r,
|
|
490
|
+
...e(r)
|
|
528
491
|
};
|
|
529
|
-
|
|
530
|
-
let
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
scale:
|
|
535
|
-
rotate:
|
|
536
|
-
itemExtent: r,
|
|
537
|
-
boardWrapperRect: a,
|
|
538
|
-
boardSize: o
|
|
539
|
-
})), R && console.log("New fixed values: ", m, h, f, d), n({
|
|
540
|
-
translateX: isNaN(m) ? 0 : m,
|
|
541
|
-
translateY: isNaN(h) ? 0 : h,
|
|
542
|
-
scale: isNaN(f) ? p(1) : f,
|
|
543
|
-
rotate: isNaN(d) ? 0 : d
|
|
492
|
+
z && console.log("New expected values: ", i, a, o, s);
|
|
493
|
+
let c = p(o), l = i, u = a;
|
|
494
|
+
z && console.log("New fixed values: ", l, u, c, s), n({
|
|
495
|
+
translateX: Number.isFinite(l) ? l : r.translateX,
|
|
496
|
+
translateY: Number.isFinite(u) ? u : r.translateY,
|
|
497
|
+
scale: Number.isFinite(c) ? c : p(1),
|
|
498
|
+
rotate: Number.isFinite(s) ? s : r.rotate
|
|
544
499
|
});
|
|
545
500
|
}, [
|
|
546
501
|
p,
|
|
547
502
|
t,
|
|
548
|
-
i,
|
|
549
503
|
n
|
|
550
504
|
]), h = e.useCallback((e) => {
|
|
551
505
|
let t = (t) => ({
|
|
@@ -578,21 +532,21 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
578
532
|
i,
|
|
579
533
|
m
|
|
580
534
|
]), _ = e.useCallback(({ x: e, y: n, radius: r }) => {
|
|
581
|
-
let { rotate: a } = t(), { boardWrapperRect: o
|
|
535
|
+
let { rotate: a } = t(), { boardWrapperRect: o } = i(), [s, c, l] = [
|
|
582
536
|
e || 0,
|
|
583
537
|
n || 0,
|
|
584
538
|
r || 2e3
|
|
585
|
-
],
|
|
539
|
+
], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Pe), [h, g] = M([-s, -c], {
|
|
586
540
|
translateX: o.width / 2,
|
|
587
541
|
translateY: o.height / 2,
|
|
588
|
-
scale:
|
|
542
|
+
scale: f,
|
|
589
543
|
rotate: a
|
|
590
544
|
});
|
|
591
545
|
m((e) => ({
|
|
592
546
|
...e,
|
|
593
|
-
translateX:
|
|
594
|
-
translateY:
|
|
595
|
-
scale:
|
|
547
|
+
translateX: h,
|
|
548
|
+
translateY: g,
|
|
549
|
+
scale: f
|
|
596
550
|
}));
|
|
597
551
|
}, [
|
|
598
552
|
p,
|
|
@@ -600,25 +554,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
600
554
|
i,
|
|
601
555
|
m
|
|
602
556
|
]), v = e.useCallback(() => {
|
|
603
|
-
let { boardWrapperRect: e
|
|
557
|
+
let { boardWrapperRect: e } = i(), [t, n] = l(e.width / 2, e.height / 2);
|
|
604
558
|
return {
|
|
605
|
-
x:
|
|
606
|
-
y:
|
|
559
|
+
x: t,
|
|
560
|
+
y: n
|
|
607
561
|
};
|
|
608
562
|
}, [l, i]), y = e.useCallback(() => {
|
|
609
|
-
let e = s(), {
|
|
610
|
-
let r = P(
|
|
611
|
-
return r && (e.left = Math.min(
|
|
563
|
+
let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
|
|
564
|
+
let r = P(t, n.id);
|
|
565
|
+
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;
|
|
612
566
|
}, {
|
|
613
|
-
left:
|
|
614
|
-
top:
|
|
615
|
-
right: -
|
|
616
|
-
bottom: -
|
|
617
|
-
})
|
|
618
|
-
|
|
619
|
-
|
|
567
|
+
left: Infinity,
|
|
568
|
+
top: Infinity,
|
|
569
|
+
right: -Infinity,
|
|
570
|
+
bottom: -Infinity
|
|
571
|
+
});
|
|
572
|
+
if (!Number.isFinite(n.left)) {
|
|
573
|
+
a({ itemExtent: {
|
|
574
|
+
x: 0,
|
|
575
|
+
y: 0,
|
|
576
|
+
radius: Ne
|
|
577
|
+
} });
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
let r = {
|
|
581
|
+
x: (n.right + n.left) / 2,
|
|
582
|
+
y: (n.bottom + n.top) / 2
|
|
620
583
|
};
|
|
621
|
-
|
|
584
|
+
r.radius = Math.max(ie([r.x, r.y], [n.left, n.top]), Ne), a({ itemExtent: r });
|
|
622
585
|
}, [
|
|
623
586
|
i,
|
|
624
587
|
s,
|
|
@@ -637,7 +600,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
637
600
|
]), x = u(() => y(), [y], 200);
|
|
638
601
|
return e.useEffect(() => {
|
|
639
602
|
window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
|
|
640
|
-
|
|
603
|
+
z = !0;
|
|
641
604
|
};
|
|
642
605
|
}, [i, y]), {
|
|
643
606
|
setDim: m,
|
|
@@ -653,8 +616,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
653
616
|
fromWrapperToBoard: l,
|
|
654
617
|
fromBoardToWrapper: d
|
|
655
618
|
};
|
|
656
|
-
},
|
|
657
|
-
let [n, r, i] =
|
|
619
|
+
}, V = (t) => {
|
|
620
|
+
let [n, r, i] = R(({ register: e, unregister: t, callInteractions: n }) => [
|
|
658
621
|
e,
|
|
659
622
|
t,
|
|
660
623
|
n
|
|
@@ -671,13 +634,13 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
671
634
|
i(t, e);
|
|
672
635
|
}, [i, t])
|
|
673
636
|
};
|
|
674
|
-
},
|
|
675
|
-
let { call: t } =
|
|
637
|
+
}, H = () => {
|
|
638
|
+
let { call: t } = V("place"), { call: n } = V("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = R((e) => [
|
|
676
639
|
e.clear,
|
|
677
640
|
e.reverse,
|
|
678
641
|
e.unselect,
|
|
679
642
|
e.getConfiguration
|
|
680
|
-
]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } =
|
|
643
|
+
]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = L(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
|
|
681
644
|
getItems: e,
|
|
682
645
|
getItemIds: t,
|
|
683
646
|
setItemIds: n,
|
|
@@ -711,7 +674,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
711
674
|
]), b = e.useCallback((e, t, n = !1) => {
|
|
712
675
|
v([e], t, n);
|
|
713
676
|
}, [v]), x = e.useCallback((e, t) => {
|
|
714
|
-
p(
|
|
677
|
+
p(de(l(), u(), e), t);
|
|
715
678
|
}, [
|
|
716
679
|
u,
|
|
717
680
|
l,
|
|
@@ -733,7 +696,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
733
696
|
},
|
|
734
697
|
...e.grid
|
|
735
698
|
};
|
|
736
|
-
return
|
|
699
|
+
return fe({
|
|
737
700
|
x: e.x,
|
|
738
701
|
y: e.y,
|
|
739
702
|
width: i.clientWidth,
|
|
@@ -741,7 +704,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
741
704
|
}, a);
|
|
742
705
|
}, !0);
|
|
743
706
|
}, [c, v]), w = e.useCallback((e, n) => {
|
|
744
|
-
let r =
|
|
707
|
+
let r = de(l(), u(), e);
|
|
745
708
|
S(r), v(r, { moving: !1 }, !0), C(r, n), t(e), i();
|
|
746
709
|
}, [
|
|
747
710
|
v,
|
|
@@ -751,16 +714,16 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
751
714
|
S,
|
|
752
715
|
C,
|
|
753
716
|
i
|
|
754
|
-
]),
|
|
717
|
+
]), ee = e.useCallback((e) => {
|
|
755
718
|
d(e);
|
|
756
|
-
}, [d]),
|
|
719
|
+
}, [d]), T = e.useCallback((e) => {
|
|
757
720
|
let t = u(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
|
|
758
721
|
d(r), o();
|
|
759
722
|
}, [
|
|
760
723
|
u,
|
|
761
724
|
o,
|
|
762
725
|
d
|
|
763
|
-
]),
|
|
726
|
+
]), E = e.useCallback((e, t) => {
|
|
764
727
|
let n = l(), r = Object.fromEntries(t.map((t, r) => {
|
|
765
728
|
let i = n[e[r]];
|
|
766
729
|
return [t, {
|
|
@@ -777,7 +740,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
777
740
|
u,
|
|
778
741
|
d
|
|
779
742
|
]), D = e.useCallback((e, t) => {
|
|
780
|
-
let n = r(), i = e.map((e, t) =>
|
|
743
|
+
let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
|
|
781
744
|
...e,
|
|
782
745
|
x: n.x + 2 * t,
|
|
783
746
|
y: n.y + 2 * t
|
|
@@ -789,39 +752,39 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
789
752
|
r,
|
|
790
753
|
g,
|
|
791
754
|
w
|
|
792
|
-
]),
|
|
755
|
+
]), te = e.useCallback((e, t) => {
|
|
793
756
|
D([e], t);
|
|
794
|
-
}, [D]),
|
|
757
|
+
}, [D]), O = e.useCallback((e) => {
|
|
795
758
|
s(e), m(e), n(e);
|
|
796
759
|
}, [
|
|
797
760
|
s,
|
|
798
761
|
m,
|
|
799
762
|
n
|
|
800
|
-
]),
|
|
763
|
+
]), ne = e.useCallback((e) => {
|
|
801
764
|
let t = l();
|
|
802
765
|
return e.map((e) => t[e]);
|
|
803
766
|
}, [l]);
|
|
804
767
|
return {
|
|
805
768
|
putItemsOnTop: S,
|
|
806
769
|
batchUpdateItems: v,
|
|
807
|
-
updateItemOrder:
|
|
770
|
+
updateItemOrder: ee,
|
|
808
771
|
moveItems: x,
|
|
809
772
|
placeItems: w,
|
|
810
773
|
updateItem: b,
|
|
811
|
-
swapItems:
|
|
812
|
-
reverseItemsOrder:
|
|
774
|
+
swapItems: E,
|
|
775
|
+
reverseItemsOrder: T,
|
|
813
776
|
setItemList: y,
|
|
814
|
-
pushItem:
|
|
777
|
+
pushItem: te,
|
|
815
778
|
pushItems: D,
|
|
816
|
-
removeItems:
|
|
779
|
+
removeItems: O,
|
|
817
780
|
getItemList: h,
|
|
818
781
|
findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
|
|
819
782
|
if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
|
|
820
|
-
let a =
|
|
783
|
+
let a = j(e, "item");
|
|
821
784
|
if (a) {
|
|
822
|
-
if (
|
|
823
|
-
if (!i &&
|
|
824
|
-
if (
|
|
785
|
+
if (A(a, "selected")) return a;
|
|
786
|
+
if (!i && A(a, "locked") && !A(e, "passthrough")) return r ? a : null;
|
|
787
|
+
if (A(e, "passthrough")) {
|
|
825
788
|
let e = u(), { uid: r } = c(), o = e.reduce((e, i) => {
|
|
826
789
|
let a = P(r, i), o = a.getBoundingClientRect();
|
|
827
790
|
return N({
|
|
@@ -831,14 +794,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
831
794
|
}, []);
|
|
832
795
|
for (let e = 0; e < o.length; e += 1) {
|
|
833
796
|
let t = o[e];
|
|
834
|
-
if (t !== a && (i || !
|
|
797
|
+
if (t !== a && (i || !A(t, "locked"))) return t;
|
|
835
798
|
}
|
|
836
799
|
return null;
|
|
837
800
|
}
|
|
838
801
|
}
|
|
839
802
|
return a;
|
|
840
803
|
}, [c, u]),
|
|
841
|
-
getItems:
|
|
804
|
+
getItems: ne
|
|
842
805
|
};
|
|
843
806
|
}, Fe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
844
807
|
t.exports = function e(t, n) {
|
|
@@ -890,7 +853,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
890
853
|
let { actions: n = Ie(e, t) } = e;
|
|
891
854
|
return n.map((e) => typeof e == "string" ? { name: e } : e);
|
|
892
855
|
}, Re = () => {
|
|
893
|
-
let [t, r] =
|
|
856
|
+
let [t, r] = L((e) => [e.items, e.getItems]), [i, a, o] = R((e) => [
|
|
894
857
|
e.config.itemTemplates,
|
|
895
858
|
e.selection,
|
|
896
859
|
e.getSelection
|
|
@@ -924,31 +887,27 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
924
887
|
p
|
|
925
888
|
], 100), { availableActions: s };
|
|
926
889
|
}, ze = () => {
|
|
927
|
-
let [e] =
|
|
890
|
+
let [e] = R((e) => [e.selectionBox]);
|
|
928
891
|
return e;
|
|
929
|
-
}, Be =
|
|
930
|
-
let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
|
|
931
|
-
for (; e--;) t += Be[n[e] & 63];
|
|
932
|
-
return t;
|
|
933
|
-
}, Ve = e.createContext(), He = (e) => {
|
|
892
|
+
}, Be = e.createContext(), Ve = (e) => {
|
|
934
893
|
localStorage.setItem("user", JSON.stringify(e));
|
|
935
|
-
},
|
|
894
|
+
}, He = () => {
|
|
936
895
|
if (localStorage.user) {
|
|
937
896
|
let e = {
|
|
938
897
|
name: "Player",
|
|
939
|
-
color:
|
|
940
|
-
uid:
|
|
898
|
+
color: me(),
|
|
899
|
+
uid: w(),
|
|
941
900
|
...JSON.parse(localStorage.user)
|
|
942
901
|
};
|
|
943
|
-
return
|
|
902
|
+
return Ve(e), e;
|
|
944
903
|
}
|
|
945
904
|
let e = {
|
|
946
905
|
name: "Player",
|
|
947
|
-
color:
|
|
948
|
-
uid:
|
|
906
|
+
color: me(),
|
|
907
|
+
uid: w()
|
|
949
908
|
};
|
|
950
|
-
return
|
|
951
|
-
},
|
|
909
|
+
return Ve(e), e;
|
|
910
|
+
}, Ue = (e) => (t, n) => ({
|
|
952
911
|
isSpaceMaster: !1,
|
|
953
912
|
users: {},
|
|
954
913
|
getUser: () => n().users[e],
|
|
@@ -971,7 +930,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
971
930
|
id: r,
|
|
972
931
|
uid: t.users[r].uid
|
|
973
932
|
};
|
|
974
|
-
return a.id === e &&
|
|
933
|
+
return a.id === e && Ve(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
|
|
975
934
|
...t.users,
|
|
976
935
|
[r]: a
|
|
977
936
|
} };
|
|
@@ -994,7 +953,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
994
953
|
e < i.timestamp && (i.id = t, i.timestamp = e);
|
|
995
954
|
}), t({ isSpaceMaster: i.id === e });
|
|
996
955
|
}
|
|
997
|
-
}),
|
|
956
|
+
}), We = (e) => ({
|
|
998
957
|
cursors: {},
|
|
999
958
|
moveCursor: (t, n) => e((e) => ({ cursors: {
|
|
1000
959
|
...e.cursors,
|
|
@@ -1004,12 +963,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1004
963
|
let n = { ...e.cursors };
|
|
1005
964
|
return delete n[t], { cursors: n };
|
|
1006
965
|
})
|
|
1007
|
-
}),
|
|
1008
|
-
let { wire: r, isMaster: i } =
|
|
966
|
+
}), Ge = ({ storeName: t, children: n }) => {
|
|
967
|
+
let { wire: r, isMaster: i } = k("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
|
|
1009
968
|
return e.useEffect(() => {
|
|
1010
969
|
let e = !0, n = [];
|
|
1011
970
|
if (!o && !d.current) return d.current = !0, (() => {
|
|
1012
|
-
let n = s(
|
|
971
|
+
let n = s(I({
|
|
1013
972
|
wire: r,
|
|
1014
973
|
storeName: t,
|
|
1015
974
|
noSync: [
|
|
@@ -1019,8 +978,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1019
978
|
"electSpaceMaster"
|
|
1020
979
|
]
|
|
1021
980
|
}, (...e) => ({
|
|
1022
|
-
...
|
|
1023
|
-
...
|
|
981
|
+
...Ue(r.userId)(...e),
|
|
982
|
+
...We(...e)
|
|
1024
983
|
}), r, t)), i = n.subscribe((t) => {
|
|
1025
984
|
t.ready && (i(), e && c(n));
|
|
1026
985
|
});
|
|
@@ -1034,7 +993,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1034
993
|
r.userId
|
|
1035
994
|
]), e.useEffect(() => {
|
|
1036
995
|
if (o) return o.getState().addUser({
|
|
1037
|
-
...
|
|
996
|
+
...He(),
|
|
1038
997
|
id: r.userId
|
|
1039
998
|
}), u(!0), () => {
|
|
1040
999
|
o.getState().removeUser(r.userId);
|
|
@@ -1062,14 +1021,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1062
1021
|
i,
|
|
1063
1022
|
o,
|
|
1064
1023
|
r
|
|
1065
|
-
]), l ? /* @__PURE__ */ a(
|
|
1024
|
+
]), l ? /* @__PURE__ */ a(Be.Provider, {
|
|
1066
1025
|
value: o,
|
|
1067
1026
|
children: n
|
|
1068
1027
|
}) : null;
|
|
1069
1028
|
}, U = (e) => {
|
|
1070
|
-
let t = r(
|
|
1029
|
+
let t = r(Be);
|
|
1071
1030
|
return c(t, e, l);
|
|
1072
|
-
},
|
|
1031
|
+
}, Ke = () => {
|
|
1073
1032
|
let [t, n, r, i, a] = U((e) => [
|
|
1074
1033
|
e.isSpaceMaster,
|
|
1075
1034
|
e.getUser(),
|
|
@@ -1088,8 +1047,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1088
1047
|
}, [n, o]),
|
|
1089
1048
|
joinSpace: a
|
|
1090
1049
|
};
|
|
1091
|
-
},
|
|
1092
|
-
let [t, n, r] =
|
|
1050
|
+
}, qe = () => {
|
|
1051
|
+
let [t, n, r] = L((e) => [
|
|
1093
1052
|
e.boardConfig,
|
|
1094
1053
|
e.getBoardConfig,
|
|
1095
1054
|
e.setBoardConfig
|
|
@@ -1100,11 +1059,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1100
1059
|
let i = n(), a = t(i);
|
|
1101
1060
|
r(a);
|
|
1102
1061
|
}, [n, r])];
|
|
1103
|
-
},
|
|
1104
|
-
let [e] =
|
|
1062
|
+
}, Je = () => {
|
|
1063
|
+
let [e] = R((e) => [e.boardState]);
|
|
1105
1064
|
return e;
|
|
1106
|
-
},
|
|
1107
|
-
let [e, t, n, r] =
|
|
1065
|
+
}, Ye = () => {
|
|
1066
|
+
let [e, t, n, r] = L((e) => [
|
|
1108
1067
|
e.getSessionInfo,
|
|
1109
1068
|
e.setSessionInfo,
|
|
1110
1069
|
e.updateSessionInfo,
|
|
@@ -1116,7 +1075,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1116
1075
|
sessionInfo: r,
|
|
1117
1076
|
updateSessionInfo: n
|
|
1118
1077
|
};
|
|
1119
|
-
},
|
|
1078
|
+
}, Xe = e.createContext(), Ze = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
|
|
1120
1079
|
type: "message",
|
|
1121
1080
|
user: {
|
|
1122
1081
|
name: e,
|
|
@@ -1124,9 +1083,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1124
1083
|
color: n
|
|
1125
1084
|
},
|
|
1126
1085
|
content: r,
|
|
1127
|
-
uid:
|
|
1086
|
+
uid: w(),
|
|
1128
1087
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
1129
|
-
}),
|
|
1088
|
+
}), Qe = (e, t) => ({
|
|
1130
1089
|
messages: [],
|
|
1131
1090
|
setMessages: (t) => e({ messages: t.map((e) => ({
|
|
1132
1091
|
...e,
|
|
@@ -1137,28 +1096,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1137
1096
|
timestamp: Date.parse(t.timestamp)
|
|
1138
1097
|
}] })),
|
|
1139
1098
|
sendMessage: (e, n) => {
|
|
1140
|
-
let r =
|
|
1099
|
+
let r = Ze({
|
|
1141
1100
|
user: e,
|
|
1142
1101
|
content: n
|
|
1143
1102
|
});
|
|
1144
1103
|
r && t().addMessage(r);
|
|
1145
1104
|
}
|
|
1146
|
-
}),
|
|
1147
|
-
let { wire: i } =
|
|
1105
|
+
}), $e = ({ storeName: t, children: n, defaultValue: r = [] }) => {
|
|
1106
|
+
let { wire: i } = k("room"), [o] = e.useState(() => s(I({
|
|
1148
1107
|
wire: i,
|
|
1149
1108
|
storeName: t,
|
|
1150
1109
|
defaultValue: r,
|
|
1151
1110
|
noSync: ["sendMessage"]
|
|
1152
|
-
}, (...e) => ({
|
|
1153
|
-
return /* @__PURE__ */ a(
|
|
1111
|
+
}, (...e) => ({ ...Qe(...e) }))));
|
|
1112
|
+
return /* @__PURE__ */ a(Xe.Provider, {
|
|
1154
1113
|
value: o,
|
|
1155
1114
|
children: n
|
|
1156
1115
|
});
|
|
1157
|
-
},
|
|
1158
|
-
let t = r(
|
|
1116
|
+
}, et = (e) => {
|
|
1117
|
+
let t = r(Xe);
|
|
1159
1118
|
return c(t, e, l);
|
|
1160
|
-
},
|
|
1161
|
-
let n = U((e) => e.getUser()), [r, i, a] =
|
|
1119
|
+
}, tt = () => {}, nt = (t = tt) => {
|
|
1120
|
+
let n = U((e) => e.getUser()), [r, i, a] = et((e) => [
|
|
1162
1121
|
e.messages,
|
|
1163
1122
|
e.setMessages,
|
|
1164
1123
|
e.sendMessage
|
|
@@ -1172,41 +1131,41 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1172
1131
|
a(n, e);
|
|
1173
1132
|
}, [n, a])
|
|
1174
1133
|
};
|
|
1175
|
-
},
|
|
1134
|
+
}, rt = ({ children: t, session: n }) => {
|
|
1176
1135
|
let r = U((e) => e.joinSpace);
|
|
1177
1136
|
return e.useEffect(() => (r(n), () => {
|
|
1178
1137
|
r(null);
|
|
1179
1138
|
}), [r, n]), t;
|
|
1180
|
-
},
|
|
1181
|
-
let [l] = e.useState(n ||
|
|
1139
|
+
}, it = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
|
|
1140
|
+
let [l] = e.useState(n || w()), [u] = e.useState(r || w()), [d] = e.useState(() => ({
|
|
1182
1141
|
itemIds: i.map(({ id: e }) => e),
|
|
1183
1142
|
items: Object.fromEntries(i.map((e) => [e.id, e]))
|
|
1184
1143
|
}));
|
|
1185
|
-
return
|
|
1144
|
+
return k("room") ? /* @__PURE__ */ a($e, {
|
|
1186
1145
|
storeName: `${u}_messages`,
|
|
1187
1146
|
defaultValue: o,
|
|
1188
|
-
children: /* @__PURE__ */ a(
|
|
1147
|
+
children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
|
|
1189
1148
|
storeName: `${u}_item`,
|
|
1190
1149
|
defaultValue: d,
|
|
1191
|
-
children: /* @__PURE__ */ a(
|
|
1150
|
+
children: /* @__PURE__ */ a(rt, {
|
|
1192
1151
|
...c,
|
|
1193
1152
|
session: u
|
|
1194
1153
|
})
|
|
1195
1154
|
}) })
|
|
1196
|
-
}) : /* @__PURE__ */ a(
|
|
1155
|
+
}) : /* @__PURE__ */ a(re, {
|
|
1197
1156
|
room: l,
|
|
1198
1157
|
channel: "room",
|
|
1199
1158
|
socket: t,
|
|
1200
1159
|
LoadingComponent: s,
|
|
1201
|
-
children: /* @__PURE__ */ a(
|
|
1160
|
+
children: /* @__PURE__ */ a(Ge, {
|
|
1202
1161
|
storeName: `${l}_users`,
|
|
1203
|
-
children: /* @__PURE__ */ a(
|
|
1162
|
+
children: /* @__PURE__ */ a($e, {
|
|
1204
1163
|
storeName: `${u}_messages`,
|
|
1205
1164
|
defaultValue: o,
|
|
1206
|
-
children: /* @__PURE__ */ a(
|
|
1165
|
+
children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
|
|
1207
1166
|
storeName: `${u}_item`,
|
|
1208
1167
|
defaultValue: d,
|
|
1209
|
-
children: /* @__PURE__ */ a(
|
|
1168
|
+
children: /* @__PURE__ */ a(rt, {
|
|
1210
1169
|
...c,
|
|
1211
1170
|
session: u
|
|
1212
1171
|
})
|
|
@@ -1214,19 +1173,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1214
1173
|
})
|
|
1215
1174
|
})
|
|
1216
1175
|
});
|
|
1217
|
-
},
|
|
1218
|
-
let [o] = e.useState(n ||
|
|
1219
|
-
return /* @__PURE__ */ a(
|
|
1176
|
+
}, at = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
|
|
1177
|
+
let [o] = e.useState(n || w());
|
|
1178
|
+
return /* @__PURE__ */ a(re, {
|
|
1220
1179
|
room: o,
|
|
1221
1180
|
channel: "room",
|
|
1222
1181
|
socket: t,
|
|
1223
1182
|
LoadingComponent: i,
|
|
1224
|
-
children: /* @__PURE__ */ a(
|
|
1183
|
+
children: /* @__PURE__ */ a(Ge, {
|
|
1225
1184
|
storeName: `${o}_users`,
|
|
1226
1185
|
children: r
|
|
1227
1186
|
})
|
|
1228
1187
|
});
|
|
1229
|
-
},
|
|
1188
|
+
}, ot = { data: "" }, st = (e) => {
|
|
1230
1189
|
if (typeof window == "object") {
|
|
1231
1190
|
let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
|
|
1232
1191
|
innerHTML: " ",
|
|
@@ -1234,23 +1193,23 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1234
1193
|
});
|
|
1235
1194
|
return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
|
|
1236
1195
|
}
|
|
1237
|
-
return e ||
|
|
1238
|
-
},
|
|
1196
|
+
return e || ot;
|
|
1197
|
+
}, ct = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, lt = /\/\*[^]*?\*\/| +/g, ut = /\n+/g, W = (e, t) => {
|
|
1239
1198
|
let n = "", r = "", i = "";
|
|
1240
1199
|
for (let a in e) {
|
|
1241
1200
|
let o = e[a];
|
|
1242
1201
|
a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? W(o, a) : a + "{" + W(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += W(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 += W.p ? W.p(a, o) : a + ":" + o + ";");
|
|
1243
1202
|
}
|
|
1244
1203
|
return n + (t && i ? t + "{" + i + "}" : i) + r;
|
|
1245
|
-
}, G = {},
|
|
1204
|
+
}, G = {}, dt = (e) => {
|
|
1246
1205
|
if (typeof e == "object") {
|
|
1247
1206
|
let t = "";
|
|
1248
|
-
for (let n in e) t += n +
|
|
1207
|
+
for (let n in e) t += n + dt(e[n]);
|
|
1249
1208
|
return t;
|
|
1250
1209
|
}
|
|
1251
1210
|
return e;
|
|
1252
|
-
},
|
|
1253
|
-
let a =
|
|
1211
|
+
}, ft = (e, t, n, r, i) => {
|
|
1212
|
+
let a = dt(e), o = G[a] || (G[a] = ((e) => {
|
|
1254
1213
|
let t = 0, n = 11;
|
|
1255
1214
|
for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
|
|
1256
1215
|
return "go" + n;
|
|
@@ -1258,7 +1217,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1258
1217
|
if (!G[o]) {
|
|
1259
1218
|
let t = a === e ? ((e) => {
|
|
1260
1219
|
let t, n, r = [{}];
|
|
1261
|
-
for (; t =
|
|
1220
|
+
for (; t = ct.exec(e.replace(lt, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(ut, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(ut, " ").trim();
|
|
1262
1221
|
return r[0];
|
|
1263
1222
|
})(e) : e;
|
|
1264
1223
|
G[o] = W(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
|
|
@@ -1267,7 +1226,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1267
1226
|
return n && (G.g = G[o]), ((e, t, n, r) => {
|
|
1268
1227
|
r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
|
|
1269
1228
|
})(G[o], t, r, s), o;
|
|
1270
|
-
},
|
|
1229
|
+
}, pt = (e, t, n) => e.reduce((e, r, i) => {
|
|
1271
1230
|
let a = t[i];
|
|
1272
1231
|
if (a && a.call) {
|
|
1273
1232
|
let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
|
|
@@ -1277,15 +1236,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
|
|
|
1277
1236
|
}, "");
|
|
1278
1237
|
function K(e) {
|
|
1279
1238
|
let t = this || {}, n = e.call ? e(t.p) : e;
|
|
1280
|
-
return
|
|
1239
|
+
return ft(n.unshift ? n.raw ? pt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, st(t.target), t.g, t.o, t.k);
|
|
1281
1240
|
}
|
|
1282
1241
|
K.bind({ g: 1 }), K.bind({ k: 1 });
|
|
1283
|
-
function
|
|
1242
|
+
function mt(e, t, n, r) {
|
|
1284
1243
|
W.p = t;
|
|
1285
1244
|
}
|
|
1286
1245
|
//#endregion
|
|
1287
1246
|
//#region src/lib/board/Gesture.jsx
|
|
1288
|
-
var
|
|
1247
|
+
var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
1289
1248
|
t.exports = function e(t, n) {
|
|
1290
1249
|
if (t === n) return !0;
|
|
1291
1250
|
if (t && n && typeof t == "object" && typeof n == "object") {
|
|
@@ -1309,23 +1268,23 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1309
1268
|
}
|
|
1310
1269
|
return t !== t && n !== n;
|
|
1311
1270
|
};
|
|
1312
|
-
})))(), 1),
|
|
1271
|
+
})))(), 1), gt = () => {
|
|
1313
1272
|
let e = navigator.userAgent.toLowerCase();
|
|
1314
1273
|
return /mac os ?x 10/.test(e);
|
|
1315
|
-
},
|
|
1274
|
+
}, _t = (() => {
|
|
1316
1275
|
let e = document.createElement("iframe");
|
|
1317
1276
|
e.src = "#", document.body.appendChild(e);
|
|
1318
1277
|
let t = e.contentWindow.document;
|
|
1319
1278
|
t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
|
|
1320
1279
|
let n = t.body.firstElementChild.offsetHeight;
|
|
1321
1280
|
return document.body.removeChild(e), n;
|
|
1322
|
-
})(),
|
|
1281
|
+
})(), vt = 800, yt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], bt = ([e, t], [n, r]) => {
|
|
1323
1282
|
let i = Math.abs(e - n), a = Math.abs(t - r);
|
|
1324
1283
|
return Math.hypot(i, a);
|
|
1325
|
-
}, q = () => {},
|
|
1284
|
+
}, q = () => {}, xt = (e) => (t) => {
|
|
1326
1285
|
let { event: n } = t;
|
|
1327
1286
|
return n.isPropagationStopped() ? null : e(t);
|
|
1328
|
-
},
|
|
1287
|
+
}, St = (e) => async (...t) => {
|
|
1329
1288
|
try {
|
|
1330
1289
|
await e(...t);
|
|
1331
1290
|
} catch (e) {
|
|
@@ -1335,18 +1294,18 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1335
1294
|
lastPromise = Promise.resolve(!0);
|
|
1336
1295
|
add(e, ...t) {
|
|
1337
1296
|
return new Promise((n, r) => {
|
|
1338
|
-
this.lastPromise = this.lastPromise.then(() => St(
|
|
1297
|
+
this.lastPromise = this.lastPromise.then(() => xt(St(e))(...t)).then(n).catch(r);
|
|
1339
1298
|
});
|
|
1340
1299
|
}
|
|
1341
|
-
}(), Y = ({ children: t, onDrag: n = q, onDragStart: r = q, onDragEnd: i = q, onPan: o = q, onTap: s = q, onLongTap: c = q, onDoubleTap: l = q, onZoom: u, mainAction: d = "drag" }) => {
|
|
1342
|
-
let
|
|
1300
|
+
}(), Y = ({ children: t, onDrag: n = q, onDragStart: r = q, onDragEnd: i = q, onPan: o = q, onTap: s = q, onLongTap: c = q, onDoubleTap: l = q, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
|
|
1301
|
+
let p = e.useRef(null), m = e.useRef({
|
|
1343
1302
|
moving: !1,
|
|
1344
1303
|
pointers: {},
|
|
1345
1304
|
mainPointer: void 0
|
|
1346
|
-
}),
|
|
1305
|
+
}), h = (e) => {
|
|
1347
1306
|
let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
|
|
1348
|
-
if (!(c || s && !
|
|
1349
|
-
if (
|
|
1307
|
+
if (!(c || s && !gt())) {
|
|
1308
|
+
if (gt() && !s) J.add(o, {
|
|
1350
1309
|
deltaX: -2 * t,
|
|
1351
1310
|
deltaY: -2 * n,
|
|
1352
1311
|
button: 1,
|
|
@@ -1360,11 +1319,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1360
1319
|
let t = n;
|
|
1361
1320
|
switch (a) {
|
|
1362
1321
|
case 1:
|
|
1363
|
-
t *=
|
|
1322
|
+
t *= _t;
|
|
1364
1323
|
break;
|
|
1365
|
-
case 2: t *=
|
|
1324
|
+
case 2: t *= vt;
|
|
1366
1325
|
}
|
|
1367
|
-
|
|
1326
|
+
gt() && (t *= 2), J.add(u, {
|
|
1368
1327
|
scale: t,
|
|
1369
1328
|
clientX: r,
|
|
1370
1329
|
clientY: i,
|
|
@@ -1372,15 +1331,15 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1372
1331
|
});
|
|
1373
1332
|
}
|
|
1374
1333
|
}
|
|
1375
|
-
},
|
|
1334
|
+
}, g = (e) => {
|
|
1376
1335
|
let { target: t, button: n, clientX: r, clientY: i, pointerId: a, altKey: o, ctrlKey: s, metaKey: l, isPrimary: u } = e;
|
|
1377
|
-
if (
|
|
1336
|
+
if (m.current.pointers[a] = {
|
|
1378
1337
|
clientX: r,
|
|
1379
1338
|
clientY: i
|
|
1380
|
-
}, u && (
|
|
1381
|
-
if (
|
|
1382
|
-
let { clientX: e, clientY: t } =
|
|
1383
|
-
Object.assign(
|
|
1339
|
+
}, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
|
|
1340
|
+
if (m.current.mainPointer !== a) try {
|
|
1341
|
+
let { clientX: e, clientY: t } = yt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = bt([e, t], [r, i]);
|
|
1342
|
+
Object.assign(m.current, {
|
|
1384
1343
|
pressed: !0,
|
|
1385
1344
|
moving: !1,
|
|
1386
1345
|
gestureStart: !1,
|
|
@@ -1392,11 +1351,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1392
1351
|
prevDistance: s
|
|
1393
1352
|
});
|
|
1394
1353
|
} catch (e) {
|
|
1395
|
-
console.log("Error while getting other pointer. Ignoring", e),
|
|
1354
|
+
console.log("Error while getting other pointer. Ignoring", e), m.current.mainPointer;
|
|
1396
1355
|
}
|
|
1397
1356
|
return;
|
|
1398
1357
|
}
|
|
1399
|
-
|
|
1358
|
+
m.current.mainPointer = a, Object.assign(m.current, {
|
|
1400
1359
|
pressed: !0,
|
|
1401
1360
|
moving: !1,
|
|
1402
1361
|
gestureStart: !1,
|
|
@@ -1411,7 +1370,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1411
1370
|
target: t,
|
|
1412
1371
|
timeStart: Date.now(),
|
|
1413
1372
|
longTapTimeout: setTimeout(async () => {
|
|
1414
|
-
|
|
1373
|
+
m.current.noTap = !0, J.add(c, {
|
|
1415
1374
|
clientX: r,
|
|
1416
1375
|
clientY: i,
|
|
1417
1376
|
altKey: o,
|
|
@@ -1427,89 +1386,89 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1427
1386
|
} catch (e) {
|
|
1428
1387
|
console.log("Fail to capture pointer", e);
|
|
1429
1388
|
}
|
|
1430
|
-
},
|
|
1431
|
-
if (
|
|
1432
|
-
let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey:
|
|
1433
|
-
|
|
1389
|
+
}, _ = (e) => {
|
|
1390
|
+
if (m.current.pressed) {
|
|
1391
|
+
let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: f, buttons: h } = e;
|
|
1392
|
+
m.current.pointers[t] = {
|
|
1434
1393
|
clientX: i,
|
|
1435
1394
|
clientY: a
|
|
1436
|
-
},
|
|
1437
|
-
let g = Object.keys(
|
|
1395
|
+
}, m.current.moving = !0;
|
|
1396
|
+
let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
|
|
1438
1397
|
if (g) {
|
|
1439
|
-
let { clientX: e, clientY: n } =
|
|
1440
|
-
_ = (e + i) / 2, v = (n + a) / 2, y =
|
|
1398
|
+
let { clientX: e, clientY: n } = yt(m.current.pointers, t);
|
|
1399
|
+
_ = (e + i) / 2, v = (n + a) / 2, y = bt([e, n], [i, a]);
|
|
1441
1400
|
} else _ = i, v = a;
|
|
1442
|
-
let b = c || s || l ||
|
|
1401
|
+
let b = c || s || l || f || h !== 1;
|
|
1443
1402
|
d !== "drag" && (b = !b);
|
|
1444
1403
|
let x = !b, S = b;
|
|
1445
1404
|
if (x) {
|
|
1446
|
-
|
|
1405
|
+
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), J.add(r, {
|
|
1447
1406
|
deltaX: 0,
|
|
1448
1407
|
deltaY: 0,
|
|
1449
|
-
startX:
|
|
1450
|
-
startY:
|
|
1451
|
-
clientX:
|
|
1452
|
-
clientY:
|
|
1408
|
+
startX: m.current.startX,
|
|
1409
|
+
startY: m.current.startY,
|
|
1410
|
+
clientX: m.current.startX,
|
|
1411
|
+
clientY: m.current.startY,
|
|
1453
1412
|
distanceX: 0,
|
|
1454
1413
|
distanceY: 0,
|
|
1455
|
-
button:
|
|
1414
|
+
button: m.current.currentButton,
|
|
1456
1415
|
altKey: s,
|
|
1457
1416
|
shiftKey: c,
|
|
1458
1417
|
ctrlKey: l,
|
|
1459
|
-
metaKey:
|
|
1460
|
-
target:
|
|
1461
|
-
event:
|
|
1418
|
+
metaKey: f,
|
|
1419
|
+
target: m.current.target,
|
|
1420
|
+
event: m.current.pointerDownEvent
|
|
1462
1421
|
}));
|
|
1463
|
-
let t = _ -
|
|
1422
|
+
let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
|
|
1464
1423
|
J.add(n, {
|
|
1465
1424
|
deltaX: t,
|
|
1466
1425
|
deltaY: i,
|
|
1467
|
-
startX:
|
|
1468
|
-
startY:
|
|
1426
|
+
startX: m.current.startX,
|
|
1427
|
+
startY: m.current.startY,
|
|
1469
1428
|
clientX: _,
|
|
1470
1429
|
clientY: v,
|
|
1471
1430
|
distanceX: a,
|
|
1472
1431
|
distanceY: o,
|
|
1473
|
-
button:
|
|
1432
|
+
button: m.current.currentButton,
|
|
1474
1433
|
altKey: s,
|
|
1475
1434
|
shiftKey: c,
|
|
1476
1435
|
ctrlKey: l,
|
|
1477
|
-
metaKey:
|
|
1478
|
-
target:
|
|
1436
|
+
metaKey: f,
|
|
1437
|
+
target: m.current.target,
|
|
1479
1438
|
event: e
|
|
1480
1439
|
});
|
|
1481
1440
|
}
|
|
1482
1441
|
if (S) {
|
|
1483
|
-
|
|
1484
|
-
let t = _ -
|
|
1442
|
+
m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
|
|
1443
|
+
let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
|
|
1485
1444
|
if (J.add(o, {
|
|
1486
1445
|
deltaX: t,
|
|
1487
1446
|
deltaY: n,
|
|
1488
|
-
button:
|
|
1447
|
+
button: m.current.currentButton,
|
|
1489
1448
|
altKey: s,
|
|
1490
1449
|
shiftKey: c,
|
|
1491
1450
|
ctrlKey: l,
|
|
1492
|
-
metaKey:
|
|
1451
|
+
metaKey: f,
|
|
1493
1452
|
target: r,
|
|
1494
1453
|
event: e
|
|
1495
|
-
}), y !==
|
|
1496
|
-
let t =
|
|
1454
|
+
}), y !== m.current.prevDistance && u) {
|
|
1455
|
+
let t = m.current.prevDistance - y;
|
|
1497
1456
|
Math.abs(t) > 0 && (J.add(u, {
|
|
1498
1457
|
scale: t * 3,
|
|
1499
1458
|
clientX: _,
|
|
1500
1459
|
clientY: v,
|
|
1501
1460
|
event: e
|
|
1502
|
-
}),
|
|
1461
|
+
}), m.current.prevDistance = y);
|
|
1503
1462
|
}
|
|
1504
1463
|
}
|
|
1505
|
-
|
|
1464
|
+
m.current.prevX = _, m.current.prevY = v;
|
|
1506
1465
|
}
|
|
1507
|
-
},
|
|
1466
|
+
}, v = (e) => {
|
|
1508
1467
|
let { clientX: t, clientY: n, altKey: r, shiftKey: a, ctrlKey: o, metaKey: c, target: l, pointerId: u } = e;
|
|
1509
|
-
if (
|
|
1510
|
-
if (delete
|
|
1511
|
-
let { clientX: e, clientY: t } =
|
|
1512
|
-
Object.assign(
|
|
1468
|
+
if (m.current.pointers[u]) {
|
|
1469
|
+
if (delete m.current.pointers[u], m.current.mainPointer !== u) {
|
|
1470
|
+
let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
|
|
1471
|
+
Object.assign(m.current, {
|
|
1513
1472
|
prevX: e,
|
|
1514
1473
|
prevY: t,
|
|
1515
1474
|
prevDistance: 0,
|
|
@@ -1517,12 +1476,12 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1517
1476
|
});
|
|
1518
1477
|
return;
|
|
1519
1478
|
}
|
|
1520
|
-
for (; Object.keys(
|
|
1521
|
-
|
|
1479
|
+
for (; Object.keys(m.current.pointers).length > 0;) {
|
|
1480
|
+
m.current.mainPointer = Number(Object.keys(m.current.pointers)[0]);
|
|
1522
1481
|
try {
|
|
1523
|
-
|
|
1524
|
-
let { clientX: e, clientY: t } =
|
|
1525
|
-
Object.assign(
|
|
1482
|
+
m.current.target.setPointerCapture(m.current.mainPointer);
|
|
1483
|
+
let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
|
|
1484
|
+
Object.assign(m.current, {
|
|
1526
1485
|
prevX: e,
|
|
1527
1486
|
prevY: t,
|
|
1528
1487
|
prevDistance: 0,
|
|
@@ -1530,28 +1489,28 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1530
1489
|
});
|
|
1531
1490
|
return;
|
|
1532
1491
|
} catch (e) {
|
|
1533
|
-
console.log("Fails to set pointer capture", e),
|
|
1492
|
+
console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
|
|
1534
1493
|
}
|
|
1535
1494
|
}
|
|
1536
|
-
if (
|
|
1537
|
-
deltaX: t -
|
|
1538
|
-
deltaY: n -
|
|
1539
|
-
startX:
|
|
1540
|
-
startY:
|
|
1495
|
+
if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, J.add(i, {
|
|
1496
|
+
deltaX: t - m.current.prevX,
|
|
1497
|
+
deltaY: n - m.current.prevY,
|
|
1498
|
+
startX: m.current.startX,
|
|
1499
|
+
startY: m.current.startY,
|
|
1541
1500
|
clientX: t,
|
|
1542
1501
|
clientY: n,
|
|
1543
|
-
distanceX: t -
|
|
1544
|
-
distanceY: n -
|
|
1545
|
-
button:
|
|
1502
|
+
distanceX: t - m.current.startX,
|
|
1503
|
+
distanceY: n - m.current.startY,
|
|
1504
|
+
button: m.current.currentButton,
|
|
1546
1505
|
altKey: r,
|
|
1547
1506
|
shiftKey: a,
|
|
1548
1507
|
ctrlKey: o,
|
|
1549
1508
|
metaKey: c,
|
|
1550
1509
|
event: e
|
|
1551
|
-
}),
|
|
1510
|
+
}), p.current.style.cursor = "auto";
|
|
1552
1511
|
else {
|
|
1553
1512
|
let i = Date.now();
|
|
1554
|
-
|
|
1513
|
+
m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && J.add(s, {
|
|
1555
1514
|
clientX: t,
|
|
1556
1515
|
clientY: n,
|
|
1557
1516
|
altKey: r,
|
|
@@ -1565,13 +1524,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1565
1524
|
}
|
|
1566
1525
|
};
|
|
1567
1526
|
return /* @__PURE__ */ a("div", {
|
|
1568
|
-
onWheel:
|
|
1569
|
-
onPointerDown:
|
|
1570
|
-
onPointerMove:
|
|
1571
|
-
onPointerUp:
|
|
1572
|
-
|
|
1573
|
-
onPointerLeave: _,
|
|
1574
|
-
onPointerCancel: _,
|
|
1527
|
+
onWheel: h,
|
|
1528
|
+
onPointerDown: g,
|
|
1529
|
+
onPointerMove: _,
|
|
1530
|
+
onPointerUp: v,
|
|
1531
|
+
onPointerCancel: v,
|
|
1575
1532
|
onDoubleClick: (e) => {
|
|
1576
1533
|
let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
|
|
1577
1534
|
J.add(l, {
|
|
@@ -1585,12 +1542,18 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1585
1542
|
event: e
|
|
1586
1543
|
});
|
|
1587
1544
|
},
|
|
1588
|
-
style: {
|
|
1589
|
-
|
|
1545
|
+
style: {
|
|
1546
|
+
touchAction: "none",
|
|
1547
|
+
...f ? {
|
|
1548
|
+
position: "absolute",
|
|
1549
|
+
inset: 0
|
|
1550
|
+
} : {}
|
|
1551
|
+
},
|
|
1552
|
+
ref: p,
|
|
1590
1553
|
children: t
|
|
1591
1554
|
});
|
|
1592
|
-
},
|
|
1593
|
-
let [n] =
|
|
1555
|
+
}, Ct = ({ onResize: e, ...t }) => {
|
|
1556
|
+
let [n] = R((e) => [e.getBoardState]);
|
|
1594
1557
|
return /* @__PURE__ */ a(Y, {
|
|
1595
1558
|
onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
|
|
1596
1559
|
i.stopPropagation();
|
|
@@ -1602,13 +1565,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1602
1565
|
},
|
|
1603
1566
|
children: /* @__PURE__ */ a("div", { ...t })
|
|
1604
1567
|
});
|
|
1605
|
-
},
|
|
1568
|
+
}, wt = K`
|
|
1606
1569
|
display: inline-block;
|
|
1607
1570
|
transition: transform 150ms;
|
|
1608
1571
|
user-select: none;
|
|
1609
1572
|
padding: 2px;
|
|
1610
1573
|
box-sizing: border-box;
|
|
1611
|
-
`,
|
|
1574
|
+
`, Tt = K`
|
|
1612
1575
|
border: 2px dashed #db5034;
|
|
1613
1576
|
padding: 0px;
|
|
1614
1577
|
cursor: pointer;
|
|
@@ -1616,22 +1579,22 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1616
1579
|
position: absolute;
|
|
1617
1580
|
width: 0px;
|
|
1618
1581
|
height: 0px;
|
|
1619
|
-
`,
|
|
1582
|
+
`, Et = K`
|
|
1620
1583
|
top: 0;
|
|
1621
1584
|
left: 0;
|
|
1622
|
-
`,
|
|
1585
|
+
`, Dt = K`
|
|
1623
1586
|
top: 0;
|
|
1624
1587
|
right: 0;
|
|
1625
|
-
`,
|
|
1588
|
+
`, Ot = K`
|
|
1626
1589
|
bottom: 0;
|
|
1627
1590
|
left: 0;
|
|
1628
|
-
`,
|
|
1591
|
+
`, kt = K`
|
|
1629
1592
|
bottom: 0;
|
|
1630
1593
|
right: 0;
|
|
1631
|
-
`,
|
|
1594
|
+
`, At = K`
|
|
1632
1595
|
top: 50%;
|
|
1633
1596
|
left: 50%;
|
|
1634
|
-
`,
|
|
1597
|
+
`, jt = K`
|
|
1635
1598
|
position: absolute;
|
|
1636
1599
|
|
|
1637
1600
|
width: 10px;
|
|
@@ -1706,16 +1669,16 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1706
1669
|
h: !0,
|
|
1707
1670
|
b: !0
|
|
1708
1671
|
}, Bt = 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 }) => {
|
|
1709
|
-
let h = e.useRef(null), [g] =
|
|
1672
|
+
let h = e.useRef(null), [g] = R((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = zt, resize: y = Rt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
|
|
1710
1673
|
e.useEffect(() => {
|
|
1711
1674
|
h.current.className = d;
|
|
1712
1675
|
}, [d]);
|
|
1713
1676
|
let x = [
|
|
1714
1677
|
"item",
|
|
1715
1678
|
s,
|
|
1716
|
-
|
|
1679
|
+
wt
|
|
1717
1680
|
];
|
|
1718
|
-
c && x.push("locked"), f && (x.push("selected"), x.push(
|
|
1681
|
+
c && x.push("locked"), f && (x.push("selected"), x.push(Tt)), Array.isArray(l) && x.concat(l);
|
|
1719
1682
|
let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
|
|
1720
1683
|
b((r) => {
|
|
1721
1684
|
let { offsetWidth: i, offsetHeight: a } = h.current;
|
|
@@ -1730,9 +1693,9 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1730
1693
|
});
|
|
1731
1694
|
}, w = ({ width: e }) => {
|
|
1732
1695
|
C({ width: e });
|
|
1733
|
-
},
|
|
1696
|
+
}, ee = ({ height: e }) => {
|
|
1734
1697
|
C({ height: e });
|
|
1735
|
-
},
|
|
1698
|
+
}, T = ({ width: e }) => {
|
|
1736
1699
|
C({
|
|
1737
1700
|
height: e,
|
|
1738
1701
|
width: e,
|
|
@@ -1761,29 +1724,29 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1761
1724
|
setState: b
|
|
1762
1725
|
})
|
|
1763
1726
|
}),
|
|
1727
|
+
/* @__PURE__ */ a("div", { className: `corner ${X} ${Et}` }),
|
|
1764
1728
|
/* @__PURE__ */ a("div", { className: `corner ${X} ${Dt}` }),
|
|
1765
|
-
/* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
|
|
1766
|
-
/* @__PURE__ */ a("div", { className: `corner ${X} ${At}` }),
|
|
1767
1729
|
/* @__PURE__ */ a("div", { className: `corner ${X} ${kt}` }),
|
|
1768
|
-
/* @__PURE__ */ a("div", { className: `
|
|
1730
|
+
/* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
|
|
1731
|
+
/* @__PURE__ */ a("div", { className: `center ${X} ${At}` }),
|
|
1769
1732
|
m && /* @__PURE__ */ o(i, { children: [
|
|
1770
|
-
v.b && /* @__PURE__ */ a(
|
|
1771
|
-
className: `${
|
|
1772
|
-
onResize: E
|
|
1773
|
-
}),
|
|
1774
|
-
v.h && /* @__PURE__ */ a(wt, {
|
|
1775
|
-
className: `${Z} ${Nt}`,
|
|
1733
|
+
v.b && /* @__PURE__ */ a(Ct, {
|
|
1734
|
+
className: `${jt} ${Pt}`,
|
|
1776
1735
|
onResize: T
|
|
1777
1736
|
}),
|
|
1778
|
-
v.
|
|
1779
|
-
className: `${
|
|
1737
|
+
v.h && /* @__PURE__ */ a(Ct, {
|
|
1738
|
+
className: `${jt} ${Nt}`,
|
|
1739
|
+
onResize: ee
|
|
1740
|
+
}),
|
|
1741
|
+
v.w && /* @__PURE__ */ a(Ct, {
|
|
1742
|
+
className: `${jt} ${Mt}`,
|
|
1780
1743
|
onResize: w
|
|
1781
1744
|
})
|
|
1782
1745
|
] })
|
|
1783
1746
|
]
|
|
1784
1747
|
})
|
|
1785
1748
|
});
|
|
1786
|
-
}, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0,
|
|
1749
|
+
}, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, ht.default)(e, i)), Vt = (e) => e, Ht = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
|
|
1787
1750
|
if (!r.itemMap[e.type]) return null;
|
|
1788
1751
|
let { stateHook: i = Vt } = 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);
|
|
1789
1752
|
return /* @__PURE__ */ a("div", {
|
|
@@ -1799,27 +1762,26 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1799
1762
|
})
|
|
1800
1763
|
});
|
|
1801
1764
|
}), Ut = () => {
|
|
1802
|
-
let { updateItem: e } =
|
|
1803
|
-
e.config.boardSize,
|
|
1765
|
+
let { updateItem: e } = H(), [t, n] = L((e) => [e.itemIds, e.items]), [r, i, o] = R((e) => [
|
|
1804
1766
|
e.config.showResizeHandle,
|
|
1805
1767
|
e.config.itemTemplates,
|
|
1806
1768
|
e.selection
|
|
1807
|
-
]), [
|
|
1769
|
+
]), [s] = U((e) => [e.getUser]), c = K({
|
|
1808
1770
|
position: "absolute",
|
|
1809
|
-
top:
|
|
1810
|
-
left:
|
|
1771
|
+
top: 0,
|
|
1772
|
+
left: 0,
|
|
1773
|
+
pointerEvents: "auto",
|
|
1811
1774
|
display: "inline-block",
|
|
1812
1775
|
lineHeight: 0
|
|
1813
1776
|
});
|
|
1814
1777
|
return t.map((t) => /* @__PURE__ */ a(Ht, {
|
|
1815
1778
|
state: n[t],
|
|
1816
1779
|
setState: e,
|
|
1817
|
-
isSelected:
|
|
1818
|
-
itemMap:
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
className: l
|
|
1780
|
+
isSelected: o.includes(t),
|
|
1781
|
+
itemMap: i,
|
|
1782
|
+
getCurrentUser: s,
|
|
1783
|
+
showResizeHandle: r,
|
|
1784
|
+
className: c
|
|
1823
1785
|
}, t));
|
|
1824
1786
|
}, Wt = K({
|
|
1825
1787
|
zIndex: 210,
|
|
@@ -1832,18 +1794,17 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1832
1794
|
let i = r[0];
|
|
1833
1795
|
return Array.from(t.getElementsByClassName("item")).filter((t) => {
|
|
1834
1796
|
let r = e[F(t)];
|
|
1835
|
-
return !r || !n && r.locked ? !1 :
|
|
1797
|
+
return !r || !n && r.locked ? !1 : ce(t, i);
|
|
1836
1798
|
}).map((e) => F(e));
|
|
1837
1799
|
}, Kt = ({ children: t, moveFirst: n }) => {
|
|
1838
|
-
let [r, i, s, c, l, u] =
|
|
1800
|
+
let [r, i, s, c, l, u] = R((e) => [
|
|
1839
1801
|
e.getSelection,
|
|
1840
1802
|
e.clear,
|
|
1841
1803
|
e.setSelection,
|
|
1842
1804
|
e.select,
|
|
1843
1805
|
e.getConfiguration,
|
|
1844
|
-
e.getBoardState,
|
|
1845
1806
|
e.updateBoardState
|
|
1846
|
-
]), { findElementUnderPointer: d } =
|
|
1807
|
+
]), { findElementUnderPointer: d } = H(), [p] = L((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
|
|
1847
1808
|
return f(document, "keydown", (e) => {
|
|
1848
1809
|
e.key === "l" && v(!0);
|
|
1849
1810
|
}), f(document, "keyup", (e) => {
|
|
@@ -1864,6 +1825,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1864
1825
|
s,
|
|
1865
1826
|
_
|
|
1866
1827
|
]), /* @__PURE__ */ a(Y, {
|
|
1828
|
+
fill: !0,
|
|
1867
1829
|
onDragStart: async (e) => {
|
|
1868
1830
|
await d(e) || (b.current.moving = !0, g(() => {
|
|
1869
1831
|
u({ selecting: !0 });
|
|
@@ -1884,20 +1846,20 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1884
1846
|
}), b.current.moving = !1, h({ moving: !1 }), y.current.style.cursor = "auto");
|
|
1885
1847
|
},
|
|
1886
1848
|
onTap: (e) => {
|
|
1887
|
-
let {
|
|
1888
|
-
if (!
|
|
1849
|
+
let { ctrlKey: t, metaKey: n } = e, a = d(e);
|
|
1850
|
+
if (!a) i();
|
|
1889
1851
|
else {
|
|
1890
|
-
let e = F(
|
|
1852
|
+
let e = F(a);
|
|
1891
1853
|
if (!e) {
|
|
1892
1854
|
i();
|
|
1893
1855
|
return;
|
|
1894
1856
|
}
|
|
1895
|
-
let
|
|
1896
|
-
|
|
1857
|
+
let o = r();
|
|
1858
|
+
a && !o.includes(e) && (t || n ? c([e]) : s([e]));
|
|
1897
1859
|
}
|
|
1898
1860
|
},
|
|
1899
1861
|
onLongTap: ({ target: e }) => {
|
|
1900
|
-
let t =
|
|
1862
|
+
let t = j(e, "item");
|
|
1901
1863
|
if (t) {
|
|
1902
1864
|
let e = F(t);
|
|
1903
1865
|
s([e]);
|
|
@@ -1906,6 +1868,10 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1906
1868
|
mainAction: n ? "pan" : "drag",
|
|
1907
1869
|
children: /* @__PURE__ */ o("div", {
|
|
1908
1870
|
ref: y,
|
|
1871
|
+
style: {
|
|
1872
|
+
position: "absolute",
|
|
1873
|
+
inset: 0
|
|
1874
|
+
},
|
|
1909
1875
|
children: [m.moving && /* @__PURE__ */ a("div", {
|
|
1910
1876
|
style: {
|
|
1911
1877
|
transform: `translate(${m.left}px, ${m.top}px)`,
|
|
@@ -1917,13 +1883,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1917
1883
|
})
|
|
1918
1884
|
});
|
|
1919
1885
|
}, qt = ({ children: t }) => {
|
|
1920
|
-
let { moveItems: n, placeItems: r, findElementUnderPointer: i } =
|
|
1886
|
+
let { moveItems: n, placeItems: r, findElementUnderPointer: i } = H(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = R((e) => [
|
|
1921
1887
|
e.select,
|
|
1922
1888
|
e.setSelection,
|
|
1923
1889
|
e.getSelection,
|
|
1924
1890
|
e.getBoardState,
|
|
1925
1891
|
e.updateBoardState
|
|
1926
|
-
]), [p] =
|
|
1892
|
+
]), [p] = L((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
|
|
1927
1893
|
return f(document, "keydown", (e) => {
|
|
1928
1894
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
|
|
1929
1895
|
let t = l();
|
|
@@ -1954,6 +1920,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
1954
1920
|
}
|
|
1955
1921
|
}
|
|
1956
1922
|
}), /* @__PURE__ */ a(Y, {
|
|
1923
|
+
fill: !0,
|
|
1957
1924
|
onDragStart: (e) => {
|
|
1958
1925
|
let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
|
|
1959
1926
|
if (a) {
|
|
@@ -2006,7 +1973,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2006
1973
|
,
|
|
2007
1974
|
,
|
|
2008
1975
|
].keys()].map((e) => `Digit${e + 1}`), Xt = () => {
|
|
2009
|
-
let [t, n] = e.useState({}), [r, i] =
|
|
1976
|
+
let [t, n] = e.useState({}), [r, i] = R((e) => [e.getBoardState, e.updateBoardState]);
|
|
2010
1977
|
return f(document, "keydown", (e) => {
|
|
2011
1978
|
if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && Yt.includes(e.code)) {
|
|
2012
1979
|
let a = e.code, { translateX: o, translateY: s, scale: c } = r();
|
|
@@ -2021,29 +1988,23 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2021
1988
|
}
|
|
2022
1989
|
}), null;
|
|
2023
1990
|
}, Zt = ({ children: t, moveFirst: n = !1 }) => {
|
|
2024
|
-
let r = e.useRef(null), [i, o, s, c
|
|
2025
|
-
{
|
|
2026
|
-
translateX: e.boardState.translateX,
|
|
2027
|
-
translateY: e.boardState.translateY,
|
|
2028
|
-
scale: e.boardState.scale,
|
|
2029
|
-
rotate: e.boardState.rotate
|
|
2030
|
-
},
|
|
1991
|
+
let r = e.useRef(null), [i, o, s, c] = R((e) => [
|
|
2031
1992
|
e.config.itemExtent,
|
|
2032
1993
|
e.getConfiguration,
|
|
2033
1994
|
e.updateBoardState,
|
|
2034
1995
|
e.getSelection
|
|
2035
|
-
]), { zoomToCenter:
|
|
1996
|
+
]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g = Jt(r);
|
|
2036
1997
|
Xt();
|
|
2037
|
-
let
|
|
2038
|
-
let { itemExtent: e } =
|
|
2039
|
-
|
|
2040
|
-
}, [
|
|
1998
|
+
let _ = e.useCallback(() => {
|
|
1999
|
+
let { itemExtent: e } = o();
|
|
2000
|
+
u(e);
|
|
2001
|
+
}, [o, u]);
|
|
2041
2002
|
return e.useEffect(() => {
|
|
2042
|
-
!
|
|
2003
|
+
!p && i.radius && (_(), m(!0));
|
|
2043
2004
|
}, [
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2005
|
+
_,
|
|
2006
|
+
p,
|
|
2007
|
+
i
|
|
2047
2008
|
]), f(document, "keydown", (e) => {
|
|
2048
2009
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
|
|
2049
2010
|
let t = 0, n = 0, r = 1;
|
|
@@ -2066,50 +2027,55 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2066
2027
|
case "PageDown": r = .8;
|
|
2067
2028
|
}
|
|
2068
2029
|
if (t || n || r !== 1) {
|
|
2069
|
-
let i =
|
|
2030
|
+
let i = c();
|
|
2070
2031
|
if (r === 1 && i.length) return;
|
|
2071
|
-
e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5),
|
|
2032
|
+
e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5), d(({ translateX: e, translateY: r }) => ({
|
|
2072
2033
|
translateX: e + t,
|
|
2073
2034
|
translateY: r + n
|
|
2074
|
-
})),
|
|
2035
|
+
})), l({ factor: r }), e.preventDefault();
|
|
2075
2036
|
}
|
|
2076
|
-
e.key === " " && !e.repeat &&
|
|
2037
|
+
e.key === " " && !e.repeat && g().hover && l({
|
|
2077
2038
|
factor: 3,
|
|
2078
|
-
to:
|
|
2039
|
+
to: g()
|
|
2079
2040
|
});
|
|
2080
2041
|
}), f(document, "keyup", (e) => {
|
|
2081
|
-
["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " &&
|
|
2042
|
+
["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && g().hover && l({
|
|
2082
2043
|
factor: 1 / 3,
|
|
2083
|
-
to:
|
|
2044
|
+
to: g()
|
|
2084
2045
|
});
|
|
2085
2046
|
}), /* @__PURE__ */ a(Y, {
|
|
2086
|
-
|
|
2087
|
-
|
|
2047
|
+
fill: !0,
|
|
2048
|
+
onPan: ({ deltaX: e, deltaY: t, target: n }) => {
|
|
2049
|
+
let r = j(n, "item");
|
|
2050
|
+
r && A(r, "selected") || (d(({ translateX: n, translateY: r }) => ({
|
|
2088
2051
|
translateX: n + e,
|
|
2089
2052
|
translateY: r + t
|
|
2090
|
-
})), clearTimeout(
|
|
2091
|
-
|
|
2092
|
-
}, 200),
|
|
2053
|
+
})), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
|
|
2054
|
+
s({ panning: !1 });
|
|
2055
|
+
}, 200), s({ panning: !0 }));
|
|
2093
2056
|
},
|
|
2094
2057
|
onZoom: ({ clientX: e, clientY: t, scale: n }) => {
|
|
2095
|
-
|
|
2058
|
+
l({
|
|
2096
2059
|
to: {
|
|
2097
2060
|
x: e,
|
|
2098
2061
|
y: t
|
|
2099
2062
|
},
|
|
2100
2063
|
factor: 1 - n / 500
|
|
2101
|
-
}), clearTimeout(
|
|
2102
|
-
|
|
2103
|
-
}, 200),
|
|
2064
|
+
}), clearTimeout(h.current.zoom), h.current.zoom = setTimeout(() => {
|
|
2065
|
+
s({ zooming: !1 });
|
|
2066
|
+
}, 200), s({ zooming: !0 });
|
|
2104
2067
|
},
|
|
2105
2068
|
mainAction: n ? "pan" : "drag",
|
|
2106
2069
|
children: /* @__PURE__ */ a("div", {
|
|
2107
2070
|
style: {
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2071
|
+
position: "absolute",
|
|
2072
|
+
top: 0,
|
|
2073
|
+
left: 0,
|
|
2074
|
+
display: "block",
|
|
2075
|
+
width: "100%",
|
|
2076
|
+
height: "100%"
|
|
2111
2077
|
},
|
|
2112
|
-
className:
|
|
2078
|
+
className: "board",
|
|
2113
2079
|
ref: r,
|
|
2114
2080
|
children: t
|
|
2115
2081
|
})
|
|
@@ -2123,7 +2089,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2123
2089
|
border: "2px dashed hsl(20, 55%, 40%)",
|
|
2124
2090
|
pointerEvents: "none"
|
|
2125
2091
|
}), $t = () => {
|
|
2126
|
-
let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] =
|
|
2092
|
+
let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = R((e) => [
|
|
2127
2093
|
e.selection,
|
|
2128
2094
|
e.getSelection,
|
|
2129
2095
|
e.selectionBox,
|
|
@@ -2134,13 +2100,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2134
2100
|
translateY: e.boardState.translateY,
|
|
2135
2101
|
scale: e.boardState.scale
|
|
2136
2102
|
}
|
|
2137
|
-
]), [d] =
|
|
2103
|
+
]), [d] = L((e) => [e.items]), f = e.useCallback(() => {
|
|
2138
2104
|
let e = n(), { boardWrapperRect: t, uid: r } = o();
|
|
2139
2105
|
if (e.length === 0) {
|
|
2140
2106
|
i(null);
|
|
2141
2107
|
return;
|
|
2142
2108
|
}
|
|
2143
|
-
let a =
|
|
2109
|
+
let a = le(e, r);
|
|
2144
2110
|
if (!a) {
|
|
2145
2111
|
i(null);
|
|
2146
2112
|
return;
|
|
@@ -2176,7 +2142,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2176
2142
|
className: `selection ${Qt}`
|
|
2177
2143
|
});
|
|
2178
2144
|
}, en = () => {
|
|
2179
|
-
let [e] =
|
|
2145
|
+
let [e] = R((e) => [e.boardState.movingItems]);
|
|
2180
2146
|
return e ? null : /* @__PURE__ */ a($t, {});
|
|
2181
2147
|
};
|
|
2182
2148
|
//#endregion
|
|
@@ -2184,13 +2150,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
|
|
|
2184
2150
|
function tn(e, t, n) {
|
|
2185
2151
|
return Math.min(Math.max(e, n), t);
|
|
2186
2152
|
}
|
|
2187
|
-
var
|
|
2153
|
+
var Z = class extends Error {
|
|
2188
2154
|
constructor(e) {
|
|
2189
2155
|
super(`Failed to parse color: "${e}"`);
|
|
2190
2156
|
}
|
|
2191
2157
|
};
|
|
2192
2158
|
function nn(e) {
|
|
2193
|
-
if (typeof e != "string") throw new
|
|
2159
|
+
if (typeof e != "string") throw new Z(e);
|
|
2194
2160
|
if (e.trim().toLowerCase() === "transparent") return [
|
|
2195
2161
|
0,
|
|
2196
2162
|
0,
|
|
@@ -2202,7 +2168,7 @@ function nn(e) {
|
|
|
2202
2168
|
let n = cn.exec(t);
|
|
2203
2169
|
if (n) {
|
|
2204
2170
|
let e = Array.from(n).slice(1);
|
|
2205
|
-
return [...e.slice(0, 3).map((e) => parseInt(
|
|
2171
|
+
return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
|
|
2206
2172
|
}
|
|
2207
2173
|
let r = ln.exec(t);
|
|
2208
2174
|
if (r) {
|
|
@@ -2217,10 +2183,10 @@ function nn(e) {
|
|
|
2217
2183
|
let a = dn.exec(t);
|
|
2218
2184
|
if (a) {
|
|
2219
2185
|
let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
|
|
2220
|
-
if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new
|
|
2186
|
+
if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new Z(e);
|
|
2221
2187
|
return [...mn(t, n, r), Number.isNaN(i) ? 1 : i];
|
|
2222
2188
|
}
|
|
2223
|
-
throw new
|
|
2189
|
+
throw new Z(e);
|
|
2224
2190
|
}
|
|
2225
2191
|
function rn(e) {
|
|
2226
2192
|
let t = 5381, n = e.length;
|
|
@@ -2234,10 +2200,10 @@ var an = (e) => parseInt(e.replace(/_/g, ""), 36), on = "1q29ehhb 1n09sgk7 1kl1e
|
|
|
2234
2200
|
}, {});
|
|
2235
2201
|
function sn(e) {
|
|
2236
2202
|
let t = on[rn(e.toLowerCase().trim())];
|
|
2237
|
-
if (!t) throw new
|
|
2203
|
+
if (!t) throw new Z(e);
|
|
2238
2204
|
return `#${t}`;
|
|
2239
2205
|
}
|
|
2240
|
-
var
|
|
2206
|
+
var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), ln = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), un = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), dn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, fn = /^[a-z]+$/i, pn = (e) => Math.round(e * 255), mn = (e, t, n) => {
|
|
2241
2207
|
let r = n / 100;
|
|
2242
2208
|
if (t === 0) return [
|
|
2243
2209
|
r,
|
|
@@ -2325,7 +2291,7 @@ var _n = K({
|
|
|
2325
2291
|
style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
|
|
2326
2292
|
children: /* @__PURE__ */ a(yn, { ...t })
|
|
2327
2293
|
}), Sn = ({ children: e }) => {
|
|
2328
|
-
let [t] =
|
|
2294
|
+
let [t] = R((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = B(), [i, s, c, l] = U((e) => [
|
|
2329
2295
|
e.getUser(),
|
|
2330
2296
|
e.getLocalUsers(),
|
|
2331
2297
|
e.cursors,
|
|
@@ -2354,76 +2320,261 @@ var _n = K({
|
|
|
2354
2320
|
}, e) : null;
|
|
2355
2321
|
})]
|
|
2356
2322
|
});
|
|
2357
|
-
}, Cn = (
|
|
2323
|
+
}, Cn = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
|
|
2324
|
+
function wn(e, t = ",") {
|
|
2325
|
+
let n = 0, r = "", i = 0, a = [];
|
|
2326
|
+
for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
|
|
2327
|
+
else if (s === "\"" || s === "'") r = s;
|
|
2328
|
+
else if (s === "(") n++;
|
|
2329
|
+
else if (s === ")") n--;
|
|
2330
|
+
else if (n === 0 && s === t) {
|
|
2331
|
+
let t = e.slice(i, o).trim();
|
|
2332
|
+
t && a.push(t), i = o + 1;
|
|
2333
|
+
}
|
|
2334
|
+
let o = e.slice(i).trim();
|
|
2335
|
+
return o && a.push(o), a;
|
|
2336
|
+
}
|
|
2337
|
+
function $(e, t) {
|
|
2338
|
+
return [...e.replace(/\s/g, "").matchAll(Cn)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
|
|
2339
|
+
}
|
|
2340
|
+
function Tn(e, t, n, r) {
|
|
2341
|
+
let [i, a = "auto"] = wn(e, " "), o = r?.width, s = r?.height;
|
|
2342
|
+
if (i === "cover" || i === "contain") {
|
|
2343
|
+
if (!o || !s) return [t, n];
|
|
2344
|
+
let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
|
|
2345
|
+
return [o * e, s * e];
|
|
2346
|
+
}
|
|
2347
|
+
let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
|
|
2348
|
+
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]);
|
|
2349
|
+
}
|
|
2350
|
+
function En(e, t, n) {
|
|
2351
|
+
let r = [
|
|
2352
|
+
[0, 0],
|
|
2353
|
+
[e, 0],
|
|
2354
|
+
[0, t],
|
|
2355
|
+
[e, t]
|
|
2356
|
+
].map((e) => oe(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] = M([o, s], n);
|
|
2357
|
+
return {
|
|
2358
|
+
left: o,
|
|
2359
|
+
top: s,
|
|
2360
|
+
width: c - o,
|
|
2361
|
+
height: l - s,
|
|
2362
|
+
x: u,
|
|
2363
|
+
y: d
|
|
2364
|
+
};
|
|
2365
|
+
}
|
|
2366
|
+
var Dn = (e, t, n) => ((e - t) % n + n) % n;
|
|
2367
|
+
function On(e, t, n, r) {
|
|
2368
|
+
let i = En(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] = M([u, d], n);
|
|
2369
|
+
return {
|
|
2370
|
+
tiles: Array.from({ length: l - c + 1 }, (e, t) => {
|
|
2371
|
+
let n = c + t;
|
|
2372
|
+
return Array.from({ length: s - o + 1 }, (e, t) => {
|
|
2373
|
+
let r = o + t;
|
|
2374
|
+
return {
|
|
2375
|
+
key: `${a}:${r}:${n}`,
|
|
2376
|
+
left: r * a,
|
|
2377
|
+
top: n * a
|
|
2378
|
+
};
|
|
2379
|
+
});
|
|
2380
|
+
}).flat(),
|
|
2381
|
+
size: a,
|
|
2382
|
+
left: u,
|
|
2383
|
+
top: d,
|
|
2384
|
+
x: f,
|
|
2385
|
+
y: p
|
|
2386
|
+
};
|
|
2387
|
+
}
|
|
2388
|
+
//#endregion
|
|
2389
|
+
//#region src/lib/board/WorldBackground.jsx
|
|
2390
|
+
var kn = {
|
|
2391
|
+
position: "absolute",
|
|
2392
|
+
inset: 0,
|
|
2393
|
+
pointerEvents: "none"
|
|
2394
|
+
};
|
|
2395
|
+
function An({ style: t, tileSizeOverride: n }) {
|
|
2396
|
+
let [r, i] = R((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
|
|
2397
|
+
color: "#333",
|
|
2398
|
+
layers: []
|
|
2399
|
+
}), [f, p] = e.useState({});
|
|
2400
|
+
e.useLayoutEffect(() => {
|
|
2401
|
+
let e = getComputedStyle(l.current), t = (t) => wn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
|
|
2402
|
+
d({
|
|
2403
|
+
color: e.backgroundColor,
|
|
2404
|
+
layers: t("backgroundImage").map((e, t) => ({
|
|
2405
|
+
image: e,
|
|
2406
|
+
size: n[t % n.length],
|
|
2407
|
+
x: r[t % r.length],
|
|
2408
|
+
y: i[t % i.length],
|
|
2409
|
+
repeat: a[t % a.length],
|
|
2410
|
+
blend: o[t % o.length]
|
|
2411
|
+
}))
|
|
2412
|
+
});
|
|
2413
|
+
}, [
|
|
2414
|
+
t,
|
|
2415
|
+
s,
|
|
2416
|
+
c
|
|
2417
|
+
]), e.useEffect(() => {
|
|
2418
|
+
let e = !0;
|
|
2419
|
+
return u.layers.forEach(({ image: t }) => {
|
|
2420
|
+
if (!t.startsWith("url(")) return;
|
|
2421
|
+
let n = new Image();
|
|
2422
|
+
n.onload = () => {
|
|
2423
|
+
e && p((e) => ({
|
|
2424
|
+
...e,
|
|
2425
|
+
[t]: {
|
|
2426
|
+
width: n.naturalWidth,
|
|
2427
|
+
height: n.naturalHeight
|
|
2428
|
+
}
|
|
2429
|
+
}));
|
|
2430
|
+
}, n.src = t.slice(4, -1).replace(/^["']|["']$/g, "");
|
|
2431
|
+
}), () => {
|
|
2432
|
+
e = !1;
|
|
2433
|
+
};
|
|
2434
|
+
}, [u.layers]);
|
|
2435
|
+
let m = On(s, c, r, n), h = u.layers.map((e) => {
|
|
2436
|
+
let [t, n] = Tn(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);
|
|
2437
|
+
return {
|
|
2438
|
+
...e,
|
|
2439
|
+
size: `${t}px ${n}px`,
|
|
2440
|
+
position: (e, s) => `${r && t ? Dn(a, e, t) : a - e}px ${i && n ? Dn(o, s, n) : o - s}px`
|
|
2441
|
+
};
|
|
2442
|
+
});
|
|
2443
|
+
return /* @__PURE__ */ o("div", {
|
|
2444
|
+
className: "world-background",
|
|
2445
|
+
"aria-hidden": "true",
|
|
2446
|
+
style: {
|
|
2447
|
+
...kn,
|
|
2448
|
+
overflow: "hidden",
|
|
2449
|
+
backgroundColor: u.color
|
|
2450
|
+
},
|
|
2451
|
+
children: [/* @__PURE__ */ a("div", {
|
|
2452
|
+
ref: l,
|
|
2453
|
+
style: {
|
|
2454
|
+
backgroundColor: "#333",
|
|
2455
|
+
...t,
|
|
2456
|
+
position: "absolute",
|
|
2457
|
+
width: s,
|
|
2458
|
+
height: c,
|
|
2459
|
+
visibility: "hidden",
|
|
2460
|
+
pointerEvents: "none"
|
|
2461
|
+
}
|
|
2462
|
+
}), /* @__PURE__ */ a("div", {
|
|
2463
|
+
className: "world-background-tiles",
|
|
2464
|
+
style: {
|
|
2465
|
+
position: "absolute",
|
|
2466
|
+
transformOrigin: "0 0",
|
|
2467
|
+
transform: `translate(${m.x}px, ${m.y}px) rotate(${r.rotate}deg) scale(${r.scale})`
|
|
2468
|
+
},
|
|
2469
|
+
children: m.tiles.map((e) => /* @__PURE__ */ a("div", {
|
|
2470
|
+
className: "world-background-tile",
|
|
2471
|
+
"data-tile": e.key,
|
|
2472
|
+
style: {
|
|
2473
|
+
position: "absolute",
|
|
2474
|
+
left: e.left - m.left,
|
|
2475
|
+
top: e.top - m.top,
|
|
2476
|
+
width: m.size,
|
|
2477
|
+
height: m.size,
|
|
2478
|
+
backgroundImage: h.map((e) => e.image).join(", "),
|
|
2479
|
+
backgroundSize: h.map((e) => e.size).join(", "),
|
|
2480
|
+
backgroundPosition: h.map((t) => t.position(e.left, e.top)).join(", "),
|
|
2481
|
+
backgroundRepeat: h.map((e) => e.repeat).join(", "),
|
|
2482
|
+
backgroundBlendMode: h.map((e) => e.blend).join(", ")
|
|
2483
|
+
}
|
|
2484
|
+
}, e.key))
|
|
2485
|
+
})]
|
|
2486
|
+
});
|
|
2487
|
+
}
|
|
2488
|
+
//#endregion
|
|
2489
|
+
//#region src/lib/board/Board.jsx
|
|
2490
|
+
var jn = ({ children: e }) => e, Mn = {}, Nn = {
|
|
2358
2491
|
overflow: "hidden",
|
|
2359
2492
|
position: "absolute",
|
|
2360
2493
|
inset: 0
|
|
2361
|
-
},
|
|
2362
|
-
let
|
|
2494
|
+
}, Pn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = Mn, boardSize: s = we, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = jn }) => {
|
|
2495
|
+
let f = e.useRef(null), [m, h] = R((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = R((e) => [
|
|
2496
|
+
e.boardState.translateX,
|
|
2497
|
+
e.boardState.translateY,
|
|
2498
|
+
e.boardState.scale,
|
|
2499
|
+
e.boardState.rotate
|
|
2500
|
+
]), { updateItemExtent: b } = B(), x = {
|
|
2363
2501
|
userSelect: "none",
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2502
|
+
position: "absolute",
|
|
2503
|
+
inset: 0,
|
|
2504
|
+
width: "100%",
|
|
2505
|
+
height: "100%",
|
|
2506
|
+
transformOrigin: "0 0",
|
|
2507
|
+
transform: `translate(${g}px, ${_}px) rotate(${y}deg) scale(${v})`,
|
|
2508
|
+
pointerEvents: "none"
|
|
2368
2509
|
};
|
|
2369
2510
|
e.useEffect(() => {
|
|
2370
2511
|
let e = (e) => {
|
|
2371
|
-
|
|
2512
|
+
f.current?.contains(e.target) && e.preventDefault();
|
|
2372
2513
|
};
|
|
2373
2514
|
return document.body.addEventListener("wheel", e, { passive: !1 }), () => {
|
|
2374
2515
|
document.body.removeEventListener("wheel", e);
|
|
2375
2516
|
};
|
|
2376
2517
|
}, []), e.useEffect(() => {
|
|
2377
|
-
|
|
2378
|
-
}, [
|
|
2379
|
-
|
|
2380
|
-
}, [
|
|
2381
|
-
|
|
2518
|
+
h({ boardWrapper: f.current });
|
|
2519
|
+
}, [h]), e.useEffect(() => {
|
|
2520
|
+
m || h({ uid: w() });
|
|
2521
|
+
}, [m, h]), e.useEffect(() => {
|
|
2522
|
+
h({
|
|
2382
2523
|
itemTemplates: i,
|
|
2383
2524
|
boardSize: s,
|
|
2384
|
-
showResizeHandle:
|
|
2525
|
+
showResizeHandle: u
|
|
2385
2526
|
});
|
|
2386
2527
|
}, [
|
|
2387
2528
|
i,
|
|
2388
2529
|
s,
|
|
2389
|
-
|
|
2390
|
-
|
|
2530
|
+
u,
|
|
2531
|
+
h
|
|
2391
2532
|
]), e.useEffect(() => {
|
|
2392
|
-
|
|
2393
|
-
}, [
|
|
2394
|
-
|
|
2533
|
+
h({ boardWrapperRect: f.current.getBoundingClientRect() }), b(), setTimeout(b, 2e3);
|
|
2534
|
+
}, [h, b]), p(f, () => {
|
|
2535
|
+
f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
|
|
2395
2536
|
});
|
|
2396
|
-
let
|
|
2397
|
-
...
|
|
2537
|
+
let S = K({
|
|
2538
|
+
...Nn,
|
|
2398
2539
|
...r
|
|
2399
2540
|
});
|
|
2400
2541
|
return /* @__PURE__ */ o("div", {
|
|
2401
|
-
ref:
|
|
2402
|
-
id:
|
|
2403
|
-
className: `sync-board ${
|
|
2404
|
-
children: [
|
|
2405
|
-
|
|
2406
|
-
|
|
2542
|
+
ref: f,
|
|
2543
|
+
id: m,
|
|
2544
|
+
className: `sync-board ${S}`,
|
|
2545
|
+
children: [
|
|
2546
|
+
/* @__PURE__ */ a(An, {
|
|
2547
|
+
style: n,
|
|
2548
|
+
tileSizeOverride: c
|
|
2549
|
+
}),
|
|
2550
|
+
/* @__PURE__ */ a(Sn, { children: /* @__PURE__ */ a(Kt, {
|
|
2407
2551
|
moveFirst: t,
|
|
2408
|
-
children: /* @__PURE__ */ a(
|
|
2552
|
+
children: /* @__PURE__ */ a(Zt, {
|
|
2409
2553
|
moveFirst: t,
|
|
2410
|
-
children: /* @__PURE__ */ a(
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2554
|
+
children: /* @__PURE__ */ a(qt, {
|
|
2555
|
+
moveFirst: t,
|
|
2556
|
+
children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
|
|
2557
|
+
onContextMenu: (e) => {
|
|
2558
|
+
e.preventDefault();
|
|
2559
|
+
},
|
|
2560
|
+
style: x,
|
|
2561
|
+
className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
|
|
2562
|
+
children: [/* @__PURE__ */ a(Ut, {}), /* @__PURE__ */ a("div", {
|
|
2563
|
+
style: { pointerEvents: "auto" },
|
|
2564
|
+
children: l
|
|
2565
|
+
})]
|
|
2566
|
+
}) })
|
|
2567
|
+
})
|
|
2418
2568
|
})
|
|
2419
|
-
})
|
|
2420
|
-
|
|
2569
|
+
}) }),
|
|
2570
|
+
/* @__PURE__ */ a(en, {})
|
|
2571
|
+
]
|
|
2421
2572
|
});
|
|
2422
2573
|
};
|
|
2423
2574
|
//#endregion
|
|
2424
2575
|
//#region src/lib/index.js
|
|
2425
|
-
|
|
2576
|
+
mt(e.createElement);
|
|
2426
2577
|
//#endregion
|
|
2427
|
-
export {
|
|
2578
|
+
export { Pn as Board, it as BoardWrapper, at as RoomWrapper, Re as useAvailableActions, qe as useBoardConfig, B as useBoardPosition, Je as useBoardState, Ce as useDebouncedItems, Me as useGetSelectedItems, H as useItemActions, V as useItemInteraction, Se as useItems, nt as useMessage, je as useSelectedItems, ze as useSelectionBox, Ye as useSessionInfo, Ke as useUsers, k as useWire };
|
|
2428
2579
|
|
|
2429
2580
|
//# sourceMappingURL=react-sync-board.js.map
|