UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

1 lines 4.16 kB
{"version":3,"file":"assetPreload.cjs","sources":["../../../src/utils/assetPreload.ts"],"sourcesContent":["/**\n * Helper function to preload all required KineticSlider assets\n */\n\nimport { Assets } from 'pixi.js';\nimport { setupCustomFonts } from './fontUtils';\n\n/**\n * Helper function to preload all KineticSlider assets\n *\n * @param images - Array of image URLs to load\n * @param backgroundDisplacement - URL of background displacement image\n * @param cursorDisplacement - URL of cursor displacement image\n * @param titleFontFamily - Font family for titles\n * @param subtitleFontFamily - Font family for subtitles\n * @returns Promise that resolves when all assets are loaded\n */\nexport const preloadKineticSliderAssets = async (\n images: string[],\n backgroundDisplacement: string = '/images/background-displace.jpg',\n cursorDisplacement: string = '/images/cursor-displace.png',\n titleFontFamily?: string,\n subtitleFontFamily?: string\n): Promise<void> => {\n try {\n console.log('Preloading KineticSlider assets...');\n\n // First, handle custom fonts if provided\n if (titleFontFamily || subtitleFontFamily) {\n console.log('Setting up custom fonts...');\n await setupCustomFonts(titleFontFamily, subtitleFontFamily);\n }\n\n // Combine all image assets into a single array\n const assetsToLoad = [\n ...images,\n backgroundDisplacement,\n cursorDisplacement\n ].filter(Boolean); // Remove any empty strings\n\n // Create a map of assets to load\n const assetsMap: Record<string, string> = {};\n for (const src of assetsToLoad) {\n assetsMap[src] = src;\n }\n\n // Check if assets are already in cache\n const uncachedAssets: Record<string, string> = {};\n\n // Check each asset if it's in cache\n for (const key in assetsMap) {\n if (Object.prototype.hasOwnProperty.call(assetsMap, key)) {\n const src = assetsMap[key];\n if (!Assets.cache.has(src)) {\n uncachedAssets[key] = src;\n }\n }\n }\n\n // Only load assets not already in cache\n if (Object.keys(uncachedAssets).length > 0) {\n console.log(`Loading ${Object.keys(uncachedAssets).length} uncached assets...`);\n // Add assets to loader\n Assets.addBundle('kinetic-slider', uncachedAssets);\n\n // Load the bundle\n await Assets.loadBundle('kinetic-slider');\n\n console.log('All assets loaded successfully');\n } else {\n console.log('All assets already cached');\n }\n } catch (error) {\n console.error('Error preloading assets:', error);\n throw error;\n }\n};"],"names":["setupCustomFonts","Assets"],"mappings":";;;;;AAiBa,MAAA,0BAAA,GAA6B,OACtC,MACA,EAAA,sBAAA,GAAiC,mCACjC,kBAA6B,GAAA,6BAAA,EAC7B,iBACA,kBACgB,KAAA;AAChB,EAAI,IAAA;AACA,IAAA,OAAA,CAAQ,IAAI,oCAAoC,CAAA;AAGhD,IAAA,IAAI,mBAAmB,kBAAoB,EAAA;AACvC,MAAA,OAAA,CAAQ,IAAI,4BAA4B,CAAA;AACxC,MAAM,MAAAA,0BAAA,CAAiB,iBAAiB,kBAAkB,CAAA;AAAA;AAI9D,IAAA,MAAM,YAAe,GAAA;AAAA,MACjB,GAAG,MAAA;AAAA,MACH,sBAAA;AAAA,MACA;AAAA,KACJ,CAAE,OAAO,OAAO,CAAA;AAGhB,IAAA,MAAM,YAAoC,EAAC;AAC3C,IAAA,KAAA,MAAW,OAAO,YAAc,EAAA;AAC5B,MAAA,SAAA,CAAU,GAAG,CAAI,GAAA,GAAA;AAAA;AAIrB,IAAA,MAAM,iBAAyC,EAAC;AAGhD,IAAA,KAAA,MAAW,OAAO,SAAW,EAAA;AACzB,MAAA,IAAI,OAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,SAAA,EAAW,GAAG,CAAG,EAAA;AACtD,QAAM,MAAA,GAAA,GAAM,UAAU,GAAG,CAAA;AACzB,QAAA,IAAI,CAACC,cAAA,CAAO,KAAM,CAAA,GAAA,CAAI,GAAG,CAAG,EAAA;AACxB,UAAA,cAAA,CAAe,GAAG,CAAI,GAAA,GAAA;AAAA;AAC1B;AACJ;AAIJ,IAAA,IAAI,MAAO,CAAA,IAAA,CAAK,cAAc,CAAA,CAAE,SAAS,CAAG,EAAA;AACxC,MAAA,OAAA,CAAQ,IAAI,CAAW,QAAA,EAAA,MAAA,CAAO,KAAK,cAAc,CAAA,CAAE,MAAM,CAAqB,mBAAA,CAAA,CAAA;AAE9E,MAAOA,cAAA,CAAA,SAAA,CAAU,kBAAkB,cAAc,CAAA;AAGjD,MAAM,MAAAA,cAAA,CAAO,WAAW,gBAAgB,CAAA;AAExC,MAAA,OAAA,CAAQ,IAAI,gCAAgC,CAAA;AAAA,KACzC,MAAA;AACH,MAAA,OAAA,CAAQ,IAAI,2BAA2B,CAAA;AAAA;AAC3C,WACK,KAAO,EAAA;AACZ,IAAQ,OAAA,CAAA,KAAA,CAAM,4BAA4B,KAAK,CAAA;AAC/C,IAAM,MAAA,KAAA;AAAA;AAEd;;;;"}