stream-engine-widgets 0.3.16 → 0.3.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.
- package/dist/{ArrowForwardIosRounded-BHHWNUfB.js → ArrowForwardIosRounded-C9zmOf72.js} +2 -2
- package/dist/{ArrowForwardIosRounded-BHHWNUfB.js.map → ArrowForwardIosRounded-C9zmOf72.js.map} +1 -1
- package/dist/{PlayArrowRounded-D1FELNJx.js → PlayArrowRounded-DdNg7m2h.js} +2 -2
- package/dist/{PlayArrowRounded-D1FELNJx.js.map → PlayArrowRounded-DdNg7m2h.js.map} +1 -1
- package/dist/{blaze-BOFmpQ80.js → blaze-CeNbi_KX.js} +2 -2
- package/dist/{blaze-BOFmpQ80.js.map → blaze-CeNbi_KX.js.map} +1 -1
- package/dist/{gallery-GRnjldyr.js → gallery-BOSln_EU.js} +3 -3
- package/dist/{gallery-GRnjldyr.js.map → gallery-BOSln_EU.js.map} +1 -1
- package/dist/{index-BkAInKCv.js → index-DjBrMNXD.js} +45 -10
- package/dist/{index-BkAInKCv.js.map → index-DjBrMNXD.js.map} +1 -1
- package/dist/{matchItem-CL87EJ7i.js → matchItem-D2KBdBAq.js} +2 -2
- package/dist/{matchItem-CL87EJ7i.js.map → matchItem-D2KBdBAq.js.map} +1 -1
- package/dist/{matches-CCFg5Xd1.js → matches-D5hu8fky.js} +4 -4
- package/dist/{matches-CCFg5Xd1.js.map → matches-D5hu8fky.js.map} +1 -1
- package/dist/{matchesStandalone-K-T-YXDH.js → matchesStandalone-DRz_iOPW.js} +19 -9
- package/dist/matchesStandalone-DRz_iOPW.js.map +1 -0
- package/dist/{player-BkFsXlEi.js → player-CLHZmuMt.js} +2 -2
- package/dist/{player-BkFsXlEi.js.map → player-CLHZmuMt.js.map} +1 -1
- package/dist/{poster-BFthK88T.js → poster-CkZ9TOx1.js} +3 -3
- package/dist/{poster-BFthK88T.js.map → poster-CkZ9TOx1.js.map} +1 -1
- package/dist/{posterItem-BojAdnBI.js → posterItem-D2g7Q1fG.js} +4 -4
- package/dist/{posterItem-BojAdnBI.js.map → posterItem-D2g7Q1fG.js.map} +1 -1
- package/dist/{scroll-Cm_Q9RJ9.js → scroll-BauCSAd_.js} +4 -4
- package/dist/{scroll-Cm_Q9RJ9.js.map → scroll-BauCSAd_.js.map} +1 -1
- package/dist/{stateTimeIndicator-BY_OhJJ6.js → stateTimeIndicator-CxRehvZ6.js} +2 -2
- package/dist/{stateTimeIndicator-BY_OhJJ6.js.map → stateTimeIndicator-CxRehvZ6.js.map} +1 -1
- package/dist/{story-BbKazkAh.js → story-CIBtq17n.js} +4 -4
- package/dist/{story-BbKazkAh.js.map → story-CIBtq17n.js.map} +1 -1
- package/dist/stream-engine-widgets.js +1 -1
- package/dist/{useMediaQuery-Bh9Ciip_.js → useMediaQuery-D-Vf7Ubw.js} +4 -4
- package/dist/{useMediaQuery-Bh9Ciip_.js.map → useMediaQuery-D-Vf7Ubw.js.map} +1 -1
- package/package.json +1 -1
- package/dist/matchesStandalone-K-T-YXDH.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import './index-
|
|
1
|
+
import './index-DjBrMNXD.js';
|
|
2
2
|
//# sourceMappingURL=stream-engine-widgets.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports, T as Thumbnail, i as importShared } from './index-
|
|
2
|
-
import { S as StateTimeIndicator } from './stateTimeIndicator-
|
|
3
|
-
import { P as PlayArrowRounded } from './PlayArrowRounded-
|
|
1
|
+
import { j as jsxRuntimeExports, T as Thumbnail, i as importShared } from './index-DjBrMNXD.js';
|
|
2
|
+
import { S as StateTimeIndicator } from './stateTimeIndicator-CxRehvZ6.js';
|
|
3
|
+
import { P as PlayArrowRounded } from './PlayArrowRounded-DdNg7m2h.js';
|
|
4
4
|
|
|
5
5
|
function GalleryItem({ item, settings, onClick }) {
|
|
6
6
|
const handleClick = () => {
|
|
@@ -110,4 +110,4 @@ const useMediaQuery = (values) => {
|
|
|
110
110
|
};
|
|
111
111
|
|
|
112
112
|
export { GalleryItem as G, useMediaQuery as u };
|
|
113
|
-
//# sourceMappingURL=useMediaQuery-
|
|
113
|
+
//# sourceMappingURL=useMediaQuery-D-Vf7Ubw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaQuery-
|
|
1
|
+
{"version":3,"file":"useMediaQuery-D-Vf7Ubw.js","sources":["../src/components/galleryItem.jsx","../src/utils/useMediaQuery.js"],"sourcesContent":["import {PlayArrowRounded} from \"@mui/icons-material\";\nimport StateTimeIndicator from \"./stateTimeIndicator\";\nimport Thumbnail from \"./thumbnail\";\n\nfunction GalleryItem({item, settings, onClick}) {\n const handleClick = () => {\n if(item.state==='vod' || item.state==='live'){\n onClick(item);\n }\n };\n return (\n <div className={`vf-gallery-item flex flex-col h-fit relative overflow-hidden group ${item.state==='vod' || item.state==='live' ? 'cursor-pointer' : ''} `} style={{paddingTop : settings.aspect}} onClick={handleClick}>\n <div className=\"absolute w-full h-full top-0 left-0\">\n <Thumbnail item={item} settings={settings} className={`${item.state==='vod' || item.state==='live'? 'group-hover:scale-110 transition-transform ease-out duration-700 group-hover:blur-sm':'' }`}/>\n </div>\n \n {(settings.showName || settings.showDesc) && \n <div className=\"vf-gallery-info text-[18px] absolute bottom-0 px-2 pb-5 w-full h-full z-20 bg-gradient-to-t from-black/80 to-transparent justify-end flex flex-col select-none\">\n {settings.showName && <span className=\"vf-gallery-title text-white font-bold text-[1em]\">{item.name}</span>}\n {settings.showDesc && <span className=\"vf-gallery-desc text-white leading-4 text-[0.8em]\">{item.description}</span>}\n </div>\n }\n {(item.state==='vod' || item.state==='live') && <div className=\"bg-black/50 hidden text-white w-full h-full absolute top-0 left-0 md:flex justify-center items-center z-30 opacity-0 group-hover:opacity-100\">\n <PlayArrowRounded sx={{ fontSize: 60 }}/>\n </div>}\n\n <StateTimeIndicator className=\"absolute top-2 left-0 z-40 rounded-r-md\" item={item} settings={settings}/>\n </div>\n );\n}\n\nexport default GalleryItem;\n","import {useEffect, useState} from 'react';\n\nexport const useMediaQuery = (values) => {\n const mediaMatchDefault = window.matchMedia('(max-width: 639px)');\n const mediaMatchS = window.matchMedia('(min-width: 640px) and (max-width: 767px)');\n const mediaMatchMD = window.matchMedia('(min-width: 768px) and (max-width: 1023px)');\n const mediaMatchLG = window.matchMedia('(min-width: 1024px) and (max-width: 1279px)');\n const mediaMatchXL = window.matchMedia('(min-width: 1280px) and (max-width: 1535px)');\n const mediaMatchXXL = window.matchMedia('(min-width: 1536px)');\n\n const [value, setValue] = useState(mediaMatchS.matches);\n\n const sizes = ['default','s','md','lg','xl','xxl'];\n\n const getValue = (size) =>{\n let actualSize;\n let sizeIndex = sizes.indexOf(size.toLowerCase());\n do{\n actualSize = values[sizes[sizeIndex]];\n sizeIndex--;\n }while(actualSize===undefined && sizeIndex>=0);\n\n return actualSize;\n }\n\n useEffect(() => {\n const handlerDefault = e => {\n if(e.matches){\n setValue(getValue('default'));\n } \n };\n const handlerS = e => {\n if(e.matches){\n setValue(getValue('s'));\n } \n };\n const handlerMD = e => {\n if(e.matches){\n setValue(getValue('md'));\n }\n };\n const handlerLG = e => {\n if(e.matches){\n setValue(getValue('lg'));\n }\n };\n const handlerXL = e => {\n if(e.matches){\n setValue(getValue('xl'));\n }\n };\n const handlerXXL = e => {\n if(e.matches){\n setValue(getValue('xxl'));\n }\n };\n mediaMatchDefault.addEventListener('change',handlerDefault);\n mediaMatchS.addEventListener('change',handlerS);\n mediaMatchMD.addEventListener('change',handlerMD);\n mediaMatchLG.addEventListener('change',handlerLG);\n mediaMatchXL.addEventListener('change',handlerXL);\n mediaMatchXXL.addEventListener('change',handlerXXL);\n\n //Init\n if(mediaMatchDefault.matches){\n setValue(getValue('default'));\n }else if(mediaMatchS.matches){\n setValue(getValue('s'));\n }else if(mediaMatchMD.matches){\n setValue(getValue('md'));\n }else if(mediaMatchLG.matches){\n setValue(getValue('lg'));\n }else if(mediaMatchXL.matches){\n setValue(getValue('xl'));\n }else if(mediaMatchXXL.matches){\n setValue(getValue('xxl'));\n }\n return () => {\n mediaMatchDefault.removeEventListener('change',handlerDefault);\n mediaMatchS.removeEventListener('change',handlerS);\n mediaMatchMD.removeEventListener('change',handlerMD);\n mediaMatchLG.removeEventListener('change',handlerLG);\n mediaMatchXL.removeEventListener('change',handlerXL);\n mediaMatchXXL.removeEventListener('change',handlerXXL);\n };\n },[]);\n return value;\n};"],"names":["jsxs","jsx"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matchesStandalone-K-T-YXDH.js","sources":["../src/utils/matchesDataMapper.js","../src/widgets/matchesStandalone/matchesStandalone.jsx"],"sourcesContent":["/**\n * API Data Mapper Utility\n * Transforms data from different API sources to a unified format for match widgets\n */\n\n/**\n * Maps live status from new API to expected event status\n * @param {string} liveStatus - Status from new API\n * @returns {string} Mapped status\n */\nconst mapEventStatus = (liveStatus) => {\n const statusMap = {\n 'Live': 'Ongoing',\n 'GameEnded': 'Finished',\n 'PreGame': 'Scheduled',\n 'Postponed': 'Postponed',\n 'Cancelled': 'Cancelled',\n };\n \n return statusMap[liveStatus] || 'Scheduled';\n};\n\n/**\n * Extracts time string from UTC date\n * @param {string} dateUTC - UTC date string\n * @returns {string} Time in HH:MM format\n */\nconst extractTime = (dateUTC) => {\n if (!dateUTC) return '';\n \n try {\n const date = new Date(dateUTC);\n return date.toISOString().substring(11, 16); // Extract HH:MM from ISO string\n } catch (error) {\n console.warn('Failed to extract time from date:', dateUTC);\n return '';\n }\n};\n\n/**\n * Finds participant by role\n * @param {Array} participants - Array of participants\n * @param {string} role - Role to find (\"Home\" or \"Away\")\n * @returns {Object|null} Participant object or null\n */\nconst findParticipantByRole = (participants, role) => {\n return participants?.find(participant => \n participant.roles?.includes(role)\n ) || null;\n};\n\n/**\n * Simple field mapping with fallback strategies for our two API formats\n * @param {Object} item - Raw match data\n * @param {string} fieldName - Field name to extract\n * @returns {string} Extracted field value\n */\nconst extractFieldValue = (item, fieldName) => {\n switch (fieldName) {\n case 'gameId':\n return String(item.gameId || item.id || '');\n \n case 'leagueName':\n return item.leagueName || item.roundName || '';\n \n case 'date':\n return item.date || item.dateUTC || '';\n \n case 'time':\n const time = item.time;\n if (time) return time;\n const dateStr = item.date || item.dateUTC;\n return dateStr ? extractTime(dateStr) : '';\n \n case 'arena':\n const venue = item.arena || item.venue;\n return (venue && venue !== '- Ingen arena -') ? venue : '';\n \n case 'homeTeamName':\n if (item.homeTeamName) return item.homeTeamName;\n const homeParticipant = findParticipantByRole(item.participants, 'Home');\n return homeParticipant?.name || '';\n \n case 'guestTeamName':\n if (item.guestTeamName) return item.guestTeamName;\n const awayParticipant = findParticipantByRole(item.participants, 'Away');\n return awayParticipant?.name || '';\n \n case 'homeTeamLogo':\n if (item.homeTeamLogo) return item.homeTeamLogo;\n const homeLogo = findParticipantByRole(item.participants, 'Home');\n return homeLogo?.icon || '';\n \n case 'guestTeamLogo':\n if (item.guestTeamLogo) return item.guestTeamLogo;\n const awayLogo = findParticipantByRole(item.participants, 'Away');\n return awayLogo?.icon || '';\n \n case 'homeScoreResult':\n if (item.homeScoreResult !== undefined) return String(item.homeScoreResult);\n const homeScore = findParticipantByRole(item.participants, 'Home');\n const score = homeScore?.score?.score;\n return score !== undefined ? String(score) : null;\n \n case 'guestScoreResult':\n if (item.guestScoreResult !== undefined) return String(item.guestScoreResult);\n const awayScore = findParticipantByRole(item.participants, 'Away');\n const awayScoreValue = awayScore?.score?.score;\n return awayScoreValue !== undefined ? String(awayScoreValue) : null;\n \n case 'eventStatus':\n const status = item.eventStatus || item.liveStatus;\n return mapEventStatus(status);\n default:\n return '';\n }\n};\n\n/**\n * Transform individual match item\n * @param {Object} item - Raw match data\n * @returns {Object} Transformed match item\n */\nconst transformMatchItem = (item) => ({\n gameId: extractFieldValue(item, 'gameId'),\n leagueName: extractFieldValue(item, 'leagueName'),\n date: extractFieldValue(item, 'date'),\n time: extractFieldValue(item, 'time'),\n arena: extractFieldValue(item, 'arena'),\n homeTeamName: extractFieldValue(item, 'homeTeamName'),\n homeTeamLogo: extractFieldValue(item, 'homeTeamLogo'),\n homeScoreResult: extractFieldValue(item, 'homeScoreResult'),\n guestTeamName: extractFieldValue(item, 'guestTeamName'),\n guestTeamLogo: extractFieldValue(item, 'guestTeamLogo'),\n guestScoreResult: extractFieldValue(item, 'guestScoreResult'),\n eventStatus: extractFieldValue(item, 'eventStatus')\n});\n\n/**\n * Simple data normalizer for legacy and participant-based APIs\n * @param {Object} response - API response\n * @returns {Object} Normalized data structure\n */\nexport const normalizeMatchData = (response) => {\n try {\n const dataArray = response?.data || response?.result || [];\n \n if (!Array.isArray(dataArray)) {\n console.warn('No valid data array found in response');\n return { data: [] };\n }\n \n const transformedData = dataArray?.map(transformMatchItem)?.filter(item => item.gameId);\n \n // Sort by date to ensure consistent ordering (earliest to latest)\n transformedData.sort((a, b) => {\n const dateA = new Date(a.date);\n const dateB = new Date(b.date);\n return dateA - dateB;\n });\n \n return { data: transformedData };\n \n } catch (error) {\n console.error('Error normalizing match data:', error);\n return { data: [] };\n }\n};\n\n/**\n * Builds dynamic URL with date range for new API\n * @param {string} baseUrl - Base API URL\n * @param {Object} dateRange - Date range configuration object with:\n * - daysBefore: number of days before today (e.g., 120)\n * - daysAfter: number of days after today (e.g., 30)\n * @returns {string} Complete URL with dynamic dates\n */\nexport const buildDynamicApiUrl = (baseUrl, dateRange) => {\n if (!dateRange || !baseUrl || typeof dateRange !== 'object') {\n return baseUrl;\n }\n \n const today = new Date();\n const timefrom = new Date(today);\n const timeto = new Date(today);\n \n const daysBefore = Math.abs(dateRange.daysBefore || 0);\n const daysAfter = Math.abs(dateRange.daysAfter || 0);\n \n if (daysBefore === 0 && daysAfter === 0) {\n console.warn('Invalid dateRange: Both daysBefore and daysAfter are 0 or undefined');\n return baseUrl;\n }\n \n timefrom.setDate(today.getDate() - daysBefore);\n timeto.setDate(today.getDate() + daysAfter);\n \n const timeFromISO = timefrom.toISOString();\n const timeToISO = timeto.toISOString();\n \n const url = new URL(baseUrl);\n url.searchParams.delete('timefrom');\n url.searchParams.delete('timeto');\n \n url.searchParams.set('timefrom', timeFromISO);\n url.searchParams.set('timeto', timeToISO);\n \n return url.toString();\n};\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport {\n ArrowBackIosRounded,\n ArrowForwardIosRounded,\n} from \"@mui/icons-material\";\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport MatchItem from \"../../components/matchItem\";\nimport { normalizeMatchData, buildDynamicApiUrl } from \"../../utils/matchesDataMapper\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(utc);\ndayjs.extend(localizedFormat);\n\nconst MatchesStandalone = ({ data }) => {\n const [error, setError] = useState(\"\");\n const [matches, setMatches] = useState([]);\n const [isInitiallyScrolled, setIsInitiallyScrolled] = useState(false);\n\n const scrollRef = useRef(null);\n const [scroll, setScroll] = useState({ showLeft: false, showRight: true });\n\n const [isHovered, setIsHovered] = useState(false);\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n const [dragging, setDragging] = useState(false);\n const [dragStartX, setDragStartX] = useState(0);\n const [scrollStartX, setScrollStartX] = useState(0);\n\n const dataByDate = useMemo(() => {\n const data = matches.reduce((dateMap, item) => {\n if (!item.date) return dateMap;\n const localDate = dayjs.utc(item.date).local();\n const local = navigator.language;\n item.date = localDate.toISOString();\n item.time = !!item.time\n ? new Date(localDate).toLocaleTimeString(local, {\n hour: \"numeric\",\n minute: \"numeric\",\n })\n : \"\";\n const dateKey = dayjs(item.date).format(\"YYYY-MM-DD\");\n dateMap.has(dateKey)\n ? dateMap.get(dateKey).push(item)\n : dateMap.set(dateKey, [item]);\n return dateMap;\n }, new Map());\n\n return data;\n }, [matches]);\n\n const matchStyles = useMemo(\n () => ({\n date: data.settings.date,\n header: data.settings.header,\n teams: data.settings.teams,\n showVenue: data.settings.showVenue,\n showLeague: data.settings.showLeague,\n showLogos: data.settings.showLogos,\n }),\n [data.settings]\n );\n\n useEffect(() => {\n const fetchMatches = async () => {\n try {\n // Build dynamic URL if date range is provided\n let finalUrl = data.settings.url;\n \n const { daysBefore, daysAfter } = data.settings || {};\n const hasDateRange = !isNaN(daysBefore) || !isNaN(daysAfter);\n \n if (hasDateRange) {\n const dateRange = {\n daysBefore: daysBefore || 0,\n daysAfter: daysAfter || 0\n };\n finalUrl = buildDynamicApiUrl(data.settings.url, dateRange);\n }\n \n const res = await fetch(finalUrl);\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n \n const rawData = await res.json();\n \n // Normalize data to handle both API formats\n const normalizedData = normalizeMatchData(rawData);\n \n setMatches(normalizedData.data || []);\n } catch (err) {\n //TODO - add error dispatch to widget\n console.error('Fetch matches error:', err);\n setError(`Failed to fetch data: ${err.message}`);\n }\n };\n\n fetchMatches();\n\n if (data.settings.fetchInterval) {\n const interval = setInterval(fetchMatches, data.settings.fetchInterval);\n return () => clearInterval(interval);\n }\n }, [data.settings.url, data.settings.fetchInterval, data.settings.daysBefore, data.settings.daysAfter]);\n\n const handleScroll = useCallback(() => {\n const container = scrollRef.current;\n if (!container) return;\n\n const showLeft = container.scrollLeft > 0;\n const showRight =\n container.scrollLeft + container.clientWidth + 1 < container.scrollWidth;\n setScroll({ showLeft, showRight });\n }, []);\n\n const scrollNext = useCallback(() => {\n const container = scrollRef.current;\n container.scroll({\n top: 0,\n left: container.scrollLeft + container.clientWidth,\n behavior: \"smooth\",\n });\n }, []);\n\n const scrollPrev = useCallback(() => {\n const container = scrollRef.current;\n container.scroll({\n top: 0,\n left: container.scrollLeft - container.clientWidth,\n behavior: \"smooth\",\n });\n }, []);\n\n useEffect(() => {\n const container = scrollRef.current;\n if (!container) return;\n\n container.style.userSelect = \"none\";\n container.addEventListener(\"scroll\", handleScroll);\n handleScroll();\n\n return () => {\n container.removeEventListener(\"scroll\", handleScroll);\n };\n }, [handleScroll]);\n\n useEffect(() => {\n const container = scrollRef.current;\n if (!container || matches.length === 0 || isInitiallyScrolled) return;\n\n const today = dayjs().startOf(\"day\");\n const scrollToDate = matches.reduce((closestDate, item) => {\n const itemDate = dayjs(item.date).startOf(\"day\");\n if (itemDate.isSameOrAfter(today)) {\n if (!closestDate || itemDate.isBefore(closestDate)) {\n closestDate = itemDate;\n }\n }\n return closestDate;\n }, null);\n\n const uniqueDays = Array.from(\n new Set(\n matches.map((item) =>\n dayjs(item.date).startOf(\"day\").format(\"YYYY-MM-DD\")\n )\n )\n );\n\n const index = scrollToDate\n ? uniqueDays.findIndex((day) => day === scrollToDate.format(\"YYYY-MM-DD\"))\n : undefined;\n\n if (index >= 0) {\n const dateElement = document.getElementById(`date_${index}`);\n if (dateElement) {\n dateElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"start\",\n });\n }\n } else {\n container.scroll({\n top: 0,\n left: container.scrollWidth,\n behavior: \"smooth\",\n });\n }\n\n setIsInitiallyScrolled(true);\n handleScroll();\n }, [matches, isInitiallyScrolled, handleScroll]);\n\n const handleDragStart = useCallback((e) => {\n setDragging(true);\n setDragStartX(e.clientX);\n setScrollStartX(scrollRef.current.scrollLeft);\n }, []);\n\n const handleDragEnd = useCallback(() => {\n setDragging(false);\n }, []);\n\n useEffect(() => {\n const handleDragMove = (e) => {\n if (!dragging) return;\n const dragDistance = e.clientX - dragStartX;\n scrollRef.current.scrollLeft = scrollStartX - dragDistance;\n };\n\n if (dragging) {\n document.addEventListener(\"mousemove\", handleDragMove);\n document.addEventListener(\"mouseup\", handleDragEnd);\n\n return () => {\n document.removeEventListener(\"mousemove\", handleDragMove);\n document.removeEventListener(\"mouseup\", handleDragEnd);\n };\n }\n }, [dragging, dragStartX, scrollStartX, handleDragEnd]);\n\n const errorDisplay = (\n <div className=\"w-full h-full flex justify-center items-center\">\n <div className=\"bg-black/90 p-5 rounded-md\">\n <span className=\"text-white\">{error}</span>\n </div>\n </div>\n );\n\n const renderMatches = useCallback(() => {\n const uniqueDates = Array.from(dataByDate.keys());\n\n return uniqueDates.map((dateStr, idx) => {\n const date = dayjs(dateStr);\n const dayFormatted = date.format(\"ddd\");\n const dateFormatted = date.format(\"DD\");\n const monthFormatted = date.format(\"MMM\");\n const isToday = date.isSame(dayjs(), \"day\");\n const matchItems = dataByDate.get(dateStr).map((item, idx) => (\n <div\n key={`${item.gameId}_${idx}`}\n className=\"flex-grow-0 flex-shrink-0 h-full relative mr-0.5\"\n >\n <MatchItem item={item} styles={matchStyles} />\n </div>\n ));\n\n return (\n <div key={`date-group-${dateStr}`} className=\"date-group flex\">\n <div\n id={`date_${idx}`}\n className=\"flex flex-col justify-center items-center space-y-10 rounded sticky left-0 z-10 mr-0.5\"\n style={{\n backgroundColor: data.settings.date.backgroundColor,\n color: data.settings.date.textColor,\n border: isToday\n ? `2px solid ${\n data.settings.date.todayBorderColor ?? \"#08152E\"\n }`\n : \"\",\n ...(data.settings.showLeague &&\n data.settings.showVenue && { height: \"200px\" }),\n width: \"50px\",\n position: \"sticky\",\n left: 0,\n boxShadow: \"4px 0 6px -1px rgba(0, 0, 0, 0.1)\",\n }}\n >\n <div className=\"flex flex-col items-center justify-center w-20 gap-1.5\">\n <div className=\"flex flex-col items-center justify-center\">\n <div className=\"font-bold text-lg leading-none\">\n {dateFormatted}\n </div>\n <div className=\"font-bold text-sm leading-none\">\n {monthFormatted}\n </div>\n </div>\n <hr\n style={{\n width: \"50%\",\n backgroundColor: data.settings.date.textColor,\n opacity: \"38%\",\n height: \"1px\",\n border: \"none\",\n }}\n ></hr>\n <div className=\"text-sm leading-none\">{dayFormatted}</div>\n </div>\n </div>\n <div className=\"matches-container flex\">{matchItems}</div>\n </div>\n );\n });\n }, [dataByDate, matchStyles, data.settings.date]);\n\n const arrowStyles =\n \"vf-scroll-button z-30 absolute bg-black text-white/70 w-12 h-12 bg-black/50 rounded-lg flex justify-center items-center hover:text-white hover:bg-black/90 cursor-pointer m-0.25\";\n const backArrowStyles = `${arrowStyles} left-3 top-1/2 -translate-y-1/2`;\n const forwardArrowStyles = `${arrowStyles} right-3 top-1/2 -translate-y-1/2`;\n\n const matchContainer = (\n <div\n id={`widget-${data.id}`}\n className=\"overflow-y-hidden w-full relative my-2.5\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div\n ref={scrollRef}\n className=\"vf-team-vs-team overflow-y-hidden overflow-x-auto flex h-full w-full snap-x scrollbar-none gap-0.5\"\n onMouseDown={handleDragStart}\n onMouseUp={handleDragEnd}\n >\n {renderMatches()}\n </div>\n {isHovered && scroll.showLeft && (\n <div onClick={scrollPrev} className={backArrowStyles}>\n <ArrowBackIosRounded fontSize=\"large\" />\n </div>\n )}\n {isHovered && scroll.showRight && (\n <div onClick={scrollNext} className={forwardArrowStyles}>\n <ArrowForwardIosRounded fontSize=\"large\" />\n </div>\n )}\n </div>\n );\n\n return error ? errorDisplay : matchContainer;\n};\n\nexport default memo(MatchesStandalone);\n"],"names":["data","jsx","idx","jsxs"],"mappings":"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"}
|