From 641938f7e4f8fa22319f84641ba825110841319b Mon Sep 17 00:00:00 2001 From: Stanislav Fifik Date: Sun, 24 Nov 2024 17:34:41 +0000 Subject: [PATCH] :sparkles: new maps --- src/components/Audio/AudioCard.vue | 22 + src/components/Audio/Playlist.vue | 79 +++- src/components/Audio/Sfx.vue | 6 + src/components/Audio/Soundboard.vue | 107 +++-- src/components/Audio/TabSource.vue | 5 + src/components/Common/AppLayout.vue | 46 ++- src/components/Dropzone/Dropzone.vue | 7 +- src/components/FileManager/FileManager.vue | 3 +- src/components/FileManager/FileManagerDir.vue | 10 +- src/components/FileManager/FilePreview.vue | 43 +- src/components/Files/FilesAside.vue | 3 - src/components/Icons/IconChromecast.vue | 3 + src/components/Icons/IconMap.vue | 5 + src/components/Icons/IconMusic.vue | 5 + src/components/Icons/IconPlus.vue | 5 + src/components/Icons/IconTv.vue | 5 + src/components/Map/MapControl.vue | 261 ++++++++---- src/components/Map/MapRenderer.vue | 8 +- src/components/Map/helpers.ts | 10 +- src/components/Map/object.ts | 389 ++++++++++++++++++ .../RemoteDevices/RemoteDevices.vue | 38 +- src/components/ScreenManager/RemoteScreen.vue | 31 +- .../ScreenManager/ScreenManager.vue | 15 +- src/helpers/persistentKeyValue.ts | 68 +++ src/model/Audio/PlaylistGroupNode.ts | 21 +- src/model/Audio/SoundGroupNode.ts | 8 +- src/model/Audio/SoundNode.ts | 1 + src/model/FileSystem/FileStashFs.ts | 43 +- src/model/FileSystem/MountedFs.ts | 9 + src/model/FileSystem/NginxFS.ts | 4 + src/model/FileSystem/types.ts | 1 + src/model/Remote/Channels/WebRTCChannel.ts | 42 +- src/model/Remote/Channels/type.ts | 5 + src/model/Remote/ChromecastDevice.ts | 39 +- src/model/Remote/FullscreenWindow.ts | 27 +- src/model/Remote/types.ts | 3 + src/modules/controls/ControlApp.vue | 68 ++- src/modules/summon/SummonApp.vue | 24 +- 38 files changed, 1241 insertions(+), 228 deletions(-) create mode 100644 src/components/Icons/IconChromecast.vue create mode 100644 src/components/Icons/IconMap.vue create mode 100644 src/components/Icons/IconMusic.vue create mode 100644 src/components/Icons/IconPlus.vue create mode 100644 src/components/Icons/IconTv.vue create mode 100644 src/components/Map/object.ts create mode 100644 src/helpers/persistentKeyValue.ts diff --git a/src/components/Audio/AudioCard.vue b/src/components/Audio/AudioCard.vue index 69d3926..94d1e2f 100644 --- a/src/components/Audio/AudioCard.vue +++ b/src/components/Audio/AudioCard.vue @@ -7,6 +7,7 @@ >
{{ label }}
+
×
@@ -60,6 +61,7 @@ import DeviceVolume from './DeviceVolume.vue'; import Stop from '../Icons/Stop.vue'; const emits = defineEmits<{ + 'delete': [], 'next': [], 'prev': [], 'togglePlay': [], @@ -119,6 +121,7 @@ function onDrop(event: DragEvent) { .a-card { --box-color: var(--audio-box-color-playlist, #ffb308); --box-color-900: color-mix(in lab, var(--box-color), #000 80%); + --box-color-800: color-mix(in lab, var(--box-color), #000 60%); --box-color-100: color-mix(in lab, var(--box-color), #fff 80%); --box-color-300: color-mix(in lab, var(--box-color), #fff 40%); width: 160px; @@ -179,6 +182,7 @@ function onDrop(event: DragEvent) { } .a-card__label-wrapper { + position: relative; width: 100%; text-align: center; margin-top: -1rem; @@ -224,6 +228,24 @@ function onDrop(event: DragEvent) { } } +.a-card__delete { + position: absolute; + top: 0; + right: -1rem; + width: 1.5rem; + height: 1.5rem; + color: var(--box-color-100); + background: var(--box-color-900); + border-radius: 0.25rem; + cursor: pointer; + border: 1px solid rgba(from var(--box-color) r g b / 0.2); + opacity: 0%; +} + +.a-card:hover .a-card__delete { + opacity: 100%; +} + @keyframes ripples { to { box-shadow: diff --git a/src/components/Audio/Playlist.vue b/src/components/Audio/Playlist.vue index e2bd8f2..de2d7e9 100644 --- a/src/components/Audio/Playlist.vue +++ b/src/components/Audio/Playlist.vue @@ -4,7 +4,8 @@ :supports="[ 'next', 'prev', 'togglePlay' ]" @next="node.next()" @prev="node.prev()" - label="Playlist test" + @delete="$emit('delete')" + label="Playlist" style="--box-color: var(--color-amber)" > @@ -34,17 +47,27 @@ \ No newline at end of file diff --git a/src/components/Audio/Sfx.vue b/src/components/Audio/Sfx.vue index 29d19e5..3d5ebfc 100644 --- a/src/components/Audio/Sfx.vue +++ b/src/components/Audio/Sfx.vue @@ -6,6 +6,7 @@ :supports="['stop']" label="SFX" :node="node" + @delete="emit('delete')" >
+
+
+
Add
+
+
+ Playlist +
+
+ Sfx +
+
+ Tab Source +
+
\ No newline at end of file diff --git a/src/components/Files/FilesAside.vue b/src/components/Files/FilesAside.vue index e840565..6ccae11 100644 --- a/src/components/Files/FilesAside.vue +++ b/src/components/Files/FilesAside.vue @@ -46,7 +46,6 @@ function loadFilePreview(file: VirtualFile){ const dragging = ref(false); function onDragStart(){ - console.log('dragstart'); dragging.value = true; } @@ -57,9 +56,7 @@ function onDragLeave(event) { } function onDragEnd(){ - console.log('dragend'); dragging.value = false; - showPreview(); } window.addEventListener('dragend', onDragEnd, {passive: true}); diff --git a/src/components/Icons/IconChromecast.vue b/src/components/Icons/IconChromecast.vue new file mode 100644 index 0000000..2f0ee60 --- /dev/null +++ b/src/components/Icons/IconChromecast.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/components/Icons/IconMap.vue b/src/components/Icons/IconMap.vue new file mode 100644 index 0000000..1f4ebbd --- /dev/null +++ b/src/components/Icons/IconMap.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/components/Icons/IconMusic.vue b/src/components/Icons/IconMusic.vue new file mode 100644 index 0000000..cb3f70b --- /dev/null +++ b/src/components/Icons/IconMusic.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/components/Icons/IconPlus.vue b/src/components/Icons/IconPlus.vue new file mode 100644 index 0000000..4a6207a --- /dev/null +++ b/src/components/Icons/IconPlus.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/components/Icons/IconTv.vue b/src/components/Icons/IconTv.vue new file mode 100644 index 0000000..841b9b7 --- /dev/null +++ b/src/components/Icons/IconTv.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/components/Map/MapControl.vue b/src/components/Map/MapControl.vue index 6e6cb13..26ab983 100644 --- a/src/components/Map/MapControl.vue +++ b/src/components/Map/MapControl.vue @@ -5,109 +5,232 @@ :class="{ 'map-control--over': isDragOver }" - @onDrop="onDrop" + @dropFile="onDrop" + @mousewheel="onScroll" @mousedown="onMouseDown" > -
- + + + + + +
+
- +