@norskvideo/norsk-studio-built-ins 1.19.0 → 1.26.0-2025-02-19-e81e84b9

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 (247) hide show
  1. package/client/info.js +5983 -699
  2. package/client/output.preview/styles.css +69 -69
  3. package/client/output.whep/styles.css +9 -0
  4. package/client/style.css +283 -856
  5. package/lib/info.js +14 -14
  6. package/lib/info.js.map +1 -1
  7. package/lib/input.rtmp/info.js +19 -5
  8. package/lib/input.rtmp/info.js.map +1 -1
  9. package/lib/input.rtmp/inline-view.js +3 -3
  10. package/lib/input.rtmp/runtime.d.ts +46 -7
  11. package/lib/input.rtmp/runtime.js +245 -59
  12. package/lib/input.rtmp/runtime.js.map +1 -1
  13. package/lib/input.rtmp/summary-view.d.ts +3 -5
  14. package/lib/input.rtmp/summary-view.js +51 -6
  15. package/lib/input.rtmp/summary-view.js.map +1 -1
  16. package/lib/input.rtmp/types.d.ts +193 -0
  17. package/lib/{processor.browserOverlay/openApi.js → input.rtmp/types.js} +1 -1
  18. package/lib/input.rtmp/types.js.map +1 -0
  19. package/lib/input.rtmp/types.yaml +147 -0
  20. package/lib/input.silence/info.js +9 -2
  21. package/lib/input.silence/info.js.map +1 -1
  22. package/lib/input.silence/runtime.d.ts +1 -0
  23. package/lib/input.silence/runtime.js.map +1 -1
  24. package/lib/input.srt-caller/info.js +8 -1
  25. package/lib/input.srt-caller/info.js.map +1 -1
  26. package/lib/input.srt-caller/runtime.d.ts +1 -0
  27. package/lib/input.srt-caller/runtime.js.map +1 -1
  28. package/lib/input.srt-listener/info.js +15 -2
  29. package/lib/input.srt-listener/info.js.map +1 -1
  30. package/lib/input.srt-listener/runtime.d.ts +41 -5
  31. package/lib/input.srt-listener/runtime.js +236 -57
  32. package/lib/input.srt-listener/runtime.js.map +1 -1
  33. package/lib/input.srt-listener/summary-view.d.ts +3 -5
  34. package/lib/input.srt-listener/summary-view.js +45 -6
  35. package/lib/input.srt-listener/summary-view.js.map +1 -1
  36. package/lib/input.srt-listener/types.d.ts +193 -0
  37. package/lib/input.srt-listener/types.js +3 -0
  38. package/lib/input.srt-listener/types.js.map +1 -0
  39. package/lib/input.srt-listener/types.yaml +145 -0
  40. package/lib/input.udp-ts/info.js +2 -1
  41. package/lib/input.udp-ts/info.js.map +1 -1
  42. package/lib/input.udp-ts/runtime.d.ts +1 -0
  43. package/lib/input.udp-ts/runtime.js.map +1 -1
  44. package/lib/input.videoTestCard/info.d.ts +1 -1
  45. package/lib/input.videoTestCard/info.js +17 -4
  46. package/lib/input.videoTestCard/info.js.map +1 -1
  47. package/lib/input.videoTestCard/runtime.d.ts +1 -0
  48. package/lib/output.autoCmaf/form-views.d.ts +2 -2
  49. package/lib/output.autoCmaf/form-views.js +13 -3
  50. package/lib/output.autoCmaf/form-views.js.map +1 -1
  51. package/lib/output.autoCmaf/info.d.ts +21 -2
  52. package/lib/output.autoCmaf/info.js +106 -32
  53. package/lib/output.autoCmaf/info.js.map +1 -1
  54. package/lib/output.autoCmaf/inline-view.d.ts +6 -0
  55. package/lib/output.autoCmaf/inline-view.js +8 -0
  56. package/lib/output.autoCmaf/inline-view.js.map +1 -0
  57. package/lib/output.autoCmaf/runtime.d.ts +29 -43
  58. package/lib/output.autoCmaf/runtime.js +314 -96
  59. package/lib/output.autoCmaf/runtime.js.map +1 -1
  60. package/lib/output.autoCmaf/summary-view.d.ts +4 -0
  61. package/lib/output.autoCmaf/summary-view.js +24 -0
  62. package/lib/output.autoCmaf/summary-view.js.map +1 -0
  63. package/lib/output.autoCmaf/summary.js +3 -0
  64. package/lib/output.autoCmaf/summary.js.map +1 -1
  65. package/lib/output.autoCmaf/types.d.ts +158 -0
  66. package/lib/output.autoCmaf/types.js +3 -0
  67. package/lib/output.autoCmaf/types.js.map +1 -0
  68. package/lib/output.autoCmaf/types.yaml +182 -0
  69. package/lib/output.autoHls/info.d.ts +3 -0
  70. package/lib/output.autoHls/info.js +22 -0
  71. package/lib/output.autoHls/info.js.map +1 -0
  72. package/lib/output.autoHls/runtime.d.ts +6 -0
  73. package/lib/output.autoHls/runtime.js +13 -0
  74. package/lib/output.autoHls/runtime.js.map +1 -0
  75. package/lib/output.preview/info.d.ts +5 -2
  76. package/lib/output.preview/info.js +23 -3
  77. package/lib/output.preview/info.js.map +1 -1
  78. package/lib/output.preview/inline-view.d.ts +2 -4
  79. package/lib/output.preview/inline-view.js +65 -7
  80. package/lib/output.preview/inline-view.js.map +1 -1
  81. package/lib/output.preview/runtime.d.ts +18 -12
  82. package/lib/output.preview/runtime.js +122 -33
  83. package/lib/output.preview/runtime.js.map +1 -1
  84. package/lib/output.preview/types.d.ts +56 -0
  85. package/lib/output.preview/types.js +3 -0
  86. package/lib/output.preview/types.js.map +1 -0
  87. package/lib/output.preview/types.yaml +37 -0
  88. package/lib/output.rtmp/info.js +14 -2
  89. package/lib/output.rtmp/info.js.map +1 -1
  90. package/lib/output.rtmp/inline-view.js +5 -2
  91. package/lib/output.rtmp/inline-view.js.map +1 -1
  92. package/lib/output.rtmp/runtime.d.ts +31 -5
  93. package/lib/output.rtmp/runtime.js +169 -34
  94. package/lib/output.rtmp/runtime.js.map +1 -1
  95. package/lib/output.rtmp/summary-view.d.ts +4 -0
  96. package/lib/output.rtmp/summary-view.js +24 -0
  97. package/lib/output.rtmp/summary-view.js.map +1 -0
  98. package/lib/output.rtmp/types.d.ts +101 -0
  99. package/lib/output.rtmp/types.js +3 -0
  100. package/lib/output.rtmp/types.js.map +1 -0
  101. package/lib/output.rtmp/types.yaml +30 -0
  102. package/lib/output.srt/info.d.ts +2 -2
  103. package/lib/output.srt/info.js +29 -1
  104. package/lib/output.srt/info.js.map +1 -1
  105. package/lib/output.srt/inline-view.d.ts +6 -0
  106. package/lib/output.srt/inline-view.js +8 -0
  107. package/lib/output.srt/inline-view.js.map +1 -0
  108. package/lib/output.srt/runtime.d.ts +35 -5
  109. package/lib/output.srt/runtime.js +174 -6
  110. package/lib/output.srt/runtime.js.map +1 -1
  111. package/lib/output.srt/summary-view.d.ts +4 -0
  112. package/lib/output.srt/summary-view.js +24 -0
  113. package/lib/output.srt/summary-view.js.map +1 -0
  114. package/lib/output.srt/types.d.ts +101 -0
  115. package/lib/output.srt/types.js +3 -0
  116. package/lib/output.srt/types.js.map +1 -0
  117. package/lib/output.srt/types.yaml +31 -0
  118. package/lib/output.statistics/info.js +3 -1
  119. package/lib/output.statistics/info.js.map +1 -1
  120. package/lib/output.statistics/inline-view.js +3 -2
  121. package/lib/output.statistics/inline-view.js.map +1 -1
  122. package/lib/output.statistics/runtime.d.ts +1 -0
  123. package/lib/output.statistics/runtime.js.map +1 -1
  124. package/lib/output.udpTs/info.js +4 -0
  125. package/lib/output.udpTs/info.js.map +1 -1
  126. package/lib/output.udpTs/runtime.d.ts +1 -0
  127. package/lib/output.udpTs/runtime.js.map +1 -1
  128. package/lib/output.whep/info.d.ts +2 -2
  129. package/lib/output.whep/info.js +61 -1
  130. package/lib/output.whep/info.js.map +1 -1
  131. package/lib/output.whep/inline-view.d.ts +4 -0
  132. package/lib/output.whep/inline-view.js +57 -0
  133. package/lib/output.whep/inline-view.js.map +1 -0
  134. package/lib/output.whep/runtime.d.ts +39 -5
  135. package/lib/output.whep/runtime.js +175 -13
  136. package/lib/output.whep/runtime.js.map +1 -1
  137. package/lib/output.whep/summary-view.d.ts +4 -0
  138. package/lib/output.whep/summary-view.js +24 -0
  139. package/lib/output.whep/summary-view.js.map +1 -0
  140. package/lib/output.whep/types.d.ts +101 -0
  141. package/lib/output.whep/types.js +3 -0
  142. package/lib/output.whep/types.js.map +1 -0
  143. package/lib/output.whep/types.yaml +30 -0
  144. package/lib/processor.audioEncoder/form-views.d.ts +8 -0
  145. package/lib/processor.audioEncoder/form-views.js +8 -0
  146. package/lib/processor.audioEncoder/form-views.js.map +1 -0
  147. package/lib/processor.audioEncoder/info.d.ts +3 -0
  148. package/lib/processor.audioEncoder/info.js +160 -0
  149. package/lib/processor.audioEncoder/info.js.map +1 -0
  150. package/lib/processor.audioEncoder/runtime.d.ts +21 -0
  151. package/lib/processor.audioEncoder/runtime.js +20 -0
  152. package/lib/processor.audioEncoder/runtime.js.map +1 -0
  153. package/lib/processor.browserOverlay/info.js +1 -0
  154. package/lib/processor.browserOverlay/info.js.map +1 -1
  155. package/lib/processor.browserOverlay/runtime.d.ts +1 -0
  156. package/lib/processor.browserOverlay/runtime.js +6 -26
  157. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  158. package/lib/processor.browserOverlay/types.js +3 -0
  159. package/lib/processor.browserOverlay/types.js.map +1 -0
  160. package/lib/processor.cascadingSwitch/info.js +3 -2
  161. package/lib/processor.cascadingSwitch/info.js.map +1 -1
  162. package/lib/processor.cascadingSwitch/inline-view.js +3 -3
  163. package/lib/processor.cascadingSwitch/runtime.d.ts +1 -0
  164. package/lib/processor.cascadingSwitch/runtime.js +2 -2
  165. package/lib/processor.cascadingSwitch/runtime.js.map +1 -1
  166. package/lib/processor.fixedLadder/codec-editor.js +1 -1
  167. package/lib/processor.fixedLadder/codec-editor.js.map +1 -1
  168. package/lib/processor.fixedLadder/codec-view.d.ts +1 -1
  169. package/lib/processor.fixedLadder/codec-view.js +1 -1
  170. package/lib/processor.fixedLadder/codec-view.js.map +1 -1
  171. package/lib/processor.fixedLadder/info.d.ts +33 -7
  172. package/lib/processor.fixedLadder/info.js +19 -6
  173. package/lib/processor.fixedLadder/info.js.map +1 -1
  174. package/lib/processor.fixedLadder/runtime.d.ts +16 -29
  175. package/lib/processor.fixedLadder/runtime.js +16 -1
  176. package/lib/processor.fixedLadder/runtime.js.map +1 -1
  177. package/lib/processor.fixedLadder/types.d.ts +240 -0
  178. package/lib/processor.fixedLadder/types.js +3 -0
  179. package/lib/processor.fixedLadder/types.js.map +1 -0
  180. package/lib/processor.fixedLadder/types.yaml +541 -0
  181. package/lib/processor.onscreenGraphic/info.js +11 -5
  182. package/lib/processor.onscreenGraphic/info.js.map +1 -1
  183. package/lib/processor.onscreenGraphic/runtime.d.ts +27 -2
  184. package/lib/processor.onscreenGraphic/runtime.js +116 -52
  185. package/lib/processor.onscreenGraphic/runtime.js.map +1 -1
  186. package/lib/processor.onscreenGraphic/summary-view.d.ts +1 -1
  187. package/lib/processor.onscreenGraphic/summary-view.js +235 -11
  188. package/lib/processor.onscreenGraphic/summary-view.js.map +1 -1
  189. package/lib/processor.onscreenGraphic/types.d.ts +15 -1
  190. package/lib/processor.onscreenGraphic/types.yaml +63 -14
  191. package/lib/processor.streamKeyOverride/info.d.ts +3 -0
  192. package/lib/processor.streamKeyOverride/info.js +151 -0
  193. package/lib/processor.streamKeyOverride/info.js.map +1 -0
  194. package/lib/processor.streamKeyOverride/runtime.d.ts +55 -0
  195. package/lib/processor.streamKeyOverride/runtime.js +226 -0
  196. package/lib/processor.streamKeyOverride/runtime.js.map +1 -0
  197. package/lib/shared/api.d.ts +35 -0
  198. package/lib/shared/api.js +34 -0
  199. package/lib/shared/api.js.map +1 -0
  200. package/lib/test/auto-cmaf.js +219 -43
  201. package/lib/test/auto-cmaf.js.map +1 -1
  202. package/lib/test/onscreen-graphic.js +79 -42
  203. package/lib/test/onscreen-graphic.js.map +1 -1
  204. package/lib/test/preview.js +69 -64
  205. package/lib/test/preview.js.map +1 -1
  206. package/lib/test/rtmp-input.js +6 -3
  207. package/lib/test/rtmp-input.js.map +1 -1
  208. package/lib/test/rtmp-output.js +105 -1
  209. package/lib/test/rtmp-output.js.map +1 -1
  210. package/lib/test/srt-input-listener.js +331 -0
  211. package/lib/test/srt-input-listener.js.map +1 -1
  212. package/lib/test/srt-output.js +93 -4
  213. package/lib/test/srt-output.js.map +1 -1
  214. package/lib/test/whep-output.js +192 -5
  215. package/lib/test/whep-output.js.map +1 -1
  216. package/lib/util.stats.latency/info.js +1 -0
  217. package/lib/util.stats.latency/info.js.map +1 -1
  218. package/lib/util.stats.latency/runtime.d.ts +1 -0
  219. package/lib/util.stats.latency/runtime.js +2 -2
  220. package/lib/util.stats.latency/runtime.js.map +1 -1
  221. package/package.json +4 -4
  222. package/lib/processor.browserOverlay/openApi.js.map +0 -1
  223. package/lib/processor.whisper-transcribe/info.d.ts +0 -3
  224. package/lib/processor.whisper-transcribe/info.js +0 -44
  225. package/lib/processor.whisper-transcribe/info.js.map +0 -1
  226. package/lib/processor.whisper-transcribe/runtime.d.ts +0 -29
  227. package/lib/processor.whisper-transcribe/runtime.js +0 -83
  228. package/lib/processor.whisper-transcribe/runtime.js.map +0 -1
  229. package/lib/util.stats.ma35d/info.d.ts +0 -3
  230. package/lib/util.stats.ma35d/info.js +0 -79
  231. package/lib/util.stats.ma35d/info.js.map +0 -1
  232. package/lib/util.stats.ma35d/inline-view.d.ts +0 -6
  233. package/lib/util.stats.ma35d/inline-view.js +0 -76
  234. package/lib/util.stats.ma35d/inline-view.js.map +0 -1
  235. package/lib/util.stats.ma35d/runtime.d.ts +0 -21
  236. package/lib/util.stats.ma35d/runtime.js +0 -49
  237. package/lib/util.stats.ma35d/runtime.js.map +0 -1
  238. package/lib/util.timestamps/info.d.ts +0 -5
  239. package/lib/util.timestamps/info.js +0 -87
  240. package/lib/util.timestamps/info.js.map +0 -1
  241. package/lib/util.timestamps/inline-view.d.ts +0 -6
  242. package/lib/util.timestamps/inline-view.js +0 -94
  243. package/lib/util.timestamps/inline-view.js.map +0 -1
  244. package/lib/util.timestamps/runtime.d.ts +0 -29
  245. package/lib/util.timestamps/runtime.js +0 -40
  246. package/lib/util.timestamps/runtime.js.map +0 -1
  247. /package/lib/processor.browserOverlay/{openApi.d.ts → types.d.ts} +0 -0
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  const react_1 = require("react");
5
- function SummaryView({ state, sendCommand, urls }) {
5
+ function SummaryView({ state, sendCommand, urls, }) {
6
6
  const [graphic, setGraphic] = (0, react_1.useState)(state.activeGraphic?.file);
7
- const [position, setPosition] = (0, react_1.useState)(state.activeGraphic?.position);
7
+ const [position, setPosition] = (0, react_1.useState)(state.activeGraphic?.position ?? { type: 'named', position: 'topleft' });
8
8
  const [graphics, setGraphics] = (0, react_1.useState)([]);
9
9
  const [fileToUpload, setFileToUpload] = (0, react_1.useState)(undefined);
10
10
  const [showFileInput, setShowFileInput] = (0, react_1.useState)(false);
@@ -14,7 +14,7 @@ function SummaryView({ state, sendCommand, urls }) {
14
14
  const [graphicToDelete, setGraphicToDelete] = (0, react_1.useState)("");
15
15
  const updateGraphics = (0, react_1.useCallback)(async () => {
16
16
  try {
17
- const result = await fetch(`${urls.componentUrl}/graphics`);
17
+ const result = await fetch(`${urls.staticUrl}/graphics`);
18
18
  if (result.ok) {
19
19
  const newGraphics = (await result.json());
20
20
  setGraphics(newGraphics);
@@ -30,7 +30,7 @@ function SummaryView({ state, sendCommand, urls }) {
30
30
  message: "Failed to update graphic list.",
31
31
  });
32
32
  }
33
- }, [urls.componentUrl]);
33
+ }, [urls.staticUrl]);
34
34
  (0, react_1.useEffect)(() => {
35
35
  updateGraphics().catch(console.error);
36
36
  }, [updateGraphics]);
@@ -40,13 +40,13 @@ function SummaryView({ state, sendCommand, urls }) {
40
40
  setShowUploadButton(!!file);
41
41
  setUploadStatus({ success: false, message: null });
42
42
  };
43
- const uploadFile = async () => {
43
+ const uploadFileHandle = async () => {
44
44
  if (!fileToUpload)
45
45
  return;
46
46
  try {
47
47
  const form = new FormData();
48
48
  form.append("file", fileToUpload);
49
- const response = await fetch(`${urls.componentUrl}/graphics`, {
49
+ const response = await fetch(`${urls.staticUrl}/graphics`, {
50
50
  method: "POST",
51
51
  body: form,
52
52
  });
@@ -76,14 +76,18 @@ function SummaryView({ state, sendCommand, urls }) {
76
76
  }
77
77
  setTimeout(() => setUploadStatus({ success: false, message: null }), 5000);
78
78
  };
79
- const deleteBug = async () => {
79
+ const uploadFile = () => {
80
+ void uploadFileHandle();
81
+ };
82
+ const deleteBugHandle = async () => {
80
83
  if (!graphicToDelete)
81
84
  return;
82
85
  try {
83
- const response = await fetch(`${urls.componentUrl}/graphic`, {
86
+ console.log(`${urls.staticUrl}`);
87
+ const response = await fetch(`${urls.staticUrl}/graphic`, {
84
88
  method: "DELETE",
85
89
  headers: {
86
- 'Content-Type': 'application/json',
90
+ "Content-Type": "application/json",
87
91
  },
88
92
  body: JSON.stringify({ filename: graphicToDelete }),
89
93
  });
@@ -118,11 +122,231 @@ function SummaryView({ state, sendCommand, urls }) {
118
122
  }
119
123
  setTimeout(() => setUploadStatus({ success: false, message: null }), 3000);
120
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);
121
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";
122
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";
123
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";
124
- 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: "Position" }), (0, jsx_runtime_1.jsxs)("select", { id: "select-position", className: "w-full node-editor-select-input", value: position, onChange: (e) => setPosition(e.target.value), 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" })] })] })), (graphic !== state.activeGraphic?.file ||
125
- position !== state.activeGraphic?.position) && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: () => sendCommand({ type: "change-graphic", file: graphic, position }), 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 }))] }));
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 fromLocalPosition(pos) {
151
+ if (pos.type === 'named')
152
+ return { type: pos.type, position: pos.position };
153
+ if (pos.type === 'coordinate')
154
+ return { type: pos.type, x: pos.x, y: pos.y };
155
+ if (pos.type === 'percentage')
156
+ return { type: pos.type, x: pos.x, y: pos.y };
157
+ assertUnreachable(pos);
158
+ }
159
+ function convertPosition(givenPosition, currentVideo, currentGraphic) {
160
+ if (!givenPosition)
161
+ givenPosition = { type: 'named', position: 'topleft' };
162
+ if (givenPosition.type === 'named') {
163
+ let xy;
164
+ if (givenPosition.position === 'topleft') {
165
+ xy = { x: 0, y: 0 };
166
+ }
167
+ else if (givenPosition.position === 'topright') {
168
+ xy = { x: 100, y: 0 };
169
+ }
170
+ else if (givenPosition.position === 'bottomleft') {
171
+ xy = { x: 0, y: 100 };
172
+ }
173
+ else if (givenPosition.position === 'bottomright') {
174
+ xy = { x: 100, y: 100 };
175
+ }
176
+ else if (givenPosition.position === 'center') {
177
+ xy = { x: 50, y: 50 };
178
+ }
179
+ else {
180
+ assertUnreachable(givenPosition.position);
181
+ }
182
+ return { ...givenPosition, ...xy, xPct: xy.x, yPct: xy.y };
183
+ }
184
+ if (givenPosition.type === 'coordinate') {
185
+ if (!currentVideo || !currentGraphic) {
186
+ return { ...givenPosition, xPct: 0, yPct: 0 };
187
+ }
188
+ const { width: videoWidth, height: videoHeight } = currentVideo;
189
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
190
+ const maxX = videoWidth - graphicWidth;
191
+ const maxY = videoHeight - graphicHeight;
192
+ return {
193
+ ...givenPosition,
194
+ x: clamp(0, givenPosition.x, maxX),
195
+ xPct: clamp(0, givenPosition.x * 100 / maxX, 100),
196
+ y: clamp(0, givenPosition.y, maxY),
197
+ yPct: clamp(0, givenPosition.y * 100 / maxY, 100),
198
+ };
199
+ }
200
+ return { ...givenPosition, xPct: givenPosition.x, yPct: givenPosition.y };
201
+ }
202
+ const PositionSelector = ({ initialPosition: givenPosition = { type: 'named', position: 'topleft' }, onChange, currentVideo, currentGraphic, graphicChanged, }) => {
203
+ const convertPos = (pos) => convertPosition(pos, currentVideo, currentGraphic);
204
+ const initialPosition = convertPos(givenPosition);
205
+ const [position, setLocalPosition] = (0, react_1.useState)(initialPosition);
206
+ const setPosition = (v) => { setLocalPosition(v); onChange(fromLocalPosition(v)); };
207
+ const [positionUnit, setPositionUnit] = (0, react_1.useState)(position.type === 'coordinate' ? "px" : "%");
208
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
209
+ const [dragStart, setDragStart] = (0, react_1.useState)({ xPct: 0, yPct: 0, cx: 0, cy: 0 });
210
+ const previewAreaRef = (0, react_1.useRef)(null);
211
+ const previewTargetRef = (0, react_1.useRef)(null);
212
+ const handleMouseDown = (e) => {
213
+ setIsDragging(true);
214
+ setDragStart({
215
+ ...position,
216
+ cx: e.clientX,
217
+ cy: e.clientY,
218
+ });
219
+ handleMouseMove(e);
220
+ };
221
+ const handleMouseMove = (e) => {
222
+ if (!isDragging)
223
+ return;
224
+ const boundingBox = previewAreaRef.current?.getBoundingClientRect() ?? { width: 0, height: 0 };
225
+ const bbTarget = previewTargetRef.current?.getBoundingClientRect() ?? { width: 0, height: 0 };
226
+ const clientWidth = boundingBox.width - bbTarget.width;
227
+ const clientHeight = boundingBox.height - bbTarget.height;
228
+ const newX = clamp(0, dragStart.xPct + (e.clientX - dragStart.cx) * (100 / clientWidth), 100);
229
+ const newY = clamp(0, dragStart.yPct + (e.clientY - dragStart.cy) * (100 / clientHeight), 100);
230
+ if (positionUnit === 'px' && currentVideo && currentGraphic) {
231
+ const { width: videoWidth, height: videoHeight } = currentVideo;
232
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
233
+ const maxX = videoWidth - graphicWidth;
234
+ const maxY = videoHeight - graphicHeight;
235
+ setPosition({
236
+ type: 'coordinate',
237
+ x: newX * maxX / 100,
238
+ y: newY * maxY / 100,
239
+ xPct: newX,
240
+ yPct: newY,
241
+ });
242
+ }
243
+ else {
244
+ setPosition({
245
+ type: 'percentage',
246
+ x: newX,
247
+ y: newY,
248
+ xPct: newX,
249
+ yPct: newY,
250
+ });
251
+ }
252
+ };
253
+ const handleMouseUp = () => {
254
+ setIsDragging(false);
255
+ };
256
+ (0, react_1.useEffect)(() => {
257
+ if (isDragging) {
258
+ window.addEventListener("mousemove", handleMouseMove);
259
+ window.addEventListener("mouseup", handleMouseUp);
260
+ }
261
+ return () => {
262
+ window.removeEventListener("mousemove", handleMouseMove);
263
+ window.removeEventListener("mouseup", handleMouseUp);
264
+ };
265
+ }, [isDragging]);
266
+ 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) => {
267
+ const newType = e.target.value;
268
+ if (newType === 'named') {
269
+ setPosition(convertPos({ type: 'named', position: 'topleft' }));
270
+ }
271
+ else {
272
+ setPositionUnit("%");
273
+ setPosition({ ...convertPos(position), type: 'percentage' });
274
+ }
275
+ }, 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) => {
276
+ setPosition(convertPos({
277
+ type: 'named',
278
+ position: e.target.value
279
+ }));
280
+ }, 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) => {
281
+ setPositionUnit(e.target.value);
282
+ if (e.target.value === 'px' && position.type !== 'coordinate' && currentVideo && currentGraphic) {
283
+ const { width: videoWidth, height: videoHeight } = currentVideo;
284
+ const { width: graphicWidth, height: graphicHeight } = currentGraphic;
285
+ const maxX = videoWidth - graphicWidth;
286
+ const maxY = videoHeight - graphicHeight;
287
+ setPosition({
288
+ ...position,
289
+ type: 'coordinate',
290
+ x: position.xPct * maxX / 100,
291
+ y: position.yPct * maxY / 100,
292
+ xStr: undefined,
293
+ yStr: undefined,
294
+ });
295
+ }
296
+ else if (e.target.value === "%") {
297
+ setPosition({
298
+ ...position,
299
+ type: 'percentage',
300
+ x: position.xPct,
301
+ y: position.yPct,
302
+ xStr: undefined,
303
+ yStr: undefined,
304
+ });
305
+ }
306
+ }, 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: {
307
+ width: "100%",
308
+ userSelect: "none",
309
+ aspectRatio: currentVideo ? `${currentVideo.width} / ${currentVideo.height}` : `3 / 2`
310
+ }, 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
311
+ ${isDragging ? "bg-opacity-75" : ""}`, style: {
312
+ left: `${position.xPct}%`,
313
+ top: `${position.yPct}%`,
314
+ transform: `translate(-${position.xPct}%, -${position.yPct}%)`,
315
+ aspectRatio: currentGraphic && !graphicChanged ? `${currentGraphic.width} / ${currentGraphic.height}` : `1`,
316
+ width: currentGraphic && currentVideo && !graphicChanged ? (currentGraphic.width / currentVideo.width * 100) + "%" : undefined,
317
+ }, 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'
318
+ ? `${position.xPct.toFixed(1)}%, ${position.yPct.toFixed(1)}%`
319
+ : `${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 ??
320
+ (positionUnit === "%"
321
+ ? position.xPct.toFixed(1)
322
+ : Math.round(position.x)), onChange: (e) => {
323
+ const newX = Number(e.target.value);
324
+ setPosition(convertPos({
325
+ type: positionUnit === "%" ? 'percentage' : 'coordinate',
326
+ x: newX,
327
+ xStr: e.target.value,
328
+ y: position.y,
329
+ yStr: position.yStr,
330
+ }));
331
+ }, 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 ??
332
+ (positionUnit === "%"
333
+ ? position.yPct.toFixed(1)
334
+ : Math.round(position.y)), onChange: (e) => {
335
+ const newY = Number(e.target.value);
336
+ setPosition(convertPos({
337
+ type: positionUnit === "%" ? 'percentage' : 'coordinate',
338
+ x: position.x,
339
+ xStr: position.xStr,
340
+ y: newY,
341
+ yStr: e.target.value,
342
+ }));
343
+ }, 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" })] })] })] }))] }));
344
+ };
345
+ function clamp(min, num, max) {
346
+ return num < min ? min : num > max ? max : num;
347
+ }
348
+ function assertUnreachable(_) {
349
+ throw new Error("Didn't expect to get here");
126
350
  }
