PlanTempusApp/PlanTempus.Application/wwwroot/ts/app.ts
Janus C. H. Knudsen 545d6606a6 Refactors employee details and UI controls
Enhances employee hours view with dynamic weekly schedule rendering
Updates toggle slider and theme switch components with improved interactions
Adds more flexible notification and settings configurations for employees

Improves user experience by streamlining UI controls and schedule display
2026-01-15 16:59:56 +01:00

67 lines
1.7 KiB
TypeScript

/**
* Salon OS App
*
* Main application class that orchestrates all UI controllers
*/
import { SidebarController } from './modules/sidebar';
import { DrawerController } from './modules/drawers';
import { ThemeController } from './modules/theme';
import { SearchController } from './modules/search';
import { LockScreenController } from './modules/lockscreen';
import { CashController } from './modules/cash';
import { EmployeesController } from './modules/employees';
import { ControlsController } from './modules/controls';
/**
* Main application class
*/
export class App {
readonly sidebar: SidebarController;
readonly drawers: DrawerController;
readonly theme: ThemeController;
readonly search: SearchController;
readonly lockScreen: LockScreenController;
readonly cash: CashController;
readonly employees: EmployeesController;
readonly controls: ControlsController;
constructor() {
// Initialize controllers
this.sidebar = new SidebarController();
this.drawers = new DrawerController();
this.theme = new ThemeController();
this.search = new SearchController();
this.lockScreen = new LockScreenController(this.drawers);
this.cash = new CashController();
this.employees = new EmployeesController();
this.controls = new ControlsController();
}
}
/**
* Global app instance
*/
let app: App;
/**
* Initialize the application
*/
function init(): void {
app = new App();
// Expose to window for debugging
if (typeof window !== 'undefined') {
(window as unknown as { app: App }).app = app;
}
}
// Wait for DOM ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
export { app };
export default App;