Module: im Abo-Modell Reiter mit Kurzlabels an die Etage melden (C2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b91ba1d5cb
commit
a50c5ef6c9
6 files changed
+366
-17
No files matched your search
@@ -0,0 +1,24 @@
|
||||
/* Reiter der Funktionsmodule in der neuen Ansicht (Abo-Modell). Im Abo-Modell zeichnen Terminplaner, Webshop, Buchungskalender und
|
||||
Analyse keine eigene Leiste, sondern melden ihre Reiter an die Etage 2 (public/neu/etage.js): CustomEvent 'kn:reiter' mit
|
||||
bubbles und detail { eintraege: [{ key, label, kurz? }], aktiv, bei(key) }; eine leere Liste heisst „keine Reiter“.
|
||||
Dieses Modul hat keine Importe und kennt weder DOM noch die Huelle. */
|
||||
|
||||
/** Kurzlabels fuer schmale Zeilen (C2): modul → { reiterKey: kurzes Wort }. Die Analyse braucht keine (Übersicht, Heatmap, Einstellungen). */
|
||||
export const KURZLABELS = {
|
||||
termine: { team: 'Team' },
|
||||
shop: { uebersicht: 'Start', rechtliches: 'Recht' },
|
||||
buchungen: { unterkuenfte: 'Preise' },
|
||||
}
|
||||
|
||||
/** [{ key, label, … }] des Moduls → [{ key, label, kurz? }]; `kurz` nur mit Eintrag in KURZLABELS, alle anderen Felder fallen weg. */
|
||||
export function reiterEintraege(modul, reiterListe) {
|
||||
const kurz = Object.hasOwn(KURZLABELS, modul) ? KURZLABELS[modul] : {}
|
||||
return reiterListe.map(({ key, label }) => (Object.hasOwn(kurz, key) ? { key, label, kurz: kurz[key] } : { key, label }))
|
||||
}
|
||||
|
||||
/** Sendet 'kn:reiter' aus el. Ohne CustomEvent oder ohne el.dispatchEvent: false, sonst true. */
|
||||
export function meldeReiter(el, { eintraege, aktiv = '', bei = () => {} } = {}) {
|
||||
if (typeof CustomEvent !== 'function' || typeof el?.dispatchEvent !== 'function') return false
|
||||
el.dispatchEvent(new CustomEvent('kn:reiter', { bubbles: true, detail: { eintraege, aktiv, bei } }))
|
||||
return true
|
||||
}
|
||||
Reference in new issue
Block a user