127
351
  exports.default = SummaryView;
128
352
  //# sourceMappingURL=summary-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/summary-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/summary-view.tsx"],"names":[],"mappings":"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"}
@@ -235,8 +235,22 @@ export interface paths {
235
235
  export type webhooks = Record<string, never>;
236
236
  export interface components {
237
237
  schemas: {
238
- position: "topleft" | "topright" | "bottomleft" | "bottomright";
239
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"];
240
254
  config: {
241
255
  graphic?: components["schemas"]["graphic"];
242
256
  position?: components["schemas"]["position"];
@@ -72,7 +72,6 @@ paths:
72
72
  description: The specified graphic was not found
73
73
  500:
74
74
  description: Failed to delete the graphic
75
-
76
75
  # Component instance paths (available at runtime only)
77
76
  /active-graphic:
78
77
  get:
@@ -121,23 +120,72 @@ paths:
121
120
  description: The active graphic was successfully hidden
122
121
  404:
123
122
  description: Component not found
124
-
125
-
126
123
  components:
127
124
  schemas:
128
- position:
129
- type: string
130
- description: Where the graphic is to be displayed
131
- example: "topright"
132
- enum:
133
- - topleft
134
- - topright
135
- - bottomleft
136
- - bottomright
137
125
  graphic:
138
126
  type: string
139
127
  description: The name of the image file
140
128
  example: Norsk.png
129
+
130
+ coordinatePosition:
131
+ type: object
132
+ properties:
133
+ type:
134
+ type: string
135
+ enum: ['coordinate']
136
+ x:
137
+ type: number
138
+ description: X coordinate position (pixels)
139
+ minimum: 0
140
+ y:
141
+ type: number
142
+ description: Y coordinate position (pixels)
143
+ minimum: 0
144
+ required:
145
+ - type
146
+ - x
147
+ - y
148
+
149
+ percentagePosition:
150
+ type: object
151
+ properties:
152
+ type:
153
+ type: string
154
+ enum: ['percentage']
155
+ x:
156
+ type: number
157
+ description: X coordinate percentage
158
+ minimum: 0
159
+ maximum: 100
160
+ y:
161
+ type: number
162
+ description: Y coordinate percentage
163
+ minimum: 0
164
+ maximum: 100
165
+ required:
166
+ - type
167
+ - x
168
+ - y
169
+
170
+ namedPosition:
171
+ type: object
172
+ properties:
173
+ type:
174
+ type: string
175
+ enum: ['named']
176
+ position:
177
+ type: string
178
+ enum: [topleft, topright, bottomleft, bottomright, center]
179
+ description: Named position for the graphic
180
+ required:
181
+ - type
182
+ - position
183
+
184
+ position:
185
+ oneOf:
186
+ - $ref: '#/components/schemas/coordinatePosition'
187
+ - $ref: '#/components/schemas/namedPosition'
188
+
141
189
  config:
142
190
  type: object
143
191
  description: The configuration for the onscreen graphic
@@ -146,9 +194,11 @@ components:
146
194
  $ref: "#/components/schemas/graphic"
147
195
  position:
148
196
  $ref: "#/components/schemas/position"
197
+
149
198
  emptyObject:
150
199
  type: object
151
200
  example: {}
201
+
152
202
  errorResponse:
153
203
  type: object
154
204
  description: Details of why the request failed
@@ -158,5 +208,4 @@ components:
158
208
  description: A description of the error
159
209
  details:
160
210
  type: string
161
- description: The unacceptable data
162
-
211
+ description: The unacceptable data
@@ -0,0 +1,3 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ import type { StreamKeyOverrideConfig } from "./runtime";
3
+ export default function ({ defineComponent, All, validation: { Z }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<StreamKeyOverrideConfig, object, object, object>;