@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20260803093422 → 0.8.1-dev.20260803112407
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.
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
"use client";
|
|
4
|
-
|
|
5
3
|
// src/components/HlsPlayer.tsx
|
|
6
4
|
import React, { useRef, useEffect, useState, useCallback } from "react";
|
|
7
5
|
import Hls from "hls.js";
|
|
@@ -459,6 +457,7 @@ var HlsPlayer = React.memo(
|
|
|
459
457
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
460
458
|
className: "hls-play-btn",
|
|
461
459
|
onClick: (e) => {
|
|
460
|
+
e.preventDefault();
|
|
462
461
|
e.stopPropagation();
|
|
463
462
|
handlePlayPause();
|
|
464
463
|
},
|
|
@@ -566,6 +565,7 @@ var HlsPlayer = React.memo(
|
|
|
566
565
|
type: "button",
|
|
567
566
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
568
567
|
onClick: (e) => {
|
|
568
|
+
e.preventDefault();
|
|
569
569
|
e.stopPropagation();
|
|
570
570
|
handleMuteToggle();
|
|
571
571
|
},
|
|
@@ -587,6 +587,7 @@ var HlsPlayer = React.memo(
|
|
|
587
587
|
type: "button",
|
|
588
588
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
589
589
|
onClick: (e) => {
|
|
590
|
+
e.preventDefault();
|
|
590
591
|
e.stopPropagation();
|
|
591
592
|
handleFullscreenToggle();
|
|
592
593
|
},
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
"use client";
|
|
4
|
+
|
|
3
5
|
// src/components/HlsPlayer.tsx
|
|
4
6
|
import React, { useRef, useEffect, useState, useCallback } from "react";
|
|
5
7
|
import Hls from "hls.js";
|
|
@@ -457,6 +459,7 @@ var HlsPlayer = React.memo(
|
|
|
457
459
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
458
460
|
className: "hls-play-btn",
|
|
459
461
|
onClick: (e) => {
|
|
462
|
+
e.preventDefault();
|
|
460
463
|
e.stopPropagation();
|
|
461
464
|
handlePlayPause();
|
|
462
465
|
},
|
|
@@ -564,6 +567,7 @@ var HlsPlayer = React.memo(
|
|
|
564
567
|
type: "button",
|
|
565
568
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
566
569
|
onClick: (e) => {
|
|
570
|
+
e.preventDefault();
|
|
567
571
|
e.stopPropagation();
|
|
568
572
|
handleMuteToggle();
|
|
569
573
|
},
|
|
@@ -585,6 +589,7 @@ var HlsPlayer = React.memo(
|
|
|
585
589
|
type: "button",
|
|
586
590
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
587
591
|
onClick: (e) => {
|
|
592
|
+
e.preventDefault();
|
|
588
593
|
e.stopPropagation();
|
|
589
594
|
handleFullscreenToggle();
|
|
590
595
|
},
|
package/dist/index.js
CHANGED
|
@@ -653,6 +653,7 @@ var init_HlsPlayer = __esm({
|
|
|
653
653
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
654
654
|
className: "hls-play-btn",
|
|
655
655
|
onClick: (e) => {
|
|
656
|
+
e.preventDefault();
|
|
656
657
|
e.stopPropagation();
|
|
657
658
|
handlePlayPause();
|
|
658
659
|
},
|
|
@@ -760,6 +761,7 @@ var init_HlsPlayer = __esm({
|
|
|
760
761
|
type: "button",
|
|
761
762
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
762
763
|
onClick: (e) => {
|
|
764
|
+
e.preventDefault();
|
|
763
765
|
e.stopPropagation();
|
|
764
766
|
handleMuteToggle();
|
|
765
767
|
},
|
|
@@ -781,6 +783,7 @@ var init_HlsPlayer = __esm({
|
|
|
781
783
|
type: "button",
|
|
782
784
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
783
785
|
onClick: (e) => {
|
|
786
|
+
e.preventDefault();
|
|
784
787
|
e.stopPropagation();
|
|
785
788
|
handleFullscreenToggle();
|
|
786
789
|
},
|
|
@@ -6130,36 +6133,6 @@ var parseMaybeNumber = (value) => {
|
|
|
6130
6133
|
const n = Number(value);
|
|
6131
6134
|
return Number.isFinite(n) ? n : void 0;
|
|
6132
6135
|
};
|
|
6133
|
-
function resolveAssetUrl(fieldValue, tag) {
|
|
6134
|
-
if (!fieldValue) {
|
|
6135
|
-
return void 0;
|
|
6136
|
-
}
|
|
6137
|
-
if (typeof fieldValue === "string") {
|
|
6138
|
-
const trimmed = fieldValue.trim();
|
|
6139
|
-
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
6140
|
-
return trimmed;
|
|
6141
|
-
}
|
|
6142
|
-
try {
|
|
6143
|
-
const parsed = JSON.parse(trimmed);
|
|
6144
|
-
return resolveAssetUrl(parsed, tag);
|
|
6145
|
-
} catch {
|
|
6146
|
-
return void 0;
|
|
6147
|
-
}
|
|
6148
|
-
}
|
|
6149
|
-
if (Array.isArray(fieldValue)) {
|
|
6150
|
-
const asset = tag ? fieldValue.find(
|
|
6151
|
-
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
6152
|
-
) : fieldValue[0];
|
|
6153
|
-
return asset?.assetUrl;
|
|
6154
|
-
}
|
|
6155
|
-
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
6156
|
-
const assetObject = fieldValue;
|
|
6157
|
-
if (assetObject.assetUrl) {
|
|
6158
|
-
return assetObject.assetUrl;
|
|
6159
|
-
}
|
|
6160
|
-
}
|
|
6161
|
-
return void 0;
|
|
6162
|
-
}
|
|
6163
6136
|
var getNestedValue3 = (obj, path) => {
|
|
6164
6137
|
if (!obj || !path) {
|
|
6165
6138
|
return void 0;
|
|
@@ -6169,57 +6142,114 @@ var getNestedValue3 = (obj, path) => {
|
|
|
6169
6142
|
}, obj);
|
|
6170
6143
|
};
|
|
6171
6144
|
var ImageGalleryNode = (props) => {
|
|
6172
|
-
|
|
6145
|
+
function resolveAsset(fieldValue, tag) {
|
|
6146
|
+
if (!fieldValue) {
|
|
6147
|
+
return void 0;
|
|
6148
|
+
}
|
|
6149
|
+
if (typeof fieldValue === "string") {
|
|
6150
|
+
const trimmed = fieldValue.trim();
|
|
6151
|
+
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
6152
|
+
return {
|
|
6153
|
+
assetUrl: trimmed
|
|
6154
|
+
};
|
|
6155
|
+
}
|
|
6156
|
+
try {
|
|
6157
|
+
const parsed = JSON.parse(trimmed);
|
|
6158
|
+
return resolveAsset(parsed, tag);
|
|
6159
|
+
} catch {
|
|
6160
|
+
return void 0;
|
|
6161
|
+
}
|
|
6162
|
+
}
|
|
6163
|
+
if (Array.isArray(fieldValue)) {
|
|
6164
|
+
const asset = tag ? fieldValue.find(
|
|
6165
|
+
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
6166
|
+
) : fieldValue[0];
|
|
6167
|
+
if (!asset) return void 0;
|
|
6168
|
+
return {
|
|
6169
|
+
assetUrl: asset.assetUrl,
|
|
6170
|
+
posterUrl: asset.posterUrl,
|
|
6171
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
6172
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
6173
|
+
device: asset.device,
|
|
6174
|
+
tag: asset.tag
|
|
6175
|
+
};
|
|
6176
|
+
}
|
|
6177
|
+
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
6178
|
+
const asset = fieldValue;
|
|
6179
|
+
if (!asset.assetUrl) {
|
|
6180
|
+
return void 0;
|
|
6181
|
+
}
|
|
6182
|
+
return {
|
|
6183
|
+
assetUrl: asset.assetUrl,
|
|
6184
|
+
posterUrl: asset.posterUrl,
|
|
6185
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
6186
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
6187
|
+
device: asset.device,
|
|
6188
|
+
tag: asset.tag
|
|
6189
|
+
};
|
|
6190
|
+
}
|
|
6191
|
+
return void 0;
|
|
6192
|
+
}
|
|
6193
|
+
const resolveImage = (image) => {
|
|
6173
6194
|
let imageUrl = image.imageUrl;
|
|
6195
|
+
let posterUrl = image.posterUrl;
|
|
6196
|
+
let intrinsicWidth = image.intrinsicWidth;
|
|
6197
|
+
let intrinsicHeight = image.intrinsicHeight;
|
|
6174
6198
|
if (image.datafield && props.dataitem) {
|
|
6175
6199
|
const fieldValue = getNestedValue3(props.dataitem, image.datafield);
|
|
6176
|
-
const resolvedAsset =
|
|
6200
|
+
const resolvedAsset = resolveAsset(fieldValue, image.tag);
|
|
6177
6201
|
if (resolvedAsset) {
|
|
6178
|
-
imageUrl = resolvedAsset;
|
|
6202
|
+
imageUrl = resolvedAsset.assetUrl;
|
|
6203
|
+
posterUrl = resolvedAsset.posterUrl;
|
|
6204
|
+
intrinsicWidth = resolvedAsset.intrinsicWidth;
|
|
6205
|
+
intrinsicHeight = resolvedAsset.intrinsicHeight;
|
|
6179
6206
|
}
|
|
6180
6207
|
}
|
|
6181
6208
|
if (!imageUrl) {
|
|
6182
|
-
return
|
|
6183
|
-
}
|
|
6184
|
-
if (imageUrl.startsWith("http")) {
|
|
6185
|
-
return imageUrl;
|
|
6209
|
+
return void 0;
|
|
6186
6210
|
}
|
|
6187
|
-
|
|
6188
|
-
|
|
6189
|
-
|
|
6211
|
+
return {
|
|
6212
|
+
imageUrl: imageUrl.startsWith("http") ? imageUrl : AssetUtility_default.resolveUrl(props.assetBaseUrl, imageUrl),
|
|
6213
|
+
posterUrl: posterUrl ? AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl) : void 0,
|
|
6214
|
+
intrinsicWidth,
|
|
6215
|
+
intrinsicHeight
|
|
6216
|
+
};
|
|
6190
6217
|
};
|
|
6191
6218
|
const resolvePosterUrl = (posterUrl) => {
|
|
6192
6219
|
if (!posterUrl) return void 0;
|
|
6193
6220
|
return AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl);
|
|
6194
6221
|
};
|
|
6195
6222
|
const rawImages = Array.isArray(props.node.images) ? props.node.images : [];
|
|
6196
|
-
const hlsImages = rawImages.filter(
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
|
|
6200
|
-
|
|
6201
|
-
|
|
6223
|
+
const hlsImages = rawImages.filter((img) => {
|
|
6224
|
+
const resolved = resolveImage(img);
|
|
6225
|
+
return resolved?.imageUrl?.endsWith(".m3u8");
|
|
6226
|
+
});
|
|
6227
|
+
const staticImages = rawImages.filter((img) => {
|
|
6228
|
+
const resolved = resolveImage(img);
|
|
6229
|
+
return resolved && !resolved.imageUrl?.endsWith(".m3u8");
|
|
6230
|
+
});
|
|
6202
6231
|
const hlsSources = [
|
|
6203
6232
|
...DEVICE_ORDER.flatMap((deviceKey) => {
|
|
6204
6233
|
const img = hlsImages.find((i) => i.device === deviceKey);
|
|
6205
6234
|
if (!img) return [];
|
|
6206
|
-
const
|
|
6207
|
-
if (!
|
|
6208
|
-
const media = deviceToMediaQuery(img.device);
|
|
6209
|
-
const posterUrl = resolvePosterUrl(img.posterUrl);
|
|
6235
|
+
const resolved = resolveImage(img);
|
|
6236
|
+
if (!resolved) return [];
|
|
6210
6237
|
return [
|
|
6211
6238
|
{
|
|
6212
|
-
src,
|
|
6213
|
-
...
|
|
6214
|
-
...posterUrl ? { posterUrl } : {}
|
|
6239
|
+
src: resolved.imageUrl,
|
|
6240
|
+
...deviceToMediaQuery(img.device) ? { media: deviceToMediaQuery(img.device) } : {},
|
|
6241
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
6215
6242
|
}
|
|
6216
6243
|
];
|
|
6217
6244
|
}),
|
|
6218
6245
|
...hlsImages.filter((img) => !img.device).map((img) => {
|
|
6219
|
-
const
|
|
6220
|
-
|
|
6221
|
-
return {
|
|
6222
|
-
|
|
6246
|
+
const resolved = resolveImage(img);
|
|
6247
|
+
if (!resolved) return void 0;
|
|
6248
|
+
return {
|
|
6249
|
+
src: resolved.imageUrl,
|
|
6250
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
6251
|
+
};
|
|
6252
|
+
}).filter(Boolean)
|
|
6223
6253
|
];
|
|
6224
6254
|
const primaryHls = hlsImages.find((img) => !img.device) ?? hlsImages[0];
|
|
6225
6255
|
const hlsIntrinsicWidth = primaryHls ? parseMaybeNumber(primaryHls.intrinsicWidth)?.toString() : void 0;
|
|
@@ -6261,7 +6291,11 @@ var ImageGalleryNode = (props) => {
|
|
|
6261
6291
|
if (!match) {
|
|
6262
6292
|
return null;
|
|
6263
6293
|
}
|
|
6264
|
-
const
|
|
6294
|
+
const resolved = resolveImage(match);
|
|
6295
|
+
if (!resolved) {
|
|
6296
|
+
return null;
|
|
6297
|
+
}
|
|
6298
|
+
const srcUrl = resolved.imageUrl;
|
|
6265
6299
|
if (!srcUrl) {
|
|
6266
6300
|
return null;
|
|
6267
6301
|
}
|
|
@@ -6278,7 +6312,8 @@ var ImageGalleryNode = (props) => {
|
|
|
6278
6312
|
}),
|
|
6279
6313
|
(() => {
|
|
6280
6314
|
const img = staticFallback;
|
|
6281
|
-
const
|
|
6315
|
+
const resolved = resolveImage(img);
|
|
6316
|
+
const imageUrl = resolved?.imageUrl;
|
|
6282
6317
|
if (!imageUrl) {
|
|
6283
6318
|
return null;
|
|
6284
6319
|
}
|
|
@@ -6305,7 +6340,8 @@ var ImageGalleryNode = (props) => {
|
|
|
6305
6340
|
] }) : (
|
|
6306
6341
|
/* Case 2: Only device-specific images exist */
|
|
6307
6342
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_jsx_runtime72.Fragment, { children: staticSources.map((img, index) => {
|
|
6308
|
-
const
|
|
6343
|
+
const resolved = resolveImage(img);
|
|
6344
|
+
const imageUrl = resolved?.imageUrl;
|
|
6309
6345
|
if (!imageUrl) {
|
|
6310
6346
|
return null;
|
|
6311
6347
|
}
|
|
@@ -6947,7 +6983,7 @@ var getNestedValue6 = (obj, path) => {
|
|
|
6947
6983
|
return current && current[key] !== void 0 ? current[key] : void 0;
|
|
6948
6984
|
}, obj);
|
|
6949
6985
|
};
|
|
6950
|
-
function
|
|
6986
|
+
function resolveAssetUrl(fieldValue, tag) {
|
|
6951
6987
|
if (!fieldValue) {
|
|
6952
6988
|
return void 0;
|
|
6953
6989
|
}
|
|
@@ -6958,7 +6994,7 @@ function resolveAssetUrl2(fieldValue, tag) {
|
|
|
6958
6994
|
}
|
|
6959
6995
|
try {
|
|
6960
6996
|
const parsed = JSON.parse(trimmed);
|
|
6961
|
-
return
|
|
6997
|
+
return resolveAssetUrl(parsed, tag);
|
|
6962
6998
|
} catch {
|
|
6963
6999
|
return void 0;
|
|
6964
7000
|
}
|
|
@@ -6985,7 +7021,7 @@ function generateCompleteBackgroundString(layers, apiBaseUrl, dataItem) {
|
|
|
6985
7021
|
let assetUrl = imageValue.assetUrl || "";
|
|
6986
7022
|
if (layer.datafield && dataItem) {
|
|
6987
7023
|
const fieldValue = getNestedValue6(dataItem, layer.datafield);
|
|
6988
|
-
const resolvedAssetUrl =
|
|
7024
|
+
const resolvedAssetUrl = resolveAssetUrl(fieldValue, layer.tag);
|
|
6989
7025
|
if (resolvedAssetUrl) {
|
|
6990
7026
|
assetUrl = resolvedAssetUrl;
|
|
6991
7027
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -137,7 +137,7 @@ import React3 from "react";
|
|
|
137
137
|
// src/components/DeviceAssetSelector.tsx
|
|
138
138
|
import dynamic2 from "next/dynamic";
|
|
139
139
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
140
|
-
var HlsPlayer = dynamic2(() => import("./HlsPlayer-
|
|
140
|
+
var HlsPlayer = dynamic2(() => import("./HlsPlayer-IW52N5RG.mjs"), { ssr: false });
|
|
141
141
|
var FORMAT_CLASSES = {
|
|
142
142
|
center: "justify-center",
|
|
143
143
|
left: "justify-start",
|
|
@@ -509,7 +509,7 @@ import React14 from "react";
|
|
|
509
509
|
// src/components/pageRenderingEngine/nodes/ImageNode.tsx
|
|
510
510
|
import dynamic5 from "next/dynamic";
|
|
511
511
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
512
|
-
var HlsPlayer2 = dynamic5(() => import("./HlsPlayer-
|
|
512
|
+
var HlsPlayer2 = dynamic5(() => import("./HlsPlayer-IW52N5RG.mjs"), { ssr: false });
|
|
513
513
|
var getNestedValue = (obj, path) => {
|
|
514
514
|
if (!obj || !path) return void 0;
|
|
515
515
|
return path.split(".").reduce((current, key) => {
|
|
@@ -1431,7 +1431,7 @@ var NoDataFound_default = NoDataFound;
|
|
|
1431
1431
|
// src/components/pageRenderingEngine/nodes/ImageGalleryNode.tsx
|
|
1432
1432
|
import dynamic9 from "next/dynamic";
|
|
1433
1433
|
import { Fragment as Fragment5, jsx as jsx32, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1434
|
-
var HlsPlayer3 = dynamic9(() => import("./HlsPlayer-
|
|
1434
|
+
var HlsPlayer3 = dynamic9(() => import("./HlsPlayer-IW52N5RG.mjs"), { ssr: false });
|
|
1435
1435
|
var deviceToMediaQuery = (device) => {
|
|
1436
1436
|
switch (device) {
|
|
1437
1437
|
case "lg":
|
|
@@ -1452,36 +1452,6 @@ var parseMaybeNumber = (value) => {
|
|
|
1452
1452
|
const n = Number(value);
|
|
1453
1453
|
return Number.isFinite(n) ? n : void 0;
|
|
1454
1454
|
};
|
|
1455
|
-
function resolveAssetUrl(fieldValue, tag) {
|
|
1456
|
-
if (!fieldValue) {
|
|
1457
|
-
return void 0;
|
|
1458
|
-
}
|
|
1459
|
-
if (typeof fieldValue === "string") {
|
|
1460
|
-
const trimmed = fieldValue.trim();
|
|
1461
|
-
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
1462
|
-
return trimmed;
|
|
1463
|
-
}
|
|
1464
|
-
try {
|
|
1465
|
-
const parsed = JSON.parse(trimmed);
|
|
1466
|
-
return resolveAssetUrl(parsed, tag);
|
|
1467
|
-
} catch {
|
|
1468
|
-
return void 0;
|
|
1469
|
-
}
|
|
1470
|
-
}
|
|
1471
|
-
if (Array.isArray(fieldValue)) {
|
|
1472
|
-
const asset = tag ? fieldValue.find(
|
|
1473
|
-
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
1474
|
-
) : fieldValue[0];
|
|
1475
|
-
return asset?.assetUrl;
|
|
1476
|
-
}
|
|
1477
|
-
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
1478
|
-
const assetObject = fieldValue;
|
|
1479
|
-
if (assetObject.assetUrl) {
|
|
1480
|
-
return assetObject.assetUrl;
|
|
1481
|
-
}
|
|
1482
|
-
}
|
|
1483
|
-
return void 0;
|
|
1484
|
-
}
|
|
1485
1455
|
var getNestedValue3 = (obj, path) => {
|
|
1486
1456
|
if (!obj || !path) {
|
|
1487
1457
|
return void 0;
|
|
@@ -1491,57 +1461,114 @@ var getNestedValue3 = (obj, path) => {
|
|
|
1491
1461
|
}, obj);
|
|
1492
1462
|
};
|
|
1493
1463
|
var ImageGalleryNode = (props) => {
|
|
1494
|
-
|
|
1464
|
+
function resolveAsset(fieldValue, tag) {
|
|
1465
|
+
if (!fieldValue) {
|
|
1466
|
+
return void 0;
|
|
1467
|
+
}
|
|
1468
|
+
if (typeof fieldValue === "string") {
|
|
1469
|
+
const trimmed = fieldValue.trim();
|
|
1470
|
+
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
1471
|
+
return {
|
|
1472
|
+
assetUrl: trimmed
|
|
1473
|
+
};
|
|
1474
|
+
}
|
|
1475
|
+
try {
|
|
1476
|
+
const parsed = JSON.parse(trimmed);
|
|
1477
|
+
return resolveAsset(parsed, tag);
|
|
1478
|
+
} catch {
|
|
1479
|
+
return void 0;
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
if (Array.isArray(fieldValue)) {
|
|
1483
|
+
const asset = tag ? fieldValue.find(
|
|
1484
|
+
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
1485
|
+
) : fieldValue[0];
|
|
1486
|
+
if (!asset) return void 0;
|
|
1487
|
+
return {
|
|
1488
|
+
assetUrl: asset.assetUrl,
|
|
1489
|
+
posterUrl: asset.posterUrl,
|
|
1490
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
1491
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
1492
|
+
device: asset.device,
|
|
1493
|
+
tag: asset.tag
|
|
1494
|
+
};
|
|
1495
|
+
}
|
|
1496
|
+
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
1497
|
+
const asset = fieldValue;
|
|
1498
|
+
if (!asset.assetUrl) {
|
|
1499
|
+
return void 0;
|
|
1500
|
+
}
|
|
1501
|
+
return {
|
|
1502
|
+
assetUrl: asset.assetUrl,
|
|
1503
|
+
posterUrl: asset.posterUrl,
|
|
1504
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
1505
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
1506
|
+
device: asset.device,
|
|
1507
|
+
tag: asset.tag
|
|
1508
|
+
};
|
|
1509
|
+
}
|
|
1510
|
+
return void 0;
|
|
1511
|
+
}
|
|
1512
|
+
const resolveImage = (image) => {
|
|
1495
1513
|
let imageUrl = image.imageUrl;
|
|
1514
|
+
let posterUrl = image.posterUrl;
|
|
1515
|
+
let intrinsicWidth = image.intrinsicWidth;
|
|
1516
|
+
let intrinsicHeight = image.intrinsicHeight;
|
|
1496
1517
|
if (image.datafield && props.dataitem) {
|
|
1497
1518
|
const fieldValue = getNestedValue3(props.dataitem, image.datafield);
|
|
1498
|
-
const resolvedAsset =
|
|
1519
|
+
const resolvedAsset = resolveAsset(fieldValue, image.tag);
|
|
1499
1520
|
if (resolvedAsset) {
|
|
1500
|
-
imageUrl = resolvedAsset;
|
|
1521
|
+
imageUrl = resolvedAsset.assetUrl;
|
|
1522
|
+
posterUrl = resolvedAsset.posterUrl;
|
|
1523
|
+
intrinsicWidth = resolvedAsset.intrinsicWidth;
|
|
1524
|
+
intrinsicHeight = resolvedAsset.intrinsicHeight;
|
|
1501
1525
|
}
|
|
1502
1526
|
}
|
|
1503
1527
|
if (!imageUrl) {
|
|
1504
|
-
return
|
|
1505
|
-
}
|
|
1506
|
-
if (imageUrl.startsWith("http")) {
|
|
1507
|
-
return imageUrl;
|
|
1528
|
+
return void 0;
|
|
1508
1529
|
}
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1530
|
+
return {
|
|
1531
|
+
imageUrl: imageUrl.startsWith("http") ? imageUrl : AssetUtility_default.resolveUrl(props.assetBaseUrl, imageUrl),
|
|
1532
|
+
posterUrl: posterUrl ? AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl) : void 0,
|
|
1533
|
+
intrinsicWidth,
|
|
1534
|
+
intrinsicHeight
|
|
1535
|
+
};
|
|
1512
1536
|
};
|
|
1513
1537
|
const resolvePosterUrl = (posterUrl) => {
|
|
1514
1538
|
if (!posterUrl) return void 0;
|
|
1515
1539
|
return AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl);
|
|
1516
1540
|
};
|
|
1517
1541
|
const rawImages = Array.isArray(props.node.images) ? props.node.images : [];
|
|
1518
|
-
const hlsImages = rawImages.filter(
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1542
|
+
const hlsImages = rawImages.filter((img) => {
|
|
1543
|
+
const resolved = resolveImage(img);
|
|
1544
|
+
return resolved?.imageUrl?.endsWith(".m3u8");
|
|
1545
|
+
});
|
|
1546
|
+
const staticImages = rawImages.filter((img) => {
|
|
1547
|
+
const resolved = resolveImage(img);
|
|
1548
|
+
return resolved && !resolved.imageUrl?.endsWith(".m3u8");
|
|
1549
|
+
});
|
|
1524
1550
|
const hlsSources = [
|
|
1525
1551
|
...DEVICE_ORDER.flatMap((deviceKey) => {
|
|
1526
1552
|
const img = hlsImages.find((i) => i.device === deviceKey);
|
|
1527
1553
|
if (!img) return [];
|
|
1528
|
-
const
|
|
1529
|
-
if (!
|
|
1530
|
-
const media = deviceToMediaQuery(img.device);
|
|
1531
|
-
const posterUrl = resolvePosterUrl(img.posterUrl);
|
|
1554
|
+
const resolved = resolveImage(img);
|
|
1555
|
+
if (!resolved) return [];
|
|
1532
1556
|
return [
|
|
1533
1557
|
{
|
|
1534
|
-
src,
|
|
1535
|
-
...
|
|
1536
|
-
...posterUrl ? { posterUrl } : {}
|
|
1558
|
+
src: resolved.imageUrl,
|
|
1559
|
+
...deviceToMediaQuery(img.device) ? { media: deviceToMediaQuery(img.device) } : {},
|
|
1560
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
1537
1561
|
}
|
|
1538
1562
|
];
|
|
1539
1563
|
}),
|
|
1540
1564
|
...hlsImages.filter((img) => !img.device).map((img) => {
|
|
1541
|
-
const
|
|
1542
|
-
|
|
1543
|
-
return {
|
|
1544
|
-
|
|
1565
|
+
const resolved = resolveImage(img);
|
|
1566
|
+
if (!resolved) return void 0;
|
|
1567
|
+
return {
|
|
1568
|
+
src: resolved.imageUrl,
|
|
1569
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
1570
|
+
};
|
|
1571
|
+
}).filter(Boolean)
|
|
1545
1572
|
];
|
|
1546
1573
|
const primaryHls = hlsImages.find((img) => !img.device) ?? hlsImages[0];
|
|
1547
1574
|
const hlsIntrinsicWidth = primaryHls ? parseMaybeNumber(primaryHls.intrinsicWidth)?.toString() : void 0;
|
|
@@ -1583,7 +1610,11 @@ var ImageGalleryNode = (props) => {
|
|
|
1583
1610
|
if (!match) {
|
|
1584
1611
|
return null;
|
|
1585
1612
|
}
|
|
1586
|
-
const
|
|
1613
|
+
const resolved = resolveImage(match);
|
|
1614
|
+
if (!resolved) {
|
|
1615
|
+
return null;
|
|
1616
|
+
}
|
|
1617
|
+
const srcUrl = resolved.imageUrl;
|
|
1587
1618
|
if (!srcUrl) {
|
|
1588
1619
|
return null;
|
|
1589
1620
|
}
|
|
@@ -1600,7 +1631,8 @@ var ImageGalleryNode = (props) => {
|
|
|
1600
1631
|
}),
|
|
1601
1632
|
(() => {
|
|
1602
1633
|
const img = staticFallback;
|
|
1603
|
-
const
|
|
1634
|
+
const resolved = resolveImage(img);
|
|
1635
|
+
const imageUrl = resolved?.imageUrl;
|
|
1604
1636
|
if (!imageUrl) {
|
|
1605
1637
|
return null;
|
|
1606
1638
|
}
|
|
@@ -1627,7 +1659,8 @@ var ImageGalleryNode = (props) => {
|
|
|
1627
1659
|
] }) : (
|
|
1628
1660
|
/* Case 2: Only device-specific images exist */
|
|
1629
1661
|
/* @__PURE__ */ jsx32(Fragment5, { children: staticSources.map((img, index) => {
|
|
1630
|
-
const
|
|
1662
|
+
const resolved = resolveImage(img);
|
|
1663
|
+
const imageUrl = resolved?.imageUrl;
|
|
1631
1664
|
if (!imageUrl) {
|
|
1632
1665
|
return null;
|
|
1633
1666
|
}
|
|
@@ -2268,7 +2301,7 @@ var getNestedValue6 = (obj, path) => {
|
|
|
2268
2301
|
return current && current[key] !== void 0 ? current[key] : void 0;
|
|
2269
2302
|
}, obj);
|
|
2270
2303
|
};
|
|
2271
|
-
function
|
|
2304
|
+
function resolveAssetUrl(fieldValue, tag) {
|
|
2272
2305
|
if (!fieldValue) {
|
|
2273
2306
|
return void 0;
|
|
2274
2307
|
}
|
|
@@ -2279,7 +2312,7 @@ function resolveAssetUrl2(fieldValue, tag) {
|
|
|
2279
2312
|
}
|
|
2280
2313
|
try {
|
|
2281
2314
|
const parsed = JSON.parse(trimmed);
|
|
2282
|
-
return
|
|
2315
|
+
return resolveAssetUrl(parsed, tag);
|
|
2283
2316
|
} catch {
|
|
2284
2317
|
return void 0;
|
|
2285
2318
|
}
|
|
@@ -2306,7 +2339,7 @@ function generateCompleteBackgroundString(layers, apiBaseUrl, dataItem) {
|
|
|
2306
2339
|
let assetUrl = imageValue.assetUrl || "";
|
|
2307
2340
|
if (layer.datafield && dataItem) {
|
|
2308
2341
|
const fieldValue = getNestedValue6(dataItem, layer.datafield);
|
|
2309
|
-
const resolvedAssetUrl =
|
|
2342
|
+
const resolvedAssetUrl = resolveAssetUrl(fieldValue, layer.tag);
|
|
2310
2343
|
if (resolvedAssetUrl) {
|
|
2311
2344
|
assetUrl = resolvedAssetUrl;
|
|
2312
2345
|
}
|
package/dist/server.js
CHANGED
|
@@ -496,6 +496,7 @@ var init_HlsPlayer = __esm({
|
|
|
496
496
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
497
497
|
className: "hls-play-btn",
|
|
498
498
|
onClick: (e) => {
|
|
499
|
+
e.preventDefault();
|
|
499
500
|
e.stopPropagation();
|
|
500
501
|
handlePlayPause();
|
|
501
502
|
},
|
|
@@ -603,6 +604,7 @@ var init_HlsPlayer = __esm({
|
|
|
603
604
|
type: "button",
|
|
604
605
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
605
606
|
onClick: (e) => {
|
|
607
|
+
e.preventDefault();
|
|
606
608
|
e.stopPropagation();
|
|
607
609
|
handleMuteToggle();
|
|
608
610
|
},
|
|
@@ -624,6 +626,7 @@ var init_HlsPlayer = __esm({
|
|
|
624
626
|
type: "button",
|
|
625
627
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
626
628
|
onClick: (e) => {
|
|
629
|
+
e.preventDefault();
|
|
627
630
|
e.stopPropagation();
|
|
628
631
|
handleFullscreenToggle();
|
|
629
632
|
},
|
|
@@ -3981,36 +3984,6 @@ var parseMaybeNumber = (value) => {
|
|
|
3981
3984
|
const n = Number(value);
|
|
3982
3985
|
return Number.isFinite(n) ? n : void 0;
|
|
3983
3986
|
};
|
|
3984
|
-
function resolveAssetUrl(fieldValue, tag) {
|
|
3985
|
-
if (!fieldValue) {
|
|
3986
|
-
return void 0;
|
|
3987
|
-
}
|
|
3988
|
-
if (typeof fieldValue === "string") {
|
|
3989
|
-
const trimmed = fieldValue.trim();
|
|
3990
|
-
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
3991
|
-
return trimmed;
|
|
3992
|
-
}
|
|
3993
|
-
try {
|
|
3994
|
-
const parsed = JSON.parse(trimmed);
|
|
3995
|
-
return resolveAssetUrl(parsed, tag);
|
|
3996
|
-
} catch {
|
|
3997
|
-
return void 0;
|
|
3998
|
-
}
|
|
3999
|
-
}
|
|
4000
|
-
if (Array.isArray(fieldValue)) {
|
|
4001
|
-
const asset = tag ? fieldValue.find(
|
|
4002
|
-
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
4003
|
-
) : fieldValue[0];
|
|
4004
|
-
return asset?.assetUrl;
|
|
4005
|
-
}
|
|
4006
|
-
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
4007
|
-
const assetObject = fieldValue;
|
|
4008
|
-
if (assetObject.assetUrl) {
|
|
4009
|
-
return assetObject.assetUrl;
|
|
4010
|
-
}
|
|
4011
|
-
}
|
|
4012
|
-
return void 0;
|
|
4013
|
-
}
|
|
4014
3987
|
var getNestedValue3 = (obj, path) => {
|
|
4015
3988
|
if (!obj || !path) {
|
|
4016
3989
|
return void 0;
|
|
@@ -4020,57 +3993,114 @@ var getNestedValue3 = (obj, path) => {
|
|
|
4020
3993
|
}, obj);
|
|
4021
3994
|
};
|
|
4022
3995
|
var ImageGalleryNode = (props) => {
|
|
4023
|
-
|
|
3996
|
+
function resolveAsset(fieldValue, tag) {
|
|
3997
|
+
if (!fieldValue) {
|
|
3998
|
+
return void 0;
|
|
3999
|
+
}
|
|
4000
|
+
if (typeof fieldValue === "string") {
|
|
4001
|
+
const trimmed = fieldValue.trim();
|
|
4002
|
+
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
4003
|
+
return {
|
|
4004
|
+
assetUrl: trimmed
|
|
4005
|
+
};
|
|
4006
|
+
}
|
|
4007
|
+
try {
|
|
4008
|
+
const parsed = JSON.parse(trimmed);
|
|
4009
|
+
return resolveAsset(parsed, tag);
|
|
4010
|
+
} catch {
|
|
4011
|
+
return void 0;
|
|
4012
|
+
}
|
|
4013
|
+
}
|
|
4014
|
+
if (Array.isArray(fieldValue)) {
|
|
4015
|
+
const asset = tag ? fieldValue.find(
|
|
4016
|
+
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
4017
|
+
) : fieldValue[0];
|
|
4018
|
+
if (!asset) return void 0;
|
|
4019
|
+
return {
|
|
4020
|
+
assetUrl: asset.assetUrl,
|
|
4021
|
+
posterUrl: asset.posterUrl,
|
|
4022
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
4023
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
4024
|
+
device: asset.device,
|
|
4025
|
+
tag: asset.tag
|
|
4026
|
+
};
|
|
4027
|
+
}
|
|
4028
|
+
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
4029
|
+
const asset = fieldValue;
|
|
4030
|
+
if (!asset.assetUrl) {
|
|
4031
|
+
return void 0;
|
|
4032
|
+
}
|
|
4033
|
+
return {
|
|
4034
|
+
assetUrl: asset.assetUrl,
|
|
4035
|
+
posterUrl: asset.posterUrl,
|
|
4036
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
4037
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
4038
|
+
device: asset.device,
|
|
4039
|
+
tag: asset.tag
|
|
4040
|
+
};
|
|
4041
|
+
}
|
|
4042
|
+
return void 0;
|
|
4043
|
+
}
|
|
4044
|
+
const resolveImage = (image) => {
|
|
4024
4045
|
let imageUrl = image.imageUrl;
|
|
4046
|
+
let posterUrl = image.posterUrl;
|
|
4047
|
+
let intrinsicWidth = image.intrinsicWidth;
|
|
4048
|
+
let intrinsicHeight = image.intrinsicHeight;
|
|
4025
4049
|
if (image.datafield && props.dataitem) {
|
|
4026
4050
|
const fieldValue = getNestedValue3(props.dataitem, image.datafield);
|
|
4027
|
-
const resolvedAsset =
|
|
4051
|
+
const resolvedAsset = resolveAsset(fieldValue, image.tag);
|
|
4028
4052
|
if (resolvedAsset) {
|
|
4029
|
-
imageUrl = resolvedAsset;
|
|
4053
|
+
imageUrl = resolvedAsset.assetUrl;
|
|
4054
|
+
posterUrl = resolvedAsset.posterUrl;
|
|
4055
|
+
intrinsicWidth = resolvedAsset.intrinsicWidth;
|
|
4056
|
+
intrinsicHeight = resolvedAsset.intrinsicHeight;
|
|
4030
4057
|
}
|
|
4031
4058
|
}
|
|
4032
4059
|
if (!imageUrl) {
|
|
4033
|
-
return
|
|
4034
|
-
}
|
|
4035
|
-
if (imageUrl.startsWith("http")) {
|
|
4036
|
-
return imageUrl;
|
|
4060
|
+
return void 0;
|
|
4037
4061
|
}
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4062
|
+
return {
|
|
4063
|
+
imageUrl: imageUrl.startsWith("http") ? imageUrl : AssetUtility_default.resolveUrl(props.assetBaseUrl, imageUrl),
|
|
4064
|
+
posterUrl: posterUrl ? AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl) : void 0,
|
|
4065
|
+
intrinsicWidth,
|
|
4066
|
+
intrinsicHeight
|
|
4067
|
+
};
|
|
4041
4068
|
};
|
|
4042
4069
|
const resolvePosterUrl = (posterUrl) => {
|
|
4043
4070
|
if (!posterUrl) return void 0;
|
|
4044
4071
|
return AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl);
|
|
4045
4072
|
};
|
|
4046
4073
|
const rawImages = Array.isArray(props.node.images) ? props.node.images : [];
|
|
4047
|
-
const hlsImages = rawImages.filter(
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4074
|
+
const hlsImages = rawImages.filter((img) => {
|
|
4075
|
+
const resolved = resolveImage(img);
|
|
4076
|
+
return resolved?.imageUrl?.endsWith(".m3u8");
|
|
4077
|
+
});
|
|
4078
|
+
const staticImages = rawImages.filter((img) => {
|
|
4079
|
+
const resolved = resolveImage(img);
|
|
4080
|
+
return resolved && !resolved.imageUrl?.endsWith(".m3u8");
|
|
4081
|
+
});
|
|
4053
4082
|
const hlsSources = [
|
|
4054
4083
|
...DEVICE_ORDER.flatMap((deviceKey) => {
|
|
4055
4084
|
const img = hlsImages.find((i) => i.device === deviceKey);
|
|
4056
4085
|
if (!img) return [];
|
|
4057
|
-
const
|
|
4058
|
-
if (!
|
|
4059
|
-
const media = deviceToMediaQuery(img.device);
|
|
4060
|
-
const posterUrl = resolvePosterUrl(img.posterUrl);
|
|
4086
|
+
const resolved = resolveImage(img);
|
|
4087
|
+
if (!resolved) return [];
|
|
4061
4088
|
return [
|
|
4062
4089
|
{
|
|
4063
|
-
src,
|
|
4064
|
-
...
|
|
4065
|
-
...posterUrl ? { posterUrl } : {}
|
|
4090
|
+
src: resolved.imageUrl,
|
|
4091
|
+
...deviceToMediaQuery(img.device) ? { media: deviceToMediaQuery(img.device) } : {},
|
|
4092
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
4066
4093
|
}
|
|
4067
4094
|
];
|
|
4068
4095
|
}),
|
|
4069
4096
|
...hlsImages.filter((img) => !img.device).map((img) => {
|
|
4070
|
-
const
|
|
4071
|
-
|
|
4072
|
-
return {
|
|
4073
|
-
|
|
4097
|
+
const resolved = resolveImage(img);
|
|
4098
|
+
if (!resolved) return void 0;
|
|
4099
|
+
return {
|
|
4100
|
+
src: resolved.imageUrl,
|
|
4101
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
4102
|
+
};
|
|
4103
|
+
}).filter(Boolean)
|
|
4074
4104
|
];
|
|
4075
4105
|
const primaryHls = hlsImages.find((img) => !img.device) ?? hlsImages[0];
|
|
4076
4106
|
const hlsIntrinsicWidth = primaryHls ? parseMaybeNumber(primaryHls.intrinsicWidth)?.toString() : void 0;
|
|
@@ -4112,7 +4142,11 @@ var ImageGalleryNode = (props) => {
|
|
|
4112
4142
|
if (!match) {
|
|
4113
4143
|
return null;
|
|
4114
4144
|
}
|
|
4115
|
-
const
|
|
4145
|
+
const resolved = resolveImage(match);
|
|
4146
|
+
if (!resolved) {
|
|
4147
|
+
return null;
|
|
4148
|
+
}
|
|
4149
|
+
const srcUrl = resolved.imageUrl;
|
|
4116
4150
|
if (!srcUrl) {
|
|
4117
4151
|
return null;
|
|
4118
4152
|
}
|
|
@@ -4129,7 +4163,8 @@ var ImageGalleryNode = (props) => {
|
|
|
4129
4163
|
}),
|
|
4130
4164
|
(() => {
|
|
4131
4165
|
const img = staticFallback;
|
|
4132
|
-
const
|
|
4166
|
+
const resolved = resolveImage(img);
|
|
4167
|
+
const imageUrl = resolved?.imageUrl;
|
|
4133
4168
|
if (!imageUrl) {
|
|
4134
4169
|
return null;
|
|
4135
4170
|
}
|
|
@@ -4156,7 +4191,8 @@ var ImageGalleryNode = (props) => {
|
|
|
4156
4191
|
] }) : (
|
|
4157
4192
|
/* Case 2: Only device-specific images exist */
|
|
4158
4193
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: staticSources.map((img, index) => {
|
|
4159
|
-
const
|
|
4194
|
+
const resolved = resolveImage(img);
|
|
4195
|
+
const imageUrl = resolved?.imageUrl;
|
|
4160
4196
|
if (!imageUrl) {
|
|
4161
4197
|
return null;
|
|
4162
4198
|
}
|
|
@@ -4797,7 +4833,7 @@ var getNestedValue6 = (obj, path) => {
|
|
|
4797
4833
|
return current && current[key] !== void 0 ? current[key] : void 0;
|
|
4798
4834
|
}, obj);
|
|
4799
4835
|
};
|
|
4800
|
-
function
|
|
4836
|
+
function resolveAssetUrl(fieldValue, tag) {
|
|
4801
4837
|
if (!fieldValue) {
|
|
4802
4838
|
return void 0;
|
|
4803
4839
|
}
|
|
@@ -4808,7 +4844,7 @@ function resolveAssetUrl2(fieldValue, tag) {
|
|
|
4808
4844
|
}
|
|
4809
4845
|
try {
|
|
4810
4846
|
const parsed = JSON.parse(trimmed);
|
|
4811
|
-
return
|
|
4847
|
+
return resolveAssetUrl(parsed, tag);
|
|
4812
4848
|
} catch {
|
|
4813
4849
|
return void 0;
|
|
4814
4850
|
}
|
|
@@ -4835,7 +4871,7 @@ function generateCompleteBackgroundString(layers, apiBaseUrl, dataItem) {
|
|
|
4835
4871
|
let assetUrl = imageValue.assetUrl || "";
|
|
4836
4872
|
if (layer.datafield && dataItem) {
|
|
4837
4873
|
const fieldValue = getNestedValue6(dataItem, layer.datafield);
|
|
4838
|
-
const resolvedAssetUrl =
|
|
4874
|
+
const resolvedAssetUrl = resolveAssetUrl(fieldValue, layer.tag);
|
|
4839
4875
|
if (resolvedAssetUrl) {
|
|
4840
4876
|
assetUrl = resolvedAssetUrl;
|
|
4841
4877
|
}
|
package/dist/server.mjs
CHANGED
|
@@ -122,7 +122,7 @@ import dynamic2 from "next/dynamic";
|
|
|
122
122
|
// src/components/DeviceAssetSelector.tsx
|
|
123
123
|
import dynamic from "next/dynamic";
|
|
124
124
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
125
|
-
var HlsPlayer = dynamic(() => import("./HlsPlayer-
|
|
125
|
+
var HlsPlayer = dynamic(() => import("./HlsPlayer-BVS6BVF7.mjs"), { ssr: false });
|
|
126
126
|
var FORMAT_CLASSES = {
|
|
127
127
|
center: "justify-center",
|
|
128
128
|
left: "justify-start",
|
|
@@ -197,7 +197,7 @@ var DeviceAssetSelector_default = DeviceAssetSelector;
|
|
|
197
197
|
|
|
198
198
|
// src/components/pageRenderingEngine/nodes/ImageNode.tsx
|
|
199
199
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
200
|
-
var HlsPlayer2 = dynamic2(() => import("./HlsPlayer-
|
|
200
|
+
var HlsPlayer2 = dynamic2(() => import("./HlsPlayer-BVS6BVF7.mjs"), { ssr: false });
|
|
201
201
|
var getNestedValue = (obj, path) => {
|
|
202
202
|
if (!obj || !path) return void 0;
|
|
203
203
|
return path.split(".").reduce((current, key) => {
|
|
@@ -1412,7 +1412,7 @@ var NoDataFound_default = NoDataFound;
|
|
|
1412
1412
|
// src/components/pageRenderingEngine/nodes/ImageGalleryNode.tsx
|
|
1413
1413
|
import dynamic8 from "next/dynamic";
|
|
1414
1414
|
import { Fragment as Fragment5, jsx as jsx32, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1415
|
-
var HlsPlayer3 = dynamic8(() => import("./HlsPlayer-
|
|
1415
|
+
var HlsPlayer3 = dynamic8(() => import("./HlsPlayer-BVS6BVF7.mjs"), { ssr: false });
|
|
1416
1416
|
var deviceToMediaQuery = (device) => {
|
|
1417
1417
|
switch (device) {
|
|
1418
1418
|
case "lg":
|
|
@@ -1433,36 +1433,6 @@ var parseMaybeNumber = (value) => {
|
|
|
1433
1433
|
const n = Number(value);
|
|
1434
1434
|
return Number.isFinite(n) ? n : void 0;
|
|
1435
1435
|
};
|
|
1436
|
-
function resolveAssetUrl(fieldValue, tag) {
|
|
1437
|
-
if (!fieldValue) {
|
|
1438
|
-
return void 0;
|
|
1439
|
-
}
|
|
1440
|
-
if (typeof fieldValue === "string") {
|
|
1441
|
-
const trimmed = fieldValue.trim();
|
|
1442
|
-
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
1443
|
-
return trimmed;
|
|
1444
|
-
}
|
|
1445
|
-
try {
|
|
1446
|
-
const parsed = JSON.parse(trimmed);
|
|
1447
|
-
return resolveAssetUrl(parsed, tag);
|
|
1448
|
-
} catch {
|
|
1449
|
-
return void 0;
|
|
1450
|
-
}
|
|
1451
|
-
}
|
|
1452
|
-
if (Array.isArray(fieldValue)) {
|
|
1453
|
-
const asset = tag ? fieldValue.find(
|
|
1454
|
-
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
1455
|
-
) : fieldValue[0];
|
|
1456
|
-
return asset?.assetUrl;
|
|
1457
|
-
}
|
|
1458
|
-
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
1459
|
-
const assetObject = fieldValue;
|
|
1460
|
-
if (assetObject.assetUrl) {
|
|
1461
|
-
return assetObject.assetUrl;
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
1464
|
-
return void 0;
|
|
1465
|
-
}
|
|
1466
1436
|
var getNestedValue3 = (obj, path) => {
|
|
1467
1437
|
if (!obj || !path) {
|
|
1468
1438
|
return void 0;
|
|
@@ -1472,57 +1442,114 @@ var getNestedValue3 = (obj, path) => {
|
|
|
1472
1442
|
}, obj);
|
|
1473
1443
|
};
|
|
1474
1444
|
var ImageGalleryNode = (props) => {
|
|
1475
|
-
|
|
1445
|
+
function resolveAsset(fieldValue, tag) {
|
|
1446
|
+
if (!fieldValue) {
|
|
1447
|
+
return void 0;
|
|
1448
|
+
}
|
|
1449
|
+
if (typeof fieldValue === "string") {
|
|
1450
|
+
const trimmed = fieldValue.trim();
|
|
1451
|
+
if (trimmed.startsWith("itemassets/") || trimmed.startsWith("/itemassets/") || trimmed.startsWith("http")) {
|
|
1452
|
+
return {
|
|
1453
|
+
assetUrl: trimmed
|
|
1454
|
+
};
|
|
1455
|
+
}
|
|
1456
|
+
try {
|
|
1457
|
+
const parsed = JSON.parse(trimmed);
|
|
1458
|
+
return resolveAsset(parsed, tag);
|
|
1459
|
+
} catch {
|
|
1460
|
+
return void 0;
|
|
1461
|
+
}
|
|
1462
|
+
}
|
|
1463
|
+
if (Array.isArray(fieldValue)) {
|
|
1464
|
+
const asset = tag ? fieldValue.find(
|
|
1465
|
+
(x) => x?.tag?.toLowerCase() === tag?.toLowerCase()
|
|
1466
|
+
) : fieldValue[0];
|
|
1467
|
+
if (!asset) return void 0;
|
|
1468
|
+
return {
|
|
1469
|
+
assetUrl: asset.assetUrl,
|
|
1470
|
+
posterUrl: asset.posterUrl,
|
|
1471
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
1472
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
1473
|
+
device: asset.device,
|
|
1474
|
+
tag: asset.tag
|
|
1475
|
+
};
|
|
1476
|
+
}
|
|
1477
|
+
if (typeof fieldValue === "object" && fieldValue !== null) {
|
|
1478
|
+
const asset = fieldValue;
|
|
1479
|
+
if (!asset.assetUrl) {
|
|
1480
|
+
return void 0;
|
|
1481
|
+
}
|
|
1482
|
+
return {
|
|
1483
|
+
assetUrl: asset.assetUrl,
|
|
1484
|
+
posterUrl: asset.posterUrl,
|
|
1485
|
+
intrinsicWidth: asset.intrinsicWidth,
|
|
1486
|
+
intrinsicHeight: asset.intrinsicHeight,
|
|
1487
|
+
device: asset.device,
|
|
1488
|
+
tag: asset.tag
|
|
1489
|
+
};
|
|
1490
|
+
}
|
|
1491
|
+
return void 0;
|
|
1492
|
+
}
|
|
1493
|
+
const resolveImage = (image) => {
|
|
1476
1494
|
let imageUrl = image.imageUrl;
|
|
1495
|
+
let posterUrl = image.posterUrl;
|
|
1496
|
+
let intrinsicWidth = image.intrinsicWidth;
|
|
1497
|
+
let intrinsicHeight = image.intrinsicHeight;
|
|
1477
1498
|
if (image.datafield && props.dataitem) {
|
|
1478
1499
|
const fieldValue = getNestedValue3(props.dataitem, image.datafield);
|
|
1479
|
-
const resolvedAsset =
|
|
1500
|
+
const resolvedAsset = resolveAsset(fieldValue, image.tag);
|
|
1480
1501
|
if (resolvedAsset) {
|
|
1481
|
-
imageUrl = resolvedAsset;
|
|
1502
|
+
imageUrl = resolvedAsset.assetUrl;
|
|
1503
|
+
posterUrl = resolvedAsset.posterUrl;
|
|
1504
|
+
intrinsicWidth = resolvedAsset.intrinsicWidth;
|
|
1505
|
+
intrinsicHeight = resolvedAsset.intrinsicHeight;
|
|
1482
1506
|
}
|
|
1483
1507
|
}
|
|
1484
1508
|
if (!imageUrl) {
|
|
1485
|
-
return
|
|
1486
|
-
}
|
|
1487
|
-
if (imageUrl.startsWith("http")) {
|
|
1488
|
-
return imageUrl;
|
|
1509
|
+
return void 0;
|
|
1489
1510
|
}
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1511
|
+
return {
|
|
1512
|
+
imageUrl: imageUrl.startsWith("http") ? imageUrl : AssetUtility_default.resolveUrl(props.assetBaseUrl, imageUrl),
|
|
1513
|
+
posterUrl: posterUrl ? AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl) : void 0,
|
|
1514
|
+
intrinsicWidth,
|
|
1515
|
+
intrinsicHeight
|
|
1516
|
+
};
|
|
1493
1517
|
};
|
|
1494
1518
|
const resolvePosterUrl = (posterUrl) => {
|
|
1495
1519
|
if (!posterUrl) return void 0;
|
|
1496
1520
|
return AssetUtility_default.resolveUrl(props.assetBaseUrl, posterUrl);
|
|
1497
1521
|
};
|
|
1498
1522
|
const rawImages = Array.isArray(props.node.images) ? props.node.images : [];
|
|
1499
|
-
const hlsImages = rawImages.filter(
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1523
|
+
const hlsImages = rawImages.filter((img) => {
|
|
1524
|
+
const resolved = resolveImage(img);
|
|
1525
|
+
return resolved?.imageUrl?.endsWith(".m3u8");
|
|
1526
|
+
});
|
|
1527
|
+
const staticImages = rawImages.filter((img) => {
|
|
1528
|
+
const resolved = resolveImage(img);
|
|
1529
|
+
return resolved && !resolved.imageUrl?.endsWith(".m3u8");
|
|
1530
|
+
});
|
|
1505
1531
|
const hlsSources = [
|
|
1506
1532
|
...DEVICE_ORDER.flatMap((deviceKey) => {
|
|
1507
1533
|
const img = hlsImages.find((i) => i.device === deviceKey);
|
|
1508
1534
|
if (!img) return [];
|
|
1509
|
-
const
|
|
1510
|
-
if (!
|
|
1511
|
-
const media = deviceToMediaQuery(img.device);
|
|
1512
|
-
const posterUrl = resolvePosterUrl(img.posterUrl);
|
|
1535
|
+
const resolved = resolveImage(img);
|
|
1536
|
+
if (!resolved) return [];
|
|
1513
1537
|
return [
|
|
1514
1538
|
{
|
|
1515
|
-
src,
|
|
1516
|
-
...
|
|
1517
|
-
...posterUrl ? { posterUrl } : {}
|
|
1539
|
+
src: resolved.imageUrl,
|
|
1540
|
+
...deviceToMediaQuery(img.device) ? { media: deviceToMediaQuery(img.device) } : {},
|
|
1541
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
1518
1542
|
}
|
|
1519
1543
|
];
|
|
1520
1544
|
}),
|
|
1521
1545
|
...hlsImages.filter((img) => !img.device).map((img) => {
|
|
1522
|
-
const
|
|
1523
|
-
|
|
1524
|
-
return {
|
|
1525
|
-
|
|
1546
|
+
const resolved = resolveImage(img);
|
|
1547
|
+
if (!resolved) return void 0;
|
|
1548
|
+
return {
|
|
1549
|
+
src: resolved.imageUrl,
|
|
1550
|
+
...resolved.posterUrl ? { posterUrl: resolved.posterUrl } : {}
|
|
1551
|
+
};
|
|
1552
|
+
}).filter(Boolean)
|
|
1526
1553
|
];
|
|
1527
1554
|
const primaryHls = hlsImages.find((img) => !img.device) ?? hlsImages[0];
|
|
1528
1555
|
const hlsIntrinsicWidth = primaryHls ? parseMaybeNumber(primaryHls.intrinsicWidth)?.toString() : void 0;
|
|
@@ -1564,7 +1591,11 @@ var ImageGalleryNode = (props) => {
|
|
|
1564
1591
|
if (!match) {
|
|
1565
1592
|
return null;
|
|
1566
1593
|
}
|
|
1567
|
-
const
|
|
1594
|
+
const resolved = resolveImage(match);
|
|
1595
|
+
if (!resolved) {
|
|
1596
|
+
return null;
|
|
1597
|
+
}
|
|
1598
|
+
const srcUrl = resolved.imageUrl;
|
|
1568
1599
|
if (!srcUrl) {
|
|
1569
1600
|
return null;
|
|
1570
1601
|
}
|
|
@@ -1581,7 +1612,8 @@ var ImageGalleryNode = (props) => {
|
|
|
1581
1612
|
}),
|
|
1582
1613
|
(() => {
|
|
1583
1614
|
const img = staticFallback;
|
|
1584
|
-
const
|
|
1615
|
+
const resolved = resolveImage(img);
|
|
1616
|
+
const imageUrl = resolved?.imageUrl;
|
|
1585
1617
|
if (!imageUrl) {
|
|
1586
1618
|
return null;
|
|
1587
1619
|
}
|
|
@@ -1608,7 +1640,8 @@ var ImageGalleryNode = (props) => {
|
|
|
1608
1640
|
] }) : (
|
|
1609
1641
|
/* Case 2: Only device-specific images exist */
|
|
1610
1642
|
/* @__PURE__ */ jsx32(Fragment5, { children: staticSources.map((img, index) => {
|
|
1611
|
-
const
|
|
1643
|
+
const resolved = resolveImage(img);
|
|
1644
|
+
const imageUrl = resolved?.imageUrl;
|
|
1612
1645
|
if (!imageUrl) {
|
|
1613
1646
|
return null;
|
|
1614
1647
|
}
|
|
@@ -2249,7 +2282,7 @@ var getNestedValue6 = (obj, path) => {
|
|
|
2249
2282
|
return current && current[key] !== void 0 ? current[key] : void 0;
|
|
2250
2283
|
}, obj);
|
|
2251
2284
|
};
|
|
2252
|
-
function
|
|
2285
|
+
function resolveAssetUrl(fieldValue, tag) {
|
|
2253
2286
|
if (!fieldValue) {
|
|
2254
2287
|
return void 0;
|
|
2255
2288
|
}
|
|
@@ -2260,7 +2293,7 @@ function resolveAssetUrl2(fieldValue, tag) {
|
|
|
2260
2293
|
}
|
|
2261
2294
|
try {
|
|
2262
2295
|
const parsed = JSON.parse(trimmed);
|
|
2263
|
-
return
|
|
2296
|
+
return resolveAssetUrl(parsed, tag);
|
|
2264
2297
|
} catch {
|
|
2265
2298
|
return void 0;
|
|
2266
2299
|
}
|
|
@@ -2287,7 +2320,7 @@ function generateCompleteBackgroundString(layers, apiBaseUrl, dataItem) {
|
|
|
2287
2320
|
let assetUrl = imageValue.assetUrl || "";
|
|
2288
2321
|
if (layer.datafield && dataItem) {
|
|
2289
2322
|
const fieldValue = getNestedValue6(dataItem, layer.datafield);
|
|
2290
|
-
const resolvedAssetUrl =
|
|
2323
|
+
const resolvedAssetUrl = resolveAssetUrl(fieldValue, layer.tag);
|
|
2291
2324
|
if (resolvedAssetUrl) {
|
|
2292
2325
|
assetUrl = resolvedAssetUrl;
|
|
2293
2326
|
}
|