@norskvideo/norsk-studio-built-ins 1.12.0-2025-02-04-9551fc82 → 1.12.0-2025-02-07-e66173eb
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 +206 -166
- package/lib/input.rtmp/info.js +8 -8
- package/lib/input.rtmp/info.js.map +1 -1
- package/lib/input.silence/info.js +7 -7
- package/lib/input.silence/info.js.map +1 -1
- package/lib/input.srt-caller/info.js +8 -8
- package/lib/input.srt-caller/info.js.map +1 -1
- package/lib/input.srt-listener/info.js +7 -7
- package/lib/input.srt-listener/info.js.map +1 -1
- package/lib/input.udp-ts/info.js +2 -2
- package/lib/input.udp-ts/info.js.map +1 -1
- package/lib/input.videoTestCard/info.js +4 -7
- package/lib/input.videoTestCard/info.js.map +1 -1
- package/lib/output.autoCmaf/info.js +9 -7
- package/lib/output.autoCmaf/info.js.map +1 -1
- package/lib/output.autoCmaf/runtime.d.ts +5 -8
- package/lib/output.autoCmaf/runtime.js +18 -31
- package/lib/output.autoCmaf/runtime.js.map +1 -1
- package/lib/output.autoCmaf/summary-view.d.ts +4 -0
- package/lib/output.autoCmaf/summary-view.js +24 -0
- package/lib/output.autoCmaf/summary-view.js.map +1 -0
- package/lib/output.preview/info.js +5 -8
- package/lib/output.preview/info.js.map +1 -1
- package/lib/output.rtmp/info.js +5 -2
- package/lib/output.rtmp/info.js.map +1 -1
- package/lib/output.srt/info.js +5 -2
- package/lib/output.srt/info.js.map +1 -1
- package/lib/output.udpTs/info.js +4 -1
- package/lib/output.udpTs/info.js.map +1 -1
- package/lib/output.whep/info.js +5 -2
- package/lib/output.whep/info.js.map +1 -1
- package/lib/output.whep/runtime.js +0 -21
- package/lib/output.whep/runtime.js.map +1 -1
- package/lib/test/auto-cmaf.js +138 -1
- package/lib/test/auto-cmaf.js.map +1 -1
- package/package.json +3 -3
package/client/info.js
CHANGED
@@ -493,6 +493,39 @@ var require_config = __commonJS({
|
|
493
493
|
}
|
494
494
|
});
|
495
495
|
|
496
|
+
// build/output.autoCmaf/summary-view.js
|
497
|
+
var summary_view_exports3 = {};
|
498
|
+
__export(summary_view_exports3, {
|
499
|
+
default: () => summary_view_default3
|
500
|
+
});
|
501
|
+
function SummaryView5({ state, sendCommand }) {
|
502
|
+
const handleEnableOutput = () => {
|
503
|
+
void enableOutput();
|
504
|
+
};
|
505
|
+
const enableOutput = async () => {
|
506
|
+
sendCommand({
|
507
|
+
type: "enable-output"
|
508
|
+
});
|
509
|
+
};
|
510
|
+
const handleDisableOutput = () => {
|
511
|
+
void disableOutput();
|
512
|
+
};
|
513
|
+
const disableOutput = async () => {
|
514
|
+
sendCommand({
|
515
|
+
type: "disable-output"
|
516
|
+
});
|
517
|
+
};
|
518
|
+
return (0, import_jsx_runtime6.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime6.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime6.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime6.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime6.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_runtime6.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
|
519
|
+
}
|
520
|
+
var import_jsx_runtime6, summary_view_default3;
|
521
|
+
var init_summary_view3 = __esm({
|
522
|
+
"build/output.autoCmaf/summary-view.js"() {
|
523
|
+
"use strict";
|
524
|
+
import_jsx_runtime6 = __toESM(require_jsx_runtime());
|
525
|
+
summary_view_default3 = SummaryView5;
|
526
|
+
}
|
527
|
+
});
|
528
|
+
|
496
529
|
// external-global-plugin:hls.js
|
497
530
|
var require_hls = __commonJS({
|
498
531
|
"external-global-plugin:hls.js"(exports, module) {
|
@@ -521,16 +554,16 @@ function FullscreenView({ state, config }) {
|
|
521
554
|
}
|
522
555
|
}, [state.url]);
|
523
556
|
if (!url)
|
524
|
-
return (0,
|
557
|
+
return (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: "..." });
|
525
558
|
{
|
526
559
|
}
|
527
|
-
return (0,
|
560
|
+
return (0, import_jsx_runtime7.jsx)("div", { children: (0, import_jsx_runtime7.jsx)("video", { controls: true, autoPlay: true, muted: true, id: `${id}-video` }) });
|
528
561
|
}
|
529
|
-
var
|
562
|
+
var import_jsx_runtime7, import_react4, import_hls, fullscreen_default;
|
530
563
|
var init_fullscreen = __esm({
|
531
564
|
"build/output.autoCmaf/fullscreen.js"() {
|
532
565
|
"use strict";
|
533
|
-
|
566
|
+
import_jsx_runtime7 = __toESM(require_jsx_runtime());
|
534
567
|
import_react4 = __toESM(require_react());
|
535
568
|
import_hls = __toESM(require_hls());
|
536
569
|
fullscreen_default = FullscreenView;
|
@@ -544,16 +577,16 @@ __export(form_views_exports, {
|
|
544
577
|
SegmentConfiguration: () => SegmentConfiguration
|
545
578
|
});
|
546
579
|
function S3Destination(destination) {
|
547
|
-
return (0,
|
580
|
+
return (0, import_jsx_runtime8.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Host" }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-2", children: destination.host }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Path" }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-2", children: destination.prefix }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Include Ads" }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-2", children: destination.includeAdInsertions ? "yes" : "no" })] });
|
548
581
|
}
|
549
582
|
function SegmentConfiguration(cfg) {
|
550
|
-
return (0,
|
583
|
+
return (0, import_jsx_runtime8.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Segments" }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-2", children: cfg.defaultSegmentCount == 0 ? "all" : cfg.defaultSegmentCount }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Segment Target" }), (0, import_jsx_runtime8.jsxs)("div", { className: "col-span-2", children: [cfg.targetSegmentDuration, "s"] }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Part Target" }), (0, import_jsx_runtime8.jsxs)("div", { className: "col-span-2", children: [cfg.targetPartDuration, "s"] }), (0, import_jsx_runtime8.jsx)("div", { className: "col-span-1", children: "Retention" }), (0, import_jsx_runtime8.jsxs)("div", { className: "col-span-2", children: [cfg.retentionPeriod, "s"] })] });
|
551
584
|
}
|
552
|
-
var
|
585
|
+
var import_jsx_runtime8;
|
553
586
|
var init_form_views = __esm({
|
554
587
|
"build/output.autoCmaf/form-views.js"() {
|
555
588
|
"use strict";
|
556
|
-
|
589
|
+
import_jsx_runtime8 = __toESM(require_jsx_runtime());
|
557
590
|
}
|
558
591
|
});
|
559
592
|
|
@@ -611,7 +644,7 @@ function InlineView5({ state, config, raise }) {
|
|
611
644
|
}, [config.showPreview]);
|
612
645
|
raise && (0, import_react6.useEffect)(raise, []);
|
613
646
|
if (!url)
|
614
|
-
return (0,
|
647
|
+
return (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: "..." });
|
615
648
|
function percentage(levels) {
|
616
649
|
if (!levels) {
|
617
650
|
return 0;
|
@@ -621,15 +654,15 @@ function InlineView5({ state, config, raise }) {
|
|
621
654
|
const snapped = Math.floor(capped * 10) * 10;
|
622
655
|
return Math.max(0, 100 - snapped);
|
623
656
|
}
|
624
|
-
return (0,
|
657
|
+
return (0, import_jsx_runtime9.jsxs)("div", { className: "preview-outer-container", children: [(0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, import_jsx_runtime9.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime9.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), showPreview ? (0, import_jsx_runtime9.jsx)("div", { className: "preview-video", id: `preview-${id}`, children: (0, import_jsx_runtime9.jsx)("style", { children: `
|
625
658
|
#preview-${id} video::-webkit-media-controls-play-button { display: none; },
|
626
|
-
` }) }) : (0,
|
659
|
+
` }) }) : (0, import_jsx_runtime9.jsx)("div", { className: "preview-video bg-black flex items-center justify-center text-white h-full", children: "Preview turned off" }), (0, import_jsx_runtime9.jsx)("div", { className: "preview-levels", children: (0, import_jsx_runtime9.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}-preview` }) })] });
|
627
660
|
}
|
628
|
-
var
|
661
|
+
var import_jsx_runtime9, import_react6, import_webrtc_client, inline_view_default3;
|
629
662
|
var init_inline_view3 = __esm({
|
630
663
|
"build/output.preview/inline-view.js"() {
|
631
664
|
"use strict";
|
632
|
-
|
665
|
+
import_jsx_runtime9 = __toESM(require_jsx_runtime());
|
633
666
|
import_react6 = __toESM(require_react());
|
634
667
|
import_webrtc_client = __toESM(require_webrtc_client());
|
635
668
|
inline_view_default3 = InlineView5;
|
@@ -642,15 +675,15 @@ __export(inline_view_exports4, {
|
|
642
675
|
default: () => inline_view_default4
|
643
676
|
});
|
644
677
|
function InlineView6({ state, config }) {
|
645
|
-
const connected = (0,
|
646
|
-
const disconnected = (0,
|
647
|
-
return (0,
|
678
|
+
const connected = (0, import_jsx_runtime10.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected and publishing" });
|
679
|
+
const disconnected = (0, import_jsx_runtime10.jsxs)("div", { className: "inactive text-orange-500 dark:text-orange-300", children: ["Disconnected ", state.connectRetries > 0 ? `- retrying(${state.connectRetries})` : ""] });
|
680
|
+
return (0, import_jsx_runtime10.jsx)("div", { className: "rtmp-output", id: `rtmp-output-${config.id}`, children: state.connected ? connected : disconnected });
|
648
681
|
}
|
649
|
-
var
|
682
|
+
var import_jsx_runtime10, inline_view_default4;
|
650
683
|
var init_inline_view4 = __esm({
|
651
684
|
"build/output.rtmp/inline-view.js"() {
|
652
685
|
"use strict";
|
653
|
-
|
686
|
+
import_jsx_runtime10 = __toESM(require_jsx_runtime());
|
654
687
|
inline_view_default4 = InlineView6;
|
655
688
|
}
|
656
689
|
});
|
@@ -737,23 +770,23 @@ __export(inline_view_exports5, {
|
|
737
770
|
});
|
738
771
|
function InlineView7({ state }) {
|
739
772
|
if (!state.previous)
|
740
|
-
return (0,
|
773
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
|
741
774
|
const format = (stat) => Math.floor(stat).toLocaleString("en-US", { maximumFractionDigits: 0 });
|
742
|
-
return (0,
|
775
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: state.previous.allStreams.map((s, i) => {
|
743
776
|
const metaCase = s.metadata.case;
|
744
777
|
switch (metaCase) {
|
745
778
|
case "audio":
|
746
|
-
return (0,
|
779
|
+
return (0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime11.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
|
747
780
|
case "video":
|
748
|
-
return (0,
|
781
|
+
return (0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime11.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
|
749
782
|
case "ancillary":
|
750
|
-
return (0,
|
783
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
|
751
784
|
case "subtitle":
|
752
|
-
return (0,
|
785
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
|
753
786
|
case "playlist":
|
754
|
-
return (0,
|
787
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
|
755
788
|
case void 0:
|
756
|
-
return (0,
|
789
|
+
return (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, {});
|
757
790
|
default:
|
758
791
|
assertUnreachable7(metaCase);
|
759
792
|
}
|
@@ -762,11 +795,11 @@ function InlineView7({ state }) {
|
|
762
795
|
function streamKey(streamKey2) {
|
763
796
|
return streamKey2.streamId.toString();
|
764
797
|
}
|
765
|
-
var
|
798
|
+
var import_jsx_runtime11, inline_view_default5;
|
766
799
|
var init_inline_view5 = __esm({
|
767
800
|
"build/output.statistics/inline-view.js"() {
|
768
801
|
"use strict";
|
769
|
-
|
802
|
+
import_jsx_runtime11 = __toESM(require_jsx_runtime());
|
770
803
|
init_info();
|
771
804
|
inline_view_default5 = InlineView7;
|
772
805
|
}
|
@@ -824,11 +857,11 @@ var init_info = __esm({
|
|
824
857
|
});
|
825
858
|
|
826
859
|
// build/output.whep/summary-view.js
|
827
|
-
var
|
828
|
-
__export(
|
829
|
-
default: () =>
|
860
|
+
var summary_view_exports4 = {};
|
861
|
+
__export(summary_view_exports4, {
|
862
|
+
default: () => summary_view_default4
|
830
863
|
});
|
831
|
-
function
|
864
|
+
function SummaryView6({ state, sendCommand }) {
|
832
865
|
const handleEnableOutput = () => {
|
833
866
|
void enableOutput();
|
834
867
|
};
|
@@ -845,14 +878,14 @@ function SummaryView5({ state, sendCommand }) {
|
|
845
878
|
type: "disable-output"
|
846
879
|
});
|
847
880
|
};
|
848
|
-
return (0,
|
881
|
+
return (0, import_jsx_runtime12.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime12.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime12.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime12.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime12.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_runtime12.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
|
849
882
|
}
|
850
|
-
var
|
851
|
-
var
|
883
|
+
var import_jsx_runtime12, summary_view_default4;
|
884
|
+
var init_summary_view4 = __esm({
|
852
885
|
"build/output.whep/summary-view.js"() {
|
853
886
|
"use strict";
|
854
|
-
|
855
|
-
|
887
|
+
import_jsx_runtime12 = __toESM(require_jsx_runtime());
|
888
|
+
summary_view_default4 = SummaryView6;
|
856
889
|
}
|
857
890
|
});
|
858
891
|
|
@@ -903,19 +936,19 @@ function InlineView8({ state, config, raise }) {
|
|
903
936
|
}, [config.showPreview]);
|
904
937
|
raise && (0, import_react11.useEffect)(raise, []);
|
905
938
|
if (!url)
|
906
|
-
return (0,
|
939
|
+
return (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: "..." });
|
907
940
|
const videoStyles = `
|
908
941
|
#whep-${id} video::-webkit-media-controls-play-button {
|
909
942
|
display: none;
|
910
943
|
}
|
911
944
|
`;
|
912
|
-
return (0,
|
945
|
+
return (0, import_jsx_runtime13.jsxs)("div", { className: "whep-container", children: [(0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, import_jsx_runtime13.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime13.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), showPreview ? (0, import_jsx_runtime13.jsx)("div", { className: "whep-video", id: `whep-${id}`, children: (0, import_jsx_runtime13.jsx)("style", { children: videoStyles }) }) : (0, import_jsx_runtime13.jsx)("div", { className: "whep-video bg-black flex items-center justify-center text-white h-full", children: "Preview turned off" })] });
|
913
946
|
}
|
914
|
-
var
|
947
|
+
var import_jsx_runtime13, import_react11, import_webrtc_client2, inline_view_default6;
|
915
948
|
var init_inline_view6 = __esm({
|
916
949
|
"build/output.whep/inline-view.js"() {
|
917
950
|
"use strict";
|
918
|
-
|
951
|
+
import_jsx_runtime13 = __toESM(require_jsx_runtime());
|
919
952
|
import_react11 = __toESM(require_react());
|
920
953
|
import_webrtc_client2 = __toESM(require_webrtc_client());
|
921
954
|
inline_view_default6 = InlineView8;
|
@@ -923,18 +956,18 @@ var init_inline_view6 = __esm({
|
|
923
956
|
});
|
924
957
|
|
925
958
|
// build/processor.browserOverlay/summary-view.js
|
926
|
-
var
|
927
|
-
__export(
|
928
|
-
default: () =>
|
959
|
+
var summary_view_exports5 = {};
|
960
|
+
__export(summary_view_exports5, {
|
961
|
+
default: () => summary_view_default5
|
929
962
|
});
|
930
|
-
function
|
963
|
+
function SummaryView8({ state, sendCommand }) {
|
931
964
|
const [url, setUrl] = (0, import_react13.useState)(state.currentUrl);
|
932
965
|
const [enabled, setEnabled] = (0, import_react13.useState)(state.enabled);
|
933
966
|
const stateChanged = (0, import_react13.useMemo)(() => {
|
934
967
|
return url !== state.currentUrl || enabled !== state.enabled;
|
935
968
|
}, [url, enabled]);
|
936
969
|
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";
|
937
|
-
return (0,
|
970
|
+
return (0, import_jsx_runtime14.jsxs)("div", { className: "space-y-3 mb-5", children: [(0, import_jsx_runtime14.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime14.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime14.jsx)("label", { htmlFor: "url", className: "mb-2 mr-2 text-sm font-medium text-gray-900 dark:text-white", children: "URL" }), (0, import_jsx_runtime14.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_runtime14.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime14.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime14.jsx)("span", { className: "me-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Enabled" }), (0, import_jsx_runtime14.jsx)("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime14.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_runtime14.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, disabled: !stateChanged, onClick: () => {
|
938
971
|
if (url !== state.currentUrl) {
|
939
972
|
sendCommand({ type: "change-url", url });
|
940
973
|
}
|
@@ -947,13 +980,13 @@ function SummaryView7({ state, sendCommand }) {
|
|
947
980
|
}
|
948
981
|
}, children: "Commit" })] });
|
949
982
|
}
|
950
|
-
var
|
951
|
-
var
|
983
|
+
var import_jsx_runtime14, import_react13, summary_view_default5;
|
984
|
+
var init_summary_view5 = __esm({
|
952
985
|
"build/processor.browserOverlay/summary-view.js"() {
|
953
986
|
"use strict";
|
954
|
-
|
987
|
+
import_jsx_runtime14 = __toESM(require_jsx_runtime());
|
955
988
|
import_react13 = __toESM(require_react());
|
956
|
-
|
989
|
+
summary_view_default5 = SummaryView8;
|
957
990
|
}
|
958
991
|
});
|
959
992
|
|
@@ -963,13 +996,13 @@ __export(inline_view_exports7, {
|
|
963
996
|
default: () => inline_view_default7
|
964
997
|
});
|
965
998
|
function InlineView9({ state, config }) {
|
966
|
-
return (0,
|
999
|
+
return (0, import_jsx_runtime15.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime15.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime15.jsx)("div", { children: "URL:" }), (0, import_jsx_runtime15.jsx)("div", { className: "truncate", children: state.currentUrl }), (0, import_jsx_runtime15.jsx)("div", { children: "Enabled:" }), (0, import_jsx_runtime15.jsx)("div", { children: (0, import_jsx_runtime15.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime15.jsx)("input", { type: "checkbox", checked: state.enabled, disabled: true, className: "sr-only peer" }), (0, import_jsx_runtime15.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" })] }) })] }) });
|
967
1000
|
}
|
968
|
-
var
|
1001
|
+
var import_jsx_runtime15, inline_view_default7;
|
969
1002
|
var init_inline_view7 = __esm({
|
970
1003
|
"build/processor.browserOverlay/inline-view.js"() {
|
971
1004
|
"use strict";
|
972
|
-
|
1005
|
+
import_jsx_runtime15 = __toESM(require_jsx_runtime());
|
973
1006
|
inline_view_default7 = InlineView9;
|
974
1007
|
}
|
975
1008
|
});
|
@@ -985,10 +1018,10 @@ function OrderInput(props) {
|
|
985
1018
|
}, [props.defaultValue]);
|
986
1019
|
const [value, setValue] = (0, import_react15.useState)(props.defaultValue ?? []);
|
987
1020
|
if (value.length == 0) {
|
988
|
-
return (0,
|
1021
|
+
return (0, import_jsx_runtime16.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
|
989
1022
|
} else {
|
990
|
-
return (0,
|
991
|
-
return (0,
|
1023
|
+
return (0, import_jsx_runtime16.jsx)("div", { id: props.id, children: (0, import_jsx_runtime16.jsx)("ul", { children: value.map((v, ix) => {
|
1024
|
+
return (0, import_jsx_runtime16.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime16.jsx)("span", { className: "node-editor-label flex-grow", children: v }), ix == 0 ? (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, {}) : (0, import_jsx_runtime16.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_runtime16.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, {}) : (0, import_jsx_runtime16.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_runtime16.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, v);
|
992
1025
|
}) }) });
|
993
1026
|
}
|
994
1027
|
function moveUp(ix) {
|
@@ -1010,11 +1043,11 @@ function OrderInput(props) {
|
|
1010
1043
|
};
|
1011
1044
|
}
|
1012
1045
|
}
|
1013
|
-
var
|
1046
|
+
var import_jsx_runtime16, import_react15, source_selection_default;
|
1014
1047
|
var init_source_selection = __esm({
|
1015
1048
|
"build/processor.cascadingSwitch/source-selection.js"() {
|
1016
1049
|
"use strict";
|
1017
|
-
|
1050
|
+
import_jsx_runtime16 = __toESM(require_jsx_runtime());
|
1018
1051
|
import_react15 = __toESM(require_react());
|
1019
1052
|
source_selection_default = OrderInput;
|
1020
1053
|
}
|
@@ -1026,13 +1059,13 @@ __export(inline_view_exports8, {
|
|
1026
1059
|
default: () => inline_view_default8
|
1027
1060
|
});
|
1028
1061
|
function InlineView11({ state, config }) {
|
1029
|
-
return (0,
|
1062
|
+
return (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [(0, import_jsx_runtime17.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime17.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == s ? (0, import_jsx_runtime17.jsxs)("li", { className: activeClasses, children: [s, " <--"] }, i) : state.availableSources.includes(s) ? (0, import_jsx_runtime17.jsxs)("li", { className: availableClasses, children: [s, " (available)"] }, i) : (0, import_jsx_runtime17.jsxs)("li", { className: inactiveClasses, children: [s, " (inactive)"] }, i)), (0, import_jsx_runtime17.jsx)("li", { className: state.activeSource == "fallback" ? activeClasses : availableClasses, children: "fallback" }, "fallback")] })] });
|
1030
1063
|
}
|
1031
|
-
var
|
1064
|
+
var import_jsx_runtime17, activeClasses, availableClasses, inactiveClasses, inline_view_default8;
|
1032
1065
|
var init_inline_view8 = __esm({
|
1033
1066
|
"build/processor.cascadingSwitch/inline-view.js"() {
|
1034
1067
|
"use strict";
|
1035
|
-
|
1068
|
+
import_jsx_runtime17 = __toESM(require_jsx_runtime());
|
1036
1069
|
activeClasses = "active text-green-500 dark:text-green-300";
|
1037
1070
|
availableClasses = "available text-green-500 dark:text-green-300";
|
1038
1071
|
inactiveClasses = "inactive text-orange-500 dark:text-orange-300";
|
@@ -1046,13 +1079,13 @@ __export(rung_view_exports, {
|
|
1046
1079
|
default: () => rung_view_default
|
1047
1080
|
});
|
1048
1081
|
function rung_view_default(rung) {
|
1049
|
-
return (0,
|
1082
|
+
return (0, import_jsx_runtime18.jsx)("div", { className: "text-gray-900 dark:text-white", children: rung.name });
|
1050
1083
|
}
|
1051
|
-
var
|
1084
|
+
var import_jsx_runtime18;
|
1052
1085
|
var init_rung_view = __esm({
|
1053
1086
|
"build/processor.fixedLadder/rung-view.js"() {
|
1054
1087
|
"use strict";
|
1055
|
-
|
1088
|
+
import_jsx_runtime18 = __toESM(require_jsx_runtime());
|
1056
1089
|
}
|
1057
1090
|
});
|
1058
1091
|
|
@@ -1075,7 +1108,7 @@ function CodecEditor(props) {
|
|
1075
1108
|
target.style.height = target.scrollHeight + "px";
|
1076
1109
|
}
|
1077
1110
|
}, []);
|
1078
|
-
return (0,
|
1111
|
+
return (0, import_jsx_runtime19.jsx)("textarea", { ref: textAreaRef, className: "w-full min-h-fit bg-white text-gray-900 dark:text-white dark:bg-black", onChange: (e) => {
|
1079
1112
|
const target = e.currentTarget;
|
1080
1113
|
try {
|
1081
1114
|
const codec = JSON.parse(target.value);
|
@@ -1085,11 +1118,11 @@ function CodecEditor(props) {
|
|
1085
1118
|
}
|
1086
1119
|
}, defaultValue: JSON.stringify(value, void 0, 2) });
|
1087
1120
|
}
|
1088
|
-
var
|
1121
|
+
var import_jsx_runtime19, import_react16;
|
1089
1122
|
var init_codec_editor = __esm({
|
1090
1123
|
"build/processor.fixedLadder/codec-editor.js"() {
|
1091
1124
|
"use strict";
|
1092
|
-
|
1125
|
+
import_jsx_runtime19 = __toESM(require_jsx_runtime());
|
1093
1126
|
import_react16 = __toESM(require_react());
|
1094
1127
|
}
|
1095
1128
|
});
|
@@ -1100,13 +1133,13 @@ __export(codec_view_exports, {
|
|
1100
1133
|
default: () => CodecEditor2
|
1101
1134
|
});
|
1102
1135
|
function CodecEditor2(props) {
|
1103
|
-
return (0,
|
1136
|
+
return (0, import_jsx_runtime20.jsxs)("div", { className: "text-gray-900 dark:text-white", children: [props.width, "x", props.height] });
|
1104
1137
|
}
|
1105
|
-
var
|
1138
|
+
var import_jsx_runtime20;
|
1106
1139
|
var init_codec_view = __esm({
|
1107
1140
|
"build/processor.fixedLadder/codec-view.js"() {
|
1108
1141
|
"use strict";
|
1109
|
-
|
1142
|
+
import_jsx_runtime20 = __toESM(require_jsx_runtime());
|
1110
1143
|
}
|
1111
1144
|
});
|
1112
1145
|
|
@@ -1135,34 +1168,34 @@ function GraphicSelection(props) {
|
|
1135
1168
|
}, []);
|
1136
1169
|
const [graphcs, setGraphics] = (0, import_react18.useState)([]);
|
1137
1170
|
if (loading) {
|
1138
|
-
return (0,
|
1171
|
+
return (0, import_jsx_runtime21.jsx)("div", { children: "Loading.." });
|
1139
1172
|
}
|
1140
1173
|
if (graphcs.length == 0) {
|
1141
|
-
return (0,
|
1174
|
+
return (0, import_jsx_runtime21.jsx)("div", { children: "No graphics loaded" });
|
1142
1175
|
}
|
1143
|
-
return (0,
|
1144
|
-
return (0,
|
1176
|
+
return (0, import_jsx_runtime21.jsx)("div", { children: (0, import_jsx_runtime21.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime21.jsx)("option", { value: "", children: "---" }, "empty"), graphcs.map((o, i) => {
|
1177
|
+
return (0, import_jsx_runtime21.jsx)("option", { value: o, children: o }, i);
|
1145
1178
|
})] }) });
|
1146
1179
|
function myOnChange(e) {
|
1147
1180
|
props.onChanged(e.target.value);
|
1148
1181
|
}
|
1149
1182
|
}
|
1150
|
-
var
|
1183
|
+
var import_jsx_runtime21, import_react18, image_selection_default;
|
1151
1184
|
var init_image_selection = __esm({
|
1152
1185
|
"build/processor.onscreenGraphic/image-selection.js"() {
|
1153
1186
|
"use strict";
|
1154
|
-
|
1187
|
+
import_jsx_runtime21 = __toESM(require_jsx_runtime());
|
1155
1188
|
import_react18 = __toESM(require_react());
|
1156
1189
|
image_selection_default = GraphicSelection;
|
1157
1190
|
}
|
1158
1191
|
});
|
1159
1192
|
|
1160
1193
|
// build/processor.onscreenGraphic/summary-view.js
|
1161
|
-
var
|
1162
|
-
__export(
|
1163
|
-
default: () =>
|
1194
|
+
var summary_view_exports6 = {};
|
1195
|
+
__export(summary_view_exports6, {
|
1196
|
+
default: () => summary_view_default6
|
1164
1197
|
});
|
1165
|
-
function
|
1198
|
+
function SummaryView10({ state, sendCommand, urls }) {
|
1166
1199
|
const [graphic, setGraphic] = (0, import_react19.useState)(state.activeGraphic?.file);
|
1167
1200
|
const [position, setPosition] = (0, import_react19.useState)(state.activeGraphic?.position ?? { type: "named", position: "topleft" });
|
1168
1201
|
const [graphics, setGraphics] = (0, import_react19.useState)([]);
|
@@ -1297,7 +1330,7 @@ function SummaryView9({ state, sendCommand, urls }) {
|
|
1297
1330
|
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";
|
1298
1331
|
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";
|
1299
1332
|
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";
|
1300
|
-
return (0,
|
1333
|
+
return (0, import_jsx_runtime22.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime22.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, import_jsx_runtime22.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_runtime22.jsx)("option", { value: "", children: "---" }), graphics.map((s) => (0, import_jsx_runtime22.jsx)("option", { value: s, children: s }, s))] })] }), graphic && (0, import_jsx_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Graphic position" }), (0, import_jsx_runtime22.jsx)(PositionSelector, { initialPosition: position, onChange: setPosition, graphicChanged, ...state })] }), (0, import_jsx_runtime22.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_runtime22.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" }), showFileInput && (0, import_jsx_runtime22.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, import_jsx_runtime22.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && (0, import_jsx_runtime22.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" })] }), (0, import_jsx_runtime22.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && (0, import_jsx_runtime22.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, import_jsx_runtime22.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, import_jsx_runtime22.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, import_jsx_runtime22.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => (0, import_jsx_runtime22.jsx)("option", { value: graphicName, children: graphicName }, graphicName))] }), (0, import_jsx_runtime22.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Graphic" })] }), uploadStatus.message && (0, import_jsx_runtime22.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message })] });
|
1301
1334
|
}
|
1302
1335
|
function convertPosition(givenPosition, currentVideo, currentGraphic) {
|
1303
1336
|
if (!givenPosition)
|
@@ -1343,11 +1376,11 @@ function clamp(min, num, max) {
|
|
1343
1376
|
function assertUnreachable12(_) {
|
1344
1377
|
throw new Error("Didn't expect to get here");
|
1345
1378
|
}
|
1346
|
-
var
|
1347
|
-
var
|
1379
|
+
var import_jsx_runtime22, import_react19, PositionSelector, summary_view_default6;
|
1380
|
+
var init_summary_view6 = __esm({
|
1348
1381
|
"build/processor.onscreenGraphic/summary-view.js"() {
|
1349
1382
|
"use strict";
|
1350
|
-
|
1383
|
+
import_jsx_runtime22 = __toESM(require_jsx_runtime());
|
1351
1384
|
import_react19 = __toESM(require_react());
|
1352
1385
|
PositionSelector = ({ initialPosition: givenPosition = { type: "named", position: "topleft" }, onChange, currentVideo, currentGraphic, graphicChanged }) => {
|
1353
1386
|
const convertPos = (pos) => convertPosition(pos, currentVideo, currentGraphic);
|
@@ -1415,7 +1448,7 @@ var init_summary_view5 = __esm({
|
|
1415
1448
|
window.removeEventListener("mouseup", handleMouseUp);
|
1416
1449
|
};
|
1417
1450
|
}, [isDragging]);
|
1418
|
-
return (0,
|
1451
|
+
return (0, import_jsx_runtime22.jsxs)("div", { className: "relative w-full max-w-lg mx-auto mt-4 mb-8", children: [(0, import_jsx_runtime22.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime22.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Type:" }), (0, import_jsx_runtime22.jsxs)("select", { value: position.type, onChange: (e) => {
|
1419
1452
|
const newType = e.target.value;
|
1420
1453
|
if (newType === "named") {
|
1421
1454
|
setPosition(convertPos({ type: "named", position: "topleft" }));
|
@@ -1423,12 +1456,12 @@ var init_summary_view5 = __esm({
|
|
1423
1456
|
setPositionUnit("%");
|
1424
1457
|
setPosition({ ...convertPos(position), type: "percentage" });
|
1425
1458
|
}
|
1426
|
-
}, className: "node-editor-select-input", children: [(0,
|
1459
|
+
}, className: "node-editor-select-input", children: [(0, import_jsx_runtime22.jsx)("option", { value: "coordinate", children: "Custom Position" }), (0, import_jsx_runtime22.jsx)("option", { value: "named", children: "Preset Position" })] })] }), position.type === "named" ? (0, import_jsx_runtime22.jsx)("div", { className: "mb-4", children: (0, import_jsx_runtime22.jsxs)("select", { value: position.position, onChange: (e) => {
|
1427
1460
|
setPosition(convertPos({
|
1428
1461
|
type: "named",
|
1429
1462
|
position: e.target.value
|
1430
1463
|
}));
|
1431
|
-
}, className: "w-full node-editor-select-input", children: [(0,
|
1464
|
+
}, className: "w-full node-editor-select-input", children: [(0, import_jsx_runtime22.jsx)("option", { value: "topleft", children: "Top Left" }), (0, import_jsx_runtime22.jsx)("option", { value: "topright", children: "Top Right" }), (0, import_jsx_runtime22.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime22.jsx)("option", { value: "bottomright", children: "Bottom Right" }), (0, import_jsx_runtime22.jsx)("option", { value: "center", children: "Centered" })] }) }) : (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [(0, import_jsx_runtime22.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime22.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Unit:" }), (0, import_jsx_runtime22.jsxs)("select", { value: positionUnit, onChange: (e) => {
|
1432
1465
|
setPositionUnit(e.target.value);
|
1433
1466
|
if (e.target.value === "px" && position.type !== "coordinate" && currentVideo && currentGraphic) {
|
1434
1467
|
const { width: videoWidth, height: videoHeight } = currentVideo;
|
@@ -1453,18 +1486,18 @@ var init_summary_view5 = __esm({
|
|
1453
1486
|
yStr: void 0
|
1454
1487
|
});
|
1455
1488
|
}
|
1456
|
-
}, className: "node-editor-select-input", children: [(0,
|
1489
|
+
}, className: "node-editor-select-input", children: [(0, import_jsx_runtime22.jsx)("option", { value: "px", children: "Pixels" }), (0, import_jsx_runtime22.jsx)("option", { value: "%", children: "Percentage" })] })] }), (0, import_jsx_runtime22.jsxs)("div", { className: "relative bg-gray-200 dark:bg-gray-700 rounded-lg", style: {
|
1457
1490
|
width: "100%",
|
1458
1491
|
userSelect: "none",
|
1459
1492
|
aspectRatio: currentVideo ? `${currentVideo.width} / ${currentVideo.height}` : `3 / 2`
|
1460
|
-
}, ref: previewAreaRef, children: [(0,
|
1493
|
+
}, ref: previewAreaRef, children: [(0, import_jsx_runtime22.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime22.jsx)("span", { children: currentVideo ? "Video Preview Area" : "Video Dimensions Unknown" }), " ", currentVideo ? (0, import_jsx_runtime22.jsxs)("span", { children: [currentVideo.width, "x", currentVideo.height, "px"] }) : ""] }), (0, import_jsx_runtime22.jsx)("div", { className: `absolute cursor-move ${currentGraphic && !graphicChanged ? "" : "p-2"} rounded-lg bg-primary-500 bg-opacity-50 hover:bg-opacity-75 transition-colors
|
1461
1494
|
${isDragging ? "bg-opacity-75" : ""}`, style: {
|
1462
1495
|
left: `${position.xPct}%`,
|
1463
1496
|
top: `${position.yPct}%`,
|
1464
1497
|
transform: `translate(-${position.xPct}%, -${position.yPct}%)`,
|
1465
1498
|
aspectRatio: currentGraphic && !graphicChanged ? `${currentGraphic.width} / ${currentGraphic.height}` : `1`,
|
1466
1499
|
width: currentGraphic && currentVideo && !graphicChanged ? currentGraphic.width / currentVideo.width * 100 + "%" : void 0
|
1467
|
-
}, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0,
|
1500
|
+
}, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0, import_jsx_runtime22.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_runtime22.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_runtime22.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_runtime22.jsxs)("div", { className: "mt-2 flex gap-4", children: [(0, import_jsx_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["X Position ", positionUnit] }), (0, import_jsx_runtime22.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.xStr ?? (positionUnit === "%" ? position.xPct.toFixed(1) : Math.round(position.x)), onChange: (e) => {
|
1468
1501
|
const newX = Number(e.target.value);
|
1469
1502
|
setPosition(convertPos({
|
1470
1503
|
type: positionUnit === "%" ? "percentage" : "coordinate",
|
@@ -1473,7 +1506,7 @@ var init_summary_view5 = __esm({
|
|
1473
1506
|
y: position.y,
|
1474
1507
|
yStr: position.yStr
|
1475
1508
|
}));
|
1476
|
-
}, 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,
|
1509
|
+
}, 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_runtime22.jsxs)("div", { children: [(0, import_jsx_runtime22.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["Y Position ", positionUnit] }), (0, import_jsx_runtime22.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.yStr ?? (positionUnit === "%" ? position.yPct.toFixed(1) : Math.round(position.y)), onChange: (e) => {
|
1477
1510
|
const newY = Number(e.target.value);
|
1478
1511
|
setPosition(convertPos({
|
1479
1512
|
type: positionUnit === "%" ? "percentage" : "coordinate",
|
@@ -1484,7 +1517,7 @@ var init_summary_view5 = __esm({
|
|
1484
1517
|
}));
|
1485
1518
|
}, 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" })] })] })] })] });
|
1486
1519
|
};
|
1487
|
-
|
1520
|
+
summary_view_default6 = SummaryView10;
|
1488
1521
|
}
|
1489
1522
|
});
|
1490
1523
|
|
@@ -15873,13 +15906,13 @@ function InlineView12({ state, config: _2 }) {
|
|
15873
15906
|
return;
|
15874
15907
|
chartControl.data = makeData(state);
|
15875
15908
|
}, [state]);
|
15876
|
-
return (0,
|
15909
|
+
return (0, import_jsx_runtime23.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime23.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) });
|
15877
15910
|
}
|
15878
|
-
var
|
15911
|
+
var import_jsx_runtime23, import_react21, inline_view_default9;
|
15879
15912
|
var init_inline_view9 = __esm({
|
15880
15913
|
"build/util.stats.latency/inline-view.js"() {
|
15881
15914
|
"use strict";
|
15882
|
-
|
15915
|
+
import_jsx_runtime23 = __toESM(require_jsx_runtime());
|
15883
15916
|
import_react21 = __toESM(require_react());
|
15884
15917
|
init_auto();
|
15885
15918
|
inline_view_default9 = InlineView12;
|
@@ -15892,22 +15925,22 @@ __export(source_node_selection_exports, {
|
|
15892
15925
|
default: () => source_node_selection_default
|
15893
15926
|
});
|
15894
15927
|
function SourceNodeSelection(props) {
|
15895
|
-
return (0,
|
15928
|
+
return (0, import_jsx_runtime24.jsx)("div", { children: (0, import_jsx_runtime24.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime24.jsx)("option", { value: "", children: "---" }, "empty"), Object.values(props.latestDocument.components).map((o, i) => {
|
15896
15929
|
if (o.id == props.id)
|
15897
|
-
return (0,
|
15930
|
+
return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
|
15898
15931
|
if (o.info.category === "output")
|
15899
15932
|
return;
|
15900
|
-
return (0,
|
15933
|
+
return (0, import_jsx_runtime24.jsx)("option", { value: o.id, children: o.config.displayName }, i);
|
15901
15934
|
})] }) });
|
15902
15935
|
function myOnChange(e) {
|
15903
15936
|
props.onChanged(e.target.value);
|
15904
15937
|
}
|
15905
15938
|
}
|
15906
|
-
var
|
15939
|
+
var import_jsx_runtime24, source_node_selection_default;
|
15907
15940
|
var init_source_node_selection = __esm({
|
15908
15941
|
"build/util.stats.latency/source-node-selection.js"() {
|
15909
15942
|
"use strict";
|
15910
|
-
|
15943
|
+
import_jsx_runtime24 = __toESM(require_jsx_runtime());
|
15911
15944
|
source_node_selection_default = SourceNodeSelection;
|
15912
15945
|
}
|
15913
15946
|
});
|
@@ -15972,13 +16005,6 @@ function info_default({ defineComponent, Av, validation: { Z, Port, SourceName,
|
|
15972
16005
|
},
|
15973
16006
|
configForm: {
|
15974
16007
|
form: {
|
15975
|
-
notes: {
|
15976
|
-
help: "Notes about this component",
|
15977
|
-
hint: {
|
15978
|
-
type: "text",
|
15979
|
-
optional: true
|
15980
|
-
}
|
15981
|
-
},
|
15982
16008
|
port: { help: "The port this RTMP input will listen on", hint: { type: "numeric", validation: Port, defaultValue: defaultPort, global: unique("port") } },
|
15983
16009
|
ssl: { help: "Optional: SSL", hint: { type: "boolean", optional: true } },
|
15984
16010
|
appName: { help: "Name of the app", hint: { type: "text", validation: Z.string().min(1), defaultValue: "norsk" } },
|
@@ -15990,6 +16016,13 @@ function info_default({ defineComponent, Av, validation: { Z, Port, SourceName,
|
|
15990
16016
|
validation: Z.array(SourceName),
|
15991
16017
|
global: unique("sourceName")
|
15992
16018
|
}
|
16019
|
+
},
|
16020
|
+
notes: {
|
16021
|
+
help: "Additional notes about this component",
|
16022
|
+
hint: {
|
16023
|
+
type: "text",
|
16024
|
+
optional: true
|
16025
|
+
}
|
15993
16026
|
}
|
15994
16027
|
}
|
15995
16028
|
}
|
@@ -16020,13 +16053,6 @@ function info_default2({ defineComponent, Audio }) {
|
|
16020
16053
|
},
|
16021
16054
|
configForm: {
|
16022
16055
|
form: {
|
16023
|
-
notes: {
|
16024
|
-
help: "Notes about this component",
|
16025
|
-
hint: {
|
16026
|
-
type: "text",
|
16027
|
-
optional: true
|
16028
|
-
}
|
16029
|
-
},
|
16030
16056
|
sampleRate: {
|
16031
16057
|
help: "Samplerate in Hz of the generated audio",
|
16032
16058
|
hint: {
|
@@ -16048,6 +16074,13 @@ function info_default2({ defineComponent, Audio }) {
|
|
16048
16074
|
],
|
16049
16075
|
defaultValue: "stereo"
|
16050
16076
|
}
|
16077
|
+
},
|
16078
|
+
notes: {
|
16079
|
+
help: "Additional notes about this component",
|
16080
|
+
hint: {
|
16081
|
+
type: "text",
|
16082
|
+
optional: true
|
16083
|
+
}
|
16051
16084
|
}
|
16052
16085
|
}
|
16053
16086
|
}
|
@@ -16127,13 +16160,6 @@ function info_default3({ defineComponent, Av, validation }) {
|
|
16127
16160
|
},
|
16128
16161
|
configForm: {
|
16129
16162
|
form: {
|
16130
|
-
notes: {
|
16131
|
-
help: "Notes about this component",
|
16132
|
-
hint: {
|
16133
|
-
type: "text",
|
16134
|
-
optional: true
|
16135
|
-
}
|
16136
|
-
},
|
16137
16163
|
port: { help: "The port this SRT input will connect to", hint: { type: "numeric", validation: Port, defaultValue: 5001 } },
|
16138
16164
|
host: { help: "The IP address/hostname this SRT input will connect to", hint: { type: "text", validation: Hostname, defaultValue: "0.0.0.0" } },
|
16139
16165
|
sourceName: { help: "Source name to identify this by", hint: { type: "text", validation: SourceName, defaultValue: "camera1" } },
|
@@ -16146,6 +16172,13 @@ function info_default3({ defineComponent, Av, validation }) {
|
|
16146
16172
|
view: SocketConfiguration2,
|
16147
16173
|
form: srt_socket_options_default(validation)
|
16148
16174
|
}
|
16175
|
+
},
|
16176
|
+
notes: {
|
16177
|
+
help: "Additional notes about this component",
|
16178
|
+
hint: {
|
16179
|
+
type: "text",
|
16180
|
+
optional: true
|
16181
|
+
}
|
16149
16182
|
}
|
16150
16183
|
}
|
16151
16184
|
}
|
@@ -16217,13 +16250,6 @@ function info_default4({ defineComponent, Av, validation }) {
|
|
16217
16250
|
},
|
16218
16251
|
configForm: {
|
16219
16252
|
form: {
|
16220
|
-
notes: {
|
16221
|
-
help: "Notes about this component",
|
16222
|
-
hint: {
|
16223
|
-
type: "text",
|
16224
|
-
optional: true
|
16225
|
-
}
|
16226
|
-
},
|
16227
16253
|
port: {
|
16228
16254
|
help: "The port this SRT input will listen on",
|
16229
16255
|
hint: {
|
@@ -16279,6 +16305,13 @@ function info_default4({ defineComponent, Av, validation }) {
|
|
16279
16305
|
validation: Z.array(SourceName),
|
16280
16306
|
global: unique("sourceName")
|
16281
16307
|
}
|
16308
|
+
},
|
16309
|
+
notes: {
|
16310
|
+
help: "Additional notes about this component",
|
16311
|
+
hint: {
|
16312
|
+
type: "text",
|
16313
|
+
optional: true
|
16314
|
+
}
|
16282
16315
|
}
|
16283
16316
|
}
|
16284
16317
|
}
|
@@ -16310,13 +16343,13 @@ function info_default5({ defineComponent, Av, validation: { Z, Port, Hostname, S
|
|
16310
16343
|
},
|
16311
16344
|
configForm: {
|
16312
16345
|
form: {
|
16313
|
-
notes: { help: "Notes about this component", hint: { type: "text", optional: true } },
|
16314
16346
|
port: { help: "The receiving port", hint: { type: "numeric", validation: Port, defaultValue: 5001, global: unique("port") } },
|
16315
16347
|
host: { help: "The receiving IP address/hostname", hint: { type: "text", validation: Hostname, defaultValue: "127.0.0.1" } },
|
16316
16348
|
sourceName: { help: "Source name to identify this by", hint: { type: "text", validation: SourceName, defaultValue: "udp-ts", global: unique("sourceName") } },
|
16317
16349
|
interface: { help: "Optional interface to bind to", hint: { type: "text", optional: true, validation: Z.union([Z.string().min(2).max(32), Z.string().length(0)]).optional() } },
|
16318
16350
|
timeout: { help: "Timeout in milliseconds before determining the input is closed", hint: { type: "numeric", validation: Z.number().refine((value) => value > 0 && value < 6e5, "Timeout must be less than 10 minutes"), defaultValue: 1e3 } },
|
16319
|
-
rtpDecapsulate: { help: "Whether to expect the input TS to be encapsulated in RTP via RFC 2250 (default: false)", hint: { type: "boolean" } }
|
16351
|
+
rtpDecapsulate: { help: "Whether to expect the input TS to be encapsulated in RTP via RFC 2250 (default: false)", hint: { type: "boolean" } },
|
16352
|
+
notes: { help: "Additional notes about this component", hint: { type: "text", optional: true } }
|
16320
16353
|
}
|
16321
16354
|
}
|
16322
16355
|
});
|
@@ -16345,13 +16378,6 @@ function info_default6({ defineComponent, Video, validation: { SourceName, uniqu
|
|
16345
16378
|
},
|
16346
16379
|
configForm: {
|
16347
16380
|
form: {
|
16348
|
-
notes: {
|
16349
|
-
help: "Notes about this component",
|
16350
|
-
hint: {
|
16351
|
-
type: "text",
|
16352
|
-
optional: true
|
16353
|
-
}
|
16354
|
-
},
|
16355
16381
|
resolution: {
|
16356
16382
|
help: "The resolution of the test card stream",
|
16357
16383
|
hint: { type: "select", options: Resolutions, defaultValue: { width: 1280, height: 720 } }
|
@@ -16375,6 +16401,10 @@ function info_default6({ defineComponent, Video, validation: { SourceName, uniqu
|
|
16375
16401
|
{ value: "smpte100", display: "SMPTE100" }
|
16376
16402
|
]
|
16377
16403
|
}
|
16404
|
+
},
|
16405
|
+
notes: {
|
16406
|
+
help: "Additional notes about this component",
|
16407
|
+
hint: { type: "text", optional: true }
|
16378
16408
|
}
|
16379
16409
|
}
|
16380
16410
|
}
|
@@ -16386,6 +16416,7 @@ var import_config = __toESM(require_config());
|
|
16386
16416
|
var import_react5 = __toESM(require_react());
|
16387
16417
|
function info_default7(R) {
|
16388
16418
|
const { defineComponent, All, validation: { Z, Hostname } } = R;
|
16419
|
+
const SummaryView11 = import_react5.default.lazy(async () => Promise.resolve().then(() => (init_summary_view3(), summary_view_exports3)));
|
16389
16420
|
const FullscreenView2 = import_react5.default.lazy(async () => Promise.resolve().then(() => (init_fullscreen(), fullscreen_exports)));
|
16390
16421
|
const SegmentConfiguration2 = import_react5.default.lazy(async () => {
|
16391
16422
|
const views = await Promise.resolve().then(() => (init_form_views(), form_views_exports));
|
@@ -16468,7 +16499,7 @@ function info_default7(R) {
|
|
16468
16499
|
}
|
16469
16500
|
return { ...state };
|
16470
16501
|
},
|
16471
|
-
|
16502
|
+
summary: SummaryView11,
|
16472
16503
|
fullscreen: FullscreenView2
|
16473
16504
|
},
|
16474
16505
|
configForm: {
|
@@ -16485,13 +16516,6 @@ function info_default7(R) {
|
|
16485
16516
|
validation: Z.string().min(5).max(15)
|
16486
16517
|
}
|
16487
16518
|
},
|
16488
|
-
notes: {
|
16489
|
-
help: "Notes about this component",
|
16490
|
-
hint: {
|
16491
|
-
type: "text",
|
16492
|
-
optional: true
|
16493
|
-
}
|
16494
|
-
},
|
16495
16519
|
sessionId: {
|
16496
16520
|
help: "Generate a unique session id per run to avoid cache collisions",
|
16497
16521
|
hint: {
|
@@ -16612,6 +16636,13 @@ function info_default7(R) {
|
|
16612
16636
|
}
|
16613
16637
|
]
|
16614
16638
|
}
|
16639
|
+
},
|
16640
|
+
notes: {
|
16641
|
+
help: "Additional notes about this component",
|
16642
|
+
hint: {
|
16643
|
+
type: "text",
|
16644
|
+
optional: true
|
16645
|
+
}
|
16615
16646
|
}
|
16616
16647
|
}
|
16617
16648
|
}
|
@@ -16685,16 +16716,13 @@ function info_default8(R) {
|
|
16685
16716
|
hardware: (0, import_config2.HardwareSelection)()
|
16686
16717
|
},
|
16687
16718
|
form: {
|
16688
|
-
notes: {
|
16689
|
-
help: "Notes about this component",
|
16690
|
-
hint: {
|
16691
|
-
type: "text",
|
16692
|
-
optional: true
|
16693
|
-
}
|
16694
|
-
},
|
16695
16719
|
bufferDelayMs: { help: "How many milliseconds in the jitter buffer", hint: { type: "numeric", validation: JitterBuffer, defaultValue: 500 } },
|
16696
16720
|
skipTranscode: { help: "Skip transcoding for WebRTC-ready streams", hint: { type: "boolean", defaultValue: false } },
|
16697
|
-
showPreview: { help: "Show video preview", hint: { type: "boolean", defaultValue: true } }
|
16721
|
+
showPreview: { help: "Show video preview", hint: { type: "boolean", defaultValue: true } },
|
16722
|
+
notes: {
|
16723
|
+
help: "Additional notes about this component",
|
16724
|
+
hint: { type: "text", optional: true }
|
16725
|
+
}
|
16698
16726
|
}
|
16699
16727
|
}
|
16700
16728
|
});
|
@@ -16749,11 +16777,14 @@ function info_default9({ defineComponent, Av, validation: { Z, JitterBuffer } })
|
|
16749
16777
|
},
|
16750
16778
|
configForm: {
|
16751
16779
|
form: {
|
16752
|
-
notes: { help: "Notes about this component", hint: { type: "text", optional: true } },
|
16753
16780
|
url: { help: "The URL of the remote RTMP server to connect to, including the full stream path and credentials", hint: { type: "text", validation: Z.string().min(5) } },
|
16754
16781
|
bufferDelayMs: { help: "How many milliseconds in the jitter buffer", hint: { type: "numeric", validation: JitterBuffer, defaultValue: 500 } },
|
16755
16782
|
avDelayMs: { help: "How many milliseconds to delay A/V to account for subtitles", hint: { type: "numeric", validation: JitterBuffer, defaultValue: 50 } },
|
16756
|
-
retryConnectionTimeout: { help: "Number of seconds to wait until a retry is attempted to the RTMP server", hint: { type: "numeric", validation: Z.number().min(1).max(10), defaultValue: 5 } }
|
16783
|
+
retryConnectionTimeout: { help: "Number of seconds to wait until a retry is attempted to the RTMP server", hint: { type: "numeric", validation: Z.number().min(1).max(10), defaultValue: 5 } },
|
16784
|
+
notes: {
|
16785
|
+
help: "Additional notes about this component",
|
16786
|
+
hint: { type: "text", optional: true }
|
16787
|
+
}
|
16757
16788
|
}
|
16758
16789
|
}
|
16759
16790
|
});
|
@@ -16814,7 +16845,6 @@ function info_default10(registration) {
|
|
16814
16845
|
},
|
16815
16846
|
configForm: {
|
16816
16847
|
form: {
|
16817
|
-
notes: { help: "Notes about this component", hint: { type: "text", optional: true } },
|
16818
16848
|
port: {
|
16819
16849
|
help: "The port this SRT output will connect to or listen on",
|
16820
16850
|
hint: {
|
@@ -16857,6 +16887,10 @@ function info_default10(registration) {
|
|
16857
16887
|
view: SocketConfiguration2,
|
16858
16888
|
form: srt_socket_options_default(validation)
|
16859
16889
|
}
|
16890
|
+
},
|
16891
|
+
notes: {
|
16892
|
+
help: "Additional notes about this component",
|
16893
|
+
hint: { type: "text", optional: true }
|
16860
16894
|
}
|
16861
16895
|
}
|
16862
16896
|
}
|
@@ -16891,11 +16925,14 @@ function info_default12({ defineComponent, All, validation: { Port, Hostname, Ji
|
|
16891
16925
|
},
|
16892
16926
|
configForm: {
|
16893
16927
|
form: {
|
16894
|
-
notes: { help: "Notes about this component", hint: { type: "text", optional: true } },
|
16895
16928
|
port: { help: "The port this UDP TS output will send to", hint: { type: "numeric", validation: Port, defaultValue: 8001 } },
|
16896
16929
|
destinationHost: { help: "The IP address/Hostname this UDP TS output will send to", hint: { type: "text", validation: Hostname, defaultValue: "127.0.0.1" } },
|
16897
16930
|
bufferDelayMs: { help: "How many milliseconds in the jitter buffer", hint: { type: "numeric", validation: JitterBuffer, defaultValue: 500 } },
|
16898
|
-
interface: { help: "Which interface to bind to for publishing", hint: { type: "text", validation: Z.union([Z.string().length(0), Iface]), defaultValue: "any" } }
|
16931
|
+
interface: { help: "Which interface to bind to for publishing", hint: { type: "text", validation: Z.union([Z.string().length(0), Iface]), defaultValue: "any" } },
|
16932
|
+
notes: {
|
16933
|
+
help: "Additional notes about this component",
|
16934
|
+
hint: { type: "text", optional: true }
|
16935
|
+
}
|
16899
16936
|
}
|
16900
16937
|
}
|
16901
16938
|
});
|
@@ -16904,7 +16941,7 @@ function info_default12({ defineComponent, All, validation: { Port, Hostname, Ji
|
|
16904
16941
|
// build/output.whep/info.js
|
16905
16942
|
var import_config3 = __toESM(require_config());
|
16906
16943
|
var import_react12 = __toESM(require_react());
|
16907
|
-
var
|
16944
|
+
var SummaryView7 = import_react12.default.lazy(async () => Promise.resolve().then(() => (init_summary_view4(), summary_view_exports4)));
|
16908
16945
|
function info_default13(R) {
|
16909
16946
|
const { defineComponent, Av, validation: { JitterBuffer } } = R;
|
16910
16947
|
const InlineView13 = import_react12.default.lazy(async () => Promise.resolve().then(() => (init_inline_view6(), inline_view_exports6)));
|
@@ -16948,16 +16985,19 @@ function info_default13(R) {
|
|
16948
16985
|
return { ...state };
|
16949
16986
|
},
|
16950
16987
|
inline: InlineView13,
|
16951
|
-
summary:
|
16988
|
+
summary: SummaryView7
|
16952
16989
|
},
|
16953
16990
|
configForm: {
|
16954
16991
|
global: {
|
16955
16992
|
iceServers: (0, import_config3.GlobalIceServers)(R)
|
16956
16993
|
},
|
16957
16994
|
form: {
|
16958
|
-
notes: { help: "Notes about this component", hint: { type: "text", optional: true } },
|
16959
16995
|
bufferDelayMs: { help: "How many milliseconds in the jitter buffer", hint: { type: "numeric", validation: JitterBuffer, defaultValue: 500 } },
|
16960
|
-
showPreview: { help: "Show video preview", hint: { type: "boolean", defaultValue: true } }
|
16996
|
+
showPreview: { help: "Show video preview", hint: { type: "boolean", defaultValue: true } },
|
16997
|
+
notes: {
|
16998
|
+
help: "Additional notes about this component",
|
16999
|
+
hint: { type: "text", optional: true }
|
17000
|
+
}
|
16961
17001
|
}
|
16962
17002
|
}
|
16963
17003
|
});
|
@@ -16969,7 +17009,7 @@ function assertUnreachable8(_) {
|
|
16969
17009
|
// build/processor.browserOverlay/info.js
|
16970
17010
|
var import_config4 = __toESM(require_config());
|
16971
17011
|
var import_react14 = __toESM(require_react());
|
16972
|
-
var
|
17012
|
+
var SummaryView9 = import_react14.default.lazy(async () => Promise.resolve().then(() => (init_summary_view5(), summary_view_exports5)));
|
16973
17013
|
var InlineView10 = import_react14.default.lazy(async () => Promise.resolve().then(() => (init_inline_view7(), inline_view_exports7)));
|
16974
17014
|
function info_default14({ defineComponent, Video, validation: { Z } }) {
|
16975
17015
|
return defineComponent({
|
@@ -16997,7 +17037,7 @@ function info_default14({ defineComponent, Video, validation: { Z } }) {
|
|
16997
17037
|
};
|
16998
17038
|
},
|
16999
17039
|
runtime: {
|
17000
|
-
summary:
|
17040
|
+
summary: SummaryView9,
|
17001
17041
|
inline: InlineView10,
|
17002
17042
|
initialState: () => ({
|
17003
17043
|
currentUrl: "",
|
@@ -17504,7 +17544,7 @@ var import_config6 = __toESM(require_config());
|
|
17504
17544
|
var import_react20 = __toESM(require_react());
|
17505
17545
|
function info_default17({ defineComponent, Video }) {
|
17506
17546
|
const GraphicSelection2 = import_react20.default.lazy(async () => Promise.resolve().then(() => (init_image_selection(), image_selection_exports)));
|
17507
|
-
const
|
17547
|
+
const SummaryView11 = import_react20.default.lazy(async () => Promise.resolve().then(() => (init_summary_view6(), summary_view_exports6)));
|
17508
17548
|
return defineComponent({
|
17509
17549
|
identifier: "processor.onscreenGraphic",
|
17510
17550
|
category: "processor",
|
@@ -17530,7 +17570,7 @@ function info_default17({ defineComponent, Video }) {
|
|
17530
17570
|
};
|
17531
17571
|
},
|
17532
17572
|
runtime: {
|
17533
|
-
summary:
|
17573
|
+
summary: SummaryView11,
|
17534
17574
|
initialState: () => ({}),
|
17535
17575
|
handleEvent: (ev, state) => {
|
17536
17576
|
const evType = ev.type;
|