Adds salary specifications with detailed accordion view

Introduces new salary specification feature with interactive accordion component

Implements detailed salary breakdown including:
- Salary specification JSON data model
- Salary specification page with printable view
- Accordion component for expanding/collapsing salary details
- Localization support for new salary labels

Enhances employee salary transparency and detail presentation
This commit is contained in:
Janus C. H. Knudsen 2026-01-23 20:03:24 +01:00
parent f3c54dde35
commit a1059adf06
14 changed files with 1613 additions and 46 deletions

View file

@ -1,4 +1,5 @@
import { createChart } from '@sevenweirdpeople/swp-charting';
import { Accordion, initAccordions } from './accordion';
/**
* Employees Controller
@ -72,6 +73,7 @@ export class EmployeesController {
private ratesSync: RatesSyncController | null = null;
private scheduleController: ScheduleController | null = null;
private statsController: EmployeeStatsController | null = null;
private salaryAccordions: Accordion[] = [];
private listView: HTMLElement | null = null;
private detailView: HTMLElement | null = null;
@ -91,6 +93,20 @@ export class EmployeesController {
this.ratesSync = new RatesSyncController();
this.scheduleController = new ScheduleController();
this.statsController = new EmployeeStatsController();
this.initSalaryAccordions();
}
/**
* Initialize salary accordions when they exist
*/
private initSalaryAccordions(): void {
// Initialize all accordions in the salary tab
const salaryTab = document.querySelector('swp-tab-content[data-tab="salary"]');
if (salaryTab) {
salaryTab.querySelectorAll<HTMLElement>('swp-accordion').forEach(accordion => {
this.salaryAccordions.push(new Accordion(accordion, { singleOpen: true }));
});
}
}
/**