{"version":3,"file":"ImportHelpers.cjs","sources":["../../src/ImportHelpers.ts"],"sourcesContent":["/**\n * Helper to handle dynamic imports for the KineticSlider\n */\nimport type { gsap as GSAPType } from 'gsap';\nimport type * as PixiJS from 'pixi.js';\nimport type * as PixiFilters from 'pixi-filters';\n\n// Cache for imported modules\nconst importCache = new Map<string, any>();\n\n/**\n * Load GSAP and related plugins\n */\nexport const loadGSAP = async (): Promise<typeof GSAPType> => {\n    if (importCache.has('gsap')) {\n        console.log('Using cached GSAP module');\n        return importCache.get('gsap');\n    }\n\n    try {\n        console.log('Loading GSAP module...');\n        const gsapModule = await import('gsap');\n\n        // Store in cache\n        importCache.set('gsap', gsapModule.gsap);\n        console.log('GSAP module loaded successfully');\n\n        return gsapModule.gsap;\n    } catch (error) {\n        console.error('Failed to load GSAP:', error);\n        throw error;\n    }\n};\n\n/**\n * Load GSAP PixiPlugin\n */\nexport const loadPixiPlugin = async (): Promise<any> => {\n    if (importCache.has('pixiPlugin')) {\n        console.log('Using cached GSAP PixiPlugin');\n        return importCache.get('pixiPlugin');\n    }\n\n    try {\n        console.log('Loading GSAP PixiPlugin...');\n\n        // Check if we're in a browser environment\n        if (typeof window !== 'undefined') {\n            // Load GSAP first if not already loaded\n            if (!importCache.has('gsap')) {\n                await loadGSAP();\n            }\n\n            // Get GSAP instance\n            const gsap = importCache.get('gsap');\n\n            // Check if PixiPlugin is already available in GSAP\n            if (gsap.plugins && gsap.plugins.PixiPlugin) {\n                const PixiPlugin = gsap.plugins.PixiPlugin;\n                importCache.set('pixiPlugin', PixiPlugin);\n                console.log('GSAP PixiPlugin loaded from gsap.plugins');\n                return PixiPlugin;\n            }\n\n            // Otherwise try to import it directly\n            try {\n                const { default: PixiPlugin } = await import('gsap/PixiPlugin');\n                importCache.set('pixiPlugin', PixiPlugin);\n                console.log('GSAP PixiPlugin loaded successfully');\n                return PixiPlugin;\n            } catch (importError) {\n                console.warn('Failed to import PixiPlugin directly, trying to get from GSAP:', importError);\n\n                // As a fallback, try to access it from the GSAP instance\n                if (gsap.PixiPlugin) {\n                    importCache.set('pixiPlugin', gsap.PixiPlugin);\n                    console.log('GSAP PixiPlugin loaded from gsap instance');\n                    return gsap.PixiPlugin;\n                }\n\n                throw new Error('PixiPlugin not found in GSAP');\n            }\n        } else {\n            // When running in Node.js during build, return a mock\n            console.log('Running in Node.js environment, using mock PixiPlugin');\n            const mockPlugin = {\n                name: 'PixiPlugin (Mock)',\n                registerPIXI: () => console.log('Mock registerPIXI called')\n            };\n            importCache.set('pixiPlugin', mockPlugin);\n            return mockPlugin;\n        }\n    } catch (error) {\n        console.warn('Failed to load PixiPlugin for GSAP:', error);\n        return null;\n    }\n};\n\n/**\n * Load PixiJS\n */\nexport const loadPixi = async (): Promise<typeof PixiJS> => {\n    if (importCache.has('pixi')) {\n        console.log('Using cached PixiJS module');\n        return importCache.get('pixi');\n    }\n\n    try {\n        console.log('Loading PixiJS module...');\n        const pixiModule = await import('pixi.js');\n\n        // Store in cache\n        importCache.set('pixi', pixiModule);\n        console.log('PixiJS module loaded successfully');\n\n        return pixiModule;\n    } catch (error) {\n        console.error('Failed to load PixiJS:', error);\n        throw error;\n    }\n};\n\n/**\n * Load Pixi Filters\n */\nexport const loadPixiFilters = async (): Promise<typeof PixiFilters> => {\n    if (importCache.has('pixiFilters')) {\n        console.log('Using cached Pixi Filters module');\n        return importCache.get('pixiFilters');\n    }\n\n    try {\n        console.log('Loading Pixi Filters module...');\n        const filtersModule = await import('pixi-filters');\n\n        // Store in cache\n        importCache.set('pixiFilters', filtersModule);\n        console.log('Pixi Filters module loaded successfully');\n\n        return filtersModule;\n    } catch (error) {\n        console.error('Failed to load Pixi Filters:', error);\n        throw error;\n    }\n};\n\n/**\n * Register GSAP PixiPlugin with the required PIXI classes\n */\nexport const registerGSAPPixiPlugin = (gsap: typeof GSAPType, pixi: typeof PixiJS) => {\n    try {\n        const PixiPlugin = importCache.get('pixiPlugin');\n        if (!PixiPlugin) {\n            console.warn('PixiPlugin not available for registration');\n            return false;\n        }\n\n        // Skip actual registration if it's a mock\n        if (PixiPlugin.name === 'PixiPlugin (Mock)') {\n            console.log('Using mock PixiPlugin, skipping actual registration');\n            return true;\n        }\n\n        // Extract needed classes from pixi module\n        const { Application, Sprite, Container, Text, DisplacementFilter } = pixi;\n\n        // Register the plugin with PIXI classes\n        gsap.registerPlugin(PixiPlugin);\n        PixiPlugin.registerPIXI({\n            Application,\n            Sprite,\n            Container,\n            Text,\n            DisplacementFilter\n        });\n\n        console.log('GSAP PixiPlugin registered successfully');\n        return true;\n    } catch (error) {\n        console.error('Failed to register GSAP PixiPlugin:', error);\n        return false;\n    }\n};\n\n/**\n * Load all required libraries for the KineticSlider\n */\nexport const loadKineticSliderDependencies = async (): Promise<{\n    gsap: typeof GSAPType;\n    pixi: typeof PixiJS;\n    pixiFilters: typeof PixiFilters;\n    pixiPlugin: any;\n}> => {\n    try {\n        console.log('Loading KineticSlider dependencies...');\n\n        // Load core modules\n        const gsap = await loadGSAP();\n        const pixi = await loadPixi();\n        const pixiPlugin = await loadPixiPlugin();\n        const pixiFilters = await loadPixiFilters();\n\n        // Register PixiPlugin if available\n        if (pixiPlugin) {\n            registerGSAPPixiPlugin(gsap, pixi);\n        }\n\n        console.log('All KineticSlider dependencies loaded successfully');\n\n        return { gsap, pixi, pixiFilters, pixiPlugin };\n    } catch (error) {\n        console.error('Failed to load KineticSlider dependencies:', error);\n        throw error;\n    }\n};\n\n/**\n * Check if all necessary dependencies are loaded\n */\nexport const areDependenciesLoaded = () => {\n    return (\n        importCache.has('gsap') &&\n        importCache.has('pixi') &&\n        importCache.has('pixiFilters')\n    );\n};\n\n/**\n * Load all hooks for the KineticSlider\n */\nexport const loadKineticSliderHooks = async (): Promise<any> => {\n    if (importCache.has('hooks')) {\n        console.log('Using cached KineticSlider hooks');\n        return importCache.get('hooks');\n    }\n\n    try {\n        console.log('Loading KineticSlider hooks...');\n        const hooks = await import('./hooks');\n\n        // Store in cache\n        importCache.set('hooks', hooks);\n        console.log('KineticSlider hooks loaded successfully');\n\n        return hooks;\n    } catch (error) {\n        console.error('Failed to load KineticSlider hooks:', error);\n        throw error;\n    }\n};"],"names":[],"mappings":"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"}