@norskvideo/norsk-studio-built-ins 1.27.0-2025-03-27-419657f2 → 1.27.0-2025-03-27-1a33b215
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/info.js +205 -148
- package/lib/output.rtmp/info.js +8 -1
- package/lib/output.rtmp/info.js.map +1 -1
- package/lib/output.rtmp/inline-view.js +5 -1
- package/lib/output.rtmp/inline-view.js.map +1 -1
- package/lib/output.rtmp/runtime.d.ts +6 -0
- package/lib/output.rtmp/runtime.js +8 -0
- package/lib/output.rtmp/runtime.js.map +1 -1
- package/lib/output.srt-caller/info.js +6 -1
- package/lib/output.srt-caller/info.js.map +1 -1
- package/lib/output.srt-caller/inline-view.js +5 -1
- package/lib/output.srt-caller/inline-view.js.map +1 -1
- package/lib/output.srt-caller/runtime.d.ts +5 -0
- package/lib/output.srt-caller/runtime.js +5 -0
- package/lib/output.srt-caller/runtime.js.map +1 -1
- package/lib/output.srt-listener/info.js +6 -1
- package/lib/output.srt-listener/info.js.map +1 -1
- package/lib/output.srt-listener/inline-view.d.ts +3 -4
- package/lib/output.srt-listener/inline-view.js +5 -1
- package/lib/output.srt-listener/inline-view.js.map +1 -1
- package/lib/output.srt-listener/runtime.d.ts +5 -0
- package/lib/output.srt-listener/runtime.js +5 -0
- package/lib/output.srt-listener/runtime.js.map +1 -1
- package/lib/output.udpTs/info.d.ts +2 -2
- package/lib/output.udpTs/info.js +24 -0
- package/lib/output.udpTs/info.js.map +1 -1
- package/lib/output.udpTs/inline-view.d.ts +6 -0
- package/lib/output.udpTs/inline-view.js +12 -0
- package/lib/output.udpTs/inline-view.js.map +1 -0
- package/lib/output.udpTs/runtime.d.ts +25 -5
- package/lib/output.udpTs/runtime.js +36 -4
- package/lib/output.udpTs/runtime.js.map +1 -1
- package/lib/shared/jitter-buffer-inline.d.ts +15 -0
- package/lib/shared/jitter-buffer-inline.js +26 -0
- package/lib/shared/jitter-buffer-inline.js.map +1 -0
- package/lib/shared/stream-statistics-view.d.ts +1 -1
- package/lib/shared/stream-statistics-view.js +9 -41
- package/lib/shared/stream-statistics-view.js.map +1 -1
- package/lib/test/udp-output.js +1 -1
- package/lib/test/udp-output.js.map +1 -1
- package/package.json +2 -2
package/client/info.js
CHANGED
@@ -338,7 +338,7 @@ var require_util = __commonJS({
|
|
338
338
|
exports.getObjectByType = getObjectByType;
|
339
339
|
exports.getObjectByPath = getObjectByPath;
|
340
340
|
exports.displayNodeId = displayNodeId;
|
341
|
-
exports.assertUnreachable =
|
341
|
+
exports.assertUnreachable = assertUnreachable18;
|
342
342
|
exports.waitForCondition = waitForCondition;
|
343
343
|
exports.streamMatchesExpected = streamMatchesExpected;
|
344
344
|
exports.shortStreamNameFromDefinition = shortStreamNameFromDefinition;
|
@@ -408,7 +408,7 @@ var require_util = __commonJS({
|
|
408
408
|
}
|
409
409
|
return document2.components[id]?.config?.displayName ?? id;
|
410
410
|
}
|
411
|
-
function
|
411
|
+
function assertUnreachable18(_) {
|
412
412
|
throw new Error("Didn't expect to get here");
|
413
413
|
}
|
414
414
|
async function waitForCondition(condition, timeout, interval) {
|
@@ -5226,7 +5226,7 @@ var require_client_types = __commonJS({
|
|
5226
5226
|
return mod && mod.__esModule ? mod : { "default": mod };
|
5227
5227
|
};
|
5228
5228
|
Object.defineProperty(exports, "__esModule", { value: true });
|
5229
|
-
exports.RegistrationConsts = exports.singleAvStreamMappingForm = exports.Subtitle = exports.Playlist = exports.Video = exports.Audio = exports.Av = exports.All = void 0;
|
5229
|
+
exports.RegistrationConsts = exports.singleAvStreamMappingForm = exports.ChartingConsts = exports.Subtitle = exports.Playlist = exports.Video = exports.Audio = exports.Av = exports.All = void 0;
|
5230
5230
|
exports.subscriptionMedia = subscriptionMedia;
|
5231
5231
|
exports.outputMedia = outputMedia;
|
5232
5232
|
exports.simpleToMedia = simpleToMedia;
|
@@ -5288,6 +5288,40 @@ var require_client_types = __commonJS({
|
|
5288
5288
|
(0, util_1.assertUnreachable)(t);
|
5289
5289
|
}
|
5290
5290
|
}
|
5291
|
+
exports.ChartingConsts = {
|
5292
|
+
colours: [
|
5293
|
+
"#FF6384",
|
5294
|
+
"#36A2EB",
|
5295
|
+
"#FFCE56",
|
5296
|
+
"#4BC0C0",
|
5297
|
+
"#9966FF",
|
5298
|
+
"#FF9F40",
|
5299
|
+
"#FF8A80",
|
5300
|
+
"#82B1FF",
|
5301
|
+
"#B9F6CA",
|
5302
|
+
"#FFFF8D",
|
5303
|
+
"#84FFFF",
|
5304
|
+
"#B388FF",
|
5305
|
+
"#EA80FC",
|
5306
|
+
"#FFD180",
|
5307
|
+
"#A7FFEB",
|
5308
|
+
"#CCFF90"
|
5309
|
+
],
|
5310
|
+
dark: {
|
5311
|
+
line: "#00c3ff",
|
5312
|
+
background: "rgba(0, 195, 255, 0.1)",
|
5313
|
+
grid: "rgba(68, 68, 68, 0.5)",
|
5314
|
+
text: "#888",
|
5315
|
+
tooltip: "rgba(0, 0, 0, 0.8)"
|
5316
|
+
},
|
5317
|
+
light: {
|
5318
|
+
line: "#007bff",
|
5319
|
+
background: "rgba(0, 123, 255, 0.1)",
|
5320
|
+
grid: "rgba(0, 0, 0, 0.1)",
|
5321
|
+
text: "#333",
|
5322
|
+
tooltip: "rgba(255, 255, 255, 0.9)"
|
5323
|
+
}
|
5324
|
+
};
|
5291
5325
|
function discriminatedForm3(setup) {
|
5292
5326
|
const options = Object.keys(setup).map((k) => ({
|
5293
5327
|
key: k,
|
@@ -20364,41 +20398,9 @@ function displayStreamKey(streamKey2) {
|
|
20364
20398
|
return `${streamKey2.sourceName}-${streamKey2.programNumber}-${streamKey2.streamId}-${streamKey2.renditionName}`;
|
20365
20399
|
}
|
20366
20400
|
Chart.register(...registerables);
|
20367
|
-
function MetricsView2({ metrics, config }) {
|
20368
|
-
const isDarkMode =
|
20369
|
-
const
|
20370
|
-
"#FF6384",
|
20371
|
-
"#36A2EB",
|
20372
|
-
"#FFCE56",
|
20373
|
-
"#4BC0C0",
|
20374
|
-
"#9966FF",
|
20375
|
-
"#FF9F40",
|
20376
|
-
"#FF8A80",
|
20377
|
-
"#82B1FF",
|
20378
|
-
"#B9F6CA",
|
20379
|
-
"#FFFF8D",
|
20380
|
-
"#84FFFF",
|
20381
|
-
"#B388FF",
|
20382
|
-
"#EA80FC",
|
20383
|
-
"#FFD180",
|
20384
|
-
"#A7FFEB",
|
20385
|
-
"#CCFF90"
|
20386
|
-
];
|
20387
|
-
const darkModeColors = {
|
20388
|
-
lineColor: "#00c3ff",
|
20389
|
-
backgroundColor: "rgba(0, 195, 255, 0.1)",
|
20390
|
-
gridColor: "rgba(68, 68, 68, 0.5)",
|
20391
|
-
textColor: "#888",
|
20392
|
-
tooltipBg: "rgba(0, 0, 0, 0.8)"
|
20393
|
-
};
|
20394
|
-
const lightModeColors = {
|
20395
|
-
lineColor: "#007bff",
|
20396
|
-
backgroundColor: "rgba(0, 123, 255, 0.1)",
|
20397
|
-
gridColor: "rgba(0, 0, 0, 0.1)",
|
20398
|
-
textColor: "#333",
|
20399
|
-
tooltipBg: "rgba(255, 255, 255, 0.9)"
|
20400
|
-
};
|
20401
|
-
const themeColors = isDarkMode ? darkModeColors : lightModeColors;
|
20401
|
+
function MetricsView2({ metrics, config, global, charting }) {
|
20402
|
+
const { isDarkMode } = global;
|
20403
|
+
const themeColors = isDarkMode ? charting.dark : charting.light;
|
20402
20404
|
const cpuChartOptions = {
|
20403
20405
|
responsive: false,
|
20404
20406
|
maintainAspectRatio: false,
|
@@ -20439,7 +20441,7 @@ function MetricsView2({ metrics, config }) {
|
|
20439
20441
|
// font: { size: 11 },
|
20440
20442
|
// },
|
20441
20443
|
grid: {
|
20442
|
-
color: themeColors.
|
20444
|
+
color: themeColors.grid,
|
20443
20445
|
drawTicks: false
|
20444
20446
|
},
|
20445
20447
|
border: { display: false },
|
@@ -20466,10 +20468,10 @@ function MetricsView2({ metrics, config }) {
|
|
20466
20468
|
return `${seconds} second${seconds !== 1 ? "s" : ""} ago`;
|
20467
20469
|
}
|
20468
20470
|
},
|
20469
|
-
backgroundColor: themeColors.
|
20470
|
-
titleColor: themeColors.
|
20471
|
-
bodyColor: themeColors.
|
20472
|
-
borderColor: themeColors.
|
20471
|
+
backgroundColor: themeColors.tooltip,
|
20472
|
+
titleColor: themeColors.line,
|
20473
|
+
bodyColor: themeColors.text,
|
20474
|
+
borderColor: themeColors.line,
|
20473
20475
|
borderWidth: 1,
|
20474
20476
|
padding: 10
|
20475
20477
|
}
|
@@ -20504,7 +20506,7 @@ function MetricsView2({ metrics, config }) {
|
|
20504
20506
|
const bitrates = {
|
20505
20507
|
labels: Array(50).fill(null).map((_, index2) => index2),
|
20506
20508
|
datasets: allBitrates.map((b, i) => {
|
20507
|
-
return createInitialDataset(`${displayStreamKey(b.streamKey)}`,
|
20509
|
+
return createInitialDataset(`${displayStreamKey(b.streamKey)}`, charting.colours[i], b.history[0]?.value ?? 0);
|
20508
20510
|
})
|
20509
20511
|
};
|
20510
20512
|
allBitrates.forEach((b, bi) => {
|
@@ -21363,14 +21365,25 @@ function SummaryView4({ state, sendCommand }) {
|
|
21363
21365
|
var summary_view_default4 = SummaryView4;
|
21364
21366
|
|
21365
21367
|
// build/output.rtmp/inline-view.js
|
21368
|
+
var import_jsx_runtime16 = __toESM(require_jsx_runtime());
|
21369
|
+
|
21370
|
+
// build/shared/jitter-buffer-inline.js
|
21366
21371
|
var import_jsx_runtime15 = __toESM(require_jsx_runtime());
|
21372
|
+
function initialJitterBufferState() {
|
21373
|
+
return { target: 0, value: 0, percentage: 0 };
|
21374
|
+
}
|
21375
|
+
function JitterBufferInline(jb) {
|
21376
|
+
return (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: (0, import_jsx_runtime15.jsxs)("div", { children: ["Buffer: ", (0, import_jsx_runtime15.jsx)("meter", { value: jb.percentage, max: 100, high: 50, low: 25 })] }) });
|
21377
|
+
}
|
21378
|
+
|
21379
|
+
// build/output.rtmp/inline-view.js
|
21367
21380
|
function InlineView5({ state, config }) {
|
21368
21381
|
if (!state.enabled) {
|
21369
|
-
return (0,
|
21382
|
+
return (0, import_jsx_runtime16.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" });
|
21370
21383
|
}
|
21371
|
-
const connected = (0,
|
21372
|
-
const disconnected = (0,
|
21373
|
-
return (0,
|
21384
|
+
const connected = (0, import_jsx_runtime16.jsxs)("div", { children: [(0, import_jsx_runtime16.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected and publishing" }), (0, import_jsx_runtime16.jsx)(JitterBufferInline, { ...state.jitterBuffer })] });
|
21385
|
+
const disconnected = (0, import_jsx_runtime16.jsxs)("div", { className: "inactive text-orange-500 dark:text-orange-300", children: ["Disconnected ", state.connectRetries > 0 ? `- retrying(${state.connectRetries})` : ""] });
|
21386
|
+
return (0, import_jsx_runtime16.jsx)("div", { className: "rtmp-output", id: `rtmp-output-${config.id}`, children: state.connected ? connected : disconnected });
|
21374
21387
|
}
|
21375
21388
|
var inline_view_default5 = InlineView5;
|
21376
21389
|
|
@@ -21414,7 +21427,12 @@ function defineRtmpOutputComponent({ defineComponent }, settings) {
|
|
21414
21427
|
};
|
21415
21428
|
},
|
21416
21429
|
runtime: {
|
21417
|
-
initialState: () => ({
|
21430
|
+
initialState: () => ({
|
21431
|
+
connected: false,
|
21432
|
+
connectRetries: 0,
|
21433
|
+
enabled: true,
|
21434
|
+
jitterBuffer: initialJitterBufferState()
|
21435
|
+
}),
|
21418
21436
|
handleEvent: (ev, state) => {
|
21419
21437
|
const evType = ev.type;
|
21420
21438
|
switch (evType) {
|
@@ -21431,6 +21449,9 @@ function defineRtmpOutputComponent({ defineComponent }, settings) {
|
|
21431
21449
|
case "output-disabled":
|
21432
21450
|
state.enabled = false;
|
21433
21451
|
break;
|
21452
|
+
case "jitter-buffer-updated":
|
21453
|
+
state.jitterBuffer = ev.buffer;
|
21454
|
+
break;
|
21434
21455
|
default:
|
21435
21456
|
assertUnreachable5(evType);
|
21436
21457
|
}
|
@@ -21509,7 +21530,7 @@ function info_default11(r) {
|
|
21509
21530
|
var import_config2 = __toESM(require_config());
|
21510
21531
|
|
21511
21532
|
// build/output.preview/inline-view.js
|
21512
|
-
var
|
21533
|
+
var import_jsx_runtime17 = __toESM(require_jsx_runtime());
|
21513
21534
|
var import_react3 = __toESM(require_react());
|
21514
21535
|
var import_webrtc_client = __toESM(require_webrtc_client());
|
21515
21536
|
function InlineView6({ state, config, raise }) {
|
@@ -21577,7 +21598,7 @@ function InlineView6({ state, config, raise }) {
|
|
21577
21598
|
}, [config.showPreview]);
|
21578
21599
|
raise && (0, import_react3.useEffect)(raise, []);
|
21579
21600
|
if (!url)
|
21580
|
-
return (0,
|
21601
|
+
return (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children: "..." });
|
21581
21602
|
function percentage(levels) {
|
21582
21603
|
if (!levels) {
|
21583
21604
|
return 0;
|
@@ -21587,9 +21608,9 @@ function InlineView6({ state, config, raise }) {
|
|
21587
21608
|
const snapped = Math.floor(capped * 10) * 10;
|
21588
21609
|
return Math.max(0, 100 - snapped);
|
21589
21610
|
}
|
21590
|
-
return (0,
|
21611
|
+
return (0, import_jsx_runtime17.jsxs)("div", { className: "preview-outer-container", children: [(0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, import_jsx_runtime17.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime17.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), showPreview ? (0, import_jsx_runtime17.jsx)("div", { className: "preview-video", id: `preview-${id}`, children: (0, import_jsx_runtime17.jsx)("style", { children: `
|
21591
21612
|
#preview-${id} video::-webkit-media-controls-play-button { display: none; },
|
21592
|
-
` }) }) : (0,
|
21613
|
+
` }) }) : (0, import_jsx_runtime17.jsx)("div", { className: "preview-video bg-black flex items-center justify-center text-white h-full", children: "Preview turned off" }), (0, import_jsx_runtime17.jsx)("div", { className: "preview-levels", children: (0, import_jsx_runtime17.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}-preview` }) })] });
|
21593
21614
|
}
|
21594
21615
|
var inline_view_default6 = InlineView6;
|
21595
21616
|
|
@@ -21676,7 +21697,7 @@ function assertUnreachable6(_) {
|
|
21676
21697
|
var import_util2 = __toESM(require_util());
|
21677
21698
|
|
21678
21699
|
// build/output.srt-caller/summary-view.js
|
21679
|
-
var
|
21700
|
+
var import_jsx_runtime18 = __toESM(require_jsx_runtime());
|
21680
21701
|
function SummaryView5({ state, sendCommand }) {
|
21681
21702
|
const handleEnableOutput = () => {
|
21682
21703
|
void enableOutput();
|
@@ -21694,14 +21715,14 @@ function SummaryView5({ state, sendCommand }) {
|
|
21694
21715
|
type: "disable-output"
|
21695
21716
|
});
|
21696
21717
|
};
|
21697
|
-
return (0,
|
21718
|
+
return (0, import_jsx_runtime18.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime18.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime18.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime18.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime18.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime18.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
|
21698
21719
|
}
|
21699
21720
|
var summary_view_default5 = SummaryView5;
|
21700
21721
|
|
21701
21722
|
// build/output.srt-caller/inline-view.js
|
21702
|
-
var
|
21723
|
+
var import_jsx_runtime19 = __toESM(require_jsx_runtime());
|
21703
21724
|
function InlineView7({ state }) {
|
21704
|
-
return (0,
|
21725
|
+
return (0, import_jsx_runtime19.jsx)("div", { className: "srt-output", children: state.enabled ? (0, import_jsx_runtime19.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime19.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [(0, import_jsx_runtime19.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected" }), (0, import_jsx_runtime19.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }), (0, import_jsx_runtime19.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] }), (0, import_jsx_runtime19.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) }) : (0, import_jsx_runtime19.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
|
21705
21726
|
}
|
21706
21727
|
var inline_view_default7 = InlineView7;
|
21707
21728
|
|
@@ -21739,7 +21760,8 @@ function info_default13(registration) {
|
|
21739
21760
|
packetsResent: 0,
|
21740
21761
|
packetsSent: 0,
|
21741
21762
|
packetsReceived: 0
|
21742
|
-
}
|
21763
|
+
},
|
21764
|
+
jitterBuffer: initialJitterBufferState()
|
21743
21765
|
}),
|
21744
21766
|
handleEvent(ev, state) {
|
21745
21767
|
const evType = ev.type;
|
@@ -21753,6 +21775,9 @@ function info_default13(registration) {
|
|
21753
21775
|
case "metrics-updated":
|
21754
21776
|
state.metrics = ev.metrics;
|
21755
21777
|
break;
|
21778
|
+
case "jitter-buffer-updated":
|
21779
|
+
state.jitterBuffer = ev.buffer;
|
21780
|
+
break;
|
21756
21781
|
default:
|
21757
21782
|
(0, import_util2.assertUnreachable)(evType);
|
21758
21783
|
}
|
@@ -21803,7 +21828,7 @@ function info_default13(registration) {
|
|
21803
21828
|
var import_util3 = __toESM(require_util());
|
21804
21829
|
|
21805
21830
|
// build/output.srt-listener/summary-view.js
|
21806
|
-
var
|
21831
|
+
var import_jsx_runtime20 = __toESM(require_jsx_runtime());
|
21807
21832
|
function SummaryView6({ state, sendCommand }) {
|
21808
21833
|
const handleEnableOutput = () => {
|
21809
21834
|
void enableOutput();
|
@@ -21821,14 +21846,14 @@ function SummaryView6({ state, sendCommand }) {
|
|
21821
21846
|
type: "disable-output"
|
21822
21847
|
});
|
21823
21848
|
};
|
21824
|
-
return (0,
|
21849
|
+
return (0, import_jsx_runtime20.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime20.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime20.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime20.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime20.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime20.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
|
21825
21850
|
}
|
21826
21851
|
var summary_view_default6 = SummaryView6;
|
21827
21852
|
|
21828
21853
|
// build/output.srt-listener/inline-view.js
|
21829
|
-
var
|
21854
|
+
var import_jsx_runtime21 = __toESM(require_jsx_runtime());
|
21830
21855
|
function InlineView8({ state }) {
|
21831
|
-
return (0,
|
21856
|
+
return (0, import_jsx_runtime21.jsx)("div", { className: "srt-output", children: state.enabled ? state.metrics.connectionCount == 0 ? (0, import_jsx_runtime21.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "No connections" }) : (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [(0, import_jsx_runtime21.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }), (0, import_jsx_runtime21.jsxs)("div", { children: ["Connections: ", state.metrics.connectionCount] }), (0, import_jsx_runtime21.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime21.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost.reduce((a, i) => a + i, 0), "/", state.metrics.packetsResent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime21.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) : (0, import_jsx_runtime21.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
|
21832
21857
|
}
|
21833
21858
|
var inline_view_default8 = InlineView8;
|
21834
21859
|
|
@@ -21864,7 +21889,8 @@ function info_default14(registration) {
|
|
21864
21889
|
packetsResent: [],
|
21865
21890
|
packetsSent: [],
|
21866
21891
|
packetsReceived: []
|
21867
|
-
}
|
21892
|
+
},
|
21893
|
+
jitterBuffer: initialJitterBufferState()
|
21868
21894
|
}),
|
21869
21895
|
handleEvent(ev, state) {
|
21870
21896
|
const evType = ev.type;
|
@@ -21878,6 +21904,9 @@ function info_default14(registration) {
|
|
21878
21904
|
case "metrics-updated":
|
21879
21905
|
state.metrics = ev.metrics;
|
21880
21906
|
break;
|
21907
|
+
case "jitter-buffer-updated":
|
21908
|
+
state.jitterBuffer = ev.buffer;
|
21909
|
+
break;
|
21881
21910
|
default:
|
21882
21911
|
(0, import_util3.assertUnreachable)(evType);
|
21883
21912
|
}
|
@@ -21926,26 +21955,26 @@ function info_default14(registration) {
|
|
21926
21955
|
}
|
21927
21956
|
|
21928
21957
|
// build/output.statistics/inline-view.js
|
21929
|
-
var
|
21958
|
+
var import_jsx_runtime22 = __toESM(require_jsx_runtime());
|
21930
21959
|
function InlineView9({ state }) {
|
21931
21960
|
if (!state.previous)
|
21932
|
-
return (0,
|
21961
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});
|
21933
21962
|
const format = (stat) => Math.floor(stat).toLocaleString("en-US", { maximumFractionDigits: 0 });
|
21934
|
-
return (0,
|
21963
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, { children: state.previous.allStreams.map((s, i) => {
|
21935
21964
|
const metaCase = s.metadata.case;
|
21936
21965
|
switch (metaCase) {
|
21937
21966
|
case "audio":
|
21938
|
-
return (0,
|
21967
|
+
return (0, import_jsx_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime22.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
|
21939
21968
|
case "video":
|
21940
|
-
return (0,
|
21969
|
+
return (0, import_jsx_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime22.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
|
21941
21970
|
case "ancillary":
|
21942
|
-
return (0,
|
21971
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});
|
21943
21972
|
case "subtitle":
|
21944
|
-
return (0,
|
21973
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});
|
21945
21974
|
case "playlist":
|
21946
|
-
return (0,
|
21975
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});
|
21947
21976
|
case void 0:
|
21948
|
-
return (0,
|
21977
|
+
return (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, {});
|
21949
21978
|
default:
|
21950
21979
|
assertUnreachable9(metaCase);
|
21951
21980
|
}
|
@@ -22031,7 +22060,17 @@ function info_default16(r) {
|
|
22031
22060
|
}
|
22032
22061
|
|
22033
22062
|
// build/output.udpTs/info.js
|
22063
|
+
var import_util4 = __toESM(require_util());
|
22034
22064
|
var import_FaNetworkWired2 = __toESM(require_FaNetworkWired());
|
22065
|
+
|
22066
|
+
// build/output.udpTs/inline-view.js
|
22067
|
+
var import_jsx_runtime23 = __toESM(require_jsx_runtime());
|
22068
|
+
function InlineView10({ state }) {
|
22069
|
+
return (0, import_jsx_runtime23.jsx)("div", { className: "srt-output", children: (0, import_jsx_runtime23.jsx)("div", { children: (0, import_jsx_runtime23.jsx)(JitterBufferInline, { ...state.jitterBuffer }) }) });
|
22070
|
+
}
|
22071
|
+
var inline_view_default10 = InlineView10;
|
22072
|
+
|
22073
|
+
// build/output.udpTs/info.js
|
22035
22074
|
function info_default17({ defineComponent, All, validation: { Port, Hostname, JitterBuffer, Iface, Z } }) {
|
22036
22075
|
return defineComponent({
|
22037
22076
|
identifier: "output.udpTs",
|
@@ -22046,6 +22085,24 @@ function info_default17({ defineComponent, All, validation: { Port, Hostname, Ji
|
|
22046
22085
|
streams: () => All.map((media) => ({ media }))
|
22047
22086
|
}
|
22048
22087
|
},
|
22088
|
+
runtime: {
|
22089
|
+
initialState: () => ({
|
22090
|
+
jitterBuffer: initialJitterBufferState()
|
22091
|
+
}),
|
22092
|
+
handleEvent(ev, state) {
|
22093
|
+
const evType = ev.type;
|
22094
|
+
switch (evType) {
|
22095
|
+
case "jitter-buffer-updated":
|
22096
|
+
state.jitterBuffer = ev.buffer;
|
22097
|
+
break;
|
22098
|
+
default:
|
22099
|
+
(0, import_util4.assertUnreachable)(evType);
|
22100
|
+
}
|
22101
|
+
return { ...state };
|
22102
|
+
},
|
22103
|
+
inline: inline_view_default10,
|
22104
|
+
metrics: []
|
22105
|
+
},
|
22049
22106
|
display: (desc) => {
|
22050
22107
|
return {
|
22051
22108
|
port: desc.config.port.toString(),
|
@@ -22073,10 +22130,10 @@ function info_default17({ defineComponent, All, validation: { Port, Hostname, Ji
|
|
22073
22130
|
var import_config3 = __toESM(require_config());
|
22074
22131
|
|
22075
22132
|
// build/output.whep/inline-view.js
|
22076
|
-
var
|
22133
|
+
var import_jsx_runtime24 = __toESM(require_jsx_runtime());
|
22077
22134
|
var import_react4 = __toESM(require_react());
|
22078
22135
|
var import_webrtc_client2 = __toESM(require_webrtc_client());
|
22079
|
-
function
|
22136
|
+
function InlineView11({ state, config, raise }) {
|
22080
22137
|
const url = state.url;
|
22081
22138
|
const id = config.id;
|
22082
22139
|
const [showPreview, setShowPreview] = (0, import_react4.useState)(config.showPreview ?? true);
|
@@ -22118,18 +22175,18 @@ function InlineView10({ state, config, raise }) {
|
|
22118
22175
|
}, [config.showPreview]);
|
22119
22176
|
raise && (0, import_react4.useEffect)(raise, []);
|
22120
22177
|
if (!url)
|
22121
|
-
return (0,
|
22178
|
+
return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children: "..." });
|
22122
22179
|
const videoStyles = `
|
22123
22180
|
#whep-${id} video::-webkit-media-controls-play-button {
|
22124
22181
|
display: none;
|
22125
22182
|
}
|
22126
22183
|
`;
|
22127
|
-
return (0,
|
22184
|
+
return (0, import_jsx_runtime24.jsxs)("div", { className: "whep-container", children: [(0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, import_jsx_runtime24.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime24.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), showPreview ? (0, import_jsx_runtime24.jsx)("div", { className: "whep-video", id: `whep-${id}`, children: (0, import_jsx_runtime24.jsx)("style", { children: videoStyles }) }) : (0, import_jsx_runtime24.jsx)("div", { className: "whep-video bg-black flex items-center justify-center text-white h-full", children: "Preview turned off" })] });
|
22128
22185
|
}
|
22129
|
-
var
|
22186
|
+
var inline_view_default11 = InlineView11;
|
22130
22187
|
|
22131
22188
|
// build/output.whep/summary-view.js
|
22132
|
-
var
|
22189
|
+
var import_jsx_runtime25 = __toESM(require_jsx_runtime());
|
22133
22190
|
function SummaryView7({ state, sendCommand }) {
|
22134
22191
|
const handleEnableOutput = () => {
|
22135
22192
|
void enableOutput();
|
@@ -22147,7 +22204,7 @@ function SummaryView7({ state, sendCommand }) {
|
|
22147
22204
|
type: "disable-output"
|
22148
22205
|
});
|
22149
22206
|
};
|
22150
|
-
return (0,
|
22207
|
+
return (0, import_jsx_runtime25.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime25.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime25.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime25.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime25.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime25.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
|
22151
22208
|
}
|
22152
22209
|
var summary_view_default7 = SummaryView7;
|
22153
22210
|
|
@@ -22187,11 +22244,11 @@ function info_default18(R) {
|
|
22187
22244
|
state.enabled = false;
|
22188
22245
|
break;
|
22189
22246
|
default:
|
22190
|
-
|
22247
|
+
assertUnreachable11(evType);
|
22191
22248
|
}
|
22192
22249
|
return { ...state };
|
22193
22250
|
},
|
22194
|
-
inline:
|
22251
|
+
inline: inline_view_default11,
|
22195
22252
|
summary: summary_view_default7
|
22196
22253
|
},
|
22197
22254
|
configForm: {
|
@@ -22209,7 +22266,7 @@ function info_default18(R) {
|
|
22209
22266
|
}
|
22210
22267
|
});
|
22211
22268
|
}
|
22212
|
-
function
|
22269
|
+
function assertUnreachable11(_) {
|
22213
22270
|
throw new Error("Didn't expect to get here");
|
22214
22271
|
}
|
22215
22272
|
|
@@ -22247,9 +22304,9 @@ function info_default19(r) {
|
|
22247
22304
|
var import_client_types2 = __toESM(require_client_types());
|
22248
22305
|
|
22249
22306
|
// build/processor.audioEncoder/form-views.js
|
22250
|
-
var
|
22307
|
+
var import_jsx_runtime26 = __toESM(require_jsx_runtime());
|
22251
22308
|
function CodecConfiguration(cfg) {
|
22252
|
-
return (0,
|
22309
|
+
return (0, import_jsx_runtime26.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime26.jsx)("div", { className: "col-span-1", children: "Codec" }), (0, import_jsx_runtime26.jsx)("div", { className: "col-span-2", children: cfg.kind }), cfg.kind === "aac" ? (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [(0, import_jsx_runtime26.jsx)("div", { className: "col-span-1", children: "Profile" }), (0, import_jsx_runtime26.jsx)("div", { className: "col-span-2", children: cfg.profile }), (0, import_jsx_runtime26.jsx)("div", { className: "col-span-1", children: "Sample Rate" }), (0, import_jsx_runtime26.jsx)("div", { className: "col-span-2", children: cfg.sampleRate })] }) : null] });
|
22253
22310
|
}
|
22254
22311
|
|
22255
22312
|
// build/processor.audioEncoder/info.js
|
@@ -22389,7 +22446,7 @@ var import_config4 = __toESM(require_config());
|
|
22389
22446
|
var import_FaWindowRestore = __toESM(require_FaWindowRestore());
|
22390
22447
|
|
22391
22448
|
// build/processor.browserOverlay/summary-view.js
|
22392
|
-
var
|
22449
|
+
var import_jsx_runtime27 = __toESM(require_jsx_runtime());
|
22393
22450
|
var import_react5 = __toESM(require_react());
|
22394
22451
|
function SummaryView8({ state, sendCommand }) {
|
22395
22452
|
const [url, setUrl] = (0, import_react5.useState)(state.currentUrl);
|
@@ -22398,7 +22455,7 @@ function SummaryView8({ state, sendCommand }) {
|
|
22398
22455
|
return url !== state.currentUrl || enabled !== state.enabled;
|
22399
22456
|
}, [url, enabled]);
|
22400
22457
|
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";
|
22401
|
-
return (0,
|
22458
|
+
return (0, import_jsx_runtime27.jsxs)("div", { className: "space-y-3 mb-5", children: [(0, import_jsx_runtime27.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime27.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime27.jsx)("label", { htmlFor: "url", className: "mb-2 mr-2 text-sm font-medium text-gray-900 dark:text-white", children: "URL" }), (0, import_jsx_runtime27.jsx)("input", { type: "email", id: "url", className: "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", value: url, onChange: (e) => setUrl(e.target.value), required: true })] }), (0, import_jsx_runtime27.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime27.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime27.jsx)("span", { className: "me-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Enabled" }), (0, import_jsx_runtime27.jsx)("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime27.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) }), (0, import_jsx_runtime27.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, disabled: !stateChanged, onClick: () => {
|
22402
22459
|
if (url !== state.currentUrl) {
|
22403
22460
|
sendCommand({ type: "change-url", url });
|
22404
22461
|
}
|
@@ -22414,11 +22471,11 @@ function SummaryView8({ state, sendCommand }) {
|
|
22414
22471
|
var summary_view_default8 = SummaryView8;
|
22415
22472
|
|
22416
22473
|
// build/processor.browserOverlay/inline-view.js
|
22417
|
-
var
|
22418
|
-
function
|
22419
|
-
return (0,
|
22474
|
+
var import_jsx_runtime28 = __toESM(require_jsx_runtime());
|
22475
|
+
function InlineView12({ state, config }) {
|
22476
|
+
return (0, import_jsx_runtime28.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime28.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime28.jsx)("div", { children: "URL:" }), (0, import_jsx_runtime28.jsx)("div", { className: "truncate", children: state.currentUrl }), (0, import_jsx_runtime28.jsx)("div", { children: "Enabled:" }), (0, import_jsx_runtime28.jsx)("div", { children: (0, import_jsx_runtime28.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime28.jsx)("input", { type: "checkbox", checked: state.enabled, disabled: true, className: "sr-only peer" }), (0, import_jsx_runtime28.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) })] }) });
|
22420
22477
|
}
|
22421
|
-
var
|
22478
|
+
var inline_view_default12 = InlineView12;
|
22422
22479
|
|
22423
22480
|
// build/processor.browserOverlay/info.js
|
22424
22481
|
function info_default21({ defineComponent, validation: { Z } }) {
|
@@ -22449,7 +22506,7 @@ function info_default21({ defineComponent, validation: { Z } }) {
|
|
22449
22506
|
},
|
22450
22507
|
runtime: {
|
22451
22508
|
summary: summary_view_default8,
|
22452
|
-
inline:
|
22509
|
+
inline: inline_view_default12,
|
22453
22510
|
initialState: () => ({
|
22454
22511
|
currentUrl: "",
|
22455
22512
|
enabled: true
|
@@ -22464,7 +22521,7 @@ function info_default21({ defineComponent, validation: { Z } }) {
|
|
22464
22521
|
case "disabled":
|
22465
22522
|
return { ...state, enabled: false };
|
22466
22523
|
default:
|
22467
|
-
|
22524
|
+
assertUnreachable12(evType);
|
22468
22525
|
}
|
22469
22526
|
}
|
22470
22527
|
},
|
@@ -22479,12 +22536,12 @@ function info_default21({ defineComponent, validation: { Z } }) {
|
|
22479
22536
|
}
|
22480
22537
|
});
|
22481
22538
|
}
|
22482
|
-
function
|
22539
|
+
function assertUnreachable12(_) {
|
22483
22540
|
throw new Error("Didn't expect to get here");
|
22484
22541
|
}
|
22485
22542
|
|
22486
22543
|
// build/processor.cascadingSwitch/source-selection.js
|
22487
|
-
var
|
22544
|
+
var import_jsx_runtime29 = __toESM(require_jsx_runtime());
|
22488
22545
|
var import_react6 = __toESM(require_react());
|
22489
22546
|
function OrderInput(props) {
|
22490
22547
|
(0, import_react6.useEffect)(() => {
|
@@ -22492,10 +22549,10 @@ function OrderInput(props) {
|
|
22492
22549
|
}, [props.defaultValue]);
|
22493
22550
|
const [value, setValue] = (0, import_react6.useState)(props.defaultValue ?? []);
|
22494
22551
|
if (value.length == 0) {
|
22495
|
-
return (0,
|
22552
|
+
return (0, import_jsx_runtime29.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
|
22496
22553
|
} else {
|
22497
|
-
return (0,
|
22498
|
-
return (0,
|
22554
|
+
return (0, import_jsx_runtime29.jsx)("div", { id: props.id, children: (0, import_jsx_runtime29.jsx)("ul", { children: value.map((v, ix) => {
|
22555
|
+
return (0, import_jsx_runtime29.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime29.jsx)("span", { className: "node-editor-label flex-grow", children: v }), ix == 0 ? (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, {}) : (0, import_jsx_runtime29.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime29.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, {}) : (0, import_jsx_runtime29.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime29.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, v);
|
22499
22556
|
}) }) });
|
22500
22557
|
}
|
22501
22558
|
function moveUp(ix) {
|
@@ -22520,14 +22577,14 @@ function OrderInput(props) {
|
|
22520
22577
|
var source_selection_default = OrderInput;
|
22521
22578
|
|
22522
22579
|
// build/processor.cascadingSwitch/inline-view.js
|
22523
|
-
var
|
22580
|
+
var import_jsx_runtime30 = __toESM(require_jsx_runtime());
|
22524
22581
|
var activeClasses = "active text-green-500 dark:text-green-300";
|
22525
22582
|
var availableClasses = "available text-green-500 dark:text-green-300";
|
22526
22583
|
var inactiveClasses = "inactive text-orange-500 dark:text-orange-300";
|
22527
|
-
function
|
22528
|
-
return (0,
|
22584
|
+
function InlineView13({ state, config }) {
|
22585
|
+
return (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [(0, import_jsx_runtime30.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime30.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == s ? (0, import_jsx_runtime30.jsxs)("li", { className: activeClasses, children: [s, " <--"] }, i) : state.availableSources.includes(s) ? (0, import_jsx_runtime30.jsxs)("li", { className: availableClasses, children: [s, " (available)"] }, i) : (0, import_jsx_runtime30.jsxs)("li", { className: inactiveClasses, children: [s, " (inactive)"] }, i)), (0, import_jsx_runtime30.jsx)("li", { className: state.activeSource == "fallback" ? activeClasses : availableClasses, children: "fallback" }, "fallback")] })] });
|
22529
22586
|
}
|
22530
|
-
var
|
22587
|
+
var inline_view_default13 = InlineView13;
|
22531
22588
|
|
22532
22589
|
// build/processor.cascadingSwitch/info.js
|
22533
22590
|
var import_FaSlidersH = __toESM(require_FaSlidersH());
|
@@ -22611,12 +22668,12 @@ function info_default22({ defineComponent, Av, common: { Resolutions, FrameRates
|
|
22611
22668
|
state.availableSources.splice(state.availableSources.indexOf(ev.source), 1);
|
22612
22669
|
return { ...state };
|
22613
22670
|
default:
|
22614
|
-
|
22671
|
+
assertUnreachable13(evType);
|
22615
22672
|
}
|
22616
22673
|
},
|
22617
|
-
inline:
|
22618
|
-
summary:
|
22619
|
-
fullscreen:
|
22674
|
+
inline: inline_view_default13,
|
22675
|
+
summary: inline_view_default13,
|
22676
|
+
fullscreen: inline_view_default13
|
22620
22677
|
},
|
22621
22678
|
configForm: {
|
22622
22679
|
form: {
|
@@ -22663,7 +22720,7 @@ function info_default22({ defineComponent, Av, common: { Resolutions, FrameRates
|
|
22663
22720
|
}
|
22664
22721
|
});
|
22665
22722
|
}
|
22666
|
-
function
|
22723
|
+
function assertUnreachable13(_) {
|
22667
22724
|
throw new Error("Didn't expect to get here");
|
22668
22725
|
}
|
22669
22726
|
|
@@ -22671,13 +22728,13 @@ function assertUnreachable12(_) {
|
|
22671
22728
|
var import_config5 = __toESM(require_config());
|
22672
22729
|
|
22673
22730
|
// build/processor.fixedLadder/rung-view.js
|
22674
|
-
var
|
22731
|
+
var import_jsx_runtime31 = __toESM(require_jsx_runtime());
|
22675
22732
|
function rung_view_default(rung) {
|
22676
|
-
return (0,
|
22733
|
+
return (0, import_jsx_runtime31.jsx)("div", { className: "text-gray-900 dark:text-white", children: rung.name });
|
22677
22734
|
}
|
22678
22735
|
|
22679
22736
|
// build/processor.fixedLadder/codec-editor.js
|
22680
|
-
var
|
22737
|
+
var import_jsx_runtime32 = __toESM(require_jsx_runtime());
|
22681
22738
|
var import_react7 = __toESM(require_react());
|
22682
22739
|
function CodecEditor(props) {
|
22683
22740
|
(0, import_react7.useEffect)(() => {
|
@@ -22693,7 +22750,7 @@ function CodecEditor(props) {
|
|
22693
22750
|
target.style.height = target.scrollHeight + "px";
|
22694
22751
|
}
|
22695
22752
|
}, []);
|
22696
|
-
return (0,
|
22753
|
+
return (0, import_jsx_runtime32.jsx)("textarea", { ref: textAreaRef, className: "w-full min-h-fit bg-white text-gray-900 dark:text-white dark:bg-black", id: props.id, onChange: (e) => {
|
22697
22754
|
const target = e.currentTarget;
|
22698
22755
|
try {
|
22699
22756
|
const codec = JSON.parse(target.value);
|
@@ -22705,9 +22762,9 @@ function CodecEditor(props) {
|
|
22705
22762
|
}
|
22706
22763
|
|
22707
22764
|
// build/processor.fixedLadder/codec-view.js
|
22708
|
-
var
|
22765
|
+
var import_jsx_runtime33 = __toESM(require_jsx_runtime());
|
22709
22766
|
function CodecEditor2(props) {
|
22710
|
-
return (0,
|
22767
|
+
return (0, import_jsx_runtime33.jsxs)("div", { className: "text-gray-900 dark:text-white", children: [props?.width, "x", props?.height] });
|
22711
22768
|
}
|
22712
22769
|
|
22713
22770
|
// build/processor.fixedLadder/info.js
|
@@ -22874,7 +22931,7 @@ function createSoftwareRung(rung) {
|
|
22874
22931
|
case "h264_320x180":
|
22875
22932
|
return createRungImpl({ name: rung, threads: 1, bitrate: 800 });
|
22876
22933
|
default:
|
22877
|
-
return
|
22934
|
+
return assertUnreachable14(rung);
|
22878
22935
|
}
|
22879
22936
|
}
|
22880
22937
|
function createMa35dRung(rung) {
|
@@ -22888,7 +22945,7 @@ function createMa35dRung(rung) {
|
|
22888
22945
|
case "h264_320x180":
|
22889
22946
|
return createMa35DH264RungImpl({ name: rung, bitrate: 1e3 });
|
22890
22947
|
default:
|
22891
|
-
return
|
22948
|
+
return assertUnreachable14(rung);
|
22892
22949
|
}
|
22893
22950
|
}
|
22894
22951
|
function createNvidiaRung(rung) {
|
@@ -22902,7 +22959,7 @@ function createNvidiaRung(rung) {
|
|
22902
22959
|
case "h264_320x180":
|
22903
22960
|
return createNvidiaRungImpl({ name: rung, bitrate: 8e5 });
|
22904
22961
|
default:
|
22905
|
-
return
|
22962
|
+
return assertUnreachable14(rung);
|
22906
22963
|
}
|
22907
22964
|
}
|
22908
22965
|
function createQuadraRung(rung) {
|
@@ -22916,7 +22973,7 @@ function createQuadraRung(rung) {
|
|
22916
22973
|
case "h264_320x180":
|
22917
22974
|
return createQuadraRungImpl({ name: rung, bitrate: 8e5 });
|
22918
22975
|
default:
|
22919
|
-
return
|
22976
|
+
return assertUnreachable14(rung);
|
22920
22977
|
}
|
22921
22978
|
}
|
22922
22979
|
function createLoganRung(rung) {
|
@@ -22930,7 +22987,7 @@ function createLoganRung(rung) {
|
|
22930
22987
|
case "h264_320x180":
|
22931
22988
|
return createLoganRungImpl({ name: rung, bitrate: 8e5 });
|
22932
22989
|
default:
|
22933
|
-
return
|
22990
|
+
return assertUnreachable14(rung);
|
22934
22991
|
}
|
22935
22992
|
}
|
22936
22993
|
function createRungImpl({ name, threads, bitrate }) {
|
@@ -23031,7 +23088,7 @@ function rungWidth(rungName) {
|
|
23031
23088
|
function rungHeight(rungName) {
|
23032
23089
|
return parseInt(rungName.split("_")[1].split(`x`)[1]);
|
23033
23090
|
}
|
23034
|
-
function
|
23091
|
+
function assertUnreachable14(_) {
|
23035
23092
|
throw new Error("Didn't expect to get here");
|
23036
23093
|
}
|
23037
23094
|
|
@@ -23245,7 +23302,7 @@ function info_default25({ defineComponent, Video, Audio, validation: { Z } }) {
|
|
23245
23302
|
var import_config6 = __toESM(require_config());
|
23246
23303
|
|
23247
23304
|
// build/processor.onscreenGraphic/image-selection.js
|
23248
|
-
var
|
23305
|
+
var import_jsx_runtime34 = __toESM(require_jsx_runtime());
|
23249
23306
|
var import_react8 = __toESM(require_react());
|
23250
23307
|
function GraphicSelection(props) {
|
23251
23308
|
const [loading, setLoading] = (0, import_react8.useState)(true);
|
@@ -23269,13 +23326,13 @@ function GraphicSelection(props) {
|
|
23269
23326
|
}, [props.urls?.staticUrl?.toString()]);
|
23270
23327
|
const [graphcs, setGraphics] = (0, import_react8.useState)([]);
|
23271
23328
|
if (loading) {
|
23272
|
-
return (0,
|
23329
|
+
return (0, import_jsx_runtime34.jsx)("div", { children: "Loading.." });
|
23273
23330
|
}
|
23274
23331
|
if (graphcs.length == 0) {
|
23275
|
-
return (0,
|
23332
|
+
return (0, import_jsx_runtime34.jsx)("div", { children: "No graphics loaded" });
|
23276
23333
|
}
|
23277
|
-
return (0,
|
23278
|
-
return (0,
|
23334
|
+
return (0, import_jsx_runtime34.jsx)("div", { children: (0, import_jsx_runtime34.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime34.jsx)("option", { value: "", children: "---" }, "empty"), graphcs.map((o, i) => {
|
23335
|
+
return (0, import_jsx_runtime34.jsx)("option", { value: o, children: o }, i);
|
23279
23336
|
})] }) });
|
23280
23337
|
function myOnChange(e) {
|
23281
23338
|
props.onChanged(e.target.value);
|
@@ -23284,7 +23341,7 @@ function GraphicSelection(props) {
|
|
23284
23341
|
var image_selection_default = GraphicSelection;
|
23285
23342
|
|
23286
23343
|
// build/processor.onscreenGraphic/summary-view.js
|
23287
|
-
var
|
23344
|
+
var import_jsx_runtime35 = __toESM(require_jsx_runtime());
|
23288
23345
|
var import_react9 = __toESM(require_react());
|
23289
23346
|
function SummaryView9({ state, sendCommand, urls }) {
|
23290
23347
|
const [graphic, setGraphic] = (0, import_react9.useState)(state.activeGraphic?.file);
|
@@ -23421,7 +23478,7 @@ function SummaryView9({ state, sendCommand, urls }) {
|
|
23421
23478
|
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";
|
23422
23479
|
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";
|
23423
23480
|
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";
|
23424
|
-
return (0,
|
23481
|
+
return (0, import_jsx_runtime35.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime35.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime35.jsxs)("div", { children: [(0, import_jsx_runtime35.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, import_jsx_runtime35.jsxs)("select", { id: "select-graphic", className: "w-full node-editor-select-input", value: graphic || "", onChange: (e) => setGraphic(e.target.value || void 0), children: [(0, import_jsx_runtime35.jsx)("option", { value: "", children: "---" }), graphics.map((s) => (0, import_jsx_runtime35.jsx)("option", { value: s, children: s }, s))] })] }), graphic && (0, import_jsx_runtime35.jsxs)("div", { children: [(0, import_jsx_runtime35.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Graphic position" }), (0, import_jsx_runtime35.jsx)(PositionSelector, { initialPosition: position, onChange: setPosition, graphicChanged, ...state })] }), (0, import_jsx_runtime35.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, import_jsx_runtime35.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" }), showFileInput && (0, import_jsx_runtime35.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, import_jsx_runtime35.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && (0, import_jsx_runtime35.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" })] }), (0, import_jsx_runtime35.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && (0, import_jsx_runtime35.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, import_jsx_runtime35.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, import_jsx_runtime35.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, import_jsx_runtime35.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => (0, import_jsx_runtime35.jsx)("option", { value: graphicName, children: graphicName }, graphicName))] }), (0, import_jsx_runtime35.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Graphic" })] }), uploadStatus.message && (0, import_jsx_runtime35.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message })] });
|
23425
23482
|
}
|
23426
23483
|
function fromLocalPosition(pos) {
|
23427
23484
|
if (pos.type === "named")
|
@@ -23430,7 +23487,7 @@ function fromLocalPosition(pos) {
|
|
23430
23487
|
return { type: pos.type, x: pos.x, y: pos.y };
|
23431
23488
|
if (pos.type === "percentage")
|
23432
23489
|
return { type: pos.type, x: pos.x, y: pos.y };
|
23433
|
-
|
23490
|
+
assertUnreachable15(pos);
|
23434
23491
|
}
|
23435
23492
|
function convertPosition(givenPosition, currentVideo, currentGraphic) {
|
23436
23493
|
if (!givenPosition)
|
@@ -23448,7 +23505,7 @@ function convertPosition(givenPosition, currentVideo, currentGraphic) {
|
|
23448
23505
|
} else if (givenPosition.position === "center") {
|
23449
23506
|
xy = { x: 50, y: 50 };
|
23450
23507
|
} else {
|
23451
|
-
|
23508
|
+
assertUnreachable15(givenPosition.position);
|
23452
23509
|
}
|
23453
23510
|
return { ...givenPosition, ...xy, xPct: xy.x, yPct: xy.y };
|
23454
23511
|
}
|
@@ -23536,7 +23593,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
|
|
23536
23593
|
window.removeEventListener("mouseup", handleMouseUp);
|
23537
23594
|
};
|
23538
23595
|
}, [isDragging]);
|
23539
|
-
return (0,
|
23596
|
+
return (0, import_jsx_runtime35.jsxs)("div", { className: "relative w-full max-w-lg mx-auto mt-4 mb-8", children: [(0, import_jsx_runtime35.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime35.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Type:" }), (0, import_jsx_runtime35.jsxs)("select", { value: position.type, onChange: (e) => {
|
23540
23597
|
const newType = e.target.value;
|
23541
23598
|
if (newType === "named") {
|
23542
23599
|
setPosition(convertPos({ type: "named", position: "topleft" }));
|
@@ -23544,12 +23601,12 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
|
|
23544
23601
|
setPositionUnit("%");
|
23545
23602
|
setPosition({ ...convertPos(position), type: "percentage" });
|
23546
23603
|
}
|
23547
|
-
}, className: "node-editor-select-input", children: [(0,
|
23604
|
+
}, className: "node-editor-select-input", children: [(0, import_jsx_runtime35.jsx)("option", { value: "coordinate", children: "Custom Position" }), (0, import_jsx_runtime35.jsx)("option", { value: "named", children: "Preset Position" })] })] }), position.type === "named" ? (0, import_jsx_runtime35.jsx)("div", { className: "mb-4", children: (0, import_jsx_runtime35.jsxs)("select", { value: position.position, onChange: (e) => {
|
23548
23605
|
setPosition(convertPos({
|
23549
23606
|
type: "named",
|
23550
23607
|
position: e.target.value
|
23551
23608
|
}));
|
23552
|
-
}, className: "w-full node-editor-select-input", children: [(0,
|
23609
|
+
}, className: "w-full node-editor-select-input", children: [(0, import_jsx_runtime35.jsx)("option", { value: "topleft", children: "Top Left" }), (0, import_jsx_runtime35.jsx)("option", { value: "topright", children: "Top Right" }), (0, import_jsx_runtime35.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime35.jsx)("option", { value: "bottomright", children: "Bottom Right" }), (0, import_jsx_runtime35.jsx)("option", { value: "center", children: "Centered" })] }) }) : (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [(0, import_jsx_runtime35.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime35.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Unit:" }), (0, import_jsx_runtime35.jsxs)("select", { value: positionUnit, onChange: (e) => {
|
23553
23610
|
setPositionUnit(e.target.value);
|
23554
23611
|
if (e.target.value === "px" && position.type !== "coordinate" && currentVideo && currentGraphic) {
|
23555
23612
|
const { width: videoWidth, height: videoHeight } = currentVideo;
|
@@ -23574,18 +23631,18 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
|
|
23574
23631
|
yStr: void 0
|
23575
23632
|
});
|
23576
23633
|
}
|
23577
|
-
}, className: "node-editor-select-input", children: [(0,
|
23634
|
+
}, className: "node-editor-select-input", children: [(0, import_jsx_runtime35.jsx)("option", { value: "px", children: "Pixels" }), (0, import_jsx_runtime35.jsx)("option", { value: "%", children: "Percentage" })] })] }), (0, import_jsx_runtime35.jsxs)("div", { className: "relative bg-gray-200 dark:bg-gray-700 rounded-lg", style: {
|
23578
23635
|
width: "100%",
|
23579
23636
|
userSelect: "none",
|
23580
23637
|
aspectRatio: currentVideo ? `${currentVideo.width} / ${currentVideo.height}` : `3 / 2`
|
23581
|
-
}, ref: previewAreaRef, children: [(0,
|
23638
|
+
}, ref: previewAreaRef, children: [(0, import_jsx_runtime35.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime35.jsx)("span", { children: currentVideo ? "Video Preview Area" : "Video Dimensions Unknown" }), " ", currentVideo ? (0, import_jsx_runtime35.jsxs)("span", { children: [currentVideo.width, "x", currentVideo.height, "px"] }) : ""] }), (0, import_jsx_runtime35.jsx)("div", { className: `absolute cursor-move ${currentGraphic && !graphicChanged ? "" : "p-2"} rounded-lg bg-primary-500 bg-opacity-50 hover:bg-opacity-75 transition-colors
|
23582
23639
|
${isDragging ? "bg-opacity-75" : ""}`, style: {
|
23583
23640
|
left: `${position.xPct}%`,
|
23584
23641
|
top: `${position.yPct}%`,
|
23585
23642
|
transform: `translate(-${position.xPct}%, -${position.yPct}%)`,
|
23586
23643
|
aspectRatio: currentGraphic && !graphicChanged ? `${currentGraphic.width} / ${currentGraphic.height}` : `1`,
|
23587
23644
|
width: currentGraphic && currentVideo && !graphicChanged ? currentGraphic.width / currentVideo.width * 100 + "%" : void 0
|
23588
|
-
}, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0,
|
23645
|
+
}, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0, import_jsx_runtime35.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, import_jsx_runtime35.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, import_jsx_runtime35.jsxs)("div", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300 text-center", children: ["Position:", " ", position.type === "percentage" ? `${position.xPct.toFixed(1)}%, ${position.yPct.toFixed(1)}%` : `${Math.round(position.x)}px, ${Math.round(position.y)}px`] }), (0, import_jsx_runtime35.jsxs)("div", { className: "mt-2 flex gap-4", children: [(0, import_jsx_runtime35.jsxs)("div", { children: [(0, import_jsx_runtime35.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["X Position ", positionUnit] }), (0, import_jsx_runtime35.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.xStr ?? (positionUnit === "%" ? position.xPct.toFixed(1) : Math.round(position.x)), onChange: (e) => {
|
23589
23646
|
const newX = Number(e.target.value);
|
23590
23647
|
setPosition(convertPos({
|
23591
23648
|
type: positionUnit === "%" ? "percentage" : "coordinate",
|
@@ -23594,7 +23651,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
|
|
23594
23651
|
y: position.y,
|
23595
23652
|
yStr: position.yStr
|
23596
23653
|
}));
|
23597
|
-
}, 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,
|
23654
|
+
}, 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, import_jsx_runtime35.jsxs)("div", { children: [(0, import_jsx_runtime35.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["Y Position ", positionUnit] }), (0, import_jsx_runtime35.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.yStr ?? (positionUnit === "%" ? position.yPct.toFixed(1) : Math.round(position.y)), onChange: (e) => {
|
23598
23655
|
const newY = Number(e.target.value);
|
23599
23656
|
setPosition(convertPos({
|
23600
23657
|
type: positionUnit === "%" ? "percentage" : "coordinate",
|
@@ -23608,7 +23665,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
|
|
23608
23665
|
function clamp(min, num, max) {
|
23609
23666
|
return num < min ? min : num > max ? max : num;
|
23610
23667
|
}
|
23611
|
-
function
|
23668
|
+
function assertUnreachable15(_) {
|
23612
23669
|
throw new Error("Didn't expect to get here");
|
23613
23670
|
}
|
23614
23671
|
var summary_view_default9 = SummaryView9;
|
@@ -23654,7 +23711,7 @@ function info_default26({ defineComponent }) {
|
|
23654
23711
|
case "graphic-loaded":
|
23655
23712
|
return { ...state, currentGraphic: ev.currentGraphic };
|
23656
23713
|
default:
|
23657
|
-
|
23714
|
+
assertUnreachable16(evType);
|
23658
23715
|
}
|
23659
23716
|
}
|
23660
23717
|
},
|
@@ -23690,7 +23747,7 @@ function info_default26({ defineComponent }) {
|
|
23690
23747
|
}
|
23691
23748
|
});
|
23692
23749
|
}
|
23693
|
-
function
|
23750
|
+
function assertUnreachable16(_) {
|
23694
23751
|
throw new Error("Didn't expect to get here");
|
23695
23752
|
}
|
23696
23753
|
|
@@ -23837,7 +23894,7 @@ function info_default28({ defineComponent }) {
|
|
23837
23894
|
}
|
23838
23895
|
|
23839
23896
|
// build/util.stats.latency/inline-view.js
|
23840
|
-
var
|
23897
|
+
var import_jsx_runtime36 = __toESM(require_jsx_runtime());
|
23841
23898
|
var import_react10 = __toESM(require_react());
|
23842
23899
|
|
23843
23900
|
// ../../node_modules/chart.js/auto/auto.js
|
@@ -23845,7 +23902,7 @@ Chart.register(...registerables);
|
|
23845
23902
|
var auto_default = Chart;
|
23846
23903
|
|
23847
23904
|
// build/util.stats.latency/inline-view.js
|
23848
|
-
function
|
23905
|
+
function InlineView14({ state, config: _2 }) {
|
23849
23906
|
const chartContainer = (0, import_react10.useRef)(null);
|
23850
23907
|
const [chartControl, setChartControl] = (0, import_react10.useState)(void 0);
|
23851
23908
|
function makeDataSet(key, color2, values) {
|
@@ -23907,19 +23964,19 @@ function InlineView13({ state, config: _2 }) {
|
|
23907
23964
|
return;
|
23908
23965
|
chartControl.data = makeData(state);
|
23909
23966
|
}, [state]);
|
23910
|
-
return (0,
|
23967
|
+
return (0, import_jsx_runtime36.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime36.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) });
|
23911
23968
|
}
|
23912
|
-
var
|
23969
|
+
var inline_view_default14 = InlineView14;
|
23913
23970
|
|
23914
23971
|
// build/util.stats.latency/source-node-selection.js
|
23915
|
-
var
|
23972
|
+
var import_jsx_runtime37 = __toESM(require_jsx_runtime());
|
23916
23973
|
function SourceNodeSelection(props) {
|
23917
|
-
return (0,
|
23974
|
+
return (0, import_jsx_runtime37.jsx)("div", { children: (0, import_jsx_runtime37.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime37.jsx)("option", { value: "", children: "---" }, "empty"), Object.values(props.latestDocument.components).map((o, i) => {
|
23918
23975
|
if (o.id == props.id)
|
23919
|
-
return (0,
|
23976
|
+
return (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, {});
|
23920
23977
|
if (o.info.category === "output")
|
23921
23978
|
return;
|
23922
|
-
return (0,
|
23979
|
+
return (0, import_jsx_runtime37.jsx)("option", { value: o.id, children: o.config.displayName }, i);
|
23923
23980
|
})] }) });
|
23924
23981
|
function myOnChange(e) {
|
23925
23982
|
props.onChanged(e.target.value);
|
@@ -23959,11 +24016,11 @@ function info_default29(R) {
|
|
23959
24016
|
break;
|
23960
24017
|
}
|
23961
24018
|
default:
|
23962
|
-
|
24019
|
+
assertUnreachable17(evType);
|
23963
24020
|
}
|
23964
24021
|
return { ...state };
|
23965
24022
|
},
|
23966
|
-
inline:
|
24023
|
+
inline: inline_view_default14
|
23967
24024
|
},
|
23968
24025
|
configForm: {
|
23969
24026
|
form: {
|
@@ -24014,7 +24071,7 @@ function info_default29(R) {
|
|
24014
24071
|
}
|
24015
24072
|
});
|
24016
24073
|
}
|
24017
|
-
function
|
24074
|
+
function assertUnreachable17(_) {
|
24018
24075
|
throw new Error("Didn't expect to get here");
|
24019
24076
|
}
|
24020
24077
|
|