@norskvideo/norsk-studio-built-ins 1.11.3 → 1.12.0-2025-01-27-b21c8c91

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 (246) hide show
  1. package/README.md +16 -0
  2. package/client/info.js +1288 -788
  3. package/client/output.whep/styles.css +9 -0
  4. package/client/style.css +501 -863
  5. package/lib/index.js +1 -2
  6. package/lib/index.js.map +1 -1
  7. package/lib/info.js +5 -9
  8. package/lib/info.js.map +1 -1
  9. package/lib/input.rtmp/info.js +3 -2
  10. package/lib/input.rtmp/info.js.map +1 -1
  11. package/lib/input.rtmp/openApi.d.ts +133 -0
  12. package/lib/input.rtmp/openApi.js +3 -0
  13. package/lib/input.rtmp/openApi.js.map +1 -0
  14. package/lib/input.rtmp/runtime.d.ts +24 -5
  15. package/lib/input.rtmp/runtime.js +166 -60
  16. package/lib/input.rtmp/runtime.js.map +1 -1
  17. package/lib/input.rtmp/summary-view.d.ts +3 -5
  18. package/lib/input.rtmp/summary-view.js +26 -6
  19. package/lib/input.rtmp/summary-view.js.map +1 -1
  20. package/lib/input.rtmp/types.yaml +99 -0
  21. package/lib/input.silence/info.js +4 -3
  22. package/lib/input.silence/info.js.map +1 -1
  23. package/lib/input.srt-caller/info.js +7 -6
  24. package/lib/input.srt-caller/info.js.map +1 -1
  25. package/lib/input.srt-caller/runtime.d.ts +1 -1
  26. package/lib/input.srt-listener/info.js +8 -6
  27. package/lib/input.srt-listener/info.js.map +1 -1
  28. package/lib/input.srt-listener/openApi.d.ts +133 -0
  29. package/lib/input.srt-listener/openApi.js +3 -0
  30. package/lib/input.srt-listener/openApi.js.map +1 -0
  31. package/lib/input.srt-listener/runtime.d.ts +26 -6
  32. package/lib/input.srt-listener/runtime.js +168 -57
  33. package/lib/input.srt-listener/runtime.js.map +1 -1
  34. package/lib/input.srt-listener/summary-view.d.ts +3 -5
  35. package/lib/input.srt-listener/summary-view.js +28 -4
  36. package/lib/input.srt-listener/summary-view.js.map +1 -1
  37. package/lib/input.srt-listener/types.yaml +99 -0
  38. package/lib/input.udp-ts/info.d.ts +1 -1
  39. package/lib/input.udp-ts/info.js +6 -5
  40. package/lib/input.udp-ts/info.js.map +1 -1
  41. package/lib/input.udp-ts/runtime.d.ts +1 -1
  42. package/lib/input.videoTestCard/info.d.ts +1 -1
  43. package/lib/input.videoTestCard/info.js +15 -5
  44. package/lib/input.videoTestCard/info.js.map +1 -1
  45. package/lib/output.autoCmaf/form-views.js +2 -3
  46. package/lib/output.autoCmaf/form-views.js.map +1 -1
  47. package/lib/output.autoCmaf/info.d.ts +2 -2
  48. package/lib/output.autoCmaf/info.js +66 -8
  49. package/lib/output.autoCmaf/info.js.map +1 -1
  50. package/lib/output.autoCmaf/runtime.d.ts +29 -9
  51. package/lib/output.autoCmaf/runtime.js +198 -60
  52. package/lib/output.autoCmaf/runtime.js.map +1 -1
  53. package/lib/output.autoCmaf/summary.js +26 -1
  54. package/lib/output.autoCmaf/summary.js.map +1 -1
  55. package/lib/output.autoCmaf/types.d.ts +101 -0
  56. package/lib/output.autoCmaf/types.js +3 -0
  57. package/lib/output.autoCmaf/types.js.map +1 -0
  58. package/lib/output.autoCmaf/types.yaml +28 -0
  59. package/lib/output.preview/info.js +5 -3
  60. package/lib/output.preview/info.js.map +1 -1
  61. package/lib/output.preview/inline-view.d.ts +2 -4
  62. package/lib/output.preview/inline-view.js +8 -4
  63. package/lib/output.preview/inline-view.js.map +1 -1
  64. package/lib/output.preview/runtime.d.ts +4 -3
  65. package/lib/output.preview/runtime.js +29 -18
  66. package/lib/output.preview/runtime.js.map +1 -1
  67. package/lib/output.rtmp/info.js +2 -1
  68. package/lib/output.rtmp/info.js.map +1 -1
  69. package/lib/output.rtmp/inline-view.js +2 -2
  70. package/lib/output.rtmp/runtime.d.ts +2 -2
  71. package/lib/output.rtmp/runtime.js.map +1 -1
  72. package/lib/output.srt/info.d.ts +2 -2
  73. package/lib/output.srt/info.js +27 -6
  74. package/lib/output.srt/info.js.map +1 -1
  75. package/lib/output.srt/runtime.d.ts +30 -5
  76. package/lib/output.srt/runtime.js +139 -5
  77. package/lib/output.srt/runtime.js.map +1 -1
  78. package/lib/output.srt/types.d.ts +101 -0
  79. package/lib/output.srt/types.js +3 -0
  80. package/lib/output.srt/types.js.map +1 -0
  81. package/lib/output.srt/types.yaml +31 -0
  82. package/lib/output.statistics/info.js +3 -3
  83. package/lib/output.statistics/info.js.map +1 -1
  84. package/lib/output.statistics/inline-view.js +3 -2
  85. package/lib/output.statistics/inline-view.js.map +1 -1
  86. package/lib/output.statistics/runtime.d.ts +1 -1
  87. package/lib/output.statistics/runtime.js.map +1 -1
  88. package/lib/output.udpTs/info.d.ts +1 -1
  89. package/lib/output.udpTs/info.js +5 -4
  90. package/lib/output.udpTs/info.js.map +1 -1
  91. package/lib/output.udpTs/runtime.d.ts +1 -1
  92. package/lib/output.whep/info.d.ts +2 -2
  93. package/lib/output.whep/info.js +49 -1
  94. package/lib/output.whep/info.js.map +1 -1
  95. package/lib/output.whep/inline-view.d.ts +4 -0
  96. package/lib/output.whep/inline-view.js +24 -0
  97. package/lib/output.whep/inline-view.js.map +1 -0
  98. package/lib/output.whep/runtime.d.ts +26 -5
  99. package/lib/output.whep/runtime.js +64 -13
  100. package/lib/output.whep/runtime.js.map +1 -1
  101. package/lib/output.whep/types.d.ts +101 -0
  102. package/lib/output.whep/types.js +3 -0
  103. package/lib/output.whep/types.js.map +1 -0
  104. package/lib/output.whep/types.yaml +30 -0
  105. package/lib/processor.browserOverlay/info.d.ts +2 -2
  106. package/lib/processor.browserOverlay/info.js +57 -3
  107. package/lib/processor.browserOverlay/info.js.map +1 -1
  108. package/lib/processor.browserOverlay/inline-view.d.ts +6 -0
  109. package/lib/processor.browserOverlay/inline-view.js +8 -0
  110. package/lib/processor.browserOverlay/inline-view.js.map +1 -0
  111. package/lib/processor.browserOverlay/openApi.d.ts +174 -0
  112. package/lib/processor.browserOverlay/openApi.js +3 -0
  113. package/lib/processor.browserOverlay/openApi.js.map +1 -0
  114. package/lib/processor.browserOverlay/runtime.d.ts +40 -6
  115. package/lib/processor.browserOverlay/runtime.js +151 -23
  116. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  117. package/lib/processor.browserOverlay/summary-view.d.ts +4 -0
  118. package/lib/processor.browserOverlay/summary-view.js +27 -0
  119. package/lib/processor.browserOverlay/summary-view.js.map +1 -0
  120. package/lib/processor.browserOverlay/types.yaml +65 -0
  121. package/lib/processor.cascadingSwitch/info.js +5 -4
  122. package/lib/processor.cascadingSwitch/info.js.map +1 -1
  123. package/lib/processor.cascadingSwitch/inline-view.js +3 -3
  124. package/lib/processor.cascadingSwitch/runtime.d.ts +1 -1
  125. package/lib/processor.cascadingSwitch/runtime.js +2 -2
  126. package/lib/processor.cascadingSwitch/runtime.js.map +1 -1
  127. package/lib/processor.fixedLadder/codec-editor.js +2 -2
  128. package/lib/processor.fixedLadder/codec-editor.js.map +1 -1
  129. package/lib/processor.fixedLadder/codec-view.js +2 -2
  130. package/lib/processor.fixedLadder/codec-view.js.map +1 -1
  131. package/lib/processor.fixedLadder/info.js +11 -9
  132. package/lib/processor.fixedLadder/info.js.map +1 -1
  133. package/lib/processor.fixedLadder/rung-view.js +2 -2
  134. package/lib/processor.fixedLadder/rung-view.js.map +1 -1
  135. package/lib/processor.onscreenGraphic/image-selection.d.ts +9 -0
  136. package/lib/{processor.dynamicBug/bug-selection.js → processor.onscreenGraphic/image-selection.js} +10 -10
  137. package/lib/processor.onscreenGraphic/image-selection.js.map +1 -0
  138. package/lib/processor.onscreenGraphic/info.d.ts +3 -0
  139. package/lib/{processor.dynamicBug → processor.onscreenGraphic}/info.js +24 -17
  140. package/lib/processor.onscreenGraphic/info.js.map +1 -0
  141. package/lib/processor.onscreenGraphic/runtime.d.ts +91 -0
  142. package/lib/processor.onscreenGraphic/runtime.js +503 -0
  143. package/lib/processor.onscreenGraphic/runtime.js.map +1 -0
  144. package/lib/processor.onscreenGraphic/summary-view.d.ts +4 -0
  145. package/lib/processor.onscreenGraphic/summary-view.js +343 -0
  146. package/lib/processor.onscreenGraphic/summary-view.js.map +1 -0
  147. package/lib/processor.onscreenGraphic/types.d.ts +271 -0
  148. package/lib/processor.onscreenGraphic/types.js +3 -0
  149. package/lib/processor.onscreenGraphic/types.js.map +1 -0
  150. package/lib/processor.onscreenGraphic/types.yaml +211 -0
  151. package/lib/processor.streamKeyOverride/info.d.ts +3 -0
  152. package/lib/processor.streamKeyOverride/info.js +150 -0
  153. package/lib/processor.streamKeyOverride/info.js.map +1 -0
  154. package/lib/processor.streamKeyOverride/runtime.d.ts +54 -0
  155. package/lib/processor.streamKeyOverride/runtime.js +226 -0
  156. package/lib/processor.streamKeyOverride/runtime.js.map +1 -0
  157. package/lib/shared/drm/axinom.d.ts +2 -0
  158. package/lib/shared/drm/axinom.js +120 -0
  159. package/lib/shared/drm/axinom.js.map +1 -0
  160. package/lib/shared/drm/cpix.d.ts +24 -0
  161. package/lib/shared/drm/cpix.js +97 -0
  162. package/lib/shared/drm/cpix.js.map +1 -0
  163. package/lib/shared/drm/ezdrm.d.ts +2 -0
  164. package/lib/shared/drm/ezdrm.js +26 -0
  165. package/lib/shared/drm/ezdrm.js.map +1 -0
  166. package/lib/shared/srt-form-views.js +1 -2
  167. package/lib/shared/srt-form-views.js.map +1 -1
  168. package/lib/shared/srt-socket-options.js +6 -6
  169. package/lib/shared/srt-socket-options.js.map +1 -1
  170. package/lib/shared/webrtcSettings.js +1 -2
  171. package/lib/shared/webrtcSettings.js.map +1 -1
  172. package/lib/test/auto-cmaf.js +25 -17
  173. package/lib/test/auto-cmaf.js.map +1 -1
  174. package/lib/test/browser-overlay.js +3 -2
  175. package/lib/test/browser-overlay.js.map +1 -1
  176. package/lib/test/{dynamic-bug.js → onscreen-graphic.js} +146 -114
  177. package/lib/test/onscreen-graphic.js.map +1 -0
  178. package/lib/test/preview.js +3 -3
  179. package/lib/test/preview.js.map +1 -1
  180. package/lib/test/rtmp-input.js +6 -3
  181. package/lib/test/rtmp-input.js.map +1 -1
  182. package/lib/test/srt-input-caller.js +5 -5
  183. package/lib/test/srt-input-caller.js.map +1 -1
  184. package/lib/test/srt-input-listener.js +99 -18
  185. package/lib/test/srt-input-listener.js.map +1 -1
  186. package/lib/test/srt-output.js +13 -5
  187. package/lib/test/srt-output.js.map +1 -1
  188. package/lib/test/udp-output.js +11 -4
  189. package/lib/test/udp-output.js.map +1 -1
  190. package/lib/test/udp-ts-input.js +2 -2
  191. package/lib/test/udp-ts-input.js.map +1 -1
  192. package/lib/test/whep-output.js +11 -5
  193. package/lib/test/whep-output.js.map +1 -1
  194. package/lib/{util.latency → util.stats.latency}/info.js +3 -2
  195. package/lib/util.stats.latency/info.js.map +1 -0
  196. package/lib/util.stats.latency/inline-view.js.map +1 -0
  197. package/lib/{util.latency → util.stats.latency}/runtime.d.ts +1 -1
  198. package/lib/{util.latency → util.stats.latency}/runtime.js +2 -2
  199. package/lib/util.stats.latency/runtime.js.map +1 -0
  200. package/lib/util.stats.latency/source-node-selection.js.map +1 -0
  201. package/package.json +12 -5
  202. package/lib/processor.dynamicBug/bug-selection.d.ts +0 -9
  203. package/lib/processor.dynamicBug/bug-selection.js.map +0 -1
  204. package/lib/processor.dynamicBug/info.d.ts +0 -3
  205. package/lib/processor.dynamicBug/info.js.map +0 -1
  206. package/lib/processor.dynamicBug/runtime.d.ts +0 -64
  207. package/lib/processor.dynamicBug/runtime.js +0 -304
  208. package/lib/processor.dynamicBug/runtime.js.map +0 -1
  209. package/lib/processor.dynamicBug/summary-view.d.ts +0 -4
  210. package/lib/processor.dynamicBug/summary-view.js +0 -60
  211. package/lib/processor.dynamicBug/summary-view.js.map +0 -1
  212. package/lib/processor.whisper-transcribe/info.d.ts +0 -3
  213. package/lib/processor.whisper-transcribe/info.js +0 -43
  214. package/lib/processor.whisper-transcribe/info.js.map +0 -1
  215. package/lib/processor.whisper-transcribe/runtime.d.ts +0 -29
  216. package/lib/processor.whisper-transcribe/runtime.js +0 -83
  217. package/lib/processor.whisper-transcribe/runtime.js.map +0 -1
  218. package/lib/test/dynamic-bug.js.map +0 -1
  219. package/lib/util.latency/info.js.map +0 -1
  220. package/lib/util.latency/inline-view.js.map +0 -1
  221. package/lib/util.latency/runtime.js.map +0 -1
  222. package/lib/util.latency/source-node-selection.js.map +0 -1
  223. package/lib/util.ma35d/info.d.ts +0 -3
  224. package/lib/util.ma35d/info.js +0 -78
  225. package/lib/util.ma35d/info.js.map +0 -1
  226. package/lib/util.ma35d/inline-view.d.ts +0 -6
  227. package/lib/util.ma35d/inline-view.js +0 -76
  228. package/lib/util.ma35d/inline-view.js.map +0 -1
  229. package/lib/util.ma35d/runtime.d.ts +0 -21
  230. package/lib/util.ma35d/runtime.js +0 -49
  231. package/lib/util.ma35d/runtime.js.map +0 -1
  232. package/lib/util.timestamps/info.d.ts +0 -5
  233. package/lib/util.timestamps/info.js +0 -86
  234. package/lib/util.timestamps/info.js.map +0 -1
  235. package/lib/util.timestamps/inline-view.d.ts +0 -6
  236. package/lib/util.timestamps/inline-view.js +0 -94
  237. package/lib/util.timestamps/inline-view.js.map +0 -1
  238. package/lib/util.timestamps/runtime.d.ts +0 -29
  239. package/lib/util.timestamps/runtime.js +0 -40
  240. package/lib/util.timestamps/runtime.js.map +0 -1
  241. /package/lib/test/{dynamic-bug.d.ts → onscreen-graphic.d.ts} +0 -0
  242. /package/lib/{util.latency → util.stats.latency}/info.d.ts +0 -0
  243. /package/lib/{util.latency → util.stats.latency}/inline-view.d.ts +0 -0
  244. /package/lib/{util.latency → util.stats.latency}/inline-view.js +0 -0
  245. /package/lib/{util.latency → util.stats.latency}/source-node-selection.d.ts +0 -0
  246. /package/lib/{util.latency → util.stats.latency}/source-node-selection.js +0 -0
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ function SummaryView({ state, sendCommand, urls, }) {
6
+ const [graphic, setGraphic] = (0, react_1.useState)(state.activeGraphic?.file);
7
+ const [position, setPosition] = (0, react_1.useState)(state.activeGraphic?.position ?? { type: 'named', position: 'topleft' });
8
+ const [graphics, setGraphics] = (0, react_1.useState)([]);
9
+ const [fileToUpload, setFileToUpload] = (0, react_1.useState)(undefined);
10
+ const [showFileInput, setShowFileInput] = (0, react_1.useState)(false);
11
+ const [showUploadButton, setShowUploadButton] = (0, react_1.useState)(false);
12
+ const [uploadStatus, setUploadStatus] = (0, react_1.useState)({ success: false, message: null });
13
+ const [showDeleteDropdown, setShowDeleteDropdown] = (0, react_1.useState)(false);
14
+ const [graphicToDelete, setGraphicToDelete] = (0, react_1.useState)("");
15
+ const updateGraphics = (0, react_1.useCallback)(async () => {
16
+ try {
17
+ const result = await fetch(`${urls.componentUrl}/graphics`);
18
+ if (result.ok) {
19
+ const newGraphics = (await result.json());
20
+ setGraphics(newGraphics);
21
+ }
22
+ else {
23
+ throw new Error(await result.text());
24
+ }
25
+ }
26
+ catch (error) {
27
+ console.error("Failed to update graphics:", error);
28
+ setUploadStatus({
29
+ success: false,
30
+ message: "Failed to update graphic list.",
31
+ });
32
+ }
33
+ }, [urls.componentUrl]);
34
+ (0, react_1.useEffect)(() => {
35
+ updateGraphics().catch(console.error);
36
+ }, [updateGraphics]);
37
+ const onFileChange = (e) => {
38
+ const file = e.target.files?.[0];
39
+ setFileToUpload(file);
40
+ setShowUploadButton(!!file);
41
+ setUploadStatus({ success: false, message: null });
42
+ };
43
+ const uploadFileHandle = async () => {
44
+ if (!fileToUpload)
45
+ return;
46
+ try {
47
+ const form = new FormData();
48
+ form.append("file", fileToUpload);
49
+ const response = await fetch(`${urls.componentUrl}/graphics`, {
50
+ method: "POST",
51
+ body: form,
52
+ });
53
+ if (response.status === 409) {
54
+ const errorData = await response.json();
55
+ setUploadStatus({
56
+ success: false,
57
+ message: `${errorData.error}. Delete the existing graphic first if you want to replace it.`,
58
+ });
59
+ }
60
+ else if (!response.ok) {
61
+ throw new Error("Upload failed");
62
+ }
63
+ else {
64
+ setFileToUpload(undefined);
65
+ setShowFileInput(false);
66
+ setUploadStatus({
67
+ success: true,
68
+ message: "Graphic uploaded successfully!",
69
+ });
70
+ await updateGraphics();
71
+ }
72
+ }
73
+ catch (error) {
74
+ console.error("Failed to upload file:", error);
75
+ setUploadStatus({ success: false, message: "Failed to upload graphic." });
76
+ }
77
+ setTimeout(() => setUploadStatus({ success: false, message: null }), 5000);
78
+ };
79
+ const uploadFile = () => {
80
+ void uploadFileHandle();
81
+ };
82
+ const deleteBugHandle = async () => {
83
+ if (!graphicToDelete)
84
+ return;
85
+ try {
86
+ console.log(`${urls.componentUrl}`);
87
+ const response = await fetch(`${urls.componentUrl}/graphic`, {
88
+ method: "DELETE",
89
+ headers: {
90
+ "Content-Type": "application/json",
91
+ },
92
+ body: JSON.stringify({ filename: graphicToDelete }),
93
+ });
94
+ if (response.ok) {
95
+ setUploadStatus({
96
+ success: true,
97
+ message: "Graphic deleted successfully!",
98
+ });
99
+ await updateGraphics();
100
+ if (graphic === graphicToDelete) {
101
+ setGraphic(undefined);
102
+ sendCommand({
103
+ type: "change-graphic",
104
+ file: undefined,
105
+ position: undefined,
106
+ });
107
+ }
108
+ setGraphicToDelete("");
109
+ setShowDeleteDropdown(false);
110
+ }
111
+ else {
112
+ const errorData = await response.json();
113
+ setUploadStatus({
114
+ success: false,
115
+ message: errorData.error || "Failed to delete graphic",
116
+ });
117
+ }
118
+ }
119
+ catch (error) {
120
+ console.error("Failed to delete graphic:", error);
121
+ setUploadStatus({ success: false, message: "Failed to delete graphic" });
122
+ }
123
+ setTimeout(() => setUploadStatus({ success: false, message: null }), 3000);
124
+ };
125
+ const deleteBug = () => {
126
+ void deleteBugHandle();
127
+ };
128
+ const eqPosition = (l, r) => {
129
+ if (!r)
130
+ return false;
131
+ if (l.type === 'named') {
132
+ if (r.type !== 'named')
133
+ return false;
134
+ return l.position === r.position;
135
+ }
136
+ if (r.type === 'named')
137
+ return false;
138
+ if (l.type !== r.type)
139
+ return false;
140
+ return l.x === r.x && l.y === r.y;
141
+ };
142
+ const graphicChanged = graphic !== state.activeGraphic?.file;
143
+ const stateChanged = graphicChanged ||
144
+ !eqPosition(position, state.activeGraphic?.position);
145
+ const buttonClass = "mt-2 mb-5 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800";
146
+ const deleteButtonClass = "mt-2 text-white w-full justify-center bg-red-600 hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-700 dark:hover:bg-red-800 dark:focus:ring-red-900";
147
+ const fileInputClass = "block w-full text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400";
148
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-3", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, jsx_runtime_1.jsxs)("select", { id: "select-graphic", className: "w-full node-editor-select-input", value: graphic || "", onChange: (e) => setGraphic(e.target.value || undefined), children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: "---" }), graphics.map((s) => ((0, jsx_runtime_1.jsx)("option", { value: s, children: s }, s)))] })] }), graphic && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Graphic position" }), (0, jsx_runtime_1.jsx)(PositionSelector, { initialPosition: position, onChange: setPosition, graphicChanged: graphicChanged, ...state })] })), (0, jsx_runtime_1.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? 'opacity-50 cursor-not-allowed' : ''}`, onClick: () => sendCommand({ type: "change-graphic", file: graphic, position }), disabled: !stateChanged, children: "Commit" }), !showFileInput && !uploadStatus.success && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" })), showFileInput && ((0, jsx_runtime_1.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, jsx_runtime_1.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" }))] })), (0, jsx_runtime_1.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && ((0, jsx_runtime_1.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, jsx_runtime_1.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => ((0, jsx_runtime_1.jsx)("option", { value: graphicName, children: graphicName }, graphicName)))] }), (0, jsx_runtime_1.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Graphic" })] })), uploadStatus.message && ((0, jsx_runtime_1.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message }))] }));
149
+ }
150
+ function convertPosition(givenPosition, currentVideo, currentGraphic) {
151
+ if (!givenPosition)
152
+ givenPosition = { type: 'named', position: 'topleft' };
153
+ if (givenPosition.type === 'named') {
154
+ let xy;
155
+ if (givenPosition.position === 'topleft') {
156
+ xy = { x: 0, y: 0 };
157
+ }
158
+ else if (givenPosition.position === 'topright') {
159
+ xy = { x: 100, y: 0 };
160
+ }
161
+ else if (givenPosition.position === 'bottomleft') {
162
+ xy = { x: 0, y: 100 };
163
+ }
164
+ else if (givenPosition.position === 'bottomright') {
165
+ xy = { x: 100, y: 100 };
166
+ }
167
+ else if (givenPosition.position === 'center') {
168
+ xy = { x: 50, y: 50 };
169
+ }
170
+ else {
171
+ assertUnreachable(givenPosition.position);
172
+ }
173
+ return { ...givenPosition, ...xy, xPct: xy.x, yPct: xy.y };
174
+ }
175
+ if (givenPosition.type === 'coordinate') {
176
+ if (!currentVideo || !currentGraphic) {
177
+ return { ...givenPosition, xPct: 0, yPct: 0 };
178
+ }
179
+ const { width: videoWidth, height: videoHeight } = currentVideo;
180
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
181
+ const maxX = videoWidth - graphicWidth;
182
+ const maxY = videoHeight - graphicHeight;
183
+ return {
184
+ ...givenPosition,
185
+ x: clamp(0, givenPosition.x, maxX),
186
+ xPct: clamp(0, givenPosition.x * 100 / maxX, 100),
187
+ y: clamp(0, givenPosition.y, maxY),
188
+ yPct: clamp(0, givenPosition.y * 100 / maxY, 100),
189
+ };
190
+ }
191
+ return { ...givenPosition, xPct: givenPosition.x, yPct: givenPosition.y };
192
+ }
193
+ const PositionSelector = ({ initialPosition: givenPosition = { type: 'named', position: 'topleft' }, onChange, currentVideo, currentGraphic, graphicChanged, }) => {
194
+ const convertPos = (pos) => convertPosition(pos, currentVideo, currentGraphic);
195
+ const initialPosition = convertPos(givenPosition);
196
+ const [position, setLocalPosition] = (0, react_1.useState)(initialPosition);
197
+ const setPosition = (v) => { setLocalPosition(v); onChange(v); };
198
+ const [positionUnit, setPositionUnit] = (0, react_1.useState)(position.type === 'coordinate' ? "px" : "%");
199
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
200
+ const [dragStart, setDragStart] = (0, react_1.useState)({ xPct: 0, yPct: 0, cx: 0, cy: 0 });
201
+ const previewAreaRef = (0, react_1.useRef)(null);
202
+ const previewTargetRef = (0, react_1.useRef)(null);
203
+ const handleMouseDown = (e) => {
204
+ setIsDragging(true);
205
+ setDragStart({
206
+ ...position,
207
+ cx: e.clientX,
208
+ cy: e.clientY,
209
+ });
210
+ handleMouseMove(e);
211
+ };
212
+ const handleMouseMove = (e) => {
213
+ if (!isDragging)
214
+ return;
215
+ const boundingBox = previewAreaRef.current?.getBoundingClientRect() ?? { width: 0, height: 0 };
216
+ const bbTarget = previewTargetRef.current?.getBoundingClientRect() ?? { width: 0, height: 0 };
217
+ const clientWidth = boundingBox.width - bbTarget.width;
218
+ const clientHeight = boundingBox.height - bbTarget.height;
219
+ const newX = clamp(0, dragStart.xPct + (e.clientX - dragStart.cx) * (100 / clientWidth), 100);
220
+ const newY = clamp(0, dragStart.yPct + (e.clientY - dragStart.cy) * (100 / clientHeight), 100);
221
+ if (positionUnit === 'px' && currentVideo && currentGraphic) {
222
+ const { width: videoWidth, height: videoHeight } = currentVideo;
223
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
224
+ const maxX = videoWidth - graphicWidth;
225
+ const maxY = videoHeight - graphicHeight;
226
+ setPosition({
227
+ type: 'coordinate',
228
+ x: newX * maxX / 100,
229
+ y: newY * maxY / 100,
230
+ xPct: newX,
231
+ yPct: newY,
232
+ });
233
+ }
234
+ else {
235
+ setPosition({
236
+ type: 'percentage',
237
+ x: newX,
238
+ y: newY,
239
+ xPct: newX,
240
+ yPct: newY,
241
+ });
242
+ }
243
+ };
244
+ const handleMouseUp = () => {
245
+ setIsDragging(false);
246
+ };
247
+ (0, react_1.useEffect)(() => {
248
+ if (isDragging) {
249
+ window.addEventListener("mousemove", handleMouseMove);
250
+ window.addEventListener("mouseup", handleMouseUp);
251
+ }
252
+ return () => {
253
+ window.removeEventListener("mousemove", handleMouseMove);
254
+ window.removeEventListener("mouseup", handleMouseUp);
255
+ };
256
+ }, [isDragging]);
257
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "relative w-full max-w-lg mx-auto mt-4 mb-8", children: [(0, jsx_runtime_1.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Type:" }), (0, jsx_runtime_1.jsxs)("select", { value: position.type, onChange: (e) => {
258
+ const newType = e.target.value;
259
+ if (newType === 'named') {
260
+ setPosition(convertPos({ type: 'named', position: 'topleft' }));
261
+ }
262
+ else {
263
+ setPositionUnit("%");
264
+ setPosition({ ...convertPos(position), type: 'percentage' });
265
+ }
266
+ }, className: "node-editor-select-input", children: [(0, jsx_runtime_1.jsx)("option", { value: "coordinate", children: "Custom Position" }), (0, jsx_runtime_1.jsx)("option", { value: "named", children: "Preset Position" })] })] }), position.type === 'named' ? ((0, jsx_runtime_1.jsx)("div", { className: "mb-4", children: (0, jsx_runtime_1.jsxs)("select", { value: position.position, onChange: (e) => {
267
+ setPosition(convertPos({
268
+ type: 'named',
269
+ position: e.target.value
270
+ }));
271
+ }, className: "w-full node-editor-select-input", children: [(0, jsx_runtime_1.jsx)("option", { value: "topleft", children: "Top Left" }), (0, jsx_runtime_1.jsx)("option", { value: "topright", children: "Top Right" }), (0, jsx_runtime_1.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, jsx_runtime_1.jsx)("option", { value: "bottomright", children: "Bottom Right" }), (0, jsx_runtime_1.jsx)("option", { value: "center", children: "Centered" })] }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Unit:" }), (0, jsx_runtime_1.jsxs)("select", { value: positionUnit, onChange: (e) => {
272
+ setPositionUnit(e.target.value);
273
+ if (e.target.value === 'px' && position.type !== 'coordinate' && currentVideo && currentGraphic) {
274
+ const { width: videoWidth, height: videoHeight } = currentVideo;
275
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
276
+ const maxX = videoWidth - graphicWidth;
277
+ const maxY = videoHeight - graphicHeight;
278
+ setPosition({
279
+ ...position,
280
+ type: 'coordinate',
281
+ x: position.xPct * maxX / 100,
282
+ y: position.yPct * maxY / 100,
283
+ xStr: undefined,
284
+ yStr: undefined,
285
+ });
286
+ }
287
+ else if (e.target.value === "%") {
288
+ setPosition({
289
+ ...position,
290
+ type: 'percentage',
291
+ x: position.xPct,
292
+ y: position.yPct,
293
+ xStr: undefined,
294
+ yStr: undefined,
295
+ });
296
+ }
297
+ }, className: "node-editor-select-input", children: [(0, jsx_runtime_1.jsx)("option", { value: "px", children: "Pixels" }), (0, jsx_runtime_1.jsx)("option", { value: "%", children: "Percentage" })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "relative bg-gray-200 dark:bg-gray-700 rounded-lg", style: {
298
+ width: "100%",
299
+ userSelect: "none",
300
+ aspectRatio: currentVideo ? `${currentVideo.width} / ${currentVideo.height}` : `3 / 2`
301
+ }, ref: previewAreaRef, children: [(0, jsx_runtime_1.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-gray-500 dark:text-gray-400", children: [(0, jsx_runtime_1.jsx)("span", { children: currentVideo ? "Video Preview Area" : "Video Dimensions Unknown" }), " ", currentVideo ? (0, jsx_runtime_1.jsxs)("span", { children: [currentVideo.width, "x", currentVideo.height, "px"] }) : ''] }), (0, jsx_runtime_1.jsx)("div", { className: `absolute cursor-move ${currentGraphic && !graphicChanged ? "" : "p-2"} rounded-lg bg-primary-500 bg-opacity-50 hover:bg-opacity-75 transition-colors
302
+ ${isDragging ? "bg-opacity-75" : ""}`, style: {
303
+ left: `${position.xPct}%`,
304
+ top: `${position.yPct}%`,
305
+ transform: `translate(-${position.xPct}%, -${position.yPct}%)`,
306
+ aspectRatio: currentGraphic && !graphicChanged ? `${currentGraphic.width} / ${currentGraphic.height}` : `1`,
307
+ width: currentGraphic && currentVideo && !graphicChanged ? (currentGraphic.width / currentVideo.width * 100) + "%" : undefined,
308
+ }, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0, jsx_runtime_1.jsx)("svg", { className: `${currentGraphic && !graphicChanged ? "w-full h-full" : "w-6 h-6"} text-white`, "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 6v12m-6-6h12m-6-6 1.5 1.5M12 6l-1.5 1.5m1.5 10.5L10.5 16.5M12 18l1.5-1.5M6 12l1.5-1.5M7.5 13.5 6 12m12 0-1.5-1.5M16.5 13.5 18 12" }) }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300 text-center", children: ["Position:", " ", position.type === 'percentage'
309
+ ? `${position.xPct.toFixed(1)}%, ${position.yPct.toFixed(1)}%`
310
+ : `${Math.round(position.x)}px, ${Math.round(position.y)}px`] }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2 flex gap-4", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["X Position ", positionUnit] }), (0, jsx_runtime_1.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.xStr ??
311
+ (positionUnit === "%"
312
+ ? position.xPct.toFixed(1)
313
+ : Math.round(position.x)), onChange: (e) => {
314
+ const newX = Number(e.target.value);
315
+ setPosition(convertPos({
316
+ type: positionUnit === "%" ? 'percentage' : 'coordinate',
317
+ x: newX,
318
+ xStr: e.target.value,
319
+ y: position.y,
320
+ yStr: position.yStr,
321
+ }));
322
+ }, className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm dark:bg-gray-700 dark:border-gray-600" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["Y Position ", positionUnit] }), (0, jsx_runtime_1.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.yStr ??
323
+ (positionUnit === "%"
324
+ ? position.yPct.toFixed(1)
325
+ : Math.round(position.y)), onChange: (e) => {
326
+ const newY = Number(e.target.value);
327
+ setPosition(convertPos({
328
+ type: positionUnit === "%" ? 'percentage' : 'coordinate',
329
+ x: position.x,
330
+ xStr: position.xStr,
331
+ y: newY,
332
+ yStr: e.target.value,
333
+ }));
334
+ }, className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm dark:bg-gray-700 dark:border-gray-600" })] })] })] }))] }));
335
+ };
336
+ function clamp(min, num, max) {
337
+ return num < min ? min : num > max ? max : num;
338
+ }
339
+ function assertUnreachable(_) {
340
+ throw new Error("Didn't expect to get here");
341
+ }
342
+ exports.default = SummaryView;
343
+ //# sourceMappingURL=summary-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/summary-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ export interface paths {
2
+ "/graphics": {
3
+ parameters: {
4
+ query?: never;
5
+ header?: never;
6
+ path?: never;
7
+ cookie?: never;
8
+ };
9
+ get: {
10
+ parameters: {
11
+ query?: never;
12
+ header?: never;
13
+ path?: never;
14
+ cookie?: never;
15
+ };
16
+ requestBody?: never;
17
+ responses: {
18
+ 200: {
19
+ headers: {
20
+ [name: string]: unknown;
21
+ };
22
+ content: {
23
+ "application/json": components["schemas"]["graphic"][];
24
+ };
25
+ };
26
+ };
27
+ };
28
+ put?: never;
29
+ post: {
30
+ parameters: {
31
+ query?: never;
32
+ header?: never;
33
+ path?: never;
34
+ cookie?: never;
35
+ };
36
+ requestBody?: {
37
+ content: {
38
+ "multipart/form-data": {
39
+ file?: string;
40
+ };
41
+ };
42
+ };
43
+ responses: {
44
+ 204: {
45
+ headers: {
46
+ [name: string]: unknown;
47
+ };
48
+ content?: never;
49
+ };
50
+ 400: {
51
+ headers: {
52
+ [name: string]: unknown;
53
+ };
54
+ content?: never;
55
+ };
56
+ 404: {
57
+ headers: {
58
+ [name: string]: unknown;
59
+ };
60
+ content?: never;
61
+ };
62
+ 409: {
63
+ headers: {
64
+ [name: string]: unknown;
65
+ };
66
+ content?: never;
67
+ };
68
+ 500: {
69
+ headers: {
70
+ [name: string]: unknown;
71
+ };
72
+ content?: never;
73
+ };
74
+ };
75
+ };
76
+ delete?: never;
77
+ options?: never;
78
+ head?: never;
79
+ patch?: never;
80
+ trace?: never;
81
+ };
82
+ "/graphic": {
83
+ parameters: {
84
+ query?: never;
85
+ header?: never;
86
+ path?: never;
87
+ cookie?: never;
88
+ };
89
+ get?: never;
90
+ put?: never;
91
+ post?: never;
92
+ delete: {
93
+ parameters: {
94
+ query?: never;
95
+ header?: never;
96
+ path?: never;
97
+ cookie?: never;
98
+ };
99
+ requestBody?: {
100
+ content: {
101
+ "application/json": {
102
+ filename: string;
103
+ };
104
+ };
105
+ };
106
+ responses: {
107
+ 204: {
108
+ headers: {
109
+ [name: string]: unknown;
110
+ };
111
+ content?: never;
112
+ };
113
+ 404: {
114
+ headers: {
115
+ [name: string]: unknown;
116
+ };
117
+ content?: never;
118
+ };
119
+ 500: {
120
+ headers: {
121
+ [name: string]: unknown;
122
+ };
123
+ content?: never;
124
+ };
125
+ };
126
+ };
127
+ options?: never;
128
+ head?: never;
129
+ patch?: never;
130
+ trace?: never;
131
+ };
132
+ "/active-graphic": {
133
+ parameters: {
134
+ query?: never;
135
+ header?: never;
136
+ path?: never;
137
+ cookie?: never;
138
+ };
139
+ get: {
140
+ parameters: {
141
+ query?: never;
142
+ header?: never;
143
+ path?: never;
144
+ cookie?: never;
145
+ };
146
+ requestBody?: never;
147
+ responses: {
148
+ 200: {
149
+ headers: {
150
+ [name: string]: unknown;
151
+ };
152
+ content: {
153
+ "application/json": components["schemas"]["config"];
154
+ };
155
+ };
156
+ 204: {
157
+ headers: {
158
+ [name: string]: unknown;
159
+ };
160
+ content?: never;
161
+ };
162
+ 404: {
163
+ headers: {
164
+ [name: string]: unknown;
165
+ };
166
+ content?: never;
167
+ };
168
+ };
169
+ };
170
+ put?: never;
171
+ post: {
172
+ parameters: {
173
+ query?: never;
174
+ header?: never;
175
+ path?: never;
176
+ cookie?: never;
177
+ };
178
+ requestBody?: {
179
+ content: {
180
+ "application/json": components["schemas"]["config"] | components["schemas"]["emptyObject"];
181
+ };
182
+ };
183
+ responses: {
184
+ 204: {
185
+ headers: {
186
+ [name: string]: unknown;
187
+ };
188
+ content?: never;
189
+ };
190
+ 400: {
191
+ headers: {
192
+ [name: string]: unknown;
193
+ };
194
+ content: {
195
+ "application/json": components["schemas"]["errorResponse"];
196
+ };
197
+ };
198
+ 404: {
199
+ headers: {
200
+ [name: string]: unknown;
201
+ };
202
+ content?: never;
203
+ };
204
+ };
205
+ };
206
+ delete: {
207
+ parameters: {
208
+ query?: never;
209
+ header?: never;
210
+ path?: never;
211
+ cookie?: never;
212
+ };
213
+ requestBody?: never;
214
+ responses: {
215
+ 204: {
216
+ headers: {
217
+ [name: string]: unknown;
218
+ };
219
+ content?: never;
220
+ };
221
+ 404: {
222
+ headers: {
223
+ [name: string]: unknown;
224
+ };
225
+ content?: never;
226
+ };
227
+ };
228
+ };
229
+ options?: never;
230
+ head?: never;
231
+ patch?: never;
232
+ trace?: never;
233
+ };
234
+ }
235
+ export type webhooks = Record<string, never>;
236
+ export interface components {
237
+ schemas: {
238
+ graphic: string;
239
+ coordinatePosition: {
240
+ type: "coordinate";
241
+ x: number;
242
+ y: number;
243
+ };
244
+ percentagePosition: {
245
+ type: "percentage";
246
+ x: number;
247
+ y: number;
248
+ };
249
+ namedPosition: {
250
+ type: "named";
251
+ position: "topleft" | "topright" | "bottomleft" | "bottomright" | "center";
252
+ };
253
+ position: components["schemas"]["coordinatePosition"] | components["schemas"]["namedPosition"];
254
+ config: {
255
+ graphic?: components["schemas"]["graphic"];
256
+ position?: components["schemas"]["position"];
257
+ };
258
+ emptyObject: Record<string, never>;
259
+ errorResponse: {
260
+ error?: string;
261
+ details?: string;
262
+ };
263
+ };
264
+ responses: never;
265
+ parameters: never;
266
+ requestBodies: never;
267
+ headers: never;
268
+ pathItems: never;
269
+ }
270
+ export type $defs = Record<string, never>;
271
+ export type operations = Record<string, never>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/types.ts"],"names":[],"mappings":""}