webs-sdk 0.14.16 → 0.14.17

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,5 +1,8 @@
1
1
  export { EsportsNews } from './news/EsportsNews';
2
2
  export { createEsportsNewsAPI, EsportsNewsAPI } from './news/api';
3
3
  export type { NewsItem, ContentConfig, EsportsNewsConfig, EsportsNewsProps, EsportsNewsTheme, CategoryStyle, EsportsNewsAPIConfig, } from './news';
4
+ export { EsportsVideos } from './videos/EsportsVideos';
5
+ export { createEsportsVideosAPI, EsportsVideosAPI } from './videos/api';
6
+ export type { VideoItem, EsportsVideosConfig, EsportsVideosProps, EsportsVideosTheme, EsportsVideosAPIConfig, } from './videos';
4
7
  export { formatTimeAgo, addImageSuffix, getBestImage } from './utils';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/esports/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EACV,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/esports/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EACV,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBestImage = exports.addImageSuffix = exports.formatTimeAgo = exports.EsportsNewsAPI = exports.createEsportsNewsAPI = exports.EsportsNews = void 0;
3
+ exports.getBestImage = exports.addImageSuffix = exports.formatTimeAgo = exports.EsportsVideosAPI = exports.createEsportsVideosAPI = exports.EsportsVideos = exports.EsportsNewsAPI = exports.createEsportsNewsAPI = exports.EsportsNews = void 0;
4
4
  var EsportsNews_1 = require("./news/EsportsNews");
5
5
  Object.defineProperty(exports, "EsportsNews", { enumerable: true, get: function () { return EsportsNews_1.EsportsNews; } });
6
6
  var api_1 = require("./news/api");
7
7
  Object.defineProperty(exports, "createEsportsNewsAPI", { enumerable: true, get: function () { return api_1.createEsportsNewsAPI; } });
8
8
  Object.defineProperty(exports, "EsportsNewsAPI", { enumerable: true, get: function () { return api_1.EsportsNewsAPI; } });
9
+ var EsportsVideos_1 = require("./videos/EsportsVideos");
10
+ Object.defineProperty(exports, "EsportsVideos", { enumerable: true, get: function () { return EsportsVideos_1.EsportsVideos; } });
11
+ var api_2 = require("./videos/api");
12
+ Object.defineProperty(exports, "createEsportsVideosAPI", { enumerable: true, get: function () { return api_2.createEsportsVideosAPI; } });
13
+ Object.defineProperty(exports, "EsportsVideosAPI", { enumerable: true, get: function () { return api_2.EsportsVideosAPI; } });
9
14
  var utils_1 = require("./utils");
10
15
  Object.defineProperty(exports, "formatTimeAgo", { enumerable: true, get: function () { return utils_1.formatTimeAgo; } });
