File size: 1,632 Bytes
aeb61fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import { ColorRmApp } from './ColorRmApp.js';
import { UI } from './UI.js';
import { Registry } from './Registry.js';
import { LiveSyncClient } from './LiveSync.js';
import { CommonPdfImport } from './CommonPdfImport.js';
import { SplitView } from './SplitView.js';
import { PDFLibrary } from './PDFLibrary.js';
import { Config } from './config.js';
import { Logger } from './Logger.js';

// Expose globals for compatibility and debugging
window.UI = UI;
window.Registry = Registry;
window.CommonPdfImport = CommonPdfImport;
window.PDFLibrary = PDFLibrary;
window.Config = Config;
window.Logger = Logger;


// Initialize the main application instance
const app = new ColorRmApp({ isMain: true });

// Register app with Registry for proper instance binding
Registry.setApp(app);

// Add SplitView integration
app.toggleSplitView = function() {
    SplitView.toggle();
    const btn = document.getElementById('splitViewToggle');
    if (btn) {
        if (SplitView.isEnabled) {
            btn.classList.add('active');
        } else {
            btn.classList.remove('active');
        }
    }
};

window.App = app;

// Initialize when DOM is ready
document.addEventListener('DOMContentLoaded', async () => {
    console.log("Initializing ColorRM ESM...");

    // Initialize common modules
    CommonPdfImport.init(app);
    await SplitView.init();

    // Initialize App with dependencies
    // Note: LiveSyncClient class is passed, App will instantiate it
    await app.init(UI, Registry, LiveSyncClient);

    // Expose LiveSync for debugging
    window.LiveSync = app.liveSync;

    console.log("ColorRM Initialized.");
});