solid-pianoroll 0.0.27 → 0.0.29
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/dev.cjs +295 -323
- package/dist/dev.js +297 -325
- package/dist/dev.jsx +181 -199
- package/dist/index.cjs +294 -322
- package/dist/index.js +297 -325
- package/dist/index.jsx +181 -199
- package/package.json +5 -2
package/dist/dev.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { delegateEvents, createComponent, spread, mergeProps as mergeProps$1, insert, effect, setAttribute, memo, className, classList, template, use } from 'solid-js/web';
|
|
2
|
-
import { createContext,
|
|
1
|
+
import { delegateEvents, createComponent, spread, mergeProps as mergeProps$1, insert, effect, setAttribute, memo, className, classList, template, setStyleProperty, use } from 'solid-js/web';
|
|
2
|
+
import { createContext, mergeProps, Show, splitProps, createEffect, createMemo, createSignal, useContext, Index, For } from 'solid-js';
|
|
3
3
|
import { createStore } from 'solid-js/store';
|
|
4
|
+
import { createViewPortAxis } from 'solid-viewport';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
// src/PianoRoll.tsx
|
|
7
7
|
|
|
8
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
9
|
-
var digest = "
|
|
8
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-8lzhn6eq80hI/solid-pianoroll/src/PianoRoll.module.css.js
|
|
9
|
+
var digest = "f98365679977aeae978639d556d0bab7b4f40e1a8f0db1eb3e5c93f9af6181e2";
|
|
10
10
|
var css = `._PianoRoll_1v1e7_1 {
|
|
11
11
|
box-sizing: border-box;
|
|
12
12
|
display: flex;
|
|
@@ -54,7 +54,7 @@ var css = `._PianoRoll_1v1e7_1 {
|
|
|
54
54
|
document.head.appendChild(el);
|
|
55
55
|
}
|
|
56
56
|
})();
|
|
57
|
-
var PianoRoll_module_css_default = { "pianoRoll": "_PianoRoll_1v1e7_1", "pianoRollContainer": "_PianoRollContainer_1v1e7_10", "pianoRollLeftColumn": "_PianoRollLeftColumn_1v1e7_17", "showTrackList": "_showTrackList_1v1e7_24", "pianoRollRightColumn": "_PianoRollRightColumn_1v1e7_29" };
|
|
57
|
+
var PianoRoll_module_css_default = { "PianoRoll": "_PianoRoll_1v1e7_1", "pianoRoll": "_PianoRoll_1v1e7_1", "PianoRollContainer": "_PianoRollContainer_1v1e7_10", "pianoRollContainer": "_PianoRollContainer_1v1e7_10", "PianoRollLeftColumn": "_PianoRollLeftColumn_1v1e7_17", "pianoRollLeftColumn": "_PianoRollLeftColumn_1v1e7_17", "showTrackList": "_showTrackList_1v1e7_24", "PianoRollRightColumn": "_PianoRollRightColumn_1v1e7_29", "pianoRollRightColumn": "_PianoRollRightColumn_1v1e7_29" };
|
|
58
58
|
var defaultState = {
|
|
59
59
|
ppq: 0,
|
|
60
60
|
mode: "keys",
|
|
@@ -74,7 +74,7 @@ var defaultState = {
|
|
|
74
74
|
notesScrollerClientRect: { left: 0, width: 0, top: 0, height: 0 },
|
|
75
75
|
tracksScrollerClientRect: { left: 0, width: 0, top: 0, height: 0 }
|
|
76
76
|
};
|
|
77
|
-
var propNameToHandlerName =
|
|
77
|
+
var propNameToHandlerName = (name) => `on${name[0]?.toUpperCase()}${name.slice(1)}Change`;
|
|
78
78
|
var pianoRollStatePropNames = [
|
|
79
79
|
...Object.keys(defaultState),
|
|
80
80
|
...Object.keys(defaultState).map(propNameToHandlerName),
|
|
@@ -86,7 +86,7 @@ var pianoRollStatePropNames = [
|
|
|
86
86
|
"isKeyDown",
|
|
87
87
|
"snapValueToGridIfEnabled"
|
|
88
88
|
];
|
|
89
|
-
var createPianoRollstate =
|
|
89
|
+
var createPianoRollstate = (initialState) => {
|
|
90
90
|
const [state, setState] = createStore({
|
|
91
91
|
...defaultState,
|
|
92
92
|
...initialState
|
|
@@ -106,12 +106,12 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
|
|
|
106
106
|
];
|
|
107
107
|
})
|
|
108
108
|
);
|
|
109
|
-
const onPlayheadPositionChange =
|
|
109
|
+
const onPlayheadPositionChange = (playheadPosition, originalEvent) => {
|
|
110
110
|
handlers.onPlayHeadPositionChange(
|
|
111
111
|
snapValueToGridIfEnabled(playheadPosition, !!originalEvent?.altKey)
|
|
112
112
|
);
|
|
113
|
-
}
|
|
114
|
-
const updateNotes =
|
|
113
|
+
};
|
|
114
|
+
const updateNotes = async (trackIndex, getNotes) => {
|
|
115
115
|
const track = state.tracks[trackIndex];
|
|
116
116
|
if (!track)
|
|
117
117
|
return;
|
|
@@ -121,15 +121,15 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
|
|
|
121
121
|
{ ...track, notes: getNotes(notes) },
|
|
122
122
|
...state.tracks.slice(trackIndex + 1)
|
|
123
123
|
]);
|
|
124
|
-
}
|
|
125
|
-
const onNoteChange =
|
|
124
|
+
};
|
|
125
|
+
const onNoteChange = (trackIndex, noteIndex, note) => {
|
|
126
126
|
updateNotes(trackIndex, (notes) => [
|
|
127
127
|
...notes.slice(0, noteIndex),
|
|
128
128
|
note,
|
|
129
129
|
...notes.slice(noteIndex + 1)
|
|
130
130
|
]);
|
|
131
|
-
}
|
|
132
|
-
const onInsertNote =
|
|
131
|
+
};
|
|
132
|
+
const onInsertNote = (trackIndex, note) => {
|
|
133
133
|
const track = state.tracks[trackIndex];
|
|
134
134
|
if (!track)
|
|
135
135
|
return -1;
|
|
@@ -144,14 +144,14 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
|
|
|
144
144
|
...notes2.slice(newNoteIndex)
|
|
145
145
|
]);
|
|
146
146
|
return newNoteIndex;
|
|
147
|
-
}
|
|
148
|
-
const onRemoveNote =
|
|
147
|
+
};
|
|
148
|
+
const onRemoveNote = (trackIndex, noteIndex) => {
|
|
149
149
|
updateNotes(trackIndex, (notes) => [
|
|
150
150
|
...notes.slice(0, noteIndex),
|
|
151
151
|
...notes.slice(noteIndex + 1)
|
|
152
152
|
]);
|
|
153
|
-
}
|
|
154
|
-
const updateKeyPressedState =
|
|
153
|
+
};
|
|
154
|
+
const updateKeyPressedState = (trackIndex, keyNumber, value) => {
|
|
155
155
|
handlers.onPressedKeysChange?.({
|
|
156
156
|
...state.pressedKeys,
|
|
157
157
|
[trackIndex]: {
|
|
@@ -159,18 +159,18 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
|
|
|
159
159
|
[keyNumber]: value
|
|
160
160
|
}
|
|
161
161
|
});
|
|
162
|
-
}
|
|
163
|
-
const onNoteDown =
|
|
162
|
+
};
|
|
163
|
+
const onNoteDown = (trackIndex, keyNumber) => {
|
|
164
164
|
updateKeyPressedState(trackIndex, keyNumber, true);
|
|
165
|
-
}
|
|
166
|
-
const onNoteUp =
|
|
165
|
+
};
|
|
166
|
+
const onNoteUp = (trackIndex, keyNumber) => {
|
|
167
167
|
updateKeyPressedState(trackIndex, keyNumber, false);
|
|
168
|
-
}
|
|
169
|
-
const isKeyDown =
|
|
170
|
-
const snapValueToGridIfEnabled =
|
|
168
|
+
};
|
|
169
|
+
const isKeyDown = (trackIndex, keyNumber) => !!state.pressedKeys[trackIndex]?.[keyNumber];
|
|
170
|
+
const snapValueToGridIfEnabled = (value, altKey) => {
|
|
171
171
|
const gridDivisionTicks = state.ppq * 4 / state.gridDivision;
|
|
172
172
|
return state.snapToGrid && !altKey ? Math.round(value / gridDivisionTicks) * gridDivisionTicks : value;
|
|
173
|
-
}
|
|
173
|
+
};
|
|
174
174
|
return mergeProps(state, {
|
|
175
175
|
...handlers,
|
|
176
176
|
onNoteChange,
|
|
@@ -182,22 +182,22 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
|
|
|
182
182
|
snapValueToGridIfEnabled,
|
|
183
183
|
onPlayheadPositionChange
|
|
184
184
|
});
|
|
185
|
-
}
|
|
185
|
+
};
|
|
186
186
|
var usePianoRollState_default = createPianoRollstate;
|
|
187
187
|
|
|
188
188
|
// src/PianoRollContext.tsx
|
|
189
189
|
var PianoRollContext = createContext();
|
|
190
190
|
var PianoRollContextProvider = PianoRollContext.Provider;
|
|
191
|
-
var usePianoRollContext =
|
|
191
|
+
var usePianoRollContext = () => {
|
|
192
192
|
const context = useContext(PianoRollContext);
|
|
193
193
|
if (!context)
|
|
194
194
|
throw new Error("No PianoRollContext found");
|
|
195
195
|
return context;
|
|
196
|
-
}
|
|
197
|
-
var splitContextProps =
|
|
196
|
+
};
|
|
197
|
+
var splitContextProps = (allProps) => splitProps(allProps, [...pianoRollStatePropNames, "showAllTracks", "showTrackList"]);
|
|
198
198
|
|
|
199
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
200
|
-
var digest2 = "
|
|
199
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-QWt6xGwg8x8f/solid-pianoroll/src/PianoRollKeys.module.css.js
|
|
200
|
+
var digest2 = "2dc49011f255b6528cef972ac959dce8864dd148b3dc48487161aa29d0898925";
|
|
201
201
|
var css2 = `._PianoRollKeys_1ne9i_1 {
|
|
202
202
|
position: relative;
|
|
203
203
|
height: 100%;
|
|
@@ -260,64 +260,60 @@ var css2 = `._PianoRollKeys_1ne9i_1 {
|
|
|
260
260
|
document.head.appendChild(el);
|
|
261
261
|
}
|
|
262
262
|
})();
|
|
263
|
-
var PianoRollKeys_module_css_default = { "pianoRollKeys": "_PianoRollKeys_1ne9i_1", "key": "_Key_1ne9i_14", "black": "_black_1ne9i_29", "white": "_white_1ne9i_38", "down": "_down_1ne9i_46" };
|
|
263
|
+
var PianoRollKeys_module_css_default = { "PianoRollKeys": "_PianoRollKeys_1ne9i_1", "pianoRollKeys": "_PianoRollKeys_1ne9i_1", "Key": "_Key_1ne9i_14", "key": "_Key_1ne9i_14", "black": "_black_1ne9i_29", "white": "_white_1ne9i_38", "down": "_down_1ne9i_46" };
|
|
264
264
|
function createViewPortDimension(getState) {
|
|
265
|
-
const
|
|
266
|
-
const
|
|
267
|
-
const onZoomChange = /* @__PURE__ */ __name((zoom) => state2.onZoomChange?.(clamp(zoom, state2.minZoom, state2.maxZoom)), "onZoomChange");
|
|
268
|
-
const onPositionChange = /* @__PURE__ */ __name((position) => state2.onPositionChange?.(position), "onPositionChange");
|
|
265
|
+
const axis = createViewPortAxis(() => {
|
|
266
|
+
const s = getState();
|
|
269
267
|
return {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
268
|
+
name: s.name,
|
|
269
|
+
position: s.position,
|
|
270
|
+
range: s.range,
|
|
271
|
+
pixelOffset: s.pixelOffset,
|
|
272
|
+
pixelSize: s.pixelSize,
|
|
273
|
+
zoom: s.zoom,
|
|
274
|
+
minZoom: s.minZoom,
|
|
275
|
+
maxZoom: s.maxZoom,
|
|
276
|
+
onPositionChange: s.onPositionChange,
|
|
277
|
+
onZoomChange: s.onZoomChange
|
|
280
278
|
};
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
return state;
|
|
279
|
+
});
|
|
280
|
+
return {
|
|
281
|
+
get name() {
|
|
282
|
+
return axis.name;
|
|
283
|
+
},
|
|
284
|
+
get position() {
|
|
285
|
+
return axis.position;
|
|
286
|
+
},
|
|
287
|
+
get range() {
|
|
288
|
+
return axis.range;
|
|
289
|
+
},
|
|
290
|
+
get pixelOffset() {
|
|
291
|
+
return axis.pixelOffset;
|
|
292
|
+
},
|
|
293
|
+
get pixelSize() {
|
|
294
|
+
return axis.pixelSize;
|
|
295
|
+
},
|
|
296
|
+
get zoom() {
|
|
297
|
+
return axis.zoom;
|
|
298
|
+
},
|
|
299
|
+
get minZoom() {
|
|
300
|
+
return axis.minZoom;
|
|
301
|
+
},
|
|
302
|
+
get maxZoom() {
|
|
303
|
+
return axis.maxZoom;
|
|
304
|
+
},
|
|
305
|
+
onPositionChange: (position) => axis.onPositionChange?.(position),
|
|
306
|
+
onZoomChange: (zoom) => axis.onZoomChange?.(zoom),
|
|
307
|
+
calculatePixelValue: (position) => axis.toPixels(position),
|
|
308
|
+
calculatePixelOffset: (position) => axis.toPixelOffset(position),
|
|
309
|
+
calculatePosition: (offset) => axis.toPosition(offset),
|
|
310
|
+
calculatePixelDimensions: (position, length) => axis.dimensions(position, length),
|
|
311
|
+
calculateVisibleRange: () => axis.visibleRange(),
|
|
312
|
+
calculateMaxPosition: () => axis.maxPosition(),
|
|
313
|
+
isVisible: (dimensions) => axis.isVisible(dimensions)
|
|
314
|
+
};
|
|
318
315
|
}
|
|
319
|
-
|
|
320
|
-
var clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), "clamp");
|
|
316
|
+
var clamp = (value, min, max) => Math.max(min, Math.min(max, value));
|
|
321
317
|
|
|
322
318
|
// src/viewport/ScrollZoomViewPort.tsx
|
|
323
319
|
var defaultViewPortProps = {
|
|
@@ -328,7 +324,7 @@ var defaultViewPortProps = {
|
|
|
328
324
|
minZoom: 1,
|
|
329
325
|
maxZoom: Infinity
|
|
330
326
|
};
|
|
331
|
-
var ScrollZoomViewPort =
|
|
327
|
+
var ScrollZoomViewPort = (props) => {
|
|
332
328
|
const viewPorts = Object.entries(props.dimensions).map(([name, viewPortProps]) => createViewPortDimension(() => ({
|
|
333
329
|
name,
|
|
334
330
|
...defaultViewPortProps,
|
|
@@ -343,18 +339,18 @@ var ScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
|
|
|
343
339
|
return props.children;
|
|
344
340
|
}
|
|
345
341
|
});
|
|
346
|
-
}
|
|
342
|
+
};
|
|
347
343
|
var ScrollZoomViewPortContext = createContext([]);
|
|
348
|
-
var useViewPortDimension =
|
|
344
|
+
var useViewPortDimension = (name) => {
|
|
349
345
|
const viewPorts = useContext(ScrollZoomViewPortContext);
|
|
350
346
|
const viewPort = name ? viewPorts.find((viewPort2) => viewPort2.name === name) : viewPorts[viewPorts.length - 1];
|
|
351
347
|
if (!viewPort)
|
|
352
348
|
throw new Error(`ViewPort dimension "${name}" not found.`);
|
|
353
349
|
return viewPort;
|
|
354
|
-
}
|
|
350
|
+
};
|
|
355
351
|
|
|
356
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
357
|
-
var digest3 = "
|
|
352
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-sRdgNeeVXBuQ/solid-pianoroll/src/viewport/ScrollZoomContainer.module.css.js
|
|
353
|
+
var digest3 = "8b3eabfb7fb7509fb8f2c3e80e0a7ca990acf44d3b9f09a34f5fd4d7a4b1cc4f";
|
|
358
354
|
var css3 = `._ScrollZoomContainer_f395r_1 {
|
|
359
355
|
height: 100%;
|
|
360
356
|
width: 100%;
|
|
@@ -372,11 +368,11 @@ var css3 = `._ScrollZoomContainer_f395r_1 {
|
|
|
372
368
|
document.head.appendChild(el);
|
|
373
369
|
}
|
|
374
370
|
})();
|
|
375
|
-
var ScrollZoomContainer_module_css_default = { "scrollZoomContainer": "_ScrollZoomContainer_f395r_1" };
|
|
371
|
+
var ScrollZoomContainer_module_css_default = { "ScrollZoomContainer": "_ScrollZoomContainer_f395r_1", "scrollZoomContainer": "_ScrollZoomContainer_f395r_1" };
|
|
376
372
|
|
|
377
373
|
// src/viewport/ScrollZoomContainer.tsx
|
|
378
|
-
var _tmpl$ = /* @__PURE__ */ template(`<div><div><div><div
|
|
379
|
-
var ScrollZoomContainer =
|
|
374
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div><div><div style=top:0;left:0;position:sticky;display:flex><div style=position:relative>`);
|
|
375
|
+
var ScrollZoomContainer = (props) => {
|
|
380
376
|
let scrollContentRef;
|
|
381
377
|
const [ownProps, divProps] = splitProps(props, ["ref", "verticalDimensionName", "horizontalDimensionName", "showScrollbar"]);
|
|
382
378
|
const propsWithDefaults = mergeProps({
|
|
@@ -386,8 +382,7 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
|
|
|
386
382
|
}, ownProps);
|
|
387
383
|
const verticalViewPort = createMemo(() => useViewPortDimension(propsWithDefaults.verticalDimensionName));
|
|
388
384
|
const horizontalViewPort = createMemo(() => useViewPortDimension(propsWithDefaults.horizontalDimensionName));
|
|
389
|
-
const handleScroll =
|
|
390
|
-
event.preventDefault();
|
|
385
|
+
const handleScroll = (event) => {
|
|
391
386
|
if (didUpdateScroll) {
|
|
392
387
|
didUpdateScroll = false;
|
|
393
388
|
return;
|
|
@@ -406,25 +401,26 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
|
|
|
406
401
|
const scrollLeftAmount = scrollLeft / (scrollWidth - width);
|
|
407
402
|
verticalViewPort().onPositionChange?.(maxVerticalPosition * scrollTopAmount);
|
|
408
403
|
horizontalViewPort().onPositionChange?.(maxPosition * scrollLeftAmount);
|
|
409
|
-
}
|
|
410
|
-
const handleWheel =
|
|
404
|
+
};
|
|
405
|
+
const handleWheel = (event) => {
|
|
411
406
|
if (event.altKey) {
|
|
412
407
|
event.preventDefault();
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
408
|
+
const horizontal = Math.abs(event.deltaX) > Math.abs(event.deltaY);
|
|
409
|
+
const viewPort = horizontal ? horizontalViewPort() : verticalViewPort();
|
|
410
|
+
const delta = horizontal ? event.deltaX : event.deltaY;
|
|
411
|
+
const pointer = horizontal ? event.clientX : event.clientY;
|
|
412
|
+
const valueAtPointer = viewPort.calculatePosition(pointer);
|
|
413
|
+
const newZoom = viewPort.zoom / (1 + delta / viewPort.pixelSize);
|
|
414
|
+
const newVisibleRange = viewPort.range / newZoom;
|
|
415
|
+
const fraction = (pointer - viewPort.pixelOffset) / viewPort.pixelSize;
|
|
416
|
+
viewPort.onZoomChange?.(newZoom);
|
|
417
|
+
viewPort.onPositionChange?.(valueAtPointer - fraction * newVisibleRange);
|
|
422
418
|
} else if (!props.showScrollbar) {
|
|
423
419
|
event.preventDefault();
|
|
424
420
|
event.currentTarget.scrollLeft += event.deltaX;
|
|
425
421
|
event.currentTarget.scrollTop += event.deltaY;
|
|
426
422
|
}
|
|
427
|
-
}
|
|
423
|
+
};
|
|
428
424
|
let didUpdateScroll = false;
|
|
429
425
|
createEffect(() => {
|
|
430
426
|
const maxVerticalPosition = verticalViewPort().calculateMaxPosition();
|
|
@@ -448,10 +444,10 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
|
|
|
448
444
|
});
|
|
449
445
|
});
|
|
450
446
|
return (() => {
|
|
451
|
-
|
|
447
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild;
|
|
452
448
|
_el$.addEventListener("wheel", handleWheel);
|
|
453
449
|
_el$.addEventListener("scroll", handleScroll);
|
|
454
|
-
|
|
450
|
+
var _ref$ = props.ref;
|
|
455
451
|
typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
|
|
456
452
|
spread(_el$, mergeProps$1(divProps, {
|
|
457
453
|
get style() {
|
|
@@ -467,42 +463,37 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
|
|
|
467
463
|
};
|
|
468
464
|
}
|
|
469
465
|
}), false, true);
|
|
470
|
-
|
|
466
|
+
var _ref$2 = scrollContentRef;
|
|
471
467
|
typeof _ref$2 === "function" ? use(_ref$2, _el$2) : scrollContentRef = _el$2;
|
|
472
|
-
_el$3.style.setProperty("top", "0");
|
|
473
|
-
_el$3.style.setProperty("left", "0");
|
|
474
|
-
_el$3.style.setProperty("position", "sticky");
|
|
475
|
-
_el$3.style.setProperty("display", "flex");
|
|
476
|
-
_el$4.style.setProperty("position", "relative");
|
|
477
468
|
insert(_el$4, () => props.children);
|
|
478
469
|
effect((_p$) => {
|
|
479
|
-
|
|
480
|
-
_v$ !== _p$.
|
|
481
|
-
_v$2 !== _p$.
|
|
482
|
-
_v$3 !== _p$.
|
|
483
|
-
_v$4 !== _p$.
|
|
470
|
+
var _v$ = `${verticalViewPort().pixelSize}px`, _v$2 = `${horizontalViewPort().pixelSize}px`, _v$3 = `${verticalViewPort().pixelSize}px`, _v$4 = `${horizontalViewPort().pixelSize}px`;
|
|
471
|
+
_v$ !== _p$.e && setStyleProperty(_el$3, "height", _p$.e = _v$);
|
|
472
|
+
_v$2 !== _p$.t && setStyleProperty(_el$3, "width", _p$.t = _v$2);
|
|
473
|
+
_v$3 !== _p$.a && setStyleProperty(_el$4, "height", _p$.a = _v$3);
|
|
474
|
+
_v$4 !== _p$.o && setStyleProperty(_el$4, "width", _p$.o = _v$4);
|
|
484
475
|
return _p$;
|
|
485
476
|
}, {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
477
|
+
e: void 0,
|
|
478
|
+
t: void 0,
|
|
479
|
+
a: void 0,
|
|
480
|
+
o: void 0
|
|
490
481
|
});
|
|
491
482
|
return _el$;
|
|
492
483
|
})();
|
|
493
|
-
}
|
|
484
|
+
};
|
|
494
485
|
var ScrollZoomContainer_default = ScrollZoomContainer;
|
|
495
486
|
|
|
496
487
|
// src/PianoRollKeys.tsx
|
|
497
|
-
var _tmpl$2 = /* @__PURE__ */ template(`<div
|
|
498
|
-
var PianoRollKeys =
|
|
488
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
|
|
489
|
+
var PianoRollKeys = () => {
|
|
499
490
|
const verticalViewPort = createMemo(() => useViewPortDimension("vertical"));
|
|
500
491
|
const horizontalViewPort = createMemo(() => useViewPortDimension("horizontalKeys"));
|
|
501
492
|
const [isMouseDown, setIsMouseDown] = createSignal(false);
|
|
502
493
|
const context = usePianoRollContext();
|
|
503
|
-
const handleMouseUp =
|
|
494
|
+
const handleMouseUp = () => {
|
|
504
495
|
setIsMouseDown(false);
|
|
505
|
-
}
|
|
496
|
+
};
|
|
506
497
|
createEffect(() => {
|
|
507
498
|
if (isMouseDown()) {
|
|
508
499
|
window.addEventListener("mouseup", handleMouseUp);
|
|
@@ -511,7 +502,7 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
|
|
|
511
502
|
}
|
|
512
503
|
});
|
|
513
504
|
return (() => {
|
|
514
|
-
|
|
505
|
+
var _el$ = _tmpl$2();
|
|
515
506
|
insert(_el$, createComponent(ScrollZoomContainer_default, {
|
|
516
507
|
horizontalDimensionName: "horizontalKeys",
|
|
517
508
|
showScrollbar: false,
|
|
@@ -528,7 +519,7 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
|
|
|
528
519
|
return verticalViewPort().isVisible(virtualDimensions());
|
|
529
520
|
},
|
|
530
521
|
get children() {
|
|
531
|
-
|
|
522
|
+
var _el$2 = _tmpl$2();
|
|
532
523
|
_el$2.addEventListener("mouseleave", () => {
|
|
533
524
|
if (isMouseDown()) {
|
|
534
525
|
context.onNoteUp(context.selectedTrackIndex, key().number);
|
|
@@ -547,26 +538,26 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
|
|
|
547
538
|
context.onNoteDown(context.selectedTrackIndex, key().number);
|
|
548
539
|
};
|
|
549
540
|
effect((_p$) => {
|
|
550
|
-
|
|
541
|
+
var _v$3 = {
|
|
551
542
|
[PianoRollKeys_module_css_default["Key"]]: true,
|
|
552
543
|
[PianoRollKeys_module_css_default["black"]]: key().isBlack,
|
|
553
544
|
[PianoRollKeys_module_css_default["white"]]: !key().isBlack,
|
|
554
545
|
[PianoRollKeys_module_css_default["down"]]: isDown()
|
|
555
546
|
}, _v$4 = key().name, _v$5 = key().number % 12, _v$6 = `${virtualDimensions().offset - virtualDimensions().size * (!key().isBlack ? nextIsBlack ? 1 / 2 : 0 : 0)}px`, _v$7 = `${virtualDimensions().size + (!key().isBlack && nextIsBlack ? virtualDimensions().size / 2 : 0) + (!key().isBlack && previousIsBlack ? virtualDimensions().size / 2 : 0)}px`, _v$8 = `0px 0px ${Math.min(virtualDimensions().size / 20, 1)}px ${Math.min(virtualDimensions().size / 50, 1)}px rgba(0, 0, 0, 0.5) ${key().isBlack ? "" : "inset"}` + isDown() ? `0px 0px ${Math.min(virtualDimensions().size / 8, 2)}px ${Math.min(virtualDimensions().size / 20, 2)}px rgba(0, 0, 0, 0.5) inset` : "";
|
|
556
|
-
_p$.
|
|
557
|
-
_v$4 !== _p$.
|
|
558
|
-
_v$5 !== _p$.
|
|
559
|
-
_v$6 !== _p$.
|
|
560
|
-
_v$7 !== _p$.
|
|
561
|
-
_v$8 !== _p$.
|
|
547
|
+
_p$.e = classList(_el$2, _v$3, _p$.e);
|
|
548
|
+
_v$4 !== _p$.t && setAttribute(_el$2, "title", _p$.t = _v$4);
|
|
549
|
+
_v$5 !== _p$.a && setAttribute(_el$2, "data-index", _p$.a = _v$5);
|
|
550
|
+
_v$6 !== _p$.o && setStyleProperty(_el$2, "top", _p$.o = _v$6);
|
|
551
|
+
_v$7 !== _p$.i && setStyleProperty(_el$2, "height", _p$.i = _v$7);
|
|
552
|
+
_v$8 !== _p$.n && setStyleProperty(_el$2, "box-shadow", _p$.n = _v$8);
|
|
562
553
|
return _p$;
|
|
563
554
|
}, {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
555
|
+
e: void 0,
|
|
556
|
+
t: void 0,
|
|
557
|
+
a: void 0,
|
|
558
|
+
o: void 0,
|
|
559
|
+
i: void 0,
|
|
560
|
+
n: void 0
|
|
570
561
|
});
|
|
571
562
|
return _el$2;
|
|
572
563
|
}
|
|
@@ -576,17 +567,17 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
|
|
|
576
567
|
}
|
|
577
568
|
}));
|
|
578
569
|
effect((_p$) => {
|
|
579
|
-
|
|
580
|
-
_v$ !== _p$.
|
|
581
|
-
_v$2 !== _p$.
|
|
570
|
+
var _v$ = PianoRollKeys_module_css_default.PianoRollKeys, _v$2 = `${horizontalViewPort().pixelSize}px`;
|
|
571
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
572
|
+
_v$2 !== _p$.t && setStyleProperty(_el$, "width", _p$.t = _v$2);
|
|
582
573
|
return _p$;
|
|
583
574
|
}, {
|
|
584
|
-
|
|
585
|
-
|
|
575
|
+
e: void 0,
|
|
576
|
+
t: void 0
|
|
586
577
|
});
|
|
587
578
|
return _el$;
|
|
588
579
|
})();
|
|
589
|
-
}
|
|
580
|
+
};
|
|
590
581
|
var blackKeys = [1, 3, 6, 8, 10];
|
|
591
582
|
var keyNames = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
|
|
592
583
|
var keys = Array.from({
|
|
@@ -599,8 +590,8 @@ var keys = Array.from({
|
|
|
599
590
|
var PianoRollKeys_default = PianoRollKeys;
|
|
600
591
|
delegateEvents(["mousedown", "mouseup"]);
|
|
601
592
|
|
|
602
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
603
|
-
var digest4 = "
|
|
593
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-fOFxcc31o2aC/solid-pianoroll/src/PianoRollNotes.module.css.js
|
|
594
|
+
var digest4 = "3f793f31c65fd8f88cc4fb08f90896e86c345a805956221f08511b5a800c5877";
|
|
604
595
|
var css4 = `._PianoRollNotes_u3pew_1 {
|
|
605
596
|
position: absolute;
|
|
606
597
|
flex: 1;
|
|
@@ -641,11 +632,11 @@ var css4 = `._PianoRollNotes_u3pew_1 {
|
|
|
641
632
|
document.head.appendChild(el);
|
|
642
633
|
}
|
|
643
634
|
})();
|
|
644
|
-
var PianoRollNotes_module_css_default = { "pianoRollNotes": "_PianoRollNotes_u3pew_1", "note": "_Note_u3pew_12", "trimStart": "_trimStart_u3pew_22", "trimEnd": "_trimEnd_u3pew_26" };
|
|
635
|
+
var PianoRollNotes_module_css_default = { "PianoRollNotes": "_PianoRollNotes_u3pew_1", "pianoRollNotes": "_PianoRollNotes_u3pew_1", "Note": "_Note_u3pew_12", "note": "_Note_u3pew_12", "trimStart": "_trimStart_u3pew_22", "trimEnd": "_trimEnd_u3pew_26" };
|
|
645
636
|
|
|
646
637
|
// src/PianoRollNotes.tsx
|
|
647
|
-
var _tmpl$3 = /* @__PURE__ */ template(`<div
|
|
648
|
-
var PianoRollNotes =
|
|
638
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<div>`);
|
|
639
|
+
var PianoRollNotes = (props) => {
|
|
649
640
|
const context = usePianoRollContext();
|
|
650
641
|
const verticalViewPort = createMemo(() => useViewPortDimension(context.mode === "keys" ? "vertical" : "verticalTracks"));
|
|
651
642
|
const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
|
|
@@ -656,7 +647,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
656
647
|
const [currentNoteTrackIndex, setCurrentNoteTrackIndex] = createSignal(-1);
|
|
657
648
|
const [diffPosition, setDiffPosition] = createSignal(0);
|
|
658
649
|
const [getInitialNote, setInitialNote] = createSignal();
|
|
659
|
-
const calculateNoteDragValues =
|
|
650
|
+
const calculateNoteDragValues = (event) => {
|
|
660
651
|
const targetTrackIndex = context.mode === "tracks" ? clamp(Math.floor(verticalViewPort().calculatePosition(event.clientY)), 0, context.tracks.length - 1) : currentNoteTrackIndex() > -1 ? currentNoteTrackIndex() : context.selectedTrackIndex;
|
|
661
652
|
const midi = context.mode === "keys" ? Math.floor(128 - verticalViewPort().calculatePosition(event.clientY)) : getInitialNote()?.midi ?? 60;
|
|
662
653
|
const horiontalPosition = horizontalViewPort().calculatePosition(event.clientX);
|
|
@@ -665,8 +656,8 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
665
656
|
midi,
|
|
666
657
|
horiontalPosition
|
|
667
658
|
};
|
|
668
|
-
}
|
|
669
|
-
const handleMouseMove =
|
|
659
|
+
};
|
|
660
|
+
const handleMouseMove = (mouseMoveEvent) => {
|
|
670
661
|
mouseMoveEvent.preventDefault();
|
|
671
662
|
mouseMoveEvent.stopPropagation();
|
|
672
663
|
const note = getInitialNote();
|
|
@@ -705,23 +696,23 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
705
696
|
setCurrentNoteIndex(newNoteIndex);
|
|
706
697
|
}
|
|
707
698
|
}
|
|
708
|
-
}
|
|
709
|
-
const stopDragging =
|
|
699
|
+
};
|
|
700
|
+
const stopDragging = () => {
|
|
710
701
|
window.removeEventListener("mousemove", handleMouseMove);
|
|
711
702
|
window.removeEventListener("mouseup", stopDragging);
|
|
712
703
|
setIsDragging(false);
|
|
713
704
|
setCurrentNoteIndex(-1);
|
|
714
705
|
setCurrentNoteTrackIndex(-1);
|
|
715
|
-
}
|
|
716
|
-
const startDragging =
|
|
706
|
+
};
|
|
707
|
+
const startDragging = () => {
|
|
717
708
|
window.addEventListener("mousemove", handleMouseMove);
|
|
718
709
|
window.addEventListener("mouseup", stopDragging);
|
|
719
|
-
}
|
|
720
|
-
const getClasses =
|
|
710
|
+
};
|
|
711
|
+
const getClasses = (noteDragMode2) => {
|
|
721
712
|
return noteDragMode2 ? [PianoRollNotes_module_css_default.Note, PianoRollNotes_module_css_default[noteDragMode2]] : [PianoRollNotes_module_css_default.Note];
|
|
722
|
-
}
|
|
713
|
+
};
|
|
723
714
|
return (() => {
|
|
724
|
-
|
|
715
|
+
var _el$ = _tmpl$3();
|
|
725
716
|
_el$.$$mousedown = (mouseDownEvent) => {
|
|
726
717
|
mouseDownEvent.preventDefault();
|
|
727
718
|
mouseDownEvent.stopPropagation();
|
|
@@ -747,7 +738,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
747
738
|
setNoteDragMode("trimEnd");
|
|
748
739
|
startDragging();
|
|
749
740
|
};
|
|
750
|
-
|
|
741
|
+
var _ref$ = props.ref;
|
|
751
742
|
typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
|
|
752
743
|
insert(_el$, createComponent(For, {
|
|
753
744
|
get each() {
|
|
@@ -771,7 +762,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
771
762
|
return memo(() => !!verticalViewPort().isVisible(verticalVirtualDimensions()))() && horizontalViewPort().isVisible(horizontalDimensions());
|
|
772
763
|
},
|
|
773
764
|
get children() {
|
|
774
|
-
|
|
765
|
+
var _el$2 = _tmpl$3();
|
|
775
766
|
_el$2.$$mousedown = (event) => {
|
|
776
767
|
event.stopPropagation();
|
|
777
768
|
const initialPosition = horizontalViewPort().calculatePosition(event.clientX);
|
|
@@ -797,23 +788,23 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
797
788
|
};
|
|
798
789
|
setAttribute(_el$2, "draggable", false);
|
|
799
790
|
effect((_p$) => {
|
|
800
|
-
|
|
801
|
-
_v$ !== _p$.
|
|
802
|
-
_v$2 !== _p$.
|
|
803
|
-
_v$3 !== _p$.
|
|
804
|
-
_v$4 !== _p$.
|
|
805
|
-
_v$5 !== _p$.
|
|
806
|
-
_v$6 !== _p$.
|
|
807
|
-
_v$7 !== _p$.
|
|
791
|
+
var _v$ = getClasses(noteDragMode()).join(" "), _v$2 = `${track.color}`, _v$3 = (note.velocity / 128 + 2) / 3, _v$4 = `${verticalVirtualDimensions().offset}px`, _v$5 = `${verticalVirtualDimensions().size}px`, _v$6 = `${horizontalDimensions().offset}px`, _v$7 = `${horizontalDimensions().size}px`;
|
|
792
|
+
_v$ !== _p$.e && className(_el$2, _p$.e = _v$);
|
|
793
|
+
_v$2 !== _p$.t && setStyleProperty(_el$2, "background-color", _p$.t = _v$2);
|
|
794
|
+
_v$3 !== _p$.a && setStyleProperty(_el$2, "opacity", _p$.a = _v$3);
|
|
795
|
+
_v$4 !== _p$.o && setStyleProperty(_el$2, "top", _p$.o = _v$4);
|
|
796
|
+
_v$5 !== _p$.i && setStyleProperty(_el$2, "height", _p$.i = _v$5);
|
|
797
|
+
_v$6 !== _p$.n && setStyleProperty(_el$2, "left", _p$.n = _v$6);
|
|
798
|
+
_v$7 !== _p$.s && setStyleProperty(_el$2, "width", _p$.s = _v$7);
|
|
808
799
|
return _p$;
|
|
809
800
|
}, {
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
801
|
+
e: void 0,
|
|
802
|
+
t: void 0,
|
|
803
|
+
a: void 0,
|
|
804
|
+
o: void 0,
|
|
805
|
+
i: void 0,
|
|
806
|
+
n: void 0,
|
|
807
|
+
s: void 0
|
|
817
808
|
});
|
|
818
809
|
return _el$2;
|
|
819
810
|
}
|
|
@@ -829,12 +820,12 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
|
|
|
829
820
|
}, _$p));
|
|
830
821
|
return _el$;
|
|
831
822
|
})();
|
|
832
|
-
}
|
|
823
|
+
};
|
|
833
824
|
var PianoRollNotes_default = PianoRollNotes;
|
|
834
825
|
delegateEvents(["mousedown", "mousemove", "dblclick"]);
|
|
835
826
|
|
|
836
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
837
|
-
var digest5 = "
|
|
827
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-FamItjgoB72k/solid-pianoroll/src/PianoRollGrid.module.css.js
|
|
828
|
+
var digest5 = "8f99749fdd1842645e11fa8c67b5563c2609d77e4a017609747695fcd73e49fc";
|
|
838
829
|
var css5 = `._PianoRollGrid_qke5f_1 {
|
|
839
830
|
position: relative;
|
|
840
831
|
width: 100%;
|
|
@@ -890,8 +881,8 @@ var css5 = `._PianoRollGrid_qke5f_1 {
|
|
|
890
881
|
document.head.appendChild(el);
|
|
891
882
|
}
|
|
892
883
|
})();
|
|
893
|
-
var PianoRollGrid_module_css_default = { "pianoRollGrid": "_PianoRollGrid_qke5f_1", "pianoRollGridRow": "_PianoRollGrid-Row_qke5f_7", "isDark": "_IsDark_qke5f_14", "key": "_Key_qke5f_18", "isBlackAndNextIsWhite": "_IsBlackAndNextIsWhite_qke5f_21", "pianoRollGridTime": "_PianoRollGrid-Time_qke5f_26", "highlighted": "_Highlighted_qke5f_37", "highlightedBorder": "_HighlightedBorder_qke5f_41" };
|
|
894
|
-
var usePianoRollGrid =
|
|
884
|
+
var PianoRollGrid_module_css_default = { "PianoRollGrid": "_PianoRollGrid_qke5f_1", "pianoRollGrid": "_PianoRollGrid_qke5f_1", "PianoRollGrid-Row": "_PianoRollGrid-Row_qke5f_7", "pianoRollGridRow": "_PianoRollGrid-Row_qke5f_7", "IsDark": "_IsDark_qke5f_14", "isDark": "_IsDark_qke5f_14", "Key": "_Key_qke5f_18", "key": "_Key_qke5f_18", "IsBlackAndNextIsWhite": "_IsBlackAndNextIsWhite_qke5f_21", "isBlackAndNextIsWhite": "_IsBlackAndNextIsWhite_qke5f_21", "PianoRollGrid-Time": "_PianoRollGrid-Time_qke5f_26", "pianoRollGridTime": "_PianoRollGrid-Time_qke5f_26", "Highlighted": "_Highlighted_qke5f_37", "highlighted": "_Highlighted_qke5f_37", "HighlightedBorder": "_HighlightedBorder_qke5f_41", "highlightedBorder": "_HighlightedBorder_qke5f_41" };
|
|
885
|
+
var usePianoRollGrid = () => {
|
|
895
886
|
const context = usePianoRollContext();
|
|
896
887
|
const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
|
|
897
888
|
const measureTicks = createMemo(() => context.ppq * 4);
|
|
@@ -908,7 +899,6 @@ var usePianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
908
899
|
}
|
|
909
900
|
return value;
|
|
910
901
|
}
|
|
911
|
-
__name(calculateVisibleGridDivisorTicks, "calculateVisibleGridDivisorTicks");
|
|
912
902
|
const gridDivisorTicks = createMemo(
|
|
913
903
|
() => calculateVisibleGridDivisorTicks(selectedGridDivisorTicks())
|
|
914
904
|
);
|
|
@@ -936,18 +926,18 @@ var usePianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
936
926
|
});
|
|
937
927
|
});
|
|
938
928
|
return gridArray;
|
|
939
|
-
}
|
|
929
|
+
};
|
|
940
930
|
var usePianoRollGrid_default = usePianoRollGrid;
|
|
941
931
|
|
|
942
932
|
// src/PianoRollGrid.tsx
|
|
943
|
-
var _tmpl$4 = /* @__PURE__ */ template(`<div
|
|
944
|
-
var PianoRollGrid =
|
|
933
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<div>`);
|
|
934
|
+
var PianoRollGrid = () => {
|
|
945
935
|
const context = usePianoRollContext();
|
|
946
936
|
const verticalViewPort = createMemo(() => useViewPortDimension(context.mode === "keys" ? "vertical" : "verticalTracks"));
|
|
947
937
|
const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
|
|
948
938
|
const gridArray = usePianoRollGrid_default();
|
|
949
939
|
return (() => {
|
|
950
|
-
|
|
940
|
+
var _el$ = _tmpl$4();
|
|
951
941
|
insert(_el$, createComponent(Index, {
|
|
952
942
|
get each() {
|
|
953
943
|
return gridArray();
|
|
@@ -958,21 +948,21 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
958
948
|
return horizontalViewPort().isVisible(entry().virtualDimensions);
|
|
959
949
|
},
|
|
960
950
|
get children() {
|
|
961
|
-
|
|
951
|
+
var _el$2 = _tmpl$4();
|
|
962
952
|
effect((_p$) => {
|
|
963
|
-
|
|
953
|
+
var _v$ = {
|
|
964
954
|
[PianoRollGrid_module_css_default["PianoRollGrid-Time"]]: true,
|
|
965
955
|
[PianoRollGrid_module_css_default["Highlighted"]]: entry().isHighlighted,
|
|
966
956
|
[PianoRollGrid_module_css_default["HighlightedBorder"]]: entry().hasHighlightedBorder
|
|
967
957
|
}, _v$2 = `${entry().virtualDimensions.offset}px`, _v$3 = `${entry().virtualDimensions.size}px`;
|
|
968
|
-
_p$.
|
|
969
|
-
_v$2 !== _p$.
|
|
970
|
-
_v$3 !== _p$.
|
|
958
|
+
_p$.e = classList(_el$2, _v$, _p$.e);
|
|
959
|
+
_v$2 !== _p$.t && setStyleProperty(_el$2, "left", _p$.t = _v$2);
|
|
960
|
+
_v$3 !== _p$.a && setStyleProperty(_el$2, "width", _p$.a = _v$3);
|
|
971
961
|
return _p$;
|
|
972
962
|
}, {
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
963
|
+
e: void 0,
|
|
964
|
+
t: void 0,
|
|
965
|
+
a: void 0
|
|
976
966
|
});
|
|
977
967
|
return _el$2;
|
|
978
968
|
}
|
|
@@ -993,22 +983,22 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
993
983
|
return verticalViewPort().isVisible(virtualDimensions());
|
|
994
984
|
},
|
|
995
985
|
get children() {
|
|
996
|
-
|
|
986
|
+
var _el$3 = _tmpl$4();
|
|
997
987
|
effect((_p$) => {
|
|
998
|
-
|
|
988
|
+
var _v$4 = {
|
|
999
989
|
[PianoRollGrid_module_css_default["PianoRollGrid-Row"]]: true,
|
|
1000
990
|
[PianoRollGrid_module_css_default["Key"]]: true,
|
|
1001
991
|
[PianoRollGrid_module_css_default["IsDark"]]: key().isBlack,
|
|
1002
992
|
[PianoRollGrid_module_css_default["IsBlackAndNextIsWhite"]]: !key().isBlack && !blackKeys.includes((key().number + 1) % 12)
|
|
1003
993
|
}, _v$5 = `${virtualDimensions().offset}px`, _v$6 = `${virtualDimensions().size}px`;
|
|
1004
|
-
_p$.
|
|
1005
|
-
_v$5 !== _p$.
|
|
1006
|
-
_v$6 !== _p$.
|
|
994
|
+
_p$.e = classList(_el$3, _v$4, _p$.e);
|
|
995
|
+
_v$5 !== _p$.t && setStyleProperty(_el$3, "top", _p$.t = _v$5);
|
|
996
|
+
_v$6 !== _p$.a && setStyleProperty(_el$3, "height", _p$.a = _v$6);
|
|
1007
997
|
return _p$;
|
|
1008
998
|
}, {
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
999
|
+
e: void 0,
|
|
1000
|
+
t: void 0,
|
|
1001
|
+
a: void 0
|
|
1012
1002
|
});
|
|
1013
1003
|
return _el$3;
|
|
1014
1004
|
}
|
|
@@ -1033,20 +1023,20 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
1033
1023
|
return verticalViewPort().isVisible(virtualDimensions());
|
|
1034
1024
|
},
|
|
1035
1025
|
get children() {
|
|
1036
|
-
|
|
1026
|
+
var _el$4 = _tmpl$4();
|
|
1037
1027
|
effect((_p$) => {
|
|
1038
|
-
|
|
1028
|
+
var _v$7 = {
|
|
1039
1029
|
[PianoRollGrid_module_css_default["PianoRollGrid-Row"]]: true,
|
|
1040
1030
|
[PianoRollGrid_module_css_default["IsDark"]]: index() % 2 === 0
|
|
1041
1031
|
}, _v$8 = `${virtualDimensions().offset}px`, _v$9 = `${virtualDimensions().size}px`;
|
|
1042
|
-
_p$.
|
|
1043
|
-
_v$8 !== _p$.
|
|
1044
|
-
_v$9 !== _p$.
|
|
1032
|
+
_p$.e = classList(_el$4, _v$7, _p$.e);
|
|
1033
|
+
_v$8 !== _p$.t && setStyleProperty(_el$4, "top", _p$.t = _v$8);
|
|
1034
|
+
_v$9 !== _p$.a && setStyleProperty(_el$4, "height", _p$.a = _v$9);
|
|
1045
1035
|
return _p$;
|
|
1046
1036
|
}, {
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1037
|
+
e: void 0,
|
|
1038
|
+
t: void 0,
|
|
1039
|
+
a: void 0
|
|
1050
1040
|
});
|
|
1051
1041
|
return _el$4;
|
|
1052
1042
|
}
|
|
@@ -1058,16 +1048,16 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
|
|
|
1058
1048
|
effect(() => className(_el$, PianoRollGrid_module_css_default.PianoRollGrid));
|
|
1059
1049
|
return _el$;
|
|
1060
1050
|
})();
|
|
1061
|
-
}
|
|
1051
|
+
};
|
|
1062
1052
|
var PianoRollGrid_default = PianoRollGrid;
|
|
1063
|
-
var _tmpl$5 = /* @__PURE__ */ template(`<input step=
|
|
1064
|
-
var ZoomSliderControl =
|
|
1053
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<input step=0.01>`);
|
|
1054
|
+
var ZoomSliderControl = (props) => {
|
|
1065
1055
|
const propsWithDefaults = mergeProps({
|
|
1066
1056
|
orientation: "horizontal"
|
|
1067
1057
|
}, props);
|
|
1068
1058
|
const dimension = createMemo(() => useViewPortDimension(props.dimensionName ?? propsWithDefaults.orientation));
|
|
1069
1059
|
return (() => {
|
|
1070
|
-
|
|
1060
|
+
var _el$ = _tmpl$5();
|
|
1071
1061
|
spread(_el$, mergeProps$1({
|
|
1072
1062
|
get min() {
|
|
1073
1063
|
return dimension().minZoom;
|
|
@@ -1088,7 +1078,7 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
|
|
|
1088
1078
|
orient: propsWithDefaults.orientation
|
|
1089
1079
|
}), {
|
|
1090
1080
|
get style() {
|
|
1091
|
-
return propsWithDefaults.orientation === "vertical" ? {
|
|
1081
|
+
return memo(() => propsWithDefaults.orientation === "vertical")() ? {
|
|
1092
1082
|
margin: 0,
|
|
1093
1083
|
"margin-left": "4px",
|
|
1094
1084
|
"margin-right": "4px",
|
|
@@ -1097,6 +1087,7 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
|
|
|
1097
1087
|
...{
|
|
1098
1088
|
"writing-mode": "bt-lr",
|
|
1099
1089
|
"-webkit-appearance": "slider-vertical"
|
|
1090
|
+
/* WebKit */
|
|
1100
1091
|
},
|
|
1101
1092
|
...typeof props.style === "object" && props.style
|
|
1102
1093
|
} : {
|
|
@@ -1109,11 +1100,11 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
|
|
|
1109
1100
|
}), false, false);
|
|
1110
1101
|
return _el$;
|
|
1111
1102
|
})();
|
|
1112
|
-
}
|
|
1103
|
+
};
|
|
1113
1104
|
var ZoomSliderControl_default = ZoomSliderControl;
|
|
1114
1105
|
|
|
1115
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
1116
|
-
var digest6 = "
|
|
1106
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-w5NNkTp9mNCS/solid-pianoroll/src/PianoRollTrackList.module.css.js
|
|
1107
|
+
var digest6 = "d049e8498e63cdce6936c315f09fa36f99bc002cbbdbdda32aca02834e99d8dd";
|
|
1117
1108
|
var css6 = `._PianoRollTrackList_11kti_1 {
|
|
1118
1109
|
position: relative;
|
|
1119
1110
|
height: 100%;
|
|
@@ -1149,14 +1140,14 @@ Track._selected_11kti_21 {
|
|
|
1149
1140
|
document.head.appendChild(el);
|
|
1150
1141
|
}
|
|
1151
1142
|
})();
|
|
1152
|
-
var PianoRollTrackList_module_css_default = { "pianoRollTrackList": "_PianoRollTrackList_11kti_1", "track": "_Track_11kti_7", "selected": "_selected_11kti_21" };
|
|
1153
|
-
var _tmpl$6 = /* @__PURE__ */ template(`<div
|
|
1154
|
-
var _tmpl$22 = /* @__PURE__ */ template(`<div>
|
|
1155
|
-
var PianoRollTrackList =
|
|
1143
|
+
var PianoRollTrackList_module_css_default = { "PianoRollTrackList": "_PianoRollTrackList_11kti_1", "pianoRollTrackList": "_PianoRollTrackList_11kti_1", "Track": "_Track_11kti_7", "track": "_Track_11kti_7", "selected": "_selected_11kti_21" };
|
|
1144
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<div>`);
|
|
1145
|
+
var _tmpl$22 = /* @__PURE__ */ template(`<div> `);
|
|
1146
|
+
var PianoRollTrackList = () => {
|
|
1156
1147
|
const viewPort = createMemo(() => useViewPortDimension("verticalTracks"));
|
|
1157
1148
|
const context = usePianoRollContext();
|
|
1158
1149
|
return (() => {
|
|
1159
|
-
|
|
1150
|
+
var _el$ = _tmpl$6();
|
|
1160
1151
|
insert(_el$, createComponent(Index, {
|
|
1161
1152
|
get each() {
|
|
1162
1153
|
return context.tracks;
|
|
@@ -1168,25 +1159,25 @@ var PianoRollTrackList = /* @__PURE__ */ __name(() => {
|
|
|
1168
1159
|
return virtualDimensions().size > 0;
|
|
1169
1160
|
},
|
|
1170
1161
|
get children() {
|
|
1171
|
-
|
|
1162
|
+
var _el$2 = _tmpl$22(), _el$3 = _el$2.firstChild;
|
|
1172
1163
|
_el$2.$$click = () => context.onSelectedTrackIndexChange?.(index);
|
|
1173
1164
|
insert(_el$2, index, _el$3);
|
|
1174
1165
|
insert(_el$2, () => track().name || "[unnamed track]", null);
|
|
1175
1166
|
effect((_p$) => {
|
|
1176
|
-
|
|
1167
|
+
var _v$ = {
|
|
1177
1168
|
[PianoRollTrackList_module_css_default["Track"]]: true,
|
|
1178
1169
|
[PianoRollTrackList_module_css_default["selected"]]: index === context.selectedTrackIndex
|
|
1179
1170
|
}, _v$2 = track().name, _v$3 = `${virtualDimensions().offset}px`, _v$4 = `${virtualDimensions().size}px`;
|
|
1180
|
-
_p$.
|
|
1181
|
-
_v$2 !== _p$.
|
|
1182
|
-
_v$3 !== _p$.
|
|
1183
|
-
_v$4 !== _p$.
|
|
1171
|
+
_p$.e = classList(_el$2, _v$, _p$.e);
|
|
1172
|
+
_v$2 !== _p$.t && setAttribute(_el$2, "title", _p$.t = _v$2);
|
|
1173
|
+
_v$3 !== _p$.a && setStyleProperty(_el$2, "top", _p$.a = _v$3);
|
|
1174
|
+
_v$4 !== _p$.o && setStyleProperty(_el$2, "height", _p$.o = _v$4);
|
|
1184
1175
|
return _p$;
|
|
1185
1176
|
}, {
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1177
|
+
e: void 0,
|
|
1178
|
+
t: void 0,
|
|
1179
|
+
a: void 0,
|
|
1180
|
+
o: void 0
|
|
1190
1181
|
});
|
|
1191
1182
|
return _el$2;
|
|
1192
1183
|
}
|
|
@@ -1196,10 +1187,10 @@ var PianoRollTrackList = /* @__PURE__ */ __name(() => {
|
|
|
1196
1187
|
effect(() => className(_el$, PianoRollTrackList_module_css_default.PianoRollTrackList));
|
|
1197
1188
|
return _el$;
|
|
1198
1189
|
})();
|
|
1199
|
-
}
|
|
1190
|
+
};
|
|
1200
1191
|
var PianoRollTrackList_default = PianoRollTrackList;
|
|
1201
1192
|
delegateEvents(["click"]);
|
|
1202
|
-
var PianoRollScrollZoomViewPort =
|
|
1193
|
+
var PianoRollScrollZoomViewPort = (props) => {
|
|
1203
1194
|
const zoomFactor = 500;
|
|
1204
1195
|
const context = usePianoRollContext();
|
|
1205
1196
|
return createComponent(ScrollZoomViewPort, {
|
|
@@ -1249,7 +1240,7 @@ var PianoRollScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
|
|
|
1249
1240
|
return props.children;
|
|
1250
1241
|
}
|
|
1251
1242
|
});
|
|
1252
|
-
}
|
|
1243
|
+
};
|
|
1253
1244
|
var PianoRollScrollZoomViewPort_default = PianoRollScrollZoomViewPort;
|
|
1254
1245
|
var defaultRect = {
|
|
1255
1246
|
left: 0,
|
|
@@ -1267,9 +1258,9 @@ function useBoundingClientRect(containerRef) {
|
|
|
1267
1258
|
const container = containerRef();
|
|
1268
1259
|
if (!container)
|
|
1269
1260
|
return;
|
|
1270
|
-
const updateBoundingClientRect =
|
|
1261
|
+
const updateBoundingClientRect = () => {
|
|
1271
1262
|
setBoundingClientRect(container.getBoundingClientRect() ?? defaultRect);
|
|
1272
|
-
}
|
|
1263
|
+
};
|
|
1273
1264
|
const resizeObserver = new ResizeObserver(updateBoundingClientRect);
|
|
1274
1265
|
resizeObserver.observe(container);
|
|
1275
1266
|
updateBoundingClientRect();
|
|
@@ -1279,10 +1270,9 @@ function useBoundingClientRect(containerRef) {
|
|
|
1279
1270
|
});
|
|
1280
1271
|
return boundingClientRect;
|
|
1281
1272
|
}
|
|
1282
|
-
__name(useBoundingClientRect, "useBoundingClientRect");
|
|
1283
1273
|
|
|
1284
1274
|
// src/PianoRollNotesScroller.tsx
|
|
1285
|
-
var PianoRollNotesScroller =
|
|
1275
|
+
var PianoRollNotesScroller = (props) => {
|
|
1286
1276
|
const context = usePianoRollContext();
|
|
1287
1277
|
const [ref, setRef] = createSignal();
|
|
1288
1278
|
const clientRect = useBoundingClientRect(ref);
|
|
@@ -1298,9 +1288,9 @@ var PianoRollNotesScroller = /* @__PURE__ */ __name((props) => {
|
|
|
1298
1288
|
return props.children;
|
|
1299
1289
|
}
|
|
1300
1290
|
});
|
|
1301
|
-
}
|
|
1291
|
+
};
|
|
1302
1292
|
var PianoRollNotesScroller_default = PianoRollNotesScroller;
|
|
1303
|
-
var PianoRollTrackListScroller =
|
|
1293
|
+
var PianoRollTrackListScroller = (props) => {
|
|
1304
1294
|
const context = usePianoRollContext();
|
|
1305
1295
|
const [ref, setRef] = createSignal();
|
|
1306
1296
|
const clientRect = useBoundingClientRect(ref);
|
|
@@ -1318,11 +1308,11 @@ var PianoRollTrackListScroller = /* @__PURE__ */ __name((props) => {
|
|
|
1318
1308
|
return props.children;
|
|
1319
1309
|
}
|
|
1320
1310
|
});
|
|
1321
|
-
}
|
|
1311
|
+
};
|
|
1322
1312
|
var PianoRollTrackListScroller_default = PianoRollTrackListScroller;
|
|
1323
1313
|
|
|
1324
|
-
// esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-
|
|
1325
|
-
var digest7 = "
|
|
1314
|
+
// esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-cm8q894CpXzZ/solid-pianoroll/src/PianoRollScale.module.css.js
|
|
1315
|
+
var digest7 = "8c0c1123f6a44a31a2bc14c10ff9100747fd8502666ba18676b6ac47d08bc8ba";
|
|
1326
1316
|
var css7 = `._PianoRollScale_1khhn_1 {
|
|
1327
1317
|
position: relative;
|
|
1328
1318
|
width: 100%;
|
|
@@ -1372,26 +1362,26 @@ var css7 = `._PianoRollScale_1khhn_1 {
|
|
|
1372
1362
|
document.head.appendChild(el);
|
|
1373
1363
|
}
|
|
1374
1364
|
})();
|
|
1375
|
-
var PianoRollScale_module_css_default = { "pianoRollScale": "_PianoRollScale_1khhn_1", "pianoRollScaleTime": "_PianoRollScale-Time_1khhn_7", "pianoRollScaleLabel": "_PianoRollScale-Label_1khhn_23", "highlighted": "_Highlighted_1khhn_31", "highlightedBorder": "_HighlightedBorder_1khhn_35" };
|
|
1365
|
+
var PianoRollScale_module_css_default = { "PianoRollScale": "_PianoRollScale_1khhn_1", "pianoRollScale": "_PianoRollScale_1khhn_1", "PianoRollScale-Time": "_PianoRollScale-Time_1khhn_7", "pianoRollScaleTime": "_PianoRollScale-Time_1khhn_7", "PianoRollScale-Label": "_PianoRollScale-Label_1khhn_23", "pianoRollScaleLabel": "_PianoRollScale-Label_1khhn_23", "Highlighted": "_Highlighted_1khhn_31", "highlighted": "_Highlighted_1khhn_31", "HighlightedBorder": "_HighlightedBorder_1khhn_35", "highlightedBorder": "_HighlightedBorder_1khhn_35" };
|
|
1376
1366
|
|
|
1377
1367
|
// src/PianoRollScale.tsx
|
|
1378
|
-
var _tmpl$7 = /* @__PURE__ */ template(`<div
|
|
1379
|
-
var PianoRollScale =
|
|
1368
|
+
var _tmpl$7 = /* @__PURE__ */ template(`<div>`);
|
|
1369
|
+
var PianoRollScale = () => {
|
|
1380
1370
|
const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
|
|
1381
1371
|
const grid = usePianoRollGrid_default();
|
|
1382
1372
|
const context = usePianoRollContext();
|
|
1383
|
-
const updatePlayheadPosition =
|
|
1373
|
+
const updatePlayheadPosition = (event) => {
|
|
1384
1374
|
const position = horizontalViewPort().calculatePosition(event.clientX);
|
|
1385
1375
|
context.onPlayHeadPositionChange(position, event);
|
|
1386
|
-
}
|
|
1376
|
+
};
|
|
1387
1377
|
return (() => {
|
|
1388
|
-
|
|
1378
|
+
var _el$ = _tmpl$7();
|
|
1389
1379
|
_el$.$$mousedown = (event) => {
|
|
1390
1380
|
updatePlayheadPosition(event);
|
|
1391
|
-
const handleMouseUp =
|
|
1381
|
+
const handleMouseUp = () => {
|
|
1392
1382
|
window.removeEventListener("mousemove", updatePlayheadPosition);
|
|
1393
1383
|
window.removeEventListener("mouseup", handleMouseUp);
|
|
1394
|
-
}
|
|
1384
|
+
};
|
|
1395
1385
|
window.addEventListener("mousemove", updatePlayheadPosition);
|
|
1396
1386
|
window.addEventListener("mouseup", handleMouseUp);
|
|
1397
1387
|
};
|
|
@@ -1405,32 +1395,32 @@ var PianoRollScale = /* @__PURE__ */ __name(() => {
|
|
|
1405
1395
|
return horizontalViewPort().isVisible(entry().virtualDimensions);
|
|
1406
1396
|
},
|
|
1407
1397
|
get children() {
|
|
1408
|
-
|
|
1398
|
+
var _el$2 = _tmpl$7();
|
|
1409
1399
|
insert(_el$2, createComponent(Show, {
|
|
1410
1400
|
get when() {
|
|
1411
1401
|
return entry().showLabel;
|
|
1412
1402
|
},
|
|
1413
1403
|
get children() {
|
|
1414
|
-
|
|
1404
|
+
var _el$3 = _tmpl$7();
|
|
1415
1405
|
insert(_el$3, () => entry().label);
|
|
1416
1406
|
effect(() => className(_el$3, PianoRollScale_module_css_default["PianoRollScale-Label"]));
|
|
1417
1407
|
return _el$3;
|
|
1418
1408
|
}
|
|
1419
1409
|
}));
|
|
1420
1410
|
effect((_p$) => {
|
|
1421
|
-
|
|
1411
|
+
var _v$ = {
|
|
1422
1412
|
[PianoRollScale_module_css_default["PianoRollScale-Time"]]: true,
|
|
1423
1413
|
[PianoRollScale_module_css_default["Highlighted"]]: entry().isHighlighted,
|
|
1424
1414
|
[PianoRollScale_module_css_default["HighlightedBorder"]]: entry().hasHighlightedBorder
|
|
1425
1415
|
}, _v$2 = `${entry().virtualDimensions.offset}px`, _v$3 = `${entry().virtualDimensions.size}px`;
|
|
1426
|
-
_p$.
|
|
1427
|
-
_v$2 !== _p$.
|
|
1428
|
-
_v$3 !== _p$.
|
|
1416
|
+
_p$.e = classList(_el$2, _v$, _p$.e);
|
|
1417
|
+
_v$2 !== _p$.t && setStyleProperty(_el$2, "left", _p$.t = _v$2);
|
|
1418
|
+
_v$3 !== _p$.a && setStyleProperty(_el$2, "width", _p$.a = _v$3);
|
|
1429
1419
|
return _p$;
|
|
1430
1420
|
}, {
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1421
|
+
e: void 0,
|
|
1422
|
+
t: void 0,
|
|
1423
|
+
a: void 0
|
|
1434
1424
|
});
|
|
1435
1425
|
return _el$2;
|
|
1436
1426
|
}
|
|
@@ -1440,16 +1430,16 @@ var PianoRollScale = /* @__PURE__ */ __name(() => {
|
|
|
1440
1430
|
effect(() => className(_el$, PianoRollScale_module_css_default.PianoRollScale));
|
|
1441
1431
|
return _el$;
|
|
1442
1432
|
})();
|
|
1443
|
-
}
|
|
1433
|
+
};
|
|
1444
1434
|
var PianoRollScale_default = PianoRollScale;
|
|
1445
1435
|
delegateEvents(["mousedown"]);
|
|
1446
1436
|
|
|
1447
1437
|
// src/PianoRoll.tsx
|
|
1448
|
-
var _tmpl$8 = /* @__PURE__ */ template(`<div><button><div
|
|
1449
|
-
var _tmpl$23 = /* @__PURE__ */ template(`<div><div></div><div
|
|
1450
|
-
var _tmpl$32 = /* @__PURE__ */ template(`<div><div><div
|
|
1451
|
-
var _tmpl$42 = /* @__PURE__ */ template(`<div
|
|
1452
|
-
var PianoRoll =
|
|
1438
|
+
var _tmpl$8 = /* @__PURE__ */ template(`<div style="height:30px;border-right:1px black solid"><button style=font-size:16px;line-height:16px;cursor:pointer;overflow:hidden><div>`);
|
|
1439
|
+
var _tmpl$23 = /* @__PURE__ */ template(`<div style=width:100%;display:flex;height:100%;flex-direction:column;overflow:hidden><div style=height:30px></div><div style=flex:1;position:relative;overflow:hidden>`);
|
|
1440
|
+
var _tmpl$32 = /* @__PURE__ */ template(`<div><div><div style=flex:1;display:flex;overflow:hidden>`);
|
|
1441
|
+
var _tmpl$42 = /* @__PURE__ */ template(`<div>`);
|
|
1442
|
+
var PianoRoll = (allProps) => {
|
|
1453
1443
|
const propsWithDefaults = mergeProps({
|
|
1454
1444
|
showAllTracks: false
|
|
1455
1445
|
}, allProps);
|
|
@@ -1457,7 +1447,7 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1457
1447
|
return createComponent(PianoRollContextProvider, {
|
|
1458
1448
|
value: context,
|
|
1459
1449
|
get children() {
|
|
1460
|
-
|
|
1450
|
+
var _el$ = _tmpl$42();
|
|
1461
1451
|
spread(_el$, mergeProps$1(divProps, {
|
|
1462
1452
|
get ["class"]() {
|
|
1463
1453
|
return PianoRoll_module_css_default.PianoRoll;
|
|
@@ -1466,7 +1456,7 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1466
1456
|
insert(_el$, createComponent(PianoRollScrollZoomViewPort_default, {
|
|
1467
1457
|
get children() {
|
|
1468
1458
|
return [(() => {
|
|
1469
|
-
|
|
1459
|
+
var _el$2 = _tmpl$32(), _el$3 = _el$2.firstChild, _el$7 = _el$3.firstChild;
|
|
1470
1460
|
insert(_el$2, createComponent(ZoomSliderControl_default, {
|
|
1471
1461
|
orientation: "vertical",
|
|
1472
1462
|
dimensionName: "verticalTracks"
|
|
@@ -1476,22 +1466,13 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1476
1466
|
return context.showTrackList;
|
|
1477
1467
|
},
|
|
1478
1468
|
get children() {
|
|
1479
|
-
|
|
1480
|
-
_el$4.style.setProperty("height", "30px");
|
|
1481
|
-
_el$4.style.setProperty("border-right", "1px black solid");
|
|
1469
|
+
var _el$4 = _tmpl$8(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;
|
|
1482
1470
|
_el$5.$$click = () => context.onModeChange(context.mode === "keys" ? "tracks" : "keys");
|
|
1483
|
-
_el$5.style.setProperty("font-size", "16px");
|
|
1484
|
-
_el$5.style.setProperty("line-height", "16px");
|
|
1485
|
-
_el$5.style.setProperty("cursor", "pointer");
|
|
1486
|
-
_el$5.style.setProperty("overflow", "hidden");
|
|
1487
1471
|
insert(_el$6, () => context.mode === "keys" ? "\u2261" : "\u{1F3B9}");
|
|
1488
1472
|
effect(() => setAttribute(_el$5, "title", context.mode === "keys" ? "Tracks Mode" : "Keys Mode"));
|
|
1489
1473
|
return _el$4;
|
|
1490
1474
|
}
|
|
1491
1475
|
}), _el$7);
|
|
1492
|
-
_el$7.style.setProperty("flex", "1");
|
|
1493
|
-
_el$7.style.setProperty("display", "flex");
|
|
1494
|
-
_el$7.style.setProperty("overflow", "hidden");
|
|
1495
1476
|
insert(_el$7, createComponent(Show, {
|
|
1496
1477
|
get when() {
|
|
1497
1478
|
return context.showTrackList;
|
|
@@ -1515,19 +1496,10 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1515
1496
|
insert(_el$2, createComponent(PianoRollNotesScroller_default, {
|
|
1516
1497
|
get children() {
|
|
1517
1498
|
return [memo(() => allProps.children), (() => {
|
|
1518
|
-
|
|
1519
|
-
_el$8.style.setProperty("width", "100%");
|
|
1520
|
-
_el$8.style.setProperty("display", "flex");
|
|
1521
|
-
_el$8.style.setProperty("height", "100%");
|
|
1522
|
-
_el$8.style.setProperty("flex-direction", "column");
|
|
1523
|
-
_el$8.style.setProperty("overflow", "hidden");
|
|
1524
|
-
_el$9.style.setProperty("height", "30px");
|
|
1499
|
+
var _el$8 = _tmpl$23(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
|
|
1525
1500
|
insert(_el$9, createComponent(PianoRollScale_default, {}));
|
|
1526
|
-
_el$
|
|
1527
|
-
_el$
|
|
1528
|
-
_el$10.style.setProperty("overflow", "hidden");
|
|
1529
|
-
insert(_el$10, createComponent(PianoRollGrid_default, {}), null);
|
|
1530
|
-
insert(_el$10, createComponent(PianoRollNotes_default, {}), null);
|
|
1501
|
+
insert(_el$0, createComponent(PianoRollGrid_default, {}), null);
|
|
1502
|
+
insert(_el$0, createComponent(PianoRollNotes_default, {}), null);
|
|
1531
1503
|
return _el$8;
|
|
1532
1504
|
})()];
|
|
1533
1505
|
}
|
|
@@ -1539,16 +1511,16 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1539
1511
|
}
|
|
1540
1512
|
}), null);
|
|
1541
1513
|
effect((_p$) => {
|
|
1542
|
-
|
|
1514
|
+
var _v$ = PianoRoll_module_css_default.PianoRollContainer, _v$2 = {
|
|
1543
1515
|
[PianoRoll_module_css_default.PianoRollLeftColumn]: true,
|
|
1544
1516
|
[PianoRoll_module_css_default.showTrackList]: context.showTrackList
|
|
1545
1517
|
};
|
|
1546
|
-
_v$ !== _p$.
|
|
1547
|
-
_p$.
|
|
1518
|
+
_v$ !== _p$.e && className(_el$2, _p$.e = _v$);
|
|
1519
|
+
_p$.t = classList(_el$3, _v$2, _p$.t);
|
|
1548
1520
|
return _p$;
|
|
1549
1521
|
}, {
|
|
1550
|
-
|
|
1551
|
-
|
|
1522
|
+
e: void 0,
|
|
1523
|
+
t: void 0
|
|
1552
1524
|
});
|
|
1553
1525
|
return _el$2;
|
|
1554
1526
|
})(), createComponent(ZoomSliderControl_default, {
|
|
@@ -1565,11 +1537,11 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
|
|
|
1565
1537
|
return _el$;
|
|
1566
1538
|
}
|
|
1567
1539
|
});
|
|
1568
|
-
}
|
|
1540
|
+
};
|
|
1569
1541
|
var PianoRoll_default = PianoRoll;
|
|
1570
1542
|
delegateEvents(["click"]);
|
|
1571
|
-
var _tmpl$9 = /* @__PURE__ */ template(`<div class=
|
|
1572
|
-
var PlayHead =
|
|
1543
|
+
var _tmpl$9 = /* @__PURE__ */ template(`<div class=PlayHead>`);
|
|
1544
|
+
var PlayHead = (allProps) => {
|
|
1573
1545
|
const [props, divProps] = splitProps(allProps, ["position", "sync", "onPositionChange", "dimensionName"]);
|
|
1574
1546
|
const viewPort = useViewPortDimension(props.dimensionName ?? "horizontal");
|
|
1575
1547
|
createEffect(() => {
|
|
@@ -1581,7 +1553,7 @@ var PlayHead = /* @__PURE__ */ __name((allProps) => {
|
|
|
1581
1553
|
});
|
|
1582
1554
|
const leftPosition = createMemo(() => viewPort.calculatePixelOffset(props.position));
|
|
1583
1555
|
return (() => {
|
|
1584
|
-
|
|
1556
|
+
var _el$ = _tmpl$9();
|
|
1585
1557
|
spread(_el$, mergeProps$1(divProps, {
|
|
1586
1558
|
get style() {
|
|
1587
1559
|
return {
|
|
@@ -1597,38 +1569,38 @@ var PlayHead = /* @__PURE__ */ __name((allProps) => {
|
|
|
1597
1569
|
"onMouseDown": (event) => {
|
|
1598
1570
|
event.preventDefault();
|
|
1599
1571
|
event.stopPropagation();
|
|
1600
|
-
const handleMouseMove =
|
|
1572
|
+
const handleMouseMove = (event2) => {
|
|
1601
1573
|
const newPosition = viewPort.calculatePosition(event2.clientX);
|
|
1602
1574
|
props.onPositionChange?.(newPosition, event2);
|
|
1603
|
-
}
|
|
1604
|
-
const handleMouseUp =
|
|
1575
|
+
};
|
|
1576
|
+
const handleMouseUp = () => {
|
|
1605
1577
|
window.removeEventListener("mousemove", handleMouseMove);
|
|
1606
1578
|
window.removeEventListener("mouseup", handleMouseUp);
|
|
1607
|
-
}
|
|
1579
|
+
};
|
|
1608
1580
|
window.addEventListener("mousemove", handleMouseMove);
|
|
1609
1581
|
window.addEventListener("mouseup", handleMouseUp);
|
|
1610
1582
|
}
|
|
1611
1583
|
}), false, false);
|
|
1612
1584
|
return _el$;
|
|
1613
1585
|
})();
|
|
1614
|
-
}
|
|
1586
|
+
};
|
|
1615
1587
|
var PlayHead_default = PlayHead;
|
|
1616
|
-
var useNotes =
|
|
1588
|
+
var useNotes = () => {
|
|
1617
1589
|
const [notes, onNotesChange] = createSignal([]);
|
|
1618
|
-
const onNoteChange =
|
|
1590
|
+
const onNoteChange = (index, note) => {
|
|
1619
1591
|
onNotesChange([...notes().slice(0, index), note, ...notes().splice(index + 1)]);
|
|
1620
|
-
}
|
|
1621
|
-
const onInsertNote =
|
|
1592
|
+
};
|
|
1593
|
+
const onInsertNote = (note) => {
|
|
1622
1594
|
const index = Math.max(
|
|
1623
1595
|
notes().findIndex(({ ticks }) => ticks > note.ticks),
|
|
1624
1596
|
0
|
|
1625
1597
|
);
|
|
1626
1598
|
onNotesChange([...notes().slice(0, index), note, ...notes().splice(index)]);
|
|
1627
1599
|
return index;
|
|
1628
|
-
}
|
|
1629
|
-
const onRemoveNote =
|
|
1600
|
+
};
|
|
1601
|
+
const onRemoveNote = (index) => {
|
|
1630
1602
|
onNotesChange([...notes().slice(0, index), ...notes().splice(index + 1)]);
|
|
1631
|
-
}
|
|
1603
|
+
};
|
|
1632
1604
|
return {
|
|
1633
1605
|
notes,
|
|
1634
1606
|
onNotesChange,
|
|
@@ -1636,7 +1608,7 @@ var useNotes = /* @__PURE__ */ __name(() => {
|
|
|
1636
1608
|
onInsertNote,
|
|
1637
1609
|
onRemoveNote
|
|
1638
1610
|
};
|
|
1639
|
-
}
|
|
1611
|
+
};
|
|
1640
1612
|
var useNotes_default = useNotes;
|
|
1641
1613
|
|
|
1642
1614
|
export { PianoRoll_default as PianoRoll, PlayHead_default as PlayHead, usePianoRollState_default as createPianoRollstate, useNotes_default as useNotes };
|