unified-video-framework 1.4.342 → 1.4.343
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/package.json +1 -1
- package/packages/web/dist/react/components/FlashNewsTicker.d.ts.map +1 -1
- package/packages/web/dist/react/components/FlashNewsTicker.js +2 -17
- package/packages/web/dist/react/components/FlashNewsTicker.js.map +1 -1
- package/packages/web/src/react/components/FlashNewsTicker.tsx +3 -26
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.343",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashNewsTicker.d.ts","sourceRoot":"","sources":["../../../src/react/components/FlashNewsTicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EACV,qBAAqB,EAErB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,KAAK;IACb,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"FlashNewsTicker.d.ts","sourceRoot":"","sources":["../../../src/react/components/FlashNewsTicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EACV,qBAAqB,EAErB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,KAAK;IACb,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsL3C,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -4,7 +4,6 @@ export const FlashNewsTicker = ({ config, onAPIReady }) => {
|
|
|
4
4
|
const [items, setItems] = useState(config.items || []);
|
|
5
5
|
const [isPaused, setIsPaused] = useState(false);
|
|
6
6
|
const [contentWidth, setContentWidth] = useState(0);
|
|
7
|
-
const [controlsHeight, setControlsHeight] = useState(60);
|
|
8
7
|
const contentRef = useRef(null);
|
|
9
8
|
const apiRef = useRef(null);
|
|
10
9
|
const resizeObserverRef = useRef(null);
|
|
@@ -62,20 +61,6 @@ export const FlashNewsTicker = ({ config, onAPIReady }) => {
|
|
|
62
61
|
useEffect(() => {
|
|
63
62
|
setItems(config.items || []);
|
|
64
63
|
}, [config.items]);
|
|
65
|
-
useEffect(() => {
|
|
66
|
-
const detectControlsHeight = () => {
|
|
67
|
-
const controls = document.querySelector('.uvf-controls, .video-controls, [class*="controls"]');
|
|
68
|
-
if (controls) {
|
|
69
|
-
const height = controls.offsetHeight;
|
|
70
|
-
if (height > 0) {
|
|
71
|
-
setControlsHeight(height);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
detectControlsHeight();
|
|
76
|
-
const interval = setInterval(detectControlsHeight, 1000);
|
|
77
|
-
return () => clearInterval(interval);
|
|
78
|
-
}, []);
|
|
79
64
|
useEffect(() => {
|
|
80
65
|
const api = {
|
|
81
66
|
show: () => setVisible(true),
|
|
@@ -101,7 +86,7 @@ export const FlashNewsTicker = ({ config, onAPIReady }) => {
|
|
|
101
86
|
const fontSize = isMobile ? 12 : mergedConfig.fontSize;
|
|
102
87
|
const positionStyles = mergedConfig.position === 'top'
|
|
103
88
|
? { top: mergedConfig.topOffset }
|
|
104
|
-
: { bottom:
|
|
89
|
+
: { bottom: mergedConfig.bottomOffset || 10 };
|
|
105
90
|
return (React.createElement(React.Fragment, null,
|
|
106
91
|
React.createElement("div", { className: `uvf-flash-news-ticker ticker-${mergedConfig.position}`, style: {
|
|
107
92
|
position: 'fixed',
|
|
@@ -109,7 +94,7 @@ export const FlashNewsTicker = ({ config, onAPIReady }) => {
|
|
|
109
94
|
right: 0,
|
|
110
95
|
height: `${height}px`,
|
|
111
96
|
backgroundColor: mergedConfig.backgroundColor,
|
|
112
|
-
zIndex:
|
|
97
|
+
zIndex: 90,
|
|
113
98
|
overflow: 'hidden',
|
|
114
99
|
pointerEvents: 'none',
|
|
115
100
|
display: 'flex',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashNewsTicker.js","sourceRoot":"","sources":["../../../src/react/components/FlashNewsTicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAe,MAAM,OAAO,CAAC;AAYjF,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IAEzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAwB,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FlashNewsTicker.js","sourceRoot":"","sources":["../../../src/react/components/FlashNewsTicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,6 @@ export const FlashNewsTicker: React.FC<Props> = ({ config, onAPIReady }) => {
|
|
|
16
16
|
const [items, setItems] = useState<FlashNewsTickerItem[]>(config.items || []);
|
|
17
17
|
const [isPaused, setIsPaused] = useState(false);
|
|
18
18
|
const [contentWidth, setContentWidth] = useState(0);
|
|
19
|
-
const [controlsHeight, setControlsHeight] = useState(60);
|
|
20
19
|
|
|
21
20
|
// Refs
|
|
22
21
|
const contentRef = useRef<HTMLDivElement>(null);
|
|
@@ -93,28 +92,6 @@ export const FlashNewsTicker: React.FC<Props> = ({ config, onAPIReady }) => {
|
|
|
93
92
|
setItems(config.items || []);
|
|
94
93
|
}, [config.items]);
|
|
95
94
|
|
|
96
|
-
// Detect controls height dynamically
|
|
97
|
-
useEffect(() => {
|
|
98
|
-
const detectControlsHeight = () => {
|
|
99
|
-
// Try to find the video controls element
|
|
100
|
-
const controls = document.querySelector('.uvf-controls, .video-controls, [class*="controls"]') as HTMLElement;
|
|
101
|
-
if (controls) {
|
|
102
|
-
const height = controls.offsetHeight;
|
|
103
|
-
if (height > 0) {
|
|
104
|
-
setControlsHeight(height);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// Initial detection
|
|
110
|
-
detectControlsHeight();
|
|
111
|
-
|
|
112
|
-
// Re-detect periodically in case controls appear later
|
|
113
|
-
const interval = setInterval(detectControlsHeight, 1000);
|
|
114
|
-
|
|
115
|
-
return () => clearInterval(interval);
|
|
116
|
-
}, []);
|
|
117
|
-
|
|
118
95
|
// Create and expose API
|
|
119
96
|
useEffect(() => {
|
|
120
97
|
const api: FlashNewsTickerAPI = {
|
|
@@ -145,11 +122,11 @@ export const FlashNewsTicker: React.FC<Props> = ({ config, onAPIReady }) => {
|
|
|
145
122
|
const height = isMobile ? 32 : mergedConfig.height;
|
|
146
123
|
const fontSize = isMobile ? 12 : mergedConfig.fontSize;
|
|
147
124
|
|
|
148
|
-
// Position styles -
|
|
125
|
+
// Position styles - overlay on video, just above where controls appear
|
|
149
126
|
const positionStyles =
|
|
150
127
|
mergedConfig.position === 'top'
|
|
151
128
|
? { top: mergedConfig.topOffset }
|
|
152
|
-
: { bottom:
|
|
129
|
+
: { bottom: mergedConfig.bottomOffset || 10 };
|
|
153
130
|
|
|
154
131
|
return (
|
|
155
132
|
<>
|
|
@@ -161,7 +138,7 @@ export const FlashNewsTicker: React.FC<Props> = ({ config, onAPIReady }) => {
|
|
|
161
138
|
right: 0,
|
|
162
139
|
height: `${height}px`,
|
|
163
140
|
backgroundColor: mergedConfig.backgroundColor,
|
|
164
|
-
zIndex:
|
|
141
|
+
zIndex: 90,
|
|
165
142
|
overflow: 'hidden',
|
|
166
143
|
pointerEvents: 'none',
|
|
167
144
|
display: 'flex',
|