Files
MyClub/frontend/build/static/js/469.ec731235.chunk.js.map
T
Tomas Dvorak 84a8acf944 update
2026-03-02 20:20:56 +01:00

1 line
6.4 KiB
Plaintext

{"version":3,"file":"static/js/469.ec731235.chunk.js","mappings":"uMAuBA,MAkHA,EAlHoDA,IAA6C,IAA5C,QAAEC,EAAO,UAAEC,EAAS,eAAEC,GAAgBH,EAEzF,MAAMI,GAAiBH,GAAW,IAAII,OACpCC,GAAKA,EAAEJ,YAAcA,IAA8B,IAAhBI,EAAEC,WAGvC,GAA6B,IAAzBH,EAAcI,OAChB,OAAO,KAGT,MAkEMC,GAAmBC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAjDQC,MAC/B,MAAMC,EAA4B,CAChCC,OAAQ,SACRC,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,IAAK,OACLC,SAAU,QAGZ,OAAQhB,GACN,IAAK,eACH,OAAAQ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKE,GAAI,IACPO,MAAO,QACPC,SAAU,WACVC,KAAM,MACNC,MAAO,MACPC,WAAY,QACZC,YAAa,QACbC,gBAAiB,sBACjBC,QAAS,OACTC,UAAW,gCACXC,aAAc,kCAElB,IAAK,kBACH,OAAAlB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKE,GAAI,IACPO,MAAO,QACPC,SAAU,WACVC,KAAM,MACNC,MAAO,MACPC,WAAY,QACZC,YAAa,QACbC,gBAAiB,sBACjBC,QAAS,YACTC,UAAW,kCAEf,IAAK,uBACH,OAAAjB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKE,GAAI,IACPC,OAAQ,WACRE,eAAgB,WAEpB,QACE,OAAOH,IAIoBD,IAA+BR,GAEhE,OACE0B,EAAAA,EAAAA,KAACC,EAAAA,EAAG,CACFC,GAAG,UACHC,UAvEsBC,MACxB,OAAQ/B,GACN,IAAK,eACH,MAAO,aACT,IAAK,kBACH,MAAO,gBACT,IAAK,kBACH,MAAO,gBACT,IAAK,iBACH,MAAO,iBACT,IAAK,uBACH,MAAO,qBACT,QACE,MAAO,WA0DE+B,GACXC,GAAIzB,EAAoB0B,SAEvB/B,EAAcgC,IAAKC,IAClBR,EAAAA,EAAAA,KAACS,EAAAA,EAAU,CAETC,KAAMF,EAAOG,KAAOH,EAAOI,WAAa,IACxCC,cAAeL,EAAOG,MAAOH,EAAOI,WACpCE,OAASN,EAAOG,KAAOH,EAAOI,UAAa,cAAWG,EACtDC,IAAMR,EAAOG,KAAOH,EAAOI,UAAa,2BAAwBG,EAChE9B,QAAQ,eACRgC,OAAQ,CAAEC,QAAS,GAAKC,UAAW,oBACnCC,WAAW,WAAUd,UAErBN,EAAAA,EAAAA,KAAA,OACEqB,KAAKC,EAAAA,EAAAA,IAASd,EAAOe,OAASf,EAAOgB,WAAa,KAAOhB,EAAOe,OAASf,EAAOgB,WAAa,GAC7FC,IAAKjB,EAAOkB,KACZC,MAAO,CACLC,SAAU,OACVtC,MAAOkB,EAAOlB,MAAK,GAAAuC,OAAMrB,EAAOlB,MAAK,MAAO,OAC5CwC,OAAQtB,EAAOsB,OAAM,GAAAD,OAAMrB,EAAOsB,OAAM,MAAO,OAC/CC,UAAW,UACXC,aAAc,MACdC,UAAW,QAEbC,QAAQ,UApBL1B,EAAO2B,O","sources":["components/banners/BannerDisplay.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Link as ChakraLink } from '@chakra-ui/react';\nimport { assetUrl } from '../../utils/url';\n\nexport interface Banner {\n id: number | string;\n name: string;\n image?: string;\n image_url?: string;\n url?: string;\n click_url?: string;\n placement?: string;\n width?: number;\n height?: number;\n is_active?: boolean;\n}\n\ninterface BannerDisplayProps {\n banners: Banner[];\n placement: 'homepage_top' | 'homepage_middle' | 'homepage_footer' | 'article_inline' | 'homepage_under_table';\n containerStyle?: React.CSSProperties;\n}\n\nconst BannerDisplay: React.FC<BannerDisplayProps> = ({ banners, placement, containerStyle }) => {\n // Filter active banners for this placement\n const activeBanners = (banners || []).filter(\n b => b.placement === placement && (b.is_active !== false)\n );\n\n if (activeBanners.length === 0) {\n return null;\n }\n\n const getContainerClass = () => {\n switch (placement) {\n case 'homepage_top':\n return 'banner-top';\n case 'homepage_middle':\n return 'banner-middle';\n case 'homepage_footer':\n return 'banner-footer';\n case 'article_inline':\n return 'banner-article';\n case 'homepage_under_table':\n return 'banner-under-table';\n default:\n return 'banner';\n }\n };\n\n const getDefaultContainerStyle = (): React.CSSProperties => {\n const base: React.CSSProperties = {\n margin: '24px 0',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '16px',\n flexWrap: 'wrap',\n };\n\n switch (placement) {\n case 'homepage_top':\n return {\n ...base,\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n marginLeft: '-50vw',\n marginRight: '-50vw',\n backgroundColor: 'rgba(0, 0, 0, 0.02)',\n padding: '16px',\n borderTop: '1px solid rgba(0, 0, 0, 0.05)',\n borderBottom: '1px solid rgba(0, 0, 0, 0.05)',\n };\n case 'homepage_footer':\n return {\n ...base,\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n marginLeft: '-50vw',\n marginRight: '-50vw',\n backgroundColor: 'rgba(0, 0, 0, 0.02)',\n padding: '24px 16px',\n borderTop: '1px solid rgba(0, 0, 0, 0.05)',\n };\n case 'homepage_under_table':\n return {\n ...base,\n margin: '12px 0 0',\n justifyContent: 'center',\n };\n default:\n return base;\n }\n };\n\n const finalContainerStyle = { ...getDefaultContainerStyle(), ...containerStyle };\n\n return (\n <Box\n as=\"section\"\n className={getContainerClass()}\n sx={finalContainerStyle}\n >\n {activeBanners.map((banner) => (\n <ChakraLink\n key={banner.id}\n href={banner.url || banner.click_url || '#'}\n isExternal={!!(banner.url || banner.click_url)}\n target={(banner.url || banner.click_url) ? '_blank' : undefined}\n rel={(banner.url || banner.click_url) ? 'noopener noreferrer' : undefined}\n display=\"inline-block\"\n _hover={{ opacity: 0.9, transform: 'translateY(-2px)' }}\n transition=\"all 0.2s\"\n >\n <img\n src={assetUrl(banner.image || banner.image_url || '') || banner.image || banner.image_url || ''}\n alt={banner.name}\n style={{\n maxWidth: '100%',\n width: banner.width ? `${banner.width}px` : 'auto',\n height: banner.height ? `${banner.height}px` : 'auto',\n objectFit: 'contain',\n borderRadius: '4px',\n boxShadow: 'none',\n }}\n loading=\"lazy\"\n />\n </ChakraLink>\n ))}\n </Box>\n );\n};\n\nexport default BannerDisplay;\n"],"names":["_ref","banners","placement","containerStyle","activeBanners","filter","b","is_active","length","finalContainerStyle","_objectSpread","getDefaultContainerStyle","base","margin","display","justifyContent","alignItems","gap","flexWrap","width","position","left","right","marginLeft","marginRight","backgroundColor","padding","borderTop","borderBottom","_jsx","Box","as","className","getContainerClass","sx","children","map","banner","ChakraLink","href","url","click_url","isExternal","target","undefined","rel","_hover","opacity","transform","transition","src","assetUrl","image","image_url","alt","name","style","maxWidth","concat","height","objectFit","borderRadius","boxShadow","loading","id"],"sourceRoot":""}