11
16
  Object.defineProperty(exports, "addImageSuffix", { enumerable: true, get: function () { return utils_1.addImageSuffix; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/esports/index.ts"],"names":[],"mappings":";;;AAKA,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,kCAAkE;AAAzD,2GAAA,oBAAoB,OAAA;AAAE,qGAAA,cAAc,OAAA;AAY7C,iCAAsE;AAA7D,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,qGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/esports/index.ts"],"names":[],"mappings":";;;AAKA,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,kCAAkE;AAAzD,2GAAA,oBAAoB,OAAA;AAAE,qGAAA,cAAc,OAAA;AAY7C,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,oCAAwE;AAA/D,6GAAA,sBAAsB,OAAA;AAAE,uGAAA,gBAAgB,OAAA;AAUjD,iCAAsE;AAA7D,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,qGAAA,YAAY,OAAA"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { EsportsVideosProps } from './types';
3
+ export declare function EsportsVideos(props: EsportsVideosProps): React.JSX.Element;
4
+ export default EsportsVideos;
5
+ //# sourceMappingURL=EsportsVideos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EsportsVideos.d.ts","sourceRoot":"","sources":["../../../../src/components/esports/videos/EsportsVideos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AAE7D,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA6OtD;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.EsportsVideos = EsportsVideos;
37
+ const react_1 = __importStar(require("react"));
38
+ const api_1 = require("./api");
39
+ const utils_1 = require("../utils");
40
+ const timeUtils_1 = require("../../../utils/timeUtils");
41
+ function EsportsVideos(props) {
42
+ const { config, language, onVideoClick, translations = {}, translateFn, theme = {}, categoryStyles = {}, defaultCategoryStyle = {}, } = props;
43
+ const [videos, setVideos] = (0, react_1.useState)([]);
44
+ const [loading, setLoading] = (0, react_1.useState)(true);
45
+ const [error, setError] = (0, react_1.useState)(null);
46
+ const scrollContainerRef = (0, react_1.useRef)(null);
47
+ const t = (key, params) => {
48
+ if (translateFn) {
49
+ return translateFn(key, params);
50
+ }
51
+ const translationsRecord = translations;
52
+ let value = translationsRecord[key] || key;
53
+ if (params && typeof value === 'string') {
54
+ Object.keys(params).forEach(param => {
55
+ value = value.replace(`{${param}}`, params[param]);
56
+ });
57
+ }
58
+ return value;
59
+ };
60
+ const defaultTheme = {
61
+ container: 'w-full px-4 py-8',
62
+ sectionTitle: 'text-2xl font-bold mb-6 text-gray-900 dark:text-white',
63
+ featuredCard: 'relative overflow-hidden rounded-lg shadow-lg cursor-pointer transition-transform hover:scale-[1.02] group mb-8',
64
+ featuredImage: 'w-full h-[400px] object-cover',
65
+ featuredContent: 'absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/90 via-black/60 to-transparent p-6',
66
+ featuredBadge: 'inline-block px-3 py-1 text-xs font-semibold rounded-full mb-3',
67
+ featuredTitle: 'text-2xl font-bold text-white mb-2 group-hover:text-blue-400 transition-colors',
68
+ featuredExcerpt: 'text-gray-200 text-sm line-clamp-2 mb-2',
69
+ featuredTime: 'text-gray-300 text-xs',
70
+ featuredDuration: 'absolute top-4 right-4 bg-black/80 text-white px-2 py-1 rounded text-xs font-semibold',
71
+ gridContainer: 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6',
72
+ gridCard: 'bg-white dark:bg-gray-800 rounded-lg shadow-md overflow-hidden cursor-pointer group hover:shadow-xl transition-shadow',
73
+ gridImage: 'w-full h-48 object-cover relative',
74
+ gridContent: 'p-4',
75
+ gridBadge: 'inline-block px-2 py-1 text-xs font-semibold rounded-full mb-2',
76
+ gridTitle: 'text-base font-semibold text-gray-900 dark:text-white line-clamp-2 mb-2 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors',
77
+ gridTime: 'text-gray-500 dark:text-gray-400 text-xs',
78
+ gridDuration: 'absolute bottom-2 right-2 bg-black/80 text-white px-2 py-1 rounded text-xs font-semibold',
79
+ loading: 'text-center py-12 text-gray-500',
80
+ error: 'text-center py-12 text-red-500',
81
+ empty: 'text-center py-12 text-gray-500',
82
+ };
83
+ const mergedTheme = Object.assign(Object.assign({}, defaultTheme), theme);
84
+ const defaultBadgeStyle = {
85
+ badge: 'bg-blue-600',
86
+ badgeText: 'text-white',
87
+ };
88
+ const mergedDefaultCategoryStyle = Object.assign(Object.assign({}, defaultBadgeStyle), defaultCategoryStyle);
89
+ (0, react_1.useEffect)(() => {
90
+ const fetchVideos = async () => {
91
+ try {
92
+ setLoading(true);
93
+ setError(null);
94
+ const api = new api_1.EsportsVideosAPI();
95
+ const videosData = await api.getVideos(config.contents, language);
96
+ setVideos(videosData);
97
+ }
98
+ catch (err) {
99
+ console.error('Error fetching esports videos:', err);
100
+ setError(err instanceof Error ? err.message : 'Unknown error');
101
+ }
102
+ finally {
103
+ setLoading(false);
104
+ }
105
+ };
106
+ fetchVideos();
107
+ }, [config, language]);
108
+ const getCategoryStyle = (category) => {
109
+ return categoryStyles[category.toLowerCase()] || mergedDefaultCategoryStyle;
110
+ };
111
+ const handleVideoClick = (videoItem) => {
112
+ if (onVideoClick) {
113
+ onVideoClick(videoItem);
114
+ }
115
+ };
116
+ const scroll = (direction) => {
117
+ if (scrollContainerRef.current) {
118
+ const scrollAmount = 320;
119
+ const newScrollPosition = scrollContainerRef.current.scrollLeft + (direction === 'left' ? -scrollAmount : scrollAmount);
120
+ scrollContainerRef.current.scrollTo({ left: newScrollPosition, behavior: 'smooth' });
121
+ }
122
+ };
123
+ if (loading) {
124
+ return react_1.default.createElement("div", { className: mergedTheme.loading }, t('esports.videos.loading'));
125
+ }
126
+ if (error) {
127
+ return react_1.default.createElement("div", { className: mergedTheme.error }, t('esports.videos.error'));
128
+ }
129
+ if (videos.length === 0) {
130
+ return react_1.default.createElement("div", { className: mergedTheme.empty }, t('esports.videos.noVideos'));
131
+ }
132
+ const featuredVideo = videos[0];
133
+ const gridVideos = videos.slice(1);
134
+ return (react_1.default.createElement("div", { className: mergedTheme.container },
135
+ react_1.default.createElement("h2", { className: mergedTheme.sectionTitle }, t('esports.videos.title')),
136
+ react_1.default.createElement("div", { className: mergedTheme.featuredCard, onClick: () => handleVideoClick(featuredVideo) },
137
+ react_1.default.createElement("div", { className: "relative" },
138
+ react_1.default.createElement("img", { src: (0, utils_1.getBestImage)(featuredVideo), alt: featuredVideo.title, className: mergedTheme.featuredImage }),
139
+ react_1.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center" },
140
+ react_1.default.createElement("div", { className: "w-16 h-16 bg-red-600 rounded-full flex items-center justify-center group-hover:bg-red-700 transition-colors shadow-lg" },
141
+ react_1.default.createElement("svg", { className: "w-8 h-8 text-white ml-1", fill: "currentColor", viewBox: "0 0 20 20" },
142
+ react_1.default.createElement("path", { d: "M6.3 2.841A1.5 1.5 0 004 4.11V15.89a1.5 1.5 0 002.3 1.269l9.344-5.89a1.5 1.5 0 000-2.538L6.3 2.84z" })))),
143
+ featuredVideo.duration && (react_1.default.createElement("span", { className: mergedTheme.featuredDuration }, featuredVideo.duration))),
144
+ react_1.default.createElement("div", { className: mergedTheme.featuredContent },
145
+ featuredVideo.category && (react_1.default.createElement("span", { className: `${mergedTheme.featuredBadge} ${getCategoryStyle(featuredVideo.category).badge} ${getCategoryStyle(featuredVideo.category).badgeText}` }, featuredVideo.category)),
146
+ react_1.default.createElement("h3", { className: mergedTheme.featuredTitle }, featuredVideo.title),
147
+ featuredVideo.excerpt && (react_1.default.createElement("p", { className: mergedTheme.featuredExcerpt }, featuredVideo.excerpt)),
148
+ react_1.default.createElement("p", { className: mergedTheme.featuredTime }, (0, timeUtils_1.getTimeAgo)(featuredVideo.date, t)))),
149
+ gridVideos.length > 0 && (react_1.default.createElement("div", { className: mergedTheme.gridContainer }, gridVideos.map((videoItem) => (react_1.default.createElement("div", { key: videoItem.id, className: mergedTheme.gridCard, onClick: () => handleVideoClick(videoItem) },
150
+ react_1.default.createElement("div", { className: "relative" },
151
+ react_1.default.createElement("img", { src: (0, utils_1.getBestImage)(videoItem), alt: videoItem.title, className: mergedTheme.gridImage }),
152
+ react_1.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center" },
153
+ react_1.default.createElement("div", { className: "w-12 h-12 bg-red-600 rounded-full flex items-center justify-center group-hover:bg-red-700 transition-colors shadow-lg" },
154
+ react_1.default.createElement("svg", { className: "w-6 h-6 text-white ml-0.5", fill: "currentColor", viewBox: "0 0 20 20" },
155
+ react_1.default.createElement("path", { d: "M6.3 2.841A1.5 1.5 0 004 4.11V15.89a1.5 1.5 0 002.3 1.269l9.344-5.89a1.5 1.5 0 000-2.538L6.3 2.84z" })))),
156
+ videoItem.duration && (react_1.default.createElement("span", { className: mergedTheme.gridDuration }, videoItem.duration))),
157
+ react_1.default.createElement("div", { className: mergedTheme.gridContent },
158
+ videoItem.category && (react_1.default.createElement("span", { className: `${mergedTheme.gridBadge} ${getCategoryStyle(videoItem.category).badge} ${getCategoryStyle(videoItem.category).badgeText}` }, videoItem.category)),
159
+ react_1.default.createElement("h4", { className: mergedTheme.gridTitle }, videoItem.title),
160
+ react_1.default.createElement("p", { className: mergedTheme.gridTime }, (0, timeUtils_1.getTimeAgo)(videoItem.date, t))))))))));
161
+ }
162
+ exports.default = EsportsVideos;
163
+ //# sourceMappingURL=EsportsVideos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EsportsVideos.js","sourceRoot":"","sources":["../../../../src/components/esports/videos/EsportsVideos.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ContentConfig, VideoItem } from './types';
2
+ export interface EsportsVideosAPIConfig {
3
+ baseUrl?: string;
4
+ websiteId?: string;
5
+ }
6
+ export declare class EsportsVideosAPI {
7
+ private config;
8
+ constructor(config?: EsportsVideosAPIConfig);
9
+ getVideos(contentConfig: ContentConfig[], language: string): Promise<VideoItem[]>;
10
+ private fetchContentsByPreset;
11
+ private transformVideoItems;
12
+ getVideoById(id: string | number, preset: string | undefined, language: string): Promise<VideoItem | null>;
13
+ }
14
+ export declare function createEsportsVideosAPI(config?: EsportsVideosAPIConfig): EsportsVideosAPI;
15
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/components/esports/videos/api.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,GAAE,sBAA2B;IAUzC,SAAS,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YA8BzE,qBAAqB;IAmEnC,OAAO,CAAC,mBAAmB;IA4BrB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,YAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAwC1H;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,sBAA2B,GAAG,gBAAgB,CAE5F"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.EsportsVideosAPI = void 0;
15
+ exports.createEsportsVideosAPI = createEsportsVideosAPI;
16
+ class EsportsVideosAPI {
17
+ constructor(config = {}) {
18
+ this.config = {
19
+ baseUrl: config.baseUrl || '/api/content-preset',
20
+ websiteId: config.websiteId || '',
21
+ };
22
+ }
23
+ async getVideos(contentConfig, language) {
24
+ console.log('[EsportsVideosAPI] Obteniendo videos con config:', contentConfig);
25
+ try {
26
+ const allVideos = [];
27
+ for (const config of contentConfig) {
28
+ const videosFromConfig = await this.fetchContentsByPreset(config, language);
29
+ allVideos.push(...videosFromConfig);
30
+ }
31
+ allVideos.sort((a, b) => {
32
+ const dateA = new Date(a.date).getTime();
33
+ const dateB = new Date(b.date).getTime();
34
+ return dateB - dateA;
35
+ });
36
+ console.log('[EsportsVideosAPI] Total videos obtenidos:', allVideos.length);
37
+ return allVideos;
38
+ }
39
+ catch (error) {
40
+ console.error('[EsportsVideosAPI] Error obteniendo videos:', error);
41
+ throw error;
42
+ }
43
+ }
44
+ async fetchContentsByPreset(config, language) {
45
+ const { preset } = config, params = __rest(config, ["preset"]);
46
+ console.log('[EsportsVideosAPI] Fetching con preset:', preset, 'params:', params);
47
+ try {
48
+ const requestBody = {
49
+ preset,
50
+ params: Object.assign(Object.assign({}, params), { language, limit: params.limit || 20 }),
51
+ };
52
+ console.log('[EsportsVideosAPI] Request body:', JSON.stringify(requestBody));
53
+ const response = await fetch(this.config.baseUrl, {
54
+ method: 'POST',
55
+ headers: {
56
+ 'Content-Type': 'application/json',
57
+ },
58
+ body: JSON.stringify(requestBody),
59
+ });
60
+ if (!response.ok) {
61
+ throw new Error(`API error: ${response.status} ${response.statusText}`);
62
+ }
63
+ const data = await response.json();
64
+ console.log('[EsportsVideosAPI] Response data:', data);
65
+ if (data && data.success && data.data) {
66
+ const nestedData = data.data;
67
+ if (nestedData && nestedData.data && typeof nestedData.data === 'object') {
68
+ for (const key in nestedData.data) {
69
+ const value = nestedData.data[key];
70
+ if (Array.isArray(value)) {
71
+ console.log('[EsportsVideosAPI] Encontrados', value.length, 'items');
72
+ return this.transformVideoItems(value);
73
+ }
74
+ }
75
+ }
76
+ if (Array.isArray(nestedData.data)) {
77
+ return this.transformVideoItems(nestedData.data);
78
+ }
79
+ }
80
+ console.log('[EsportsVideosAPI] No se encontraron contenidos válidos');
81
+ return [];
82
+ }
83
+ catch (error) {
84
+ console.error('[EsportsVideosAPI] Error en fetchContentsByPreset:', error);
85
+ return [];
86
+ }
87
+ }
88
+ transformVideoItems(items) {
89
+ return items.map(item => {
90
+ var _a;
91
+ return ({
92
+ id: item.id || item.content_id || '',
93
+ title: item.title || '',
94
+ description: item.description || item.excerpt || '',
95
+ excerpt: item.excerpt || item.description || '',
96
+ category: item.category || item.tag || '',
97
+ tag: item.tag || item.category || '',
98
+ thumbnail: item.thumbnail || ((_a = item.images) === null || _a === void 0 ? void 0 : _a.img1) || '',
99
+ images: item.images || {
100
+ img1: item.thumbnail || '',
101
+ xl: item.thumbnail || '',
102
+ sm: item.thumbnail || '',
103
+ thumbnail: item.thumbnail || '',
104
+ },
105
+ date: item.date || item.created_at || new Date().toISOString(),
106
+ time: item.time || item.date || '',
107
+ featured: item.featured || false,
108
+ contents: item.contents || item.content || '',
109
+ source_domain: item.source_domain || '',
110
+ video_url: item.video_url || item.url || '',
111
+ duration: item.duration || item.video_duration || '',
112
+ });
113
+ });
114
+ }
115
+ async getVideoById(id, preset = 'getContentsByIDs', language) {
116
+ console.log('[EsportsVideosAPI] Obteniendo video por ID:', id);
117
+ try {
118
+ const requestBody = {
119
+ preset,
120
+ params: {
121
+ language,
122
+ includeIds: [typeof id === 'string' ? parseInt(id) : id],
123
+ },
124
+ };
125
+ const response = await fetch(this.config.baseUrl, {
126
+ method: 'POST',
127
+ headers: {
128
+ 'Content-Type': 'application/json',
129
+ },
130
+ body: JSON.stringify(requestBody),
131
+ });
132
+ if (!response.ok) {
133
+ throw new Error(`API error: ${response.status}`);
134
+ }
135
+ const data = await response.json();
136
+ if (data && data.success && data.data && data.data.data && data.data.data.data) {
137
+ const dataArray = data.data.data.data;
138
+ if (Array.isArray(dataArray) && dataArray.length > 0) {
139
+ const transformed = this.transformVideoItems([dataArray[0]]);
140
+ return transformed[0] || null;
141
+ }
142
+ }
143
+ return null;
144
+ }
145
+ catch (error) {
146
+ console.error('[EsportsVideosAPI] Error obteniendo video por ID:', error);
147
+ throw error;
148
+ }
149
+ }
150
+ }
151
+ exports.EsportsVideosAPI = EsportsVideosAPI;
152
+ function createEsportsVideosAPI(config = {}) {
153
+ return new EsportsVideosAPI(config);
154
+ }
155
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/components/esports/videos/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { EsportsVideos } from './EsportsVideos';
2
+ export { EsportsVideosAPI, createEsportsVideosAPI } from './api';
3
+ export type { EsportsVideosAPIConfig } from './api';
4
+ export type { VideoItem, ContentConfig, EsportsVideosConfig, EsportsVideosTheme, CategoryStyle, TranslationFunction, EsportsVideosProps, } from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/esports/videos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AACpD,YAAY,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createEsportsVideosAPI = exports.EsportsVideosAPI = exports.EsportsVideos = void 0;
4
+ var EsportsVideos_1 = require("./EsportsVideos");
5
+ Object.defineProperty(exports, "EsportsVideos", { enumerable: true, get: function () { return EsportsVideos_1.EsportsVideos; } });
6
+ var api_1 = require("./api");
7
+ Object.defineProperty(exports, "EsportsVideosAPI", { enumerable: true, get: function () { return api_1.EsportsVideosAPI; } });
8
+ Object.defineProperty(exports, "createEsportsVideosAPI", { enumerable: true, get: function () { return api_1.createEsportsVideosAPI; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/esports/videos/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,6BAAiE;AAAxD,uGAAA,gBAAgB,OAAA;AAAE,6GAAA,sBAAsB,OAAA"}
@@ -0,0 +1,89 @@
1
+ export interface VideoItem {
2
+ id: string | number;
3
+ title: string;
4
+ description: string;
5
+ excerpt?: string;
6
+ category: string;
7
+ tag?: string;
8
+ thumbnail?: string;
9
+ images?: {
10
+ img1?: string;
11
+ img2?: string;
12
+ img3?: string;
13
+ img4?: string;
14
+ xl?: string;
15
+ sm?: string;
16
+ thumbnail?: string;
17
+ [key: string]: string | undefined;
18
+ };
19
+ date: string;
20
+ time?: string;
21
+ featured?: boolean;
22
+ contents?: string;
23
+ source_domain?: string;
24
+ video_url?: string;
25
+ duration?: string;
26
+ }
27
+ export interface ContentConfig {
28
+ preset: string;
29
+ apiProviderId?: number;
30
+ category?: number[];
31
+ tags?: string[];
32
+ includeIds?: number[];
33
+ limit?: number;
34
+ [key: string]: any;
35
+ }
36
+ export interface EsportsVideosConfig {
37
+ key: string;
38
+ contents: ContentConfig[];
39
+ }
40
+ export interface EsportsVideosTheme {
41
+ container?: string;
42
+ sectionTitle?: string;
43
+ mainGrid?: string;
44
+ featuredCard?: string;
45
+ featuredImage?: string;
46
+ featuredContent?: string;
47
+ featuredBadge?: string;
48
+ featuredTitle?: string;
49
+ featuredExcerpt?: string;
50
+ featuredTime?: string;
51
+ featuredDuration?: string;
52
+ secondaryContainer?: string;
53
+ secondaryCard?: string;
54
+ secondaryImage?: string;
55
+ secondaryContent?: string;
56
+ secondaryBadge?: string;
57
+ secondaryTitle?: string;
58
+ secondaryTime?: string;
59
+ secondaryDuration?: string;
60
+ gridContainer?: string;
61
+ gridCard?: string;
62
+ gridImage?: string;
63
+ gridContent?: string;
64
+ gridBadge?: string;
65
+ gridTitle?: string;
66
+ gridTime?: string;
67
+ gridDuration?: string;
68
+ loading?: string;
69
+ error?: string;
70
+ empty?: string;
71
+ }
72
+ export interface CategoryStyle {
73
+ badge?: string;
74
+ badgeText?: string;
75
+ }
76
+ export type TranslationFunction = (key: string, params?: Record<string, any>) => string;
77
+ export interface EsportsVideosProps {
78
+ config: EsportsVideosConfig;
79
+ language: string;
80
+ onVideoClick?: (video: VideoItem) => void;
81
+ translations?: Record<string, any>;
82
+ translateFn?: TranslationFunction;
83
+ theme?: EsportsVideosTheme;
84
+ categoryStyles?: {
85
+ [key: string]: CategoryStyle;
86
+ };
87
+ defaultCategoryStyle?: CategoryStyle;
88
+ }
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/esports/videos/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/esports/videos/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "webs-sdk",
3
3
 
4
- "version": "0.14.16",
4
+ "version": "0.14.17",
5
5
 
6
6
  "private": false,
7
7
  "main": "index.js",