retold-remote 0.0.5 → 0.0.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.
Files changed (71) hide show
  1. package/css/retold-remote.css +3 -0
  2. package/docs/README.md +181 -0
  3. package/docs/_cover.md +14 -0
  4. package/docs/_sidebar.md +10 -0
  5. package/docs/_topbar.md +3 -0
  6. package/docs/audio-viewer.md +133 -0
  7. package/docs/ebook-reader.md +90 -0
  8. package/docs/image-viewer.md +90 -0
  9. package/docs/server-setup.md +262 -0
  10. package/docs/video-viewer.md +134 -0
  11. package/html/docs.html +59 -0
  12. package/html/index.html +1 -1
  13. package/package.json +20 -6
  14. package/source/Pict-Application-RetoldRemote.js +122 -2
  15. package/source/RetoldRemote-ExtensionMaps.js +33 -0
  16. package/source/cli/RetoldRemote-Server-Setup.js +211 -67
  17. package/source/cli/commands/RetoldRemote-Command-Serve.js +5 -26
  18. package/source/providers/Pict-Provider-AISortManager.js +456 -0
  19. package/source/providers/Pict-Provider-CollectionManager.js +1200 -0
  20. package/source/providers/Pict-Provider-FormattingUtilities.js +109 -0
  21. package/source/providers/Pict-Provider-GalleryFilterSort.js +2 -11
  22. package/source/providers/Pict-Provider-GalleryNavigation.js +187 -409
  23. package/source/providers/Pict-Provider-RetoldRemoteIcons.js +52 -0
  24. package/source/providers/Pict-Provider-ToastNotification.js +96 -0
  25. package/source/providers/keyboard-handlers/KeyHandler-AudioExplorer.js +88 -0
  26. package/source/providers/keyboard-handlers/KeyHandler-Gallery.js +190 -0
  27. package/source/providers/keyboard-handlers/KeyHandler-Sidebar.js +65 -0
  28. package/source/providers/keyboard-handlers/KeyHandler-VideoExplorer.js +57 -0
  29. package/source/providers/keyboard-handlers/KeyHandler-Viewer.js +197 -0
  30. package/source/server/RetoldRemote-AISortService.js +879 -0
  31. package/source/server/RetoldRemote-ArchiveService.js +2 -12
  32. package/source/server/RetoldRemote-AudioWaveformService.js +7 -16
  33. package/source/server/RetoldRemote-CollectionService.js +843 -0
  34. package/source/server/RetoldRemote-EbookService.js +7 -16
  35. package/source/server/RetoldRemote-FileOperationService.js +560 -0
  36. package/source/server/RetoldRemote-MediaService.js +15 -14
  37. package/source/server/RetoldRemote-MetadataCache.js +411 -0
  38. package/source/server/RetoldRemote-ParimeCache.js +349 -0
  39. package/source/server/RetoldRemote-ThumbnailCache.js +52 -20
  40. package/source/server/RetoldRemote-VideoFrameService.js +7 -15
  41. package/source/views/PictView-Remote-AudioExplorer.js +10 -43
  42. package/source/views/PictView-Remote-CollectionsPanel.js +1486 -0
  43. package/source/views/PictView-Remote-Gallery.js +237 -44
  44. package/source/views/PictView-Remote-ImageViewer.js +1 -34
  45. package/source/views/PictView-Remote-Layout.js +411 -20
  46. package/source/views/PictView-Remote-MediaViewer.js +311 -28
  47. package/source/views/PictView-Remote-SettingsPanel.js +275 -133
  48. package/source/views/PictView-Remote-TopBar.js +701 -14
  49. package/source/views/PictView-Remote-VLCSetup.js +8 -39
  50. package/source/views/PictView-Remote-VideoExplorer.js +20 -54
  51. package/web-application/css/docuserve.css +73 -0
  52. package/web-application/css/retold-remote.css +3 -0
  53. package/web-application/docs/README.md +181 -0
  54. package/web-application/docs/_cover.md +14 -0
  55. package/web-application/docs/_sidebar.md +10 -0
  56. package/web-application/docs/_topbar.md +3 -0
  57. package/web-application/docs/audio-viewer.md +133 -0
  58. package/web-application/docs/ebook-reader.md +90 -0
  59. package/web-application/docs/image-viewer.md +90 -0
  60. package/web-application/docs/server-setup.md +262 -0
  61. package/web-application/docs/video-viewer.md +134 -0
  62. package/web-application/docs.html +59 -0
  63. package/web-application/index.html +1 -1
  64. package/web-application/js/pict-docuserve.min.js +58 -0
  65. package/web-application/js/pict.min.js +2 -2
  66. package/web-application/js/pict.min.js.map +1 -1
  67. package/web-application/retold-remote.js +2652 -970
  68. package/web-application/retold-remote.js.map +1 -1
  69. package/web-application/retold-remote.min.js +60 -13
  70. package/web-application/retold-remote.min.js.map +1 -1
  71. package/server.js +0 -43
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Viewer mode keyboard handler.
3
+ *
4
+ * @param {GalleryNavigationProvider} pGalleryNav - The provider instance
5
+ * @param {KeyboardEvent} pEvent - The keyboard event
6
+ */
7
+ function handleViewerKey(pGalleryNav, pEvent)
8
+ {
9
+ let tmpRemote = pGalleryNav.pict.AppData.RetoldRemote;
10
+
11
+ // Video action menu mode — intercept keys for menu options
12
+ if (tmpRemote.VideoMenuActive && tmpRemote.CurrentViewerMediaType === 'video')
13
+ {
14
+ switch (pEvent.key)
15
+ {
16
+ case 'Escape':
17
+ pEvent.preventDefault();
18
+ pGalleryNav.closeViewer();
19
+ return;
20
+
21
+ case 'ArrowRight':
22
+ case 'j':
23
+ pEvent.preventDefault();
24
+ pGalleryNav.nextFile();
25
+ return;
26
+
27
+ case 'ArrowLeft':
28
+ case 'k':
29
+ pEvent.preventDefault();
30
+ pGalleryNav.prevFile();
31
+ return;
32
+
33
+ case 'e':
34
+ pEvent.preventDefault();
35
+ let tmpVEX = pGalleryNav.pict.views['RetoldRemote-VideoExplorer'];
36
+ if (tmpVEX)
37
+ {
38
+ tmpVEX.showExplorer(tmpRemote.CurrentViewerFile);
39
+ }
40
+ return;
41
+
42
+ case ' ':
43
+ case 'Enter':
44
+ pEvent.preventDefault();
45
+ let tmpViewer = pGalleryNav.pict.views['RetoldRemote-MediaViewer'];
46
+ if (tmpViewer)
47
+ {
48
+ tmpViewer.playVideo();
49
+ }
50
+ return;
51
+
52
+ case 't':
53
+ pEvent.preventDefault();
54
+ let tmpMediaViewer = pGalleryNav.pict.views['RetoldRemote-MediaViewer'];
55
+ if (tmpMediaViewer)
56
+ {
57
+ tmpMediaViewer.loadVideoMenuFrame();
58
+ }
59
+ return;
60
+
61
+ case 'v':
62
+ pEvent.preventDefault();
63
+ pGalleryNav._streamWithVLC();
64
+ return;
65
+ }
66
+ return;
67
+ }
68
+
69
+ switch (pEvent.key)
70
+ {
71
+ case 'Escape':
72
+ pEvent.preventDefault();
73
+ pGalleryNav.closeViewer();
74
+ break;
75
+
76
+ case 'ArrowRight':
77
+ case 'j':
78
+ pEvent.preventDefault();
79
+ pGalleryNav.nextFile();
80
+ break;
81
+
82
+ case 'ArrowLeft':
83
+ case 'k':
84
+ pEvent.preventDefault();
85
+ pGalleryNav.prevFile();
86
+ break;
87
+
88
+ case 'f':
89
+ pEvent.preventDefault();
90
+ pGalleryNav._toggleFullscreen();
91
+ break;
92
+
93
+ case 'i':
94
+ pEvent.preventDefault();
95
+ pGalleryNav._toggleFileInfo();
96
+ break;
97
+
98
+ case ' ':
99
+ pEvent.preventDefault();
100
+ pGalleryNav._togglePlayPause();
101
+ break;
102
+
103
+ case '+':
104
+ case '=':
105
+ pEvent.preventDefault();
106
+ pGalleryNav._zoomIn();
107
+ break;
108
+
109
+ case '-':
110
+ pEvent.preventDefault();
111
+ pGalleryNav._zoomOut();
112
+ break;
113
+
114
+ case '0':
115
+ pEvent.preventDefault();
116
+ pGalleryNav._zoomReset();
117
+ break;
118
+
119
+ case 'z':
120
+ pEvent.preventDefault();
121
+ pGalleryNav._cycleFitMode();
122
+ break;
123
+
124
+ case 'Enter':
125
+ pEvent.preventDefault();
126
+ pGalleryNav._streamWithVLC();
127
+ break;
128
+
129
+ case 'v':
130
+ pEvent.preventDefault();
131
+ pGalleryNav._streamWithVLC();
132
+ break;
133
+
134
+ case 'a':
135
+ pEvent.preventDefault();
136
+ {
137
+ let tmpCollMgr = pGalleryNav.pict.providers['RetoldRemote-CollectionManager'];
138
+ if (tmpCollMgr)
139
+ {
140
+ let tmpRemote = pGalleryNav.pict.AppData.RetoldRemote;
141
+ if (tmpRemote.LastUsedCollectionGUID)
142
+ {
143
+ // Quick-add the currently viewed file
144
+ tmpCollMgr.addCurrentFileToCollection(tmpRemote.LastUsedCollectionGUID);
145
+ }
146
+ else
147
+ {
148
+ // No last-used collection — open the picker
149
+ let tmpTopBar = pGalleryNav.pict.views['ContentEditor-TopBar'];
150
+ if (tmpTopBar && typeof tmpTopBar.showAddToCollectionDropdown === 'function')
151
+ {
152
+ tmpTopBar.showAddToCollectionDropdown();
153
+ }
154
+ }
155
+ }
156
+ }
157
+ break;
158
+
159
+ case 'b':
160
+ pEvent.preventDefault();
161
+ {
162
+ let tmpCollManager = pGalleryNav.pict.providers['RetoldRemote-CollectionManager'];
163
+ if (tmpCollManager)
164
+ {
165
+ tmpCollManager.togglePanel();
166
+ }
167
+ }
168
+ break;
169
+
170
+ case 'd':
171
+ pEvent.preventDefault();
172
+ pGalleryNav._toggleDistractionFree();
173
+ break;
174
+
175
+ case '1':
176
+ pEvent.preventDefault();
177
+ pGalleryNav.switchViewerType('image');
178
+ break;
179
+
180
+ case '2':
181
+ pEvent.preventDefault();
182
+ pGalleryNav.switchViewerType('video');
183
+ break;
184
+
185
+ case '3':
186
+ pEvent.preventDefault();
187
+ pGalleryNav.switchViewerType('audio');
188
+ break;
189
+
190
+ case '4':
191
+ pEvent.preventDefault();
192
+ pGalleryNav.switchViewerType('text');
193
+ break;
194
+ }
195
+ }
196
+
197
+ module.exports = handleViewerKey;