/** * Analytics Module * * Provides unified analytics system for event tracking, page views, and user behavior. * * Usage: * - Add data-module="analytics" to enable global analytics * - Or import and use directly: import { Analytics } from './modules/analytics/index.js' * * Features: * - Event tracking * - Page view tracking * - User behavior tracking * - Custom events * - Integration with LiveComponents * - GDPR compliance */ import { Logger } from '../../core/logger.js'; import { Analytics, AnalyticsProvider, GoogleAnalyticsProvider, CustomProvider } from './Analytics.js'; const AnalyticsModule = { name: 'analytics', analytics: null, init(config = {}, state = null) { Logger.info('[AnalyticsModule] Module initialized'); // Create analytics instance this.analytics = Analytics.create(config); // Expose globally for easy access if (typeof window !== 'undefined') { window.Analytics = this.analytics; } return this; }, /** * Get analytics instance */ getAnalytics() { return this.analytics || Analytics.create(); }, /** * Track event */ async track(eventName, properties = {}) { const analytics = this.getAnalytics(); return await analytics.track(eventName, properties); }, /** * Track page view */ async trackPageView(path = null, properties = {}) { const analytics = this.getAnalytics(); return await analytics.trackPageView(path, properties); }, destroy() { if (this.analytics) { this.analytics.destroy(); this.analytics = null; } if (typeof window !== 'undefined' && window.Analytics) { delete window.Analytics; } Logger.info('[AnalyticsModule] Module destroyed'); } }; // Export for direct usage export { Analytics, AnalyticsProvider, GoogleAnalyticsProvider, CustomProvider }; // Export as default for module system export default AnalyticsModule; // Export init function for module system export const init = AnalyticsModule.init.bind(AnalyticsModule);