@mulsense/xnew 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addons/xmatter.js +1 -1
- package/dist/addons/xmatter.mjs +1 -1
- package/dist/addons/xrapier2d.js +1 -1
- package/dist/addons/xrapier2d.mjs +1 -1
- package/dist/addons/xrapier3d.js +1 -1
- package/dist/addons/xrapier3d.mjs +1 -1
- package/dist/xnew.d.ts +1 -5
- package/dist/xnew.js +23 -95
- package/dist/xnew.mjs +23 -95
- package/package.json +1 -1
package/dist/addons/xmatter.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
const root = {};
|
|
22
22
|
xnew.context('xmatter.root', root);
|
|
23
23
|
root.engine = engine !== null && engine !== void 0 ? engine : Matter.Engine.create();
|
|
24
|
-
unit.on('
|
|
24
|
+
unit.on('process', () => {
|
|
25
25
|
Matter.Engine.update(root.engine);
|
|
26
26
|
});
|
|
27
27
|
}
|
package/dist/addons/xmatter.mjs
CHANGED
|
@@ -18,7 +18,7 @@ function Root(unit, { engine }) {
|
|
|
18
18
|
const root = {};
|
|
19
19
|
xnew.context('xmatter.root', root);
|
|
20
20
|
root.engine = engine !== null && engine !== void 0 ? engine : Matter.Engine.create();
|
|
21
|
-
unit.on('
|
|
21
|
+
unit.on('process', () => {
|
|
22
22
|
Matter.Engine.update(root.engine);
|
|
23
23
|
});
|
|
24
24
|
}
|
package/dist/addons/xrapier2d.js
CHANGED
package/dist/addons/xrapier3d.js
CHANGED
package/dist/xnew.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ declare class Unit {
|
|
|
81
81
|
static start(unit: Unit): void;
|
|
82
82
|
static stop(unit: Unit): void;
|
|
83
83
|
static update(unit: Unit): void;
|
|
84
|
-
static
|
|
84
|
+
static process(unit: Unit): void;
|
|
85
85
|
static root: Unit;
|
|
86
86
|
static current: Unit;
|
|
87
87
|
static ticker: Ticker;
|
|
@@ -277,8 +277,6 @@ declare function AccordionContent(content: Unit, {}?: {}): {
|
|
|
277
277
|
|
|
278
278
|
declare function ResizeEvent(resize: Unit): void;
|
|
279
279
|
declare function DirectEvent(unit: Unit): void;
|
|
280
|
-
declare function KeyboardEvent(keyboard: Unit): void;
|
|
281
|
-
declare function PointerEvent(unit: Unit): void;
|
|
282
280
|
|
|
283
281
|
declare function Screen(screen: Unit, { width, height, fit }?: {
|
|
284
282
|
width?: number | undefined;
|
|
@@ -730,10 +728,8 @@ declare class Synthesizer {
|
|
|
730
728
|
|
|
731
729
|
declare const basics: {
|
|
732
730
|
Screen: typeof Screen;
|
|
733
|
-
PointerEvent: typeof PointerEvent;
|
|
734
731
|
DirectEvent: typeof DirectEvent;
|
|
735
732
|
ResizeEvent: typeof ResizeEvent;
|
|
736
|
-
KeyboardEvent: typeof KeyboardEvent;
|
|
737
733
|
ModalFrame: typeof ModalFrame;
|
|
738
734
|
ModalContent: typeof ModalContent;
|
|
739
735
|
AccordionFrame: typeof AccordionFrame;
|
package/dist/xnew.js
CHANGED
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
//----------------------------------------------------------------------------------------------------
|
|
210
210
|
// utils
|
|
211
211
|
//----------------------------------------------------------------------------------------------------
|
|
212
|
-
const SYSTEM_EVENTS = ['start', '
|
|
212
|
+
const SYSTEM_EVENTS = ['start', 'process', 'update', 'stop', 'finalize'];
|
|
213
213
|
//----------------------------------------------------------------------------------------------------
|
|
214
214
|
// unit
|
|
215
215
|
//----------------------------------------------------------------------------------------------------
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
components: [],
|
|
303
303
|
listeners: new MapMap(),
|
|
304
304
|
defines: {},
|
|
305
|
-
systems: { start: [],
|
|
305
|
+
systems: { start: [], process: [], update: [], stop: [], finalize: [] },
|
|
306
306
|
});
|
|
307
307
|
// nest html element
|
|
308
308
|
if (typeof unit._.target === 'string') {
|
|
@@ -412,15 +412,15 @@
|
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
static update(unit) {
|
|
415
|
-
if (unit._.state === 'started') {
|
|
415
|
+
if (unit._.state === 'started' || unit._.state === 'stopped') {
|
|
416
416
|
unit._.children.forEach((child) => Unit.update(child));
|
|
417
417
|
unit._.systems.update.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
|
-
static
|
|
420
|
+
static process(unit) {
|
|
421
421
|
if (unit._.state === 'started') {
|
|
422
|
-
unit._.children.forEach((child) => Unit.
|
|
423
|
-
unit._.systems.
|
|
422
|
+
unit._.children.forEach((child) => Unit.process(child));
|
|
423
|
+
unit._.systems.process.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
|
|
424
424
|
}
|
|
425
425
|
}
|
|
426
426
|
static reset() {
|
|
@@ -430,7 +430,7 @@
|
|
|
430
430
|
(_b = Unit.ticker) === null || _b === void 0 ? void 0 : _b.clear();
|
|
431
431
|
Unit.ticker = new Ticker(() => {
|
|
432
432
|
Unit.start(Unit.root);
|
|
433
|
-
Unit.
|
|
433
|
+
Unit.process(Unit.root);
|
|
434
434
|
Unit.update(Unit.root);
|
|
435
435
|
});
|
|
436
436
|
}
|
|
@@ -942,6 +942,8 @@
|
|
|
942
942
|
function DirectEvent(unit) {
|
|
943
943
|
const state = {};
|
|
944
944
|
const keydown = xnew$1.scope((event) => {
|
|
945
|
+
if (event.repeat)
|
|
946
|
+
return;
|
|
945
947
|
state[event.code] = 1;
|
|
946
948
|
xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
|
|
947
949
|
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
@@ -1009,78 +1011,6 @@
|
|
|
1009
1011
|
gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
|
|
1010
1012
|
gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
|
|
1011
1013
|
}
|
|
1012
|
-
function KeyboardEvent(keyboard) {
|
|
1013
|
-
const state = {};
|
|
1014
|
-
const keydown = xnew$1.scope((event) => {
|
|
1015
|
-
state[event.code] = 1;
|
|
1016
|
-
xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
|
|
1017
|
-
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
1018
|
-
xnew$1.emit('-keydown.arrow', { event, type: '-keydown.arrow', code: event.code, vector: getVector() });
|
|
1019
|
-
}
|
|
1020
|
-
});
|
|
1021
|
-
const keyup = xnew$1.scope((event) => {
|
|
1022
|
-
state[event.code] = 0;
|
|
1023
|
-
xnew$1.emit('-keyup', { event, type: '-keyup', code: event.code });
|
|
1024
|
-
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
1025
|
-
xnew$1.emit('-keyup.arrow', { event, type: '-keyup.arrow', code: event.code, vector: getVector() });
|
|
1026
|
-
}
|
|
1027
|
-
});
|
|
1028
|
-
window.addEventListener('keydown', keydown);
|
|
1029
|
-
window.addEventListener('keyup', keyup);
|
|
1030
|
-
keyboard.on('finalize', () => {
|
|
1031
|
-
window.removeEventListener('keydown', keydown);
|
|
1032
|
-
window.removeEventListener('keyup', keyup);
|
|
1033
|
-
});
|
|
1034
|
-
function getVector() {
|
|
1035
|
-
return {
|
|
1036
|
-
x: (state['ArrowLeft'] ? -1 : 0) + (state['ArrowRight'] ? +1 : 0),
|
|
1037
|
-
y: (state['ArrowUp'] ? -1 : 0) + (state['ArrowDown'] ? +1 : 0)
|
|
1038
|
-
};
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
function PointerEvent(unit) {
|
|
1042
|
-
const internal = xnew$1();
|
|
1043
|
-
internal.on('pointerdown', (event) => xnew$1.emit('-pointerdown', { event, position: getPosition(unit.element, event) }));
|
|
1044
|
-
internal.on('pointermove', (event) => xnew$1.emit('-pointermove', { event, position: getPosition(unit.element, event) }));
|
|
1045
|
-
internal.on('pointerup', (event) => xnew$1.emit('-pointerup', { event, position: getPosition(unit.element, event) }));
|
|
1046
|
-
internal.on('wheel', (event) => xnew$1.emit('-wheel', { event, delta: { x: event.wheelDeltaX, y: event.wheelDeltaY } }));
|
|
1047
|
-
internal.on('click', (event) => xnew$1.emit('-click', { event, position: getPosition(unit.element, event) }));
|
|
1048
|
-
internal.on('pointerover', (event) => xnew$1.emit('-pointerover', { event, position: getPosition(unit.element, event) }));
|
|
1049
|
-
internal.on('pointerout', (event) => xnew$1.emit('-pointerout', { event, position: getPosition(unit.element, event) }));
|
|
1050
|
-
const pointerdownoutside = xnew$1.scope((event) => {
|
|
1051
|
-
if (unit.element.contains(event.target) === false) {
|
|
1052
|
-
xnew$1.emit('-pointerdown.outside', { event, position: getPosition(unit.element, event) });
|
|
1053
|
-
}
|
|
1054
|
-
});
|
|
1055
|
-
const pointerupoutside = xnew$1.scope((event) => {
|
|
1056
|
-
if (unit.element.contains(event.target) === false) {
|
|
1057
|
-
xnew$1.emit('-pointerup.outside', { event, position: getPosition(unit.element, event) });
|
|
1058
|
-
}
|
|
1059
|
-
});
|
|
1060
|
-
const clickoutside = xnew$1.scope((event) => {
|
|
1061
|
-
if (unit.element.contains(event.target) === false) {
|
|
1062
|
-
xnew$1.emit('-click.outside', { event, position: getPosition(unit.element, event) });
|
|
1063
|
-
}
|
|
1064
|
-
});
|
|
1065
|
-
document.addEventListener('pointerdown', pointerdownoutside);
|
|
1066
|
-
document.addEventListener('pointerup', pointerupoutside);
|
|
1067
|
-
document.addEventListener('click', clickoutside);
|
|
1068
|
-
unit.on('finalize', () => {
|
|
1069
|
-
document.removeEventListener('pointerdown', pointerdownoutside);
|
|
1070
|
-
document.removeEventListener('pointerup', pointerupoutside);
|
|
1071
|
-
document.removeEventListener('click', clickoutside);
|
|
1072
|
-
});
|
|
1073
|
-
const drag = xnew$1(DragEvent);
|
|
1074
|
-
drag.on('-dragstart', (...args) => xnew$1.emit('-dragstart', ...args));
|
|
1075
|
-
drag.on('-dragmove', (...args) => xnew$1.emit('-dragmove', ...args));
|
|
1076
|
-
drag.on('-dragend', (...args) => xnew$1.emit('-dragend', ...args));
|
|
1077
|
-
drag.on('-dragcancel', (...args) => xnew$1.emit('-dragcancel', ...args));
|
|
1078
|
-
const gesture = xnew$1(GestureEvent);
|
|
1079
|
-
gesture.on('-gesturestart', (...args) => xnew$1.emit('-gesturestart', ...args));
|
|
1080
|
-
gesture.on('-gesturemove', (...args) => xnew$1.emit('-gesturemove', ...args));
|
|
1081
|
-
gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
|
|
1082
|
-
gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
|
|
1083
|
-
}
|
|
1084
1014
|
function DragEvent(unit) {
|
|
1085
1015
|
const pointerdown = xnew$1.scope((event) => {
|
|
1086
1016
|
const id = event.pointerId;
|
|
@@ -1339,11 +1269,11 @@
|
|
|
1339
1269
|
function DragTarget(target, {} = {}) {
|
|
1340
1270
|
const { frame, absolute } = xnew$1.context('xnew.dragframe');
|
|
1341
1271
|
xnew$1.nest('<div>');
|
|
1342
|
-
const
|
|
1272
|
+
const direct = xnew$1(absolute.parentElement, DirectEvent);
|
|
1343
1273
|
const current = { x: 0, y: 0 };
|
|
1344
1274
|
const offset = { x: 0, y: 0 };
|
|
1345
1275
|
let dragged = false;
|
|
1346
|
-
|
|
1276
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1347
1277
|
if (target.element.contains(event.target) === false)
|
|
1348
1278
|
return;
|
|
1349
1279
|
dragged = true;
|
|
@@ -1352,7 +1282,7 @@
|
|
|
1352
1282
|
current.x = position.x - offset.x;
|
|
1353
1283
|
current.y = position.y - offset.y;
|
|
1354
1284
|
});
|
|
1355
|
-
|
|
1285
|
+
direct.on('-dragmove', ({ event, delta }) => {
|
|
1356
1286
|
if (dragged !== true)
|
|
1357
1287
|
return;
|
|
1358
1288
|
current.x += delta.x;
|
|
@@ -1360,7 +1290,7 @@
|
|
|
1360
1290
|
absolute.style.left = `${current.x}px`;
|
|
1361
1291
|
absolute.style.top = `${current.y}px`;
|
|
1362
1292
|
});
|
|
1363
|
-
|
|
1293
|
+
direct.on('-dragcancel -dragend', ({ event }) => {
|
|
1364
1294
|
dragged = false;
|
|
1365
1295
|
});
|
|
1366
1296
|
}
|
|
@@ -1397,22 +1327,22 @@
|
|
|
1397
1327
|
xnew$1.extend(SVGTemplate, { fill, fillOpacity, stroke, strokeOpacity, strokeWidth, strokeLinejoin });
|
|
1398
1328
|
xnew$1('<circle cx="50" cy="50" r="23">');
|
|
1399
1329
|
});
|
|
1400
|
-
const
|
|
1401
|
-
|
|
1330
|
+
const direct = xnew$1(DirectEvent);
|
|
1331
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1402
1332
|
const vector = getVector(position);
|
|
1403
1333
|
target.element.style.filter = 'brightness(90%)';
|
|
1404
1334
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
1405
1335
|
target.element.style.top = vector.y * newsize / 4 + 'px';
|
|
1406
1336
|
xnew$1.emit('-down', { vector });
|
|
1407
1337
|
});
|
|
1408
|
-
|
|
1338
|
+
direct.on('-dragmove', ({ event, position }) => {
|
|
1409
1339
|
const vector = getVector(position);
|
|
1410
1340
|
target.element.style.filter = 'brightness(90%)';
|
|
1411
1341
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
1412
1342
|
target.element.style.top = vector.y * newsize / 4 + 'px';
|
|
1413
1343
|
xnew$1.emit('-move', { vector });
|
|
1414
1344
|
});
|
|
1415
|
-
|
|
1345
|
+
direct.on('-dragend', ({ event }) => {
|
|
1416
1346
|
const vector = { x: 0, y: 0 };
|
|
1417
1347
|
target.element.style.filter = '';
|
|
1418
1348
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
@@ -1464,8 +1394,8 @@
|
|
|
1464
1394
|
xnew$1('<polygon points="11 50 20 42 20 58">');
|
|
1465
1395
|
xnew$1('<polygon points="89 50 80 42 80 58">');
|
|
1466
1396
|
});
|
|
1467
|
-
const
|
|
1468
|
-
|
|
1397
|
+
const direct = xnew$1(DirectEvent);
|
|
1398
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1469
1399
|
const vector = getVector(position);
|
|
1470
1400
|
targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
|
|
1471
1401
|
targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
|
|
@@ -1473,7 +1403,7 @@
|
|
|
1473
1403
|
targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
|
|
1474
1404
|
xnew$1.emit('-down', { vector });
|
|
1475
1405
|
});
|
|
1476
|
-
|
|
1406
|
+
direct.on('-dragmove', ({ event, position }) => {
|
|
1477
1407
|
const vector = getVector(position);
|
|
1478
1408
|
targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
|
|
1479
1409
|
targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
|
|
@@ -1481,7 +1411,7 @@
|
|
|
1481
1411
|
targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
|
|
1482
1412
|
xnew$1.emit('-move', { vector });
|
|
1483
1413
|
});
|
|
1484
|
-
|
|
1414
|
+
direct.on('-dragend', ({ event }) => {
|
|
1485
1415
|
const vector = { x: 0, y: 0 };
|
|
1486
1416
|
targets[0].element.style.filter = '';
|
|
1487
1417
|
targets[1].element.style.filter = '';
|
|
@@ -1543,7 +1473,7 @@
|
|
|
1543
1473
|
});
|
|
1544
1474
|
xnew$1.timeout(() => {
|
|
1545
1475
|
xnew$1(document.body).on('click wheel', action);
|
|
1546
|
-
xnew$1(
|
|
1476
|
+
xnew$1(DirectEvent).on('-keydown', action);
|
|
1547
1477
|
}, 100);
|
|
1548
1478
|
function action() {
|
|
1549
1479
|
if (state === 0) {
|
|
@@ -3424,7 +3354,7 @@
|
|
|
3424
3354
|
|
|
3425
3355
|
function VolumeController(unit, {} = {}) {
|
|
3426
3356
|
xnew$1.nest(`<div style="position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: flex-end; pointer-events: none; container-type: size;">`);
|
|
3427
|
-
xnew$1.extend(
|
|
3357
|
+
xnew$1.extend(DirectEvent);
|
|
3428
3358
|
unit.on('-pointerdown', ({ event }) => event.stopPropagation());
|
|
3429
3359
|
const slider = xnew$1(`<input type="range" min="0" max="100" value="${master.gain.value * 100}"
|
|
3430
3360
|
style="display: none; width: calc(96cqw - 100cqh); margin: 0 2cqw; cursor: pointer; pointer-events: auto;"
|
|
@@ -3449,10 +3379,8 @@
|
|
|
3449
3379
|
|
|
3450
3380
|
const basics = {
|
|
3451
3381
|
Screen,
|
|
3452
|
-
PointerEvent,
|
|
3453
3382
|
DirectEvent,
|
|
3454
3383
|
ResizeEvent,
|
|
3455
|
-
KeyboardEvent,
|
|
3456
3384
|
ModalFrame,
|
|
3457
3385
|
ModalContent,
|
|
3458
3386
|
AccordionFrame,
|
package/dist/xnew.mjs
CHANGED
|
@@ -203,7 +203,7 @@ class Timer {
|
|
|
203
203
|
//----------------------------------------------------------------------------------------------------
|
|
204
204
|
// utils
|
|
205
205
|
//----------------------------------------------------------------------------------------------------
|
|
206
|
-
const SYSTEM_EVENTS = ['start', '
|
|
206
|
+
const SYSTEM_EVENTS = ['start', 'process', 'update', 'stop', 'finalize'];
|
|
207
207
|
//----------------------------------------------------------------------------------------------------
|
|
208
208
|
// unit
|
|
209
209
|
//----------------------------------------------------------------------------------------------------
|
|
@@ -296,7 +296,7 @@ class Unit {
|
|
|
296
296
|
components: [],
|
|
297
297
|
listeners: new MapMap(),
|
|
298
298
|
defines: {},
|
|
299
|
-
systems: { start: [],
|
|
299
|
+
systems: { start: [], process: [], update: [], stop: [], finalize: [] },
|
|
300
300
|
});
|
|
301
301
|
// nest html element
|
|
302
302
|
if (typeof unit._.target === 'string') {
|
|
@@ -406,15 +406,15 @@ class Unit {
|
|
|
406
406
|
}
|
|
407
407
|
}
|
|
408
408
|
static update(unit) {
|
|
409
|
-
if (unit._.state === 'started') {
|
|
409
|
+
if (unit._.state === 'started' || unit._.state === 'stopped') {
|
|
410
410
|
unit._.children.forEach((child) => Unit.update(child));
|
|
411
411
|
unit._.systems.update.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
|
-
static
|
|
414
|
+
static process(unit) {
|
|
415
415
|
if (unit._.state === 'started') {
|
|
416
|
-
unit._.children.forEach((child) => Unit.
|
|
417
|
-
unit._.systems.
|
|
416
|
+
unit._.children.forEach((child) => Unit.process(child));
|
|
417
|
+
unit._.systems.process.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
static reset() {
|
|
@@ -424,7 +424,7 @@ class Unit {
|
|
|
424
424
|
(_b = Unit.ticker) === null || _b === void 0 ? void 0 : _b.clear();
|
|
425
425
|
Unit.ticker = new Ticker(() => {
|
|
426
426
|
Unit.start(Unit.root);
|
|
427
|
-
Unit.
|
|
427
|
+
Unit.process(Unit.root);
|
|
428
428
|
Unit.update(Unit.root);
|
|
429
429
|
});
|
|
430
430
|
}
|
|
@@ -936,6 +936,8 @@ function ResizeEvent(resize) {
|
|
|
936
936
|
function DirectEvent(unit) {
|
|
937
937
|
const state = {};
|
|
938
938
|
const keydown = xnew$1.scope((event) => {
|
|
939
|
+
if (event.repeat)
|
|
940
|
+
return;
|
|
939
941
|
state[event.code] = 1;
|
|
940
942
|
xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
|
|
941
943
|
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
@@ -1003,78 +1005,6 @@ function DirectEvent(unit) {
|
|
|
1003
1005
|
gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
|
|
1004
1006
|
gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
|
|
1005
1007
|
}
|
|
1006
|
-
function KeyboardEvent(keyboard) {
|
|
1007
|
-
const state = {};
|
|
1008
|
-
const keydown = xnew$1.scope((event) => {
|
|
1009
|
-
state[event.code] = 1;
|
|
1010
|
-
xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
|
|
1011
|
-
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
1012
|
-
xnew$1.emit('-keydown.arrow', { event, type: '-keydown.arrow', code: event.code, vector: getVector() });
|
|
1013
|
-
}
|
|
1014
|
-
});
|
|
1015
|
-
const keyup = xnew$1.scope((event) => {
|
|
1016
|
-
state[event.code] = 0;
|
|
1017
|
-
xnew$1.emit('-keyup', { event, type: '-keyup', code: event.code });
|
|
1018
|
-
if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
|
|
1019
|
-
xnew$1.emit('-keyup.arrow', { event, type: '-keyup.arrow', code: event.code, vector: getVector() });
|
|
1020
|
-
}
|
|
1021
|
-
});
|
|
1022
|
-
window.addEventListener('keydown', keydown);
|
|
1023
|
-
window.addEventListener('keyup', keyup);
|
|
1024
|
-
keyboard.on('finalize', () => {
|
|
1025
|
-
window.removeEventListener('keydown', keydown);
|
|
1026
|
-
window.removeEventListener('keyup', keyup);
|
|
1027
|
-
});
|
|
1028
|
-
function getVector() {
|
|
1029
|
-
return {
|
|
1030
|
-
x: (state['ArrowLeft'] ? -1 : 0) + (state['ArrowRight'] ? +1 : 0),
|
|
1031
|
-
y: (state['ArrowUp'] ? -1 : 0) + (state['ArrowDown'] ? +1 : 0)
|
|
1032
|
-
};
|
|
1033
|
-
}
|
|
1034
|
-
}
|
|
1035
|
-
function PointerEvent(unit) {
|
|
1036
|
-
const internal = xnew$1();
|
|
1037
|
-
internal.on('pointerdown', (event) => xnew$1.emit('-pointerdown', { event, position: getPosition(unit.element, event) }));
|
|
1038
|
-
internal.on('pointermove', (event) => xnew$1.emit('-pointermove', { event, position: getPosition(unit.element, event) }));
|
|
1039
|
-
internal.on('pointerup', (event) => xnew$1.emit('-pointerup', { event, position: getPosition(unit.element, event) }));
|
|
1040
|
-
internal.on('wheel', (event) => xnew$1.emit('-wheel', { event, delta: { x: event.wheelDeltaX, y: event.wheelDeltaY } }));
|
|
1041
|
-
internal.on('click', (event) => xnew$1.emit('-click', { event, position: getPosition(unit.element, event) }));
|
|
1042
|
-
internal.on('pointerover', (event) => xnew$1.emit('-pointerover', { event, position: getPosition(unit.element, event) }));
|
|
1043
|
-
internal.on('pointerout', (event) => xnew$1.emit('-pointerout', { event, position: getPosition(unit.element, event) }));
|
|
1044
|
-
const pointerdownoutside = xnew$1.scope((event) => {
|
|
1045
|
-
if (unit.element.contains(event.target) === false) {
|
|
1046
|
-
xnew$1.emit('-pointerdown.outside', { event, position: getPosition(unit.element, event) });
|
|
1047
|
-
}
|
|
1048
|
-
});
|
|
1049
|
-
const pointerupoutside = xnew$1.scope((event) => {
|
|
1050
|
-
if (unit.element.contains(event.target) === false) {
|
|
1051
|
-
xnew$1.emit('-pointerup.outside', { event, position: getPosition(unit.element, event) });
|
|
1052
|
-
}
|
|
1053
|
-
});
|
|
1054
|
-
const clickoutside = xnew$1.scope((event) => {
|
|
1055
|
-
if (unit.element.contains(event.target) === false) {
|
|
1056
|
-
xnew$1.emit('-click.outside', { event, position: getPosition(unit.element, event) });
|
|
1057
|
-
}
|
|
1058
|
-
});
|
|
1059
|
-
document.addEventListener('pointerdown', pointerdownoutside);
|
|
1060
|
-
document.addEventListener('pointerup', pointerupoutside);
|
|
1061
|
-
document.addEventListener('click', clickoutside);
|
|
1062
|
-
unit.on('finalize', () => {
|
|
1063
|
-
document.removeEventListener('pointerdown', pointerdownoutside);
|
|
1064
|
-
document.removeEventListener('pointerup', pointerupoutside);
|
|
1065
|
-
document.removeEventListener('click', clickoutside);
|
|
1066
|
-
});
|
|
1067
|
-
const drag = xnew$1(DragEvent);
|
|
1068
|
-
drag.on('-dragstart', (...args) => xnew$1.emit('-dragstart', ...args));
|
|
1069
|
-
drag.on('-dragmove', (...args) => xnew$1.emit('-dragmove', ...args));
|
|
1070
|
-
drag.on('-dragend', (...args) => xnew$1.emit('-dragend', ...args));
|
|
1071
|
-
drag.on('-dragcancel', (...args) => xnew$1.emit('-dragcancel', ...args));
|
|
1072
|
-
const gesture = xnew$1(GestureEvent);
|
|
1073
|
-
gesture.on('-gesturestart', (...args) => xnew$1.emit('-gesturestart', ...args));
|
|
1074
|
-
gesture.on('-gesturemove', (...args) => xnew$1.emit('-gesturemove', ...args));
|
|
1075
|
-
gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
|
|
1076
|
-
gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
|
|
1077
|
-
}
|
|
1078
1008
|
function DragEvent(unit) {
|
|
1079
1009
|
const pointerdown = xnew$1.scope((event) => {
|
|
1080
1010
|
const id = event.pointerId;
|
|
@@ -1333,11 +1263,11 @@ function DragFrame(frame, { x = 0, y = 0 } = {}) {
|
|
|
1333
1263
|
function DragTarget(target, {} = {}) {
|
|
1334
1264
|
const { frame, absolute } = xnew$1.context('xnew.dragframe');
|
|
1335
1265
|
xnew$1.nest('<div>');
|
|
1336
|
-
const
|
|
1266
|
+
const direct = xnew$1(absolute.parentElement, DirectEvent);
|
|
1337
1267
|
const current = { x: 0, y: 0 };
|
|
1338
1268
|
const offset = { x: 0, y: 0 };
|
|
1339
1269
|
let dragged = false;
|
|
1340
|
-
|
|
1270
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1341
1271
|
if (target.element.contains(event.target) === false)
|
|
1342
1272
|
return;
|
|
1343
1273
|
dragged = true;
|
|
@@ -1346,7 +1276,7 @@ function DragTarget(target, {} = {}) {
|
|
|
1346
1276
|
current.x = position.x - offset.x;
|
|
1347
1277
|
current.y = position.y - offset.y;
|
|
1348
1278
|
});
|
|
1349
|
-
|
|
1279
|
+
direct.on('-dragmove', ({ event, delta }) => {
|
|
1350
1280
|
if (dragged !== true)
|
|
1351
1281
|
return;
|
|
1352
1282
|
current.x += delta.x;
|
|
@@ -1354,7 +1284,7 @@ function DragTarget(target, {} = {}) {
|
|
|
1354
1284
|
absolute.style.left = `${current.x}px`;
|
|
1355
1285
|
absolute.style.top = `${current.y}px`;
|
|
1356
1286
|
});
|
|
1357
|
-
|
|
1287
|
+
direct.on('-dragcancel -dragend', ({ event }) => {
|
|
1358
1288
|
dragged = false;
|
|
1359
1289
|
});
|
|
1360
1290
|
}
|
|
@@ -1391,22 +1321,22 @@ function AnalogStick(unit, { stroke = 'currentColor', strokeOpacity = 0.8, strok
|
|
|
1391
1321
|
xnew$1.extend(SVGTemplate, { fill, fillOpacity, stroke, strokeOpacity, strokeWidth, strokeLinejoin });
|
|
1392
1322
|
xnew$1('<circle cx="50" cy="50" r="23">');
|
|
1393
1323
|
});
|
|
1394
|
-
const
|
|
1395
|
-
|
|
1324
|
+
const direct = xnew$1(DirectEvent);
|
|
1325
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1396
1326
|
const vector = getVector(position);
|
|
1397
1327
|
target.element.style.filter = 'brightness(90%)';
|
|
1398
1328
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
1399
1329
|
target.element.style.top = vector.y * newsize / 4 + 'px';
|
|
1400
1330
|
xnew$1.emit('-down', { vector });
|
|
1401
1331
|
});
|
|
1402
|
-
|
|
1332
|
+
direct.on('-dragmove', ({ event, position }) => {
|
|
1403
1333
|
const vector = getVector(position);
|
|
1404
1334
|
target.element.style.filter = 'brightness(90%)';
|
|
1405
1335
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
1406
1336
|
target.element.style.top = vector.y * newsize / 4 + 'px';
|
|
1407
1337
|
xnew$1.emit('-move', { vector });
|
|
1408
1338
|
});
|
|
1409
|
-
|
|
1339
|
+
direct.on('-dragend', ({ event }) => {
|
|
1410
1340
|
const vector = { x: 0, y: 0 };
|
|
1411
1341
|
target.element.style.filter = '';
|
|
1412
1342
|
target.element.style.left = vector.x * newsize / 4 + 'px';
|
|
@@ -1458,8 +1388,8 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
|
|
|
1458
1388
|
xnew$1('<polygon points="11 50 20 42 20 58">');
|
|
1459
1389
|
xnew$1('<polygon points="89 50 80 42 80 58">');
|
|
1460
1390
|
});
|
|
1461
|
-
const
|
|
1462
|
-
|
|
1391
|
+
const direct = xnew$1(DirectEvent);
|
|
1392
|
+
direct.on('-dragstart', ({ event, position }) => {
|
|
1463
1393
|
const vector = getVector(position);
|
|
1464
1394
|
targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
|
|
1465
1395
|
targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
|
|
@@ -1467,7 +1397,7 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
|
|
|
1467
1397
|
targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
|
|
1468
1398
|
xnew$1.emit('-down', { vector });
|
|
1469
1399
|
});
|
|
1470
|
-
|
|
1400
|
+
direct.on('-dragmove', ({ event, position }) => {
|
|
1471
1401
|
const vector = getVector(position);
|
|
1472
1402
|
targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
|
|
1473
1403
|
targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
|
|
@@ -1475,7 +1405,7 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
|
|
|
1475
1405
|
targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
|
|
1476
1406
|
xnew$1.emit('-move', { vector });
|
|
1477
1407
|
});
|
|
1478
|
-
|
|
1408
|
+
direct.on('-dragend', ({ event }) => {
|
|
1479
1409
|
const vector = { x: 0, y: 0 };
|
|
1480
1410
|
targets[0].element.style.filter = '';
|
|
1481
1411
|
targets[1].element.style.filter = '';
|
|
@@ -1537,7 +1467,7 @@ function TextStream(unit, { text = '', speed = 50, fade = 300 } = {}) {
|
|
|
1537
1467
|
});
|
|
1538
1468
|
xnew$1.timeout(() => {
|
|
1539
1469
|
xnew$1(document.body).on('click wheel', action);
|
|
1540
|
-
xnew$1(
|
|
1470
|
+
xnew$1(DirectEvent).on('-keydown', action);
|
|
1541
1471
|
}, 100);
|
|
1542
1472
|
function action() {
|
|
1543
1473
|
if (state === 0) {
|
|
@@ -3418,7 +3348,7 @@ const icons = {
|
|
|
3418
3348
|
|
|
3419
3349
|
function VolumeController(unit, {} = {}) {
|
|
3420
3350
|
xnew$1.nest(`<div style="position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: flex-end; pointer-events: none; container-type: size;">`);
|
|
3421
|
-
xnew$1.extend(
|
|
3351
|
+
xnew$1.extend(DirectEvent);
|
|
3422
3352
|
unit.on('-pointerdown', ({ event }) => event.stopPropagation());
|
|
3423
3353
|
const slider = xnew$1(`<input type="range" min="0" max="100" value="${master.gain.value * 100}"
|
|
3424
3354
|
style="display: none; width: calc(96cqw - 100cqh); margin: 0 2cqw; cursor: pointer; pointer-events: auto;"
|
|
@@ -3443,10 +3373,8 @@ function VolumeController(unit, {} = {}) {
|
|
|
3443
3373
|
|
|
3444
3374
|
const basics = {
|
|
3445
3375
|
Screen,
|
|
3446
|
-
PointerEvent,
|
|
3447
3376
|
DirectEvent,
|
|
3448
3377
|
ResizeEvent,
|
|
3449
|
-
KeyboardEvent,
|
|
3450
3378
|
ModalFrame,
|
|
3451
3379
|
ModalContent,
|
|
3452
3380
|
AccordionFrame,
|