UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

143 lines (141 loc) 4.73 kB
const importCache = /* @__PURE__ */ new Map(); const loadGSAP = async () => { if (importCache.has("gsap")) { console.log("Using cached GSAP module"); return importCache.get("gsap"); } try { console.log("Loading GSAP module..."); const gsapModule = await import('gsap'); importCache.set("gsap", gsapModule.gsap); console.log("GSAP module loaded successfully"); return gsapModule.gsap; } catch (error) { console.error("Failed to load GSAP:", error); throw error; } }; const loadPixiPlugin = async () => { if (importCache.has("pixiPlugin")) { console.log("Using cached GSAP PixiPlugin"); return importCache.get("pixiPlugin"); } try { console.log("Loading GSAP PixiPlugin..."); if (typeof window !== "undefined") { if (!importCache.has("gsap")) { await loadGSAP(); } const gsap = importCache.get("gsap"); if (gsap.plugins && gsap.plugins.PixiPlugin) { const PixiPlugin = gsap.plugins.PixiPlugin; importCache.set("pixiPlugin", PixiPlugin); console.log("GSAP PixiPlugin loaded from gsap.plugins"); return PixiPlugin; } try { const { default: PixiPlugin } = await import('gsap'); importCache.set("pixiPlugin", PixiPlugin); console.log("GSAP PixiPlugin loaded successfully"); return PixiPlugin; } catch (importError) { console.warn("Failed to import PixiPlugin directly, trying to get from GSAP:", importError); if (gsap.PixiPlugin) { importCache.set("pixiPlugin", gsap.PixiPlugin); console.log("GSAP PixiPlugin loaded from gsap instance"); return gsap.PixiPlugin; } throw new Error("PixiPlugin not found in GSAP"); } } else { console.log("Running in Node.js environment, using mock PixiPlugin"); const mockPlugin = { name: "PixiPlugin (Mock)", registerPIXI: () => console.log("Mock registerPIXI called") }; importCache.set("pixiPlugin", mockPlugin); return mockPlugin; } } catch (error) { console.warn("Failed to load PixiPlugin for GSAP:", error); return null; } }; const loadPixi = async () => { if (importCache.has("pixi")) { console.log("Using cached PixiJS module"); return importCache.get("pixi"); } try { console.log("Loading PixiJS module..."); const pixiModule = await import('pixi.js'); importCache.set("pixi", pixiModule); console.log("PixiJS module loaded successfully"); return pixiModule; } catch (error) { console.error("Failed to load PixiJS:", error); throw error; } }; const loadPixiFilters = async () => { if (importCache.has("pixiFilters")) { console.log("Using cached Pixi Filters module"); return importCache.get("pixiFilters"); } try { console.log("Loading Pixi Filters module..."); const filtersModule = await import('pixi-filters'); importCache.set("pixiFilters", filtersModule); console.log("Pixi Filters module loaded successfully"); return filtersModule; } catch (error) { console.error("Failed to load Pixi Filters:", error); throw error; } }; const registerGSAPPixiPlugin = (gsap, pixi) => { try { const PixiPlugin = importCache.get("pixiPlugin"); if (!PixiPlugin) { console.warn("PixiPlugin not available for registration"); return false; } if (PixiPlugin.name === "PixiPlugin (Mock)") { console.log("Using mock PixiPlugin, skipping actual registration"); return true; } const { Application, Sprite, Container, Text, DisplacementFilter } = pixi; gsap.registerPlugin(PixiPlugin); PixiPlugin.registerPIXI({ Application, Sprite, Container, Text, DisplacementFilter }); console.log("GSAP PixiPlugin registered successfully"); return true; } catch (error) { console.error("Failed to register GSAP PixiPlugin:", error); return false; } }; const loadKineticSliderDependencies = async () => { try { console.log("Loading KineticSlider dependencies..."); const gsap = await loadGSAP(); const pixi = await loadPixi(); const pixiPlugin = await loadPixiPlugin(); const pixiFilters = await loadPixiFilters(); if (pixiPlugin) { registerGSAPPixiPlugin(gsap, pixi); } console.log("All KineticSlider dependencies loaded successfully"); return { gsap, pixi, pixiFilters, pixiPlugin }; } catch (error) { console.error("Failed to load KineticSlider dependencies:", error); throw error; } }; export { loadGSAP, loadKineticSliderDependencies, loadPixi, loadPixiFilters, loadPixiPlugin, registerGSAPPixiPlugin }; //# sourceMappingURL=ImportHelpers.js.map