From 7c89d15c876c6ec40ddc1397f52c91241847a1e7 Mon Sep 17 00:00:00 2001 From: masthom Date: Fri, 21 Jun 2024 16:56:29 +0200 Subject: [PATCH 001/213] add KV: op. 12 EH --- .../1/section/5/op12/source-description.json | 518 +++++++++++++++++- 1 file changed, 517 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 0847c6cef9..cc0cbbf705 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1706,11 +1706,527 @@ "id": "source_EH", "siglum": "E", "siglumAddendum": "H", - "type": "Handexemplar von E mit Korrekturen Weberns („Der Tag ist vergangen“ M 212: Fassung [2→] 3).", + "type": "Handexemplar von E mit Korrekturen Weberns: „Der Tag ist vergangen“ M 212: Textfassung 2→3.", "location": "CH-Bps, Sammlung Anton Webern, Basel, P IV 29.", "description": { "desc": [ "Siehe E." + ], + "corrections": [ + { + "id": "source_EH_corr", + "label": "Korrekturen in EH (mit Bleistift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 2." + ], + "comments": [ + { + "svgGroupId": "TODO", + "measure": "1", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "svgGroupId": "TODO", + "measure": "1", + "system": "Klav. o.", + "position": "1/8–2/4", + "comment": "Crescendogabel zwischen den Systemen gestrichen. Crescendogabel 1–2/8, Decrescendogabel 2/8 bis Taktende über dem System hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "1

bis 2", + "system": "Klav. o.", + "position": "1/8

4/8", + "comment": "Legatobogen geändert zu zwei Legatobögen von T. 1 1/8 bis T. 2 1/8 und T. 2 2.–3. Note." + }, + { + "svgGroupId": "TODO", + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "zögernd geändert zu rit. - - - (mit Geltungsstrichelung bis Taktende).

{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "3", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "Achtelfähnchen bei 2/8 geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "3", + "system": "Ges.", + "position": "6/8", + "comment": "Tenutostrich hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "3

bis 5", + "system": "Ges.", + "position": "6/8

3/8", + "comment": "Zuerst: Bogen über den Noten hinzugefügt.

Dann: Bogen wieder gestrichen.

Siehe Korrektur in T. 4 3/8 bis T. 5 3/8." + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "Legatobogen und Decrescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Ges.", + "position": "3–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "4

bis 5", + "system": "Ges.", + "position": "3/8

3/8", + "comment": "Bogen hinzugefügt.

Siehe Korrektur in T. 3 6/8 bis T. 5 3/8." + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Klav. o.", + "position": "letzte Pause", + "comment": "Viertelpause gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Ges.", + "position": "3–4/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "5

bis 7", + "system": "Ges.", + "position": "4/8

1/4", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Ges.", + "position": "2.–4. Note", + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken über den Noten.

Dann: Balken bei 2.–4. Note unter den Noten hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. o.", + "position": "2–3/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav.", + "position": "2–3/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "7

bis 8", + "system": "Ges.", + "position": "2. Note

1. Note", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "7

8", + "system": "Ges.", + "position": "3. Note

nach 1/4", + "comment": "Ende der Crescendogabel T. 7 3. Note ##verlängert## zu T. 8 nach 1/4." + }, + { + "svgGroupId": "TODO", + "measure": "7

bis 8", + "system": "Ges.", + "position": "3. Note

3/8", + "comment": "dis fis e unter den Noten es2–ges2–fes2." + }, + { + "svgGroupId": "TODO", + "measure": "8", + "system": "Klav. o. u.", + "position": "1.–2. Note", + "comment": "Stacctopunkte überschrieben zu Tenutostrichen." + }, + { + "svgGroupId": "TODO", + "measure": "8

bis 9", + "system": "Ges.", + "position": "3/8

2. Note", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "8

bis 9", + "system": "Ges.", + "position": "4/8

2. Note", + "comment": "Ende der Crescendogabel T. 8 4/8 ##verlängert## zu T. 9 2. Note." + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Klav.", + "position": "1/4", + "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Ges.", + "position": "", + "comment": "Drei Vierteltriolen geändert zu triolischer Viertel- und Achtelnote sowie triolischer Achtelpause und Viertelnote." + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "9

bis 11", + "system": "Ges.", + "position": "3. Note

1/4", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "9

bis 10", + "system": "Klav. u.", + "position": "4/8

1/4", + "comment": "Legatobogen gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "9

bis 11", + "system": "Klav. u.", + "position": "4/8

1/4", + "comment": "Legatobogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Klav. o.", + "position": "1., 2. Note", + "comment": "Tenutostriche gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "10

bis 11", + "system": "Klav. o.", + "position": "1. Note

2. Note", + "comment": "Legatobogen hinzugefügt. Siehe Korrektur T. 10 2. Note bis T. 11 2. Note.

Crescendogabel T. 10 1. Note bis nach 2. Note und Decrescendogabel T. 11 1.–2. Note geändert zu Decrescendogabel T. 10 1. Note bis T. 11 2. Note." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Ges.", + "position": "2–4/8", + "comment": "Achtelfähnchen bei 3–4/8 geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "10

bis 11", + "system": "Klav. o.", + "position": "2. Note

2. Note", + "comment": "Legatobogen gestrichen. Siehe Korrektur T. 10 1. Note bis T. 11 2. Note." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Klav. u.", + "position": "2/4", + "comment": "Tenutostrich gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "molto (scil: „molto rit.“) gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "12/13", + "system": "", + "position": "Taktstrich", + "comment": "Fermaten über Ges. und Klav. o. hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges.", + "position": "1/8", + "comment": "Fermate gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Klav. o.", + "position": "", + "comment": "Fermate gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Klav. u.", + "position": "1/4", + "comment": "Fermate gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "13

bis 14", + "system": "Ges.", + "position": "2/8

2. Note?", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Klav. u.", + "position": "3/4", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. (u.)", + "position": "1/8", + "comment": "ohne Pedal gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. u.", + "position": "2. Note", + "comment": "Decrescendogabel gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "14

bis 15", + "system": "Ges.", + "position": "3. Note

2/8", + "comment": "Anfang des Bogens ##geändert## von T. 14 3/8." + }, + { + "svgGroupId": "TODO", + "measure": "14

bis 15", + "system": "Ges.", + "position": "3. Note

2/8", + "comment": "Crescendogabel von T. 14 4/8 bis T. 15 1/8 geändert zu T. 14 3. Note bis T. 15 2/8." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Ges.", + "position": "2/8–8/16", + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken.

Dann: Balken bei 2.–4. Note hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "15

bis 16", + "system": "Ges.", + "position": "3. Note

2/4", + "comment": "Crescendogabel T. 15 3.–4. Note und Decrescendogabel T. 16 1–2/4 geändert zu Decrescendogabel.

Anfang des Bogens T. 16 1/4 ##geändert## zu T. 15 3. Note." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('[pp]')}} zu 1. Note gestrichen und Crescendogabel geändert zu Decrescendogabel." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav.", + "position": "(3/4)", + "comment": "Crescendogabel gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav.", + "position": "Taktanfang bis 1/4", + "comment": "Decrescendogabel von T. 16 hinzugefügt. (E: Akkoladenwechsel nach T. 16.)" + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Ges.", + "position": "1–4/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "svgGroupId": "TODO", + "measure": "17

bis 18", + "system": "Ges.", + "position": "1/8

2. Note", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Ges.", + "position": "2–3/8", + "comment": "Crescendogabel gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[p]')}} hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Ges.", + "position": "Taktanfang

bis 2. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Ges.", + "position": "", + "comment": "Drei Vierteltriolen geändert zu Viertel-, Achtelnote as1–ges1 unter einer Triolenklammer und Achtelpause, Viertelnote des1 unter einer Triolenklammer." + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "18

bis 21", + "system": "Ges.", + "position": "3. Note", + "comment": "Bogen hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "19", + "system": "Ges.", + "position": "", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "19", + "system": "Ges.", + "position": "", + "comment": "Ansatz zu Bogen oder Crescendogabel (bis Taktende) gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "20", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Crescendogabel überschrieben zu Decrescendogabel." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav.", + "position": "2/4", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[p]')}}." + }, + { + "svgGroupId": "TODO", + "measure": "21

bis 22", + "system": "Klav.", + "position": "2/4", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav.", + "position": "2/4", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + } + ], + "linkBoxes": [] + } ] } }, From dd43dad850712dd15923ab7c52bf9a88e9dbab2c Mon Sep 17 00:00:00 2001 From: masthom Date: Tue, 25 Jun 2024 19:30:24 +0200 Subject: [PATCH 002/213] fixes in KV_op12_EH --- .../1/section/5/op12/source-description.json | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index cc0cbbf705..31800238e2 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1736,9 +1736,9 @@ }, { "svgGroupId": "TODO", - "measure": "1

bis 2", + "measure": "1
bis 2", "system": "Klav. o.", - "position": "1/8

4/8", + "position": "1/8
4/8", "comment": "Legatobogen geändert zu zwei Legatobögen von T. 1 1/8 bis T. 2 1/8 und T. 2 2.–3. Note." }, { @@ -1746,7 +1746,7 @@ "measure": "2", "system": "Klav. o.", "position": "2. Note", - "comment": "zögernd geändert zu rit. - - - (mit Geltungsstrichelung bis Taktende).

{{ref.getGlyph('[ppp]')}} hinzugefügt." + "comment": "zögernd geändert zu rit. - - - (mit Geltungsstrichelung bis Taktende).
{{ref.getGlyph('[ppp]')}} hinzugefügt." }, { "svgGroupId": "TODO", @@ -1764,10 +1764,10 @@ }, { "svgGroupId": "TODO", - "measure": "3

bis 5", + "measure": "3
bis 5", "system": "Ges.", - "position": "6/8

3/8", - "comment": "Zuerst: Bogen über den Noten hinzugefügt.

Dann: Bogen wieder gestrichen.

Siehe Korrektur in T. 4 3/8 bis T. 5 3/8." + "position": "6/8
3/8", + "comment": "Zuerst: Bogen über den Noten hinzugefügt.
Dann: Bogen wieder gestrichen.
Siehe Korrektur in T. 4 3/8 bis T. 5 3/8." }, { "svgGroupId": "TODO", @@ -1792,10 +1792,10 @@ }, { "svgGroupId": "TODO", - "measure": "4

bis 5", + "measure": "4
bis 5", "system": "Ges.", - "position": "3/8

3/8", - "comment": "Bogen hinzugefügt.

Siehe Korrektur in T. 3 6/8 bis T. 5 3/8." + "position": "3/8
3/8", + "comment": "Bogen hinzugefügt.
Siehe Korrektur in T. 3 6/8 bis T. 5 3/8." }, { "svgGroupId": "TODO", @@ -1820,9 +1820,9 @@ }, { "svgGroupId": "TODO", - "measure": "5

bis 7", + "measure": "5
bis 7", "system": "Ges.", - "position": "4/8

1/4", + "position": "4/8
1/4", "comment": "Bogen hinzugefügt." }, { @@ -1830,7 +1830,7 @@ "measure": "6", "system": "Ges.", "position": "2.–4. Note", - "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken über den Noten.

Dann: Balken bei 2.–4. Note unter den Noten hinzugefügt." + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken über den Noten.
Dann: Balken bei 2.–4. Note unter den Noten hinzugefügt." }, { "svgGroupId": "TODO", @@ -1862,23 +1862,23 @@ }, { "svgGroupId": "TODO", - "measure": "7

bis 8", + "measure": "7
bis 8", "system": "Ges.", - "position": "2. Note

1. Note", + "position": "2. Note
1. Note", "comment": "Bogen hinzugefügt." }, { "svgGroupId": "TODO", - "measure": "7

8", + "measure": "7
bis 8", "system": "Ges.", - "position": "3. Note

nach 1/4", - "comment": "Ende der Crescendogabel T. 7 3. Note ##verlängert## zu T. 8 nach 1/4." + "position": "3. Note
nach 1/4", + "comment": "Ende der Crescendogabel T. 7 3. Note verlängert zu T. 8 nach 1/4." }, { "svgGroupId": "TODO", - "measure": "7

bis 8", + "measure": "7
bis 8", "system": "Ges.", - "position": "3. Note

3/8", + "position": "3. Note
3/8", "comment": "dis fis e unter den Noten es2–ges2–fes2." }, { @@ -1890,17 +1890,17 @@ }, { "svgGroupId": "TODO", - "measure": "8

bis 9", + "measure": "8
bis 9", "system": "Ges.", - "position": "3/8

2. Note", + "position": "3/8
2. Note", "comment": "Bogen hinzugefügt." }, { "svgGroupId": "TODO", - "measure": "8

bis 9", + "measure": "8
bis 9", "system": "Ges.", - "position": "4/8

2. Note", - "comment": "Ende der Crescendogabel T. 8 4/8 ##verlängert## zu T. 9 2. Note." + "position": "4/8
2. Note", + "comment": "Ende der Crescendogabel T. 8 4/8 verlängert zu T. 9 2. Note." }, { "svgGroupId": "TODO", @@ -1925,23 +1925,23 @@ }, { "svgGroupId": "TODO", - "measure": "9

bis 11", + "measure": "9
bis 11", "system": "Ges.", - "position": "3. Note

1/4", + "position": "3. Note
1/4", "comment": "Bogen hinzugefügt." }, { "svgGroupId": "TODO", - "measure": "9

bis 10", + "measure": "9
bis 10", "system": "Klav. u.", - "position": "4/8

1/4", + "position": "4/8
1/4", "comment": "Legatobogen gestrichen." }, { "svgGroupId": "TODO", - "measure": "9

bis 11", + "measure": "9
bis 11", "system": "Klav. u.", - "position": "4/8

1/4", + "position": "4/8
1/4", "comment": "Legatobogen hinzugefügt." }, { @@ -1953,10 +1953,10 @@ }, { "svgGroupId": "TODO", - "measure": "10

bis 11", + "measure": "10
bis 11", "system": "Klav. o.", - "position": "1. Note

2. Note", - "comment": "Legatobogen hinzugefügt. Siehe Korrektur T. 10 2. Note bis T. 11 2. Note.

Crescendogabel T. 10 1. Note bis nach 2. Note und Decrescendogabel T. 11 1.–2. Note geändert zu Decrescendogabel T. 10 1. Note bis T. 11 2. Note." + "position": "1. Note
2. Note", + "comment": "Legatobogen hinzugefügt. Siehe Korrektur T. 10 2. Note bis T. 11 2. Note.
Crescendogabel T. 10 1. Note bis nach 2. Note und Decrescendogabel T. 11 1.–2. Note geändert zu Decrescendogabel T. 10 1. Note bis T. 11 2. Note." }, { "svgGroupId": "TODO", @@ -1967,9 +1967,9 @@ }, { "svgGroupId": "TODO", - "measure": "10

bis 11", + "measure": "10
bis 11", "system": "Klav. o.", - "position": "2. Note

2. Note", + "position": "2. Note
2. Note", "comment": "Legatobogen gestrichen. Siehe Korrektur T. 10 1. Note bis T. 11 2. Note." }, { @@ -2023,9 +2023,9 @@ }, { "svgGroupId": "TODO", - "measure": "13

bis 14", + "measure": "13
bis 14", "system": "Ges.", - "position": "2/8

2. Note?", + "position": "2/8
2. Note?", "comment": "Bogen hinzugefügt." }, { @@ -2072,16 +2072,16 @@ }, { "svgGroupId": "TODO", - "measure": "14

bis 15", + "measure": "14
bis 15", "system": "Ges.", - "position": "3. Note

2/8", - "comment": "Anfang des Bogens ##geändert## von T. 14 3/8." + "position": "3. Note
2/8", + "comment": "Anfang des Bogens geändert von T. 14 3/8." }, { "svgGroupId": "TODO", - "measure": "14

bis 15", + "measure": "14
bis 15", "system": "Ges.", - "position": "3. Note

2/8", + "position": "3. Note
2/8", "comment": "Crescendogabel von T. 14 4/8 bis T. 15 1/8 geändert zu T. 14 3. Note bis T. 15 2/8." }, { @@ -2089,7 +2089,7 @@ "measure": "15", "system": "Ges.", "position": "2/8–8/16", - "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken.

Dann: Balken bei 2.–4. Note hinzugefügt." + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken.
Dann: Balken bei 2.–4. Note hinzugefügt." }, { "svgGroupId": "TODO", @@ -2100,10 +2100,10 @@ }, { "svgGroupId": "TODO", - "measure": "15

bis 16", + "measure": "15
bis 16", "system": "Ges.", - "position": "3. Note

2/4", - "comment": "Crescendogabel T. 15 3.–4. Note und Decrescendogabel T. 16 1–2/4 geändert zu Decrescendogabel.

Anfang des Bogens T. 16 1/4 ##geändert## zu T. 15 3. Note." + "position": "3. Note
2/4", + "comment": "Crescendogabel T. 15 3.–4. Note und Decrescendogabel T. 16 1–2/4 geändert zu Decrescendogabel.
Anfang des Bogens T. 16 1/4 geändert zu T. 15 3. Note." }, { "svgGroupId": "TODO", @@ -2135,9 +2135,9 @@ }, { "svgGroupId": "TODO", - "measure": "17

bis 18", + "measure": "17
bis 18", "system": "Ges.", - "position": "1/8

2. Note", + "position": "1/8
2. Note", "comment": "Bogen hinzugefügt." }, { @@ -2158,7 +2158,7 @@ "svgGroupId": "TODO", "measure": "18", "system": "Ges.", - "position": "Taktanfang

bis 2. Note", + "position": "Taktanfang
bis 2. Note", "comment": "Decrescendogabel hinzugefügt." }, { @@ -2166,7 +2166,7 @@ "measure": "18", "system": "Ges.", "position": "", - "comment": "Drei Vierteltriolen geändert zu Viertel-, Achtelnote as1–ges1 unter einer Triolenklammer und Achtelpause, Viertelnote des1 unter einer Triolenklammer." + "comment": "Drei Vierteltriolen geändert zu Viertel-, Achtelnote as1–ges1 unter einer Triolenklammer und Achtelpause, Viertelnote des1 unter einer Triolenklammer." }, { "svgGroupId": "TODO", @@ -2177,7 +2177,7 @@ }, { "svgGroupId": "TODO", - "measure": "18

bis 21", + "measure": "18
bis 21", "system": "Ges.", "position": "3. Note", "comment": "Bogen hinzugefügt." @@ -2212,7 +2212,7 @@ }, { "svgGroupId": "TODO", - "measure": "21

bis 22", + "measure": "21
bis 22", "system": "Klav.", "position": "2/4", "comment": "Decrescendogabel hinzugefügt." From 5204c4dabc1a9794fd17d6b3dd1bdab9b78e451d Mon Sep 17 00:00:00 2001 From: masthom Date: Mon, 12 Aug 2024 16:53:00 +0200 Subject: [PATCH 003/213] add corrections: source_EH_corr + source_F_corr --- .../1/section/5/op12/source-description.json | 889 +++++++++++++++++- 1 file changed, 888 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 1fdf9d296e..af81f673e1 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -2653,7 +2653,894 @@ } ] } - ] + ], + "corrections": [ + { + "id": "source_F_corr", + "label": "Korrekturen in F", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Vier Lieder op. 12." + ], + "comments": [ + { + "svgGroupId": "TODO", + "measure": "I „Der Tag ist vergangen“ M 212", + "system": "", + "position": "", + "comment": "" + }, + { + "svgGroupId": "TODO", + "measure": "1", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Rasur über dem System. Ante correcturam: Tempobezeichnung?" + }, + { + "svgGroupId": "TODO", + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Rasur über dem System. Ante correcturam: rit.?" + }, + { + "svgGroupId": "TODO", + "measure": "3", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Rasur über dem System. Ante correcturam: tempo?" + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav. o.", + "position": "1. Note bis Taktende", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "svgGroupId": "TODO", + "measure": "5
bis 6", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "svgGroupId": "TODO", + "measure": "5
bis 7", + "system": "Ges.", + "position": "4/8
1/4", + "comment": "Zwei Bögen von T. 5 4/8 bis T. 6 4/16 und von T. 6 3. Note bis T. 7 1/4 über dem System rasiert." + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Ges.", + "position": "1. Pause, letzte Note", + "comment": "Triolenklammer hinzugefügt mit rotem Buntstift." + }, + { + "svgGroupId": "TODO", + "measure": "10
bis 11", + "system": "Klav. o.", + "position": "1. Note
2. Note", + "comment": "Legatobogen auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Klav. u.", + "position": "1/4", + "comment": "Rasur unter dem System. Ende des Bogen von T. 9 letzte Note?" + }, + { + "svgGroupId": "TODO", + "measure": "10
bis 11", + "system": "Klav. o.", + "position": "2. Note
2. Note", + "comment": "Decrescendogabel, {{ref.getGlyph('[pp]')}} auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Staccatopunkt hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "12", + "system": "Ges.", + "position": "", + "comment": "Ganze Pause hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges., Klav.", + "position": "", + "comment": "Fermaten rasiert über Ges. 1/8 und Klav. o. Ganze Pause. Fermaten über Taktstrich vor T. 13 vermutlich danach hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav. o.", + "position": "", + "comment": "{{ref.getGlyph('[a]')}} zu e1 verändert zu {{ref.getGlyph('[b]')}} zu es1 und Verweislinie zu AW unter der Akkolade mit rotem Buntstift." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav. u.", + "position": "", + "comment": "Rasur rechts neben g. Ante correcturam: Punktierung?" + }, + { + "svgGroupId": "TODO", + "measure": "21
bis 22", + "system": "Klav. o.", + "position": "2/4", + "comment": "Bogen über dem System rasiert." + }, + { + "svgGroupId": "TODO", + "measure": "II Die geheimnisvolle Flöte („An einem Abend“) M 217", + "system": "", + "position": "", + "comment": "" + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav. o.", + "position": "2. Note", + "comment": "g2 auf Rasur.
Ende der Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur.
Rasur am Notenhals." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "Auf Rasur. Ante correcturam: Untersatz angeglichen?" + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Rasur unter der Note. Ante correcturam: Dynamik?" + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav.", + "position": "2/8–5/16", + "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav. u.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} auf Rasur. Rasur unter dem System. Ante correcturam: Dynamik?" + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav. o.", + "position": "4/8", + "comment": "Rasur unter dem System. Ante correcturam: Dynamik?" + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "Rasur rechts neben dem Notenkopf. Ante correcturam: Augmentationspunkt?" + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. u.", + "position": "2/4", + "comment": "Viertelpause hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. u.", + "position": "10/16", + "comment": "Rasur über dem System. Ante correcturam: Dynamik?" + }, + { + "svgGroupId": "TODO", + "measure": "8", + "system": "Klav. u.", + "position": "3/16–2/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelende zuerst bis Taktende?" + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Klav. o.", + "position": "1/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst in T. 8 4/8?" + }, + { + "svgGroupId": "TODO", + "measure": "12
bis 13", + "system": "Klav.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel, {{ref.getGlyph('[ppp]')}} auf Rasur. Ante correcturam: Decrescendogabel zuerst über den Taktstrich?" + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges.", + "position": "", + "comment": "Gabeln auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. u.", + "position": "2/4", + "comment": "Notenhals auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "14
bis 16", + "system": "Klav. u.", + "position": "2/4
2/4", + "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 16 bis 17.)" + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Ges.", + "position": "5/8 bis Taktende", + "comment": "[mp], Crescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "16
bis 17", + "system": "Klav. u.", + "position": "3/4
2/4", + "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 14 bis 16.)" + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Ges.", + "position": "2–3/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst zu 1/4?" + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. o.", + "position": "9/16", + "comment": "Rasur über dem System. Ante correcturam: Dynamik?" + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. o.", + "position": "9–12/16", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. u.", + "position": "5–6/8", + "comment": "Rasur unter dem System. Ante correcturam: Dynamik und Gabel?" + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Ges.", + "position": "1/4", + "comment": "? mit rotem Buntstift: Text fehlt." + }, + { + "svgGroupId": "TODO", + "measure": "18
bis 19", + "system": "Klav. u.", + "position": "1/16
3/4", + "comment": "Rasur über dem System. Ante correcturam: Bogen?" + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Klav. o.", + "position": "3/4", + "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "svgGroupId": "TODO", + "measure": "18
bis 19", + "system": "Klav. o.", + "position": "3/4
3. Note", + "comment": "Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "19", + "system": "Klav. o.", + "position": "3.–4. Note", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel mit schwarzer Tinte überschreiben Decrescendogabel mit Bleitstift." + }, + { + "svgGroupId": "TODO", + "measure": "19
bis 22", + "system": "Ges.", + "position": "3/4
2/4", + "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen von T. 20 1/4 bis T. 22 2/4.
(Decrescendogabel in T. 22 auf dieser Rasur.)" + }, + { + "svgGroupId": "TODO", + "measure": "20", + "system": "Klav. o.", + "position": "1/16–3/8", + "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen 1/16–3/8." + }, + { + "svgGroupId": "TODO", + "measure": "20", + "system": "Klav. u.", + "position": "1/8", + "comment": "Staccatopunkt auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Crescendogabel mit Bleistift, nachgezogen mit schwarzer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Ges.", + "position": "letzte Note", + "comment": "des2 auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Auf Rasur. (Untersatz geändert.)
{{ref.getGlyph('[p]')}} mit Bleistift, nachgezogen mit schwarzer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. o.", + "position": "1.–3. Note", + "comment": "Rasur unter dem System. Ante correcturam: Decrescendogabel bereits ab 1. Note?" + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Ges.", + "position": "5/8", + "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "svgGroupId": "TODO", + "measure": "23
bis 24", + "system": "Ges., Klav.", + "position": "Taktanfang", + "comment": "Auf Rasur. (Untersatzkorrektur?)" + }, + { + "svgGroupId": "TODO", + "measure": "25–27", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren unter dem System." + }, + { + "svgGroupId": "TODO", + "measure": "25
bis 26", + "system": "Klav. o.", + "position": "3/8
2. Note", + "comment": "Rasuren über dem System. Ante correcturam: Bogen bis T. 26 2. Note?" + }, + { + "svgGroupId": "TODO", + "measure": "25
bis 26", + "system": "Klav.", + "position": "2/4
Taktende", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "27", + "system": "Klav.", + "position": "", + "comment": "{{ref.getGlyph('[ppp]')}}, Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "27", + "system": "Klav. u.", + "position": "", + "comment": "Augmentationspunkt hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "III „Schien mir’s, als ich sah die Sonne“ M 213", + "system": "", + "position": "", + "comment": "" + }, + { + "svgGroupId": "TODO", + "measure": "4", + "system": "Ges.", + "position": "5–6/16", + "comment": "Sechzehntelpause auf Rasur. Ante correcturam: Achtelnote d2." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav. o.", + "position": "2/16–2/8", + "comment": "Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav.", + "position": "3–6/16", + "comment": "Rasur über den Noten." + }, + { + "svgGroupId": "TODO", + "measure": "6", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren neben den Notenköpfen. Ante correcturam: punktierte Viertelnote." + }, + { + "svgGroupId": "TODO", + "measure": "8", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "8", + "system": "Ges.", + "position": "6/16", + "comment": "[Son-]ne! geändert zu [Son-]ne,, ! rasiert, Komma mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. o.", + "position": "2/8–6/16", + "comment": "Rasuren. Ante correcturam: vermutlich zwei zusammengebalkte Achtelnoten?" + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Ges.", + "position": "3/8", + "comment": ": (?) überschrieben zu ; mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "tempo auf Rasur. Ante correcturam: Geltungsstrichelung von rit. in T. 11 bis Ende T. 12?" + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. o.", + "position": "1., 2. Note", + "comment": "Rasuren über den Noten." + }, + { + "svgGroupId": "TODO", + "measure": "15
bis 16", + "system": "Ges.", + "position": "3/8
Taktende", + "comment": "Rasur unter den Noten. Ante correcturam: Bogen unter den Noten." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "", + "position": "", + "comment": "Geltungsstrichelung von rit. auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Rasuren über der Note." + }, + { + "svgGroupId": "TODO", + "measure": "17–18", + "system": "", + "position": "", + "comment": "Taktartvorzeichnung vor T. 17: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 17 und Taktartvorzeichnung vor T. 18 (3/8) hinzugefügt." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Bassschlüssel auf Rasur. Ante correcturam: Violinschlüssel." + }, + { + "svgGroupId": "TODO", + "measure": "20–21", + "system": "", + "position": "", + "comment": "Taktartvorzeichnung vor T. 20: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 20 hinzugefügt und Untersatz am Anfang von T. 21 geändert auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav. u.", + "position": "4/16", + "comment": "Rasur über dem System." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Ges.", + "position": "2/16", + "comment": "dis2 auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "23", + "system": "Klav. o.", + "position": "1–2/8", + "comment": "Crescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "23", + "system": "Ges.", + "position": "2/16–12/32", + "comment": "Gabeln auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "24", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "24
bis 25", + "system": "Ges.", + "position": "1. Note
letzte Note", + "comment": "Rasuren über dem System. Decrescendogabel in T. 25 3.–4. Note auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "25", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "25", + "system": "", + "position": "(2/8)", + "comment": "rit.- - - gestrichen mit Bleistift. (Siehe Korrektur in T. 26 Taktanfang.)" + }, + { + "svgGroupId": "TODO", + "measure": "25", + "system": "Klav. o.", + "position": "3/8", + "comment": "[mf] auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "26", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
rit. hinzugefügt mit Bleistift. (Siehe Korrektur in T. 25 [2/8].)" + }, + { + "svgGroupId": "TODO", + "measure": "26", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "26", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Gabeln mit Bleistift, radiert und mit schwarzer Tinte nachgezogen." + }, + { + "svgGroupId": "TODO", + "measure": "26", + "system": "Klav. o.", + "position": "3.–4. Note", + "comment": "Ende der Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "26", + "system": "Klav. u.", + "position": "8/16", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "27
bis 28", + "system": "Ges.", + "position": "2/16
2/8", + "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 27 2/16 bis T. 28 2/8." + }, + { + "svgGroupId": "TODO", + "measure": "28", + "system": "Ges.", + "position": "1–2/8", + "comment": "Bogen auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "28
bis 29", + "system": "Ges.", + "position": "3. Note
2. Note", + "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 28 3. Note bis T. 29 2. Note." + }, + { + "svgGroupId": "TODO", + "measure": "30", + "system": "", + "position": "Taktanfang", + "comment": "accell. auf Rasur. Ante correcturam: vermutlich durchgehende Geltungsstrichelung von rit. in T. 28 3/8 bis Ende T. 31?" + }, + { + "svgGroupId": "TODO", + "measure": "30", + "system": "Klav.", + "position": "1/8", + "comment": "Achtelpausen auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "30", + "system": "Klav. o.", + "position": "vor 2/8", + "comment": "Violinschlüssel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "33", + "system": "Klav.", + "position": "4/32–4/16", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "34", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
Geltungsstrichelung auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "34", + "system": "Klav. o.", + "position": "1/4", + "comment": "Oberstimmenschicht: Viertelpause auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "34–36", + "system": "Klav. o.", + "position": "", + "comment": "Rasur zwischen den Stimmenschichten. Ante correcturam: Trillerwellenlinie über a aus Unterstimmenschicht?" + }, + { + "svgGroupId": "TODO", + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "sehr ruhig ([Achtel] = ca 100) auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "38–40", + "system": "", + "position": "", + "comment": "rit. - - - mit Bleistift, nachgezogen mit schwarzer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "IV Gleich und Gleich („Ein Blumenglöckchen“) M 216", + "system": "", + "position": "", + "comment": "" + }, + { + "svgGroupId": "TODO", + "measure": "2", + "system": "Klav. o.", + "position": "2.–4. Note", + "comment": "Decrescendogabel hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "3", + "system": "Ges.", + "position": "1–2/4", + "comment": "Viertelpausen und Fermate zu 2/4 hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "8
bis 9", + "system": "Klav. u.", + "position": "1/4", + "comment": "e/g auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "9
bis 10", + "system": "Klav. o.", + "position": "2/8
2/8", + "comment": "Notenköpfe mit Bleistift nachgezogen.
Gabeln (über dem System) auf Rasur. Ante correcturam: Bogen über dem System. Post correcturam: Bogen unter dem System." + }, + { + "svgGroupId": "TODO", + "measure": "9
bis 10", + "system": "Klav. u.", + "position": "2. Note", + "comment": "Bogen rasiert." + }, + { + "svgGroupId": "TODO", + "measure": "10
bis 11", + "system": "Ges.", + "position": "2/4
1. Note", + "comment": "Rasur über dem System. Ante correcturam: Bogen und Decrescendogabel überschneiden sich." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. u.", + "position": "1/8", + "comment": "Rasur über der Note." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "", + "position": "3/4", + "comment": "rit. vermutlich versetzt von Anfang T. 12. (Dort Geltungsstrichelung auf Rasur)." + }, + { + "svgGroupId": "TODO", + "measure": "12", + "system": "Klav. u.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Klav. o.", + "position": "", + "comment": "g2/ges3/ais3, zweite Hilfslinie gestrichen und Tonnamen fis | es vor den beiden obersten Notenköpfen ergänzt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "1/4", + "comment": "Unterstimmenschicht: Viertelpause auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "2/8", + "comment": "{{ref.getGlyph('[f]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Rasur unter dem System." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Ges.", + "position": "", + "comment": "Ganze Pause hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: Klav. u. und Klav. o. Unterstimmenschicht vermutlich Ligatur aus Viertelnote, punktierte Viertelnote C/A und e, Achtelpause. Klav. o. Oberstimmenschicht vermutlich Viertelnote cis1, Achtelpause" + }, + { + "svgGroupId": "TODO", + "measure": "18", + "system": "Klav. o.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "19", + "system": "Klav. o.", + "position": "2.–3. Note", + "comment": "Oberstimmenschicht auf Rasur." + } + ], + "linkBoxes": [] + } + ] } }, { From 0c7b7a1dc5033f86f98ae137dde6ec93e824f29f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:14:19 +0000 Subject: [PATCH 004/213] build(deps-dev): bump husky from 9.1.4 to 9.1.5 Bumps [husky](https://github.com/typicode/husky) from 9.1.4 to 9.1.5. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.1.4...v9.1.5) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0fd8c57493..39654ddda2 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "eslint-plugin-jsdoc": "^50.2.2", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", - "husky": "^9.1.4", + "husky": "^9.1.5", "jasmine-core": "~5.2.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", diff --git a/yarn.lock b/yarn.lock index 8205b533f5..52084f35f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6113,7 +6113,7 @@ __metadata: eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" - husky: "npm:^9.1.4" + husky: "npm:^9.1.5" jasmine-core: "npm:~5.2.0" json2typescript: "npm:^1.5.1" karma: "npm:~6.4.4" @@ -10477,12 +10477,12 @@ __metadata: languageName: node linkType: hard -"husky@npm:^9.1.4": - version: 9.1.4 - resolution: "husky@npm:9.1.4" +"husky@npm:^9.1.5": + version: 9.1.5 + resolution: "husky@npm:9.1.5" bin: husky: bin.js - checksum: 10c0/f5185003bef9ad9ec3f40e821963e4c12409b993fdcab89e3d660bed7d8c9d8bfd399f05222e27e0ead6589601fb1bb08d1a589c51751a4ab0547ead3429b8de + checksum: 10c0/f42efb95a026303eb880898760f802d88409780dd72f17781d2dfc302177d4f80b641cf1f1694f53f6d97c536c7397684133d8c8fe4a4426f7460186a7d1c6b8 languageName: node linkType: hard From 331426e8db01b8b084bf11b6225c6dbd8bdbc47a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:57:15 +0000 Subject: [PATCH 005/213] build(deps): bump github/codeql-action from 3.26.2 to 3.26.3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.2 to 3.26.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/429e1977040da7a23b6822b13c129cd1ba93dbb2...883d8588e56d1753a8a58c1c86e88976f0c23449) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 40da09c115..9ba52ee362 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2 + uses: github/codeql-action/init@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2 + uses: github/codeql-action/autobuild@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2 + uses: github/codeql-action/analyze@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index b6da2ca471..2a31328626 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@429e1977040da7a23b6822b13c129cd1ba93dbb2 # v3.26.2 + uses: github/codeql-action/upload-sarif@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 with: sarif_file: results.sarif From 883e23fc8a5e41d0d38dd8743e49cce4fee2b271 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:57:06 +0000 Subject: [PATCH 006/213] build(deps): bump SonarSource/sonarcloud-github-action Bumps [SonarSource/sonarcloud-github-action](https://github.com/sonarsource/sonarcloud-github-action) from 2.3.0 to 3.0.0. - [Release notes](https://github.com/sonarsource/sonarcloud-github-action/releases) - [Commits](https://github.com/sonarsource/sonarcloud-github-action/compare/e44258b109568baa0df60ed515909fc6c72cba92...eb211723266fe8e83102bac7361f0a05c3ac1d1b) --- updated-dependencies: - dependency-name: SonarSource/sonarcloud-github-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 69c652d5a7..101346c477 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -88,7 +88,7 @@ jobs: - name: Perform SonarCloud Analysis if: matrix.node-version == 20.13 && github.event_name != 'pull_request' && github.repository_owner == env.MAIN_REPO_OWNER # perform SonarCloud analysis only for current node version and not with pull requests or forks(token issue) - uses: SonarSource/sonarcloud-github-action@e44258b109568baa0df60ed515909fc6c72cba92 # v2.3.0 + uses: SonarSource/sonarcloud-github-action@eb211723266fe8e83102bac7361f0a05c3ac1d1b # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From 7d5141b8c37ef8837ace5fd47cd7940b7df7caf4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:13:00 +0000 Subject: [PATCH 007/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.1.0 to 8.2.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.2.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.1.0 to 8.2.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.2.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 39654ddda2..2b68ee2ad5 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.1", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 52084f35f4..63be8b1b4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5121,15 +5121,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.1.0" +"@typescript-eslint/eslint-plugin@npm:^8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.2.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/type-utils": "npm:8.1.0" - "@typescript-eslint/utils": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/type-utils": "npm:8.2.0" + "@typescript-eslint/utils": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5140,25 +5140,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7bbeae588f859b59c34d6a76cac06ef0fa605921b40c5d3b65b94829984280ea84c4dd3f5cb9ce2eb326f5563e9abb4c90ebff05c47f83f4def296c2ea1fa86c + checksum: 10c0/17243ee1b34d78723fe3e1a308c64490eee49bd83301e3abe8a6f05bce05434d70f56caf75756b8cffa051154dc89cdf485114ede6781fc087f0aaca37a026ec languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/parser@npm:8.1.0" +"@typescript-eslint/parser@npm:^8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/parser@npm:8.2.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/typescript-estree": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b94b2d3ab5ca505484d100701fad6a04a5dc8d595029bac1b9f5b8a4a91d80fd605b0f65d230b36a97ab7e5d55eeb0c28af2ab63929a3e4ab8fdefd2a548c36b + checksum: 10c0/bb4ebc0a40b5e68c5287de17af3acf3045e2ef7886ebee8d1c4a6fd07bd6d55e9fc12bc7b89d07d15a2a4182cbf6380b50ad148d4a37e93d2e54930aa386a3bf languageName: node linkType: hard @@ -5172,28 +5172,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/scope-manager@npm:8.1.0" +"@typescript-eslint/scope-manager@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/scope-manager@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" - checksum: 10c0/2bcf8cd176a1819bddcae16c572e7da8fba821b995a91cd53d64d8d6b85a17f5a895522f281ba57e34929574bddd4d6684ee3e545ec4e8096be4c3198e253a9a + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" + checksum: 10c0/8026e11d9cfbb674c62eb38929d08d42c4a373f3463c2591ed6603c496d3d00321f553edce47f1d7504b55fcbe9664ea2bdcaa3131c8c834bde1b1f07497af5d languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/type-utils@npm:8.1.0" +"@typescript-eslint/type-utils@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/type-utils@npm:8.2.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.1.0" - "@typescript-eslint/utils": "npm:8.1.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" + "@typescript-eslint/utils": "npm:8.2.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/62753941c4136e8d2daa72fe0410dea48e5317a6f12ece6382ca85e29912bd1b3f739b61d1060fc0a1f8c488dfc905beab4c8b8497951a21c3138a659c7271ec + checksum: 10c0/5ff387d39fec3ba47af167ca3e48a200f87e4b97b010170245f495cd3d2e30fd0a5b2a9b27aae2ae929c99f92acabcd07315944dc6f9de963bad1c61ba9ea53c languageName: node linkType: hard @@ -5204,10 +5204,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/types@npm:8.1.0" - checksum: 10c0/ceade44455f45974e68956016c4d1c6626580732f7f9675e14ffa63db80b551752b0df596b20473dae9f0dc6ed966e17417dc2cf36e1a82b6ab0edc97c5eaa50 +"@typescript-eslint/types@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/types@npm:8.2.0" + checksum: 10c0/2ffba0d0183dfdd2f859fb414013d17d009f5e886664823f973aaa1145243fceb52cfe26aa7c50208af7833b3703b7788337f1aab136c9a4eb36d905493847d1 languageName: node linkType: hard @@ -5230,12 +5230,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.1.0" +"@typescript-eslint/typescript-estree@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/visitor-keys": "npm:8.2.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -5245,21 +5245,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a7bc8275df1c79c4cb14ef086c56674316dd4907efec53eddca35d0b5220428b69c82178ce2d95138da2e398269c8bd0764cae8020a36417e411e35c3c47bc4b + checksum: 10c0/f49aabc78e396908307394812fdebc4015ca407983efc361be106d3e2d58971dec4a1a725362fcfbd637f3d8150baa0735eb5929fd170172b7f2a65e06eeb3d2 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/utils@npm:8.1.0" +"@typescript-eslint/utils@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/utils@npm:8.2.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/typescript-estree": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/typescript-estree": "npm:8.2.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/c95503a6bdcd98b1ff04d1adbf46377b2036b1c510d90a4a056401f996f775f06c3108c95fb81cd6babc9c97b73b91b8e848f0337bc508de8a49c993582f0e75 + checksum: 10c0/0f3d5cf804c2863ea9432ef76bfdb1cadbb244cbf8a64ac77c0e559c012a1e98382c4535354e54696c564c0abd9c10dffc78d38972c97035e963798d360d1830 languageName: node linkType: hard @@ -5287,13 +5287,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.1.0" +"@typescript-eslint/visitor-keys@npm:8.2.0": + version: 8.2.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" + "@typescript-eslint/types": "npm:8.2.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/b7544dbb0eec1ddbfcd95c04b51b9a739c2e768c16d1c88508f976a2b0d1bc02fefb7491930e06e48073a5c07c6f488cd8403bba3a8b918888b93a88d5ac3869 + checksum: 10c0/788633bd2905c88ea2cf20d9e317a2bc992a70fcf725cb54bbe55a17c42138a6fe877c89fbda41a733e0e8ad6dce893163bada60509a1b856321f4329a316973 languageName: node linkType: hard @@ -6092,8 +6092,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.1.0" - "@typescript-eslint/parser": "npm:^8.1.0" + "@typescript-eslint/eslint-plugin": "npm:^8.2.0" + "@typescript-eslint/parser": "npm:^8.2.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 3670f3f9139f07bcf2f8d3c11c77e48b62db6ae3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:13:05 +0000 Subject: [PATCH 008/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.0...18.2.1) Updates `@angular/cli` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.0...18.2.1) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 118 +++++++++++++++++++++++++-------------------------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 2b68ee2ad5..d99b8fef48 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.0", + "@angular-devkit/build-angular": "^18.2.1", "@angular-eslint/builder": "^18.3.0", "@angular-eslint/eslint-plugin": "^18.3.0", "@angular-eslint/eslint-plugin-template": "^18.3.0", "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", - "@angular/cli": "^18.2.0", + "@angular/cli": "^18.2.1", "@angular/compiler-cli": "^18.2.0", "@commitlint/cli": "^19.4.0", "@commitlint/config-angular": "^19.3.0", diff --git a/yarn.lock b/yarn.lock index 63be8b1b4e..93f57536b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.0": - version: 0.1802.0 - resolution: "@angular-devkit/architect@npm:0.1802.0" +"@angular-devkit/architect@npm:0.1802.1": + version: 0.1802.1 + resolution: "@angular-devkit/architect@npm:0.1802.1" dependencies: - "@angular-devkit/core": "npm:18.2.0" + "@angular-devkit/core": "npm:18.2.1" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/f7705bd028874437b8009ac7189ef781f70a8d010efd709a287dd19c7d1ede9b792e225a031b6cdac6d55005b78d7b41540573561e65900df710b2bf45656c34 + checksum: 10c0/de187293ea5a5345627d4a161ae5483798e9fe83ab9d1ae511cf85aed767004d24a25fdfcd78b534880afd80c89a161ee897b922ec83e4cd6a92de9047d2bb8f languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-devkit/build-angular@npm:18.2.0" +"@angular-devkit/build-angular@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular-devkit/build-angular@npm:18.2.1" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.0" - "@angular-devkit/build-webpack": "npm:0.1802.0" - "@angular-devkit/core": "npm:18.2.0" - "@angular/build": "npm:18.2.0" + "@angular-devkit/architect": "npm:0.1802.1" + "@angular-devkit/build-webpack": "npm:0.1802.1" + "@angular-devkit/core": "npm:18.2.1" + "@angular/build": "npm:18.2.1" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.0" + "@ngtools/webpack": "npm:18.2.1" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -99,7 +99,7 @@ __metadata: postcss-loader: "npm:8.1.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.1" - sass: "npm:1.77.8" + sass: "npm:1.77.6" sass-loader: "npm:16.0.0" semver: "npm:7.6.3" source-map-loader: "npm:5.0.0" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/9cd89b392417ae8ba284035f9bb2c27f47c3ff76edaac3c9f2586cf25902f6fa4f64484dbeae37f21f31dd1beeca3d43901901acdf0f98586a3fc36163b6ff52 + checksum: 10c0/f2ba041722798a0e7043877334bc07347faf48addc3fa3adb0e1a6e4c5eda12ac6ea4f91284b7e44e14fc4c0c6ae7d70860f650d690a2caf521ca04e5efe870c languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.0": - version: 0.1802.0 - resolution: "@angular-devkit/build-webpack@npm:0.1802.0" +"@angular-devkit/build-webpack@npm:0.1802.1": + version: 0.1802.1 + resolution: "@angular-devkit/build-webpack@npm:0.1802.1" dependencies: - "@angular-devkit/architect": "npm:0.1802.0" + "@angular-devkit/architect": "npm:0.1802.1" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/7d0873483b83e24c4ad99dd0f1904dd99e37fee286328d4a391bcef384d454c0532f9d50f71bdb128fcb35be35fab826060184bb623dbbaab2d319c1e3d5576c + checksum: 10c0/133500ebbac88b5953cc7ba58cd6ac183e762059a3930f2df07948478a9122cb31679c3d0f990163c0a4b3e382a23b953365924d73b0758f3060822e9e4678ac languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.0": - version: 18.2.0 - resolution: "@angular-devkit/core@npm:18.2.0" +"@angular-devkit/core@npm:18.2.1": + version: 18.2.1 + resolution: "@angular-devkit/core@npm:18.2.1" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/b18bdf7cb4ec3dd37d402558d50f07577d83983591912905efadcb050816bd53253cda4c0392ecacbbcd23dff39cecdb6f0b145c02e9c53e11f2896ef0ff6400 + checksum: 10c0/591d60e3856819e3842237e0b60f3ace713078881d90e9c3da09f599e1f8ae38d18c69dae3082b0fc790609769015abef83eb42cc9eb831370e6b8f0e31ff317 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.0": - version: 18.2.0 - resolution: "@angular-devkit/schematics@npm:18.2.0" +"@angular-devkit/schematics@npm:18.2.1": + version: 18.2.1 + resolution: "@angular-devkit/schematics@npm:18.2.1" dependencies: - "@angular-devkit/core": "npm:18.2.0" + "@angular-devkit/core": "npm:18.2.1" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/b091907564f586d8dcea979b3aebb02bdbea45139b68249c2176d1c4945360ddb7e2cb7ea150a40186c57657b1527f797ac09afcc450f212322208c48d31cfc1 + checksum: 10c0/6153f6f8de1976e00e84e7cb90f1d56abf606715ec86e339860e1fa5170459c9039278b3c91536885dfd3452dff819acc24fea36e9ad8446e8e94a5dd4791b62 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.0": - version: 18.2.0 - resolution: "@angular/build@npm:18.2.0" +"@angular/build@npm:18.2.1": + version: 18.2.1 + resolution: "@angular/build@npm:18.2.1" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.0" + "@angular-devkit/architect": "npm:0.1802.1" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -410,7 +410,7 @@ __metadata: picomatch: "npm:4.0.2" piscina: "npm:4.6.1" rollup: "npm:4.20.0" - sass: "npm:1.77.8" + sass: "npm:1.77.6" semver: "npm:7.6.3" vite: "npm:5.4.0" watchpack: "npm:2.4.1" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/50c3c3ef2289771a33ce94486dbf5875281fb4e9091e2777663159b5e3a5a8fb78ddc914f7b6a652f1dcc21fc2f3dffaa011778e8906781da0bd107dbd4ea3d3 + checksum: 10c0/3a1e71f4835fc83d069cd7c9603efa35dbb3dd53d5d307208b33cddfbc229f45ab017b5fa05de3ba34ce9cabfc68a34dbbdfb3f0b2d7b45f55b2b7e765897724 languageName: node linkType: hard -"@angular/cli@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/cli@npm:18.2.0" +"@angular/cli@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/cli@npm:18.2.1" dependencies: - "@angular-devkit/architect": "npm:0.1802.0" - "@angular-devkit/core": "npm:18.2.0" - "@angular-devkit/schematics": "npm:18.2.0" + "@angular-devkit/architect": "npm:0.1802.1" + "@angular-devkit/core": "npm:18.2.1" + "@angular-devkit/schematics": "npm:18.2.1" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.0" + "@schematics/angular": "npm:18.2.1" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/986cd7a49e321ee494c8723769df5a01de9bda69fe1b34df05afd11cebe2f174d1a6bd60844d409dee2a2ae7805e76a5982523aaa2d59c40080bd09b10518afc + checksum: 10c0/e898782014b1286b4c5aa64b29f1ea7a59b500ee2a0a1fdfc1085fff06dcef535627d7e36b7ca40c8fd62f7d2056b70cdfeaf08751c742f95db9115f2132e545 languageName: node linkType: hard @@ -3946,9 +3946,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.0": - version: 18.2.0 - resolution: "@ngtools/webpack@npm:18.2.0" +"@ngtools/webpack@npm:18.2.1": + version: 18.2.1 + resolution: "@ngtools/webpack@npm:18.2.1" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3958,7 +3958,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/621c28b5acaa7c8c83a81f3267bcde2e2dc55e49ae711999e644af9000d3ab8e8a070e6db02e8bb52c0bb357a0a69a93dc7082841ebbd7d55b060683c95f48d1 + checksum: 10c0/0e0d958f6c6ef3e40ed81cf0414898c6e704077a02982af248a6563b7a0a7a0a9f45b96115138da7af6d2fe8bf04cd9a38deaa9ac5d473ddf62581a08b52c03f languageName: node linkType: hard @@ -4363,19 +4363,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.0": - version: 18.2.0 - resolution: "@schematics/angular@npm:18.2.0" +"@schematics/angular@npm:18.2.1": + version: 18.2.1 + resolution: "@schematics/angular@npm:18.2.1" dependencies: - "@angular-devkit/core": "npm:18.2.0" - "@angular-devkit/schematics": "npm:18.2.0" + "@angular-devkit/core": "npm:18.2.1" + "@angular-devkit/schematics": "npm:18.2.1" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/6547c795cd60d46fb6b694858dd5ca3dba90ead1706c3a612c56951b897c2b456164a8ab2ec840266b50bdd2f040bde086d2d5169e7770f91d88076fcbabdf1e + checksum: 10c0/2fa52576f8226f305ee5ba7e0af4f29362457185250ae8f20c9f4ece21ea0ce913c18d6f97a6abf8b4e6ecbd0e4b64d20cdb91f9ff34554bb02f350e05cc442e languageName: node linkType: hard @@ -6062,14 +6062,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.0" + "@angular-devkit/build-angular": "npm:^18.2.1" "@angular-eslint/builder": "npm:^18.3.0" "@angular-eslint/eslint-plugin": "npm:^18.3.0" "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" "@angular/animations": "npm:^18.2.0" - "@angular/cli": "npm:^18.2.0" + "@angular/cli": "npm:^18.2.1" "@angular/common": "npm:^18.2.0" "@angular/compiler": "npm:^18.2.0" "@angular/compiler-cli": "npm:^18.2.0" @@ -14836,16 +14836,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.77.8": - version: 1.77.8 - resolution: "sass@npm:1.77.8" +"sass@npm:1.77.6": + version: 1.77.6 + resolution: "sass@npm:1.77.6" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/2bfd62794070352c804f949e69bd8bb5b4ec846deeb924251b2c3f7b503170fb1ae186f513f0166907749eb34e0277dee747edcb78c886fb471aac01be1e864c + checksum: 10c0/fe5a393c0aa29eda9f83c06be9b94788b61fe8bad0616ee6e3a25d21ab504f430d40c0064fdca89b02b8e426411ae6dcd906c91f2e48c263575c3d392b6daeb1 languageName: node linkType: hard From 092f2720df2eff74a9d50dd2138e2dccd215025a Mon Sep 17 00:00:00 2001 From: chael-mi Date: Thu, 22 Aug 2024 15:49:20 +0200 Subject: [PATCH 009/213] feature/m38_fix_linkboxes --- .../2/section/2a/m38/M38_Sk2-1von1-final.svg | 801 ++++++++++----- .../2/section/2a/m38/M38_Sk3-2von5-final.svg | 908 ++++++++++++------ 2 files changed, 1206 insertions(+), 503 deletions(-) diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg index 8091bfb68f..f04333ecd9 100644 --- a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg @@ -1,230 +1,571 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg index e958b0c035..3c0a7d9a94 100644 --- a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg @@ -1,273 +1,635 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + From 7c744e660d1464947788ca5f990b073f7a98b277 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 14:50:57 +0000 Subject: [PATCH 010/213] build(deps): bump github/codeql-action from 3.26.3 to 3.26.4 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.3 to 3.26.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/883d8588e56d1753a8a58c1c86e88976f0c23449...f0f3afee809481da311ca3a6ff1ff51d81dbeb24) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9ba52ee362..cfd3f29944 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 + uses: github/codeql-action/init@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 + uses: github/codeql-action/autobuild@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 + uses: github/codeql-action/analyze@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 2a31328626..36a898e494 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3 + uses: github/codeql-action/upload-sarif@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 with: sarif_file: results.sarif From af48f6a65a7000ccbda9892f0e638f574c2f5234 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 23 Aug 2024 10:18:46 +0200 Subject: [PATCH 011/213] fix(assets): optimize svgs for m38 with SVGO --- .../2/section/2a/m38/M38_Sk2-1von1-final.svg | 797 +++++---------- .../2/section/2a/m38/M38_Sk3-2von5-final.svg | 904 ++++++------------ 2 files changed, 495 insertions(+), 1206 deletions(-) diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg index f04333ecd9..3059abeb52 100644 --- a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg @@ -1,571 +1,226 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg index 3c0a7d9a94..be81b29bf1 100644 --- a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg @@ -1,635 +1,269 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c03ba8c3c2ae6afe8e9d5fccb15a9f67205ef28f Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 23 Aug 2024 10:20:30 +0200 Subject: [PATCH 012/213] fix(edition): fix typo in textcritics for m38 --- .../data/edition/series/2/section/2a/m38/textcritics.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/2/section/2a/m38/textcritics.json b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json index c109aadf56..0c90d6726a 100644 --- a/src/assets/data/edition/series/2/section/2a/m38/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json @@ -238,7 +238,7 @@ }, { "svgGroupId": "g1426", - "measure": "{11A} bis
{12A}", + "measure": "{11A}
bis {12A}", "system": "1–2", "position": "1/8
2/8", "comment": "Noten gestrichen." From 8869fbb30244e9dda883610e0d1eda7baf478229 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 14:24:38 +0000 Subject: [PATCH 013/213] build(deps-dev): bump the commitlint group with 2 updates Bumps the commitlint group with 2 updates: [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) and [@commitlint/config-angular](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-angular). Updates `@commitlint/cli` from 19.4.0 to 19.4.1 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.4.1/@commitlint/cli) Updates `@commitlint/config-angular` from 19.3.0 to 19.4.1 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-angular/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.4.1/@commitlint/config-angular) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: commitlint - dependency-name: "@commitlint/config-angular" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint ... Signed-off-by: dependabot[bot] --- package.json | 4 ++-- yarn.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index d99b8fef48..b2c016a3da 100644 --- a/package.json +++ b/package.json @@ -126,8 +126,8 @@ "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.1", "@angular/compiler-cli": "^18.2.0", - "@commitlint/cli": "^19.4.0", - "@commitlint/config-angular": "^19.3.0", + "@commitlint/cli": "^19.4.1", + "@commitlint/config-angular": "^19.4.1", "@compodoc/compodoc": "^1.1.25", "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", diff --git a/yarn.lock b/yarn.lock index 93f57536b8..ad8e300242 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2646,12 +2646,12 @@ __metadata: languageName: node linkType: hard -"@commitlint/cli@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/cli@npm:19.4.0" +"@commitlint/cli@npm:^19.4.1": + version: 19.4.1 + resolution: "@commitlint/cli@npm:19.4.1" dependencies: "@commitlint/format": "npm:^19.3.0" - "@commitlint/lint": "npm:^19.2.2" + "@commitlint/lint": "npm:^19.4.1" "@commitlint/load": "npm:^19.4.0" "@commitlint/read": "npm:^19.4.0" "@commitlint/types": "npm:^19.0.3" @@ -2659,7 +2659,7 @@ __metadata: yargs: "npm:^17.0.0" bin: commitlint: cli.js - checksum: 10c0/b3f4a0b07ae18c59bcc7c4a10fa5e265271d1f76b94d1c64371104b0f9cdabf8480c941382c3de5db53513b3c4785acc02f9445a1f357361ff4f5ff4ecdf5f4b + checksum: 10c0/a829b91e690b3dd44fab9661d7defdb3bd2556f014e122a004b3ffaf25673f2c0916a112db651a9af3168f8ebdc91828d1ee4db7a1f3cef7e7f4ff9b9699aabf languageName: node linkType: hard @@ -2670,12 +2670,12 @@ __metadata: languageName: node linkType: hard -"@commitlint/config-angular@npm:^19.3.0": - version: 19.3.0 - resolution: "@commitlint/config-angular@npm:19.3.0" +"@commitlint/config-angular@npm:^19.4.1": + version: 19.4.1 + resolution: "@commitlint/config-angular@npm:19.4.1" dependencies: "@commitlint/config-angular-type-enum": "npm:^19.1.0" - checksum: 10c0/b20966ea62f65f5254740c592c1ef5ca1504cee716f9f24455a57ecd25a10a76c67403d978d9a286b3dd7171d6aa27a1d980406d1504111af0a292c853374a63 + checksum: 10c0/3b7ffe70cecab2c7b34902dbd161ffc365d91a1ad564d42eea22de374b769e5a9219a7e2a6ec9df02d6236904786914cc3229c7b501346716ba97c4d2727af06 languageName: node linkType: hard @@ -2730,15 +2730,15 @@ __metadata: languageName: node linkType: hard -"@commitlint/lint@npm:^19.2.2": - version: 19.2.2 - resolution: "@commitlint/lint@npm:19.2.2" +"@commitlint/lint@npm:^19.4.1": + version: 19.4.1 + resolution: "@commitlint/lint@npm:19.4.1" dependencies: "@commitlint/is-ignored": "npm:^19.2.2" "@commitlint/parse": "npm:^19.0.3" - "@commitlint/rules": "npm:^19.0.3" + "@commitlint/rules": "npm:^19.4.1" "@commitlint/types": "npm:^19.0.3" - checksum: 10c0/e7b3ca6027fecc1a3eda0ee8c21ecef0071ddddc7711a922cc6eb53a590c7e4f00d550b01134a5ebaaae603a0afbeaf65809b12f8099e08cace9d594cb69ff4b + checksum: 10c0/d3b455c23480f64fb4939eb78266eee687048a5e3c4203207fb25f6b7bd1f369a8529c659018db20765a6a57f6c161d3f80a01422ca7883b1a4405cd064d8fd6 languageName: node linkType: hard @@ -2805,16 +2805,16 @@ __metadata: languageName: node linkType: hard -"@commitlint/rules@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/rules@npm:19.0.3" +"@commitlint/rules@npm:^19.4.1": + version: 19.4.1 + resolution: "@commitlint/rules@npm:19.4.1" dependencies: "@commitlint/ensure": "npm:^19.0.3" "@commitlint/message": "npm:^19.0.0" "@commitlint/to-lines": "npm:^19.0.0" "@commitlint/types": "npm:^19.0.3" execa: "npm:^8.0.1" - checksum: 10c0/4a9a3f2fb838949707650a6bf2a016ec2b0ec570cb151d1005d01bdeb2e27adff5e5eab3c06a302c6834a88e2ec39090a5482bb57f2da51e6609c2b89e33d948 + checksum: 10c0/d2052d193dc04b6fc0588ea57eab8490c408bd725f8c4bdb8aa274dc3b5a6ba45d23b718675c6e69304c4fe6c8e92e45b6d6c9de9a5fef266a50e7a71cf3058a languageName: node linkType: hard @@ -6081,8 +6081,8 @@ __metadata: "@angular/platform-server": "npm:^18.2.0" "@angular/router": "npm:^18.2.0" "@codemirror/legacy-modes": "npm:^6.4.1" - "@commitlint/cli": "npm:^19.4.0" - "@commitlint/config-angular": "npm:^19.3.0" + "@commitlint/cli": "npm:^19.4.1" + "@commitlint/config-angular": "npm:^19.4.1" "@compodoc/compodoc": "npm:^1.1.25" "@fortawesome/angular-fontawesome": "npm:^0.15.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" From d5eecba3ffe5b5128a64c32d2b5c90d58e74402f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:05:00 +0000 Subject: [PATCH 014/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.2.0 to 8.3.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.3.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.2.0 to 8.3.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.3.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 106 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index b2c016a3da..0ae39424f2 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.2.0", - "@typescript-eslint/parser": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^8.3.0", + "@typescript-eslint/parser": "^8.3.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.1", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index ad8e300242..7d477fea25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5121,15 +5121,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.2.0" +"@typescript-eslint/eslint-plugin@npm:^8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.3.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/type-utils": "npm:8.2.0" - "@typescript-eslint/utils": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/type-utils": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5140,25 +5140,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/17243ee1b34d78723fe3e1a308c64490eee49bd83301e3abe8a6f05bce05434d70f56caf75756b8cffa051154dc89cdf485114ede6781fc087f0aaca37a026ec + checksum: 10c0/d5242b16b8602ab5817cf04b35ac7208b6bee530730eeed6eab886667d1f2c5fac1537b3e33c453393090a1c6fcd50f727c07f5168985a00e7d23d1f99576988 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/parser@npm:8.2.0" +"@typescript-eslint/parser@npm:^8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/parser@npm:8.3.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/typescript-estree": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bb4ebc0a40b5e68c5287de17af3acf3045e2ef7886ebee8d1c4a6fd07bd6d55e9fc12bc7b89d07d15a2a4182cbf6380b50ad148d4a37e93d2e54930aa386a3bf + checksum: 10c0/8185e7f1f570cded8719cfb1e8147fcbbc5b8796de628d68024d2929ce6fb02d1f6101b741161229e877be1c30c720701e1e1f7c4313dba33d4bb1190a85f705 languageName: node linkType: hard @@ -5172,28 +5172,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/scope-manager@npm:8.2.0" +"@typescript-eslint/scope-manager@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/scope-manager@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" - checksum: 10c0/8026e11d9cfbb674c62eb38929d08d42c4a373f3463c2591ed6603c496d3d00321f553edce47f1d7504b55fcbe9664ea2bdcaa3131c8c834bde1b1f07497af5d + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" + checksum: 10c0/24d093505d444a07db88f9ab44af04eb738ce523ac3f98b0a641cf3a3ee38d18aff9f72bbf2b2e2d9f45e57c973f31016f1e224cd8ab773f6e7c3477c5a09ad3 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/type-utils@npm:8.2.0" +"@typescript-eslint/type-utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/type-utils@npm:8.3.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.2.0" - "@typescript-eslint/utils": "npm:8.2.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5ff387d39fec3ba47af167ca3e48a200f87e4b97b010170245f495cd3d2e30fd0a5b2a9b27aae2ae929c99f92acabcd07315944dc6f9de963bad1c61ba9ea53c + checksum: 10c0/0e4b42ff2bfcd1727893bb7fe5fcf1aa808b45b5f690c249c68ce7aff68ddfba3d8b1565de2f08972915df23fa7ab114c09f507668e9b0b63faf1e34a5091706 languageName: node linkType: hard @@ -5204,10 +5204,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/types@npm:8.2.0" - checksum: 10c0/2ffba0d0183dfdd2f859fb414013d17d009f5e886664823f973aaa1145243fceb52cfe26aa7c50208af7833b3703b7788337f1aab136c9a4eb36d905493847d1 +"@typescript-eslint/types@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/types@npm:8.3.0" + checksum: 10c0/5cd733af7ffa0cdaa5842f6c5e275b3a5c9b98dc49bf1bb9df1f0b51d346bef2a10a827d886f60492d502218a272e935cef50b4f7c69100217d5b10a2499c7b1 languageName: node linkType: hard @@ -5230,14 +5230,14 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" +"@typescript-eslint/typescript-estree@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" debug: "npm:^4.3.4" - globby: "npm:^11.1.0" + fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" @@ -5245,21 +5245,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/f49aabc78e396908307394812fdebc4015ca407983efc361be106d3e2d58971dec4a1a725362fcfbd637f3d8150baa0735eb5929fd170172b7f2a65e06eeb3d2 + checksum: 10c0/dd73aa1a9d7b5c7e6238e766e6ecdb6d87a9b28a24815258b7bbdc59c49fb525d3fe15d9b7c672e2220678f9d5fabdd9615e4cd5ee97a102fd46023ec0735d50 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/utils@npm:8.2.0" +"@typescript-eslint/utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/utils@npm:8.3.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/typescript-estree": "npm:8.2.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/0f3d5cf804c2863ea9432ef76bfdb1cadbb244cbf8a64ac77c0e559c012a1e98382c4535354e54696c564c0abd9c10dffc78d38972c97035e963798d360d1830 + checksum: 10c0/e4e9e820cf4b4775bb66b2293a2a827897edaba88577b63df317b50752a01d542be521cc4842976fbbd93e08b9e273ce9d20e23768d06de68a83d68cc0f68a93 languageName: node linkType: hard @@ -5287,13 +5287,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" +"@typescript-eslint/visitor-keys@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.3.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/788633bd2905c88ea2cf20d9e317a2bc992a70fcf725cb54bbe55a17c42138a6fe877c89fbda41a733e0e8ad6dce893163bada60509a1b856321f4329a316973 + checksum: 10c0/4c19216636f2cc25026fe20d2832d857f05c262eba78bc4159121c696199e44cac68443565959f9336372f7686a14b452867300cf4deb3c0507b8dbde88ac0e6 languageName: node linkType: hard @@ -6092,8 +6092,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.2.0" - "@typescript-eslint/parser": "npm:^8.2.0" + "@typescript-eslint/eslint-plugin": "npm:^8.3.0" + "@typescript-eslint/parser": "npm:^8.3.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From edfeebe9f5cd92b9e9b6722320df52374add9229 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:47:26 +0000 Subject: [PATCH 015/213] build(deps): bump micromatch from 4.0.7 to 4.0.8 Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7d477fea25..f0d30b5c02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12266,12 +12266,12 @@ __metadata: linkType: hard "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.7": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: braces: "npm:^3.0.3" picomatch: "npm:^2.3.1" - checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772 + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 languageName: node linkType: hard From 00ea16d63a08a2b2950b5200858a58897741484a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:46:12 +0000 Subject: [PATCH 016/213] build(deps): bump github/codeql-action from 3.26.4 to 3.26.5 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.4 to 3.26.5. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/f0f3afee809481da311ca3a6ff1ff51d81dbeb24...2c779ab0d087cd7fe7b826087247c2c81f27bfa6) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cfd3f29944..dcfc96a43f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 + uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 + uses: github/codeql-action/autobuild@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 + uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 36a898e494..69714024c6 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@f0f3afee809481da311ca3a6ff1ff51d81dbeb24 # v3.26.4 + uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 with: sarif_file: results.sarif From 3b81441558865920951c84d5c33d72d445a435a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:58:01 +0000 Subject: [PATCH 017/213] build(deps): bump @ng-bootstrap/ng-bootstrap from 17.0.0 to 17.0.1 Bumps [@ng-bootstrap/ng-bootstrap](https://github.com/ng-bootstrap/ng-bootstrap) from 17.0.0 to 17.0.1. - [Release notes](https://github.com/ng-bootstrap/ng-bootstrap/releases) - [Changelog](https://github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md) - [Commits](https://github.com/ng-bootstrap/ng-bootstrap/compare/17.0.0...17.0.1) --- updated-dependencies: - dependency-name: "@ng-bootstrap/ng-bootstrap" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0ae39424f2..430c8fdbc8 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@kolkov/ngx-gallery": "2.0.1", - "@ng-bootstrap/ng-bootstrap": "^17.0.0", + "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.3", "codemirror": "^6.0.1", diff --git a/yarn.lock b/yarn.lock index f0d30b5c02..f02e742c75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3930,9 +3930,9 @@ __metadata: languageName: node linkType: hard -"@ng-bootstrap/ng-bootstrap@npm:^17.0.0": - version: 17.0.0 - resolution: "@ng-bootstrap/ng-bootstrap@npm:17.0.0" +"@ng-bootstrap/ng-bootstrap@npm:^17.0.1": + version: 17.0.1 + resolution: "@ng-bootstrap/ng-bootstrap@npm:17.0.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: @@ -3942,7 +3942,7 @@ __metadata: "@angular/localize": ^18.0.0 "@popperjs/core": ^2.11.8 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/155588196668ab73c189db82f7afc4386fb1561a7df79198a0e846cbf914361a40fe35b240cfe4130608f3a7923e3d1622dc89c44206d6b84f7541914d0d89e2 + checksum: 10c0/9892a7b99596491f9144669c6ccc28574160ed79e6c7045fea9c922cac0896dc02b6de00cc115ae1830f46233a5fafbca5af985533a02085e409769ff7c210af languageName: node linkType: hard @@ -6087,7 +6087,7 @@ __metadata: "@fortawesome/angular-fontawesome": "npm:^0.15.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" "@kolkov/ngx-gallery": "npm:2.0.1" - "@ng-bootstrap/ng-bootstrap": "npm:^17.0.0" + "@ng-bootstrap/ng-bootstrap": "npm:^17.0.1" "@popperjs/core": "npm:^2.11.8" "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" From 453d6f3164a331b5dd012a5f7685bba55357e258 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:57:57 +0000 Subject: [PATCH 018/213] build(deps-dev): bump commit-and-tag-version from 12.4.1 to 12.4.2 Bumps [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from 12.4.1 to 12.4.2. - [Release notes](https://github.com/absolute-version/commit-and-tag-version/releases) - [Changelog](https://github.com/absolute-version/commit-and-tag-version/blob/master/CHANGELOG.md) - [Commits](https://github.com/absolute-version/commit-and-tag-version/compare/v12.4.1...v12.4.2) --- updated-dependencies: - dependency-name: commit-and-tag-version dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 367 ++++++++++++++++++--------------------------------- 2 files changed, 132 insertions(+), 237 deletions(-) diff --git a/package.json b/package.json index 430c8fdbc8..e36359d8c8 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "@typescript-eslint/eslint-plugin": "^8.3.0", "@typescript-eslint/parser": "^8.3.0", "angular-cli-ghpages": "^2.0.1", - "commit-and-tag-version": "^12.4.1", + "commit-and-tag-version": "^12.4.2", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", diff --git a/yarn.lock b/yarn.lock index f02e742c75..1e57069576 100644 --- a/yarn.lock +++ b/yarn.lock @@ -631,17 +631,6 @@ __metadata: languageName: node linkType: hard -"@asamuzakjp/dom-selector@npm:^2.0.1": - version: 2.0.2 - resolution: "@asamuzakjp/dom-selector@npm:2.0.2" - dependencies: - bidi-js: "npm:^1.0.3" - css-tree: "npm:^2.3.1" - is-potential-custom-element-name: "npm:^1.0.1" - checksum: 10c0/54d9afa3d654a98fcf2e45c53ea330237e513877f130f8c8c17611c603c8d50cb18f937e1b0bcc08f0030443a9c8479dcad9cebff02766025e2df2754459c647 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" @@ -5485,7 +5474,7 @@ __metadata: languageName: node linkType: hard -"JSONStream@npm:^1.0.4, JSONStream@npm:^1.3.5": +"JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" dependencies: @@ -6097,7 +6086,7 @@ __metadata: angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" - commit-and-tag-version: "npm:^12.4.1" + commit-and-tag-version: "npm:^12.4.2" conventional-recommended-bump: "npm:^10.0.0" d3-drag: "npm:^3.0.0" d3-fetch: "npm:^3.0.1" @@ -6243,15 +6232,6 @@ __metadata: languageName: node linkType: hard -"bidi-js@npm:^1.0.3": - version: 1.0.3 - resolution: "bidi-js@npm:1.0.3" - dependencies: - require-from-string: "npm:^2.0.2" - checksum: 10c0/fdddea4aa4120a34285486f2267526cd9298b6e8b773ad25e765d4f104b6d7437ab4ba542e6939e3ac834a7570bcf121ee2cf6d3ae7cd7082c4b5bedc8f271e1 - languageName: node - linkType: hard - "big.js@npm:^5.2.2": version: 5.2.2 resolution: "big.js@npm:5.2.2" @@ -6913,12 +6893,12 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.4.1": - version: 12.4.1 - resolution: "commit-and-tag-version@npm:12.4.1" +"commit-and-tag-version@npm:^12.4.2": + version: 12.4.2 + resolution: "commit-and-tag-version@npm:12.4.2" dependencies: chalk: "npm:^2.4.2" - conventional-changelog: "npm:3.1.25" + conventional-changelog: "npm:4.0.0" conventional-changelog-config-spec: "npm:2.1.0" conventional-changelog-conventionalcommits: "npm:6.1.0" conventional-recommended-bump: "npm:7.0.1" @@ -6928,14 +6908,14 @@ __metadata: figures: "npm:^3.1.0" find-up: "npm:^5.0.0" git-semver-tags: "npm:^5.0.0" - jsdom: "npm:^23.2.0" - semver: "npm:^7.5.4" + jsdom: "npm:^24.1.1" + semver: "npm:^7.6.3" w3c-xmlserializer: "npm:^5.0.0" yaml: "npm:^2.4.1" yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10c0/a7304ead72d809878571da31fff6a88b03a3502a31e89de085ed1cb5a0dc34f8d9e2682997fc79f1debaa056da580089bf14f633cad14ccbb3c0163e7fab04c1 + checksum: 10c0/6ad71b200c41b24e281f09b711aa4142275097f4529303fab33cb5df19665ea12442ed9ec92a025d29a7230fef2d525d9f585666f1e158ffdd29f86659ddeeec languageName: node linkType: hard @@ -7055,13 +7035,12 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:^5.0.12": - version: 5.0.13 - resolution: "conventional-changelog-angular@npm:5.0.13" +"conventional-changelog-angular@npm:^6.0.0": + version: 6.0.0 + resolution: "conventional-changelog-angular@npm:6.0.0" dependencies: compare-func: "npm:^2.0.0" - q: "npm:^1.5.1" - checksum: 10c0/bca711b835fe01d75e3500b738f6525c91a12096218e917e9fd81bf9accf157f904fee16f88c523fd5462fb2a7cb1d060eb79e9bc9a3ccb04491f0c383b43231 + checksum: 10c0/a661ff7b79d4b829ccf8f424ef1bb210e777c1152a1ba5b2ba0a8639529c315755b82a6f84684f1b552c4e8ed6696bfe57317c5f7b868274e9a72b2bf13081ba languageName: node linkType: hard @@ -7074,21 +7053,17 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-atom@npm:^2.0.8": - version: 2.0.8 - resolution: "conventional-changelog-atom@npm:2.0.8" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/1c7e971e8ba58564397c2dfc9a7522f46bad315844ae782db66e27b2d584f22c21a757a429400657c2eef915690e8fd04bddfc3f8e9504d1fadccd8d0758217b +"conventional-changelog-atom@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-atom@npm:3.0.0" + checksum: 10c0/35a1764d3921ad44671ad839707191f8336faa40ccd57b43c42f53df853036bfd015917ca28be18c7769e47bde455740799f4650d098dc2b12f0b3e07a882dcd languageName: node linkType: hard -"conventional-changelog-codemirror@npm:^2.0.8": - version: 2.0.8 - resolution: "conventional-changelog-codemirror@npm:2.0.8" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/467c8c0daec0424acad6b30aa8897ea5e07c327352d3daae50f3a5427584bcb47d5ac5a3167eb7aeb818ebb856e2e81b19cab9a256fe6f21ad96e4a751599325 +"conventional-changelog-codemirror@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-codemirror@npm:3.0.0" + checksum: 10c0/ec7bc77841682bc085b420b263872198aa0ed1e9b6a021f3b25faed408d53eb1df99768fa49e0f99862d978ae7f5923b83f9c17fc0bc8df36051336ab82252d3 languageName: node linkType: hard @@ -7099,7 +7074,7 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:6.1.0": +"conventional-changelog-conventionalcommits@npm:6.1.0, conventional-changelog-conventionalcommits@npm:^6.0.0": version: 6.1.0 resolution: "conventional-changelog-conventionalcommits@npm:6.1.0" dependencies: @@ -7108,89 +7083,59 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:^4.5.0": - version: 4.6.3 - resolution: "conventional-changelog-conventionalcommits@npm:4.6.3" - dependencies: - compare-func: "npm:^2.0.0" - lodash: "npm:^4.17.15" - q: "npm:^1.5.1" - checksum: 10c0/f3b5e6132ec03dad4aa4a2b5ac47ee0e2ae8be6d0fa53a131c722412ce7c02a742c190790f15b5ab4983a31ce90b7066ce1f3f3d5cc4253aa3484ee414259bd2 - languageName: node - linkType: hard - -"conventional-changelog-core@npm:^4.2.1": - version: 4.2.4 - resolution: "conventional-changelog-core@npm:4.2.4" +"conventional-changelog-core@npm:^5.0.0": + version: 5.0.2 + resolution: "conventional-changelog-core@npm:5.0.2" dependencies: add-stream: "npm:^1.0.0" - conventional-changelog-writer: "npm:^5.0.0" - conventional-commits-parser: "npm:^3.2.0" - dateformat: "npm:^3.0.0" - get-pkg-repo: "npm:^4.0.0" - git-raw-commits: "npm:^2.0.8" + conventional-changelog-writer: "npm:^6.0.0" + conventional-commits-parser: "npm:^4.0.0" + dateformat: "npm:^3.0.3" + get-pkg-repo: "npm:^4.2.1" + git-raw-commits: "npm:^3.0.0" git-remote-origin-url: "npm:^2.0.0" - git-semver-tags: "npm:^4.1.1" - lodash: "npm:^4.17.15" - normalize-package-data: "npm:^3.0.0" - q: "npm:^1.5.1" + git-semver-tags: "npm:^5.0.0" + normalize-package-data: "npm:^3.0.3" read-pkg: "npm:^3.0.0" read-pkg-up: "npm:^3.0.0" - through2: "npm:^4.0.0" - checksum: 10c0/4c9f30350250298d9bbb56988b3093ec7de593499a796609c5877115533362815434ff6df3493649e20b1b40399fef3d42032f39e8279bb8df192b89e6e32e69 + checksum: 10c0/2356fdeb793fd089b2540d5f3ece6937ffe49ff0588ffdc13ceb94b6b708227ce9a8f54555a08ff762573dcd428c201e86dade90b7af85df71d2abe1256b7f73 languageName: node linkType: hard -"conventional-changelog-ember@npm:^2.0.9": - version: 2.0.9 - resolution: "conventional-changelog-ember@npm:2.0.9" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/bc37a1ec320b56f9831ec6a156d77444743944cdc06ff23b1175a3a23063b907b31fad402566a281b722da1bc9fd687db993cc8dbe9a9baf6e38af24541ccfbc +"conventional-changelog-ember@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-ember@npm:3.0.0" + checksum: 10c0/4927f7f04685a93d85c384a3d30cdaa1a0fd2459b36fbc76b56cdcf55936b68c4f64399dcb226dec858722c4644504d4d67afcf541caf21d5e49ae3263ca8199 languageName: node linkType: hard -"conventional-changelog-eslint@npm:^3.0.9": - version: 3.0.9 - resolution: "conventional-changelog-eslint@npm:3.0.9" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/340b3be510e6713e37f641f0efcb2d8d2bc0b2c1bc38e7c1e2107f69432606290661d43cbc5971b418dd87cd92c2acb86af857264643a607cd8f29887e28683d +"conventional-changelog-eslint@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-changelog-eslint@npm:4.0.0" + checksum: 10c0/16713ffc85477a2259bfa6d17112cc18f3c42f09fc957268548fcb42f5aeeb63addd21b8519c7e1c665ac35a20c53b095d4004a31613b9ce7db891a9a7ba9f93 languageName: node linkType: hard -"conventional-changelog-express@npm:^2.0.6": - version: 2.0.6 - resolution: "conventional-changelog-express@npm:2.0.6" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/11a02868847d7d1c585bd38cdd7e39636aefde3ef83138044d859d31c23afc1a82a3cab26c8b8aaae2f536b457b011232325c3ed3f2d6a9ec564522dae265ae2 +"conventional-changelog-express@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-express@npm:3.0.0" + checksum: 10c0/5b5c8dd1ff9bd42601132ab60b85384a9a2ecc446c4b3c3450161ea7102eb08dd5ce0f1fe1d82516fc60f455eb987c3b0ee042603219636ee62a5d09c8311237 languageName: node linkType: hard -"conventional-changelog-jquery@npm:^3.0.11": - version: 3.0.11 - resolution: "conventional-changelog-jquery@npm:3.0.11" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/5662ff1bee271f6f7f2ca893b84942ec01e4a48299701b3323383dde3e461301c65f248dbcfa8219742258e96b1547ba5f21e66f4785fbc39cbe3074d46d71a4 +"conventional-changelog-jquery@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-changelog-jquery@npm:4.0.0" + checksum: 10c0/57766188846ab651d479198c0c3f05228d2daa2292c2eb6bd053f8bdf048e1626db64dcfd11a1afa289e87a9a6bb16b2acf65e5873d23a2705dd2590f2d3e91e languageName: node linkType: hard -"conventional-changelog-jshint@npm:^2.0.9": - version: 2.0.9 - resolution: "conventional-changelog-jshint@npm:2.0.9" +"conventional-changelog-jshint@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-jshint@npm:3.0.0" dependencies: compare-func: "npm:^2.0.0" - q: "npm:^1.5.1" - checksum: 10c0/3048c3a02b173836f5c2f9c326bac7e80386e7591b9734d4f3a91e7dfe87329fde03414c62fdebe718a82f29e61b1122343186180e7173a47513487b3cfb463d - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^2.3.4": - version: 2.3.4 - resolution: "conventional-changelog-preset-loader@npm:2.3.4" - checksum: 10c0/a978bcd5fc2eb12b56bc03ec59705af32e521fd27b98a209a26767c2078d423e7d8e30c09d45547371631790f0387453434c73c4541521a7473dce14d5360c7d + checksum: 10c0/c53c39abf2a5c6cfc769a31654eee589e0cf5f957c7b9c8fb546bc9f63c90dfb7b95f989a583573e96e4ab460d02c2c51311b8c045c08ef8d0ac866f70cb0131 languageName: node linkType: hard @@ -7208,51 +7153,39 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-writer@npm:^5.0.0": - version: 5.0.1 - resolution: "conventional-changelog-writer@npm:5.0.1" +"conventional-changelog-writer@npm:^6.0.0": + version: 6.0.1 + resolution: "conventional-changelog-writer@npm:6.0.1" dependencies: - conventional-commits-filter: "npm:^2.0.7" - dateformat: "npm:^3.0.0" + conventional-commits-filter: "npm:^3.0.0" + dateformat: "npm:^3.0.3" handlebars: "npm:^4.7.7" json-stringify-safe: "npm:^5.0.1" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - semver: "npm:^6.0.0" - split: "npm:^1.0.0" - through2: "npm:^4.0.0" + meow: "npm:^8.1.2" + semver: "npm:^7.0.0" + split: "npm:^1.0.1" bin: conventional-changelog-writer: cli.js - checksum: 10c0/268b56a3e4db07ad24da7134788c889ecd024cf2e7c0bfe8ca76f83e5db79f057538c45500b052a77b7933c4d0f47e2e807c6e756cbd5ad9db365744c9ce0e7f + checksum: 10c0/50790b0d92e06c5ab1c02cc4eb2ecd74575244d31cfacea1885d7c8afeae1bc7bbc169140fe062f2438b9952400762240b796e59521c0246278859296b323338 languageName: node linkType: hard -"conventional-changelog@npm:3.1.25": - version: 3.1.25 - resolution: "conventional-changelog@npm:3.1.25" - dependencies: - conventional-changelog-angular: "npm:^5.0.12" - conventional-changelog-atom: "npm:^2.0.8" - conventional-changelog-codemirror: "npm:^2.0.8" - conventional-changelog-conventionalcommits: "npm:^4.5.0" - conventional-changelog-core: "npm:^4.2.1" - conventional-changelog-ember: "npm:^2.0.9" - conventional-changelog-eslint: "npm:^3.0.9" - conventional-changelog-express: "npm:^2.0.6" - conventional-changelog-jquery: "npm:^3.0.11" - conventional-changelog-jshint: "npm:^2.0.9" - conventional-changelog-preset-loader: "npm:^2.3.4" - checksum: 10c0/8065d5d742a400ab6d73ea5a42af746c3ec51e081e5ea542b00ebb220f904828002a04ae5841d5588a242773f8112f28bc353bf700fb0b2bda182fac6505c7a7 - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^2.0.7": - version: 2.0.7 - resolution: "conventional-commits-filter@npm:2.0.7" - dependencies: - lodash.ismatch: "npm:^4.4.0" - modify-values: "npm:^1.0.0" - checksum: 10c0/df06fb29285b473614f5094e983d26fcc14cd0f64b2cbb2f65493fc8bd47c077c2310791d26f4b2b719e9585aaade95370e73230bff6647163164a18b9dfaa07 +"conventional-changelog@npm:4.0.0": + version: 4.0.0 + resolution: "conventional-changelog@npm:4.0.0" + dependencies: + conventional-changelog-angular: "npm:^6.0.0" + conventional-changelog-atom: "npm:^3.0.0" + conventional-changelog-codemirror: "npm:^3.0.0" + conventional-changelog-conventionalcommits: "npm:^6.0.0" + conventional-changelog-core: "npm:^5.0.0" + conventional-changelog-ember: "npm:^3.0.0" + conventional-changelog-eslint: "npm:^4.0.0" + conventional-changelog-express: "npm:^3.0.0" + conventional-changelog-jquery: "npm:^4.0.0" + conventional-changelog-jshint: "npm:^3.0.0" + conventional-changelog-preset-loader: "npm:^3.0.0" + checksum: 10c0/715ea8ef45c250b8d279efd8e01df88e8829f12c6ef36a5c6288f674bffab959b00b88e449ecba5ee4f03844754c1b2e89b2500ed2e078ad9b3c924cdd1b686e languageName: node linkType: hard @@ -7273,22 +7206,6 @@ __metadata: languageName: node linkType: hard -"conventional-commits-parser@npm:^3.2.0": - version: 3.2.4 - resolution: "conventional-commits-parser@npm:3.2.4" - dependencies: - JSONStream: "npm:^1.0.4" - is-text-path: "npm:^1.0.1" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - conventional-commits-parser: cli.js - checksum: 10c0/122d7d7f991a04c8e3f703c0e4e9a25b2ecb20906f497e4486cb5c2acd9c68f6d9af745f7e79cb407538f50e840b33399274ac427b20971b98b335d1b66d3d17 - languageName: node - linkType: hard - "conventional-commits-parser@npm:^4.0.0": version: 4.0.0 resolution: "conventional-commits-parser@npm:4.0.0" @@ -7562,16 +7479,6 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: "npm:2.0.30" - source-map-js: "npm:^1.0.1" - checksum: 10c0/6f8c1a11d5e9b14bf02d10717fc0351b66ba12594166f65abfbd8eb8b5b490dd367f5c7721db241a3c792d935fc6751fbc09f7e1598d421477ad9fadc30f4f24 - languageName: node - linkType: hard - "css-what@npm:^6.1.0": version: 6.1.0 resolution: "css-what@npm:6.1.0" @@ -7805,7 +7712,7 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:^3.0.0": +"dateformat@npm:^3.0.3": version: 3.0.3 resolution: "dateformat@npm:3.0.3" checksum: 10c0/2effb8bef52ff912f87a05e4adbeacff46353e91313ad1ea9ed31412db26849f5a0fcc7e3ce36dbfb84fc6c881a986d5694f84838ad0da7000d5150693e78678 @@ -9774,7 +9681,7 @@ __metadata: languageName: node linkType: hard -"get-pkg-repo@npm:^4.0.0": +"get-pkg-repo@npm:^4.2.1": version: 4.2.1 resolution: "get-pkg-repo@npm:4.2.1" dependencies: @@ -9840,21 +9747,6 @@ __metadata: languageName: node linkType: hard -"git-raw-commits@npm:^2.0.8": - version: 2.0.11 - resolution: "git-raw-commits@npm:2.0.11" - dependencies: - dargs: "npm:^7.0.0" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - git-raw-commits: cli.js - checksum: 10c0/c9cee7ce11a6703098f028d7e47986d5d3e4147d66640086734d6ee2472296b8711f91b40ad458e95acac1bc33cf2898059f1dc890f91220ff89c5fcc609ab64 - languageName: node - linkType: hard - "git-raw-commits@npm:^3.0.0": version: 3.0.0 resolution: "git-raw-commits@npm:3.0.0" @@ -9891,18 +9783,6 @@ __metadata: languageName: node linkType: hard -"git-semver-tags@npm:^4.1.1": - version: 4.1.1 - resolution: "git-semver-tags@npm:4.1.1" - dependencies: - meow: "npm:^8.0.0" - semver: "npm:^6.0.0" - bin: - git-semver-tags: cli.js - checksum: 10c0/cd8c91c666901f8dd6381f4cef2aec32aa3f39e517bd8d8491f9133adf956dde9e0487d510fa0f12042fa474f21a8a88b4aa56db8b473979c7491109c57b7016 - languageName: node - linkType: hard - "git-semver-tags@npm:^5.0.0": version: 5.0.1 resolution: "git-semver-tags@npm:5.0.1" @@ -10364,7 +10244,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -10417,7 +10297,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:7.0.5": +"https-proxy-agent@npm:7.0.5, https-proxy-agent@npm:^7.0.5": version: 7.0.5 resolution: "https-proxy-agent@npm:7.0.5" dependencies: @@ -10437,7 +10317,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": +"https-proxy-agent@npm:^7.0.1": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" dependencies: @@ -11306,37 +11186,37 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^23.2.0": - version: 23.2.0 - resolution: "jsdom@npm:23.2.0" +"jsdom@npm:^24.1.1": + version: 24.1.3 + resolution: "jsdom@npm:24.1.3" dependencies: - "@asamuzakjp/dom-selector": "npm:^2.0.1" cssstyle: "npm:^4.0.1" data-urls: "npm:^5.0.0" decimal.js: "npm:^10.4.3" form-data: "npm:^4.0.0" html-encoding-sniffer: "npm:^4.0.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.2" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.5" is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.12" parse5: "npm:^7.1.2" - rrweb-cssom: "npm:^0.6.0" + rrweb-cssom: "npm:^0.7.1" saxes: "npm:^6.0.0" symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^4.1.3" + tough-cookie: "npm:^4.1.4" w3c-xmlserializer: "npm:^5.0.0" webidl-conversions: "npm:^7.0.0" whatwg-encoding: "npm:^3.1.1" whatwg-mimetype: "npm:^4.0.0" whatwg-url: "npm:^14.0.0" - ws: "npm:^8.16.0" + ws: "npm:^8.18.0" xml-name-validator: "npm:^5.0.0" peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true - checksum: 10c0/b062af50f7be59d914ba75236b7817c848ef3cd007aea1d6b8020a41eb263b7d5bd2652298106e9756b56892f773d990598778d02adab7d0d0d8e58726fc41d3 + checksum: 10c0/e48b342afacd7418a23dac204a62deea729c50f4d072a7c04c09fd32355fdb4335f8779fa79fd0277a2dbeb2d356250a950955719d00047324b251233b11277f languageName: node linkType: hard @@ -11962,7 +11842,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21": +"lodash@npm:^4.17.14, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -12178,13 +12058,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 - languageName: node - linkType: hard - "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -12218,7 +12091,7 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0, meow@npm:^8.1.2": +"meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" dependencies: @@ -12562,7 +12435,7 @@ __metadata: languageName: node linkType: hard -"modify-values@npm:^1.0.0, modify-values@npm:^1.0.1": +"modify-values@npm:^1.0.1": version: 1.0.1 resolution: "modify-values@npm:1.0.1" checksum: 10c0/6acb1b82aaf7a02f9f7b554b20cbfc159f223a79c66b0a257511c5933d50b85e12ea1220b0a90a2af6f80bc29ff784f929a52a51881867a93ae6a12ce87a729a @@ -12950,7 +12823,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": +"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.3": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -13125,6 +12998,13 @@ __metadata: languageName: node linkType: hard +"nwsapi@npm:^2.2.12": + version: 2.2.12 + resolution: "nwsapi@npm:2.2.12" + checksum: 10c0/95e9623d63df111405503df8c5d800e26f71675d319e2c9c70cddfa31e5ace1d3f8b6d98d354544fc156a1506d920ec291e303fab761e4f99296868e199a466e + languageName: node + linkType: hard + "object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:latest": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -14135,13 +14015,6 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4 - languageName: node - linkType: hard - "qjobs@npm:^1.2.0": version: 1.2.0 resolution: "qjobs@npm:1.2.0" @@ -14734,6 +14607,13 @@ __metadata: languageName: node linkType: hard +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 10c0/127b8ca6c8aac45e2755abbae6138d4a813b1bedc2caabf79466ae83ab3cfc84b5bfab513b7033f0aa4561c7753edf787d0dd01163ceacdee2e8eb1b6bf7237e + languageName: node + linkType: hard + "run-applescript@npm:^7.0.0": version: 7.0.0 resolution: "run-applescript@npm:7.0.0" @@ -15325,7 +15205,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": version: 1.2.0 resolution: "source-map-js@npm:1.2.0" checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 @@ -15439,7 +15319,7 @@ __metadata: languageName: node linkType: hard -"split2@npm:^3.0.0, split2@npm:^3.2.2": +"split2@npm:^3.2.2": version: 3.2.2 resolution: "split2@npm:3.2.2" dependencies: @@ -15455,7 +15335,7 @@ __metadata: languageName: node linkType: hard -"split@npm:^1.0.0, split@npm:^1.0.1": +"split@npm:^1.0.1": version: 1.0.1 resolution: "split@npm:1.0.1" dependencies: @@ -15968,7 +15848,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^4.0.0, through2@npm:^4.0.2": +"through2@npm:^4.0.2": version: 4.0.2 resolution: "through2@npm:4.0.2" dependencies: @@ -16044,7 +15924,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.3": +"tough-cookie@npm:^4.1.4": version: 4.1.4 resolution: "tough-cookie@npm:4.1.4" dependencies: @@ -17179,6 +17059,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + "ws@npm:~8.11.0": version: 8.11.0 resolution: "ws@npm:8.11.0" From b3d7069fd5039ce48d7b77096fb2bae1e8c20e51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:14:55 +0000 Subject: [PATCH 019/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.0` | `18.2.1` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.0` | `18.2.1` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.0` | `18.2.1` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.0` | `18.2.1` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.0` | `18.2.1` | | [@angular/localize](https://github.com/angular/angular) | `18.2.0` | `18.2.1` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.0` | `18.2.1` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.0` | `18.2.1` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.0` | `18.2.1` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.0` | `18.2.1` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.0` | `18.2.1` | Updates `@angular/animations` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/animations) Updates `@angular/common` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/common) Updates `@angular/compiler` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/compiler) Updates `@angular/core` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/core) Updates `@angular/forms` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/forms) Updates `@angular/localize` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.0...18.2.1) Updates `@angular/platform-browser` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/platform-server) Updates `@angular/router` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/router) Updates `@angular/compiler-cli` from 18.2.0 to 18.2.1 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.1/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index e36359d8c8..a350a4fcf6 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.0", - "@angular/common": "^18.2.0", - "@angular/compiler": "^18.2.0", - "@angular/core": "^18.2.0", - "@angular/forms": "^18.2.0", - "@angular/localize": "^18.2.0", - "@angular/platform-browser": "^18.2.0", - "@angular/platform-browser-dynamic": "^18.2.0", - "@angular/platform-server": "^18.2.0", - "@angular/router": "^18.2.0", + "@angular/animations": "^18.2.1", + "@angular/common": "^18.2.1", + "@angular/compiler": "^18.2.1", + "@angular/core": "^18.2.1", + "@angular/forms": "^18.2.1", + "@angular/localize": "^18.2.1", + "@angular/platform-browser": "^18.2.1", + "@angular/platform-browser-dynamic": "^18.2.1", + "@angular/platform-server": "^18.2.1", + "@angular/router": "^18.2.1", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.1", - "@angular/compiler-cli": "^18.2.0", + "@angular/compiler-cli": "^18.2.1", "@commitlint/cli": "^19.4.1", "@commitlint/config-angular": "^19.4.1", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 1e57069576..bb610582e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/animations@npm:18.2.0" +"@angular/animations@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/animations@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.0 - checksum: 10c0/8ad61102c4862a8e78a6d373f4f8c944a75268767f09050a086cd0e05f06a5e8adb99388b7fbc44923f4cc28bd13445ebb3098f60c3a3addfc53d4a70102c99a + "@angular/core": 18.2.1 + checksum: 10c0/2ccc689134cb8fc34f05ec6c4805b738b090650160942088a998077702beb666005f84096b54672fc7d8a71bc1b93cbc2e49a7e9b8467906e662ef5858fa4be9 languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/common@npm:18.2.0" +"@angular/common@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/common@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.0 + "@angular/core": 18.2.1 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/c6ded4739979d5e62d45eaa504031c163bee1f2ef4f1c7d4382494e69379da0855c43ddbdd74450247239468d26f9306b61a585a9401b04ce97fd5e4933af4ea + checksum: 10c0/6a8e284c7851b87da3c2c1aeeb5f59148abe02a17aa040838b0d734976952b3f4aa72d1c348d09e153cca0c42351d2bfd2fb923a1f6f52939c3e09dd7ee0241a languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/compiler-cli@npm:18.2.0" +"@angular/compiler-cli@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/compiler-cli@npm:18.2.1" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.0 + "@angular/compiler": 18.2.1 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/d9922a5a4b5ac5b8d82bac0bb766d6d1645f0a7f3ac2c4bb863efc4fcc0d36bf9442ba842a0f594cf3d32103c221db3340195646f8341df8dcbed7a08eaebaac + checksum: 10c0/ab50e3b90851f99ecbb6101513022eb0da0a4793f3cf8d8d0bd16e773c628c3e6ac5f659bc1bee6550d91ea9a2d50a5777d9f0c5b37e1b3073e818343deb6d4e languageName: node linkType: hard -"@angular/compiler@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/compiler@npm:18.2.0" +"@angular/compiler@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/compiler@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.0 + "@angular/core": 18.2.1 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/db1510d33a6caaef27aa7eb94423be9c6e652707cea37166a774f90d2ff1e36ef9d60b38076abaf829666c1256aa0c3c8daa8e662fd0dd112c7c8135b003ad0c + checksum: 10c0/bcc9f8a846d0b702d66f838cada5fe0b640e64627dc05f0dfae37c3a22e404aa396edb83056b7f85ff644c9832b4523afe0eb7649d2cf3824fc5cbb6e443f35d languageName: node linkType: hard -"@angular/core@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/core@npm:18.2.0" +"@angular/core@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/core@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/a66b9c474bf3b32dc3e678353bd79c2c9c0a8e9531500828d51e3c4a1998bcfaa9834ad5910646dfbd5d7fc9d8f37b55f024f6d5f08407a405c94f0c44f50683 + checksum: 10c0/3f07ad03fea9d613c00431e998bb6f272779817e86140fe6dd6a551bd07e8b76dfbf3c06d99ebbddf0b6bd39f1dfd97ff91ca948543338dd52d052b7923f41ad languageName: node linkType: hard -"@angular/forms@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/forms@npm:18.2.0" +"@angular/forms@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/forms@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.0 - "@angular/core": 18.2.0 - "@angular/platform-browser": 18.2.0 + "@angular/common": 18.2.1 + "@angular/core": 18.2.1 + "@angular/platform-browser": 18.2.1 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/5a71b10a7d54b102cf69a79c60e2eb1dc515d11fa8c827c56e3738ee3fbe256f5ca63b46314bb0a3adba7675465919546142785a64dc9f931d7600f295e97e96 + checksum: 10c0/ea3e424f12abc391581e2347b3453fc9f6f8267e6ce7ab3f1653b231a4e754a65741aa2292f6ee7508acf012920842b339a3fbd4cb8b168ad842569e345ceb8d languageName: node linkType: hard -"@angular/localize@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/localize@npm:18.2.0" +"@angular/localize@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/localize@npm:18.2.1" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.0 - "@angular/compiler-cli": 18.2.0 + "@angular/compiler": 18.2.1 + "@angular/compiler-cli": 18.2.1 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/c278f43533656fd1de9fa78e4ad563048ee8814e4562f356f1ae39f6eb0f3186aa854592d44c570e02803a264e5ceca08cbaf1e49446c2448f1263f840e07775 + checksum: 10c0/b1170c114fe4e3d4676ddb2db35ea117d60a1bbd221969f3cd75035b647b69e3bbf518a267052dbbc8e25a93ea1f4b22a57aa592b1512efc54916e179908a346 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/platform-browser-dynamic@npm:18.2.0" +"@angular/platform-browser-dynamic@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/platform-browser-dynamic@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.0 - "@angular/compiler": 18.2.0 - "@angular/core": 18.2.0 - "@angular/platform-browser": 18.2.0 - checksum: 10c0/874f2c97e948f05b14c20b2da22e4633f277ca3b41c6cfb8b388b4428e6302d8c79bbbdb7262d539c177453824cff1a046f39d0fb754a0ae502d36595b39c44c + "@angular/common": 18.2.1 + "@angular/compiler": 18.2.1 + "@angular/core": 18.2.1 + "@angular/platform-browser": 18.2.1 + checksum: 10c0/511b0a2981fddc9d45d8fd09ec005a79f641ce8a5fe25488ebba979a20330d654e8aeab47c6d4eb3300b19e213c9451664e439db52b688434ea6f570e2902119 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/platform-browser@npm:18.2.0" +"@angular/platform-browser@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/platform-browser@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.0 - "@angular/common": 18.2.0 - "@angular/core": 18.2.0 + "@angular/animations": 18.2.1 + "@angular/common": 18.2.1 + "@angular/core": 18.2.1 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/270bed2ec0fa1df62a4172762debee8f25e6de4eddb0610db82bfdb44a6c61b6cd33c479f740a43550a7eccbacebe961cd5ecdbed91afe119f3b5cfbfc455acf + checksum: 10c0/c7feb1ef7f238663100568facba864e7557fbec88991ac07ec7f68215149d831fe0164fa34969b633279cfbce20cfc7678f90b2f22a12afa6db228d1a26b228c languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/platform-server@npm:18.2.0" +"@angular/platform-server@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/platform-server@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.0 - "@angular/common": 18.2.0 - "@angular/compiler": 18.2.0 - "@angular/core": 18.2.0 - "@angular/platform-browser": 18.2.0 - checksum: 10c0/e03481b765bb429e75ed0e3305183647204519f5a01117460af25bc489880b90a60e438f76990a1de5cf1035f8de4f09331023168d6bb4c3eb38d254bd157398 + "@angular/animations": 18.2.1 + "@angular/common": 18.2.1 + "@angular/compiler": 18.2.1 + "@angular/core": 18.2.1 + "@angular/platform-browser": 18.2.1 + checksum: 10c0/ea3ce3bff05f9193f2d8b7168c561ad4ddcc3396870e9d5e172200fbe9c1ea6b653cc7faef447184dedbebbc7571ab8995548a39643c8e188a451f8906055d85 languageName: node linkType: hard -"@angular/router@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular/router@npm:18.2.0" +"@angular/router@npm:^18.2.1": + version: 18.2.1 + resolution: "@angular/router@npm:18.2.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.0 - "@angular/core": 18.2.0 - "@angular/platform-browser": 18.2.0 + "@angular/common": 18.2.1 + "@angular/core": 18.2.1 + "@angular/platform-browser": 18.2.1 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/c15189eb083c1ee358b9715d269d33d6b160157d02c54c3eec3e8afade389e12f700af8a3103b6cb91d9a53f11fae73ed9a9620fc95239b2399a10b90b4494ba + checksum: 10c0/6bbf49167f161fd5e42274e295692426b24bbbbd6cc09ca05cd3e3619e36f8040aa8652dbf1417a08398900fbef93773e4195ddbdf623eb07206f8d7abb79f4e languageName: node linkType: hard @@ -6057,18 +6057,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" - "@angular/animations": "npm:^18.2.0" + "@angular/animations": "npm:^18.2.1" "@angular/cli": "npm:^18.2.1" - "@angular/common": "npm:^18.2.0" - "@angular/compiler": "npm:^18.2.0" - "@angular/compiler-cli": "npm:^18.2.0" - "@angular/core": "npm:^18.2.0" - "@angular/forms": "npm:^18.2.0" - "@angular/localize": "npm:^18.2.0" - "@angular/platform-browser": "npm:^18.2.0" - "@angular/platform-browser-dynamic": "npm:^18.2.0" - "@angular/platform-server": "npm:^18.2.0" - "@angular/router": "npm:^18.2.0" + "@angular/common": "npm:^18.2.1" + "@angular/compiler": "npm:^18.2.1" + "@angular/compiler-cli": "npm:^18.2.1" + "@angular/core": "npm:^18.2.1" + "@angular/forms": "npm:^18.2.1" + "@angular/localize": "npm:^18.2.1" + "@angular/platform-browser": "npm:^18.2.1" + "@angular/platform-browser-dynamic": "npm:^18.2.1" + "@angular/platform-server": "npm:^18.2.1" + "@angular/router": "npm:^18.2.1" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.4.1" "@commitlint/config-angular": "npm:^19.4.1" From e91ca311105bc11ca148da12ff351f94fd1541ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:20:20 +0000 Subject: [PATCH 020/213] build(deps): bump n3 from 1.20.4 to 1.21.0 Bumps [n3](https://github.com/rdfjs/N3.js) from 1.20.4 to 1.21.0. - [Release notes](https://github.com/rdfjs/N3.js/releases) - [Commits](https://github.com/rdfjs/N3.js/compare/v1.20.4...v1.21.0) --- updated-dependencies: - dependency-name: n3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a350a4fcf6..db60a8bc53 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "d3-zoom": "^3.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.5.1", - "n3": "^1.20.4", + "n3": "^1.21.0", "ngx-json-viewer": "^3.2.1", "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", diff --git a/yarn.lock b/yarn.lock index bb610582e7..19ba977952 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6111,7 +6111,7 @@ __metadata: karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" lint-staged: "npm:^15.2.9" - n3: "npm:^1.20.4" + n3: "npm:^1.21.0" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" @@ -12559,14 +12559,14 @@ __metadata: languageName: node linkType: hard -"n3@npm:^1.20.4": - version: 1.20.4 - resolution: "n3@npm:1.20.4" +"n3@npm:^1.21.0": + version: 1.21.0 + resolution: "n3@npm:1.21.0" dependencies: buffer: "npm:^6.0.3" queue-microtask: "npm:^1.1.2" readable-stream: "npm:^4.0.0" - checksum: 10c0/6af387e29df5a68f4f2f117ed3e87acf7241ade2e852b09b40dab66447fa95b0fe8e020164018aa9e3ed97d904cc991b43b31770556bedeeea748a9b143f2d86 + checksum: 10c0/2cfacd1d502e8dd9f68eac5203dc842ad11aeb49e8205e7aec7d294cc41b044f2dfe843e138ed6ae7b40cd8758991a6173c7976fcabb92e02f643236dbda3f74 languageName: node linkType: hard From f91b3b6b28c3ad8fde935125ce2af9404bb1b0e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 14:31:57 +0000 Subject: [PATCH 021/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.1...18.2.2) Updates `@angular/cli` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.1...18.2.2) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 151 ++++++++++++++++++++++----------------------------- 2 files changed, 67 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index db60a8bc53..5f448005d3 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.1", + "@angular-devkit/build-angular": "^18.2.2", "@angular-eslint/builder": "^18.3.0", "@angular-eslint/eslint-plugin": "^18.3.0", "@angular-eslint/eslint-plugin-template": "^18.3.0", "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", - "@angular/cli": "^18.2.1", + "@angular/cli": "^18.2.2", "@angular/compiler-cli": "^18.2.1", "@commitlint/cli": "^19.4.1", "@commitlint/config-angular": "^19.4.1", diff --git a/yarn.lock b/yarn.lock index 19ba977952..3e34f32e5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.1": - version: 0.1802.1 - resolution: "@angular-devkit/architect@npm:0.1802.1" +"@angular-devkit/architect@npm:0.1802.2": + version: 0.1802.2 + resolution: "@angular-devkit/architect@npm:0.1802.2" dependencies: - "@angular-devkit/core": "npm:18.2.1" + "@angular-devkit/core": "npm:18.2.2" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/de187293ea5a5345627d4a161ae5483798e9fe83ab9d1ae511cf85aed767004d24a25fdfcd78b534880afd80c89a161ee897b922ec83e4cd6a92de9047d2bb8f + checksum: 10c0/2e41e6109fc13b9600f5fcca8d7b326373f28e4600cd52d50468d3e98e0d82b6d84b9fb9f28f785e6527e4ca9931044d759e551d33debfa0067a5466439930a1 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular-devkit/build-angular@npm:18.2.1" +"@angular-devkit/build-angular@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular-devkit/build-angular@npm:18.2.2" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.1" - "@angular-devkit/build-webpack": "npm:0.1802.1" - "@angular-devkit/core": "npm:18.2.1" - "@angular/build": "npm:18.2.1" + "@angular-devkit/architect": "npm:0.1802.2" + "@angular-devkit/build-webpack": "npm:0.1802.2" + "@angular-devkit/core": "npm:18.2.2" + "@angular/build": "npm:18.2.2" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.1" + "@ngtools/webpack": "npm:18.2.2" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -109,7 +109,7 @@ __metadata: tslib: "npm:2.6.3" vite: "npm:5.4.0" watchpack: "npm:2.4.1" - webpack: "npm:5.93.0" + webpack: "npm:5.94.0" webpack-dev-middleware: "npm:7.3.0" webpack-dev-server: "npm:5.0.4" webpack-merge: "npm:6.0.1" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/f2ba041722798a0e7043877334bc07347faf48addc3fa3adb0e1a6e4c5eda12ac6ea4f91284b7e44e14fc4c0c6ae7d70860f650d690a2caf521ca04e5efe870c + checksum: 10c0/18a809514acf4e0871d27a83623433a3547e247f8606f6a4fd96f4c808fff4d7154d1bd5b4fe37720c37402eb9e3dc0e60aeccf8022fc09bdc49179d27773c79 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.1": - version: 0.1802.1 - resolution: "@angular-devkit/build-webpack@npm:0.1802.1" +"@angular-devkit/build-webpack@npm:0.1802.2": + version: 0.1802.2 + resolution: "@angular-devkit/build-webpack@npm:0.1802.2" dependencies: - "@angular-devkit/architect": "npm:0.1802.1" + "@angular-devkit/architect": "npm:0.1802.2" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/133500ebbac88b5953cc7ba58cd6ac183e762059a3930f2df07948478a9122cb31679c3d0f990163c0a4b3e382a23b953365924d73b0758f3060822e9e4678ac + checksum: 10c0/f951c1aae644a100d5567b1485f635f2eedd185df71ca5943cbd2840666da32163787d3d5e22300cf656ae9c714dc2c51b4ddbcffc62aef2c92c5eef92b8c0ed languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.1": - version: 18.2.1 - resolution: "@angular-devkit/core@npm:18.2.1" +"@angular-devkit/core@npm:18.2.2": + version: 18.2.2 + resolution: "@angular-devkit/core@npm:18.2.2" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/591d60e3856819e3842237e0b60f3ace713078881d90e9c3da09f599e1f8ae38d18c69dae3082b0fc790609769015abef83eb42cc9eb831370e6b8f0e31ff317 + checksum: 10c0/97760a5c096e7da4601e6301678274c63a04570b22d851211543fdb063005a2d858befc8ab5048e9f2ae8dcc369296c5eeec535f40cb9122032e797d20cccd44 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.1": - version: 18.2.1 - resolution: "@angular-devkit/schematics@npm:18.2.1" +"@angular-devkit/schematics@npm:18.2.2": + version: 18.2.2 + resolution: "@angular-devkit/schematics@npm:18.2.2" dependencies: - "@angular-devkit/core": "npm:18.2.1" + "@angular-devkit/core": "npm:18.2.2" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/6153f6f8de1976e00e84e7cb90f1d56abf606715ec86e339860e1fa5170459c9039278b3c91536885dfd3452dff819acc24fea36e9ad8446e8e94a5dd4791b62 + checksum: 10c0/dcebbca36e5217f4478f8ebe0596d7751018e4b04c9b78c9f9edc513da520cc12f05b56d64d2e43c80050e2dee719ef9a04aed172a16da4674aaa82f57cc06fc languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.1": - version: 18.2.1 - resolution: "@angular/build@npm:18.2.1" +"@angular/build@npm:18.2.2": + version: 18.2.2 + resolution: "@angular/build@npm:18.2.2" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.1" + "@angular-devkit/architect": "npm:0.1802.2" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/3a1e71f4835fc83d069cd7c9603efa35dbb3dd53d5d307208b33cddfbc229f45ab017b5fa05de3ba34ce9cabfc68a34dbbdfb3f0b2d7b45f55b2b7e765897724 + checksum: 10c0/e85ab98cd2b46d7ad41e23b40caafcbf9030dded6e74b1d1508478aaceb3f6414d5b8ae855b7cefa06c768fd4d1fccbb40be827dc71992035f1ab6d156fce116 languageName: node linkType: hard -"@angular/cli@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/cli@npm:18.2.1" +"@angular/cli@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/cli@npm:18.2.2" dependencies: - "@angular-devkit/architect": "npm:0.1802.1" - "@angular-devkit/core": "npm:18.2.1" - "@angular-devkit/schematics": "npm:18.2.1" + "@angular-devkit/architect": "npm:0.1802.2" + "@angular-devkit/core": "npm:18.2.2" + "@angular-devkit/schematics": "npm:18.2.2" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.1" + "@schematics/angular": "npm:18.2.2" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/e898782014b1286b4c5aa64b29f1ea7a59b500ee2a0a1fdfc1085fff06dcef535627d7e36b7ca40c8fd62f7d2056b70cdfeaf08751c742f95db9115f2132e545 + checksum: 10c0/df1c4f8a3e45e037626b5e107709ce8d867fb6ae2fef5bf6d2467e826e9db48c51b0ba5805dc93604fe65084774bd12a126ad5a6c55cdf5ba7bdad6fcc29ea4e languageName: node linkType: hard @@ -3935,9 +3935,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.1": - version: 18.2.1 - resolution: "@ngtools/webpack@npm:18.2.1" +"@ngtools/webpack@npm:18.2.2": + version: 18.2.2 + resolution: "@ngtools/webpack@npm:18.2.2" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3947,7 +3947,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/0e0d958f6c6ef3e40ed81cf0414898c6e704077a02982af248a6563b7a0a7a0a9f45b96115138da7af6d2fe8bf04cd9a38deaa9ac5d473ddf62581a08b52c03f + checksum: 10c0/d977a297d4c46e34c75f8b5b09d777692e40b316faba5b4c7aecf3a9e80527aba82f893d9cf319fd820b44f673a85053010d45a17446ed2410eb39cb829a22f7 languageName: node linkType: hard @@ -4352,19 +4352,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.1": - version: 18.2.1 - resolution: "@schematics/angular@npm:18.2.1" +"@schematics/angular@npm:18.2.2": + version: 18.2.2 + resolution: "@schematics/angular@npm:18.2.2" dependencies: - "@angular-devkit/core": "npm:18.2.1" - "@angular-devkit/schematics": "npm:18.2.1" + "@angular-devkit/core": "npm:18.2.2" + "@angular-devkit/schematics": "npm:18.2.2" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/2fa52576f8226f305ee5ba7e0af4f29362457185250ae8f20c9f4ece21ea0ce913c18d6f97a6abf8b4e6ecbd0e4b64d20cdb91f9ff34554bb02f350e05cc442e + checksum: 10c0/ccf99d8ad75ea16a809fee82dd43fe106da6b21707248cc55507ac77bb17dbdf15f812e1f896c0945d6bb329718b4fdcc53d9decdddebc94728461ee063c9d10 languageName: node linkType: hard @@ -4866,27 +4866,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.7 - resolution: "@types/eslint-scope@npm:3.7.7" - dependencies: - "@types/eslint": "npm:*" - "@types/estree": "npm:*" - checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.56.10 - resolution: "@types/eslint@npm:8.56.10" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 10c0/674349d6c342c3864d70f4d5a9965f96fb253801532752c8c500ad6a1c2e8b219e01ccff5dc8791dcb58b5483012c495708bb9f3ff929f5c9322b3da126c15d3 - languageName: node - linkType: hard - -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -4947,7 +4927,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -6051,14 +6031,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.1" + "@angular-devkit/build-angular": "npm:^18.2.2" "@angular-eslint/builder": "npm:^18.3.0" "@angular-eslint/eslint-plugin": "npm:^18.3.0" "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" "@angular/animations": "npm:^18.2.1" - "@angular/cli": "npm:^18.2.1" + "@angular/cli": "npm:^18.2.2" "@angular/common": "npm:^18.2.1" "@angular/compiler": "npm:^18.2.1" "@angular/compiler-cli": "npm:^18.2.1" @@ -8295,13 +8275,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.0": - version: 5.17.0 - resolution: "enhanced-resolve@npm:5.17.0" +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/90065e58e4fd08e77ba47f827eaa17d60c335e01e4859f6e644bb3b8d0e32b203d33894aee92adfa5121fa262f912b48bdf0d0475e98b4a0a1132eea1169ad37 + checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 languageName: node linkType: hard @@ -16787,11 +16767,10 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.93.0": - version: 5.93.0 - resolution: "webpack@npm:5.93.0" +"webpack@npm:5.94.0": + version: 5.94.0 + resolution: "webpack@npm:5.94.0" dependencies: - "@types/eslint-scope": "npm:^3.7.3" "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.12.1" "@webassemblyjs/wasm-edit": "npm:^1.12.1" @@ -16800,7 +16779,7 @@ __metadata: acorn-import-attributes: "npm:^1.9.5" browserslist: "npm:^4.21.10" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.17.0" + enhanced-resolve: "npm:^5.17.1" es-module-lexer: "npm:^1.2.1" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" @@ -16820,7 +16799,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/f0c72f1325ff57a4cc461bb978e6e1296f2a7d45c9765965271aa686ccdd448512956f4d7fdcf8c164d073af046c5a0aba17ce85ea98e33e5e2bfbfe13aa5808 + checksum: 10c0/b4d1b751f634079bd177a89eef84d80fa5bb8d6fc15d72ab40fc2b9ca5167a79b56585e1a849e9e27e259803ee5c4365cb719e54af70a43c06358ec268ff4ebf languageName: node linkType: hard From 0602b82c16125c3fc96cec61ec4b52b3a7719a3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:35:40 +0000 Subject: [PATCH 022/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.1` | `18.2.2` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.1` | `18.2.2` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.1` | `18.2.2` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.1` | `18.2.2` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.1` | `18.2.2` | | [@angular/localize](https://github.com/angular/angular) | `18.2.1` | `18.2.2` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.1` | `18.2.2` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.1` | `18.2.2` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.1` | `18.2.2` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.1` | `18.2.2` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.1` | `18.2.2` | Updates `@angular/animations` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/animations) Updates `@angular/common` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/common) Updates `@angular/compiler` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/compiler) Updates `@angular/core` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/core) Updates `@angular/forms` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/forms) Updates `@angular/localize` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.1...18.2.2) Updates `@angular/platform-browser` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/platform-server) Updates `@angular/router` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/router) Updates `@angular/compiler-cli` from 18.2.1 to 18.2.2 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.2/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 5f448005d3..47a5947cd5 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.1", - "@angular/common": "^18.2.1", - "@angular/compiler": "^18.2.1", - "@angular/core": "^18.2.1", - "@angular/forms": "^18.2.1", - "@angular/localize": "^18.2.1", - "@angular/platform-browser": "^18.2.1", - "@angular/platform-browser-dynamic": "^18.2.1", - "@angular/platform-server": "^18.2.1", - "@angular/router": "^18.2.1", + "@angular/animations": "^18.2.2", + "@angular/common": "^18.2.2", + "@angular/compiler": "^18.2.2", + "@angular/core": "^18.2.2", + "@angular/forms": "^18.2.2", + "@angular/localize": "^18.2.2", + "@angular/platform-browser": "^18.2.2", + "@angular/platform-browser-dynamic": "^18.2.2", + "@angular/platform-server": "^18.2.2", + "@angular/router": "^18.2.2", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.2", - "@angular/compiler-cli": "^18.2.1", + "@angular/compiler-cli": "^18.2.2", "@commitlint/cli": "^19.4.1", "@commitlint/config-angular": "^19.4.1", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 3e34f32e5f..5bb9ac553e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/animations@npm:18.2.1" +"@angular/animations@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/animations@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.1 - checksum: 10c0/2ccc689134cb8fc34f05ec6c4805b738b090650160942088a998077702beb666005f84096b54672fc7d8a71bc1b93cbc2e49a7e9b8467906e662ef5858fa4be9 + "@angular/core": 18.2.2 + checksum: 10c0/217410fa6b28229bbe88a3c345b2677b003ce016a21856ea39b029efa1b1450a61f1f00b17806909c720b3d5473cf69427708d604a90ad7b5bd62a7a15376932 languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/common@npm:18.2.1" +"@angular/common@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/common@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.1 + "@angular/core": 18.2.2 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/6a8e284c7851b87da3c2c1aeeb5f59148abe02a17aa040838b0d734976952b3f4aa72d1c348d09e153cca0c42351d2bfd2fb923a1f6f52939c3e09dd7ee0241a + checksum: 10c0/acbb87ccdf5d399353cd340f047b2285eeaf209c4850547406ac142a690c980c6b4c64314c366ca969d4e3ec4e32bca8014c904e8c200fb173fcbe84ed36092d languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/compiler-cli@npm:18.2.1" +"@angular/compiler-cli@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/compiler-cli@npm:18.2.2" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.1 + "@angular/compiler": 18.2.2 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/ab50e3b90851f99ecbb6101513022eb0da0a4793f3cf8d8d0bd16e773c628c3e6ac5f659bc1bee6550d91ea9a2d50a5777d9f0c5b37e1b3073e818343deb6d4e + checksum: 10c0/ff2f3361ff0c5c0ee8b2a73082a95cf4e18beefedffb4a7e18d2f49f002cccb0c07619f981529614259b20a5733ae1a77271779155c7421b5c3cb94d2676db6a languageName: node linkType: hard -"@angular/compiler@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/compiler@npm:18.2.1" +"@angular/compiler@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/compiler@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.1 + "@angular/core": 18.2.2 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/bcc9f8a846d0b702d66f838cada5fe0b640e64627dc05f0dfae37c3a22e404aa396edb83056b7f85ff644c9832b4523afe0eb7649d2cf3824fc5cbb6e443f35d + checksum: 10c0/31f0feac72f2a284561d3568277a033af93deeb2c242122334a7ee988c772eff4c7ce2faf564c9bdb9d139c21d2f599bdfa322f321cf711e4934471a7b02c0cd languageName: node linkType: hard -"@angular/core@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/core@npm:18.2.1" +"@angular/core@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/core@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/3f07ad03fea9d613c00431e998bb6f272779817e86140fe6dd6a551bd07e8b76dfbf3c06d99ebbddf0b6bd39f1dfd97ff91ca948543338dd52d052b7923f41ad + checksum: 10c0/9392d542a72d9acafe9be30a7a60f2cd791c15641c6111e5bc4d684407424d7c8329078368170eeb74b60fa95d124a86a64dee53d67bf32f521d025c1d8e8b60 languageName: node linkType: hard -"@angular/forms@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/forms@npm:18.2.1" +"@angular/forms@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/forms@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.1 - "@angular/core": 18.2.1 - "@angular/platform-browser": 18.2.1 + "@angular/common": 18.2.2 + "@angular/core": 18.2.2 + "@angular/platform-browser": 18.2.2 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/ea3e424f12abc391581e2347b3453fc9f6f8267e6ce7ab3f1653b231a4e754a65741aa2292f6ee7508acf012920842b339a3fbd4cb8b168ad842569e345ceb8d + checksum: 10c0/6b8f1b6580bc07d35dd77ed154d094fd4b0255fd9e1d30548ee105e3155916c300dbd1480ced61be1c2ca7f32e28550a011808128cdab9304f58ecce5625158b languageName: node linkType: hard -"@angular/localize@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/localize@npm:18.2.1" +"@angular/localize@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/localize@npm:18.2.2" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.1 - "@angular/compiler-cli": 18.2.1 + "@angular/compiler": 18.2.2 + "@angular/compiler-cli": 18.2.2 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/b1170c114fe4e3d4676ddb2db35ea117d60a1bbd221969f3cd75035b647b69e3bbf518a267052dbbc8e25a93ea1f4b22a57aa592b1512efc54916e179908a346 + checksum: 10c0/0ecee6edacbedcc5ad9f1509a89abad119310ff1fdd410895f761179c831ef5fa351ce65d971a3f4a76c4959a1c29b3851349925f33158e1503d3e19e1833f97 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/platform-browser-dynamic@npm:18.2.1" +"@angular/platform-browser-dynamic@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/platform-browser-dynamic@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.1 - "@angular/compiler": 18.2.1 - "@angular/core": 18.2.1 - "@angular/platform-browser": 18.2.1 - checksum: 10c0/511b0a2981fddc9d45d8fd09ec005a79f641ce8a5fe25488ebba979a20330d654e8aeab47c6d4eb3300b19e213c9451664e439db52b688434ea6f570e2902119 + "@angular/common": 18.2.2 + "@angular/compiler": 18.2.2 + "@angular/core": 18.2.2 + "@angular/platform-browser": 18.2.2 + checksum: 10c0/023bc9e47847b4da0ccb298ba4538f1ed166d9147e638867509e37fb71379394bb8262e3b6ca7d62fbe7c03f27b0309e9f6619cf4f695d7878da78955a37c437 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/platform-browser@npm:18.2.1" +"@angular/platform-browser@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/platform-browser@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.1 - "@angular/common": 18.2.1 - "@angular/core": 18.2.1 + "@angular/animations": 18.2.2 + "@angular/common": 18.2.2 + "@angular/core": 18.2.2 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/c7feb1ef7f238663100568facba864e7557fbec88991ac07ec7f68215149d831fe0164fa34969b633279cfbce20cfc7678f90b2f22a12afa6db228d1a26b228c + checksum: 10c0/76ae5028e28a21fef24470a7576609c75b2b02cc4cabb585eab2736bc2d3c39f2dc07f017fef4315f64d7b3797ed4e0d4b6ba834a3ba82c53c259c7265244883 languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/platform-server@npm:18.2.1" +"@angular/platform-server@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/platform-server@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.1 - "@angular/common": 18.2.1 - "@angular/compiler": 18.2.1 - "@angular/core": 18.2.1 - "@angular/platform-browser": 18.2.1 - checksum: 10c0/ea3ce3bff05f9193f2d8b7168c561ad4ddcc3396870e9d5e172200fbe9c1ea6b653cc7faef447184dedbebbc7571ab8995548a39643c8e188a451f8906055d85 + "@angular/animations": 18.2.2 + "@angular/common": 18.2.2 + "@angular/compiler": 18.2.2 + "@angular/core": 18.2.2 + "@angular/platform-browser": 18.2.2 + checksum: 10c0/d70fa3013c031c8991584cd4a0f3f7ae8d5e02149b738efc699055043276e5e0ece78420d5fe27758392597880888cb972f62d46ed2c3c79475bee8be0c7a647 languageName: node linkType: hard -"@angular/router@npm:^18.2.1": - version: 18.2.1 - resolution: "@angular/router@npm:18.2.1" +"@angular/router@npm:^18.2.2": + version: 18.2.2 + resolution: "@angular/router@npm:18.2.2" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.1 - "@angular/core": 18.2.1 - "@angular/platform-browser": 18.2.1 + "@angular/common": 18.2.2 + "@angular/core": 18.2.2 + "@angular/platform-browser": 18.2.2 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/6bbf49167f161fd5e42274e295692426b24bbbbd6cc09ca05cd3e3619e36f8040aa8652dbf1417a08398900fbef93773e4195ddbdf623eb07206f8d7abb79f4e + checksum: 10c0/6fbb475caa1b4a9a5b3af09cb44da6d77fb22be87ad7aeb39917bea53e14d54a7501cf618d5aaa4ee1b26e3949ec5a1ca481c4cd686ae53fcd930fd6c1b8ae1a languageName: node linkType: hard @@ -6037,18 +6037,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" - "@angular/animations": "npm:^18.2.1" + "@angular/animations": "npm:^18.2.2" "@angular/cli": "npm:^18.2.2" - "@angular/common": "npm:^18.2.1" - "@angular/compiler": "npm:^18.2.1" - "@angular/compiler-cli": "npm:^18.2.1" - "@angular/core": "npm:^18.2.1" - "@angular/forms": "npm:^18.2.1" - "@angular/localize": "npm:^18.2.1" - "@angular/platform-browser": "npm:^18.2.1" - "@angular/platform-browser-dynamic": "npm:^18.2.1" - "@angular/platform-server": "npm:^18.2.1" - "@angular/router": "npm:^18.2.1" + "@angular/common": "npm:^18.2.2" + "@angular/compiler": "npm:^18.2.2" + "@angular/compiler-cli": "npm:^18.2.2" + "@angular/core": "npm:^18.2.2" + "@angular/forms": "npm:^18.2.2" + "@angular/localize": "npm:^18.2.2" + "@angular/platform-browser": "npm:^18.2.2" + "@angular/platform-browser-dynamic": "npm:^18.2.2" + "@angular/platform-server": "npm:^18.2.2" + "@angular/router": "npm:^18.2.2" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.4.1" "@commitlint/config-angular": "npm:^19.4.1" From 6e92f388328e3a1018eca8b058b1e2e0fea49b84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:05:37 +0000 Subject: [PATCH 023/213] build(deps): bump github/codeql-action from 3.26.5 to 3.26.6 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.5 to 3.26.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/2c779ab0d087cd7fe7b826087247c2c81f27bfa6...4dd16135b69a43b6c8efb853346f8437d92d3c93) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index dcfc96a43f..5253da3753 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 + uses: github/codeql-action/init@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 + uses: github/codeql-action/autobuild@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 + uses: github/codeql-action/analyze@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 69714024c6..284577b606 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5 + uses: github/codeql-action/upload-sarif@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 with: sarif_file: results.sarif From 486f7e934e636b6ac3af29a5434ec443dc986368 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:04:20 +0000 Subject: [PATCH 024/213] build(deps-dev): bump eslint-plugin-import from 2.29.1 to 2.30.0 Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.1 to 2.30.0. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 63 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 47a5947cd5..f84360a62d 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import": "^2.30.0", "eslint-plugin-jsdoc": "^50.2.2", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", diff --git a/yarn.lock b/yarn.lock index 5bb9ac553e..7eae448781 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4352,6 +4352,13 @@ __metadata: languageName: node linkType: hard +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b + languageName: node + linkType: hard + "@schematics/angular@npm:18.2.2": version: 18.2.2 resolution: "@schematics/angular@npm:18.2.2" @@ -5879,7 +5886,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.7": +"array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -5916,7 +5923,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlastindex@npm:1.2.5" dependencies: @@ -6077,7 +6084,7 @@ __metadata: eslint-config-prettier: "npm:^9.1.0" eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" - eslint-plugin-import: "npm:^2.29.1" + eslint-plugin-import: "npm:^2.30.0" eslint-plugin-jsdoc: "npm:^50.2.2" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" @@ -8710,15 +8717,15 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.8.0": - version: 2.8.1 - resolution: "eslint-module-utils@npm:2.8.1" +"eslint-module-utils@npm:^2.9.0": + version: 2.9.0 + resolution: "eslint-module-utils@npm:2.9.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882 + checksum: 10c0/7c45c5b54402a969e99315890c10e9bf8c8bee16c7890573343af05dfa04566d61546585678c413e5228af0550e39461be47e35a8ff0d1863e113bdbb28d1d29 languageName: node linkType: hard @@ -8743,30 +8750,31 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" +"eslint-plugin-import@npm:^2.30.0": + version: 2.30.0 + resolution: "eslint-plugin-import@npm:2.30.0" dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlastindex: "npm:^1.2.3" + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" array.prototype.flat: "npm:^1.3.2" array.prototype.flatmap: "npm:^1.3.2" debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.8.0" - hasown: "npm:^2.0.0" - is-core-module: "npm:^2.13.1" + eslint-module-utils: "npm:^2.9.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" is-glob: "npm:^4.0.3" minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.7" - object.groupby: "npm:^1.0.1" - object.values: "npm:^1.1.7" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" semver: "npm:^6.3.1" tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10c0/5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196 + checksum: 10c0/4c9dcb1f27505c4d5dd891d2b551f56c70786d136aa3992a77e785bdc67c9f60200a2c7fb0ce55b7647fe550b12bc433d5dfa59e2c00ab44227791c5ab86badf languageName: node linkType: hard @@ -10626,7 +10634,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -10635,6 +10643,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.15.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612 + languageName: node + linkType: hard + "is-data-view@npm:^1.0.1": version: 1.0.1 resolution: "is-data-view@npm:1.0.1" @@ -13028,7 +13045,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": +"object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: @@ -13040,7 +13057,7 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": +"object.groupby@npm:^1.0.3": version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies: @@ -13051,7 +13068,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.7": +"object.values@npm:^1.2.0": version: 1.2.0 resolution: "object.values@npm:1.2.0" dependencies: From 5fb8d75ed31706e8a4f4e1ddd7da8c9af6f77660 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:03:45 +0000 Subject: [PATCH 025/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.3.0 to 8.4.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.4.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.3.0 to 8.4.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.4.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index f84360a62d..9261634540 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.3.0", - "@typescript-eslint/parser": "^8.3.0", + "@typescript-eslint/eslint-plugin": "^8.4.0", + "@typescript-eslint/parser": "^8.4.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.2", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 7eae448781..83471df1d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5097,15 +5097,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.3.0" +"@typescript-eslint/eslint-plugin@npm:^8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.4.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.3.0" - "@typescript-eslint/type-utils": "npm:8.3.0" - "@typescript-eslint/utils": "npm:8.3.0" - "@typescript-eslint/visitor-keys": "npm:8.3.0" + "@typescript-eslint/scope-manager": "npm:8.4.0" + "@typescript-eslint/type-utils": "npm:8.4.0" + "@typescript-eslint/utils": "npm:8.4.0" + "@typescript-eslint/visitor-keys": "npm:8.4.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5116,25 +5116,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/d5242b16b8602ab5817cf04b35ac7208b6bee530730eeed6eab886667d1f2c5fac1537b3e33c453393090a1c6fcd50f727c07f5168985a00e7d23d1f99576988 + checksum: 10c0/c75e9bb176e9e0277c9f9c4c006bc2c31ac91984e555de1390a9bbe876e3b6787d59d96015b3f0cd083fd22c814aea4ed4858910d3afdd24d64ab79815da31e5 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/parser@npm:8.3.0" +"@typescript-eslint/parser@npm:^8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/parser@npm:8.4.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.3.0" - "@typescript-eslint/types": "npm:8.3.0" - "@typescript-eslint/typescript-estree": "npm:8.3.0" - "@typescript-eslint/visitor-keys": "npm:8.3.0" + "@typescript-eslint/scope-manager": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/typescript-estree": "npm:8.4.0" + "@typescript-eslint/visitor-keys": "npm:8.4.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/8185e7f1f570cded8719cfb1e8147fcbbc5b8796de628d68024d2929ce6fb02d1f6101b741161229e877be1c30c720701e1e1f7c4313dba33d4bb1190a85f705 + checksum: 10c0/19f3358e5bc4bbad693183eefe1a90ea64be054a934bc2c8a972ff4738b94580b55ad4955af5797db42298628caa59b3ba3f9fd960582b5fc2c836da3a4578a5 languageName: node linkType: hard @@ -5148,28 +5148,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/scope-manager@npm:8.3.0" +"@typescript-eslint/scope-manager@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/scope-manager@npm:8.4.0" dependencies: - "@typescript-eslint/types": "npm:8.3.0" - "@typescript-eslint/visitor-keys": "npm:8.3.0" - checksum: 10c0/24d093505d444a07db88f9ab44af04eb738ce523ac3f98b0a641cf3a3ee38d18aff9f72bbf2b2e2d9f45e57c973f31016f1e224cd8ab773f6e7c3477c5a09ad3 + "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/visitor-keys": "npm:8.4.0" + checksum: 10c0/95188c663df7db106529c6b93c4c7c61647ed34ab6dd48114e41ddf49140ff606c5501ce2ae451a988ec49b5d3874ea96ff212fc102802327b10affd2ff80a37 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/type-utils@npm:8.3.0" +"@typescript-eslint/type-utils@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/type-utils@npm:8.4.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.3.0" - "@typescript-eslint/utils": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.4.0" + "@typescript-eslint/utils": "npm:8.4.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/0e4b42ff2bfcd1727893bb7fe5fcf1aa808b45b5f690c249c68ce7aff68ddfba3d8b1565de2f08972915df23fa7ab114c09f507668e9b0b63faf1e34a5091706 + checksum: 10c0/ae51100594d9ca61c7577b5aed0bd10c1959725df5c38cd9653eed1fd3dbdfff9146b6e48f3409994b4c8d781b9d95025c36b30f73a5a1b3dbdee6d142cecc87 languageName: node linkType: hard @@ -5180,10 +5180,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/types@npm:8.3.0" - checksum: 10c0/5cd733af7ffa0cdaa5842f6c5e275b3a5c9b98dc49bf1bb9df1f0b51d346bef2a10a827d886f60492d502218a272e935cef50b4f7c69100217d5b10a2499c7b1 +"@typescript-eslint/types@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/types@npm:8.4.0" + checksum: 10c0/15e09ced84827c349553530a31822f06ae5bad456c03d561b7d0c64b6ad9b5d7ca795e030bd93e65d5a2cd41bfde36ed08dcd2ff9feaa8b60a67080827f47ecb languageName: node linkType: hard @@ -5206,12 +5206,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.3.0" +"@typescript-eslint/typescript-estree@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.4.0" dependencies: - "@typescript-eslint/types": "npm:8.3.0" - "@typescript-eslint/visitor-keys": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/visitor-keys": "npm:8.4.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5221,21 +5221,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/dd73aa1a9d7b5c7e6238e766e6ecdb6d87a9b28a24815258b7bbdc59c49fb525d3fe15d9b7c672e2220678f9d5fabdd9615e4cd5ee97a102fd46023ec0735d50 + checksum: 10c0/170702b024121cff9268f53de8054796b0ce025f9a78d6f2bc850a360e5f3f7032ba3ee9d4b7392726308273a5f3ade5ab31b1788b504b514bc15afc07302b37 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/utils@npm:8.3.0" +"@typescript-eslint/utils@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/utils@npm:8.4.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.3.0" - "@typescript-eslint/types": "npm:8.3.0" - "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/scope-manager": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/typescript-estree": "npm:8.4.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/e4e9e820cf4b4775bb66b2293a2a827897edaba88577b63df317b50752a01d542be521cc4842976fbbd93e08b9e273ce9d20e23768d06de68a83d68cc0f68a93 + checksum: 10c0/8c9c36b3aa23f9bcc28cc4b10f0fa2996f1bc6cdd75135f08c2ef734baa30dbd2a8b92f344b90518e1fd07a486936734789fc7e90b780221a7707dad8e9c9364 languageName: node linkType: hard @@ -5263,13 +5263,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.3.0": - version: 8.3.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.3.0" +"@typescript-eslint/visitor-keys@npm:8.4.0": + version: 8.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.4.0" dependencies: - "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.4.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/4c19216636f2cc25026fe20d2832d857f05c262eba78bc4159121c696199e44cac68443565959f9336372f7686a14b452867300cf4deb3c0507b8dbde88ac0e6 + checksum: 10c0/339199b7fbb9ac83b530d03ab25f6bc5ceb688c9cd0ae460112cd14ee78ca7284a845aef5620cdf70170980123475ec875e85ebf595c60255ba3c0d6fe48c714 languageName: node linkType: hard @@ -6068,8 +6068,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.3.0" - "@typescript-eslint/parser": "npm:^8.3.0" + "@typescript-eslint/eslint-plugin": "npm:^8.4.0" + "@typescript-eslint/parser": "npm:^8.4.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 13eb56d0ee8f47c6a3fdc37d6540f21bef46eb65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:46:02 +0000 Subject: [PATCH 026/213] build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- .github/workflows/scorecards.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 101346c477..8bbd6101ad 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -109,7 +109,7 @@ jobs: - name: Upload build artifacts (main && develop) # upload build artifacts for current node version and main or develop branch only if: matrix.node-version == 20.13 && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # ratchet:actions/upload-artifact@v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # ratchet:actions/upload-artifact@v4.4.0 with: name: dist path: ${{ github.workspace }}/${{ env.DIST_DIR }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 284577b606..da67f1bbab 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: SARIF file path: results.sarif From f60bc07f238009056fa16826b67db289ef76c0d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:09:04 +0000 Subject: [PATCH 027/213] build(deps-dev): bump lint-staged from 15.2.9 to 15.2.10 Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.2.9 to 15.2.10. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v15.2.9...v15.2.10) --- updated-dependencies: - dependency-name: lint-staged dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 9261634540..b3e8a65015 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,7 @@ "karma-coverage": "^2.2.1", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", - "lint-staged": "^15.2.9", + "lint-staged": "^15.2.10", "prettier": "^3.3.3", "source-map-explorer": "^2.5.3", "typescript": "~5.5.4", diff --git a/yarn.lock b/yarn.lock index 83471df1d4..ad7859f773 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6097,7 +6097,7 @@ __metadata: karma-coverage: "npm:^2.2.1" karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" - lint-staged: "npm:^15.2.9" + lint-staged: "npm:^15.2.10" n3: "npm:^1.21.0" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" @@ -11609,9 +11609,9 @@ __metadata: languageName: node linkType: hard -"lint-staged@npm:^15.2.9": - version: 15.2.9 - resolution: "lint-staged@npm:15.2.9" +"lint-staged@npm:^15.2.10": + version: 15.2.10 + resolution: "lint-staged@npm:15.2.10" dependencies: chalk: "npm:~5.3.0" commander: "npm:~12.1.0" @@ -11619,13 +11619,13 @@ __metadata: execa: "npm:~8.0.1" lilconfig: "npm:~3.1.2" listr2: "npm:~8.2.4" - micromatch: "npm:~4.0.7" + micromatch: "npm:~4.0.8" pidtree: "npm:~0.6.0" string-argv: "npm:~0.3.2" yaml: "npm:~2.5.0" bin: lint-staged: bin/lint-staged.js - checksum: 10c0/820c622378b62b826974af17f1747e2a4b0556e4fb99d101af89ad298d392ff079f580fdc576f16a27e975d726b95d73495fd524139402ff654c4649ef2f1a6a + checksum: 10c0/6ad7b41f5e87a84fa2eb1990080ea3c68a2f2031b4e81edcdc2a458cc878538eedb310e6f98ffd878a1287e1a52ac968e540ee8a0e96c247e04b0cbc36421cdd languageName: node linkType: hard @@ -12135,7 +12135,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.7": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: From 9b378edf6f922cf9673411919be07c86b0de725e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:09:33 +0000 Subject: [PATCH 028/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.2...18.2.3) Updates `@angular/cli` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.2...18.2.3) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 116 +++++++++++++++++++++++++-------------------------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index b3e8a65015..2aeb222816 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.2", + "@angular-devkit/build-angular": "^18.2.3", "@angular-eslint/builder": "^18.3.0", "@angular-eslint/eslint-plugin": "^18.3.0", "@angular-eslint/eslint-plugin-template": "^18.3.0", "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", - "@angular/cli": "^18.2.2", + "@angular/cli": "^18.2.3", "@angular/compiler-cli": "^18.2.2", "@commitlint/cli": "^19.4.1", "@commitlint/config-angular": "^19.4.1", diff --git a/yarn.lock b/yarn.lock index ad7859f773..26b7bc8472 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.2": - version: 0.1802.2 - resolution: "@angular-devkit/architect@npm:0.1802.2" +"@angular-devkit/architect@npm:0.1802.3": + version: 0.1802.3 + resolution: "@angular-devkit/architect@npm:0.1802.3" dependencies: - "@angular-devkit/core": "npm:18.2.2" + "@angular-devkit/core": "npm:18.2.3" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/2e41e6109fc13b9600f5fcca8d7b326373f28e4600cd52d50468d3e98e0d82b6d84b9fb9f28f785e6527e4ca9931044d759e551d33debfa0067a5466439930a1 + checksum: 10c0/3b69b527e55c7112d972ff3e7f4488bef843978829ee7524dbe46db992f2bc72936bd044b9c577dff81ebc59fb5695e4713b3bbf00b6eea8ce79f25cc6ef3408 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular-devkit/build-angular@npm:18.2.2" +"@angular-devkit/build-angular@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular-devkit/build-angular@npm:18.2.3" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.2" - "@angular-devkit/build-webpack": "npm:0.1802.2" - "@angular-devkit/core": "npm:18.2.2" - "@angular/build": "npm:18.2.2" + "@angular-devkit/architect": "npm:0.1802.3" + "@angular-devkit/build-webpack": "npm:0.1802.3" + "@angular-devkit/core": "npm:18.2.3" + "@angular/build": "npm:18.2.3" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.2" + "@ngtools/webpack": "npm:18.2.3" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -110,7 +110,7 @@ __metadata: vite: "npm:5.4.0" watchpack: "npm:2.4.1" webpack: "npm:5.94.0" - webpack-dev-middleware: "npm:7.3.0" + webpack-dev-middleware: "npm:7.4.2" webpack-dev-server: "npm:5.0.4" webpack-merge: "npm:6.0.1" webpack-subresource-integrity: "npm:5.1.0" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/18a809514acf4e0871d27a83623433a3547e247f8606f6a4fd96f4c808fff4d7154d1bd5b4fe37720c37402eb9e3dc0e60aeccf8022fc09bdc49179d27773c79 + checksum: 10c0/69aee447e68576137507a1f6b45535e31534d835dcd8e80e2812d1d4d52c7b3b74c5618d8f6a0ff07a2298737f285be5233172e7af2c8658b3c2dc936b06e23c languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.2": - version: 0.1802.2 - resolution: "@angular-devkit/build-webpack@npm:0.1802.2" +"@angular-devkit/build-webpack@npm:0.1802.3": + version: 0.1802.3 + resolution: "@angular-devkit/build-webpack@npm:0.1802.3" dependencies: - "@angular-devkit/architect": "npm:0.1802.2" + "@angular-devkit/architect": "npm:0.1802.3" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/f951c1aae644a100d5567b1485f635f2eedd185df71ca5943cbd2840666da32163787d3d5e22300cf656ae9c714dc2c51b4ddbcffc62aef2c92c5eef92b8c0ed + checksum: 10c0/9fb22d3f32213183b5f58f8bb12aee2a150549c9d8f982ad1984cc294cec70c700e8f72fccfa0d10e41c9b29076d28f5df6363626d89cb272d62742aea613075 languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.2": - version: 18.2.2 - resolution: "@angular-devkit/core@npm:18.2.2" +"@angular-devkit/core@npm:18.2.3": + version: 18.2.3 + resolution: "@angular-devkit/core@npm:18.2.3" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/97760a5c096e7da4601e6301678274c63a04570b22d851211543fdb063005a2d858befc8ab5048e9f2ae8dcc369296c5eeec535f40cb9122032e797d20cccd44 + checksum: 10c0/52f7586a6b379a889f6d656f7e1a98d1c051c38753ba4565f34fbdc74da90e53a4be6855d32cc216045caa9932f3ce4a9da56027138045f79351ebe388b959a1 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.2": - version: 18.2.2 - resolution: "@angular-devkit/schematics@npm:18.2.2" +"@angular-devkit/schematics@npm:18.2.3": + version: 18.2.3 + resolution: "@angular-devkit/schematics@npm:18.2.3" dependencies: - "@angular-devkit/core": "npm:18.2.2" + "@angular-devkit/core": "npm:18.2.3" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/dcebbca36e5217f4478f8ebe0596d7751018e4b04c9b78c9f9edc513da520cc12f05b56d64d2e43c80050e2dee719ef9a04aed172a16da4674aaa82f57cc06fc + checksum: 10c0/418a99fffee0841a04c5b75af360f270f8ef9c8f65da091a3ae520bbcfa32966dee059bcbdbb9f89432f8ee853a2ac15742c793a9e203f1389a0554d10329daf languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.2": - version: 18.2.2 - resolution: "@angular/build@npm:18.2.2" +"@angular/build@npm:18.2.3": + version: 18.2.3 + resolution: "@angular/build@npm:18.2.3" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.2" + "@angular-devkit/architect": "npm:0.1802.3" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/e85ab98cd2b46d7ad41e23b40caafcbf9030dded6e74b1d1508478aaceb3f6414d5b8ae855b7cefa06c768fd4d1fccbb40be827dc71992035f1ab6d156fce116 + checksum: 10c0/d8bb935237b3c6334a23d9647b48b732fefd801d78e673231b3ac69e1989725f5d2606054492fc0edfda3a06a9388f89770289b1e24907845af3525039bcde36 languageName: node linkType: hard -"@angular/cli@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/cli@npm:18.2.2" +"@angular/cli@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/cli@npm:18.2.3" dependencies: - "@angular-devkit/architect": "npm:0.1802.2" - "@angular-devkit/core": "npm:18.2.2" - "@angular-devkit/schematics": "npm:18.2.2" + "@angular-devkit/architect": "npm:0.1802.3" + "@angular-devkit/core": "npm:18.2.3" + "@angular-devkit/schematics": "npm:18.2.3" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.2" + "@schematics/angular": "npm:18.2.3" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/df1c4f8a3e45e037626b5e107709ce8d867fb6ae2fef5bf6d2467e826e9db48c51b0ba5805dc93604fe65084774bd12a126ad5a6c55cdf5ba7bdad6fcc29ea4e + checksum: 10c0/9210e7040440ffa4d75489e8c5302e2b981035d7b91c40969099c8278b5e27f32ad8b79b213f5e062eea3b98aa842117b99cbad3bcb8815c081d40394b7c17ad languageName: node linkType: hard @@ -3935,9 +3935,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.2": - version: 18.2.2 - resolution: "@ngtools/webpack@npm:18.2.2" +"@ngtools/webpack@npm:18.2.3": + version: 18.2.3 + resolution: "@ngtools/webpack@npm:18.2.3" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3947,7 +3947,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/d977a297d4c46e34c75f8b5b09d777692e40b316faba5b4c7aecf3a9e80527aba82f893d9cf319fd820b44f673a85053010d45a17446ed2410eb39cb829a22f7 + checksum: 10c0/61d1e12f55160d3973fa424b3af45ed8f859d4a30f7bc414e0b000c63ef12c418df2c43bca7f1c28d3fc3225a3d3b2d9b7fa025fb03533b053ae5b5850863944 languageName: node linkType: hard @@ -4359,19 +4359,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.2": - version: 18.2.2 - resolution: "@schematics/angular@npm:18.2.2" +"@schematics/angular@npm:18.2.3": + version: 18.2.3 + resolution: "@schematics/angular@npm:18.2.3" dependencies: - "@angular-devkit/core": "npm:18.2.2" - "@angular-devkit/schematics": "npm:18.2.2" + "@angular-devkit/core": "npm:18.2.3" + "@angular-devkit/schematics": "npm:18.2.3" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/ccf99d8ad75ea16a809fee82dd43fe106da6b21707248cc55507ac77bb17dbdf15f812e1f896c0945d6bb329718b4fdcc53d9decdddebc94728461ee063c9d10 + checksum: 10c0/233142c4688acb75079a844860e210db0af4147fb51babd413aefb0e8414f831e272865ad7fbe00d693771cde9775631bedacc0d953926d8a40dab39767ee4d0 languageName: node linkType: hard @@ -6038,14 +6038,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.2" + "@angular-devkit/build-angular": "npm:^18.2.3" "@angular-eslint/builder": "npm:^18.3.0" "@angular-eslint/eslint-plugin": "npm:^18.3.0" "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" "@angular/animations": "npm:^18.2.2" - "@angular/cli": "npm:^18.2.2" + "@angular/cli": "npm:^18.2.3" "@angular/common": "npm:^18.2.2" "@angular/compiler": "npm:^18.2.2" "@angular/compiler-cli": "npm:^18.2.2" @@ -16666,9 +16666,9 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:7.3.0": - version: 7.3.0 - resolution: "webpack-dev-middleware@npm:7.3.0" +"webpack-dev-middleware@npm:7.4.2": + version: 7.4.2 + resolution: "webpack-dev-middleware@npm:7.4.2" dependencies: colorette: "npm:^2.0.10" memfs: "npm:^4.6.0" @@ -16681,7 +16681,7 @@ __metadata: peerDependenciesMeta: webpack: optional: true - checksum: 10c0/03d34e1c7af3af8c98efe754ce6cfb9fe84a1f02d312bc37a77f55b8ae9525bc3ac913fc92c0143ab93a3a6377781661f07336031fcd5e6bbddccc11df9345db + checksum: 10c0/2aa873ef57a7095d7fba09400737b6066adc3ded229fd6eba89a666f463c2614c68e01ae58f662c9cdd74f0c8da088523d972329bf4a054e470bc94feb8bcad0 languageName: node linkType: hard From d7489a3708c6aa5be85337089e623e3d874fb70a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:34:57 +0000 Subject: [PATCH 029/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.2` | `18.2.3` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.2` | `18.2.3` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.2` | `18.2.3` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.2` | `18.2.3` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.2` | `18.2.3` | | [@angular/localize](https://github.com/angular/angular) | `18.2.2` | `18.2.3` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.2` | `18.2.3` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.2` | `18.2.3` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.2` | `18.2.3` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.2` | `18.2.3` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.2` | `18.2.3` | Updates `@angular/animations` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/animations) Updates `@angular/common` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/common) Updates `@angular/compiler` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/compiler) Updates `@angular/core` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/core) Updates `@angular/forms` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/forms) Updates `@angular/localize` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.2...18.2.3) Updates `@angular/platform-browser` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/platform-server) Updates `@angular/router` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/router) Updates `@angular/compiler-cli` from 18.2.2 to 18.2.3 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.3/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 2aeb222816..afd0a9ab60 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.2", - "@angular/common": "^18.2.2", - "@angular/compiler": "^18.2.2", - "@angular/core": "^18.2.2", - "@angular/forms": "^18.2.2", - "@angular/localize": "^18.2.2", - "@angular/platform-browser": "^18.2.2", - "@angular/platform-browser-dynamic": "^18.2.2", - "@angular/platform-server": "^18.2.2", - "@angular/router": "^18.2.2", + "@angular/animations": "^18.2.3", + "@angular/common": "^18.2.3", + "@angular/compiler": "^18.2.3", + "@angular/core": "^18.2.3", + "@angular/forms": "^18.2.3", + "@angular/localize": "^18.2.3", + "@angular/platform-browser": "^18.2.3", + "@angular/platform-browser-dynamic": "^18.2.3", + "@angular/platform-server": "^18.2.3", + "@angular/router": "^18.2.3", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.3", - "@angular/compiler-cli": "^18.2.2", + "@angular/compiler-cli": "^18.2.3", "@commitlint/cli": "^19.4.1", "@commitlint/config-angular": "^19.4.1", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 26b7bc8472..dc3bb58fa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/animations@npm:18.2.2" +"@angular/animations@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/animations@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.2 - checksum: 10c0/217410fa6b28229bbe88a3c345b2677b003ce016a21856ea39b029efa1b1450a61f1f00b17806909c720b3d5473cf69427708d604a90ad7b5bd62a7a15376932 + "@angular/core": 18.2.3 + checksum: 10c0/a6e6b7bca79889e670e053674ef1ccd5c4bba26b5144385e2e08e8a5c1527446d19688bc52bde4e1365a741e6113708367468096603ac1ed820994cdd6aabe16 languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/common@npm:18.2.2" +"@angular/common@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/common@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.2 + "@angular/core": 18.2.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/acbb87ccdf5d399353cd340f047b2285eeaf209c4850547406ac142a690c980c6b4c64314c366ca969d4e3ec4e32bca8014c904e8c200fb173fcbe84ed36092d + checksum: 10c0/ce3b5ae6e70fdeb23a1164bf2436ab925e48efb118c7f8fd85869af7eb97844d1d0c72069644153eab7d8dde066504014ff8b38e5e61aab749b349f796eec3b7 languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/compiler-cli@npm:18.2.2" +"@angular/compiler-cli@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/compiler-cli@npm:18.2.3" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.2 + "@angular/compiler": 18.2.3 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/ff2f3361ff0c5c0ee8b2a73082a95cf4e18beefedffb4a7e18d2f49f002cccb0c07619f981529614259b20a5733ae1a77271779155c7421b5c3cb94d2676db6a + checksum: 10c0/41ea24eba5a9990c7878879553cb3fbffaacbcc3a22e5d4397ad3e7325e3890c312cdbe6efbc8d95a46124c63654598bb58be60fc81a46e0f3dc78480fc0760a languageName: node linkType: hard -"@angular/compiler@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/compiler@npm:18.2.2" +"@angular/compiler@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/compiler@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.2 + "@angular/core": 18.2.3 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/31f0feac72f2a284561d3568277a033af93deeb2c242122334a7ee988c772eff4c7ce2faf564c9bdb9d139c21d2f599bdfa322f321cf711e4934471a7b02c0cd + checksum: 10c0/d2ed8dc2e33d863f17931658487b2af6d880605ee3e0cff71bccdc6a8be1e852cb0097ccdb8679401aaeaee758e3f4d1c39c02ec09342fb17a2cb07bc8994fc3 languageName: node linkType: hard -"@angular/core@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/core@npm:18.2.2" +"@angular/core@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/core@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/9392d542a72d9acafe9be30a7a60f2cd791c15641c6111e5bc4d684407424d7c8329078368170eeb74b60fa95d124a86a64dee53d67bf32f521d025c1d8e8b60 + checksum: 10c0/c8e8ac763bb6150b76d8c47111fa9a7db9d6cddf39f0a2d93cb89678029717e6e36b89b7cd8f819c5162a14e829ad291394eaabb072578de5c32d19dba68d3c5 languageName: node linkType: hard -"@angular/forms@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/forms@npm:18.2.2" +"@angular/forms@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/forms@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.2 - "@angular/core": 18.2.2 - "@angular/platform-browser": 18.2.2 + "@angular/common": 18.2.3 + "@angular/core": 18.2.3 + "@angular/platform-browser": 18.2.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/6b8f1b6580bc07d35dd77ed154d094fd4b0255fd9e1d30548ee105e3155916c300dbd1480ced61be1c2ca7f32e28550a011808128cdab9304f58ecce5625158b + checksum: 10c0/95e778f6e7bd27131dbf14503c76f731eb0fcfad73e55d32d59fb510f15f8cb42459ea488e380164b0c62d465356221a81463c226d4e44e454960cb6eea3b19c languageName: node linkType: hard -"@angular/localize@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/localize@npm:18.2.2" +"@angular/localize@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/localize@npm:18.2.3" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.2 - "@angular/compiler-cli": 18.2.2 + "@angular/compiler": 18.2.3 + "@angular/compiler-cli": 18.2.3 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/0ecee6edacbedcc5ad9f1509a89abad119310ff1fdd410895f761179c831ef5fa351ce65d971a3f4a76c4959a1c29b3851349925f33158e1503d3e19e1833f97 + checksum: 10c0/31976a0045da07347e1974fff9f51cecf354c1f9cf0c7f4d5a25369f71adc95fea416ef4fe7f71dd879c9f1b01f6f1c34feeae74c81982df4f4c9977e1c3cff7 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/platform-browser-dynamic@npm:18.2.2" +"@angular/platform-browser-dynamic@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/platform-browser-dynamic@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.2 - "@angular/compiler": 18.2.2 - "@angular/core": 18.2.2 - "@angular/platform-browser": 18.2.2 - checksum: 10c0/023bc9e47847b4da0ccb298ba4538f1ed166d9147e638867509e37fb71379394bb8262e3b6ca7d62fbe7c03f27b0309e9f6619cf4f695d7878da78955a37c437 + "@angular/common": 18.2.3 + "@angular/compiler": 18.2.3 + "@angular/core": 18.2.3 + "@angular/platform-browser": 18.2.3 + checksum: 10c0/422a8e3d2989c4bfab15f14ae3618ee4ddd8744502dd57f5140c6765e825bdcf21b7bcb5c203945f80a2c7e64e18a4a8d00f576d903dd24d35a2df046bff4e6d languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/platform-browser@npm:18.2.2" +"@angular/platform-browser@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/platform-browser@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.2 - "@angular/common": 18.2.2 - "@angular/core": 18.2.2 + "@angular/animations": 18.2.3 + "@angular/common": 18.2.3 + "@angular/core": 18.2.3 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/76ae5028e28a21fef24470a7576609c75b2b02cc4cabb585eab2736bc2d3c39f2dc07f017fef4315f64d7b3797ed4e0d4b6ba834a3ba82c53c259c7265244883 + checksum: 10c0/ef21758b368ef4aa84b44f9c7147df138b1051f4f6e3270fa5484ab9a0df47597d7f1bd9725061a4b0e0cc010d15d1769601970349c54a67211a0ad367d4dadf languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/platform-server@npm:18.2.2" +"@angular/platform-server@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/platform-server@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.2 - "@angular/common": 18.2.2 - "@angular/compiler": 18.2.2 - "@angular/core": 18.2.2 - "@angular/platform-browser": 18.2.2 - checksum: 10c0/d70fa3013c031c8991584cd4a0f3f7ae8d5e02149b738efc699055043276e5e0ece78420d5fe27758392597880888cb972f62d46ed2c3c79475bee8be0c7a647 + "@angular/animations": 18.2.3 + "@angular/common": 18.2.3 + "@angular/compiler": 18.2.3 + "@angular/core": 18.2.3 + "@angular/platform-browser": 18.2.3 + checksum: 10c0/9a9a36bd5083ae4be507f64b7d5b3f542562e53046747a235a8e9ff5d0eaf866c1acd389602e751106d97aa6b724f21ed9f4ac9723ee47889e73b9a1d0bfda21 languageName: node linkType: hard -"@angular/router@npm:^18.2.2": - version: 18.2.2 - resolution: "@angular/router@npm:18.2.2" +"@angular/router@npm:^18.2.3": + version: 18.2.3 + resolution: "@angular/router@npm:18.2.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.2 - "@angular/core": 18.2.2 - "@angular/platform-browser": 18.2.2 + "@angular/common": 18.2.3 + "@angular/core": 18.2.3 + "@angular/platform-browser": 18.2.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/6fbb475caa1b4a9a5b3af09cb44da6d77fb22be87ad7aeb39917bea53e14d54a7501cf618d5aaa4ee1b26e3949ec5a1ca481c4cd686ae53fcd930fd6c1b8ae1a + checksum: 10c0/724d9b46659f440067e079df2c9e8cbc5fa98aad1b325bfc334fcf469be4943055b13156d725a12c916137b8b4d7cd2b21234923fb4637ba25efa9ced3d43e0b languageName: node linkType: hard @@ -6044,18 +6044,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" - "@angular/animations": "npm:^18.2.2" + "@angular/animations": "npm:^18.2.3" "@angular/cli": "npm:^18.2.3" - "@angular/common": "npm:^18.2.2" - "@angular/compiler": "npm:^18.2.2" - "@angular/compiler-cli": "npm:^18.2.2" - "@angular/core": "npm:^18.2.2" - "@angular/forms": "npm:^18.2.2" - "@angular/localize": "npm:^18.2.2" - "@angular/platform-browser": "npm:^18.2.2" - "@angular/platform-browser-dynamic": "npm:^18.2.2" - "@angular/platform-server": "npm:^18.2.2" - "@angular/router": "npm:^18.2.2" + "@angular/common": "npm:^18.2.3" + "@angular/compiler": "npm:^18.2.3" + "@angular/compiler-cli": "npm:^18.2.3" + "@angular/core": "npm:^18.2.3" + "@angular/forms": "npm:^18.2.3" + "@angular/localize": "npm:^18.2.3" + "@angular/platform-browser": "npm:^18.2.3" + "@angular/platform-browser-dynamic": "npm:^18.2.3" + "@angular/platform-server": "npm:^18.2.3" + "@angular/router": "npm:^18.2.3" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.4.1" "@commitlint/config-angular": "npm:^19.4.1" From 504ca75a95aa037f868c4c43b5726068020d8ad9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:10:25 +0000 Subject: [PATCH 030/213] build(deps): bump tslib from 2.6.3 to 2.7.0 Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/v2.6.3...v2.7.0) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index afd0a9ab60..5cce98b183 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", "stream": "^0.0.3", - "tslib": "^2.6.2", + "tslib": "^2.7.0", "zone.js": "~0.14.10" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index dc3bb58fa8..6b3fecaab7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6105,7 +6105,7 @@ __metadata: rxjs: "npm:~7.8.1" source-map-explorer: "npm:^2.5.3" stream: "npm:^0.0.3" - tslib: "npm:^2.6.2" + tslib: "npm:^2.7.0" typescript: "npm:~5.5.4" webpack-bundle-analyzer: "npm:^4.10.2" zone.js: "npm:~0.14.10" @@ -16025,6 +16025,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + "tuf-js@npm:^2.2.1": version: 2.2.1 resolution: "tuf-js@npm:2.2.1" From 994b48b212e3484a44c916b321b694689e5044aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:05:42 +0000 Subject: [PATCH 031/213] build(deps-dev): bump jasmine-core from 5.2.0 to 5.3.0 Bumps [jasmine-core](https://github.com/jasmine/jasmine) from 5.2.0 to 5.3.0. - [Release notes](https://github.com/jasmine/jasmine/releases) - [Changelog](https://github.com/jasmine/jasmine/blob/main/RELEASE.md) - [Commits](https://github.com/jasmine/jasmine/compare/v5.2.0...v5.3.0) --- updated-dependencies: - dependency-name: jasmine-core dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5cce98b183..3a3d7cfdb8 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.5", - "jasmine-core": "~5.2.0", + "jasmine-core": "~5.3.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index 6b3fecaab7..ae71ad1ce4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6090,7 +6090,7 @@ __metadata: font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" husky: "npm:^9.1.5" - jasmine-core: "npm:~5.2.0" + jasmine-core: "npm:~5.3.0" json2typescript: "npm:^1.5.1" karma: "npm:~6.4.4" karma-chrome-launcher: "npm:~3.2.0" @@ -11124,10 +11124,10 @@ __metadata: languageName: node linkType: hard -"jasmine-core@npm:~5.2.0": - version: 5.2.0 - resolution: "jasmine-core@npm:5.2.0" - checksum: 10c0/eac5298932fef389071529d55b8b4554646cb0094c765dac48d041e7e0c70822b0a3d831acaeec5b47ce0f0c90cad8e6926202ec67804638b4e5bf89a43def3e +"jasmine-core@npm:~5.3.0": + version: 5.3.0 + resolution: "jasmine-core@npm:5.3.0" + checksum: 10c0/231c8a43bcf8d4bd5cd9bab9ed5b7a895c7febc3ccc8b7e0629e6f78535826d01434b94c6edda312287752b164108bbafb0e69edba40f6905da9e37907eb6cbd languageName: node linkType: hard From 105a74c5b4840caa2c8bcf67569d5cdecbd71427 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:40:21 +0000 Subject: [PATCH 032/213] build(deps): bump n3 from 1.21.0 to 1.21.1 Bumps [n3](https://github.com/rdfjs/N3.js) from 1.21.0 to 1.21.1. - [Release notes](https://github.com/rdfjs/N3.js/releases) - [Commits](https://github.com/rdfjs/N3.js/compare/v1.21.0...v1.21.1) --- updated-dependencies: - dependency-name: n3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3a3d7cfdb8..f7ea1df4d0 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "d3-zoom": "^3.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.5.1", - "n3": "^1.21.0", + "n3": "^1.21.1", "ngx-json-viewer": "^3.2.1", "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", diff --git a/yarn.lock b/yarn.lock index ae71ad1ce4..d536be87b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6098,7 +6098,7 @@ __metadata: karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" lint-staged: "npm:^15.2.10" - n3: "npm:^1.21.0" + n3: "npm:^1.21.1" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" @@ -12556,14 +12556,14 @@ __metadata: languageName: node linkType: hard -"n3@npm:^1.21.0": - version: 1.21.0 - resolution: "n3@npm:1.21.0" +"n3@npm:^1.21.1": + version: 1.21.1 + resolution: "n3@npm:1.21.1" dependencies: buffer: "npm:^6.0.3" queue-microtask: "npm:^1.1.2" readable-stream: "npm:^4.0.0" - checksum: 10c0/2cfacd1d502e8dd9f68eac5203dc842ad11aeb49e8205e7aec7d294cc41b044f2dfe843e138ed6ae7b40cd8758991a6173c7976fcabb92e02f643236dbda3f74 + checksum: 10c0/4058332422e621d58d5a734c8334052d808422bf2e245511f5056062efd6b2fc1065b98b023a0db77a5f3c2e9300b67163bc1da9b6ad8419ea5c723842fcb051 languageName: node linkType: hard From a55f678103afcb9400712bc76057d635bd7085ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:33:38 +0000 Subject: [PATCH 033/213] build(deps-dev): bump commit-and-tag-version from 12.4.2 to 12.4.3 Bumps [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from 12.4.2 to 12.4.3. - [Release notes](https://github.com/absolute-version/commit-and-tag-version/releases) - [Changelog](https://github.com/absolute-version/commit-and-tag-version/blob/master/CHANGELOG.md) - [Commits](https://github.com/absolute-version/commit-and-tag-version/compare/v12.4.2...v12.4.3) --- updated-dependencies: - dependency-name: commit-and-tag-version dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index f7ea1df4d0..4adaa3e8bd 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "@typescript-eslint/eslint-plugin": "^8.4.0", "@typescript-eslint/parser": "^8.4.0", "angular-cli-ghpages": "^2.0.1", - "commit-and-tag-version": "^12.4.2", + "commit-and-tag-version": "^12.4.3", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", diff --git a/yarn.lock b/yarn.lock index d536be87b6..fb4a19e498 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6073,7 +6073,7 @@ __metadata: angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" - commit-and-tag-version: "npm:^12.4.2" + commit-and-tag-version: "npm:^12.4.3" conventional-recommended-bump: "npm:^10.0.0" d3-drag: "npm:^3.0.0" d3-fetch: "npm:^3.0.1" @@ -6880,9 +6880,9 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.4.2": - version: 12.4.2 - resolution: "commit-and-tag-version@npm:12.4.2" +"commit-and-tag-version@npm:^12.4.3": + version: 12.4.3 + resolution: "commit-and-tag-version@npm:12.4.3" dependencies: chalk: "npm:^2.4.2" conventional-changelog: "npm:4.0.0" @@ -6895,14 +6895,14 @@ __metadata: figures: "npm:^3.1.0" find-up: "npm:^5.0.0" git-semver-tags: "npm:^5.0.0" - jsdom: "npm:^24.1.1" + jsdom: "npm:^25.0.0" semver: "npm:^7.6.3" w3c-xmlserializer: "npm:^5.0.0" yaml: "npm:^2.4.1" yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10c0/6ad71b200c41b24e281f09b711aa4142275097f4529303fab33cb5df19665ea12442ed9ec92a025d29a7230fef2d525d9f585666f1e158ffdd29f86659ddeeec + checksum: 10c0/e0edbcc940d3d61d32fffd195c0df756b3a80316e6b0dce119847a435b430439926c0bac6e7d4f5d3a7eac30121ca5f8d175e9ce6748b1ddca711193635e768c languageName: node linkType: hard @@ -11183,9 +11183,9 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^24.1.1": - version: 24.1.3 - resolution: "jsdom@npm:24.1.3" +"jsdom@npm:^25.0.0": + version: 25.0.0 + resolution: "jsdom@npm:25.0.0" dependencies: cssstyle: "npm:^4.0.1" data-urls: "npm:^5.0.0" @@ -11213,7 +11213,7 @@ __metadata: peerDependenciesMeta: canvas: optional: true - checksum: 10c0/e48b342afacd7418a23dac204a62deea729c50f4d072a7c04c09fd32355fdb4335f8779fa79fd0277a2dbeb2d356250a950955719d00047324b251233b11277f + checksum: 10c0/1552bcfb816b2c69ae159ba0cd79e8964030c106cc0cb2deb20a64c1ca54e1ea41352b9802d89b7cf823e43e6d74ed7289abff4aacc95b1b2bc936570aab3594 languageName: node linkType: hard From 23fa2617b1af8a5d275c11d436ad4c0a0185e379 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:32:28 +0000 Subject: [PATCH 034/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.4.0 to 8.5.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.5.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.4.0 to 8.5.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.5.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 4adaa3e8bd..8af1bedbcd 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.4.0", - "@typescript-eslint/parser": "^8.4.0", + "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/parser": "^8.5.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.3", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index fb4a19e498..7807800b64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5097,15 +5097,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.4.0" +"@typescript-eslint/eslint-plugin@npm:^8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.5.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.4.0" - "@typescript-eslint/type-utils": "npm:8.4.0" - "@typescript-eslint/utils": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/type-utils": "npm:8.5.0" + "@typescript-eslint/utils": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5116,25 +5116,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/c75e9bb176e9e0277c9f9c4c006bc2c31ac91984e555de1390a9bbe876e3b6787d59d96015b3f0cd083fd22c814aea4ed4858910d3afdd24d64ab79815da31e5 + checksum: 10c0/69ae7067e03d2d8d442e69d668235bdafd63b07229d0be27025eaad8aa468b5af8ac54627021e0e3a060df04ed1c39d1327a0b11469ac72405b52b74a79f402b languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/parser@npm:8.4.0" +"@typescript-eslint/parser@npm:^8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/parser@npm:8.5.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.4.0" - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/typescript-estree": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/typescript-estree": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/19f3358e5bc4bbad693183eefe1a90ea64be054a934bc2c8a972ff4738b94580b55ad4955af5797db42298628caa59b3ba3f9fd960582b5fc2c836da3a4578a5 + checksum: 10c0/509fdd605b86c7d025928f20e1035712c2fc268c34b1af84248ed0b53d699034f19caf98e085c5c758d3025e29939dd12eea427c72cae9e5ea79274364851f0a languageName: node linkType: hard @@ -5148,28 +5148,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/scope-manager@npm:8.4.0" +"@typescript-eslint/scope-manager@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/scope-manager@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" - checksum: 10c0/95188c663df7db106529c6b93c4c7c61647ed34ab6dd48114e41ddf49140ff606c5501ce2ae451a988ec49b5d3874ea96ff212fc102802327b10affd2ff80a37 + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" + checksum: 10c0/868602f9324a6e15fcae017acd3b0832e9f2c8c8cd315667df37c2e7c765cda5fba7c4bede931f32cc04819ba97cf74a5fddb085c6f1c7993f1fb085ba126422 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/type-utils@npm:8.4.0" +"@typescript-eslint/type-utils@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/type-utils@npm:8.5.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.4.0" - "@typescript-eslint/utils": "npm:8.4.0" + "@typescript-eslint/typescript-estree": "npm:8.5.0" + "@typescript-eslint/utils": "npm:8.5.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ae51100594d9ca61c7577b5aed0bd10c1959725df5c38cd9653eed1fd3dbdfff9146b6e48f3409994b4c8d781b9d95025c36b30f73a5a1b3dbdee6d142cecc87 + checksum: 10c0/675d3e41f938d16e9268fd33764a4e16b12a4a9817e61d5e2508a07fe6783c69ce9d05facc61822b5647c71d767929618ed37b8b93f423f7c2ccb62cfeb4343b languageName: node linkType: hard @@ -5180,10 +5180,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/types@npm:8.4.0" - checksum: 10c0/15e09ced84827c349553530a31822f06ae5bad456c03d561b7d0c64b6ad9b5d7ca795e030bd93e65d5a2cd41bfde36ed08dcd2ff9feaa8b60a67080827f47ecb +"@typescript-eslint/types@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/types@npm:8.5.0" + checksum: 10c0/f0b666b5c001b9779bfd9e4c7d031843d07264429d5bcf5d636f26f96cd5d949a33f5d6a645b8d74b93daf565a468476a6a4935dd7135a200250fb03acbe4988 languageName: node linkType: hard @@ -5206,12 +5206,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.4.0" +"@typescript-eslint/typescript-estree@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5221,21 +5221,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/170702b024121cff9268f53de8054796b0ce025f9a78d6f2bc850a360e5f3f7032ba3ee9d4b7392726308273a5f3ade5ab31b1788b504b514bc15afc07302b37 + checksum: 10c0/f62f03d0c5dc57b2b54dbe1cbd027966f774f241279655f46c64145abb54b765176a0cd40447583ba56ada306181da9a82e39b777c78128e105e4ea98c609350 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/utils@npm:8.4.0" +"@typescript-eslint/utils@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/utils@npm:8.5.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.4.0" - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/typescript-estree": "npm:8.4.0" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/typescript-estree": "npm:8.5.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/8c9c36b3aa23f9bcc28cc4b10f0fa2996f1bc6cdd75135f08c2ef734baa30dbd2a8b92f344b90518e1fd07a486936734789fc7e90b780221a7707dad8e9c9364 + checksum: 10c0/0cb0bfdaf0da79d13c0d0379478eb14b5825d235873bc7181e70c4f6297fa1c74431ef730cbc2912fe1814dd8d46c6515ce22b39c57e8f03c337aa152fd49a4e languageName: node linkType: hard @@ -5263,13 +5263,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.4.0" +"@typescript-eslint/visitor-keys@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.5.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/339199b7fbb9ac83b530d03ab25f6bc5ceb688c9cd0ae460112cd14ee78ca7284a845aef5620cdf70170980123475ec875e85ebf595c60255ba3c0d6fe48c714 + checksum: 10c0/8b9e81968ad36e8af18ac17b63c4e0764612451ca085676c939b723549052243f63577d2706bc2da48174f11bf47587ab47e6e0b7c5b28d9f3c1ef7b9aad322d languageName: node linkType: hard @@ -6068,8 +6068,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.4.0" - "@typescript-eslint/parser": "npm:^8.4.0" + "@typescript-eslint/eslint-plugin": "npm:^8.5.0" + "@typescript-eslint/parser": "npm:^8.5.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 31276cd906171835364eaf8faf3ef739cc19d25b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:15:56 +0000 Subject: [PATCH 035/213] build(deps): bump express from 4.19.2 to 4.20.0 Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.20.0. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0) --- updated-dependencies: - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 103 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7807800b64..2f1943d6db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6253,7 +6253,27 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.20.2, body-parser@npm:^1.19.0": +"body-parser@npm:1.20.3": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" + dependencies: + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + on-finished: "npm:2.4.1" + qs: "npm:6.13.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310 + languageName: node + linkType: hard + +"body-parser@npm:^1.19.0": version: 1.20.2 resolution: "body-parser@npm:1.20.2" dependencies: @@ -8239,6 +8259,13 @@ __metadata: languageName: node linkType: hard +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + "encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -9097,41 +9124,41 @@ __metadata: linkType: hard "express@npm:^4.17.3": - version: 4.19.2 - resolution: "express@npm:4.19.2" + version: 4.20.0 + resolution: "express@npm:4.20.0" dependencies: accepts: "npm:~1.3.8" array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.2" + body-parser: "npm:1.20.3" content-disposition: "npm:0.5.4" content-type: "npm:~1.0.4" cookie: "npm:0.6.0" cookie-signature: "npm:1.0.6" debug: "npm:2.6.9" depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" + encodeurl: "npm:~2.0.0" escape-html: "npm:~1.0.3" etag: "npm:~1.8.1" finalhandler: "npm:1.2.0" fresh: "npm:0.5.2" http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" + merge-descriptors: "npm:1.0.3" methods: "npm:~1.1.2" on-finished: "npm:2.4.1" parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" + path-to-regexp: "npm:0.1.10" proxy-addr: "npm:~2.0.7" qs: "npm:6.11.0" range-parser: "npm:~1.2.1" safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" + send: "npm:0.19.0" + serve-static: "npm:1.16.0" setprototypeof: "npm:1.2.0" statuses: "npm:2.0.1" type-is: "npm:~1.6.18" utils-merge: "npm:1.0.1" vary: "npm:~1.1.2" - checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb + checksum: 10c0/626e440e9feffa3f82ebce5e7dc0ad7a74fa96079994f30048cce450f4855a258abbcabf021f691aeb72154867f0d28440a8498c62888805faf667a829fb65aa languageName: node linkType: hard @@ -12107,10 +12134,10 @@ __metadata: languageName: node linkType: hard -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 10c0/b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10c0/866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93 languageName: node linkType: hard @@ -13562,10 +13589,10 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 10c0/50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905 +"path-to-regexp@npm:0.1.10": + version: 0.1.10 + resolution: "path-to-regexp@npm:0.1.10" + checksum: 10c0/34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4 languageName: node linkType: hard @@ -14028,6 +14055,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.13.0": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -14839,6 +14875,27 @@ __metadata: languageName: node linkType: hard +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -14863,15 +14920,15 @@ __metadata: languageName: node linkType: hard -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" +"serve-static@npm:1.16.0": + version: 1.16.0 + resolution: "serve-static@npm:1.16.0" dependencies: encodeurl: "npm:~1.0.2" escape-html: "npm:~1.0.3" parseurl: "npm:~1.3.3" send: "npm:0.18.0" - checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba + checksum: 10c0/d7a5beca08cc55f92998d8b87c111dd842d642404231c90c11f504f9650935da4599c13256747b0a988442a59851343271fe8e1946e03e92cd79c447b5f3ae01 languageName: node linkType: hard @@ -14961,7 +15018,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": version: 1.0.6 resolution: "side-channel@npm:1.0.6" dependencies: From 1d26dcd7ebdefd39c76a7393a647e0ff5a24190f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:52:26 +0000 Subject: [PATCH 036/213] build(deps): bump body-parser from 1.20.2 to 1.20.3 Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3. - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3) --- updated-dependencies: - dependency-name: body-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2f1943d6db..04e2d43693 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6253,7 +6253,7 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.20.3": +"body-parser@npm:1.20.3, body-parser@npm:^1.19.0": version: 1.20.3 resolution: "body-parser@npm:1.20.3" dependencies: @@ -6273,26 +6273,6 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.19.0": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.2" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 10c0/06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9 - languageName: node - linkType: hard - "bonjour-service@npm:^1.2.1": version: 1.2.1 resolution: "bonjour-service@npm:1.2.1" From dfba1df6721ee4b3cce89181354ca1a4d2f2bb20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:50:14 +0000 Subject: [PATCH 037/213] build(deps): bump step-security/harden-runner from 2.9.1 to 2.10.1 Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.9.1 to 2.10.1. - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](https://github.com/step-security/harden-runner/compare/5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde...91182cccc01eb5e619899d80e4e971d6181294a7) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 8 ++++---- .github/workflows/codeql.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/visualize-repo.yml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 8bbd6101ad..039ea1890b 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -136,7 +136,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -208,7 +208,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -248,7 +248,7 @@ jobs: node-version: [20.13] steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5253da3753..16e09d713b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -26,7 +26,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index bf2dcfbae9..c1209291aa 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index da67f1bbab..6f141ccb24 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/visualize-repo.yml b/.github/workflows/visualize-repo.yml index 0c71b6f2d1..26d237ebaa 100644 --- a/.github/workflows/visualize-repo.yml +++ b/.github/workflows/visualize-repo.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit From 1720367ee6fc4b153efaeaa7639381eb98c2f893 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:20:12 +0000 Subject: [PATCH 038/213] build(deps-dev): bump the commitlint group with 2 updates Bumps the commitlint group with 2 updates: [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) and [@commitlint/config-angular](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-angular). Updates `@commitlint/cli` from 19.4.1 to 19.5.0 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.5.0/@commitlint/cli) Updates `@commitlint/config-angular` from 19.4.1 to 19.5.0 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-angular/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.5.0/@commitlint/config-angular) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint - dependency-name: "@commitlint/config-angular" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 218 ++++++++++++++++++++++++++------------------------- 2 files changed, 114 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index 8af1bedbcd..f628277224 100644 --- a/package.json +++ b/package.json @@ -126,8 +126,8 @@ "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.3", "@angular/compiler-cli": "^18.2.3", - "@commitlint/cli": "^19.4.1", - "@commitlint/config-angular": "^19.4.1", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", diff --git a/yarn.lock b/yarn.lock index 04e2d43693..5d07f05826 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2635,201 +2635,200 @@ __metadata: languageName: node linkType: hard -"@commitlint/cli@npm:^19.4.1": - version: 19.4.1 - resolution: "@commitlint/cli@npm:19.4.1" - dependencies: - "@commitlint/format": "npm:^19.3.0" - "@commitlint/lint": "npm:^19.4.1" - "@commitlint/load": "npm:^19.4.0" - "@commitlint/read": "npm:^19.4.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" +"@commitlint/cli@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/cli@npm:19.5.0" + dependencies: + "@commitlint/format": "npm:^19.5.0" + "@commitlint/lint": "npm:^19.5.0" + "@commitlint/load": "npm:^19.5.0" + "@commitlint/read": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + tinyexec: "npm:^0.3.0" yargs: "npm:^17.0.0" bin: commitlint: cli.js - checksum: 10c0/a829b91e690b3dd44fab9661d7defdb3bd2556f014e122a004b3ffaf25673f2c0916a112db651a9af3168f8ebdc91828d1ee4db7a1f3cef7e7f4ff9b9699aabf + checksum: 10c0/a9fb05f3de2634764a7f36f693f39e90594dfc9174e6293a43c582c6a9181f69b346094790e3268e3482d7bb0d1d29c64e15785fb50278c8628f73750214a398 languageName: node linkType: hard -"@commitlint/config-angular-type-enum@npm:^19.1.0": - version: 19.1.0 - resolution: "@commitlint/config-angular-type-enum@npm:19.1.0" - checksum: 10c0/d5fd020ea5592c08d0855b95cc195ab9270fd262340dd43b8f2d30d45577eed5eb771dfb86d4382323544c4116737349f40c49c44a3bec28e0cd8beec7507990 +"@commitlint/config-angular-type-enum@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-angular-type-enum@npm:19.5.0" + checksum: 10c0/d8bb2ad6699e3413c8a9647b59cb866be0194c84adc17b1fe3a80c8b4d1fd972c9280940add39a2d79e8482173394b548a0bdebea4be054de94c6db3830a841e languageName: node linkType: hard -"@commitlint/config-angular@npm:^19.4.1": - version: 19.4.1 - resolution: "@commitlint/config-angular@npm:19.4.1" +"@commitlint/config-angular@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-angular@npm:19.5.0" dependencies: - "@commitlint/config-angular-type-enum": "npm:^19.1.0" - checksum: 10c0/3b7ffe70cecab2c7b34902dbd161ffc365d91a1ad564d42eea22de374b769e5a9219a7e2a6ec9df02d6236904786914cc3229c7b501346716ba97c4d2727af06 + "@commitlint/config-angular-type-enum": "npm:^19.5.0" + checksum: 10c0/80291dec5cb81727931e91d20bf4b48ebded589b57b8d99c15f9ec11efee7c26d0c64207d4702361da8e77bd5dbfbb3620d7a615b0199d60e5123579dad1a0e0 languageName: node linkType: hard -"@commitlint/config-validator@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/config-validator@npm:19.0.3" +"@commitlint/config-validator@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-validator@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" ajv: "npm:^8.11.0" - checksum: 10c0/7a0d55837fb88b1f05892fed67a9582669331a452de96e4caec0c9a397cd6083701265b066e6e32a259b43737187cd31b15ab02b0459c817ea9e7b75602db3c7 + checksum: 10c0/f04b8c66448c9a4f335d1ac9625393d471d2bcc864adc834eeec52ce19939c25475bf90677504df03ab88869e883b4ebfddff68f99f7652900d6b297ef586643 languageName: node linkType: hard -"@commitlint/ensure@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/ensure@npm:19.0.3" +"@commitlint/ensure@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/ensure@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" lodash.camelcase: "npm:^4.3.0" lodash.kebabcase: "npm:^4.1.1" lodash.snakecase: "npm:^4.1.1" lodash.startcase: "npm:^4.4.0" lodash.upperfirst: "npm:^4.3.1" - checksum: 10c0/66785aeddec70e26766f6bb11b1f78892cabdb97b0b77fb97ca6457578e663188903933d5f64559205dd54754e8c2c4a902e73e1749e34cbe07a4b296e374d72 + checksum: 10c0/94955d424da36a4e9390dfb6e128160d1dcd3ffa20b835a9b6fdd92af46bf8897851f19cbeb9d12a70e9b9c36a993d3a48a60893e74f32fe1b601e1e68484d71 languageName: node linkType: hard -"@commitlint/execute-rule@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/execute-rule@npm:19.0.0" - checksum: 10c0/70d37f25a9af0a6adcd9ae7cadd4a917e8d219d316798469e2957608288d7cab8a3b03f7b132f1229a5ee545bbba139dc801d0006a7df3b756354b3890b9c1bb +"@commitlint/execute-rule@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/execute-rule@npm:19.5.0" + checksum: 10c0/966dfc09ae3fe609527fb49c7773ae210ade9d14a802a92a57ab251900a77d2968aed08df6b34f175bf4ae9bf5d675b52b346e7b10b717e8a635499e4cf42267 languageName: node linkType: hard -"@commitlint/format@npm:^19.3.0": - version: 19.3.0 - resolution: "@commitlint/format@npm:19.3.0" +"@commitlint/format@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/format@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" chalk: "npm:^5.3.0" - checksum: 10c0/857a1784481edad9013514cbcc9ec93af33acc8bd491f5d23625c53fb93841566ce110e3004ecaab7f4f89c9331940fe63b83922a4a81f419e67b70e0dc90e41 + checksum: 10c0/209a3d530d028d483886ea2337d6ec8a95b61119f53f7f1db167b13fd8a204bdcbcd704e649406a0b2285e8424b3bac9e1e6856d2a78f45e176976b9efb76e45 languageName: node linkType: hard -"@commitlint/is-ignored@npm:^19.2.2": - version: 19.2.2 - resolution: "@commitlint/is-ignored@npm:19.2.2" +"@commitlint/is-ignored@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/is-ignored@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" semver: "npm:^7.6.0" - checksum: 10c0/8e416edbf24ec386f6211d4879c002cf82fdebfd1f69556ae2ad62f6ae9b705aa20ea3108529fd44e7d246526c6133851905ee826a83efc81b2f11443a7d03c3 + checksum: 10c0/ac74cd00c45e9054366969d986a952b681283987af09995c369cab29fef693fe2c23d02f15883622759faf1787744828f832096a213992eefb9cfb16785ee02e languageName: node linkType: hard -"@commitlint/lint@npm:^19.4.1": - version: 19.4.1 - resolution: "@commitlint/lint@npm:19.4.1" +"@commitlint/lint@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/lint@npm:19.5.0" dependencies: - "@commitlint/is-ignored": "npm:^19.2.2" - "@commitlint/parse": "npm:^19.0.3" - "@commitlint/rules": "npm:^19.4.1" - "@commitlint/types": "npm:^19.0.3" - checksum: 10c0/d3b455c23480f64fb4939eb78266eee687048a5e3c4203207fb25f6b7bd1f369a8529c659018db20765a6a57f6c161d3f80a01422ca7883b1a4405cd064d8fd6 + "@commitlint/is-ignored": "npm:^19.5.0" + "@commitlint/parse": "npm:^19.5.0" + "@commitlint/rules": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/8db4d5ca3173949368ed8626316c54554dc6ca0a8eed5c636d043974e1f628e41ddf52119e2251ad402a82ee30d3db20e8a9734452bda9ac7f724b2a152e0a7f languageName: node linkType: hard -"@commitlint/load@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/load@npm:19.4.0" +"@commitlint/load@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/load@npm:19.5.0" dependencies: - "@commitlint/config-validator": "npm:^19.0.3" - "@commitlint/execute-rule": "npm:^19.0.0" - "@commitlint/resolve-extends": "npm:^19.1.0" - "@commitlint/types": "npm:^19.0.3" + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/execute-rule": "npm:^19.5.0" + "@commitlint/resolve-extends": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" chalk: "npm:^5.3.0" cosmiconfig: "npm:^9.0.0" cosmiconfig-typescript-loader: "npm:^5.0.0" lodash.isplainobject: "npm:^4.0.6" lodash.merge: "npm:^4.6.2" lodash.uniq: "npm:^4.5.0" - checksum: 10c0/805fd80b1f0e127a03b89405c60535dd89fd6676c749ef86e4a41af787f3c9cae0c18c5d5ce906bd6620f566b37d19a4edff63d21539da4212414fd741e19c72 + checksum: 10c0/72fb5f3b2299cb40374181e4fb630658c7faf0cca775bd15338e9a49f9571134ef25529319b453ed0d68917346949abf88c44f73a132f89d8965d6b3e7347d0b languageName: node linkType: hard -"@commitlint/message@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/message@npm:19.0.0" - checksum: 10c0/753bf18838ebde4464e8f4b346d04d3367fbb90b542db6a54da08aa241497b4050a6ecd09dba4f37f6348855fa86e6625350d596fe5dea7a8dd4faee49ab76a7 +"@commitlint/message@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/message@npm:19.5.0" + checksum: 10c0/72b990ba8c3c41441bff2126f4ea536a635c9768dee7000b4951770ac82c5e0bb4c2d408cf28cadbf51a0abbdb7a09ddd36e0968af0997fcc166596d4c3866a7 languageName: node linkType: hard -"@commitlint/parse@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/parse@npm:19.0.3" +"@commitlint/parse@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/parse@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" conventional-changelog-angular: "npm:^7.0.0" conventional-commits-parser: "npm:^5.0.0" - checksum: 10c0/ede8d5bfb37520337ea7836a68f280cdb4b9788d0586b8be676394b3dd8a7a9626391178c4f94d334c5b8d95ea75c73939c40c8c9d81c372cf7743f5bff3d0e1 + checksum: 10c0/63655cedcf48b29613ef959155ee83f49942406abe40ee6b64ad989a169a0582451dcf15a9c9b69a66011ae451ab2e086fb80c1823cc7ddf275705ff627660b1 languageName: node linkType: hard -"@commitlint/read@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/read@npm:19.4.0" +"@commitlint/read@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/read@npm:19.5.0" dependencies: - "@commitlint/top-level": "npm:^19.0.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" + "@commitlint/top-level": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" git-raw-commits: "npm:^4.0.0" minimist: "npm:^1.2.8" - checksum: 10c0/b0243feeb903fe4bb15bc352b10116451ac280fffbf2220a684e0f01ce4583e558b944ff8a6901f8a70faa0ec6020fa720da70328fb110747dbd4a7162695125 + tinyexec: "npm:^0.3.0" + checksum: 10c0/c2d6f958930e815337a4994779ca1dfcbbb6b81b8f3098cc7380e2cc5ddeae69ebd839b48fecd08950e565d43bc42c479915c578eaf57b3877706bca1fad6b8a languageName: node linkType: hard -"@commitlint/resolve-extends@npm:^19.1.0": - version: 19.1.0 - resolution: "@commitlint/resolve-extends@npm:19.1.0" +"@commitlint/resolve-extends@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/resolve-extends@npm:19.5.0" dependencies: - "@commitlint/config-validator": "npm:^19.0.3" - "@commitlint/types": "npm:^19.0.3" + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" global-directory: "npm:^4.0.1" import-meta-resolve: "npm:^4.0.0" lodash.mergewith: "npm:^4.6.2" resolve-from: "npm:^5.0.0" - checksum: 10c0/5b4c69694ddf63f15499a940f99a39bdf0ae1943eb4731c7ea10572e416e44d6d57280faa8011801f4dc64aa70e55eb3b510c86c8e2b76820dcfe88b421afd4a + checksum: 10c0/10569a46036b7aa93c77dc5001a67bc9f36b340b97b2fd39b5ee95b0efc5e35335c61f86d4ba0bb5a8e6dd49ccf956990cce9ee29cfea9ba567e02668be01841 languageName: node linkType: hard -"@commitlint/rules@npm:^19.4.1": - version: 19.4.1 - resolution: "@commitlint/rules@npm:19.4.1" +"@commitlint/rules@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/rules@npm:19.5.0" dependencies: - "@commitlint/ensure": "npm:^19.0.3" - "@commitlint/message": "npm:^19.0.0" - "@commitlint/to-lines": "npm:^19.0.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" - checksum: 10c0/d2052d193dc04b6fc0588ea57eab8490c408bd725f8c4bdb8aa274dc3b5a6ba45d23b718675c6e69304c4fe6c8e92e45b6d6c9de9a5fef266a50e7a71cf3058a + "@commitlint/ensure": "npm:^19.5.0" + "@commitlint/message": "npm:^19.5.0" + "@commitlint/to-lines": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/8dc5a6e8277b78e9010f3bbc3aa3af6ac044d82501fb4df91f4edf14214a7dccb9bc9a85f7396872e197726edb506c8301e8b10d9c92e35fb44fe6423a5eeb23 languageName: node linkType: hard -"@commitlint/to-lines@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/to-lines@npm:19.0.0" - checksum: 10c0/9e8836668d176f4ddfa30bd6619cba9764223c5e0a76473c470b373069785ae2eb7af17db67e0e11ff30d8db997d0dd06a148bd8053c71fea1d03fc2278f0e8b +"@commitlint/to-lines@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/to-lines@npm:19.5.0" + checksum: 10c0/7674b4b6887c09e84728b9fa9c986ab77db400bf53ec83aaae84e03e0f3ed33088d450d1f67135f0f7a4cbc1121181775199779e1ca162fe604c902987e3008f languageName: node linkType: hard -"@commitlint/top-level@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/top-level@npm:19.0.0" +"@commitlint/top-level@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/top-level@npm:19.5.0" dependencies: find-up: "npm:^7.0.0" - checksum: 10c0/27ee2797f8d3d75aec3e9bf151b48fdbe4c362effbc2e7a11e6326342af06a29983fea5ad8756587e285c035b5ec45d4c4bc28cd698b62db31ca326db46efb64 + checksum: 10c0/8c1edc513c8d6655606e52d160d31ccd4b13234400ca67d21782798ab66701780b1ec21a7bb411fe8270db7735f10d39d3b0a3e52f3ddd1109b80741eb512bb4 languageName: node linkType: hard -"@commitlint/types@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/types@npm:19.0.3" +"@commitlint/types@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/types@npm:19.5.0" dependencies: "@types/conventional-commits-parser": "npm:^5.0.0" chalk: "npm:^5.3.0" - checksum: 10c0/279454409771097432cb3ecd4930b8f10e99e150b9306e931b69e4e80011a4251f326523bfaba59fcf9a9db7978c76073b7c7c07fbad6b90e045cb0fa2b70047 + checksum: 10c0/f4a93992f43b23cd5af200c69bb73227fdc0f78a6f7ebcda73dad10d558c1ac66ff164aa6dc3c2ddb322c9ed8b1a89b05f458e40d7c440a0358f435d2d71c2df languageName: node linkType: hard @@ -6057,8 +6056,8 @@ __metadata: "@angular/platform-server": "npm:^18.2.3" "@angular/router": "npm:^18.2.3" "@codemirror/legacy-modes": "npm:^6.4.1" - "@commitlint/cli": "npm:^19.4.1" - "@commitlint/config-angular": "npm:^19.4.1" + "@commitlint/cli": "npm:^19.5.0" + "@commitlint/config-angular": "npm:^19.5.0" "@compodoc/compodoc": "npm:^1.1.25" "@fortawesome/angular-fontawesome": "npm:^0.15.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" @@ -9072,7 +9071,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1, execa@npm:~8.0.1": +"execa@npm:~8.0.1": version: 8.0.1 resolution: "execa@npm:8.0.1" dependencies: @@ -15912,6 +15911,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.0": + version: 0.3.0 + resolution: "tinyexec@npm:0.3.0" + checksum: 10c0/138a4f4241aea6b6312559508468ab275a31955e66e2f57ed206e0aaabecee622624f208c5740345f0a66e33478fd065e359ed1eb1269eb6fd4fa25d44d0ba3b + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" From 375a19098d0f20e07dbe409b3191c02e697f53da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:32:34 +0000 Subject: [PATCH 039/213] build(deps-dev): bump husky from 9.1.5 to 9.1.6 Bumps [husky](https://github.com/typicode/husky) from 9.1.5 to 9.1.6. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.1.5...v9.1.6) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f628277224..866a79248e 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "eslint-plugin-jsdoc": "^50.2.2", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", - "husky": "^9.1.5", + "husky": "^9.1.6", "jasmine-core": "~5.3.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", diff --git a/yarn.lock b/yarn.lock index 5d07f05826..bafaaf2fcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6088,7 +6088,7 @@ __metadata: eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" - husky: "npm:^9.1.5" + husky: "npm:^9.1.6" jasmine-core: "npm:~5.3.0" json2typescript: "npm:^1.5.1" karma: "npm:~6.4.4" @@ -10351,12 +10351,12 @@ __metadata: languageName: node linkType: hard -"husky@npm:^9.1.5": - version: 9.1.5 - resolution: "husky@npm:9.1.5" +"husky@npm:^9.1.6": + version: 9.1.6 + resolution: "husky@npm:9.1.6" bin: husky: bin.js - checksum: 10c0/f42efb95a026303eb880898760f802d88409780dd72f17781d2dfc302177d4f80b641cf1f1694f53f6d97c536c7397684133d8c8fe4a4426f7460186a7d1c6b8 + checksum: 10c0/705673db4a247c1febd9c5df5f6a3519106cf0335845027bb50a15fba9b1f542cb2610932ede96fd08008f6d9f49db0f15560509861808b0031cdc0e7c798bac languageName: node linkType: hard From f7e2c3361ff9a7106b84aa3dace2f78e7bfca4cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 08:26:33 +0000 Subject: [PATCH 040/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/18.2.4/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.3...18.2.4) Updates `@angular/cli` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/18.2.4/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.3...18.2.4) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 106 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 866a79248e..e34df6d49d 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.3", + "@angular-devkit/build-angular": "^18.2.4", "@angular-eslint/builder": "^18.3.0", "@angular-eslint/eslint-plugin": "^18.3.0", "@angular-eslint/eslint-plugin-template": "^18.3.0", "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", - "@angular/cli": "^18.2.3", + "@angular/cli": "^18.2.4", "@angular/compiler-cli": "^18.2.3", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index bafaaf2fcc..5b6c91c37e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.3": - version: 0.1802.3 - resolution: "@angular-devkit/architect@npm:0.1802.3" +"@angular-devkit/architect@npm:0.1802.4": + version: 0.1802.4 + resolution: "@angular-devkit/architect@npm:0.1802.4" dependencies: - "@angular-devkit/core": "npm:18.2.3" + "@angular-devkit/core": "npm:18.2.4" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/3b69b527e55c7112d972ff3e7f4488bef843978829ee7524dbe46db992f2bc72936bd044b9c577dff81ebc59fb5695e4713b3bbf00b6eea8ce79f25cc6ef3408 + checksum: 10c0/cf60d7dfe380e932d540440b61ea7e97bd70f77acfc8c13093cf9c69d1011ae76ba48b28da1f1cb8ef7f3021c693e11c0b3514b6f6a7af983bf3ac113870a90e languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular-devkit/build-angular@npm:18.2.3" +"@angular-devkit/build-angular@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/build-angular@npm:18.2.4" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.3" - "@angular-devkit/build-webpack": "npm:0.1802.3" - "@angular-devkit/core": "npm:18.2.3" - "@angular/build": "npm:18.2.3" + "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/build-webpack": "npm:0.1802.4" + "@angular-devkit/core": "npm:18.2.4" + "@angular/build": "npm:18.2.4" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.3" + "@ngtools/webpack": "npm:18.2.4" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/69aee447e68576137507a1f6b45535e31534d835dcd8e80e2812d1d4d52c7b3b74c5618d8f6a0ff07a2298737f285be5233172e7af2c8658b3c2dc936b06e23c + checksum: 10c0/855292cbcd02e7793d270373356c4ff35775ab7981bb6bbc044bb822906a8e91fbad568a9afff5b80e5720f8dd47e1a95618e7141ade63c3c1ce684dffd961c5 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.3": - version: 0.1802.3 - resolution: "@angular-devkit/build-webpack@npm:0.1802.3" +"@angular-devkit/build-webpack@npm:0.1802.4": + version: 0.1802.4 + resolution: "@angular-devkit/build-webpack@npm:0.1802.4" dependencies: - "@angular-devkit/architect": "npm:0.1802.3" + "@angular-devkit/architect": "npm:0.1802.4" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/9fb22d3f32213183b5f58f8bb12aee2a150549c9d8f982ad1984cc294cec70c700e8f72fccfa0d10e41c9b29076d28f5df6363626d89cb272d62742aea613075 + checksum: 10c0/b105403e6ae52376b32c0026a0030ed820be1ee83540a1fad245f7762c7674c83447bb16d8b13b017701ea912aede7e20115aecbdae4e72118849de8d5abc2ac languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.3": - version: 18.2.3 - resolution: "@angular-devkit/core@npm:18.2.3" +"@angular-devkit/core@npm:18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/core@npm:18.2.4" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/52f7586a6b379a889f6d656f7e1a98d1c051c38753ba4565f34fbdc74da90e53a4be6855d32cc216045caa9932f3ce4a9da56027138045f79351ebe388b959a1 + checksum: 10c0/e2a1ffe35dfc25709931ee21d954d305511e988e48e94439e0e63401d1e2f048dc3f96f9a4efe5a3fadb5777ce74b55f1ceb233ec3b53cd33b64d466f5c27d37 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.3": - version: 18.2.3 - resolution: "@angular-devkit/schematics@npm:18.2.3" +"@angular-devkit/schematics@npm:18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/schematics@npm:18.2.4" dependencies: - "@angular-devkit/core": "npm:18.2.3" + "@angular-devkit/core": "npm:18.2.4" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/418a99fffee0841a04c5b75af360f270f8ef9c8f65da091a3ae520bbcfa32966dee059bcbdbb9f89432f8ee853a2ac15742c793a9e203f1389a0554d10329daf + checksum: 10c0/c0c4ef9490c2f002e9c150d2168c6bba147ef2318c1d6fcd39053cadab460691065ed6c2da51c615e7f78566816652b35c906667994c6f4c7ed24c589c372f94 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.3": - version: 18.2.3 - resolution: "@angular/build@npm:18.2.3" +"@angular/build@npm:18.2.4": + version: 18.2.4 + resolution: "@angular/build@npm:18.2.4" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.3" + "@angular-devkit/architect": "npm:0.1802.4" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/d8bb935237b3c6334a23d9647b48b732fefd801d78e673231b3ac69e1989725f5d2606054492fc0edfda3a06a9388f89770289b1e24907845af3525039bcde36 + checksum: 10c0/204927d738257a91620908fe70086b9c3e47184ebeceb20647c282debc22b0ad502561e04f6ca9a03a8fd802d03e570c6c91a51c358bee5c7c1013dce7172329 languageName: node linkType: hard -"@angular/cli@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/cli@npm:18.2.3" +"@angular/cli@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/cli@npm:18.2.4" dependencies: - "@angular-devkit/architect": "npm:0.1802.3" - "@angular-devkit/core": "npm:18.2.3" - "@angular-devkit/schematics": "npm:18.2.3" + "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/schematics": "npm:18.2.4" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.3" + "@schematics/angular": "npm:18.2.4" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/9210e7040440ffa4d75489e8c5302e2b981035d7b91c40969099c8278b5e27f32ad8b79b213f5e062eea3b98aa842117b99cbad3bcb8815c081d40394b7c17ad + checksum: 10c0/7da10419ec3c09ddedd18e2a2621bc493b4849309b7b66d08cb2b76d8354aae2ba1afc8a4d5c843d9cc99b04cb5a6d4e386e4235647e3d35bdba3f06d124847e languageName: node linkType: hard @@ -3934,9 +3934,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.3": - version: 18.2.3 - resolution: "@ngtools/webpack@npm:18.2.3" +"@ngtools/webpack@npm:18.2.4": + version: 18.2.4 + resolution: "@ngtools/webpack@npm:18.2.4" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3946,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/61d1e12f55160d3973fa424b3af45ed8f859d4a30f7bc414e0b000c63ef12c418df2c43bca7f1c28d3fc3225a3d3b2d9b7fa025fb03533b053ae5b5850863944 + checksum: 10c0/06868c04557112cae4cb4158fe6aeda639d9e06033b79cd2e0ec88f94a1ee89df829fd1e9c590ca4af33c09a26a1561b7d864c3f7d5ff29b89938207748d082b languageName: node linkType: hard @@ -4358,19 +4358,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.3": - version: 18.2.3 - resolution: "@schematics/angular@npm:18.2.3" +"@schematics/angular@npm:18.2.4": + version: 18.2.4 + resolution: "@schematics/angular@npm:18.2.4" dependencies: - "@angular-devkit/core": "npm:18.2.3" - "@angular-devkit/schematics": "npm:18.2.3" + "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/schematics": "npm:18.2.4" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/233142c4688acb75079a844860e210db0af4147fb51babd413aefb0e8414f831e272865ad7fbe00d693771cde9775631bedacc0d953926d8a40dab39767ee4d0 + checksum: 10c0/22579e170d9d07c1384d8af1385db751995c9172f127001d4e665a32199141eed7240f564e4886132bb7dd751d5c5a028ab801b3a764830364839512e19a3f42 languageName: node linkType: hard @@ -6037,14 +6037,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.3" + "@angular-devkit/build-angular": "npm:^18.2.4" "@angular-eslint/builder": "npm:^18.3.0" "@angular-eslint/eslint-plugin": "npm:^18.3.0" "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" "@angular/animations": "npm:^18.2.3" - "@angular/cli": "npm:^18.2.3" + "@angular/cli": "npm:^18.2.4" "@angular/common": "npm:^18.2.3" "@angular/compiler": "npm:^18.2.3" "@angular/compiler-cli": "npm:^18.2.3" From e640d63aed133a4795cb721b5e89ffd20f9b3f22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:44:56 +0000 Subject: [PATCH 041/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.2.2 to 50.2.3 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.2 to 50.2.3. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.2...v50.2.3) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index e34df6d49d..8f995130d4 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-jsdoc": "^50.2.2", + "eslint-plugin-jsdoc": "^50.2.3", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 5b6c91c37e..49fe82ee5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6084,7 +6084,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.30.0" - eslint-plugin-jsdoc: "npm:^50.2.2" + eslint-plugin-jsdoc: "npm:^50.2.3" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -8784,9 +8784,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.2.2": - version: 50.2.2 - resolution: "eslint-plugin-jsdoc@npm:50.2.2" +"eslint-plugin-jsdoc@npm:^50.2.3": + version: 50.2.3 + resolution: "eslint-plugin-jsdoc@npm:50.2.3" dependencies: "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" @@ -8801,7 +8801,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/f41d30246f6a4b6acb55e8cd75cf4fc256315e141ab25f7740fa6fa58cdd24e08cb672b4a350da93aeb126d210bd25981310a50f97cfb108f6a7ce8668b6b90a + checksum: 10c0/244bfc815a082fac2d22867b6efb5ed25dd2a76e08ae1a6b83a522360a44138eea03d23450db947d969d015c17953a0925bad3926ce51856150a20e23fe6a954 languageName: node linkType: hard From 6d60b1c7853ade162e0ced27c3ceefc7d2d8ea9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:18:37 +0000 Subject: [PATCH 042/213] build(deps): bump github/codeql-action from 3.26.6 to 3.26.7 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.7. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/4dd16135b69a43b6c8efb853346f8437d92d3c93...8214744c546c1e5c8f03dde8fab3a7353211988d) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 16e09d713b..6f9627569a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 + uses: github/codeql-action/init@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 + uses: github/codeql-action/autobuild@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 + uses: github/codeql-action/analyze@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 6f141ccb24..a71b2294a4 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 + uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: sarif_file: results.sarif From 77a68bd326a06ece38151a8161293897e5f3a782 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 11:14:30 +0000 Subject: [PATCH 043/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.3` | `18.2.4` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.3` | `18.2.4` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.3` | `18.2.4` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.3` | `18.2.4` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.3` | `18.2.4` | | [@angular/localize](https://github.com/angular/angular) | `18.2.3` | `18.2.4` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.3` | `18.2.4` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.3` | `18.2.4` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.3` | `18.2.4` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.3` | `18.2.4` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.3` | `18.2.4` | Updates `@angular/animations` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/animations) Updates `@angular/common` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/common) Updates `@angular/compiler` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/compiler) Updates `@angular/core` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/core) Updates `@angular/forms` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/forms) Updates `@angular/localize` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.3...18.2.4) Updates `@angular/platform-browser` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/platform-server) Updates `@angular/router` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/router) Updates `@angular/compiler-cli` from 18.2.3 to 18.2.4 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.4/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 8f995130d4..5d488bcdc9 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.3", - "@angular/common": "^18.2.3", - "@angular/compiler": "^18.2.3", - "@angular/core": "^18.2.3", - "@angular/forms": "^18.2.3", - "@angular/localize": "^18.2.3", - "@angular/platform-browser": "^18.2.3", - "@angular/platform-browser-dynamic": "^18.2.3", - "@angular/platform-server": "^18.2.3", - "@angular/router": "^18.2.3", + "@angular/animations": "^18.2.4", + "@angular/common": "^18.2.4", + "@angular/compiler": "^18.2.4", + "@angular/core": "^18.2.4", + "@angular/forms": "^18.2.4", + "@angular/localize": "^18.2.4", + "@angular/platform-browser": "^18.2.4", + "@angular/platform-browser-dynamic": "^18.2.4", + "@angular/platform-server": "^18.2.4", + "@angular/router": "^18.2.4", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.0", "@angular-eslint/template-parser": "^18.3.0", "@angular/cli": "^18.2.4", - "@angular/compiler-cli": "^18.2.3", + "@angular/compiler-cli": "^18.2.4", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 49fe82ee5f..8865d0a676 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/animations@npm:18.2.3" +"@angular/animations@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/animations@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.3 - checksum: 10c0/a6e6b7bca79889e670e053674ef1ccd5c4bba26b5144385e2e08e8a5c1527446d19688bc52bde4e1365a741e6113708367468096603ac1ed820994cdd6aabe16 + "@angular/core": 18.2.4 + checksum: 10c0/85b161d32b5009fb9bdc5b9311ad8d274dc44f7aab9e4b1dfb449724b079b9652916223ad1518b1b027d1b1d22b079e886fd9bc4bf6d3c68b9cb1ffd3bbbd59f languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/common@npm:18.2.3" +"@angular/common@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/common@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.3 + "@angular/core": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/ce3b5ae6e70fdeb23a1164bf2436ab925e48efb118c7f8fd85869af7eb97844d1d0c72069644153eab7d8dde066504014ff8b38e5e61aab749b349f796eec3b7 + checksum: 10c0/8e167a48e7ac85277c3f52e797a2dfe6eb804b862ccd1b3d8c0e1b9d3c558df699d6e92dd7ca6d75de63b8b89292d3a9e74baba8a8c246ddb4ca0c4b9a7230ef languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/compiler-cli@npm:18.2.3" +"@angular/compiler-cli@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/compiler-cli@npm:18.2.4" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.3 + "@angular/compiler": 18.2.4 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/41ea24eba5a9990c7878879553cb3fbffaacbcc3a22e5d4397ad3e7325e3890c312cdbe6efbc8d95a46124c63654598bb58be60fc81a46e0f3dc78480fc0760a + checksum: 10c0/5535e188096e789960cfedcab68162ea088c62fc7deb0aac4223ddd8a976e4935cec3b0fc999a4d7c0daaaab9811f9de92735384f6f519c32481231bb59a9964 languageName: node linkType: hard -"@angular/compiler@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/compiler@npm:18.2.3" +"@angular/compiler@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/compiler@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.3 + "@angular/core": 18.2.4 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/d2ed8dc2e33d863f17931658487b2af6d880605ee3e0cff71bccdc6a8be1e852cb0097ccdb8679401aaeaee758e3f4d1c39c02ec09342fb17a2cb07bc8994fc3 + checksum: 10c0/fc7d0162652572afebcd7a19ae2a68dd1eeea926b1b4e34db9ff8788ce58ad4b89ca2a99335d8ca3bb75db2a60273e09437bafd325a556a2b63d73a5894b19b4 languageName: node linkType: hard -"@angular/core@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/core@npm:18.2.3" +"@angular/core@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/core@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/c8e8ac763bb6150b76d8c47111fa9a7db9d6cddf39f0a2d93cb89678029717e6e36b89b7cd8f819c5162a14e829ad291394eaabb072578de5c32d19dba68d3c5 + checksum: 10c0/994c93006297964670050e108b32a73329e5ad734247a0f5cf02abe8c52c14ea1fa819955aecb634ec7228d5aea8cc5488f21d8e55f4eff61db697b3f88209aa languageName: node linkType: hard -"@angular/forms@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/forms@npm:18.2.3" +"@angular/forms@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/forms@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.3 - "@angular/core": 18.2.3 - "@angular/platform-browser": 18.2.3 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/95e778f6e7bd27131dbf14503c76f731eb0fcfad73e55d32d59fb510f15f8cb42459ea488e380164b0c62d465356221a81463c226d4e44e454960cb6eea3b19c + checksum: 10c0/3392feeebba64068cf692fdee1dcf8a1d6c91229b85440a75627c4ec2b519af7435310376568fa10fb94c2796ee40497ea0b5e7847d9599d286bcd35d7f68874 languageName: node linkType: hard -"@angular/localize@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/localize@npm:18.2.3" +"@angular/localize@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/localize@npm:18.2.4" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.3 - "@angular/compiler-cli": 18.2.3 + "@angular/compiler": 18.2.4 + "@angular/compiler-cli": 18.2.4 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/31976a0045da07347e1974fff9f51cecf354c1f9cf0c7f4d5a25369f71adc95fea416ef4fe7f71dd879c9f1b01f6f1c34feeae74c81982df4f4c9977e1c3cff7 + checksum: 10c0/858b0a4f08e4e00ecd94d1cd8112d455ca6581830d3f01cc08635a4546f28c839930d5b5caa442938769480f7020b23a49d4100aeeb0b0780a4d2b607fa8f3db languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/platform-browser-dynamic@npm:18.2.3" +"@angular/platform-browser-dynamic@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-browser-dynamic@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.3 - "@angular/compiler": 18.2.3 - "@angular/core": 18.2.3 - "@angular/platform-browser": 18.2.3 - checksum: 10c0/422a8e3d2989c4bfab15f14ae3618ee4ddd8744502dd57f5140c6765e825bdcf21b7bcb5c203945f80a2c7e64e18a4a8d00f576d903dd24d35a2df046bff4e6d + "@angular/common": 18.2.4 + "@angular/compiler": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 + checksum: 10c0/efbf21ea037746071f17acec38cabec7df5443c094e7a3540fbe150154394b32934812415b8860755b6685fdff1b757386e3616da464b2ac8b79e41d58ded647 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/platform-browser@npm:18.2.3" +"@angular/platform-browser@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-browser@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.3 - "@angular/common": 18.2.3 - "@angular/core": 18.2.3 + "@angular/animations": 18.2.4 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/ef21758b368ef4aa84b44f9c7147df138b1051f4f6e3270fa5484ab9a0df47597d7f1bd9725061a4b0e0cc010d15d1769601970349c54a67211a0ad367d4dadf + checksum: 10c0/acbce33423cdcd181984b92f896db7924de86962c69612be1660cc598dcbf1940481cb8c71f6dcedc7b8122b6a0f429a55ce0558399a662418f3a413e40af6fb languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/platform-server@npm:18.2.3" +"@angular/platform-server@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-server@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.3 - "@angular/common": 18.2.3 - "@angular/compiler": 18.2.3 - "@angular/core": 18.2.3 - "@angular/platform-browser": 18.2.3 - checksum: 10c0/9a9a36bd5083ae4be507f64b7d5b3f542562e53046747a235a8e9ff5d0eaf866c1acd389602e751106d97aa6b724f21ed9f4ac9723ee47889e73b9a1d0bfda21 + "@angular/animations": 18.2.4 + "@angular/common": 18.2.4 + "@angular/compiler": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 + checksum: 10c0/b5b38459e801bf5ea3e4b030b2875fd8b3c42b75c72bfafc10eff3e9500a1a0e9dadf7399c8739db73790b668c733ed0ad1d504ebc32c52ce4c48d1b390fbe6c languageName: node linkType: hard -"@angular/router@npm:^18.2.3": - version: 18.2.3 - resolution: "@angular/router@npm:18.2.3" +"@angular/router@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/router@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.3 - "@angular/core": 18.2.3 - "@angular/platform-browser": 18.2.3 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/724d9b46659f440067e079df2c9e8cbc5fa98aad1b325bfc334fcf469be4943055b13156d725a12c916137b8b4d7cd2b21234923fb4637ba25efa9ced3d43e0b + checksum: 10c0/6bf286fa53684ef49b28b4e6c33387da894eedc6281d012d68905240a7d84770481da43f3df70567616b5e74db3041d19521d2cf64f20af4283d67f31b1abecb languageName: node linkType: hard @@ -6043,18 +6043,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" "@angular-eslint/schematics": "npm:^18.3.0" "@angular-eslint/template-parser": "npm:^18.3.0" - "@angular/animations": "npm:^18.2.3" + "@angular/animations": "npm:^18.2.4" "@angular/cli": "npm:^18.2.4" - "@angular/common": "npm:^18.2.3" - "@angular/compiler": "npm:^18.2.3" - "@angular/compiler-cli": "npm:^18.2.3" - "@angular/core": "npm:^18.2.3" - "@angular/forms": "npm:^18.2.3" - "@angular/localize": "npm:^18.2.3" - "@angular/platform-browser": "npm:^18.2.3" - "@angular/platform-browser-dynamic": "npm:^18.2.3" - "@angular/platform-server": "npm:^18.2.3" - "@angular/router": "npm:^18.2.3" + "@angular/common": "npm:^18.2.4" + "@angular/compiler": "npm:^18.2.4" + "@angular/compiler-cli": "npm:^18.2.4" + "@angular/core": "npm:^18.2.4" + "@angular/forms": "npm:^18.2.4" + "@angular/localize": "npm:^18.2.4" + "@angular/platform-browser": "npm:^18.2.4" + "@angular/platform-browser-dynamic": "npm:^18.2.4" + "@angular/platform-server": "npm:^18.2.4" + "@angular/router": "npm:^18.2.4" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" From 82910f19bf0412db4f3fced80e781c29913abfd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 11:24:52 +0000 Subject: [PATCH 044/213] build(deps-dev): bump the angular-eslint group with 5 updates Bumps the angular-eslint group with 5 updates: | Package | From | To | | --- | --- | --- | | [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `18.3.0` | `18.3.1` | | [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `18.3.0` | `18.3.1` | | [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `18.3.0` | `18.3.1` | | [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `18.3.0` | `18.3.1` | | [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `18.3.0` | `18.3.1` | Updates `@angular-eslint/builder` from 18.3.0 to 18.3.1 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.3.1/packages/builder) Updates `@angular-eslint/eslint-plugin` from 18.3.0 to 18.3.1 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.3.1/packages/eslint-plugin) Updates `@angular-eslint/eslint-plugin-template` from 18.3.0 to 18.3.1 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.3.1/packages/eslint-plugin-template) Updates `@angular-eslint/schematics` from 18.3.0 to 18.3.1 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.3.1/packages/schematics) Updates `@angular-eslint/template-parser` from 18.3.0 to 18.3.1 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.3.1/packages/template-parser) --- updated-dependencies: - dependency-name: "@angular-eslint/builder" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-eslint - dependency-name: "@angular-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-eslint - dependency-name: "@angular-eslint/eslint-plugin-template" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-eslint - dependency-name: "@angular-eslint/schematics" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-eslint - dependency-name: "@angular-eslint/template-parser" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-eslint ... Signed-off-by: dependabot[bot] --- package.json | 10 +++---- yarn.lock | 82 ++++++++++++++++++++++++++-------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 5d488bcdc9..1000ab23f5 100644 --- a/package.json +++ b/package.json @@ -119,11 +119,11 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^18.2.4", - "@angular-eslint/builder": "^18.3.0", - "@angular-eslint/eslint-plugin": "^18.3.0", - "@angular-eslint/eslint-plugin-template": "^18.3.0", - "@angular-eslint/schematics": "^18.3.0", - "@angular-eslint/template-parser": "^18.3.0", + "@angular-eslint/builder": "^18.3.1", + "@angular-eslint/eslint-plugin": "^18.3.1", + "@angular-eslint/eslint-plugin-template": "^18.3.1", + "@angular-eslint/schematics": "^18.3.1", + "@angular-eslint/template-parser": "^18.3.1", "@angular/cli": "^18.2.4", "@angular/compiler-cli": "^18.2.4", "@commitlint/cli": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 8865d0a676..7d9dbb4948 100644 --- a/yarn.lock +++ b/yarn.lock @@ -285,92 +285,92 @@ __metadata: languageName: node linkType: hard -"@angular-eslint/builder@npm:^18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/builder@npm:18.3.0" +"@angular-eslint/builder@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/builder@npm:18.3.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/03aeea6eeccca6dbaccf5ba2b2014bf53d8b2b2af6a5df44306654d408fc97b621ba61fa0b862411187107aae1f63bae04a7dae13a35af46a653ccb043463f29 + checksum: 10c0/26202232826e05d04849611733fed9c53cdf6c97bc1235a3b1cbd8eba3c6d09da0b28e6813780e8f726037f2ecacbc2bc722afe62e3a3a192b20848413a11c1d languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/bundled-angular-compiler@npm:18.3.0" - checksum: 10c0/06bb1acad2e8ac7cbed781c7b5c026bc746a2d6a471c9367ad929d29174eefdaab2914ace5f597b11da6ae971a42dc5f50efd2a30d026cc4b14a3f3d86ac94bb +"@angular-eslint/bundled-angular-compiler@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/bundled-angular-compiler@npm:18.3.1" + checksum: 10c0/8808ca1927cd95f5aae8471d0d16c69f34bb411232cf8a53a1b585255dae9b460fd7bea17d1b1fdc2ea05971a79b860446ee62436d479d16b8a37241caa8b655 languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:18.3.0, @angular-eslint/eslint-plugin-template@npm:^18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/eslint-plugin-template@npm:18.3.0" +"@angular-eslint/eslint-plugin-template@npm:18.3.1, @angular-eslint/eslint-plugin-template@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin-template@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.0" - "@angular-eslint/utils": "npm:18.3.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" aria-query: "npm:5.3.0" axobject-query: "npm:4.1.0" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/cc43370c3b35bbe5f22eac01f0a81a9ac5877a2b25bcc248f93009f67b030e4eb9c3d6562658200475f00354aa8e672c1c172e23e198d32d288b31e48d24b0a4 + checksum: 10c0/43cbdbb42c5dd99d9c54fc94f1603c57d72c60d33d1c1efc45de3cd0b11f29a206ad7035f329d4ee93c14957c3e32f854faa09b9c11004107e4630e53fdabf8a languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:18.3.0, @angular-eslint/eslint-plugin@npm:^18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/eslint-plugin@npm:18.3.0" +"@angular-eslint/eslint-plugin@npm:18.3.1, @angular-eslint/eslint-plugin@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.0" - "@angular-eslint/utils": "npm:18.3.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/8f671554076c312aae8e229adc53dce728a35c346a62e2891193ae5a5c15d0cb52b1c3025b5765e91c319dc936f31a060cc2f9b53c98c1ca94834b9b9e3b38fd + checksum: 10c0/5959d515e5eb206127c137db8b247c4e1416fe755c0e1460e611cdfd37938081ecdd7417bcdf2bf519b447d0724f9ca1e596a76b4fadbbf4f8dff1153c8a771f languageName: node linkType: hard -"@angular-eslint/schematics@npm:^18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/schematics@npm:18.3.0" +"@angular-eslint/schematics@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/schematics@npm:18.3.1" dependencies: - "@angular-eslint/eslint-plugin": "npm:18.3.0" - "@angular-eslint/eslint-plugin-template": "npm:18.3.0" + "@angular-eslint/eslint-plugin": "npm:18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:18.3.1" ignore: "npm:5.3.2" semver: "npm:7.6.3" strip-json-comments: "npm:3.1.1" peerDependencies: "@angular-devkit/core": ">= 18.0.0 < 19.0.0" "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" - checksum: 10c0/cc69110e6e4e2f6212449679fae3ef38a81fbd2792c050ba6a9ae06aadeb2c60e7f8568ffcf9a7b68236172c5f845681dcfaf8f04d9029b319167bde115051f8 + checksum: 10c0/0083120df5993a3adbd8b19817c9d1e0ade95245292d47be97e0ef3c0eec1f4dd2bcde6e080597127bc1875236d93774a6fa0134a0f23edd74b074c78325ba03 languageName: node linkType: hard -"@angular-eslint/template-parser@npm:^18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/template-parser@npm:18.3.0" +"@angular-eslint/template-parser@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/template-parser@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" eslint-scope: "npm:^8.0.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/df124a1ee4f160847ee105f7c674976b2017071bb92d100b3c90de91565296f8c95c138e2382213cb666a9bbb90aaae4aafc10e58684dc59ec11f19d6b2d4d4c + checksum: 10c0/a109cae442bc115b0fc2d4a40402f02e75497945a5f827422143d20ed3957b3f165920c380a2731758cb23f71de31cac53fc7e2597eba6c674cf87200a2238d2 languageName: node linkType: hard -"@angular-eslint/utils@npm:18.3.0": - version: 18.3.0 - resolution: "@angular-eslint/utils@npm:18.3.0" +"@angular-eslint/utils@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/utils@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/c3e0e1d580af6462f306703f1016c15ff57399315bba8425355d531cb42a215b547a02699e2c2d68d01011d9a7a64c0d4d20bec9c36ff195fbc87fdf5af346be + checksum: 10c0/c0d1b7e78736957c5555bd389fb81674e7d15d21b07457c2a669d12b26b9c499cb2bbbfc6575c2d173ad18187ff151f97962d46182bd5df8fc11168672a29266 languageName: node linkType: hard @@ -6038,11 +6038,11 @@ __metadata: resolution: "awg-app@workspace:." dependencies: "@angular-devkit/build-angular": "npm:^18.2.4" - "@angular-eslint/builder": "npm:^18.3.0" - "@angular-eslint/eslint-plugin": "npm:^18.3.0" - "@angular-eslint/eslint-plugin-template": "npm:^18.3.0" - "@angular-eslint/schematics": "npm:^18.3.0" - "@angular-eslint/template-parser": "npm:^18.3.0" + "@angular-eslint/builder": "npm:^18.3.1" + "@angular-eslint/eslint-plugin": "npm:^18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" + "@angular-eslint/schematics": "npm:^18.3.1" + "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.4" "@angular/cli": "npm:^18.2.4" "@angular/common": "npm:^18.2.4" From c0cc93f3bcfbf3038f3eecc3b77925b0a3a50cd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:11:30 +0000 Subject: [PATCH 045/213] build(deps-dev): bump commit-and-tag-version from 12.4.3 to 12.4.4 Bumps [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from 12.4.3 to 12.4.4. - [Release notes](https://github.com/absolute-version/commit-and-tag-version/releases) - [Changelog](https://github.com/absolute-version/commit-and-tag-version/blob/master/CHANGELOG.md) - [Commits](https://github.com/absolute-version/commit-and-tag-version/compare/v12.4.3...v12.4.4) --- updated-dependencies: - dependency-name: commit-and-tag-version dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 1000ab23f5..05a011d6b6 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "@typescript-eslint/eslint-plugin": "^8.5.0", "@typescript-eslint/parser": "^8.5.0", "angular-cli-ghpages": "^2.0.1", - "commit-and-tag-version": "^12.4.3", + "commit-and-tag-version": "^12.4.4", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", diff --git a/yarn.lock b/yarn.lock index 7d9dbb4948..dcdc446fd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6072,7 +6072,7 @@ __metadata: angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" - commit-and-tag-version: "npm:^12.4.3" + commit-and-tag-version: "npm:^12.4.4" conventional-recommended-bump: "npm:^10.0.0" d3-drag: "npm:^3.0.0" d3-fetch: "npm:^3.0.1" @@ -6879,9 +6879,9 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.4.3": - version: 12.4.3 - resolution: "commit-and-tag-version@npm:12.4.3" +"commit-and-tag-version@npm:^12.4.4": + version: 12.4.4 + resolution: "commit-and-tag-version@npm:12.4.4" dependencies: chalk: "npm:^2.4.2" conventional-changelog: "npm:4.0.0" @@ -6901,7 +6901,7 @@ __metadata: yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10c0/e0edbcc940d3d61d32fffd195c0df756b3a80316e6b0dce119847a435b430439926c0bac6e7d4f5d3a7eac30121ca5f8d175e9ce6748b1ddca711193635e768c + checksum: 10c0/f5c888d341594780aa0c08d2f5e64fa39ebbc0580d925a281b08b69e607cf54a2c9322e822c1b9835f9551ed08eb4b166b9cbb0e9376995474910b561779795d languageName: node linkType: hard From 169be29fcb767f73ad0e98266490f715e6059dcb Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 18:37:21 +0200 Subject: [PATCH 046/213] fix(assets): add full intro for AWG I/5 --- .../views/edition-view/models/intro.model.ts | 26 +- .../series/1/section/5/op12/intro.json | 557 +++++++++++++++--- src/assets/themes/scss/main.scss | 31 +- 3 files changed, 532 insertions(+), 82 deletions(-) diff --git a/src/app/views/edition-view/models/intro.model.ts b/src/app/views/edition-view/models/intro.model.ts index 3a752f06a8..c01a837aff 100644 --- a/src/app/views/edition-view/models/intro.model.ts +++ b/src/app/views/edition-view/models/intro.model.ts @@ -1,3 +1,27 @@ +/** + * The IntroBlock class. + * + * It is used in the context of the edition view + * to store the data for a single intro block + * from a intro json file. + */ +export class IntroBlock { + /** + * The id of an intro block. + */ + blockId: string; + + /** + * The header of an intro block. + */ + blockHeader: string; + + /** + * The content array of an intro block. + */ + blockContent: string[]; +} + /** * The Intro class. * @@ -14,7 +38,7 @@ export class Intro { /** * The content array of an intro. */ - content: string[]; + content: IntroBlock[]; /** * The footnotes array of an intro. diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index 396f5c04bb..cfb1a4f68f 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -1,82 +1,493 @@ { "intro": [ { - "id": "op12", + "id": "awg-I-5", "content": [ - "Vier Lieder op. 12", - "Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.", - "Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.72 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.", - "Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,73 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“74", - "Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.75 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.76 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.77 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder78 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.", - "Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).79 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.", - "In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.80 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)", - "Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.81 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.82 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.", - "In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.", - "Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:", - "Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.83", - "Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2084 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.85 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].86 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).'87", - "Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).", - "In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“88 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.", - "Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.89 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.90 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).", - "Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.", - "Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.91 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.92 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.93 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.94 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.95 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.96", - "Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:", - "Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.97", - "Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.98 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“99 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:", - "Viel Erfolg hatten auch neue Lieder von Anton    W e b e r n , die Co van  G e u n s , von Eduard    S t e u e r m a n n    am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.100", - "Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer „holl.[ändischen] Sängerin“ gesungen worden,101 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.102 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:", - "26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.103", - "25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.104", - "13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.105", - "18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.106", - "2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.107", - "9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.108", - "21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.109", - "10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 (Uraufführung der vollständigen Sammlung) sowie op. 12/2, 12/4 und 12/1.110", - "28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.111", - "Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar." + { + "blockId": "preamble", + "blockHeader": "", + "blockContent": [ + "

Die in Serie I Abteilung 5 versammelten Klavierlieder beinhalten die erkennbaren Textfassungen der zu Lebzeiten Anton Weberns mit Opuszahlen versehenen und gedruckten oder zum Druck vorgesehenen Klavierlieder (op. 3, 4, 12, 23 und 25) sowie verschiedene dem Entstehungsprozess einiger dieser Editionskomplexe zuzuordnende Einzellieder (George-Lieder M 143–146). Weitere zu Lebzeiten Weberns nicht publizierte Lied-Komplexe, auch wenn sie mit später obsolet gewordenen Opuszahlen versehen wurden (z. B. Dehmel-Lieder M 83, 119, 130–131), werden in Serie II Abteilung 5 ediert.

" + ] + }, + { + "blockId": "op3+4", + "blockHeader": "George-Lieder", + "blockContent": [ + "

Die insgesamt 14 Klavierlieder Weberns auf Texte von Stefan George (M 133–146) wurden in ihren frühesten Textfassungen vermutlich zwischen Dezember 1907 und 1909 komponiert und gehören zusammen mit den Fünf Sätzen für Streichquartett M 147–151 sowie den Sechs Stücken für großes Orchester M 152–157 zu seinen ersten sogenannten atonalen Kompositionen. Die Zusammenstellung der beiden 1919 bzw. 1923 gedruckten Sammlungen Fünf Lieder aus Der siebente Ring von Stefan George op. 3 und Fünf Lieder nach Gedichten von Stefan George op. 4 stand dabei nicht von Anfang an fest, sondern war einem langwierigen und in seinen verschiedenen Stadien nicht mehr eindeutig rekonstruierbaren Prozess unterworfen, während dessen die meisten Lieder in verschiedenen Textfassungen vorlagen.

", + "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", + "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", + "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", + + "
„Dies ist ein Lied“ M 133(Textfassung 1 in A,
Textfassung 2 in B)
„Erwachen aus dem tiefsten Traumesschoße“ M 143(einzige Textfassung in A)
„Im Windesweben“ M 134(Textfassung 1 in A)
Kunfttag I M 144(einzige Textfassung in A)
", + + "

In einem Brief an Schönberg vom Dezember 1908 schrieb Webern aus Berlin – im Zusammenhang einer Bitte um ein Empfehlungsschreiben an Richard Strauss und im Hinblick auf den wohl von Schönberg vorgeschlagenen Kontakt zu dem Berliner Verleger Max Marschalk (Dreililien-Verlag) –, dass er nicht ausreichend Material für ein Liederheft habe:

", + + "

Ich weiß nicht, ich habe so eine blöde Scheu. Das ist es auch[,] warum ich noch nicht bei Marschalk war.

", + "

Wenn ich ein Liederheft fertig hätte. Aber so kann er ja nichts nehmen, momentan.

", + "

Einerseits möchte ich, andrerseits –8

", + + "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", + "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", + + "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", + + "

Der Aufenthalt in Kärnten wurde darüber hinaus vermutlich ab Mitte Juli durch ein kurzfristiges Theaterengagement Weberns in Innsbruck unterbrochen. Ab Ende Juli meldete sich Webern wieder vom Preglhof bei Schönberg, und am 20. August hieß es in einem der Briefe:

", + + "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", + + "

Um welche George-Lieder es sich bei den in diesen Briefen an Schönberg erwähnten im Einzelnen handelte, ist nicht klar. Das einzige genauer datierbare George-Lied Weberns bleibt somit Trauer I M 145, das noch vor dem Aufenthalt in Kärnten kurz vor dem 25. Mai 1909 geschrieben wurde. Das verwendete Notenpapier sowie ein im Vergleich zu den oben genannten mutmaßlich 1908 komponierten Liedern deutlicher Wechsel des Schriftduktus legen nahe, dass im Laufe des Sommers oder Herbstes 1909 einschließlich Trauer I M 145 auch die ersten bzw. einzigen Textfassungen folgender Lieder entstanden sind:

", + + "
„An Bachesranft“ M 135(Textfassung 1 in E)
„Das lockere Saatgefilde“ M 146(einzige Textfassung in A)
Eingang M 138(Textfassung 1 in A)
„Im Morgentaun“ M 136(Textfassung 1 in D [Fragment], E und G)
„Ja Heil und Dank dir“ M 140(Textfassung 1 in B)
„Kahl reckt der Baum“ M 137(Textfassung 1 in E)
„Noch zwingt mich Treue“ M 139(Textfassung 1 in B)
„So ich traurig bin“ M 141(Textfassung 1 in B)
Trauer I M 145(einzige Textfassung in A – vor dem 25. Mai 1909)
", + + "

Auf der Grundlage der hier vorgeschlagenen schriftbildlichen Einschätzung lässt sich auch eine weitere Niederschrift von „Dies ist ein Lied“ M 133 (Textfassung 2: Grundschicht in C) diesem zeitlichen Umfeld zuordnen. Ob die nicht überlieferte autographe Niederschrift von „Ihr tratet zu dem Herde“ M 142 ([C]) auch 1909 oder bereits 1908 entstanden ist, lässt sich auf dieser Basis freilich nicht entscheiden.

", + "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", + "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", + + "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", + + "

Von nahezu allen diesen Liedern sind Abschriften fremder Hand in F (in Quellenübersicht zu op. 3) und D (in Quellenübersicht zu op. 4) überliefert, die sehr wahrscheinlich für diese Aufführung angefertigt worden waren: Nummerierungen der Lieder mit Bleistift von „I“ bis „V“ in den beiden genannten Quellen entsprechen der Reihenfolge der Texte im Programmheft. (Die nicht überlieferte Abschrift von „Ihr tratet zu dem Herde“ M 142 [E] dürfte vermutlich mit der Ziffer „VI“ bezeichnet gewesen sein.) Die Kopisten-Handschrift wirkt in einigen musikalisch-orthographischen Details sehr unbeholfen und weist in der Textunterlegung Ähnlichkeit mit der Schrift von Wilhelmine (Minna) Mörtl, Weberns späterer Ehefrau, auf. Die Abschriften zeigen in der Regel zahlreiche Eintragungen Weberns, die zum Teil (vor allem bei „Dies ist ein Lied“ M 133) Überarbeitungen zu späteren Textfassungen betreffen. Einige der Eintragungen mit rotem Buntstift dürften aber von der Vorbereitung zur Uraufführung im Februar 1910 stammen, wobei die genannten Abschriften vermutlich von der Sängerin benutzt worden waren. Mit Blick auf die mutmaßlich bei der Aufführung zugrundeliegenden Textfassungen hätte Webern die Klavierbegleitung wahrscheinlich aus den folgenden Quellen im Zustand der entsprechenden Korrekturschicht spielen können:

", + + "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", + + "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", + + "

Kürzlich beschäftigte uns der Fall Schönberg, nun gibt es auch den Fall Anton v. Webern, wenn auch im Grunde beide eins sind. Denn Herr v. Webern ist Schönbergs Schüler, dazu einer, der nicht bloß auf die Worte des Meisters schwört, sondern diesen in manchem Betrachte übertrumpft. Dem ist gut so; die Spannung schwindet, eine fast gemütliche Gleichgiltigkeit stellt sich ein. Mit dem Lehrer konnte und mußte man sich noch auseinandersetzen, nicht mehr mit dem Jünger. […] Auch sechs Lieder nach Stephan [sic] George gehen, und nicht bloß in der Wahl des Dichters, auf Schönbergs Pfaden. Zu Akkorden aus der neuen Harmonielehre tritt eine in den entsprechenden Intervallen psalmodierende Singstimme. Auch der musikalisch geschulte, gut aufnahmsfähige Hörer macht eine psychische Erfahrung: er glaubt immer dasselbe zu hören. Hier schafft aber das Wort einigen Ausdruck, freilich durchgehends den seelischer Geknicktheit, seelischen Zerfalls. Wenn man guten Willens ist, wird man an den besten Stellen an Oktave Mirbeaus Maler gemahnt, der schließlich nur noch „Seelen“ malen wollte. . . .

", + "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", + + "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", + + "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[b]1. Eingang.(„VII. Ring“)
[b + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[b + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[b + r]6. „Kahl reckt der baum..“
[b]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[b + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[b]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7 [b] „Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", + + "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", + "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", + "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", + "

Im Herbst 1911 erhielt Webern ebenso wie Schönberg und Alban Berg die Einladung eine Notenbeilage zum von Wassily Kandinsky und Franz Marc herausgegebenen Almanach Der blaue Reiter beizusteuern. Hierfür wählte er „Ihr tratet zu dem Herde“ M 142. Aus einem Brief an Paul Königer geht hervor, dass Webern dieses Lied auch in die Auswahl der an Tischer & Jagenberg gesandten Lieder aufgenommen hatte:

", + + "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", + "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", + + "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", + "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", + + "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", + + "

Diesem Entschluss waren im Februar Besprechungen mit Schönberg vorangegangen, der die Durchsicht verschiedener Werke Weberns in seinem Tagebuch erwähnt, darunter auch ausdrücklich Lieder:

", + + "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", + + "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", + "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", + + "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", + + "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", + "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", + "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", + "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", + + "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", + + "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", + "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", + + "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", + + "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", + "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", + + "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", + "

II   „Im Windesweben“ M 134 (Textfassung 3)

", + "

III  „An Bachesranft“ M 135 (Textfassung 3)

", + "

IV  „Im Morgentaun“ M 136 (Textfassung 3)

", + "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", + + "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", + "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", + + "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", + "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", + "

III  „Ja Heil und Dank dir“ M 140 (Textfassung 2)

", + "

IV  „So ich traurig bin“ M 141 (Textfassung 2)

", + "

V   „Ihr tratet zu dem Herde“ M 142 (Textfassung 3)

", + + "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", + "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", + + "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", + "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", + "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", + "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", + + "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" + ] + }, + { + "blockId": "op12", + "blockHeader": "Vier Lieder op. 12", + "blockContent": [ + "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", + "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", + "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", + "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", + "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", + + "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", + + "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", + "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", + "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", + "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", + "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", + "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", + "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", + + "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", + + "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", + + "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr

", + "

immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", + + "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", + + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", + "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", + "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", + + "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" + ] + }, + { + "blockId": "op23", + "blockHeader": "Drei Gesänge aus Viae inviae von Hildegard Jone op. 23", + "blockContent": [ + "

Die Anfang 1933 begonnenen und im März 1934 fertiggestellten Drei Gesänge aus Viae inviae von Hildegard Jone op. 23 sind Weberns erste Klavierlieder, die auf der Grundlage der „Komposition mit zwölf Tönen“ – wie Webern in der Regel die Zwölftontechnik bezeichnet – geschrieben wurden, und seine erste vollendete Vokalkomposition seit den Ende 1925 bis Sommer 1926 entstandenen Zwei Liedern für gemischten Chor mit Begleitung von Celesta, Gitarre, Geige, Klarinette und Bassklarinette op. 19. Der von Webern im Titel verwendete Terminus „Gesang“ deutet auf die im Vergleich zu den meisten anderen seiner Vokalkompositionen ausgedehnte Länge der einzelnen Stücke hin. Sie sind zugleich Weberns erste Komposition auf Texte von Hildegard Jone, deren Lyrik die Grundlage für alle weiteren fertiggestellten Vokalkompositionen Weberns bilden sollte.

", + "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", + + "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", + + "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", + "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", + "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", + + "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", + + "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", + "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", + + "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", + "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", + + "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", + + "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", + + "

Ebenfalls Anfang September 1933 nahm Webern zunächst die Skizzierung des ersten Satzes vom Konzert op. 24 im selben Skizzenbuch wieder auf, jedoch ohne diese Arbeit zu einem Abschluss zu bringen oder auch nur kontinuierlich weiterzuführen. Ende desselben Monats plante er, der Dichterin beide der bis zu diesem Zeitpunkt vorliegenden Gesänge aus op. 23 bei einem ihrer Aufenthalte in Wien vorzuführen:

", + + "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", + + "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", + + "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", + "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", + "

Hoffentlich kann er etwas dauern!137

", + + "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", + + "

Liebste Frau Jone,

", + "

die Aufregungen der letzten Tage sind ungeheuer u. werden es immer mehr. Es ist kaum möglich[,] einen Gedanken zu fassen […].

", + "

[…] Und vergangene Woche habe ich doch wieder jeden freien Augenblick benützt, um an den Gedichten [sic] „Das dunkle Herz“ weiterzuschreiben. Ich hatte wieder etwas freie Zeit. […]

", + "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", + + "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", + + "

Inzwischen ist das dritte Lied fertig geworden.

", + "

Da es die Worte von „Das dunkle Herz…“ bis „…ich und du und alle“ umfaßt, ist es recht lang geworden u. stellt der musikalischen Form nach eigentlich eine Art „Arie“ dar: bestehend aus einem langsamen Teil u. ab „ich bin nicht mein…“ einem schnelleren, der aber trotzdem die Tempovorschrift „Ganz ruhig“ trägt.

", + "

Er – dieser 2. Teil – ist fast im Flüsterton gehalten. Vielleicht können Sie doch aus dieser Beschreibung ungefähr entnehmen, wie ich im Besonderen den 2. Teil Ihrer Worte aufgefaßt habe: nach einem großen Aufschwung des ersten[,] ganz unvermittelt völlige Stille, Ruhe, Einfachheit.

", + "

Den Titel habe ich mir so gedacht:

", + "

Drei Gesänge aus Viae inviae.

", + "

Kann ich diesen Titel Ihrer Gedichte übernehmen?

", + "

Bald sende ich Ihnen das Manuscript.143

", + + "

An Alban Berg führte er in einem eine Woche später geschriebenen Brief die formale Disposition auch der anderen Gesänge näher aus:

", + + "

Ich habe gerade ein drittes Lied (nach Jone-Texten) fertig gestellt. Eigentlich ist es eine Arie, bestehend aus einem langsamen Teil u. einem schnelleren. Es wird das erste sein.

", + "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", + "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", + + "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", + "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", + "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", + + "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", + + "

Über die Drei Gesänge heißt es in einer weiteren Besprechung lediglich:

", + + "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", + + "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" + ] + }, + { + "blockId": "op25", + "blockHeader": "Drei Lieder nach Gedichten von Hildegard Jone op. 25", + "blockContent": [ + "

Die im Laufe des Jahres 1934 entstandenen Drei Lieder nach Gedichten von Hildegard Jone op. 25 knüpfen an die im Jahr zuvor in den Drei Gesängen aus Viae inviae von Hildegard Jone op. 23 begonnene kompositorische Auseinandersetzung Weberns mit der Lyrik Hildegard Jones an. Die politischen Konsequenzen der Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes in Wien und anderen größeren Städten Österreichs vom 12. bis zum 15. Februar 1934 veränderten Weberns berufliche Situation gegenüber den Vorjahren jedoch einschneidend. Das Verbot der Sozialdemokratischen Partei bedeutete den Verlust seiner Tätigkeit als Dirigent bei den Wiener Arbeiter-Symphonie-Konzerten und als künstlerischer Direktor des Singvereins der Sozialdemokratischen Kunststelle. In der Folge wurden auch seine Engagements beim Rundfunk immer weniger. In einem Brief an Arnold Schönberg, der 1933 in die Vereinigten Staaten emigriert war, beschreibt Webern dies selbst mit vergleichsweise drastischen Worten:

", + + "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", + + "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", + "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", + + "

– 5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", + "

– 8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", + "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", + + "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", + "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", + + "

Erzählte ich schon, dass mein erster Satz [lies: von op. 24] fertig ist? Momentan habe ich aus Gründen, die ich noch erzählen werde, eine andere Arbeit eingeschoben: die Komposition eines kurzen Gedichtes von Ihnen, liebste Freundin:

", + "

‚Wie bin ich froh! Noch einmal

", + "

wird mir Alles grün….‘161

", + + "

Die im Brief erwähnten „Gründe“ für die Unterbrechung der Arbeit an weiteren Sätzen des Konzertes op. 24 wegen eines Liedes bestanden sehr wahrscheinlich darin, eine Komposition rechtzeitig zum 60. Geburtstag von David Josef Bach am 13. August desselben Jahres fertigstellen zu wollen. Bach, ein Jugendfreund Schönbergs, war in den 1910er Jahren Initiator der Arbeiter-Symphonie-Konzerte in Wien sowie seit 1919 Leiter der Sozialdemokratischen Kunststelle gewesen. Seit 1922 hatte er Webern immer wieder als Dirigent der Konzerte sowie vor allem seit Ende 1923 als Leiter des Singvereins engagiert, was maßgeblich zu Weberns Reputation als Dirigent beigetragen hatte. Durch das Verbot der Sozialdemokratischen Partei nach den Februarereignissen 1934 war Bach selbst in eine prekäre Situation geraten, auf die Webern in Briefen u. a. an Schönberg aufmerksam machte – und dabei auch den bevorstehenden Geburtstag sowie seine geplante Lied-Widmung ansprach:

", + + "

Für Dr. Bachs 60. Geburtstag – 13. August d. J. – wird Folgendes vorbereitet: eine Adresse mit Unterschriften u. eine Geldsammlung.

", + "

Seine finanzielle Lage ist noch immer sehr drückend […].

", + "

Ich widme ihm ein Lied […].162

", + + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", + + "

Liebe, sehr verehrte Freundin,

", + "

vielen, innigsten Dank für die schönen Lieder!

", + "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", + + "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", + "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", + "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", + "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" + ] + }, + { + "blockId": "about", + "blockHeader": "Zur Edition", + "blockContent": [ + "

Die in der vorliegenden Abteilung versammelten Klavierlieder erscheinen in unterschiedlichen Editionsformen, die sich an der Überlieferungssituation ihrer Textfassungen orientieren: Die gedruckten Sammlungen werden als Werkeditionen vorgelegt. Die lediglich in Tintenniederschriften überlieferten Textfassungen dieser oder – wie im Fall der George-Lieder – im Entstehungsprozess gleichen Editionskomplexen zugeordneter Lieder werden als Texteditionen präsentiert. Eine Ausnahme von dieser Regel stellen die Drei Lieder op. 25 dar, die zu Lebzeiten Weberns nicht im Druck vorlagen. Die autographe Niederschrift der vollständigen Sammlung von op. 25 bietet jedoch alle Merkmale einer für den Druck bestimmten Stichvorlage, so dass eine Werkedition auch hier naheliegt und in textkritischer Hinsicht unproblematisch ist. Überlieferte Bleistiftskizzen werden innerhalb der Online-Edition der AWG als Skizzeneditionen präsentiert.

", + "

Die George-Lieder Weberns werden in der vorliegenden Abteilung als ein zusammenhängender Editionskomplex behandelt. Dessen spätester Überlieferung – den beiden gedruckten Sammlungen von Opus 3 und Opus 4 – geht eine gemeinsame Entstehungsgeschichte voraus, die durch mehrere unterscheidbare Textfassungen sowie vier in die späteren Drucke nicht aufgenommene Lieder charakterisiert ist. Die in den Korrekturschichten der überlieferten Tintenniederschriften unterscheidbaren und vor den – als Werkeditionen vorgelegten – Drucken entstandenen Textfassungen werden mit Blick auf ihren Schreibstoff als Texteditionen präsentiert – darunter auch einige der zeitlich frühesten, mitunter skizzenhaft wirkenden Textfassungen. (Eine Skizzenedition würde in diesen Fällen im Vergleich zu den bei Webern in der Regel üblichen Bleistiftskizzen weniger Informationen zum Schreibprozess bereitstellen, da gegebenenfalls ante correcturam vorhandene Schichten durch spätere Rasuren selten sicher, meistens gar nicht zu entziffern sind.)

", + "

Da insbesondere für die verschiedenen von Webern zwischen 1909 und 1919 konzipierten Zusammenstellungen von George-Liedern nicht immer eindeutig rekonstruiert werden kann, welche Textfassungen welcher Lieder in welcher Anordnung vorgesehen waren, werden die in den Quellen gleichwohl erkennbaren Textfassungen in der Print-Edition der vorliegenden Abteilung in zeitlicher Folge der Textfassungen jedes Liedes, die Lieder ihrerseits in alphabetischer Reihenfolge der Titel präsentiert.

", + "

Die Rechtschreibung (insbesondere Groß-/Kleinschreibung) und mitunter spärliche Interpunktion des Gesangstexts zahlreicher Textfassungen der George-Lieder übernahm Webern in der Regel aus den Gedichtvorlagen. Diese Eigenarten wurden in den entsprechenden Texteditionen beibehalten. Ergänzungen oder Korrekturen der Gesangstexte orientieren sich ebenfalls an den George-Vorlagen und werden in den Textkritischen Anmerkungen aufgeführt. Abweichungen von den Gedichtvorlagen werden in den Textkritischen Anmerkungen durch einen Sic-Vermerk erläutert.

", + "

Bei den im Vergleich zu den George-Liedern zahlenmäßig wenigen frühen Textfassungen einzelner Lieder der Editionskomplexe Vier Lieder op. 12 und Drei Lieder op. 25 wurde hinsichtlich der Anordnung ihrer Texteditionen entsprechend verfahren. Auch wenn die Eigenarten der jeweiligen Textvorlagen dieser Texteditionen nicht so charakteristisch wie im Falle der George-Gedichte sind, gelten die gleichen Grundsätze beim editorischen Umgang mit dem Gesangstext.

" + ] + }, + { + "blockId": "credits", + "blockHeader": "Dank", + "blockContent": [ + "

Der Herausgeber dankt zahlreichen Personen und Institutionen, die ihn bei der Arbeit auf vielfältige Weise unterstützt haben. Dieser Dank gilt vor allem den Mitarbeitenden der Archive und Bibliotheken, die digitale Reproduktionen ihrer Quellen für die Editionsarbeiten zur Verfügung gestellt bzw. Zugang zu den Originalen gewährt haben: Das Arnold Schönberg Center in Wien, die Music Division der Library of Congress in Washington D.C., die Morgan Library & Museum in New York City, die Musiksammlung der Österreichischen Nationalbibliothek in Wien, die Musiksammlung der Wienbibliothek im Rathaus in Wien sowie das Historische Archiv der Universal Edition in Wien. Besonderer Dank gilt der Paul Sacher Stiftung in Basel, die den größten Teil der erhaltenen Webern-Quellen aufbewahrt: Insbesondere Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert und Andrietta Wahl waren hier immer wieder hilfsbereite und kenntnisreiche Ansprechpartner.

", + "

Für die kollegiale und fruchtbare Zusammenarbeit sei auch allen aktuellen Mitarbeitenden des Projekt-Teams der AWG Michael Matter, Stefan Münnich, Simon Obert, Barbara Schingnitz und Matthias Schmidt, den ehemaligen Kolleginnen und Kollegen Julia Bungardt, Monika Kröpfl, Nikolaus Urbanek und Manuel Strauß sowie den Praktikantinnen und Praktikanten Tamara Ackermann, Yuta Asai, Daia Aschwanden, Madita Knöpfle und Youchen Yu gedankt.

", + "

Bei der Konzeption und Einrichtung der Online-Edition boten Rita Gautschy (Swiss National Data and Service Center for the Humanities), Lukas Rosenthaler und Tobias Schweizer (Digital Humanities Lab der Universität Basel) sowie zahlreiche andere Mitarbeitende der genannten Institutionen Anregungen und Hilfe.

", + "

Heinz Stolba von der Universal Edition in Wien gilt Dank für seine engagierte Kooperation.

", + "

Für Hinweise, Feedback und Ratschläge aller Art seien schließlich Simone Hohmaier (Staatliches Institut für Musikforschung, Berlin), Juliane Brand (Karl Weigl Foundation, San Rafael, CA), Regina Busch (Wien), Felix Wörner (Basel) sowie Michelle Ziegler (Basel) sehr herzlich bedankt.

", + + "

Basel, den 14. Mai 2024 Thomas Ahrend

" + ] + } ], "footnotes": [ - "72 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201. ", - "73 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660. ", - "74 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333). ", - "75 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77. ", - "76 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]). ", - "77 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 75), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“ ", - "78 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 75), S. 76 f. ", - "79 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor. ", - "80 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]). ", - "81 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6]. ", - "82 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88. ", - "83 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355). ", - "84 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt. ", - "85 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“ ", - "86 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern. ", - "87 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert. ", - "88 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932). ", - "89 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027. ", - "90 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299. ", - "91 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14. ", - "92 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern. ", - "93 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“ ", - "94 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925. ", - "95 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.). ", - "96 | Vgl. ebd. (Anhang), S. 340 f. ", - "97 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). ", - "98 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet. ", - "99 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]). ", - "100 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7. ", - "101 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt. ", - "102 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg“. Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572. ", - "103 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 63), S. 345. ", - "104 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“ ", - "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms). ", - "106 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin. ", - "107 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364. ", - "108 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 109). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar. ", - "109 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019. ", - "110 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 60), S. 48. ", - "111 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 70), S. 327, sowie ebd., Band 3 (Anm. 60), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel. " + "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", + "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", + "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", + "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", + "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", + "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", + "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", + "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", + "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", + "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", + "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", + "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", + "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", + "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", + "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", + "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", + "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", + "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", + "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", + "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", + "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", + "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", + "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", + "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", + "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", + "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", + "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", + "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", + "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", + "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", + "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", + "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", + "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", + "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", + "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", + "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", + "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", + "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", + "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", + "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", + "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", + "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", + "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", + "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", + "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", + "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", + "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", + "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", + "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", + "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", + "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", + "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", + "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", + "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", + "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", + "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", + "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", + "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", + "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", + "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", + "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", + "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", + "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", + "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", + "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", + "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", + "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", + "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", + "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", + "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", + "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", + "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", + "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", + "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", + "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", + "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", + "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", + "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", + "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", + "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", + "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", + "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", + "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", + "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", + "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", + "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", + "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", + "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", + "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", + "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", + "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", + "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", + "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", + "97 | Vgl. ebd. (Anhang), S. 340 f.", + "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", + "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", + "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", + "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", + "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", + "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", + "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", + "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", + "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", + "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", + "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", + "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", + "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", + "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", + "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", + "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", + "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", + "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", + "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", + "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", + "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", + "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", + "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", + "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", + "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", + "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", + "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", + "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", + "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", + "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", + "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", + "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", + "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", + "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", + "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", + "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", + "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", + "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", + "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", + "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", + "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", + "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", + "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", + "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", + "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", + "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", + "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", + "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", + "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", + "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", + "157 | Ebd.", + "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", + "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", + "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", + "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", + "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", + "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", + "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", + "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", + "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", + "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", + "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", + "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", + "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", + "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", + "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", + "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." ] } ] diff --git a/src/assets/themes/scss/main.scss b/src/assets/themes/scss/main.scss index af92230bdb..e7b796861f 100644 --- a/src/assets/themes/scss/main.scss +++ b/src/assets/themes/scss/main.scss @@ -380,22 +380,37 @@ span.facet-badge { %inlineblock { display: inline-block; } +@mixin tab($margin) { + @extend %inlineblock; + margin-left: $margin; +} .tab { - @extend %inlineblock; - margin-left: 25px; + @include tab(25px); } .singletab { - @extend %inlineblock; - margin-left: 50px; + @include tab(50px); } .doubletab { - @extend %inlineblock; - margin-left: 60px; + @include tab(60px); } .doubletab_extended { - @extend %inlineblock; - margin-left: 70px; + @include tab(70px); +} +.tab75 { + @include tab(75px); +} +.tab100 { + @include tab(100px); +} +.tab150 { + @include tab(150px); +} +.tab200 { + @include tab(200px); +} +.tab250 { + @include tab(250px); } .indent { From c1b49d6a3638f44596cb649e480ea64ad91fde05 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 19:03:22 +0200 Subject: [PATCH 047/213] feat(edition): add scrollable menu to intro --- .../edition-intro.component.html | 101 +++++++++++++----- .../edition-intro.component.scss | 29 +++-- .../edition-intro/edition-intro.component.ts | 57 +++++++++- src/assets/themes/scss/main.scss | 1 + 4 files changed, 156 insertions(+), 32 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 2049632f4a..affa57d018 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -6,31 +6,84 @@ @if (editionIntroData$ | async; as editionIntroData) {
- @if (utils.isNotEmptyArray(editionIntroData.intro[0].content)) { - @for (introParagraph of editionIntroData.intro[0].content; track introParagraph) { -

- } - } @else { -

- [Die Einleitung zum Editionskomplex - erscheint im Zusammenhang der - vollständigen Edition von in - {{ editionRouteConstants.EDITION.short }} {{ editionComplex.pubStatement.series.short }}/{{ - editionComplex.pubStatement.section.short - }}.] - -

- } - @if (utils.isNotEmptyArray(editionIntroData.intro[0].footnotes)) { -
-
Anmerkungen
- @for (footnote of editionIntroData.intro[0].footnotes; track footnote) { -

+
+ @if (utils.isNotEmptyArray(editionIntroData.intro[0].content)) { +
+ @for (introBlock of editionIntroData.intro[0].content; track $index) { +
+ @if (introBlock.blockHeader) { +
+

+
+ } + @if (introBlock.blockContent.length > 0) { + @for (blockContent of introBlock.blockContent; track $index) { +
+ } + } +
+ } + @if (utils.isNotEmptyArray(editionIntroData.intro[0].footnotes)) { +
+
+
Anmerkungen
+
+ @for (footnote of editionIntroData.intro[0].footnotes; track $index) { +

+ } +
+
+ } +
+ +
+ +
+ } @else { +
+

+ [Die Einleitung zum Editionskomplex + erscheint im Zusammenhang der + vollständigen Edition von in + {{ editionRouteConstants.EDITION.short }} + {{ editionComplex.pubStatement.series.short }}/{{ + editionComplex.pubStatement.section.short + }}.] + +

+
} - } +
} @else { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss index 4ac6662f2e..9483e6a142 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss @@ -1,12 +1,24 @@ +.awg-intro-footnote, +.awg-intro-para { + text-align: justify; + text-justify: inter-word; +} + .awg-intro-para { margin: 0; text-indent: 25px; &::ng-deep { + p { + margin-bottom: 0 !important; + } + table > tbody > tr > td { + padding-right: 10px; + } .heading { display: block; + margin-top: 25px; margin-bottom: 25px; - font-size: 1.5em; font-weight: bold; } .heading, @@ -14,13 +26,9 @@ .no-indent { text-indent: 0; } - .small:not(.spacebreak), - .no-indent { - margin-left: -25px; - } .spacebreak { display: block; - margin-bottom: 25px; + margin-top: 25px; &.no-indent { margin-left: 0; @@ -28,3 +36,12 @@ } } } + +.awg-intro-nav .nav { + position: sticky; + top: 0; + + a.active { + color: #000; + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index 194810197a..477e903a2b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -1,8 +1,9 @@ import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { NavigationExtras, Router } from '@angular/router'; -import { EMPTY, Observable } from 'rxjs'; -import { catchError, switchMap } from 'rxjs/operators'; +import { EMPTY, fromEvent, Observable } from 'rxjs'; +import { catchError, switchMap, throttleTime } from 'rxjs/operators'; import { UtilityService } from '@awg-core/services'; import { ModalComponent } from '@awg-shared/modal/modal.component'; @@ -74,6 +75,8 @@ export class EditionIntroComponent implements OnInit { public utils: UtilityService ) { this.ref = this; + + this._initScrollListener(); } /** @@ -189,6 +192,19 @@ export class EditionIntroComponent implements OnInit { this._navigateWithComplexId(sheetIds?.complexId, sheetRoute, navigationExtras); } + /** + * Private method: _initScrollListener. + * + * It initializes the scroll listener for the window. + * + * @returns {void} Initializes the scroll listener. + */ + private _initScrollListener(): void { + fromEvent(window, 'scroll') + .pipe(throttleTime(200), takeUntilDestroyed()) + .subscribe(event => this._onWindowScroll(event)); + } + /** * Private method: _navigateWithComplexId. * @@ -204,4 +220,41 @@ export class EditionIntroComponent implements OnInit { this.router.navigate([complexRoute, targetRoute], navigationExtras); } + + /** + * Private method: _onWindowScroll. + * + * It handles the scroll event on the window + * and highlights the corresponding section in the intro navigation. + * + * @param {Event} event The given event. + * @returns {void} Highlights the corresponding section in the intro navigation + * on window scroll. + */ + private _onWindowScroll(event: Event): void { + const scrollPosition = window.scrollY || document.documentElement.scrollTop; + const sections: NodeListOf = document.querySelectorAll('.awg-intro-section'); + const navLinks: NodeListOf = document.querySelectorAll('a.awg-intro-nav-link'); + + let activeSectionFound = false; + + sections.forEach((section: HTMLElement) => { + const sectionTop = section.offsetTop - 10; + const sectionBottom = section.offsetTop + section.offsetHeight; + + if (!activeSectionFound && sectionTop <= scrollPosition && sectionBottom > scrollPosition) { + navLinks.forEach((navLink: HTMLAnchorElement) => { + navLink.classList.toggle('active', navLink.hash.includes(section.id)); + + activeSectionFound = true; + }); + } + }); + + if (!activeSectionFound) { + navLinks.forEach((navLink: HTMLAnchorElement) => { + navLink.classList.remove('active'); + }); + } + } } diff --git a/src/assets/themes/scss/main.scss b/src/assets/themes/scss/main.scss index e7b796861f..300e06271d 100644 --- a/src/assets/themes/scss/main.scss +++ b/src/assets/themes/scss/main.scss @@ -31,6 +31,7 @@ a.awg-svg-sheet-nav-link:hover, } a.dropdown-item:hover, a.list-group-item:hover, +a.awg-intro-nav-link:hover, a.awg-svg-sheet-nav-link, a.awg-svg-sheet-nav-link:hover, .navbar-brand:hover, From 343c2779533ab4d3d46e43d9d6f61fabc75ffdc3 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 19:04:24 +0200 Subject: [PATCH 048/213] style(edition): justify preface text --- .../edition-preface/edition-preface.component.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss index 6e7b967216..9f5f641325 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss @@ -27,6 +27,8 @@ .awg-preface-para { margin: 0; text-indent: 25px; + text-align: justify; + text-justify: inter-word; &::ng-deep { .heading { From 62eff2c9e132ac062cdbac2863d0fb471fb35e7a Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 19:05:30 +0200 Subject: [PATCH 049/213] fix(assets): fix typo in textcritics for m38 --- .../data/edition/series/2/section/2a/m38/textcritics.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/2/section/2a/m38/textcritics.json b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json index c109aadf56..0c90d6726a 100644 --- a/src/assets/data/edition/series/2/section/2a/m38/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json @@ -238,7 +238,7 @@ }, { "svgGroupId": "g1426", - "measure": "{11A} bis
{12A}", + "measure": "{11A}
bis {12A}", "system": "1–2", "position": "1/8
2/8", "comment": "Noten gestrichen." From 57d575a6b082c2e71f0ffcbe029718dcc6388d68 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 19:30:35 +0200 Subject: [PATCH 050/213] fix(edition): make footnotes of intro navigable --- .../series/1/section/5/op12/intro.json | 558 +++++++++--------- 1 file changed, 279 insertions(+), 279 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index cfb1a4f68f..4fd85c3484 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -15,9 +15,9 @@ "blockHeader": "George-Lieder", "blockContent": [ "

Die insgesamt 14 Klavierlieder Weberns auf Texte von Stefan George (M 133–146) wurden in ihren frühesten Textfassungen vermutlich zwischen Dezember 1907 und 1909 komponiert und gehören zusammen mit den Fünf Sätzen für Streichquartett M 147–151 sowie den Sechs Stücken für großes Orchester M 152–157 zu seinen ersten sogenannten atonalen Kompositionen. Die Zusammenstellung der beiden 1919 bzw. 1923 gedruckten Sammlungen Fünf Lieder aus Der siebente Ring von Stefan George op. 3 und Fünf Lieder nach Gedichten von Stefan George op. 4 stand dabei nicht von Anfang an fest, sondern war einem langwierigen und in seinen verschiedenen Stadien nicht mehr eindeutig rekonstruierbaren Prozess unterworfen, während dessen die meisten Lieder in verschiedenen Textfassungen vorlagen.

", - "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", - "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", - "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", + "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", + "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", + "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", "
„Dies ist ein Lied“ M 133(Textfassung 1 in A,
Textfassung 2 in B)
„Erwachen aus dem tiefsten Traumesschoße“ M 143(einzige Textfassung in A)
„Im Windesweben“ M 134(Textfassung 1 in A)
Kunfttag I M 144(einzige Textfassung in A)
", @@ -25,24 +25,24 @@ "

Ich weiß nicht, ich habe so eine blöde Scheu. Das ist es auch[,] warum ich noch nicht bei Marschalk war.

", "

Wenn ich ein Liederheft fertig hätte. Aber so kann er ja nichts nehmen, momentan.

", - "

Einerseits möchte ich, andrerseits –8

", + "

Einerseits möchte ich, andrerseits –8

", - "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", - "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", + "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", + "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", - "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", + "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", "

Der Aufenthalt in Kärnten wurde darüber hinaus vermutlich ab Mitte Juli durch ein kurzfristiges Theaterengagement Weberns in Innsbruck unterbrochen. Ab Ende Juli meldete sich Webern wieder vom Preglhof bei Schönberg, und am 20. August hieß es in einem der Briefe:

", - "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", + "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", "

Um welche George-Lieder es sich bei den in diesen Briefen an Schönberg erwähnten im Einzelnen handelte, ist nicht klar. Das einzige genauer datierbare George-Lied Weberns bleibt somit Trauer I M 145, das noch vor dem Aufenthalt in Kärnten kurz vor dem 25. Mai 1909 geschrieben wurde. Das verwendete Notenpapier sowie ein im Vergleich zu den oben genannten mutmaßlich 1908 komponierten Liedern deutlicher Wechsel des Schriftduktus legen nahe, dass im Laufe des Sommers oder Herbstes 1909 einschließlich Trauer I M 145 auch die ersten bzw. einzigen Textfassungen folgender Lieder entstanden sind:

", "
„An Bachesranft“ M 135(Textfassung 1 in E)
„Das lockere Saatgefilde“ M 146(einzige Textfassung in A)
Eingang M 138(Textfassung 1 in A)
„Im Morgentaun“ M 136(Textfassung 1 in D [Fragment], E und G)
„Ja Heil und Dank dir“ M 140(Textfassung 1 in B)
„Kahl reckt der Baum“ M 137(Textfassung 1 in E)
„Noch zwingt mich Treue“ M 139(Textfassung 1 in B)
„So ich traurig bin“ M 141(Textfassung 1 in B)
Trauer I M 145(einzige Textfassung in A – vor dem 25. Mai 1909)
", "

Auf der Grundlage der hier vorgeschlagenen schriftbildlichen Einschätzung lässt sich auch eine weitere Niederschrift von „Dies ist ein Lied“ M 133 (Textfassung 2: Grundschicht in C) diesem zeitlichen Umfeld zuordnen. Ob die nicht überlieferte autographe Niederschrift von „Ihr tratet zu dem Herde“ M 142 ([C]) auch 1909 oder bereits 1908 entstanden ist, lässt sich auf dieser Basis freilich nicht entscheiden.

", - "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", - "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", + "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", + "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", @@ -50,51 +50,51 @@ "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", - "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", + "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", "

Kürzlich beschäftigte uns der Fall Schönberg, nun gibt es auch den Fall Anton v. Webern, wenn auch im Grunde beide eins sind. Denn Herr v. Webern ist Schönbergs Schüler, dazu einer, der nicht bloß auf die Worte des Meisters schwört, sondern diesen in manchem Betrachte übertrumpft. Dem ist gut so; die Spannung schwindet, eine fast gemütliche Gleichgiltigkeit stellt sich ein. Mit dem Lehrer konnte und mußte man sich noch auseinandersetzen, nicht mehr mit dem Jünger. […] Auch sechs Lieder nach Stephan [sic] George gehen, und nicht bloß in der Wahl des Dichters, auf Schönbergs Pfaden. Zu Akkorden aus der neuen Harmonielehre tritt eine in den entsprechenden Intervallen psalmodierende Singstimme. Auch der musikalisch geschulte, gut aufnahmsfähige Hörer macht eine psychische Erfahrung: er glaubt immer dasselbe zu hören. Hier schafft aber das Wort einigen Ausdruck, freilich durchgehends den seelischer Geknicktheit, seelischen Zerfalls. Wenn man guten Willens ist, wird man an den besten Stellen an Oktave Mirbeaus Maler gemahnt, der schließlich nur noch „Seelen“ malen wollte. . . .

", - "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", + "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", - "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", + "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[b]1. Eingang.(„VII. Ring“)
[b + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[b + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[b + r]6. „Kahl reckt der baum..“
[b]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[b + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[b]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7 [b] „Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", - "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", - "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", - "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", + "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", + "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", + "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", "

Im Herbst 1911 erhielt Webern ebenso wie Schönberg und Alban Berg die Einladung eine Notenbeilage zum von Wassily Kandinsky und Franz Marc herausgegebenen Almanach Der blaue Reiter beizusteuern. Hierfür wählte er „Ihr tratet zu dem Herde“ M 142. Aus einem Brief an Paul Königer geht hervor, dass Webern dieses Lied auch in die Auswahl der an Tischer & Jagenberg gesandten Lieder aufgenommen hatte:

", "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", - "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", + "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", - "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", + "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", - "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", + "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", "

Diesem Entschluss waren im Februar Besprechungen mit Schönberg vorangegangen, der die Durchsicht verschiedener Werke Weberns in seinem Tagebuch erwähnt, darunter auch ausdrücklich Lieder:

", - "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", + "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", - "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", + "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", - "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", - "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", - "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", - "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", + "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", + "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", + "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", + "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", - "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", + "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", + "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", - "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", + "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", - "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", - "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", + "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", + "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", "

II   „Im Windesweben“ M 134 (Textfassung 3)

", @@ -102,8 +102,8 @@ "

IV  „Im Morgentaun“ M 136 (Textfassung 3)

", "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", - "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", - "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", + "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", + "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", @@ -111,20 +111,20 @@ "

IV  „So ich traurig bin“ M 141 (Textfassung 2)

", "

V   „Ihr tratet zu dem Herde“ M 142 (Textfassung 3)

", - "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", + "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", - "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", - "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", - "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", - "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", + "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", + "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", + "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", + "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" ] @@ -134,43 +134,43 @@ "blockHeader": "Vier Lieder op. 12", "blockContent": [ "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", - "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", - "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", - "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", - "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", - "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", - "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", + "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", + "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", - "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", + "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", - "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", + "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", - "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", - "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", + "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", + "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", - "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", + "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", - "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", + "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", - "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", + "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr

", - "

immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", + "

immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", - "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", + "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", - "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", - "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", + "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", + "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" ] @@ -180,44 +180,44 @@ "blockHeader": "Drei Gesänge aus Viae inviae von Hildegard Jone op. 23", "blockContent": [ "

Die Anfang 1933 begonnenen und im März 1934 fertiggestellten Drei Gesänge aus Viae inviae von Hildegard Jone op. 23 sind Weberns erste Klavierlieder, die auf der Grundlage der „Komposition mit zwölf Tönen“ – wie Webern in der Regel die Zwölftontechnik bezeichnet – geschrieben wurden, und seine erste vollendete Vokalkomposition seit den Ende 1925 bis Sommer 1926 entstandenen Zwei Liedern für gemischten Chor mit Begleitung von Celesta, Gitarre, Geige, Klarinette und Bassklarinette op. 19. Der von Webern im Titel verwendete Terminus „Gesang“ deutet auf die im Vergleich zu den meisten anderen seiner Vokalkompositionen ausgedehnte Länge der einzelnen Stücke hin. Sie sind zugleich Weberns erste Komposition auf Texte von Hildegard Jone, deren Lyrik die Grundlage für alle weiteren fertiggestellten Vokalkompositionen Weberns bilden sollte.

", - "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", + "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", - "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", + "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", - "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", - "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", - "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", + "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", + "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", + "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", - "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", + "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", - "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", - "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", + "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", + "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", - "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", + "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", - "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", + "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", - "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", + "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", "

Ebenfalls Anfang September 1933 nahm Webern zunächst die Skizzierung des ersten Satzes vom Konzert op. 24 im selben Skizzenbuch wieder auf, jedoch ohne diese Arbeit zu einem Abschluss zu bringen oder auch nur kontinuierlich weiterzuführen. Ende desselben Monats plante er, der Dichterin beide der bis zu diesem Zeitpunkt vorliegenden Gesänge aus op. 23 bei einem ihrer Aufenthalte in Wien vorzuführen:

", - "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", + "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", - "

Hoffentlich kann er etwas dauern!137

", + "

Hoffentlich kann er etwas dauern!137

", - "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", + "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", "

Liebste Frau Jone,

", "

die Aufregungen der letzten Tage sind ungeheuer u. werden es immer mehr. Es ist kaum möglich[,] einen Gedanken zu fassen […].

", "

[…] Und vergangene Woche habe ich doch wieder jeden freien Augenblick benützt, um an den Gedichten [sic] „Das dunkle Herz“ weiterzuschreiben. Ich hatte wieder etwas freie Zeit. […]

", - "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", + "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", - "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", + "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", "

Inzwischen ist das dritte Lied fertig geworden.

", "

Da es die Worte von „Das dunkle Herz…“ bis „…ich und du und alle“ umfaßt, ist es recht lang geworden u. stellt der musikalischen Form nach eigentlich eine Art „Arie“ dar: bestehend aus einem langsamen Teil u. ab „ich bin nicht mein…“ einem schnelleren, der aber trotzdem die Tempovorschrift „Ganz ruhig“ trägt.

", @@ -225,25 +225,25 @@ "

Den Titel habe ich mir so gedacht:

", "

Drei Gesänge aus Viae inviae.

", "

Kann ich diesen Titel Ihrer Gedichte übernehmen?

", - "

Bald sende ich Ihnen das Manuscript.143

", + "

Bald sende ich Ihnen das Manuscript.143

", "

An Alban Berg führte er in einem eine Woche später geschriebenen Brief die formale Disposition auch der anderen Gesänge näher aus:

", "

Ich habe gerade ein drittes Lied (nach Jone-Texten) fertig gestellt. Eigentlich ist es eine Arie, bestehend aus einem langsamen Teil u. einem schnelleren. Es wird das erste sein.

", "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", - "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", + "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", - "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", - "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", + "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", + "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", - "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", + "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", "

Über die Drei Gesänge heißt es in einer weiteren Besprechung lediglich:

", - "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", + "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", - "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" + "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" ] }, { @@ -252,39 +252,39 @@ "blockContent": [ "

Die im Laufe des Jahres 1934 entstandenen Drei Lieder nach Gedichten von Hildegard Jone op. 25 knüpfen an die im Jahr zuvor in den Drei Gesängen aus Viae inviae von Hildegard Jone op. 23 begonnene kompositorische Auseinandersetzung Weberns mit der Lyrik Hildegard Jones an. Die politischen Konsequenzen der Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes in Wien und anderen größeren Städten Österreichs vom 12. bis zum 15. Februar 1934 veränderten Weberns berufliche Situation gegenüber den Vorjahren jedoch einschneidend. Das Verbot der Sozialdemokratischen Partei bedeutete den Verlust seiner Tätigkeit als Dirigent bei den Wiener Arbeiter-Symphonie-Konzerten und als künstlerischer Direktor des Singvereins der Sozialdemokratischen Kunststelle. In der Folge wurden auch seine Engagements beim Rundfunk immer weniger. In einem Brief an Arnold Schönberg, der 1933 in die Vereinigten Staaten emigriert war, beschreibt Webern dies selbst mit vergleichsweise drastischen Worten:

", - "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", + "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", - "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", + "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", "

– 5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", "

– 8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", - "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", + "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", - "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", - "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", + "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", + "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", "

Erzählte ich schon, dass mein erster Satz [lies: von op. 24] fertig ist? Momentan habe ich aus Gründen, die ich noch erzählen werde, eine andere Arbeit eingeschoben: die Komposition eines kurzen Gedichtes von Ihnen, liebste Freundin:

", "

‚Wie bin ich froh! Noch einmal

", - "

wird mir Alles grün….‘161

", + "

wird mir Alles grün….‘161

", "

Die im Brief erwähnten „Gründe“ für die Unterbrechung der Arbeit an weiteren Sätzen des Konzertes op. 24 wegen eines Liedes bestanden sehr wahrscheinlich darin, eine Komposition rechtzeitig zum 60. Geburtstag von David Josef Bach am 13. August desselben Jahres fertigstellen zu wollen. Bach, ein Jugendfreund Schönbergs, war in den 1910er Jahren Initiator der Arbeiter-Symphonie-Konzerte in Wien sowie seit 1919 Leiter der Sozialdemokratischen Kunststelle gewesen. Seit 1922 hatte er Webern immer wieder als Dirigent der Konzerte sowie vor allem seit Ende 1923 als Leiter des Singvereins engagiert, was maßgeblich zu Weberns Reputation als Dirigent beigetragen hatte. Durch das Verbot der Sozialdemokratischen Partei nach den Februarereignissen 1934 war Bach selbst in eine prekäre Situation geraten, auf die Webern in Briefen u. a. an Schönberg aufmerksam machte – und dabei auch den bevorstehenden Geburtstag sowie seine geplante Lied-Widmung ansprach:

", "

Für Dr. Bachs 60. Geburtstag – 13. August d. J. – wird Folgendes vorbereitet: eine Adresse mit Unterschriften u. eine Geldsammlung.

", "

Seine finanzielle Lage ist noch immer sehr drückend […].

", - "

Ich widme ihm ein Lied […].162

", + "

Ich widme ihm ein Lied […].162

", - "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", - "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", "

Liebe, sehr verehrte Freundin,

", "

vielen, innigsten Dank für die schönen Lieder!

", - "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", + "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", - "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", + "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", - "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", - "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" + "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", + "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" ] }, { @@ -313,181 +313,181 @@ } ], "footnotes": [ - "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", - "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", - "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", - "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", - "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", - "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", - "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", - "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", - "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", - "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", - "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", - "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", - "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", - "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", - "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", - "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", - "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", - "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", - "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", - "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", - "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", - "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", - "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", - "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", - "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", - "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", - "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", - "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", - "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", - "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", - "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", - "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", - "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", - "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", - "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", - "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", - "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", - "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", - "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", - "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", - "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", - "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", - "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", - "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", - "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", - "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", - "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", - "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", - "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", - "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", - "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", - "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", - "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", - "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", - "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", - "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", - "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", - "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", - "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", - "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", - "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", - "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", - "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", - "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", - "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", - "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", - "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", - "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", - "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", - "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", - "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", - "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", - "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", - "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", - "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", - "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", - "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", - "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", - "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", - "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", - "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", - "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", - "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", - "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", - "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", - "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", - "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", - "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", - "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", - "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", - "97 | Vgl. ebd. (Anhang), S. 340 f.", - "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", - "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", - "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", - "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", - "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", - "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", - "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", - "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", - "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", - "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", - "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", - "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", - "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", - "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", - "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", - "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", - "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", - "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", - "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", - "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", - "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", - "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", - "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", - "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", - "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", - "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", - "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", - "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", - "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", - "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", - "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", - "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", - "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", - "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", - "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", - "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", - "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", - "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", - "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", - "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", - "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", - "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", - "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", - "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", - "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", - "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", - "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", - "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", - "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", - "157 | Ebd.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", - "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", - "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", - "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", - "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", - "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", - "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", - "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", - "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", - "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", - "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", - "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", - "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", - "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", - "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", - "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." + "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", + "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", + "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", + "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", + "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", + "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", + "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", + "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", + "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", + "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", + "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", + "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", + "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", + "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", + "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", + "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", + "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", + "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", + "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", + "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", + "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", + "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", + "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", + "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", + "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", + "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", + "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", + "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", + "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", + "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", + "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", + "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", + "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", + "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", + "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", + "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", + "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", + "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", + "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", + "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", + "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", + "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", + "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", + "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", + "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", + "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", + "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", + "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", + "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", + "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", + "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", + "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", + "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", + "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", + "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", + "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", + "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", + "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", + "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", + "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", + "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", + "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", + "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", + "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", + "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", + "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", + "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", + "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", + "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", + "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", + "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", + "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", + "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", + "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", + "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", + "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", + "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", + "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", + "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", + "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", + "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", + "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", + "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", + "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", + "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", + "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", + "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", + "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", + "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", + "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", + "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", + "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", + "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", + "97 | Vgl. ebd. (Anhang), S. 340 f.", + "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", + "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", + "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", + "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", + "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", + "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", + "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", + "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", + "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", + "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", + "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", + "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", + "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", + "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", + "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", + "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", + "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", + "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", + "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", + "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", + "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", + "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", + "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", + "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", + "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", + "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", + "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", + "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", + "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", + "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", + "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", + "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", + "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", + "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", + "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", + "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", + "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", + "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", + "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", + "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", + "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", + "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", + "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", + "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", + "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", + "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", + "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", + "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", + "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", + "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", + "157 | Ebd.", + "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", + "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", + "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", + "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", + "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", + "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", + "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", + "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", + "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", + "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", + "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", + "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", + "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", + "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", + "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", + "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." ] } ] From 836ea8a73d4bd7947cec029483bf89eb4003424d Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 16 Sep 2024 19:37:36 +0200 Subject: [PATCH 051/213] fix(assets): make sources of intro navigable --- .../series/1/section/5/op12/intro.json | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index 4fd85c3484..cd5a02a46a 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -46,9 +46,9 @@ "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", - "

Von nahezu allen diesen Liedern sind Abschriften fremder Hand in F (in Quellenübersicht zu op. 3) und D (in Quellenübersicht zu op. 4) überliefert, die sehr wahrscheinlich für diese Aufführung angefertigt worden waren: Nummerierungen der Lieder mit Bleistift von „I“ bis „V“ in den beiden genannten Quellen entsprechen der Reihenfolge der Texte im Programmheft. (Die nicht überlieferte Abschrift von „Ihr tratet zu dem Herde“ M 142 [E] dürfte vermutlich mit der Ziffer „VI“ bezeichnet gewesen sein.) Die Kopisten-Handschrift wirkt in einigen musikalisch-orthographischen Details sehr unbeholfen und weist in der Textunterlegung Ähnlichkeit mit der Schrift von Wilhelmine (Minna) Mörtl, Weberns späterer Ehefrau, auf. Die Abschriften zeigen in der Regel zahlreiche Eintragungen Weberns, die zum Teil (vor allem bei „Dies ist ein Lied“ M 133) Überarbeitungen zu späteren Textfassungen betreffen. Einige der Eintragungen mit rotem Buntstift dürften aber von der Vorbereitung zur Uraufführung im Februar 1910 stammen, wobei die genannten Abschriften vermutlich von der Sängerin benutzt worden waren. Mit Blick auf die mutmaßlich bei der Aufführung zugrundeliegenden Textfassungen hätte Webern die Klavierbegleitung wahrscheinlich aus den folgenden Quellen im Zustand der entsprechenden Korrekturschicht spielen können:

", + "

Von nahezu allen diesen Liedern sind Abschriften fremder Hand in F (in Quellenübersicht zu op. 3) und D (in Quellenübersicht zu op. 4) überliefert, die sehr wahrscheinlich für diese Aufführung angefertigt worden waren: Nummerierungen der Lieder mit Bleistift von „I“ bis „V“ in den beiden genannten Quellen entsprechen der Reihenfolge der Texte im Programmheft. (Die nicht überlieferte Abschrift von „Ihr tratet zu dem Herde“ M 142 [E] dürfte vermutlich mit der Ziffer „VI“ bezeichnet gewesen sein.) Die Kopisten-Handschrift wirkt in einigen musikalisch-orthographischen Details sehr unbeholfen und weist in der Textunterlegung Ähnlichkeit mit der Schrift von Wilhelmine (Minna) Mörtl, Weberns späterer Ehefrau, auf. Die Abschriften zeigen in der Regel zahlreiche Eintragungen Weberns, die zum Teil (vor allem bei „Dies ist ein Lied“ M 133) Überarbeitungen zu späteren Textfassungen betreffen. Einige der Eintragungen mit rotem Buntstift dürften aber von der Vorbereitung zur Uraufführung im Februar 1910 stammen, wobei die genannten Abschriften vermutlich von der Sängerin benutzt worden waren. Mit Blick auf die mutmaßlich bei der Aufführung zugrundeliegenden Textfassungen hätte Webern die Klavierbegleitung wahrscheinlich aus den folgenden Quellen im Zustand der entsprechenden Korrekturschicht spielen können:

", - "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", + "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", @@ -67,7 +67,7 @@ "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", - "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", + "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", @@ -76,7 +76,7 @@ "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", - "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", + "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", @@ -84,17 +84,17 @@ "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", - "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", + "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", + "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", - "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", - "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", + "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", + "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", "

II   „Im Windesweben“ M 134 (Textfassung 3)

", @@ -103,7 +103,7 @@ "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", - "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", + "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", @@ -135,22 +135,22 @@ "blockContent": [ "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", - "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", - "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", - "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", - "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", + "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", - "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", - "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", + "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", + "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", - "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", - "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", - "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", + "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", + "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", + "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", @@ -172,7 +172,7 @@ "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", - "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" + "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" ] }, { @@ -186,7 +186,7 @@ "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", - "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", + "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", @@ -196,7 +196,7 @@ "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", - "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", + "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", @@ -204,7 +204,7 @@ "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", - "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", + "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", @@ -233,7 +233,7 @@ "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", - "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", + "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", @@ -274,15 +274,15 @@ "

Seine finanzielle Lage ist noch immer sehr drückend […].

", "

Ich widme ihm ein Lied […].162

", - "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", - "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", "

Liebe, sehr verehrte Freundin,

", "

vielen, innigsten Dank für die schönen Lieder!

", "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", - "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", + "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" ] @@ -315,7 +315,7 @@ "footnotes": [ "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", + "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", @@ -356,21 +356,21 @@ "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", - "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", + "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", - "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", + "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", - "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", + "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", @@ -388,21 +388,21 @@ "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", - "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", + "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", + "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", - "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", + "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", + "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", @@ -432,7 +432,7 @@ "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", + "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", @@ -470,7 +470,7 @@ "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", "157 | Ebd.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", + "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", From 9780252585afa940f8f5d8aa464349986630793b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 17 Sep 2024 12:10:50 +0200 Subject: [PATCH 052/213] fix(assets): fix typos in intro AWG I/5 --- src/assets/data/edition/series/1/section/5/op12/intro.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index cd5a02a46a..ab74b3712e 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -135,9 +135,9 @@ "blockContent": [ "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", - "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", - "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", @@ -274,7 +274,7 @@ "

Seine finanzielle Lage ist noch immer sehr drückend […].

", "

Ich widme ihm ein Lied […].162

", - "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", "

Liebe, sehr verehrte Freundin,

", From 582bfa2905596a9fec493aa88686fe4c4fd000da Mon Sep 17 00:00:00 2001 From: masthom Date: Tue, 17 Sep 2024 14:56:55 +0200 Subject: [PATCH 053/213] add corrections op12: source_Ca_corr --- .../1/section/5/op12/source-description.json | 270 +++++++++++++++++- 1 file changed, 268 insertions(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index cbf4d2dace..19c35e2ec5 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1592,8 +1592,274 @@ } ] } - ] - } + ], + "corrections": [ + { + "id": "source_Ca_corr", + "label": "Korrekturen in Ca", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "TODO", + "measure": "3", + "system": "Ges.", + "position": "5/8", + "comment": "Rasur über System." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "5", + "system": "Ges.", + "position": "3–4/8", + "comment": "e1 und fis1 überschreiben nicht zu identifizierende Tonhöhen." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. o.", + "position": "2/8", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "7", + "system": "Klav. u.", + "position": "3/8", + "comment": "Staccatopunkt auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "8", + "system": "Ges.", + "position": "3–4/8", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Crescendogabel gestrichen." + }, + { + "svgGroupId": "TODO", + "measure": "9", + "system": "Klav.", + "position": "4/8", + "comment": "Ped. gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren unter dem System." + }, + { + "svgGroupId": "TODO", + "measure": "10", + "system": "Klav.", + "position": "2/4", + "comment": "Pedalaufhebung gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "11
bis 12", + "system": "", + "position": "", + "comment": "sehr langsam in T. 11 3/4 gestrichen und geändert zu rit. (T. 11), molto (T. 12) und Geltungsstrichelung mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "({{ref.getGlyph('[b]')}}) zu es1/as1 gestrichen mit blauer Tinte.
zögernd gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Crescendogabel geändert zu Decrescendogabel mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "11", + "system": "Klav. u.", + "position": "1. Note", + "comment": "({{ref.getGlyph('[a]')}}) zu F/e gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "", + "position": "Taktanfang", + "comment": "I. Zeitmaß geändert zu tempo mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "13", + "system": "Ges.", + "position": "", + "comment": "Rasur über dem System." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Crescendogabel gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" + }, + { + "svgGroupId": "TODO", + "measure": "14", + "system": "Klav. u.", + "position": "1/8", + "comment": "Auf Rasur.
({{ref.getGlyph('[a]')}}) zu e/a gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "14
bis 15", + "system": "Ges.", + "position": "4. Note
2/8", + "comment": "Crescendogabel ergänzt mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "(2/4)", + "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "15", + "system": "Klav. u.", + "position": "4/8", + "comment": "Auf Rasur." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav. o.", + "position": "3/4", + "comment": "Unterstimmenschicht: fis1 geändert zu ges1." + }, + { + "svgGroupId": "TODO", + "measure": "16", + "system": "Klav. u.", + "position": "3/4", + "comment": "cis geändert zu des." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Crescendogabel gestrichen mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "17", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Unterstimmenschicht: des1/ges1 überschreibt cis1/fis1; Pfeil zu Notennamen ges | des am rechten Seitenrand. " + }, + { + "svgGroupId": "TODO", + "measure": "20", + "system": "Klav. o.", + "position": "(2/4)", + "comment": "Decrescendogabel gestrichen mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "21", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}} mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "21
bis 22", + "system": "Klav. o.", + "position": "1. Note
2/4", + "comment": "Legatobogen ergänzt mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. o.", + "position": "1/4", + "comment": "({{ref.getGlyph('[b]')}}) zu es1 und ({{ref.getGlyph('[a]')}}) zu c2 (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Decrescendogabel gestrichen mit Bleistift." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. u.", + "position": "", + "comment": "({{ref.getGlyph('[a]')}}) zu H/g (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." + }, + { + "svgGroupId": "TODO", + "measure": "22", + "system": "Klav. o.", + "position": "2/4", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit blauer Tinte." + }, + { + "svgGroupId": "TODO", + "measure": "22
bis 23", + "system": "Klav. o.", + "position": "2/4", + "comment": "Gis1/Cis geändert zu As1/Des." + } + ] + } + ] + } + ] +} }, { "id": "source_D", From a2c298cd197e5af695eda05ec7abcdd44d50c6a9 Mon Sep 17 00:00:00 2001 From: masthom Date: Wed, 18 Sep 2024 11:40:09 +0200 Subject: [PATCH 054/213] add corrections op. 12: source_Cb_corr --- .../series/1/section/5/op12/source-description.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 19c35e2ec5..fe661f6b18 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1857,6 +1857,14 @@ ] } ] + }, + { + "id": "source_Cb_corr", + "label": "Korrekturen in Cb", + "description": [ + "Cb weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von Die geheimnisvolle Flöte M 217. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + ], + "comments": [ ] } ] } From 3eec6a4eda1751913de92df609f2215913bb7a2f Mon Sep 17 00:00:00 2001 From: masthom Date: Wed, 18 Sep 2024 11:44:32 +0200 Subject: [PATCH 055/213] Merge branch 'develop' into feature/AWG_I_5_Korrekturverzeichnisse # Conflicts: # src/assets/data/edition/series/1/section/5/op12/source-description.json --- .github/workflows/ci_workflow.yml | 14 +- .github/workflows/codeql.yml | 8 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 6 +- .github/workflows/visualize-repo.yml | 2 +- CHANGELOG.md | 211 + package.json | 66 +- src/app/app.component.spec.ts | 52 +- src/app/app.component.ts | 7 +- src/app/app.globals.ts | 6 +- src/app/core/navbar/navbar.component.spec.ts | 7 +- src/app/core/navbar/navbar.component.ts | 3 +- .../core/services/edition-complexes/index.ts | 1 - .../edition-init.service.spec.ts | 88 + .../edition-init.service.ts | 28 + .../services/edition-init-service/index.ts | 1 + src/app/core/services/index.ts | 4 +- .../error-alert/error-alert.component.html | 5 + .../error-alert/error-alert.component.scss | 0 .../error-alert/error-alert.component.spec.ts | 77 + .../error-alert/error-alert.component.ts | 22 + src/app/shared/shared.module.ts | 3 + .../edition-info.component.spec.ts | 2 +- .../edition-info/edition-info.component.ts | 2 +- .../resource-detail.component.html | 2 +- .../search-panel/search-panel.component.html | 2 +- .../data/edition-complexes.data.ts | 802 ---- .../edition-view/data/edition-glyphs.data.ts | 20 +- .../edition-view/data/edition-outline.data.ts | 144 - src/app/views/edition-view/data/index.ts | 11 +- .../edition-complex-card.component.spec.ts | 158 +- .../edition-complex-card.component.ts | 8 +- .../edition-jumbotron.component.html | 6 +- .../edition-jumbotron.component.spec.ts | 14 +- .../edition-complex.component.spec.ts | 3 +- .../edition-complex.component.ts | 4 +- .../edition-detail-nav.component.spec.ts | 3 +- .../edition-graph.component.html | 21 +- .../edition-graph.component.spec.ts | 103 +- .../graph-visualizer.component.html | 4 - .../edition-intro.component.html | 11 +- .../edition-intro.component.spec.ts | 214 +- .../edition-report.component.html | 9 + .../edition-report.component.spec.ts | 180 +- .../source-evaluation.component.spec.ts | 2 +- .../folio.service.spec.ts | 15 +- .../edition-sheets.component.html | 58 +- .../edition-sheets.component.spec.ts | 383 +- .../edition-sheets.component.ts | 41 +- .../edition-row-tables.component.html | 2 +- .../edition-section-detail.component.html | 17 +- .../edition-section-detail.component.spec.ts | 76 +- .../edition-section-detail.component.ts | 6 +- .../edition-sections.component.html | 4 +- .../edition-sections.component.spec.ts | 402 +- .../edition-sections.component.ts | 20 +- .../edition-series-detail.component.spec.ts | 1 - .../edition-series-detail.component.ts | 4 +- .../edition-series.component.html | 6 +- .../edition-series.component.spec.ts | 142 +- .../edition-series.component.ts | 4 +- .../edition-view/edition-view.component.html | 9 +- .../edition-view.component.spec.ts | 44 +- .../models/edition-complex.model.ts | 18 +- .../models/edition-outline.model.ts | 206 +- .../models/folio-calculation.model.ts | 14 +- .../views/edition-view/models/folio.model.ts | 5 + src/app/views/edition-view/models/index.ts | 20 +- .../edition-complexes.service.spec.ts | 4 +- .../services}/edition-complexes.service.ts | 4 +- .../services/edition-data.service.spec.ts | 2 +- .../services/edition-outline.service.spec.ts | 238 ++ .../services/edition-outline.service.ts | 108 + .../services/edition.service.spec.ts | 61 +- .../edition-view/services/edition.service.ts | 40 - src/app/views/edition-view/services/index.ts | 11 +- .../home-view/home-view.component.spec.ts | 2 +- .../views/home-view/home-view.component.ts | 3 +- .../data/edition/edition-complexes.json | 44 + src/assets/data/edition/edition-outline.json | 139 + .../1/section/5/op12/source-description.json | 1199 ++++++ .../2/section/2a/m34/folio-convolute.json | 170 +- .../2/section/2a/m34/source-description.json | 66 +- .../series/2/section/2a/m34/source-list.json | 2 +- .../2/section/2a/m35_42/folio-convolute.json | 257 +- .../section/2a/m35_42/source-description.json | 72 +- .../2/section/2a/m35_42/source-list.json | 2 +- .../2/section/2a/m35_42/textcritics.json | 7 + .../2/section/2a/m36/folio-convolute.json | 405 ++ .../series/2/section/2a/m36/graph.json | 13 + .../series/2/section/2a/m36/intro.json | 8 + .../2/section/2a/m36/source-description.json | 1057 +++++ .../2/section/2a/m36/source-evaluation.json | 8 + .../series/2/section/2a/m36/source-list.json | 4 +- .../series/2/section/2a/m36/svg-sheets.json | 57 + .../series/2/section/2a/m36/textcritics.json | 146 + .../2/section/2a/m37/folio-convolute.json | 170 +- .../2/section/2a/m37/source-description.json | 66 +- .../series/2/section/2a/m37/source-list.json | 4 +- .../2/section/2a/m38/folio-convolute.json | 405 ++ .../series/2/section/2a/m38/graph.json | 13 + .../series/2/section/2a/m38/intro.json | 8 + .../2/section/2a/m38/source-description.json | 1053 +++++ .../2/section/2a/m38/source-evaluation.json | 8 + .../series/2/section/2a/m38/source-list.json | 4 +- .../series/2/section/2a/m38/svg-sheets.json | 81 + .../series/2/section/2a/m38/textcritics.json | 286 ++ .../2a/m35_42/M35_42_Sk1-2von6-final.svg | 10 +- .../2/section/2a/m36/M36_Sk1-1von5-final.svg | 445 +++ .../2/section/2a/m36/M36_Sk1-2von5-final.svg | 277 ++ .../2/section/2a/m36/M36_Sk1-3von5-final.svg | 410 ++ .../2/section/2a/m36/M36_Sk1-4von5-final.svg | 202 + .../2/section/2a/m36/M36_Sk1-5von5-final.svg | 152 + .../2a/m36/M36_Textfassung1-1von1-final.svg | 1093 ++++++ .../2/section/2a/m37/M37_Sk1-1von1-final.svg | 2 +- .../2/section/2a/m37/M37_Sk2-1von1-final.svg | 2 +- .../2/section/2a/m38/M38_Sk1-1von1-final.svg | 347 ++ .../2/section/2a/m38/M38_Sk2-1von1-final.svg | 226 ++ .../2/section/2a/m38/M38_Sk3-1von5-final.svg | 360 ++ .../2/section/2a/m38/M38_Sk3-2von5-final.svg | 269 ++ .../2/section/2a/m38/M38_Sk3-3von5-final.svg | 403 ++ .../2/section/2a/m38/M38_Sk3-4von5-final.svg | 601 +++ .../2/section/2a/m38/M38_Sk3-5von5-final.svg | 312 ++ .../2a/m38/M38_Textfassung1-1von1-final.svg | 1796 +++++++++ src/testing/mock-data/mockEditionData.ts | 30 + src/testing/mock-data/mockEditionOutline.ts | 26 +- yarn.lock | 3472 +++++++++-------- 127 files changed, 17176 insertions(+), 3321 deletions(-) delete mode 100644 src/app/core/services/edition-complexes/index.ts create mode 100644 src/app/core/services/edition-init-service/edition-init.service.spec.ts create mode 100644 src/app/core/services/edition-init-service/edition-init.service.ts create mode 100644 src/app/core/services/edition-init-service/index.ts create mode 100644 src/app/shared/error-alert/error-alert.component.html create mode 100644 src/app/shared/error-alert/error-alert.component.scss create mode 100644 src/app/shared/error-alert/error-alert.component.spec.ts create mode 100644 src/app/shared/error-alert/error-alert.component.ts delete mode 100644 src/app/views/edition-view/data/edition-complexes.data.ts delete mode 100644 src/app/views/edition-view/data/edition-outline.data.ts rename src/app/{core/services/edition-complexes => views/edition-view/services}/edition-complexes.service.spec.ts (98%) rename src/app/{core/services/edition-complexes => views/edition-view/services}/edition-complexes.service.ts (97%) create mode 100644 src/app/views/edition-view/services/edition-outline.service.spec.ts create mode 100644 src/app/views/edition-view/services/edition-outline.service.ts create mode 100644 src/assets/data/edition/edition-outline.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/folio-convolute.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/graph.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/intro.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/source-description.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/source-evaluation.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/svg-sheets.json create mode 100644 src/assets/data/edition/series/2/section/2a/m36/textcritics.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/folio-convolute.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/graph.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/intro.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/source-description.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/source-evaluation.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/svg-sheets.json create mode 100644 src/assets/data/edition/series/2/section/2a/m38/textcritics.json create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-1von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-2von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-3von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-4von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-5von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m36/M36_Textfassung1-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk1-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-1von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-3von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-4von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-5von5-final.svg create mode 100644 src/assets/img/edition/series/2/section/2a/m38/M38_Textfassung1-1von1-final.svg diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index a79232a750..039ea1890b 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -32,14 +32,14 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node-version: [18.19, 20.13, 22.5.1] + node-version: [18.19, 20.13, 22.x] outputs: sha: ${{ steps.get-sha.outputs.SHA }} steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -88,7 +88,7 @@ jobs: - name: Perform SonarCloud Analysis if: matrix.node-version == 20.13 && github.event_name != 'pull_request' && github.repository_owner == env.MAIN_REPO_OWNER # perform SonarCloud analysis only for current node version and not with pull requests or forks(token issue) - uses: SonarSource/sonarcloud-github-action@e44258b109568baa0df60ed515909fc6c72cba92 # v2.3.0 + uses: SonarSource/sonarcloud-github-action@eb211723266fe8e83102bac7361f0a05c3ac1d1b # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} @@ -109,7 +109,7 @@ jobs: - name: Upload build artifacts (main && develop) # upload build artifacts for current node version and main or develop branch only if: matrix.node-version == 20.13 && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # ratchet:actions/upload-artifact@v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # ratchet:actions/upload-artifact@v4.4.0 with: name: dist path: ${{ github.workspace }}/${{ env.DIST_DIR }} @@ -136,7 +136,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -208,7 +208,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -248,7 +248,7 @@ jobs: node-version: [20.13] steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cf1fba87e4..6f9627569a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -26,7 +26,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0 + uses: github/codeql-action/init@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0 + uses: github/codeql-action/autobuild@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0 + uses: github/codeql-action/analyze@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index bf2dcfbae9..c1209291aa 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 9227c16408..a71b2294a4 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: SARIF file path: results.sarif @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0 + uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: sarif_file: results.sarif diff --git a/.github/workflows/visualize-repo.yml b/.github/workflows/visualize-repo.yml index 0c71b6f2d1..26d237ebaa 100644 --- a/.github/workflows/visualize-repo.yml +++ b/.github/workflows/visualize-repo.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 + uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit diff --git a/CHANGELOG.md b/CHANGELOG.md index d19937034b..130f3be8ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,217 @@ All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines. +## [0.14.0](https://github.com/webern-unibas-ch/awg-app/compare/v0.12.3...v0.14.0) (2024-08-19) + +### Note + +Version 0.13.0 was intentionally skipped in honor of Arnold Schönberg, Anton Webern's lifelong teacher and friend, who feared the number 13 ([Triskaidekaphobia](https://en.wikipedia.org/wiki/Triskaidekaphobia)). + +### Features + +- **assets:** add corrections in Op12: EH + F ([8b42d86](https://github.com/webern-unibas-ch/awg-app/commit/8b42d864944d259b48fd649d906cf9c078d27540); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add files for m36 ([5e2ffe6](https://github.com/webern-unibas-ch/awg-app/commit/5e2ffe64f3392efe6f3ad53930c5c9e6182203f2); thanks to [@chael-mi](https://github.com/chael-mi)) +- **assets:** add files for m38 ([03a6c17](https://github.com/webern-unibas-ch/awg-app/commit/03a6c17fd9dca14ecfa86be24b9c713b2ebe3afe); thanks to [@chael-mi](https://github.com/chael-mi)) +- **assets:** add preface content ([3a0210c](https://github.com/webern-unibas-ch/awg-app/commit/3a0210c26559265a63565c5eddda0be46e99ae6a); thanks to [@masthom](https://github.com/masthom)) +- **assets:** move complexes to separate assets file ([fe5571f](https://github.com/webern-unibas-ch/awg-app/commit/fe5571fa47ae820cbc326478e49d401cd091b309)) +- **assets:** move outline to separate assets file ([1e8997d](https://github.com/webern-unibas-ch/awg-app/commit/1e8997d3850e3af4056d369d573166bcef606d1b)) +- **core:** add EditionComplexes service ([c83edf3](https://github.com/webern-unibas-ch/awg-app/commit/c83edf3bf7e0057f8f6bab6f45f56a27b107a639)) +- **core:** add EditionOutline service ([7972875](https://github.com/webern-unibas-ch/awg-app/commit/7972875134ac3adb8a9bae642d548da1aefe2538)) +- **edition:** activate edition complex M 36 ([311b0b4](https://github.com/webern-unibas-ch/awg-app/commit/311b0b4c767ce56add9dd280a2cab81df787d94e)) +- **edition:** activate edition complex M 38 ([5b2a9bf](https://github.com/webern-unibas-ch/awg-app/commit/5b2a9bf6896e1d5c794678cdb685a0467a3e75d7)) +- **edition:** activate preface in app ([4213ea6](https://github.com/webern-unibas-ch/awg-app/commit/4213ea6358706c3443bdddcd3813a2c02bfd42a9)) +- **edition:** add initService & activate EditionOutline service in app ([2eb12d2](https://github.com/webern-unibas-ch/awg-app/commit/2eb12d230bfa4bcb13dfe4761431eead414816f9)) +- **edition:** add option to place folio items next to systems ([06ed541](https://github.com/webern-unibas-ch/awg-app/commit/06ed541e9ca5b3faf2d4930c667bdfccd01ea29f)) +- **edition:** add preface component and methods ([d4af6e8](https://github.com/webern-unibas-ch/awg-app/commit/d4af6e8b40e609759b971e85adcedde199e6fcb4)) +- **edition:** add ScrollToTop button to edition view ([3c75bbd](https://github.com/webern-unibas-ch/awg-app/commit/3c75bbd984ff032c2308e661733d80e8d26628e3)) +- **edition:** add textcritical comment blocks with headers ([7cf3a9b](https://github.com/webern-unibas-ch/awg-app/commit/7cf3a9b3b81247a730588fa0260ede4fdaeaa334)) +- **shared:** add ErrorAlertComponent ([dfbf6ce](https://github.com/webern-unibas-ch/awg-app/commit/dfbf6ce3bd96f35085ec8518560c70761426e650)) + +### Bug Fixes + +- **app:** fix import paths ([8183d6f](https://github.com/webern-unibas-ch/awg-app/commit/8183d6fc2d276cc856586b585def2a7fcd3b251a)) +- **assets:** add missing colons ([3a256a4](https://github.com/webern-unibas-ch/awg-app/commit/3a256a407391c421025fe2e908f5088ef3bc6f44)) +- **assets:** add missing data files and placeholders for m36 ([feca45b](https://github.com/webern-unibas-ch/awg-app/commit/feca45baf7a028d1017269e91c23297c3900d7ab)) +- **assets:** add missing data files and placeholders for m38 ([62f0ad2](https://github.com/webern-unibas-ch/awg-app/commit/62f0ad297e6227a1034525fe500b094859333945)) +- **assets:** add missing italics ([67c1120](https://github.com/webern-unibas-ch/awg-app/commit/67c1120d932d4340ef5fe414fa05e55cda6fefd1)) +- **assets:** add missing M to source list in m36 ([5aab381](https://github.com/webern-unibas-ch/awg-app/commit/5aab38148620c79fe40158f63f968e6966116c2a)) +- **assets:** adjust corrections op12 to new block style ([8512841](https://github.com/webern-unibas-ch/awg-app/commit/851284112feb80d5327c9d37aba806e84db470f8)) +- **assets:** fix addendum for source E in op25 ([3621bd1](https://github.com/webern-unibas-ch/awg-app/commit/3621bd158e749bb825953d5faca38d029796a9fc); thanks to [@masthom](https://github.com/masthom)) +- **assets:** fix link boxes and textcritics for m36 ([153811c](https://github.com/webern-unibas-ch/awg-app/commit/153811c6fe4bd91d24aac454f26c64c355768df3)) +- **assets:** fix link boxes and textcritics for m38 ([d4fd615](https://github.com/webern-unibas-ch/awg-app/commit/d4fd61555cf856bd335ab2e076a1c26957716f3e)) +- **assets:** fix M number of M 135 ([97fbf07](https://github.com/webern-unibas-ch/awg-app/commit/97fbf07fe93f52de1bc954082f9ebc85753272d1)) +- **assets:** fix order of sources in op. 4 ([d4b9538](https://github.com/webern-unibas-ch/awg-app/commit/d4b95388c0e414c90a4cc55134eea509c3710095)) +- **assets:** fix source lists for m36 and m38 ([4ea7ddf](https://github.com/webern-unibas-ch/awg-app/commit/4ea7ddf3f554e8dfbf24553183271c0ed7b3a0b5)) +- **assets:** fix textcritics for m36 ([a1c2d20](https://github.com/webern-unibas-ch/awg-app/commit/a1c2d2044f96b3ca4a0cdeadd46e224b604581a6)) +- **assets:** fix typo in op25 ([463683d](https://github.com/webern-unibas-ch/awg-app/commit/463683d20c479fd54c2f0b90200e90510f2e554d)) +- **assets:** fix typos and missing infos ([b93a4a4](https://github.com/webern-unibas-ch/awg-app/commit/b93a4a450639ea76b94e541336a3c4dbf60c87b9)) +- **assets:** fix whitespace in intro op12 ([f01c916](https://github.com/webern-unibas-ch/awg-app/commit/f01c9169bad4f2ed89bf3c373efc103bd86f466a)) +- **assets:** optimize svgs for m36 with SVGO ([a747bf0](https://github.com/webern-unibas-ch/awg-app/commit/a747bf0b12ed636364a0c4871594296f3a10700b)) +- **assets:** optimize svgs for m38 with SVGO ([ed6bca2](https://github.com/webern-unibas-ch/awg-app/commit/ed6bca244947d1024d26db986e4fe1767b659630)) +- **assets:** remove doc file ([1773fe8](https://github.com/webern-unibas-ch/awg-app/commit/1773fe8cd6f563108125613aed5104a1d33bf89a)) +- **assets:** remove parentheses from C & D in op. 23 ([5eb4d0d](https://github.com/webern-unibas-ch/awg-app/commit/5eb4d0deceaa3e0994172e1f576e6ab9898ffd8b)) +- **assets:** remove Textfassung for m39 from source list ([f882bf7](https://github.com/webern-unibas-ch/awg-app/commit/f882bf73655dbbe0d1a3ce755fe30c79bbfdee71)) +- **assets:** rename files for m38 ([745abcb](https://github.com/webern-unibas-ch/awg-app/commit/745abcb546f47bf4f424cd924719e26d6a0b2bde)) +- **assets:** update contained M numbers in m34–m38 ([9ffa781](https://github.com/webern-unibas-ch/awg-app/commit/9ffa7815a90e722f1049bd69b638bcae6a4192ba)) +- **assets:** update folio convolute for m36 ([46fa626](https://github.com/webern-unibas-ch/awg-app/commit/46fa626701ece99966f98f9d0d26526c28ba2efa)) +- **assets:** update folio convolute for m38 ([1de1aa5](https://github.com/webern-unibas-ch/awg-app/commit/1de1aa59416a795bc1c3dbb219782174162dc442)) +- **assets:** update m22 ([51e0cf0](https://github.com/webern-unibas-ch/awg-app/commit/51e0cf04c045b769a79091b313ccb72be915aee8)) +- **assets:** update m34 ([a42d5bd](https://github.com/webern-unibas-ch/awg-app/commit/a42d5bd8e97122d3b06f8ef1876233215a0d219b)) +- **assets:** update m35_42 ([c99842a](https://github.com/webern-unibas-ch/awg-app/commit/c99842a894201d284ea505e51069a1d01ae27147)) +- **assets:** update m37 ([e318db3](https://github.com/webern-unibas-ch/awg-app/commit/e318db3923c1cde37d4c496d44e016be26a5f814)) +- **assets:** update source description for m36 ([8543e91](https://github.com/webern-unibas-ch/awg-app/commit/8543e91d771eec2d7400de253cd77bae2972f115)) +- **assets:** update source description for m38 ([e2530cf](https://github.com/webern-unibas-ch/awg-app/commit/e2530cf4aad675599d9c58247285042edef54be1)) +- **assets:** use angular white space instead of nbsp ([6fc51e6](https://github.com/webern-unibas-ch/awg-app/commit/6fc51e692de2e4238fbca680b14c4f359c79c241)) +- **assets:** use correct syntax for missing sources in op3 and op4 ([168c9e1](https://github.com/webern-unibas-ch/awg-app/commit/168c9e1db63aa01a8a3f3dafa25a4063cc3f3f95)) +- **core:** remove unused var and method from navbar ([490937c](https://github.com/webern-unibas-ch/awg-app/commit/490937c27d5ace98a07b30aae85c32f870beb4ec)) +- **edition:** activate EditionComplexes service in app ([b9200f0](https://github.com/webern-unibas-ch/awg-app/commit/b9200f095b224cbf3b518c3b94f3111bcb001756)) +- **edition:** add missing glyphs ([e261a31](https://github.com/webern-unibas-ch/awg-app/commit/e261a3141277638cce185c93293f1c64964c9203)) +- **edition:** add pedal to glyphs ([e4880c9](https://github.com/webern-unibas-ch/awg-app/commit/e4880c9a0aa46342e9ce76aa3bea3d0f2af7f44d)) +- **edition:** auto-generate message for empty textcritics ([b18f999](https://github.com/webern-unibas-ch/awg-app/commit/b18f999f6d4e4615e8596b9b44779debd4290a8f)) +- **edition:** clean up code ([2c8d513](https://github.com/webern-unibas-ch/awg-app/commit/2c8d5132d884b0e9c8e0e9109cafbede7027e003)) +- **edition:** fix track-by indices for EditionSeries ([3aa2da3](https://github.com/webern-unibas-ch/awg-app/commit/3aa2da32f8ea6756749c3f3fd14ab49f8fa3c00d)) +- **edition:** remove deprecated data files ([d5fb3fe](https://github.com/webern-unibas-ch/awg-app/commit/d5fb3fedce24906cc02ff3887ad3c615e4a99996)) +- **edition:** remove landscape image from jumbotron ([79f2766](https://github.com/webern-unibas-ch/awg-app/commit/79f276604e278364804bb97389bf536747aa81cd)) +- **edition:** remove unused edition type component ([0459b53](https://github.com/webern-unibas-ch/awg-app/commit/0459b53aad604a6ce91182d7ff4294540f4e504c)) +- **edition:** remove unused method from edition service ([6e7b8dc](https://github.com/webern-unibas-ch/awg-app/commit/6e7b8dca332d0a64ae9db40f4b9f44b87716bfc8)) +- **edition:** remove unused type from complex model ([c8b1882](https://github.com/webern-unibas-ch/awg-app/commit/c8b1882423fb6adc137fadfc4980817b053308b7)) +- **edition:** simplify handling of sources in SourceList ([9c34a77](https://github.com/webern-unibas-ch/awg-app/commit/9c34a77562b8456601baac1dd57044c076c5d3c4)) +- **edition:** use correct constant for AWG III/5 ([d6b52a7](https://github.com/webern-unibas-ch/awg-app/commit/d6b52a7e8ce9e93449cd5026df69bdceb1815e14)) +- **edition:** use jumbotron for complex titles ([4f47a9a](https://github.com/webern-unibas-ch/awg-app/commit/4f47a9a2395d516927563284bb11c50662d2be34)) +- **edition:** use loading spinner for all edition views ([1c2135e](https://github.com/webern-unibas-ch/awg-app/commit/1c2135e0a5646c6256ca06a538e9bd47f87b0865)) +- **edition:** use shared ErrorAlertComponent ([e230c68](https://github.com/webern-unibas-ch/awg-app/commit/e230c6834590bb249f6a17796145304185fc7283)) + +### Code Refactoring + +- **assets:** use blocks for textcritics ([77e50a1](https://github.com/webern-unibas-ch/awg-app/commit/77e50a1c9ebf127125a5c83b7539562442f9ae03)) +- **assets:** use complex id as object key in JSON structure ([6216c48](https://github.com/webern-unibas-ch/awg-app/commit/6216c48ca4bb4acb01ca999cbf78543ab42637f8)) +- **core:** rename EditionComplexes service folder ([21994a5](https://github.com/webern-unibas-ch/awg-app/commit/21994a52a7fbfa717ea88d10de5652107e2f6b2f)) +- **edition:** move complex creation logic from data to model ([66e9613](https://github.com/webern-unibas-ch/awg-app/commit/66e9613c0b6695d4fddf1fbd5ae071324f096b0b)) +- **edition:** move series and section into pubStatement ([172a729](https://github.com/webern-unibas-ch/awg-app/commit/172a729cce9335cd5c9688226eb2b6c1b27e8736)) +- **edition:** rename class for intro paragraph ([fa99e4f](https://github.com/webern-unibas-ch/awg-app/commit/fa99e4f24af196137a4e54f1642f43506025e9b8)) +- **edition:** rename complex json data model ([b58a0d4](https://github.com/webern-unibas-ch/awg-app/commit/b58a0d403ea32c2bf1c9b4133108a2842436a84a)) +- **edition:** rename edition complex subclasses ([0e6bc38](https://github.com/webern-unibas-ch/awg-app/commit/0e6bc38144b7f2f54f3e5d63da800d1d88849d4a)) +- **edition:** rename edition related service and comp methods ([ac1b098](https://github.com/webern-unibas-ch/awg-app/commit/ac1b09815453ee0a83a901bde657082c2a02e47d)) +- **edition:** rename method for EditionView setup ([d0d4094](https://github.com/webern-unibas-ch/awg-app/commit/d0d40948dc3a1a2833426a419d63bb507d87f07b)) +- **edition:** rename parts of edition outline model ([308b8ae](https://github.com/webern-unibas-ch/awg-app/commit/308b8ae6ee7cf94d3d5ebdda64d0c13a3d840b1f)) +- **edition:** rename respStatment ([242c934](https://github.com/webern-unibas-ch/awg-app/commit/242c934272fa6a70584c1124f2cd3cdcb6b59a74)) +- **edition:** simplify and fully test GraphVisualizerService ([dce9676](https://github.com/webern-unibas-ch/awg-app/commit/dce967666dadedf9053da2a92232326cd15e0415)) +- **edition:** simplify generation of edition breadcrumb ([d9d9a5d](https://github.com/webern-unibas-ch/awg-app/commit/d9d9a5d9bb0fd4d081e1d5b482ad4ae1b30d0fd4)) +- **edition:** sort methods in editionDataService ([c7b048d](https://github.com/webern-unibas-ch/awg-app/commit/c7b048d69c7d6a23204a224eff4cb8bbd55614b2)) + +### Tests + +- **app:** fix syntax of remaining tests ([e057b49](https://github.com/webern-unibas-ch/awg-app/commit/e057b4912a9f1b2da3d80d495f5913e5b6f0b3de)) +- **app:** fix syntax of some more tests ([25c395b](https://github.com/webern-unibas-ch/awg-app/commit/25c395be97b219dbe338dc3fd44342706959945b)) +- **app:** fix tests after changes ([11ff7ab](https://github.com/webern-unibas-ch/awg-app/commit/11ff7aba433d82986100ec9f318aa8f562576ffa)) +- **app:** fix tests for AppComponent ([52d7a6a](https://github.com/webern-unibas-ch/awg-app/commit/52d7a6a394f66dbf259216f916bce2e897c12d7a)) +- **app:** fix typos and order in some tests ([9355e33](https://github.com/webern-unibas-ch/awg-app/commit/9355e33b7d7876b3aeb502885a600cb3de1ac1c2)) +- **app:** fix updated models and services in tests ([6f78602](https://github.com/webern-unibas-ch/awg-app/commit/6f78602e402b021e403aa3bfec4ee6aadae9761b)) +- **edition:** add more tests for edition sheets ([7308d6f](https://github.com/webern-unibas-ch/awg-app/commit/7308d6fa4c83153770830fab7f8029be2d7e6cb2)) +- **edition:** add tests for EditionSectionsComponent ([d626e57](https://github.com/webern-unibas-ch/awg-app/commit/d626e57468f57e38c1d1ff32c8c622aafbc2ee86)) +- **edition:** add tests for preface service methods ([b3efad1](https://github.com/webern-unibas-ch/awg-app/commit/b3efad199fc456f30e832068fc21885aa4676792)) +- **edition:** fix incorrect awg constant ([f8b8291](https://github.com/webern-unibas-ch/awg-app/commit/f8b829149b57c962f39e448d5c52b0e8a43fc5f8)) +- **edition:** fix intro paragraph class after change ([b2e99b4](https://github.com/webern-unibas-ch/awg-app/commit/b2e99b4d012ec00419d9f479605fb1d193e8d4da)) +- **edition:** fix tests after changes ([89abcbb](https://github.com/webern-unibas-ch/awg-app/commit/89abcbb6aa09db60f63d050228e1b21ff9cfdb7e)) +- **edition:** fix tests after changes ([d0e738e](https://github.com/webern-unibas-ch/awg-app/commit/d0e738eec6de46dce044a77d9ca79e385adab414)) +- **edition:** fix tests for EditionComplexes service ([40a3d93](https://github.com/webern-unibas-ch/awg-app/commit/40a3d93c569c91184fa78d43451551ef86f9024e)) +- **edition:** fix tests for textcritical comment blocks ([d419ae9](https://github.com/webern-unibas-ch/awg-app/commit/d419ae98767196007a90db6b5a66c397ee4e490c)) +- **edition:** remove focus from test ([12c6551](https://github.com/webern-unibas-ch/awg-app/commit/12c6551d6ed5c8e5c8d40b9659eb2b8021d7b12c)) +- **edition:** use regular edition outline in EditionView test ([97b5926](https://github.com/webern-unibas-ch/awg-app/commit/97b592625c7f14a71d748ef20d5110aed8bfd77b)) + +### Continuous Integration + +- **gh-actions:** include node 22 in workflow ([2684667](https://github.com/webern-unibas-ch/awg-app/commit/2684667984427ab9a3b4bead1da4e317d1381ecd)) +- **gh-actions:** pin fixed node version temporarily ([eb8e8c5](https://github.com/webern-unibas-ch/awg-app/commit/eb8e8c56a1e899c764c010f0cd0a76965ab0c763)) +- **gh-actions:** switch back to latest node v22 ([19a196d](https://github.com/webern-unibas-ch/awg-app/commit/19a196d3375956ee79e07c66ed3f47b8d017f02c)) + +### Documentation + +- **edition:** add JSDocs to new SourceDescription sub-classes ([bfd6360](https://github.com/webern-unibas-ch/awg-app/commit/bfd636080a97e7252cfbd08b41c925c8bb7768ad)) + +### Styles + +- **edition:** use shadow for cards ([2c4dad6](https://github.com/webern-unibas-ch/awg-app/commit/2c4dad6e35dbab8f9c2c635f2f8d6fa2769505b6)) +- **search:** fix error class ([a424df0](https://github.com/webern-unibas-ch/awg-app/commit/a424df0c4c6f6ae34d08a8a1306e34f34222a519)) + +### Build System + +- **deps-dev:** bump @commitlint/cli in the commitlint group ([8eadc48](https://github.com/webern-unibas-ch/awg-app/commit/8eadc4816d9af96fc6b1feae5a51e90147c99060)) +- **deps-dev:** bump @types/node from 18.19.39 to 18.19.40 ([88a8559](https://github.com/webern-unibas-ch/awg-app/commit/88a8559e07401fb362eb65db9017028ff81faa75)) +- **deps-dev:** bump @types/node from 18.19.40 to 18.19.41 ([7b2b8fe](https://github.com/webern-unibas-ch/awg-app/commit/7b2b8fe47d4335a178f2109397c8777c7260b244)) +- **deps-dev:** bump @types/node from 18.19.41 to 18.19.42 ([ef03a45](https://github.com/webern-unibas-ch/awg-app/commit/ef03a45bd47943ccaa0517d74bf1fe926347cd52)) +- **deps-dev:** bump @types/node from 18.19.42 to 20.14.14 ([a7a517e](https://github.com/webern-unibas-ch/awg-app/commit/a7a517e6a1fe9b957ad9df5aace977bb6772af8b)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.10.2 to 48.11.0 ([ba58324](https://github.com/webern-unibas-ch/awg-app/commit/ba583245841157874a353fe551302ed6c42133ed)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.11.0 to 50.0.0 ([13d1071](https://github.com/webern-unibas-ch/awg-app/commit/13d107130553229a51c3a878eeb3e2d1fd005d27)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.5.0 to 48.5.2 ([be1bd20](https://github.com/webern-unibas-ch/awg-app/commit/be1bd209680d2cbb96b5efee71c0ada2414daf5c)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.5.2 to 48.6.0 ([47d0c31](https://github.com/webern-unibas-ch/awg-app/commit/47d0c31a88d2f0986920f86325bab2a7d7875c66)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.6.0 to 48.7.0 ([ddcf59a](https://github.com/webern-unibas-ch/awg-app/commit/ddcf59a419bf5f9348d2339aa578ff3652fe132b)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.7.0 to 48.8.3 ([cec7fed](https://github.com/webern-unibas-ch/awg-app/commit/cec7fedba402c4259693a386dfc9aa92c8bc7f92)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.8.3 to 48.9.2 ([490d1ff](https://github.com/webern-unibas-ch/awg-app/commit/490d1ffaa39523330d2b24b0c0d85e97fd82b752)) +- **deps-dev:** bump eslint-plugin-jsdoc from 48.9.2 to 48.10.2 ([53d904b](https://github.com/webern-unibas-ch/awg-app/commit/53d904b13aa33513e73827c8b59f8b4170b03d9f)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.0.0 to 50.0.1 ([4069d81](https://github.com/webern-unibas-ch/awg-app/commit/4069d81491763d30c06ac52426293e2175c3b187)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.0.1 to 50.2.1 ([e399969](https://github.com/webern-unibas-ch/awg-app/commit/e399969a0b184c4958c81eb3c3f9a933eface7bb)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.2.1 to 50.2.2 ([09fabda](https://github.com/webern-unibas-ch/awg-app/commit/09fabda42f6c81e099e5d72eb6bf27027b5ac819)) +- **deps-dev:** bump eslint-plugin-prettier from 5.1.3 to 5.2.1 ([fb531b4](https://github.com/webern-unibas-ch/awg-app/commit/fb531b4d5b214ba1519db8d871c1076bc2ace6fa)) +- **deps-dev:** bump husky from 9.0.11 to 9.1.1 ([aa0566f](https://github.com/webern-unibas-ch/awg-app/commit/aa0566f3413d9bcf44014e2e581d80cf1e76fe35)) +- **deps-dev:** bump husky from 9.1.1 to 9.1.2 ([612f448](https://github.com/webern-unibas-ch/awg-app/commit/612f44860baed9c975d9126abaa2b07f2ca2f117)) +- **deps-dev:** bump husky from 9.1.2 to 9.1.4 ([baa3501](https://github.com/webern-unibas-ch/awg-app/commit/baa350151922dcd0048caba49b63518c0acb4628)) +- **deps-dev:** bump jasmine-core from 5.1.2 to 5.2.0 ([b903c1e](https://github.com/webern-unibas-ch/awg-app/commit/b903c1ee3c01f5c3c2cbaf3abac3c62ca028dac1)) +- **deps-dev:** bump karma from 6.4.3 to 6.4.4 ([3e9ba46](https://github.com/webern-unibas-ch/awg-app/commit/3e9ba4665182b8f58f4907a7192365e390894b78)) +- **deps-dev:** bump lint-staged from 15.2.7 to 15.2.8 ([f4513de](https://github.com/webern-unibas-ch/awg-app/commit/f4513de5d45e51b23531e9fff1c4fd69071e195d)) +- **deps-dev:** bump lint-staged from 15.2.8 to 15.2.9 ([32b44c2](https://github.com/webern-unibas-ch/awg-app/commit/32b44c2925c049cb857d19746613157fcb066e2f)) +- **deps-dev:** bump prettier from 3.3.2 to 3.3.3 ([bd8330c](https://github.com/webern-unibas-ch/awg-app/commit/bd8330c6d86c70b8f870fb39bcfb6035947ad3ee)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([2285f9b](https://github.com/webern-unibas-ch/awg-app/commit/2285f9bca446f055f8298ee8b3ef968d000e4703)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([9f4319d](https://github.com/webern-unibas-ch/awg-app/commit/9f4319d3e34e4f241ec37378842aac2b2a10bf74)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([61e438e](https://github.com/webern-unibas-ch/awg-app/commit/61e438e11e56547bc3c6ecff2066b891a36f37f2)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f9fb819](https://github.com/webern-unibas-ch/awg-app/commit/f9fb819ff4f0eb2649848fe38dbd810f347ba0ab)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([46432b5](https://github.com/webern-unibas-ch/awg-app/commit/46432b509d1b77a50ab8289f246deafaebd5fa68)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([688da7e](https://github.com/webern-unibas-ch/awg-app/commit/688da7ec256c46472e4352c09c1f0d2ec491b19b)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([26fce92](https://github.com/webern-unibas-ch/awg-app/commit/26fce928e28d4f4a743231ec8aa96820c0656029)) +- **deps-dev:** bump the angular-eslint group with 5 updates ([5f37c41](https://github.com/webern-unibas-ch/awg-app/commit/5f37c419bdc27f33ec965931ab4a835e65ff710f)) +- **deps-dev:** bump the angular-eslint group with 5 updates ([73b4783](https://github.com/webern-unibas-ch/awg-app/commit/73b47838a8bf5ec447ad2dcdb6395f61f72eaebb)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([f58e89b](https://github.com/webern-unibas-ch/awg-app/commit/f58e89b794c8995cc5da10230bc79dae70df97b0)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([94a0151](https://github.com/webern-unibas-ch/awg-app/commit/94a01519fc1654e6b2a1e57ba526329dddacfefc)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([185e1d9](https://github.com/webern-unibas-ch/awg-app/commit/185e1d9dfa140ad0231991dd5cdd2bac1cbdd8bf)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([5db38a8](https://github.com/webern-unibas-ch/awg-app/commit/5db38a80fd5319ac749c19de91654b1eb59ac80a)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([4010d7a](https://github.com/webern-unibas-ch/awg-app/commit/4010d7a1a1451df6c8ef160e5e498caede477f79)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([6e2bf13](https://github.com/webern-unibas-ch/awg-app/commit/6e2bf13266eab01fc3f3ea2368922fbfa9150d93)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([edae3ff](https://github.com/webern-unibas-ch/awg-app/commit/edae3ffa154c44d705e8247021be6a3368db7763)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([00e701c](https://github.com/webern-unibas-ch/awg-app/commit/00e701c8ef6cad84734186b61906368c286cbb5e)) +- **deps-dev:** bump typescript from 5.5.2 to 5.5.4 ([e5dd837](https://github.com/webern-unibas-ch/awg-app/commit/e5dd83730a004b817c79ef258e45b34656e021f9)) +- **deps-dev:** update husky ([6e58c7c](https://github.com/webern-unibas-ch/awg-app/commit/6e58c7c0236087f2b31597c1090afe3adb2d0772)) +- **deps:** bump @codemirror/legacy-modes from 6.4.0 to 6.4.1 ([59cb709](https://github.com/webern-unibas-ch/awg-app/commit/59cb7097a6d263bcfa44f8ab629adeae28dc3dc5)) +- **deps:** bump @fortawesome/free-solid-svg-icons ([192df83](https://github.com/webern-unibas-ch/awg-app/commit/192df8366ff5b8b568aa928fd178ad5e09082026)) +- **deps:** bump actions/dependency-review-action from 4.3.3 to 4.3.4 ([9a2bd0c](https://github.com/webern-unibas-ch/awg-app/commit/9a2bd0cb11694ad87e4e15b1078329f14e9a8b85)) +- **deps:** bump actions/download-artifact from 4.1.7 to 4.1.8 ([003e5d0](https://github.com/webern-unibas-ch/awg-app/commit/003e5d0ddfb4d310904ecb086196d3e8c2954c7e)) +- **deps:** bump actions/setup-node from 4.0.2 to 4.0.3 ([5dc9a95](https://github.com/webern-unibas-ch/awg-app/commit/5dc9a95d047aabcf2013ff839714063391591e67)) +- **deps:** bump actions/upload-artifact from 4.3.3 to 4.3.4 ([1cd8e55](https://github.com/webern-unibas-ch/awg-app/commit/1cd8e555ea7727fde0d1f377291725d50cd36b55)) +- **deps:** bump actions/upload-artifact from 4.3.4 to 4.3.5 ([5c795e4](https://github.com/webern-unibas-ch/awg-app/commit/5c795e431fb0ef10a4ec7c3eea04ee6277460b6f)) +- **deps:** bump actions/upload-artifact from 4.3.5 to 4.3.6 ([7cc20df](https://github.com/webern-unibas-ch/awg-app/commit/7cc20df20411b3c04ab0b4e3c3791b58d59729d0)) +- **deps:** bump axios from 1.7.2 to 1.7.4 ([42e32d1](https://github.com/webern-unibas-ch/awg-app/commit/42e32d1154c4e1552eb1f61e26be37010e4889ec)) +- **deps:** bump github/codeql-action from 3.25.10 to 3.25.11 ([f135634](https://github.com/webern-unibas-ch/awg-app/commit/f13563420f6067da96618390d3d4573f0a338b53)) +- **deps:** bump github/codeql-action from 3.25.11 to 3.25.12 ([80de336](https://github.com/webern-unibas-ch/awg-app/commit/80de33633cb73937d73fa5e0e3573c4e86efc6ac)) +- **deps:** bump github/codeql-action from 3.25.12 to 3.25.13 ([cb03a00](https://github.com/webern-unibas-ch/awg-app/commit/cb03a00684d6c05ce4c86ed33e566a0bb46b59a0)) +- **deps:** bump github/codeql-action from 3.25.13 to 3.25.15 ([b053cf9](https://github.com/webern-unibas-ch/awg-app/commit/b053cf99ae1e7a0e427a415d51a713d93937c547)) +- **deps:** bump github/codeql-action from 3.25.15 to 3.26.0 ([3fa2067](https://github.com/webern-unibas-ch/awg-app/commit/3fa2067eb64ee807a0274cb4037cb6f4e41b6e96)) +- **deps:** bump github/codeql-action from 3.26.0 to 3.26.1 ([91455ad](https://github.com/webern-unibas-ch/awg-app/commit/91455adc853e67c8388b6ac12980d1eec284d5b2)) +- **deps:** bump github/codeql-action from 3.26.1 to 3.26.2 ([9a2c7ae](https://github.com/webern-unibas-ch/awg-app/commit/9a2c7aea2fe6c5cb67cf273c8b08e6badb6bcef4)) +- **deps:** bump n3 from 1.17.4 to 1.20.3 ([239a91f](https://github.com/webern-unibas-ch/awg-app/commit/239a91f390f55b5a0d199b36bd997360b044d05e)) +- **deps:** bump n3 from 1.20.3 to 1.20.4 ([965de9b](https://github.com/webern-unibas-ch/awg-app/commit/965de9bf734225a01e1b5443fef43fad77eedee3)) +- **deps:** bump ossf/scorecard-action from 2.3.3 to 2.4.0 ([0df58ee](https://github.com/webern-unibas-ch/awg-app/commit/0df58eed5b81397548e075631f87eb58ccb26d5f)) +- **deps:** bump softprops/action-gh-release from 2.0.6 to 2.0.8 ([86c7296](https://github.com/webern-unibas-ch/awg-app/commit/86c729603f101fdd5ddfecf86f5afbd770a7e409)) +- **deps:** bump step-security/harden-runner from 2.8.1 to 2.9.0 ([4fce8a7](https://github.com/webern-unibas-ch/awg-app/commit/4fce8a709e9f4b2fe2238589f01ce2f4e453cc0a)) +- **deps:** bump step-security/harden-runner from 2.9.0 to 2.9.1 ([1df7522](https://github.com/webern-unibas-ch/awg-app/commit/1df75228c0d65864d817719368bfcc6e605e6e6a)) +- **deps:** bump the angular group with 11 updates ([986c124](https://github.com/webern-unibas-ch/awg-app/commit/986c124c9ed37fa626e43f7d8b81c5ce7d14727c)) +- **deps:** bump the angular group with 11 updates ([cb33669](https://github.com/webern-unibas-ch/awg-app/commit/cb336690cc4195d4f840105565ecb0051f0c8c55)) +- **deps:** bump the angular group with 11 updates ([d8de582](https://github.com/webern-unibas-ch/awg-app/commit/d8de58266ba658348a715e43020adc17037c0aaf)) +- **deps:** bump the angular group with 11 updates ([2b8ec44](https://github.com/webern-unibas-ch/awg-app/commit/2b8ec44a161d9791776be8f041d13f20540d2a7f)) +- **deps:** bump the angular group with 11 updates ([e7589fe](https://github.com/webern-unibas-ch/awg-app/commit/e7589fe92525767d164a850f9a3be92c64806ba5)) +- **deps:** bump the angular group with 11 updates ([972d326](https://github.com/webern-unibas-ch/awg-app/commit/972d32656c33cfb5ed35e0edee30ac708053f2ff)) +- **deps:** bump the angular group with 11 updates ([a132ec2](https://github.com/webern-unibas-ch/awg-app/commit/a132ec2951c9fd8710f731eabb387003cb19f3f9)) +- **deps:** bump zone.js from 0.14.7 to 0.14.8 ([ef54a7d](https://github.com/webern-unibas-ch/awg-app/commit/ef54a7dc4c986b3fab6382de55ac70b4a8198f32)) +- **deps:** bump zone.js from 0.14.8 to 0.14.10 ([dc5f651](https://github.com/webern-unibas-ch/awg-app/commit/dc5f65162025246fef64775327b5c30f5ee3745d)) + ## [0.12.3](https://github.com/webern-unibas-ch/awg-app/compare/v0.12.2...v0.12.3) (2024-07-01) ### Features diff --git a/package.json b/package.json index ae9b680e5b..05a011d6b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "awg-app", - "version": "0.12.3", + "version": "0.14.0", "license": "MIT", "author": { "name": "Stefan Münnich", @@ -84,21 +84,21 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.1.4", - "@angular/common": "^18.1.4", - "@angular/compiler": "^18.1.4", - "@angular/core": "^18.1.4", - "@angular/forms": "^18.1.4", - "@angular/localize": "^18.1.4", - "@angular/platform-browser": "^18.1.4", - "@angular/platform-browser-dynamic": "^18.1.4", - "@angular/platform-server": "^18.1.4", - "@angular/router": "^18.1.4", - "@codemirror/legacy-modes": "^6.4.0", + "@angular/animations": "^18.2.4", + "@angular/common": "^18.2.4", + "@angular/compiler": "^18.2.4", + "@angular/core": "^18.2.4", + "@angular/forms": "^18.2.4", + "@angular/localize": "^18.2.4", + "@angular/platform-browser": "^18.2.4", + "@angular/platform-browser-dynamic": "^18.2.4", + "@angular/platform-server": "^18.2.4", + "@angular/router": "^18.2.4", + "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@kolkov/ngx-gallery": "2.0.1", - "@ng-bootstrap/ng-bootstrap": "^17.0.0", + "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.3", "codemirror": "^6.0.1", @@ -109,50 +109,50 @@ "d3-zoom": "^3.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.5.1", - "n3": "^1.20.4", + "n3": "^1.21.1", "ngx-json-viewer": "^3.2.1", "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", "stream": "^0.0.3", - "tslib": "^2.6.2", + "tslib": "^2.7.0", "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.1.4", - "@angular-eslint/builder": "^18.2.0", - "@angular-eslint/eslint-plugin": "^18.2.0", - "@angular-eslint/eslint-plugin-template": "^18.2.0", - "@angular-eslint/schematics": "^18.2.0", - "@angular-eslint/template-parser": "^18.2.0", - "@angular/cli": "^18.1.4", - "@angular/compiler-cli": "^18.1.4", - "@commitlint/cli": "^19.4.0", - "@commitlint/config-angular": "^19.3.0", + "@angular-devkit/build-angular": "^18.2.4", + "@angular-eslint/builder": "^18.3.1", + "@angular-eslint/eslint-plugin": "^18.3.1", + "@angular-eslint/eslint-plugin-template": "^18.3.1", + "@angular-eslint/schematics": "^18.3.1", + "@angular-eslint/template-parser": "^18.3.1", + "@angular/cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.4", + "@commitlint/cli": "^19.5.0", + "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.0.1", - "@typescript-eslint/parser": "^8.0.1", + "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/parser": "^8.5.0", "angular-cli-ghpages": "^2.0.1", - "commit-and-tag-version": "^12.4.1", + "commit-and-tag-version": "^12.4.4", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsdoc": "^50.0.1", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jsdoc": "^50.2.3", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", - "husky": "^9.1.4", - "jasmine-core": "~5.2.0", + "husky": "^9.1.6", + "jasmine-core": "~5.3.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "^2.2.1", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", - "lint-staged": "^15.2.8", + "lint-staged": "^15.2.10", "prettier": "^3.3.3", "source-map-explorer": "^2.5.3", "typescript": "~5.5.4", diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index 92e8243c13..fa9afc7879 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -2,6 +2,7 @@ import { Location } from '@angular/common'; import { Component, DebugElement } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { Title } from '@angular/platform-browser'; import { Router, RouterModule, Routes } from '@angular/router'; import Spy = jasmine.Spy; @@ -9,9 +10,8 @@ import Spy = jasmine.Spy; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectSpyCall, expectToBe, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; -import { AnalyticsService, EditionComplexesService } from '@awg-core/services'; +import { AnalyticsService, EditionInitService } from '@awg-core/services'; -import { Title } from '@angular/platform-browser'; import { AppComponent } from './app.component'; // Mock components @@ -51,12 +51,13 @@ describe('AppComponent (DONE)', () => { let titleService: Title; let mockAnalyticsService: Partial; + let mockEditionInitService: Partial; let getTitleSpy: Spy; let setTitleSpy: Spy; let initialzeAnalyticsSpy: Spy; let trackpageViewSpy: Spy; - let initializeEditionComplexesListSpy: Spy; + let initializeEditionSpy: Spy; beforeEach(waitForAsync(() => { // Create a mocked AnalyticsService with an `initializeAnalytics` and `trackPageView` spy @@ -69,6 +70,13 @@ describe('AppComponent (DONE)', () => { }, }; + // Create a mocked EditionInitService with an `initializeEdition` spy + mockEditionInitService = { + initializeEdition: (): void => { + // Intentional empty test override + }, + }; + TestBed.configureTestingModule({ imports: [RouterModule.forRoot(MOCK_ROUTES)], declarations: [ @@ -79,17 +87,18 @@ describe('AppComponent (DONE)', () => { RoutedTestMockComponent, RoutedTest2MockComponent, ], - providers: [{ provide: AnalyticsService, useValue: mockAnalyticsService }, Title], + providers: [ + { provide: AnalyticsService, useValue: mockAnalyticsService }, + { provide: EditionInitService, useValue: mockEditionInitService }, + Title, + ], }).compileComponents(); // Spies for service methods getTitleSpy = spyOn(Title.prototype, 'getTitle').and.returnValue('Default Page Title'); setTitleSpy = spyOn(Title.prototype, 'setTitle').and.callThrough(); initialzeAnalyticsSpy = spyOn(mockAnalyticsService, 'initializeAnalytics').and.callThrough(); - initializeEditionComplexesListSpy = spyOn( - EditionComplexesService, - 'initializeEditionComplexesList' - ).and.callThrough(); + initializeEditionSpy = spyOn(mockEditionInitService, 'initializeEdition').and.callThrough(); trackpageViewSpy = spyOn(mockAnalyticsService, 'trackPageView').and.callThrough(); })); @@ -127,9 +136,12 @@ describe('AppComponent (DONE)', () => { expect(component).toBeTruthy(); })); - it('... injected service should use provided mockValue', () => { + it('... injected services should use provided mockValues', () => { const analyticsService = TestBed.inject(AnalyticsService); expectToBe(analyticsService === mockAnalyticsService, true); + + const editionInitService = TestBed.inject(EditionInitService); + expectToBe(editionInitService === mockEditionInitService, true); }); describe('router setup (self-test)', () => { @@ -205,25 +217,9 @@ describe('AppComponent (DONE)', () => { })); }); - describe('EditionComplexes', () => { - it('... should call EditionComplexesService to initialize EditionComplexesList', () => { - expectSpyCall(initializeEditionComplexesListSpy, 1); - }); - - it('... should make the EditionComplexesList available', () => { - const editionComplexesList = EditionComplexesService.getEditionComplexesList(); - - expect(editionComplexesList).toBeDefined(); - expect(editionComplexesList).not.toBe({}); - - // Test for samples - expect(editionComplexesList['OP3']).toBeDefined(); - expect(editionComplexesList['M22']).toBeDefined(); - - // Test for sample properties - expect(editionComplexesList['OP3'].titleStatement).toBeDefined(); - expect(editionComplexesList['OP3'].respStatement).toBeDefined(); - expect(editionComplexesList['OP3'].pubStatement).toBeDefined(); + describe('EditionInit', () => { + it('... should call EditionInitService to initialize edition', () => { + expectSpyCall(initializeEditionSpy, 1); }); }); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index f2f142a571..9d56d5b9cc 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -6,7 +6,7 @@ import { filter, map } from 'rxjs/operators'; import { NgbConfig } from '@ng-bootstrap/ng-bootstrap'; -import { AnalyticsService, EditionComplexesService } from '@awg-core/services'; +import { AnalyticsService, EditionInitService } from '@awg-core/services'; /** * The main component of the AWG App. @@ -33,6 +33,7 @@ export class AppComponent { constructor( private readonly activatedRoute: ActivatedRoute, private analyticsService: AnalyticsService, + private editionInitService: EditionInitService, ngbConfig: NgbConfig, private readonly router: Router, private titleService: Title @@ -47,8 +48,8 @@ export class AppComponent { // Init analytics this.analyticsService.initializeAnalytics(); - // Init edition complexes - EditionComplexesService.initializeEditionComplexesList(); + // Init edition complexes and outline + this.editionInitService.initializeEdition(); // Track router events this.router.events diff --git a/src/app/app.globals.ts b/src/app/app.globals.ts index 0c64d79be6..ec89388bb3 100644 --- a/src/app/app.globals.ts +++ b/src/app/app.globals.ts @@ -1,15 +1,15 @@ // THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT MANUALLY! -// Generated last time on Mon, Jul 1, 2024 3:28:42 PM +// Generated last time on Mon, Aug 19, 2024 7:32:05 PM /** * The latest version of the AWG App */ -export const appVersion = '0.12.3'; +export const appVersion = '0.14.0'; /** * The release date of the latest version of the AWG App */ -export const appVersionReleaseDate = '01. Juli 2024'; +export const appVersionReleaseDate = '19. August 2024'; /** * The URL of the AWG App diff --git a/src/app/core/navbar/navbar.component.spec.ts b/src/app/core/navbar/navbar.component.spec.ts index 3db257881a..41da104b57 100644 --- a/src/app/core/navbar/navbar.component.spec.ts +++ b/src/app/core/navbar/navbar.component.spec.ts @@ -30,10 +30,11 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { LOGOSDATA } from '@awg-core/core-data'; import { Logos } from '@awg-core/core-models'; -import { CoreService, EditionComplexesService } from '@awg-core/services'; +import { CoreService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { NavbarComponent } from './navbar.component'; @@ -115,6 +116,10 @@ describe('NavbarComponent (DONE)', () => { }).compileComponents(); })); + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + beforeEach(() => { fixture = TestBed.createComponent(NavbarComponent); component = fixture.componentInstance; diff --git a/src/app/core/navbar/navbar.component.ts b/src/app/core/navbar/navbar.component.ts index 494fe41fb8..81f6351c78 100644 --- a/src/app/core/navbar/navbar.component.ts +++ b/src/app/core/navbar/navbar.component.ts @@ -4,9 +4,10 @@ import { Router } from '@angular/router'; import { faEnvelope, faFileAlt, faHome, faNetworkWired, faSearch } from '@fortawesome/free-solid-svg-icons'; import { Logos } from '@awg-core/core-models'; -import { CoreService, EditionComplexesService } from '@awg-core/services'; +import { CoreService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; /** * The Header component. diff --git a/src/app/core/services/edition-complexes/index.ts b/src/app/core/services/edition-complexes/index.ts deleted file mode 100644 index fba68088c1..0000000000 --- a/src/app/core/services/edition-complexes/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './edition-complexes.service'; diff --git a/src/app/core/services/edition-init-service/edition-init.service.spec.ts b/src/app/core/services/edition-init-service/edition-init.service.spec.ts new file mode 100644 index 0000000000..ab24a010cd --- /dev/null +++ b/src/app/core/services/edition-init-service/edition-init.service.spec.ts @@ -0,0 +1,88 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { TestBed } from '@angular/core/testing'; + +import Spy = jasmine.Spy; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectSpyCall, expectToEqual } from '@testing/expect-helper'; + +import { EDITION_ROUTE_CONSTANTS } from '@awg-app/views/edition-view/edition-route-constants'; +import { EditionComplexesService, EditionOutlineService } from '@awg-app/views/edition-view/services'; + +import { EditionInitService } from './edition-init.service'; + +describe('EditionInitService (DONE)', () => { + let editionInitService: EditionInitService; + + let initializeEditionComplexesListSpy: Spy; + let initializeEditionOutlineSpy: Spy; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [EditionInitService], + }); + + // Inject service + editionInitService = TestBed.inject(EditionInitService); + + // Spies for service methods + initializeEditionComplexesListSpy = spyOn( + EditionComplexesService, + 'initializeEditionComplexesList' + ).and.callThrough(); + initializeEditionOutlineSpy = spyOn(EditionOutlineService, 'initializeEditionOutline').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('... should create', () => { + expect(editionInitService).toBeTruthy(); + }); + + describe('#initializeEdition()', () => { + it('... should have a method `initializeEdition`', () => { + expect(editionInitService.initializeEdition).toBeDefined(); + }); + + it('... should initialize the edition view', () => { + editionInitService.initializeEdition(); + + expectSpyCall(initializeEditionComplexesListSpy, 1); + expectSpyCall(initializeEditionOutlineSpy, 1); + }); + + it('... should make the EditionComplexesList available', () => { + editionInitService.initializeEdition(); + + const editionComplexesList = EditionComplexesService.getEditionComplexesList(); + + expect(editionComplexesList).toBeDefined(); + expect(editionComplexesList).not.toBe({}); + + // Test for samples + expect(editionComplexesList['OP3']).toBeDefined(); + expect(editionComplexesList['M22']).toBeDefined(); + + // Test for sample properties + expect(editionComplexesList['OP3'].titleStatement).toBeDefined(); + expect(editionComplexesList['OP3'].respStatement).toBeDefined(); + expect(editionComplexesList['OP3'].pubStatement).toBeDefined(); + }); + + it('... should make the EditionOutline available', () => { + editionInitService.initializeEdition(); + + const editionOutline = EditionOutlineService.getEditionOutline(); + + expect(editionOutline).toBeDefined(); + expect(editionOutline).not.toBe([]); + + // Test for samples + expectToEqual(editionOutline[0].series, EDITION_ROUTE_CONSTANTS.SERIES_1); + expectToEqual(editionOutline[1].series, EDITION_ROUTE_CONSTANTS.SERIES_2); + expectToEqual(editionOutline[2].series, EDITION_ROUTE_CONSTANTS.SERIES_3); + }); + }); +}); diff --git a/src/app/core/services/edition-init-service/edition-init.service.ts b/src/app/core/services/edition-init-service/edition-init.service.ts new file mode 100644 index 0000000000..2fefd7aadb --- /dev/null +++ b/src/app/core/services/edition-init-service/edition-init.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; + +import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; + +/** + * The EditionInit service. + * + * It handles the initialization of the edition view. + * + * Provided in: `root`. + */ +@Injectable({ + providedIn: 'root', +}) +export class EditionInitService { + /** + * Public method: initializeEdition. + * + * It initializes the edition view by initializing + * the edition complexes list and the edition outline. + * + * @returns {void} Initializes the edition view. + */ + initializeEdition(): void { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + } +} diff --git a/src/app/core/services/edition-init-service/index.ts b/src/app/core/services/edition-init-service/index.ts new file mode 100644 index 0000000000..178f316913 --- /dev/null +++ b/src/app/core/services/edition-init-service/index.ts @@ -0,0 +1 @@ +export * from './edition-init.service'; diff --git a/src/app/core/services/index.ts b/src/app/core/services/index.ts index 54cac85541..caadf977ce 100644 --- a/src/app/core/services/index.ts +++ b/src/app/core/services/index.ts @@ -12,7 +12,7 @@ import { ApiService } from './api-service'; import { ConversionService } from './conversion-service'; import { CoreService } from './core-service'; import { DataStreamerService } from './data-streamer-service'; -import { EditionComplexesService } from './edition-complexes/edition-complexes.service'; +import { EditionInitService } from './edition-init-service'; import { GndService } from './gnd-service'; import { HttpCacheService } from './http-cache'; import { LoadingService } from './loading-service'; @@ -26,7 +26,7 @@ export { ConversionService, CoreService, DataStreamerService, - EditionComplexesService, + EditionInitService, GndService, HttpCacheService, LoadingService, diff --git a/src/app/shared/error-alert/error-alert.component.html b/src/app/shared/error-alert/error-alert.component.html new file mode 100644 index 0000000000..b305535d4c --- /dev/null +++ b/src/app/shared/error-alert/error-alert.component.html @@ -0,0 +1,5 @@ +
+
+
{{ errorObject | json }}
+
+
diff --git a/src/app/shared/error-alert/error-alert.component.scss b/src/app/shared/error-alert/error-alert.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/shared/error-alert/error-alert.component.spec.ts b/src/app/shared/error-alert/error-alert.component.spec.ts new file mode 100644 index 0000000000..8268c9f272 --- /dev/null +++ b/src/app/shared/error-alert/error-alert.component.spec.ts @@ -0,0 +1,77 @@ +import { JsonPipe } from '@angular/common'; +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { expectToBe, expectToContain, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { ErrorAlertComponent } from './error-alert.component'; + +describe('ErrorAlertComponent', () => { + let component: ErrorAlertComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let expectedErrorObject: any; + + const jsonPipe = new JsonPipe(); + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ErrorAlertComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(ErrorAlertComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedErrorObject = { status: 404, statusText: 'got Error' }; + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `errorObject`', () => { + expect(component.errorObject).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should have an outer div.awg-error-message', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-error-message', 1, 1); + }); + + it('... should have a centered danger alert in div.awg-error-message', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-error-message ', 1, 1); + + getAndExpectDebugElementByCss(divDes[0], 'div.text-center > div.alert-danger', 1, 1); + }); + + it('... should not display an error message in div.alert yet', () => { + const alertDes = getAndExpectDebugElementByCss(compDe, 'div.alert-danger', 1, 1); + const alertEl = alertDes[0].nativeElement; + + expectToBe(alertEl.textContent, ''); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + component.errorObject = expectedErrorObject; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + describe('VIEW', () => { + it('... should display an error message in div.alert', () => { + const alertDes = getAndExpectDebugElementByCss(compDe, 'div.alert-danger', 1, 1); + const alertEl = alertDes[0].nativeElement; + + expectToContain(alertEl.textContent, jsonPipe.transform(expectedErrorObject)); + }); + }); + }); +}); diff --git a/src/app/shared/error-alert/error-alert.component.ts b/src/app/shared/error-alert/error-alert.component.ts new file mode 100644 index 0000000000..ad74ea9bda --- /dev/null +++ b/src/app/shared/error-alert/error-alert.component.ts @@ -0,0 +1,22 @@ +import { Component, Input } from '@angular/core'; + +/** + * The ErrorAlertComponent. + * + * It contains an error alert message that is + * provided via the {@link SharedModule}. + */ +@Component({ + selector: 'awg-error-alert', + templateUrl: './error-alert.component.html', + styleUrl: './error-alert.component.scss', +}) +export class ErrorAlertComponent { + /** + * Input variable: errorObject. + * + * It keeps the error object for the component. + */ + @Input() + errorObject: any; +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 945f9e4689..3691fa79cb 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -15,6 +15,7 @@ import { CompileHtmlModule } from './compile-html'; // // Shared components import { AddressComponent } from './address/address.component'; +import { ErrorAlertComponent } from './error-alert/error-alert.component'; import { HeadingComponent } from './heading/heading.component'; import { JsonViewerComponent } from './json-viewer/json-viewer.component'; import { LicenseComponent } from './license/license.component'; @@ -56,6 +57,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; ], declarations: [ AddressComponent, + ErrorAlertComponent, HeadingComponent, JsonViewerComponent, LicenseComponent, @@ -84,6 +86,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; SharedNgbootstrapModule, AddressComponent, + ErrorAlertComponent, HeadingComponent, JsonViewerComponent, LicenseComponent, diff --git a/src/app/side-info/edition-info/edition-info.component.spec.ts b/src/app/side-info/edition-info/edition-info.component.spec.ts index 771feed688..59b1330701 100644 --- a/src/app/side-info/edition-info/edition-info.component.spec.ts +++ b/src/app/side-info/edition-info/edition-info.component.spec.ts @@ -16,9 +16,9 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from 'testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { EditionInfoComponent } from './edition-info.component'; diff --git a/src/app/side-info/edition-info/edition-info.component.ts b/src/app/side-info/edition-info/edition-info.component.ts index ce5ed7b57f..5330e3936c 100644 --- a/src/app/side-info/edition-info/edition-info.component.ts +++ b/src/app/side-info/edition-info/edition-info.component.ts @@ -1,8 +1,8 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; /** * The EditionInfo component. diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.html b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.html index 6019cdbebe..ff441e429d 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.html +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.html @@ -8,7 +8,7 @@ } @else { @if (errorMessage) { -
+

Die Anfrage "{{ errorMessage?.route }}" ist fehlgeschlagen.

Fehlermeldung: "{{ errorMessage?.statusText || errorMessage }}".

Möglicherweise gab es ein Problem mit der Internetverbindung oder dem verwendeten Suchbegriff.

diff --git a/src/app/views/data-view/data-outlets/search-panel/search-panel.component.html b/src/app/views/data-view/data-outlets/search-panel/search-panel.component.html index 566e3d8d8a..104374520c 100644 --- a/src/app/views/data-view/data-outlets/search-panel/search-panel.component.html +++ b/src/app/views/data-view/data-outlets/search-panel/search-panel.component.html @@ -34,7 +34,7 @@
} @else { @if (errorMessage) { -
+

Die Anfrage "{{ errorMessage?.route }}" ist fehlgeschlagen.

Fehlermeldung: "{{ errorMessage?.statusText || errorMessage }}".

Möglicherweise gab es ein Problem mit der Internetverbindung oder der Suchanfrage.

diff --git a/src/app/views/edition-view/data/edition-complexes.data.ts b/src/app/views/edition-view/data/edition-complexes.data.ts deleted file mode 100644 index 7090828719..0000000000 --- a/src/app/views/edition-view/data/edition-complexes.data.ts +++ /dev/null @@ -1,802 +0,0 @@ -import { AppConfig } from '@awg-app/app.config'; -import { EditionComplex } from '@awg-views/edition-view/models'; - -/** - * The EditionComplexes class. - * - * It is used in the context of the edition view - * to store information about the edition complexes. - */ -export class EDITION_COMPLEXES { - /** - * An EditionComplex object for M 22. - */ - static readonly M22: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier / Streichquartett', - catalogueType: 'MNR', - catalogueNumber: '22', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '21. März 2024', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 30. - */ - static readonly M30: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier', - catalogueType: 'MNR', - catalogueNumber: '30', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '19. Januar 2024', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 31. - */ - static readonly M31: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier', - catalogueType: 'MNR', - catalogueNumber: '31', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '19. Januar 2024', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 34. - */ - static readonly M34: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier', - catalogueType: 'MNR', - catalogueNumber: '34', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Mai 2023', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 35/42. - */ - static readonly M35_42: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier', - catalogueType: 'MNR', - catalogueNumber: '35/42', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '8. Februar 2024', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 37. - */ - static readonly M37: EditionComplex = new EditionComplex( - { - title: 'Studienkomposition für Klavier', - catalogueType: 'MNR', - catalogueNumber: '37', - }, - { - editors: [ - { - name: 'Michael Matter', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '19. Januar 2024', - }, - { - series: '2', - section: '2a', - } - ); - - /** - * An EditionComplex object for M 133. - */ - static readonly M133: EditionComplex = new EditionComplex( - { - title: '„Dies ist ein Lied“', - catalogueType: 'MNR', - catalogueNumber: '133', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 134. - */ - static readonly M134: EditionComplex = new EditionComplex( - { - title: '„Im Windesweben“', - catalogueType: 'MNR', - catalogueNumber: '134', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 135. - */ - static readonly M135: EditionComplex = new EditionComplex( - { - title: '„An Bachesranft“', - catalogueType: 'MNR', - catalogueNumber: '135', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 136. - */ - static readonly M136: EditionComplex = new EditionComplex( - { - title: '„Im Morgentaun“', - catalogueType: 'MNR', - catalogueNumber: '136', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 137. - */ - static readonly M137: EditionComplex = new EditionComplex( - { - title: '„Kahl reckt der Baum“', - catalogueType: 'MNR', - catalogueNumber: '137', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 138. - */ - static readonly M138: EditionComplex = new EditionComplex( - { - title: 'Eingang („Welt der Gestalten“)', - catalogueType: 'MNR', - catalogueNumber: '138', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 139. - */ - static readonly M139: EditionComplex = new EditionComplex( - { - title: '„Noch zwingt mich Treue“', - catalogueType: 'MNR', - catalogueNumber: '139', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 140. - */ - static readonly M140: EditionComplex = new EditionComplex( - { - title: '„Ja Heil und Dank dir“', - catalogueType: 'MNR', - catalogueNumber: '140', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 141. - */ - static readonly M141: EditionComplex = new EditionComplex( - { - title: '„So ich traurig bin“', - catalogueType: 'MNR', - catalogueNumber: '141', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 142. - */ - static readonly M142: EditionComplex = new EditionComplex( - { - title: '„Ihr tratet zu dem Herde“', - catalogueType: 'MNR', - catalogueNumber: '142', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 143. - */ - static readonly M143: EditionComplex = new EditionComplex( - { - title: '„Erwachen aus dem tiefsten Traumesschoße“', - catalogueType: 'MNR', - catalogueNumber: '143', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 144. - */ - static readonly M144: EditionComplex = new EditionComplex( - { - title: 'Kunfttag I („Dem bist du Kind“)', - catalogueType: 'MNR', - catalogueNumber: '144', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 145. - */ - static readonly M145: EditionComplex = new EditionComplex( - { - title: 'Trauer I („So wart bis ich dies dir noch künde“)', - catalogueType: 'MNR', - catalogueNumber: '145', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 146. - */ - static readonly M146: EditionComplex = new EditionComplex( - { - title: '„Das lockere Saatgefilde“', - catalogueType: 'MNR', - catalogueNumber: '146', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 212. - */ - static readonly M212: EditionComplex = new EditionComplex( - { - title: '„Der Tag ist vergangen“', - catalogueType: 'MNR', - catalogueNumber: '212', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '---', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 213. - */ - static readonly M213: EditionComplex = new EditionComplex( - { - title: '„Schien mir’s, als ich sah die Sonne“', - catalogueType: 'MNR', - catalogueNumber: '213', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '---', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 216. - */ - static readonly M216: EditionComplex = new EditionComplex( - { - title: 'Gleich und Gleich („Ein Blumenglöckchen“)', - catalogueType: 'MNR', - catalogueNumber: '216', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '---', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for M 217. - */ - static readonly M217: EditionComplex = new EditionComplex( - { - title: 'Die geheimnisvolle Flöte („An einem Abend“)', - catalogueType: 'MNR', - catalogueNumber: '217', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '---', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 3. - */ - static readonly OP3: EditionComplex = new EditionComplex( - { - title: 'Fünf Lieder aus Der siebente Ring von Stefan George', - catalogueType: 'OPUS', - catalogueNumber: '3', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 4. - */ - static readonly OP4: EditionComplex = new EditionComplex( - { - title: 'Fünf Lieder nach Gedichten von Stefan George', - catalogueType: 'OPUS', - catalogueNumber: '4', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Juni 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 12. - */ - static readonly OP12: EditionComplex = new EditionComplex( - { - title: 'Vier Lieder', - catalogueType: 'OPUS', - catalogueNumber: '12', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '9. April 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 19. - */ - static readonly OP19: EditionComplex = new EditionComplex( - { - title: 'Zwei Lieder für gemischten Chor und Ensemble', - catalogueType: 'OPUS', - catalogueNumber: '19', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Mai 2023', - }, - { - series: '1', - section: '3', - } - ); - - /** - * An EditionComplex object for Opus 22. - */ - static readonly OP22: EditionComplex = new EditionComplex( - { - title: 'Quartett für Geige, Klarinette, Tenorsaxophon und Klavier', - catalogueType: 'OPUS', - catalogueNumber: '22', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Mai 2023', - }, - { - series: '1', - section: '2', - } - ); - - /** - * An EditionComplex object for Opus 23. - */ - static readonly OP23: EditionComplex = new EditionComplex( - { - title: 'Drei Gesänge aus Viae Inviae von Hildegard Jone', - catalogueType: 'OPUS', - catalogueNumber: '23', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '17. April 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 24. - */ - static readonly OP24: EditionComplex = new EditionComplex( - { - title: 'Konzert für neun Instrumente', - catalogueType: 'OPUS', - catalogueNumber: '24', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Mai 2023', - }, - { - series: '1', - section: '1', - } - ); - - /** - * An EditionComplex object for Opus 25. - */ - static readonly OP25: EditionComplex = new EditionComplex( - { - title: 'Drei Lieder nach Gedichten von Hildegard Jone', - catalogueType: 'OPUS', - catalogueNumber: '25', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '17. April 2024', - }, - { - series: '1', - section: '5', - } - ); - - /** - * An EditionComplex object for Opus 27. - */ - static readonly OP27: EditionComplex = new EditionComplex( - { - title: 'Variationen für Klavier', - catalogueType: 'OPUS', - catalogueNumber: '27', - }, - { - editors: [ - { - name: 'Thomas Ahrend', - homepage: AppConfig.AWG_PROJECT_URL + 'index.php?id=3', - }, - ], - lastModified: '6. Mai 2023', - }, - { - series: '1', - section: '2', - } - ); -} diff --git a/src/app/views/edition-view/data/edition-glyphs.data.ts b/src/app/views/edition-view/data/edition-glyphs.data.ts index 4c8f241f8c..1ba65657c0 100644 --- a/src/app/views/edition-view/data/edition-glyphs.data.ts +++ b/src/app/views/edition-view/data/edition-glyphs.data.ts @@ -83,11 +83,29 @@ export const EDITION_GLYPHS_DATA = { hex: '\uD834\uDD91\uD834\uDD91\uD834\uDD91', }, + /** + * The glyph of a musical mezzo forte symbol. + * Cf. https://graphemica.com/%F0%9D%86%90 + */ + MEZZOFORTE: { + alt: '[mf]', + hex: '\uD834\uDD90\uD834\uDD91', + }, + + /** + * The glyph of a musical mezzo piano symbol. + * Cf. https://graphemica.com/%F0%9D%86%90 + */ + MEZZOPIANO: { + alt: '[mp]', + hex: '\uD834\uDD90\uD834\uDD8F', + }, + /** * The glyph of a musical pedal symbol. * Cf. https://graphemica.com/%F0%9D%86%AE */ - PEADL: { + PEDAL: { alt: '[ped]', hex: '\uD834\uDDAE', }, diff --git a/src/app/views/edition-view/data/edition-outline.data.ts b/src/app/views/edition-view/data/edition-outline.data.ts deleted file mode 100644 index 256032cbce..0000000000 --- a/src/app/views/edition-view/data/edition-outline.data.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { EDITION_COMPLEXES } from '@awg-views/edition-view/data'; -import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionOutlineSeries } from '@awg-views/edition-view/models'; - -/** - * Object constant: EDITION_OUTLINE_DATA. - * - * It provides metadata for the outline structure of the edition. - */ -export const EDITION_OUTLINE_DATA: EditionOutlineSeries[] = [ - { - series: EDITION_ROUTE_CONSTANTS.SERIES_1, - sections: [ - { - section: EDITION_ROUTE_CONSTANTS.SECTION_1, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_2, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_3, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_5, - complexes: { - opus: [ - { complex: EDITION_COMPLEXES.OP3, disabled: false }, - { complex: EDITION_COMPLEXES.OP4, disabled: false }, - { complex: EDITION_COMPLEXES.OP12, disabled: false }, - { complex: EDITION_COMPLEXES.OP23, disabled: false }, - { complex: EDITION_COMPLEXES.OP25, disabled: false }, - ], - mnr: [ - { complex: EDITION_COMPLEXES.M133, disabled: true }, - { complex: EDITION_COMPLEXES.M134, disabled: true }, - { complex: EDITION_COMPLEXES.M135, disabled: true }, - { complex: EDITION_COMPLEXES.M136, disabled: true }, - { complex: EDITION_COMPLEXES.M137, disabled: true }, - { complex: EDITION_COMPLEXES.M138, disabled: true }, - { complex: EDITION_COMPLEXES.M139, disabled: true }, - { complex: EDITION_COMPLEXES.M140, disabled: true }, - { complex: EDITION_COMPLEXES.M141, disabled: true }, - { complex: EDITION_COMPLEXES.M142, disabled: true }, - { complex: EDITION_COMPLEXES.M143, disabled: false }, - { complex: EDITION_COMPLEXES.M144, disabled: false }, - { complex: EDITION_COMPLEXES.M145, disabled: false }, - { complex: EDITION_COMPLEXES.M146, disabled: false }, - { complex: EDITION_COMPLEXES.M213, disabled: true }, - { complex: EDITION_COMPLEXES.M212, disabled: true }, - { complex: EDITION_COMPLEXES.M216, disabled: true }, - { complex: EDITION_COMPLEXES.M217, disabled: true }, - ], - }, - disabled: false, - }, - ], - }, - { - series: EDITION_ROUTE_CONSTANTS.SERIES_2, - sections: [ - { - section: EDITION_ROUTE_CONSTANTS.SECTION_1, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_2A, - complexes: { - opus: [], - mnr: [ - { complex: EDITION_COMPLEXES.M22, disabled: false }, - { complex: EDITION_COMPLEXES.M30, disabled: false }, - { complex: EDITION_COMPLEXES.M31, disabled: false }, - { complex: EDITION_COMPLEXES.M34, disabled: false }, - { complex: EDITION_COMPLEXES.M35_42, disabled: false }, - { complex: EDITION_COMPLEXES.M37, disabled: false }, - ], - }, - disabled: false, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_2B, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_3, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_5, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - ], - }, - { - series: EDITION_ROUTE_CONSTANTS.SERIES_3, - sections: [ - { - section: EDITION_ROUTE_CONSTANTS.SECTION_1, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_2, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_3, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - { - section: EDITION_ROUTE_CONSTANTS.SERIES_3_SECTION_5, - complexes: { opus: [], mnr: [] }, - disabled: true, - }, - ], - }, -]; diff --git a/src/app/views/edition-view/data/index.ts b/src/app/views/edition-view/data/index.ts index e7bcf8d8b8..850e7c141b 100644 --- a/src/app/views/edition-view/data/index.ts +++ b/src/app/views/edition-view/data/index.ts @@ -8,17 +8,8 @@ */ import { EDITION_ASSETS_DATA } from './edition-assets.data'; -import { EDITION_COMPLEXES } from './edition-complexes.data'; import { EDITION_FIRM_SIGNS_DATA } from './edition-firm-signs.data'; import { EDITION_GLYPHS_DATA } from './edition-glyphs.data'; import { EDITION_GRAPH_IMAGES_DATA } from './edition-graph-images.data'; -import { EDITION_OUTLINE_DATA } from './edition-outline.data'; -export { - EDITION_ASSETS_DATA, - EDITION_FIRM_SIGNS_DATA, - EDITION_GLYPHS_DATA, - EDITION_GRAPH_IMAGES_DATA, - EDITION_OUTLINE_DATA, - EDITION_COMPLEXES, -}; +export { EDITION_ASSETS_DATA, EDITION_FIRM_SIGNS_DATA, EDITION_GLYPHS_DATA, EDITION_GRAPH_IMAGES_DATA }; diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts b/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts index eb204c3667..340b9bcd51 100644 --- a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts +++ b/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts @@ -10,8 +10,8 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; -import { EditionOutlineComplex } from '@awg-views/edition-view/models'; +import { EditionOutlineComplexItem } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { EditionComplexCardComponent } from './edition-complex-card.component'; @@ -23,7 +23,7 @@ describe('EditionComplexCardComponent (DONE)', () => { let linkDes: DebugElement[]; let routerLinks; - let expectedComplexes: EditionOutlineComplex[]; + let expectedComplexes: EditionOutlineComplexItem[]; beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); @@ -86,139 +86,139 @@ describe('EditionComplexCardComponent (DONE)', () => { describe('VIEW', () => { it('... should have as many inner div.col as editionComplexes in outer div.row', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - getAndExpectDebugElementByCss(rowDe[0], 'div.col', expectedComplexes.length, expectedComplexes.length); + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + getAndExpectDebugElementByCss(rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length); }); it('... should have as many inner div.card.awg-edition-card as editionComplexes', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach(col => { - getAndExpectDebugElementByCss(col, 'div.card.awg-edition-card', 1, 1); + colDes.forEach(colDe => { + getAndExpectDebugElementByCss(colDe, 'div.card.awg-edition-card', 1, 1); }); }); it('... should have as many inner div.card-body as editionComplexes', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach(col => { - const cardDe = getAndExpectDebugElementByCss(col, 'div.card.awg-edition-card', 1, 1); - getAndExpectDebugElementByCss(cardDe[0], 'div.card-body', 1, 1); + colDes.forEach(colDe => { + const cardDes = getAndExpectDebugElementByCss(colDe, 'div.card.awg-edition-card', 1, 1); + getAndExpectDebugElementByCss(cardDes[0], 'div.card-body', 1, 1); }); }); it('... should have as many inner h5.card-title as editionComplexes', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach(col => { - const cardDe = getAndExpectDebugElementByCss(col, 'div.card.awg-edition-card', 1, 1); - const cardBodyDe = getAndExpectDebugElementByCss(cardDe[0], 'div.card-body', 1, 1); - getAndExpectDebugElementByCss(cardBodyDe[0], 'h5.card-title', 1, 1); + colDes.forEach(colDe => { + const cardDes = getAndExpectDebugElementByCss(colDe, 'div.card.awg-edition-card', 1, 1); + const cardBodyDes = getAndExpectDebugElementByCss(cardDes[0], 'div.card-body', 1, 1); + getAndExpectDebugElementByCss(cardBodyDes[0], 'h5.card-title', 1, 1); }); }); it('... should text-mute card titles of disabled editionComplexes', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach((col, index) => { - const cardTitleDe = getAndExpectDebugElementByCss(col, 'h5.card-title', 1, 1); - const cardTitleEl = cardTitleDe[0].nativeElement; + colDes.forEach((colDe, index) => { + const cardTitleDes = getAndExpectDebugElementByCss(colDe, 'h5.card-title', 1, 1); + const cardTitleEl = cardTitleDes[0].nativeElement; expectToBe(cardTitleEl.classList.contains('text-muted'), expectedComplexes[index].disabled); }); }); it('... should display complex as card title in span.awg-edition-info-header-title', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach((col, index) => { - const cardTitleDe = getAndExpectDebugElementByCss(col, 'h5.card-title', 1, 1); - const headerDe = getAndExpectDebugElementByCss( - cardTitleDe[0], + colDes.forEach((colDe, index) => { + const cardTitleDes = getAndExpectDebugElementByCss(colDe, 'h5.card-title', 1, 1); + const headerDes = getAndExpectDebugElementByCss( + cardTitleDes[0], 'span.awg-edition-info-header-title', 1, 1 ); - const headerEl = headerDe[0].nativeElement; + const headerEl = headerDes[0].nativeElement; expectToBe(headerEl.innerHTML, expectedComplexes[index].complex.complexId.full); }); }); it('... should have as many inner div.card-footer as editionComplexes', () => { - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - const colDe = getAndExpectDebugElementByCss( - rowDe[0], + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const colDes = getAndExpectDebugElementByCss( + rowDes[0], 'div.col', expectedComplexes.length, expectedComplexes.length ); - colDe.forEach(col => { - const cardDe = getAndExpectDebugElementByCss(col, 'div.card.awg-edition-card', 1, 1); - getAndExpectDebugElementByCss(cardDe[0], 'div.card-footer', 1, 1); + colDes.forEach(colDe => { + const cardDes = getAndExpectDebugElementByCss(colDe, 'div.card.awg-edition-card', 1, 1); + getAndExpectDebugElementByCss(cardDes[0], 'div.card-footer', 1, 1); }); }); it('... should have edition responsibility statement in div.card-footer if complex is not disabled', () => { - const cardFooterDe = getAndExpectDebugElementByCss( + const cardFooterDes = getAndExpectDebugElementByCss( compDe, 'div.card-footer', expectedComplexes.length, expectedComplexes.length ); - cardFooterDe.forEach((cardFooter, index) => { + cardFooterDes.forEach((cardFooterDe, index) => { if (!expectedComplexes[index].disabled) { - getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 1, 1); + getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 1, 1); } else { - getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 0, 0); + getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 0, 0); } }); }); it('... should display as many editors in span.editor as there are editors', () => { - const cardFooterDe = getAndExpectDebugElementByCss( + const cardFooterDes = getAndExpectDebugElementByCss( compDe, 'div.card-footer', expectedComplexes.length, expectedComplexes.length ); - cardFooterDe.forEach((cardFooter, index) => { + cardFooterDes.forEach((cardFooterDe, index) => { if (!expectedComplexes[index].disabled) { - const pDe = getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 1, 1); + const pDes = getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 1, 1); const editors = expectedComplexes[index].complex.respStatement.editors; - const editorDe = getAndExpectDebugElementByCss( - pDe[0], + const editorDes = getAndExpectDebugElementByCss( + pDes[0], 'span.editor', editors.length, editors.length ); - editorDe.forEach((editor, editorIndex) => { + editorDes.forEach((editor, editorIndex) => { const editorEl = editor.nativeElement; expectToBe(editorEl.textContent.trim(), editors[editorIndex].name); @@ -228,24 +228,24 @@ describe('EditionComplexCardComponent (DONE)', () => { }); it('... should link to homepage of editors in span.editor', () => { - const cardFooterDe = getAndExpectDebugElementByCss( + const cardFooterDes = getAndExpectDebugElementByCss( compDe, 'div.card-footer', expectedComplexes.length, expectedComplexes.length ); - cardFooterDe.forEach((cardFooter, index) => { + cardFooterDes.forEach((cardFooterDe, index) => { if (!expectedComplexes[index].disabled) { - const pDe = getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 1, 1); + const pDes = getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 1, 1); const editors = expectedComplexes[index].complex.respStatement.editors; - const editorDe = getAndExpectDebugElementByCss( - pDe[0], + const editorDes = getAndExpectDebugElementByCss( + pDes[0], 'span.editor', editors.length, editors.length ); - editorDe.forEach((editor, editorIndex) => { + editorDes.forEach((editor, editorIndex) => { const anchorDe = getAndExpectDebugElementByCss(editor, 'a', 1, 1); const anchorEl = anchorDe[0].nativeElement; @@ -256,70 +256,70 @@ describe('EditionComplexCardComponent (DONE)', () => { }); it('... should display version date in span.version if complex is not disabled', () => { - const cardFooterDe = getAndExpectDebugElementByCss( + const cardFooterDes = getAndExpectDebugElementByCss( compDe, 'div.card-footer', expectedComplexes.length, expectedComplexes.length ); - cardFooterDe.forEach((cardFooter, index) => { + cardFooterDes.forEach((cardFooterDe, index) => { if (!expectedComplexes[index].disabled) { - const pDe = getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 1, 1); - const versionDe = getAndExpectDebugElementByCss(pDe[0], 'span.version', 1, 1); - const versionEl = versionDe[0].nativeElement; + const pDes = getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 1, 1); + const versionDes = getAndExpectDebugElementByCss(pDes[0], 'span.version', 1, 1); + const versionEl = versionDes[0].nativeElement; expectToBe( versionEl.textContent.trim(), expectedComplexes[index].complex.respStatement.lastModified ); } else { - getAndExpectDebugElementByCss(cardFooter, 'p.awg-edition-responsibility', 0, 0); - getAndExpectDebugElementByCss(cardFooter, 'span.version', 0, 0); + getAndExpectDebugElementByCss(cardFooterDe, 'p.awg-edition-responsibility', 0, 0); + getAndExpectDebugElementByCss(cardFooterDe, 'span.version', 0, 0); } }); }); it('... should have text-end paragraph in div.card-footer for each complex', () => { - const cardFooterDe = getAndExpectDebugElementByCss( + const cardFooterDes = getAndExpectDebugElementByCss( compDe, 'div.card-footer', expectedComplexes.length, expectedComplexes.length ); - cardFooterDe.forEach(cardFooter => { - getAndExpectDebugElementByCss(cardFooter, 'p.text-end', 1, 1); + cardFooterDes.forEach(cardFooterDe => { + getAndExpectDebugElementByCss(cardFooterDe, 'p.text-end', 1, 1); }); }); it('... should have a link to complex in text-end paragraph for each complex', () => { - const pDe = getAndExpectDebugElementByCss( + const pDes = getAndExpectDebugElementByCss( compDe, 'p.text-end', expectedComplexes.length, expectedComplexes.length ); - pDe.forEach(p => { - const linkDe = getAndExpectDebugElementByCss(p, 'a', 1, 1); - const linkEl = linkDe[0].nativeElement; + pDes.forEach(pDe => { + const aDes = getAndExpectDebugElementByCss(pDe, 'a', 1, 1); + const aEl = aDes[0].nativeElement; const expectedLinkText = 'Mehr ...'; - expectToBe(linkEl.textContent.trim(), expectedLinkText); + expectToBe(aEl.textContent.trim(), expectedLinkText); }); }); it('... should disable links only for disabled editionComplexes', () => { - const pDe = getAndExpectDebugElementByCss( + const pDes = getAndExpectDebugElementByCss( compDe, 'p.text-end', expectedComplexes.length, expectedComplexes.length ); - pDe.forEach((p, index) => { - const linkDe = getAndExpectDebugElementByCss(p, 'a', 1, 1); - const linkEl = linkDe[0].nativeElement; + pDes.forEach((pDe, index) => { + const aDes = getAndExpectDebugElementByCss(pDe, 'a', 1, 1); + const aEl = aDes[0].nativeElement; - expectToBe(linkEl.classList.contains('disabled'), expectedComplexes[index].disabled); + expectToBe(aEl.classList.contains('disabled'), expectedComplexes[index].disabled); }); }); }); diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts b/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts index 9d15f4b922..7b56a002d1 100644 --- a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts +++ b/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { EditionOutlineComplex } from '@awg-views/edition-view/models'; +import { EditionOutlineComplexItem } from '@awg-views/edition-view/models'; /** * The EditionComplexCard component. @@ -16,10 +16,10 @@ import { EditionOutlineComplex } from '@awg-views/edition-view/models'; }) export class EditionComplexCardComponent { /** - * Input variable: complex. + * Input variable: complexes. * - * It keeps the complex of the card view. + * It keeps the complexes of the card view. */ @Input() - complexes: EditionOutlineComplex[]; + complexes: EditionOutlineComplexItem[]; } diff --git a/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.html b/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.html index b7313b06d1..e5ec34a2f8 100644 --- a/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.html +++ b/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.html @@ -1,5 +1,3 @@ -
-

{{ jumbotronTitle }}

+
+

diff --git a/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.spec.ts b/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.spec.ts index 2734f64f77..8a4e462f8a 100644 --- a/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.spec.ts +++ b/src/app/views/edition-view/edition-jumbotron/edition-jumbotron.component.spec.ts @@ -39,8 +39,8 @@ describe('EditionJumbotronComponent', () => { }); describe('VIEW', () => { - it('... should have one div.awg-jumbotron-image', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron-image', 1, 1); + it('... should have one div.awg-jumbotron', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron', 1, 1); }); }); }); @@ -64,14 +64,14 @@ describe('EditionJumbotronComponent', () => { }); describe('VIEW', () => { - it('... should have an h1 in jumbotron', () => { - const jumbotronDes = getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron-image', 1, 1); + it('... should have a heading (h3) in jumbotron', () => { + const jumbotronDes = getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron', 1, 1); - getAndExpectDebugElementByCss(jumbotronDes[0], 'h1', 1, 1); + getAndExpectDebugElementByCss(jumbotronDes[0], 'h3', 1, 1); }); - it('... should pass down `jumbotronId` and `jumbotronTitle`to jumbotron h1', () => { - const headingDes = getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron-image > h1', 1, 1); + it('... should pass down `jumbotronId` and `jumbotronTitle`to jumbotron heading', () => { + const headingDes = getAndExpectDebugElementByCss(compDe, 'div.awg-jumbotron > h3', 1, 1); const headingEl = headingDes[0].nativeElement; expectToBe(headingEl.id, expectedId); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts index 1e12cd158b..57f742f373 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts @@ -8,10 +8,9 @@ import Spy = jasmine.Spy; import { expectSpyCall, expectToEqual } from '@testing/expect-helper'; import { ActivatedRouteStub } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionComplexesList } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; import { EditionComplexComponent } from './edition-complex.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts index 5abbae0db4..c539be565b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts @@ -3,10 +3,10 @@ import { ActivatedRoute } from '@angular/router'; import { delay, EMPTY, Observable } from 'rxjs'; -import { EditionComplexesService, UtilityService } from '@awg-core/services'; +import { UtilityService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; /** * The EditionComplex component. diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts index f2cc34f57c..a24effeac7 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts @@ -10,11 +10,10 @@ import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectSpyCall, expectToEqual, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; import { RouterOutletStubComponent } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { RouterLinkButton } from '@awg-shared/router-link-button-group/router-link-button.model'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; import { EditionDetailNavComponent } from './edition-detail-nav.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.html index 5e5196d7db..6f275d199b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.html @@ -97,23 +97,12 @@

Statischer Graph

}
} @else { + @if (errorObject) { -
-
-
{{ errorObject | json }}
-
-
+ + } @else { + + } } - - - - @if (errorObject) { -
-
-
{{ errorObject | json }}
-
-
- } -
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts index 88805c487d..893a2e8704 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts @@ -2,7 +2,14 @@ import { DOCUMENT, JsonPipe } from '@angular/common'; import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; -import { EmptyError, lastValueFrom, Observable, of as observableOf, throwError as observableThrowError } from 'rxjs'; +import { + EMPTY, + EmptyError, + lastValueFrom, + Observable, + of as observableOf, + throwError as observableThrowError, +} from 'rxjs'; import Spy = jasmine.Spy; import { FontAwesomeTestingModule } from '@fortawesome/angular-fontawesome/testing'; @@ -20,16 +27,21 @@ import { } from '@testing/expect-helper'; import { mockEditionData } from '@testing/mock-data'; -import { EditionComplexesService } from '@awg-core/services'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_GRAPH_IMAGES_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, Graph, GraphList, GraphRDFData, GraphSparqlQuery } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; import { EditionGraphComponent } from './edition-graph.component'; // Mock components +@Component({ selector: 'awg-error-alert', template: '' }) +class ErrorAlertStubComponent { + @Input() + errorObject: any; +} + @Component({ selector: 'awg-graph-visualizer', template: '' }) class GraphVisualizerStubComponent { @Input() @@ -47,6 +59,9 @@ class ModalStubComponent { } } +@Component({ selector: 'awg-twelve-tone-spinner', template: '' }) +class TwelveToneSpinnerStubComponent {} + describe('EditionGraphComponent (DONE)', () => { let component: EditionGraphComponent; let fixture: ComponentFixture; @@ -64,8 +79,6 @@ describe('EditionGraphComponent (DONE)', () => { let editionDataServiceGetEditionGraphDataSpy: Spy; let editionServiceGetSelectedEditionComplexSpy: Spy; - const jsonPipe = new JsonPipe(); - let expectedEditionComplex: EditionComplex; let expectedEditionGraphDataEmpty: GraphList; let expectedEditionGraphDataOp25: GraphList; @@ -73,6 +86,12 @@ describe('EditionGraphComponent (DONE)', () => { let expectedIsFullscreen: boolean; + const jsonPipe = new JsonPipe(); + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + beforeEach(waitForAsync(() => { // Mocked editionDataService mockEditionDataService = { @@ -88,9 +107,11 @@ describe('EditionGraphComponent (DONE)', () => { imports: [FontAwesomeTestingModule], declarations: [ EditionGraphComponent, + ErrorAlertStubComponent, GraphVisualizerStubComponent, ModalStubComponent, CompileHtmlComponent, + TwelveToneSpinnerStubComponent, ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, @@ -196,7 +217,7 @@ describe('EditionGraphComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should have a `div`', () => { + it('... should contain a `div`', () => { getAndExpectDebugElementByCss(compDe, 'div', 1, 1); }); @@ -206,12 +227,20 @@ describe('EditionGraphComponent (DONE)', () => { getAndExpectDebugElementByDirective(divDes[0], ModalStubComponent, 1, 1); }); - it('... should not have a nested div.awg-graph-view', () => { + it('... should contain no div.awg-graph-view yet', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 0, 0); }); - it('... should not have a nested div.errorMessage', () => { - getAndExpectDebugElementByCss(compDe, 'div.errorMessage', 0, 0); + it('... should not contain an error alert component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 0, 0); + }); + + it('... should not contain a loading spinner component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], TwelveToneSpinnerStubComponent, 0, 0); }); }); }); @@ -231,11 +260,11 @@ describe('EditionGraphComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should have one div.awg-graph-view', () => { + it('... should contain one div.awg-graph-view', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 1, 1); }); - it('... should not contain a div.awg-graph-view if graph data is not provided', waitForAsync(() => { + it('... should not contain a div in div.awg-graph-view if graph data is not provided', waitForAsync(() => { const noGraphData = new GraphList(); noGraphData.graph = undefined; @@ -247,7 +276,7 @@ describe('EditionGraphComponent (DONE)', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view > div', 0, 0); })); - it('... should contain a div.awg-graph-view if graph data is provided', () => { + it('... should contain a div in div.awg-graph-view if graph data is provided', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view > div', 1, 1); }); @@ -556,20 +585,56 @@ describe('EditionGraphComponent (DONE)', () => { detectChangesOnPush(fixture); })); - it('... should not have graph view, but one div.errorMessage with centered danger alert', waitForAsync(() => { + it('... should not contain graph view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 0, 0); - const errorDes = getAndExpectDebugElementByCss(compDe, 'div.errorMessage', 1, 1); - getAndExpectDebugElementByCss(errorDes[0], 'div.text-center > div.alert-danger', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 1, 1); })); - it('... should display errorMessage', waitForAsync(() => { - const alertDes = getAndExpectDebugElementByCss(compDe, 'div.alert-danger', 1, 1); - const alertEl = alertDes[0].nativeElement; + it('... should pass down error object to ErrorAlertComponent', waitForAsync(() => { + const errorAlertDes = getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 1, 1); + const errorAlertCmp = errorAlertDes[0].injector.get( + ErrorAlertStubComponent + ) as ErrorAlertStubComponent; - expectToContain(alertEl.textContent, jsonPipe.transform(expectedError)); + expectToEqual(errorAlertCmp.errorObject, expectedError); })); }); + + describe('on loading', () => { + describe('... should contain only TwelveToneSpinnerComponent (stubbed) if ... ', () => { + it('... editionGraphData$ is EMPTY', () => { + // Mock empty observable + component.editionGraphData$ = EMPTY; + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionGraphData$ is undefined', () => { + // Mock undefined response + component.editionGraphData$ = observableOf(undefined); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionGraphData$ is null', () => { + // Mock null response + component.editionGraphData$ = observableOf(null); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-graph-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + }); + }); }); describe('#getEditionGraphData()', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.html index 0c4d0d76f8..e2169e3613 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/graph-visualizer.component.html @@ -50,10 +50,6 @@ [isFullscreen]="isFullscreen"> } } - - - -
} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 189ba2e388..2049632f4a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -35,13 +35,10 @@
Anmerkungen
} @else { @if (errorObject) { -
-
-
- {{ errorObject }} -
-
-
+ + } @else { + + } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index 121628ed30..4c76eafe33 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -1,10 +1,17 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ -import { DOCUMENT } from '@angular/common'; -import { Component, DebugElement } from '@angular/core'; +import { DOCUMENT, JsonPipe } from '@angular/common'; +import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; import { Router, RouterModule } from '@angular/router'; -import { EmptyError, lastValueFrom, Observable, of as observableOf, throwError as observableThrowError } from 'rxjs'; +import { + EMPTY, + EmptyError, + lastValueFrom, + Observable, + of as observableOf, + throwError as observableThrowError, +} from 'rxjs'; import Spy = jasmine.Spy; import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; @@ -22,20 +29,28 @@ import { import { mockEditionData } from '@testing/mock-data'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionSvgSheet, IntroList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; import { EditionIntroComponent } from './edition-intro.component'; // Mock components +@Component({ selector: 'awg-error-alert', template: '' }) +class ErrorAlertStubComponent { + @Input() + errorObject: any; +} + @Component({ selector: 'awg-modal', template: '' }) class ModalStubComponent { open(modalContentSnippetKey: string): void {} } +@Component({ selector: 'awg-twelve-tone-spinner', template: '' }) +class TwelveToneSpinnerStubComponent {} + describe('IntroComponent (DONE)', () => { let component: EditionIntroComponent; let fixture: ComponentFixture; @@ -73,6 +88,12 @@ describe('IntroComponent (DONE)', () => { let componentOpenModalSpy: Spy; let selectSvgSheetSpy: Spy; + const jsonPipe = new JsonPipe(); + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + beforeEach(waitForAsync(() => { // Mock router with spy object mockRouter = jasmine.createSpyObj('Router', ['navigate']); @@ -88,7 +109,14 @@ describe('IntroComponent (DONE)', () => { TestBed.configureTestingModule({ imports: [NgbModalModule, RouterModule], - declarations: [CompileHtmlComponent, EditionIntroComponent, ModalStubComponent, RouterLinkStubDirective], + declarations: [ + CompileHtmlComponent, + EditionIntroComponent, + ErrorAlertStubComponent, + ModalStubComponent, + RouterLinkStubDirective, + TwelveToneSpinnerStubComponent, + ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, { provide: EditionService, useValue: mockEditionService }, @@ -160,18 +188,28 @@ describe('IntroComponent (DONE)', () => { }); describe('VIEW', () => { + it('... should contain a `div`', () => { + getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + }); + it('... should contain one modal component (stubbed)', () => { getAndExpectDebugElementByDirective(compDe, ModalStubComponent, 1, 1); }); it('... should contain no div.awg-intro-view yet', () => { - // Div debug element getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); }); - it('... should contain no div.errorMessage yet', () => { - // Div debug element - getAndExpectDebugElementByCss(compDe, 'div.errorMessage', 0, 0); + it('... should not contain an error alert component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 0, 0); + }); + + it('... should not contain a loading spinner component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], TwelveToneSpinnerStubComponent, 0, 0); }); }); }); @@ -319,6 +357,68 @@ describe('IntroComponent (DONE)', () => { expectToBe(pEl.textContent.trim(), introPlaceholder); })); + + describe('on error', () => { + const expectedError = { status: 404, statusText: 'got Error' }; + + beforeEach(waitForAsync(() => { + // Spy on editionDataService to return an error + editionDataServiceGetEditionIntroDataSpy.and.returnValue(observableThrowError(() => expectedError)); + + component.getEditionIntroData(); + detectChangesOnPush(fixture); + })); + + it('... should not contain intro view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { + getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 1, 1); + })); + + it('... should pass down error object to ErrorAlertComponent', waitForAsync(() => { + const errorAlertDes = getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 1, 1); + const errorAlertCmp = errorAlertDes[0].injector.get( + ErrorAlertStubComponent + ) as ErrorAlertStubComponent; + + expectToEqual(errorAlertCmp.errorObject, expectedError); + })); + }); + + describe('on loading', () => { + describe('... should contain only TwelveToneSpinnerComponent (stubbed) if ... ', () => { + it('... editionIntroData$ is EMPTY', () => { + // Mock empty observable + component.editionIntroData$ = EMPTY; + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionIntroData$ is undefined', () => { + // Mock undefined response + component.editionIntroData$ = observableOf(undefined); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionIntroData$ is null', () => { + // Mock null response + component.editionIntroData$ = observableOf(null); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + }); + }); }); describe('#getEditionIntroData()', () => { @@ -347,7 +447,7 @@ describe('IntroComponent (DONE)', () => { // Init new switchMap component.getEditionIntroData(); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejected(); expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejectedWithError(EmptyError); @@ -394,7 +494,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedIntroIds.complexId, @@ -414,7 +514,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedIntroIds.complexId, @@ -433,7 +533,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedIntroIds.complexId, @@ -452,7 +552,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedIntroIds.complexId, @@ -472,7 +572,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -490,7 +590,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -509,7 +609,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToIntroFragment(expectedIntroIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedIntroIds.complexId, @@ -558,7 +658,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -578,7 +678,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -597,7 +697,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -616,7 +716,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -636,7 +736,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -654,7 +754,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -673,7 +773,7 @@ describe('IntroComponent (DONE)', () => { }; component.navigateToReportFragment(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -711,14 +811,14 @@ describe('IntroComponent (DONE)', () => { it('... should open modal with given id', () => { component.openModal(expectedModalSnippet); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(componentOpenModalSpy, 1, expectedModalSnippet); expectSpyCall(modalOpenSpy, 1, expectedModalSnippet); const otherSnippet = 'otherSnippet'; component.openModal(otherSnippet); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(componentOpenModalSpy, 2, otherSnippet); expectSpyCall(modalOpenSpy, 2, otherSnippet); @@ -783,7 +883,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -803,7 +903,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -822,7 +922,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -841,7 +941,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -861,7 +961,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -879,7 +979,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -898,7 +998,7 @@ describe('IntroComponent (DONE)', () => { }; component.selectSvgSheet(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -921,7 +1021,7 @@ describe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(undefined, expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -940,7 +1040,7 @@ describe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(null, expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [null, expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -955,7 +1055,7 @@ describe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId('', expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, ['', expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -974,7 +1074,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedEditionComplex.complexId.route.replace('/', ''), @@ -999,7 +1099,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1025,7 +1125,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1048,7 +1148,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1073,7 +1173,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1096,7 +1196,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1121,7 +1221,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1144,7 +1244,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1172,7 +1272,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1196,7 +1296,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1222,7 +1322,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1246,7 +1346,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1272,7 +1372,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1296,7 +1396,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1323,7 +1423,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1346,7 +1446,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1371,7 +1471,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1394,7 +1494,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1419,7 +1519,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1442,7 +1542,7 @@ describe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.html index 7161bd1cfd..6592bfec5e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.html @@ -3,6 +3,7 @@ + @if (editionReportData$ | async; as editionReportData) {
@@ -86,5 +87,13 @@
+ } @else { + + @if (errorObject) { + + } @else { + + + } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts index 2c2c9b9a17..f6617758d0 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts @@ -1,14 +1,23 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import { JsonPipe } from '@angular/common'; import { Component, DebugElement, EventEmitter, Input, NgModule, Output } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { Router } from '@angular/router'; -import { EmptyError, lastValueFrom, Observable, of as observableOf, throwError as observableThrowError } from 'rxjs'; +import { + EMPTY, + EmptyError, + lastValueFrom, + Observable, + of as observableOf, + throwError as observableThrowError, +} from 'rxjs'; import Spy = jasmine.Spy; import { NgbAccordionModule, NgbConfig, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { expectSpyCall, expectToBe, @@ -19,7 +28,6 @@ import { import { mockEditionData } from '@testing/mock-data'; import { RouterOutletStubComponent } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { @@ -30,11 +38,17 @@ import { SourceList, TextcriticsList, } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; import { EditionReportComponent } from './edition-report.component'; // Mock components +@Component({ selector: 'awg-error-alert', template: '' }) +class ErrorAlertStubComponent { + @Input() + errorObject: any; +} + @Component({ selector: 'awg-modal', template: '' }) class ModalStubComponent { open(_modalContentSnippetKey: string): void {} @@ -86,6 +100,9 @@ export class TextcriticsListStubComponent { selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } +@Component({ selector: 'awg-twelve-tone-spinner', template: '' }) +class TwelveToneSpinnerStubComponent {} + describe('EditionReportComponent', () => { let component: EditionReportComponent; let fixture: ComponentFixture; @@ -124,6 +141,8 @@ describe('EditionReportComponent', () => { let onModalOpenSpy: Spy; let selectSvgSheetSpy: Spy; + const jsonPipe = new JsonPipe(); + // Global NgbConfigModule @NgModule({ imports: [NgbAccordionModule], exports: [NgbAccordionModule] }) class NgbAccordionWithConfigModule { @@ -133,6 +152,10 @@ describe('EditionReportComponent', () => { } } + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + beforeEach(waitForAsync(() => { // Mock router with spy object mockRouter = jasmine.createSpyObj('Router', ['navigate']); @@ -153,12 +176,14 @@ describe('EditionReportComponent', () => { declarations: [ CompileHtmlComponent, EditionReportComponent, + ErrorAlertStubComponent, ModalStubComponent, SourceListStubComponent, SourceDescriptionStubComponent, SourceEvaluationStubComponent, TextcriticsListStubComponent, RouterOutletStubComponent, + TwelveToneSpinnerStubComponent, ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, @@ -238,6 +263,16 @@ describe('EditionReportComponent', () => { }); describe('VIEW', () => { + it('... should contain a `div`', () => { + getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + }); + + it('... should contain one modal component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ModalStubComponent, 1, 1); + }); + it('... should contain no div.accordion yet', () => { // Div.accordion debug element getAndExpectDebugElementByCss(compDe, 'div.accordion', 0, 0); @@ -258,6 +293,18 @@ describe('EditionReportComponent', () => { it('... should not contain textcritics list component (stubbed) yet', () => { getAndExpectDebugElementByDirective(compDe, TextcriticsListStubComponent, 0, 0); }); + + it('... should not contain an error alert component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 0, 0); + }); + + it('... should not contain a loading spinner component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], TwelveToneSpinnerStubComponent, 0, 0); + }); }); }); @@ -290,7 +337,6 @@ describe('EditionReportComponent', () => { describe('VIEW', () => { it('... should contain one div.accordion', () => { - // NgbAccordion debug element getAndExpectDebugElementByCss(compDe, 'div.accordion', 1, 1); }); @@ -348,6 +394,70 @@ describe('EditionReportComponent', () => { expectToEqual(textcriticsCmp.textcriticsData, expectedTextcriticsData); }); + + describe('on error', () => { + const expectedError = { status: 404, statusText: 'got Error' }; + + beforeEach(waitForAsync(() => { + // Spy on editionDataService to return an error + editionDataServiceGetEditionReportDataSpy.and.returnValue( + observableThrowError(() => expectedError) + ); + + component.getEditionReportData(); + detectChangesOnPush(fixture); + })); + + it('... should not contain report view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { + getAndExpectDebugElementByCss(compDe, 'div.accordion', 0, 0); + + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 1, 1); + })); + + it('... should pass down error object to ErrorAlertComponent', waitForAsync(() => { + const errorAlertDes = getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 1, 1); + const errorAlertCmp = errorAlertDes[0].injector.get( + ErrorAlertStubComponent + ) as ErrorAlertStubComponent; + + expectToEqual(errorAlertCmp.errorObject, expectedError); + })); + }); + + describe('on loading', () => { + describe('... should contain only TwelveToneSpinnerComponent (stubbed) if ... ', () => { + it('... editionReportData$ is EMPTY', () => { + // Mock empty observable + component.editionReportData$ = EMPTY; + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-report-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionReportData$ is undefined', () => { + // Mock undefined response + component.editionReportData$ = observableOf(undefined); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-report-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + + it('... editionReportData$ is null', () => { + // Mock null response + component.editionReportData$ = observableOf(null); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-report-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + }); + }); }); describe('#getEditionReportData()', () => { @@ -376,7 +486,7 @@ describe('EditionReportComponent', () => { // Init new switchMap component.getEditionReportData(); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectAsync(lastValueFrom(component.editionReportData$)).toBeRejected(); expectAsync(lastValueFrom(component.editionReportData$)).toBeRejectedWithError(EmptyError); @@ -530,14 +640,14 @@ describe('EditionReportComponent', () => { it('... should open modal with given id', () => { component.onModalOpen(expectedModalSnippet); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(onModalOpenSpy, 1, expectedModalSnippet); expectSpyCall(modalOpenSpy, 1, expectedModalSnippet); const otherSnippet = 'otherSnippet'; component.onModalOpen(otherSnippet); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(onModalOpenSpy, 2, otherSnippet); expectSpyCall(modalOpenSpy, 2, otherSnippet); @@ -678,7 +788,7 @@ describe('EditionReportComponent', () => { }; component.onReportFragmentNavigate(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -698,7 +808,7 @@ describe('EditionReportComponent', () => { }; component.onReportFragmentNavigate(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -717,7 +827,7 @@ describe('EditionReportComponent', () => { }; component.onReportFragmentNavigate(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -736,7 +846,7 @@ describe('EditionReportComponent', () => { }; component.onReportFragmentNavigate(expectedReportIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -972,7 +1082,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -992,7 +1102,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1011,7 +1121,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1030,7 +1140,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1050,7 +1160,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1068,7 +1178,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1087,7 +1197,7 @@ describe('EditionReportComponent', () => { }; component.onSvgSheetSelect(expectedSheetIds); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1110,7 +1220,7 @@ describe('EditionReportComponent', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(undefined, expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1129,7 +1239,7 @@ describe('EditionReportComponent', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(null, expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [null, expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -1144,7 +1254,7 @@ describe('EditionReportComponent', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId('', expectedTargetRoute, expectedNavigationExtras); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, ['', expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -1163,7 +1273,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedEditionComplex.complexId.route.replace('/', ''), @@ -1188,7 +1298,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1214,7 +1324,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1237,7 +1347,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1262,7 +1372,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1285,7 +1395,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1313,7 +1423,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1337,7 +1447,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1363,7 +1473,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1387,7 +1497,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1414,7 +1524,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1437,7 +1547,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1462,7 +1572,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1485,7 +1595,7 @@ describe('EditionReportComponent', () => { expectedTargetRoute, expectedNavigationExtras ); - fixture.detectChanges(); + detectChangesOnPush(fixture); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts index 62440408fd..0c6fc00205 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-evaluation/source-evaluation.component.spec.ts @@ -16,10 +16,10 @@ import { import { mockEditionData } from '@testing/mock-data'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, SourceEvaluationList } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { SourceEvaluationComponent } from './source-evaluation.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.spec.ts index 04ff417a7f..c51296e717 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-convolute/edition-folio-viewer/folio.service.spec.ts @@ -48,6 +48,7 @@ describe('FolioService (DONE)', () => { let expectedConvolutes: FolioConvolute[]; let expectedFolioSettings: FolioSettings; let expectedFolioSvgData: FolioSvgData; + let expectedDefaultFolio: Folio; let expectedReversedFolio: Folio; let expectedUpperLeftCorner: FolioCalculationPoint; @@ -81,6 +82,7 @@ describe('FolioService (DONE)', () => { // Test data expectedConvolutes = JSON.parse(JSON.stringify(mockEditionData.mockFolioConvoluteData.convolutes)); + expectedDefaultFolio = expectedConvolutes[0].folios[0]; expectedReversedFolio = JSON.parse(JSON.stringify(mockEditionData.mockReversedFolio)); expectedFolioSettings = { factor: 1.5, @@ -109,11 +111,7 @@ describe('FolioService (DONE)', () => { expectedLowerRightCorner = new FolioCalculationPoint(30, 40); expectedFolioSvgData = new FolioSvgData( - new FolioCalculation( - expectedFolioSettings, - expectedConvolutes[0].folios[0], - expectedContentSegmentOffsetCorrection - ) + new FolioCalculation(expectedFolioSettings, expectedDefaultFolio, expectedContentSegmentOffsetCorrection) ); // Spies on service functions @@ -257,7 +255,7 @@ describe('FolioService (DONE)', () => { it('... should return an instance of FolioSvgData object', () => { // Create mock FolioSettings and Folio objects const folioSettings: FolioSettings = expectedFolioSettings; - const folio: Folio = expectedConvolutes[0].folios[0]; + const folio: Folio = expectedDefaultFolio; // Call the method with the mock objects const result = folioService.getFolioSvgData(folioSettings, folio); @@ -269,8 +267,7 @@ describe('FolioService (DONE)', () => { it('... should create a new FolioCalculation object with the correct parameters', () => { // Create mock FolioSettings and Folio objects const folioSettings: FolioSettings = expectedFolioSettings; - const folio: Folio = expectedConvolutes[0].folios[0]; - + const folio: Folio = expectedDefaultFolio; const result = folioService.getFolioSvgData(folioSettings, folio); expectToEqual(result, expectedFolioSvgData); @@ -279,7 +276,7 @@ describe('FolioService (DONE)', () => { it('... should create a new FolioCalculation object when contentSegmentOffsetCorrection is undefined', () => { // Create mock FolioSettings and Folio objects const folioSettings: FolioSettings = expectedFolioSettings; - const folio: Folio = expectedConvolutes[0].folios[0]; + const folio: Folio = expectedDefaultFolio; const expectedFolioSvgDataWithoutOffset = new FolioSvgData(new FolioCalculation(folioSettings, folio, 0)); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.html index 017630a04a..b08deaa0b6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.html @@ -3,30 +3,40 @@ - - + + @if (isLoading) { + + } @else { + + @if (errorObject) { + + } @else { +
+ + + - - - - - @if (selectedConvolute && selectedSvgSheet) { - - + + @if (selectedConvolute && selectedSvgSheet) { + + + } +
+ } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts index 6b3138ed76..2b1957a689 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts @@ -1,20 +1,23 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import { JsonPipe } from '@angular/common'; import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { Observable, of as observableOf } from 'rxjs'; +import { Observable, of as observableOf, throwError as observableThrowError } from 'rxjs'; import Spy = jasmine.Spy; -import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; - -import { expectSpyCall, expectToBe, expectToEqual, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; +import { + expectSpyCall, + expectToBe, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; import { mockEditionData } from '@testing/mock-data'; import { ActivatedRouteStub, UrlSegmentStub } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; -import { ModalComponent } from '@awg-shared/modal/modal.component'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, @@ -27,8 +30,14 @@ import { Textcritics, TextcriticsList, } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService, EditionSheetsService } from '@awg-views/edition-view/services'; +import { + EditionComplexesService, + EditionDataService, + EditionService, + EditionSheetsService, +} from '@awg-views/edition-view/services'; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { EditionSheetsComponent } from './edition-sheets.component'; @Component({ selector: 'awg-edition-accolade', template: '' }) @@ -69,6 +78,22 @@ class EditionConvoluteStubComponent { selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } +@Component({ selector: 'awg-error-alert', template: '' }) +class ErrorAlertStubComponent { + @Input() + errorObject: any; +} + +@Component({ selector: 'awg-modal', template: '' }) +class ModalStubComponent { + modalContent: string; + open(modalContentSnippetKey: string): void { + this.modalContent = modalContentSnippetKey; + } +} +@Component({ selector: 'awg-twelve-tone-spinner', template: '' }) +class TwelveToneSpinnerStubComponent {} + describe('EditionSheetsComponent', () => { let component: EditionSheetsComponent; let fixture: ComponentFixture; @@ -92,6 +117,7 @@ describe('EditionSheetsComponent', () => { let navigateWithComplexIdSpy: Spy; let navigationSpy: Spy; let onSvgSheetSelectSpy: Spy; + let selectSvgSheetSpy: Spy; let expectedEditionComplex: EditionComplex; let expectedFolioConvoluteData: FolioConvoluteList; @@ -106,6 +132,12 @@ describe('EditionSheetsComponent', () => { let expectedReportFragment: string; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; + const jsonPipe = new JsonPipe(); + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + beforeEach(waitForAsync(() => { // Mock router with spy object // Router spy object @@ -144,13 +176,14 @@ describe('EditionSheetsComponent', () => { }; TestBed.configureTestingModule({ - imports: [NgbModalModule], declarations: [ CompileHtmlComponent, EditionSheetsComponent, EditionConvoluteStubComponent, EditionAccoladeStubComponent, - ModalComponent, + ErrorAlertStubComponent, + ModalStubComponent, + TwelveToneSpinnerStubComponent, ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, @@ -203,11 +236,15 @@ describe('EditionSheetsComponent', () => { editionSheetsServiceSelectConvoluteSpy = spyOn(mockEditionSheetsService, 'selectConvolute').and.returnValue( expectedFolioConvoluteData[0] ); + + navigationSpy = mockRouter.navigate as jasmine.Spy; + getEditionSheetsDataSpy = spyOn(component, 'getEditionSheetsData').and.callThrough(); navigateToReportFragmentSpy = spyOn(component, 'onReportFragmentNavigate').and.callThrough(); - navigateWithComplexIdSpy = spyOn(component as any, '_navigateWithComplexId').and.callThrough(); - navigationSpy = mockRouter.navigate as jasmine.Spy; onSvgSheetSelectSpy = spyOn(component, 'onSvgSheetSelect').and.callThrough(); + + navigateWithComplexIdSpy = spyOn(component as any, '_navigateWithComplexId').and.callThrough(); + selectSvgSheetSpy = spyOn(component as any, '_selectSvgSheet').and.callThrough(); }); it('... should create', () => { @@ -219,8 +256,12 @@ describe('EditionSheetsComponent', () => { expect(component.editionComplex).toBeUndefined(); }); - it('... should not have `errorMessage`', () => { - expect(component.errorMessage).toBeUndefined(); + it('... should have `errorObject` = null', () => { + expectToBe(component.errorObject, null); + }); + + it('... should have `isLoading===true`', () => { + expectToBe(component.isLoading, true); }); it('... should not have `folioConvoluteData`', () => { @@ -266,6 +307,38 @@ describe('EditionSheetsComponent', () => { it('... should have `editionRouteConstants` getter', () => { expectToEqual(component.editionRouteConstants, expectedEditionRouteConstants); }); + + describe('VIEW', () => { + it('... should contain a `div`', () => { + getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + }); + + it('... should contain one modal component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ModalStubComponent, 1, 1); + }); + + it('... should not contain an error alert component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 0, 0); + }); + + it('... should not contain a loading spinner component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], TwelveToneSpinnerStubComponent, 0, 0); + }); + + it('... should not contain an AccoladeComponent (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionAccoladeStubComponent, 0, 0); + }); + + it('... should not contain a ConvoluteComponent (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionConvoluteStubComponent, 0, 0); + }); + }); }); describe('AFTER initial data binding', () => { @@ -290,6 +363,64 @@ describe('EditionSheetsComponent', () => { expectToEqual(mockActivatedRoute.snapshot.url[0].path, changedPath); }); + describe('VIEW', () => { + it('... should contain one div.awg-sheets-view', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-sheets-view', 1, 1); + }); + + it('... should contain one AccoladeComponent (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionAccoladeStubComponent, 1, 1); + }); + + it('... should contain no ConvoluteComponent (stubbed) if no convolute is provided', () => { + getAndExpectDebugElementByDirective(compDe, EditionConvoluteStubComponent, 0, 0); + }); + + describe('on error', () => { + const expectedError = { status: 404, statusText: 'got Error' }; + + beforeEach(waitForAsync(() => { + // Spy on editionDataService to return an error + editionDataServiceGetEditionSheetsDataSpy.and.returnValue( + observableThrowError(() => expectedError) + ); + + component.getEditionSheetsData(); + detectChangesOnPush(fixture); + })); + + it('... should not contain sheets view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { + getAndExpectDebugElementByCss(compDe, 'div.awg-sheets-view', 0, 0); + + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 1, 1); + })); + + it('... should pass down error object to ErrorAlertComponent', waitForAsync(() => { + const errorAlertDes = getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 1, 1); + const errorAlertCmp = errorAlertDes[0].injector.get( + ErrorAlertStubComponent + ) as ErrorAlertStubComponent; + + expectToEqual(errorAlertCmp.errorObject, expectedError); + })); + }); + + describe('on loading', () => { + describe('... should contain only TwelveToneSpinnerComponent (stubbed) if ... ', () => { + it('... isLoading is true', () => { + component.isLoading = true; + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-sheets-view', 0, 0); + getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); + + getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); + }); + }); + }); + }); + describe('#onReportFragmentNavigate()', () => { it('... should have a method `onReportFragmentNavigate`', () => { expect(component.onReportFragmentNavigate).toBeDefined(); @@ -524,6 +655,232 @@ describe('EditionSheetsComponent', () => { }); }); + describe('#_assignData()', () => { + it('... should have a method `_assignData`', () => { + expect((component as any)._assignData).toBeDefined(); + }); + + it('... should assign data from the service to the component', () => { + component.folioConvoluteData = undefined; + component.svgSheetsData = undefined; + component.textcriticsData = undefined; + detectChangesOnPush(fixture); + + const expectedData = [expectedFolioConvoluteData, expectedSvgSheetsData, expectedTextcriticsData]; + + (component as any)._assignData(expectedData); + + expectToEqual(component.folioConvoluteData, expectedFolioConvoluteData); + expectToEqual(component.svgSheetsData, expectedSvgSheetsData); + expectToEqual(component.textcriticsData, expectedTextcriticsData); + }); + }); + + describe('#_getDefaultSheetId()', () => { + it('... should have a method `_getDefaultSheetId`', () => { + expect((component as any)._getDefaultSheetId).toBeDefined(); + }); + + describe('... should return an empty string if', () => { + it('... should return an empty string if svgSheetsData is undefined', () => { + component.svgSheetsData = undefined; + detectChangesOnPush(fixture); + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, ''); + }); + + it('... should return an empty string if svgSheetsData.sheets.sketchEditions is an empty array', () => { + component.svgSheetsData = { sheets: { sketchEditions: [] } } as EditionSvgSheetList; + detectChangesOnPush(fixture); + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, ''); + }); + }); + + it('... should return the id of the first sketch sheet by default (no partials)', () => { + const mockSheet1 = { id: 'sheet1', content: [] } as EditionSvgSheet; + + component.svgSheetsData = { + sheets: { sketchEditions: [mockSheet1] }, + } as EditionSvgSheetList; + detectChangesOnPush(fixture); + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, mockSheet1.id); + }); + + it('... should return the id and first partial of the first sketch sheet by default if partials are present', () => { + const mockSheet1 = { + id: 'sheet1', + content: [ + { svg: '', image: '', partial: 'a' }, + { svg: '', image: '', partial: 'b' }, + ], + } as EditionSvgSheet; + component.svgSheetsData = { + sheets: { sketchEditions: [mockSheet1] }, + } as EditionSvgSheetList; + detectChangesOnPush(fixture); + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, 'sheet1a'); + }); + + it('... should return the first id and partial of the first sketch sheet from a list of multiple sheets', () => { + const mockSheet1 = { + id: 'sheet1', + content: [ + { svg: '', image: '', partial: 'a' }, + { svg: '', image: '', partial: 'b' }, + ], + } as EditionSvgSheet; + const mockSheet2 = { + id: 'sheet2', + content: [ + { svg: '', image: '', partial: 'c' }, + { svg: '', image: '', partial: 'd' }, + ], + } as EditionSvgSheet; + component.svgSheetsData = { + sheets: { sketchEditions: [mockSheet1, mockSheet2] }, + } as EditionSvgSheetList; + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, 'sheet1a'); + }); + + it('... should return the first id and partial of the first sketch sheet from a list of multiple edition types', () => { + const mockSheet1 = { + id: 'sheet1', + content: [ + { svg: '', image: '', partial: 'a' }, + { svg: '', image: '', partial: 'b' }, + ], + } as EditionSvgSheet; + const mockSheet2 = { id: 'sheet2', content: [] } as EditionSvgSheet; + const mockSheet3 = { + id: 'sheet3', + content: [ + { svg: '', image: '', partial: 'c' }, + { svg: '', image: '', partial: 'd' }, + ], + } as EditionSvgSheet; + component.svgSheetsData = { + sheets: { + workEditions: [mockSheet1], + textEditions: [mockSheet2], + sketchEditions: [mockSheet3], + }, + } as EditionSvgSheetList; + + const result = (component as any)._getDefaultSheetId(); + + expectToBe(result, 'sheet3c'); + }); + }); + + describe('#_handleQueryParams()', () => { + it('... should have a method `_handleQueryParams`', () => { + expect((component as any)._handleQueryParams).toBeDefined(); + }); + + describe('... with svgSheetsData available and id given from query params', () => { + it('... should trigger `_selectSvgSheet` with the correct sheet id', () => { + const sheetId = 'test-TF1'; + mockActivatedRoute.testQueryParamMap = { id: sheetId }; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expectSpyCall(selectSvgSheetSpy, 2, sheetId); + }); + }); + + describe('... with svgSheetsData available and id not given from query params', () => { + it('... should trigger `onSvgSheetSelect` with snapshotQueryParamsId on first page load', () => { + mockActivatedRoute.testQueryParamMap = { id: '' }; + (component as any)._isFirstPageLoad = true; + + const snapShotSheetId = 'test-TF1'; + component.snapshotQueryParamsId = snapShotSheetId; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expectSpyCall(onSvgSheetSelectSpy, 3, { + complexId: '', + sheetId: snapShotSheetId, + }); + }); + + it('... should trigger `onSvgSheetSelect` with default id on subsequent page loads', () => { + mockActivatedRoute.testQueryParamMap = { id: '' }; + (component as any)._isFirstPageLoad = false; + + const defaultSheetId = 'test-1'; + const snapShotSheetId = 'test-TF1'; + component.snapshotQueryParamsId = snapShotSheetId; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expectSpyCall(onSvgSheetSelectSpy, 3, { + complexId: '', + sheetId: defaultSheetId, + }); + }); + }); + + describe('... with svgSheetsData not available and id not given from query params', () => { + it('... should trigger `onSvgSheetSelect` with no id', () => { + mockActivatedRoute.testQueryParamMap = { id: '' }; + (component as any)._isFirstPageLoad = true; + + component.svgSheetsData = undefined; + component.snapshotQueryParamsId = ''; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expectSpyCall(onSvgSheetSelectSpy, 3, { + complexId: '', + sheetId: '', + }); + }); + it('... should reset selectedSvgSheet to undefined', () => { + mockActivatedRoute.testQueryParamMap = { id: '' }; + (component as any)._isFirstPageLoad = true; + + component.svgSheetsData = undefined; + component.snapshotQueryParamsId = ''; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expect(component.selectedSvgSheet).toBeUndefined(); + }); + }); + + it('... should set _isFirstPageLoad and isLoading to false after handling query params', () => { + component.isLoading = true; + (component as any)._isFirstPageLoad = true; + mockActivatedRoute.testQueryParamMap = { id: 'sheetId' }; + detectChangesOnPush(fixture); + + (component as any)._handleQueryParams(mockActivatedRoute.testQueryParamMap); + + expectToBe((component as any)._isFirstPageLoad, false); + expectToBe(component.isLoading, false); + }); + }); + describe('#_navigateWithComplexId()', () => { it('... should have a method `_navigateWithComplexId`', () => { expect((component as any)._navigateWithComplexId).toBeDefined(); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts index e8a3546211..8d12768c0a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts @@ -1,8 +1,8 @@ import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, NavigationExtras, ParamMap, Router } from '@angular/router'; -import { Observable, Subject, combineLatest } from 'rxjs'; -import { switchMap, takeUntil, tap } from 'rxjs/operators'; +import { EMPTY, Observable, Subject, combineLatest } from 'rxjs'; +import { catchError, switchMap, takeUntil, tap } from 'rxjs/operators'; import { UtilityService } from '@awg-core/services'; import { ModalComponent } from '@awg-shared/modal/modal.component'; @@ -50,11 +50,18 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { editionComplex: EditionComplex; /** - * Public variable: errorMessage. + * Public variable: errorObject. * - * It keeps an errorMessage for the service calls. + * It keeps an errorObject for the service calls. */ - errorMessage: string = undefined; + errorObject = null; + + /** + * Public variable: isLoading. + * + * It keeps the loading status of the edition sheets. + */ + isLoading = true; /** * Public variable: folioConvoluteData. @@ -183,18 +190,28 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { * @returns {void} Gets the current edition complex and all necessary edition data. */ getEditionSheetsData(): void { + this.errorObject = null; + this.snapshotQueryParamsId = this.route.snapshot.queryParamMap.get('id'); combineLatest([this.route.paramMap, this.route.queryParamMap]) .pipe( switchMap(([_params, queryParams]) => this._fetchEditionComplexData(queryParams)), + // Error handling + catchError(err => { + this.errorObject = err; + this.isLoading = false; + return EMPTY; + }), takeUntil(this._destroyed$) ) .subscribe({ - next: () => {}, + next: () => { + this.isLoading = false; + }, error: err => { - console.error(err); - this.errorMessage = err; + this.errorObject = err; + this.isLoading = false; }, }); } @@ -343,6 +360,7 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { private _fetchEditionComplexData( queryParams: ParamMap ): Observable { + this.isLoading = true; return this.editionService.getSelectedEditionComplex().pipe( // Set editionComplex tap((complex: EditionComplex) => (this.editionComplex = complex)), @@ -388,6 +406,12 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { ? this.snapshotQueryParamsId : this._getDefaultSheetId(); + // Reset selectedSvgSheet if no sheetId is provided + if (sheetIdFromQueryParams === '') { + this.selectedSvgSheet = undefined; + } + + // Navigate once more to the selected sheet this.onSvgSheetSelect({ complexId: '', sheetId: sheetIdFromQueryParams, @@ -395,6 +419,7 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { } this._isFirstPageLoad = false; + this.isLoading = false; } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.html b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.html index 6b00e4903f..72a4ba5a9c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.html @@ -2,7 +2,7 @@
@for (rowTable of rowTablesData?.rowTables; track rowTable) {
-
+
Reihentabelle {{ rowTable.short }} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html index c6dd0e52e8..28098e4ab2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html @@ -1,19 +1,20 @@ @if ( selectedSection && - utils.isNotEmptyObject(selectedSection.complexes) && - (utils.isNotEmptyArray(selectedSection.complexes.opus) || utils.isNotEmptyArray(selectedSection.complexes.mnr)) + utils.isNotEmptyObject(selectedSection.complexTypes) && + (utils.isNotEmptyArray(selectedSection.complexTypes.opus) || + utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) ) {
- @if (utils.isNotEmptyArray(selectedSection.complexes.opus)) { -
+ @if (utils.isNotEmptyArray(selectedSection.complexTypes.opus)) { +
nach Opusnummer:
- +
} - @if (utils.isNotEmptyArray(selectedSection.complexes.mnr)) { -
+ @if (utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) { +
nach Moldenhauer-Nummer:
- +
}
diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts index ede4608ee4..a596d9d601 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts @@ -15,17 +15,16 @@ import { } from '@testing/expect-helper'; import { ActivatedRouteStub } from '@testing/router-stubs'; -import { EDITION_OUTLINE_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionOutlineComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionSectionDetailComponent } from './edition-section-detail.component'; @Component({ selector: 'awg-edition-complex-card', template: '' }) class EditionComplexCardStubComponent { @Input() - complexes: EditionOutlineComplex[]; + complexes: EditionOutlineComplexItem[]; } describe('EditionSectionDetailComponent (DONE)', () => { @@ -38,7 +37,7 @@ describe('EditionSectionDetailComponent (DONE)', () => { let updateSectionFromRouteSpy: Spy; let editionServiceGetSelectedEditionSeriesSpy: Spy; - let editionServiceGetEditionSectionByIdSpy: Spy; + let editionOutlineServiceGetEditionSectionByIdSpy: Spy; let editionServiceUpdateSelectedEditionSectionSpy: Spy; let expectedSelectedSeries: EditionOutlineSeries; @@ -46,13 +45,15 @@ describe('EditionSectionDetailComponent (DONE)', () => { let expectedSeriesId: string; let expectedSectionId: string; + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + }); + beforeEach(async () => { // Mock edition service mockEditionService = { getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), - - getEditionSectionById: (seriesId: string, sectionId: string): EditionOutlineSection => - expectedSelectedSection, updateSelectedEditionSection: (editionSection: EditionOutlineSection): void => {}, }; @@ -74,8 +75,8 @@ describe('EditionSectionDetailComponent (DONE)', () => { compDe = fixture.debugElement; // TestData - expectedSelectedSeries = JSON.parse(JSON.stringify(EDITION_OUTLINE_DATA[0])); - expectedSelectedSection = { ...expectedSelectedSeries.sections[4] }; + expectedSelectedSeries = EditionOutlineService.getEditionOutline()[0]; + expectedSelectedSection = expectedSelectedSeries.sections[4]; expectedSeriesId = expectedSelectedSeries.series.route; expectedSectionId = expectedSelectedSection.section.route; @@ -87,11 +88,14 @@ describe('EditionSectionDetailComponent (DONE)', () => { mockEditionService, 'getSelectedEditionSeries' ).and.callThrough(); - editionServiceGetEditionSectionByIdSpy = spyOn(mockEditionService, 'getEditionSectionById').and.callThrough(); editionServiceUpdateSelectedEditionSectionSpy = spyOn( mockEditionService, 'updateSelectedEditionSection' ).and.callThrough(); + editionOutlineServiceGetEditionSectionByIdSpy = spyOn( + EditionOutlineService, + 'getEditionSectionById' + ).and.callThrough(); }); it('... should create', () => { @@ -153,13 +157,13 @@ describe('EditionSectionDetailComponent (DONE)', () => { expectToEqual(component.selectedSeries, expectedSelectedSeries); })); - it('... should have called editionService.getEditionSectionById', () => { - expectSpyCall(editionServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); + it('... should have called EditionOutlineService.getEditionSectionById', () => { + expectSpyCall(editionOutlineServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); }); - it('... should have set selectedSection (via EditionService)', waitForAsync(() => { + it('... should have set selectedSection (via EditionOutlineService)', waitForAsync(() => { expectSpyCall(updateSectionFromRouteSpy, 1); - expectSpyCall(editionServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); + expectSpyCall(editionOutlineServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); expectToEqual(component.selectedSection, expectedSelectedSection); })); @@ -178,7 +182,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { })); it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { - component.selectedSection.complexes.opus = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + component.selectedSection = shallowCopy; fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); @@ -186,7 +192,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { })); it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { - component.selectedSection.complexes.mnr = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + component.selectedSection = shallowCopy; fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); @@ -201,7 +209,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', () => { - component.selectedSection.complexes.opus = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + component.selectedSection = shallowCopy; fixture.detectChanges(); const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); @@ -251,7 +261,7 @@ describe('EditionSectionDetailComponent (DONE)', () => { EditionComplexCardStubComponent ) as EditionComplexCardStubComponent; - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexes.opus); + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.opus); }); }); @@ -262,7 +272,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', () => { - component.selectedSection.complexes.mnr = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + component.selectedSection = shallowCopy; fixture.detectChanges(); const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); @@ -297,7 +309,7 @@ describe('EditionSectionDetailComponent (DONE)', () => { EditionComplexCardStubComponent ) as EditionComplexCardStubComponent; - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexes.mnr); + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.mnr); }); }); }); @@ -305,7 +317,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { describe('... with no complexes', () => { describe('... should contain no outer div.awg-edition-section-detail, but 1 div.alert-info ...', () => { it('... if selectedSection has no complexes...', waitForAsync(() => { - component.selectedSection.complexes = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); @@ -313,9 +327,13 @@ describe('EditionSectionDetailComponent (DONE)', () => { })); it('... if selectedSection has empty opus and mnr complexes', waitForAsync(() => { - component.selectedSection = expectedSelectedSeries.sections[4]; - component.selectedSection.complexes.opus = undefined; - component.selectedSection.complexes.mnr = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { + ...component.selectedSection.complexTypes, + opus: undefined, + mnr: undefined, + }; + component.selectedSection = shallowCopy; fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); @@ -324,7 +342,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); it('... should contain 1 p.text-muted in div.alert-info', () => { - component.selectedSection.complexes = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; fixture.detectChanges(); const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); @@ -335,7 +355,9 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); it('... should display info message in p.text-muted', () => { - component.selectedSection.complexes = undefined; + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; fixture.detectChanges(); const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts index 8cb62da630..d064cb4b75 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts @@ -5,8 +5,8 @@ import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; import { UtilityService } from '@awg-core/services'; -import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; /** * The EditionSectionDetail component. @@ -88,7 +88,7 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { .subscribe(series => { this.selectedSeries = series; const seriesId = series.series.route; - this.selectedSection = this.editionService.getEditionSectionById(seriesId, sectionId); + this.selectedSection = EditionOutlineService.getEditionSectionById(seriesId, sectionId); this.editionService.updateSelectedEditionSection(this.selectedSection); }); } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html index ed5bc25340..6fc8db9fbc 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html @@ -1,8 +1,8 @@ @if (selectedSeries$ | async; as selectedSeries) {
- @for (section of selectedSeries.sections; track section) { + @for (section of selectedSeries.sections; track $index) {
-
+
{{ section.section.full }} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts index 1e46ea530b..26e85bc3b9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts @@ -1,26 +1,420 @@ +import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { RouterOutletStubComponent } from '@testing/router-stubs'; +import { Observable, of as observableOf } from 'rxjs'; +import Spy = jasmine.Spy; + +import { click } from '@testing/click-helper'; +import { + expectSpyCall, + expectToBe, + expectToContain, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-app/views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-app/views/edition-view/services'; import { EditionSectionsComponent } from './edition-sections.component'; -describe('EditionSectionsComponent', () => { +describe('EditionSectionsComponent (DONE)', () => { let component: EditionSectionsComponent; let fixture: ComponentFixture; + let compDe: DebugElement; + + let mockEditionService: Partial; + + let clearSelectedSectionSpy: Spy; + let getSeriesSpy: Spy; + let editionServiceClearSelectedEditionSectionSpy: Spy; + let editionServiceGetSelectedEditionSeriesSpy: Spy; + + let expectedSelectedSeries: EditionOutlineSeries; + let expectedSelectedSection: EditionOutlineSection; + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + }); beforeEach(waitForAsync(() => { + // Mock edition service + mockEditionService = { + getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), + clearSelectedEditionSection: (): void => {}, + }; + TestBed.configureTestingModule({ - declarations: [EditionSectionsComponent, RouterOutletStubComponent], + declarations: [EditionSectionsComponent, RouterLinkStubDirective], + providers: [{ provide: EditionService, useValue: mockEditionService }], }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(EditionSectionsComponent); component = fixture.componentInstance; - fixture.detectChanges(); + compDe = fixture.debugElement; + + // TestData + expectedSelectedSeries = EditionOutlineService.getEditionOutline()[0]; + expectedSelectedSection = expectedSelectedSeries.sections[4]; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + + clearSelectedSectionSpy = spyOn(component, 'clearSelectedSection').and.callThrough(); + getSeriesSpy = spyOn(component, 'getSeries').and.callThrough(); + editionServiceClearSelectedEditionSectionSpy = spyOn( + mockEditionService, + 'clearSelectedEditionSection' + ).and.callThrough(); + editionServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionService, + 'getSelectedEditionSeries' + ).and.callThrough(); }); it('... should create', () => { expect(component).toBeTruthy(); }); + + describe('BEFORE initial data binding', () => { + it('... should not have `selectedSeries$`', () => { + expect(component.selectedSeries$).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should not contain one div.row', () => { + getAndExpectDebugElementByCss(compDe, 'div.row', 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + component.selectedSeries$ = observableOf(expectedSelectedSeries); + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `selectedSeries$`', () => { + expect(component.selectedSeries$).toBeDefined(); + }); + + it('...should trigger `clearSelectedSection` method on init', () => { + expectSpyCall(clearSelectedSectionSpy, 1); + }); + + it('...should trigger `getSeries` method on init', () => { + expectSpyCall(getSeriesSpy, 1); + }); + + describe('VIEW', () => { + it('... should contain one div.row', () => { + getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + }); + + it('... should contain as many div.cols with div.card as sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + getAndExpectDebugElementByCss( + compDe, + 'div.col > div.card', + expectedSectionsLength, + expectedSectionsLength + ); + }); + + describe('... div.card-body', () => { + it('... should contain one div.card-body in each div.card', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + }); + }); + + it('... should contain one h5.card-title per section in div.card-body', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; + + expect(headerEl.textContent).toBeDefined(); + }); + }); + + it('... should display the section title in h5.card-title', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; + + expectToBe(headerEl.textContent.trim(), expectedSelectedSeries.sections[index].section.full); + }); + }); + + it('... should mute the section title only if the section is disabled', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; + + if (expectedSelectedSeries.sections[index].disabled) { + expectToContain(headerEl.classList, 'text-muted'); + } else { + expect(headerEl.classList).not.toContain('text-muted'); + } + }); + }); + }); + + describe('... div.card-footer', () => { + it('... should contain one div.card-footer in each div.card', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + }); + }); + + it('... should contain one routerLink per section in div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); + }); + }); + + it('... should have correct routerLink in each div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index].section; + + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); + + const expectedLinkParams = [expectedSection.route]; + + expectToEqual(footerLink.linkParams, expectedLinkParams); + }); + }); + + it('... should display correct text in each routerLink in div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLinkEl = footerLinkDes[0].nativeElement; + + const expectedLinkText = 'Mehr ...'; + + expectToEqual(footerLinkEl.textContent.trim(), expectedLinkText); + }); + }); + + it('... should disable routerLink only if section is disabled', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLinkEl = footerLinkDes[0].nativeElement; + + if (expectedSection.disabled) { + expectToContain(footerLinkEl.classList, 'disabled'); + } else { + expect(footerLinkEl.classList).not.toContain('disabled'); + } + }); + }); + }); + }); + + describe('#clearSelectedSection()', () => { + it('... should have a method `clearSelectedSection`', () => { + expect(component.clearSelectedSection).toBeDefined(); + }); + + it('...should call `clearSelectedEditionSeries` from EditionService', () => { + expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 1); + + component.clearSelectedSection(); + + expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 2); + }); + }); + + describe('#getSeries()', () => { + it('... should have a method `getSeries`', () => { + expect(component.getSeries).toBeDefined(); + }); + + it('...should call `getSelectedEditionSeries` from EditionService', () => { + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + + component.getSeries(); + + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 2); + }); + + it('...should set `selectedSeries$`', () => { + component.selectedSeries$ = undefined; + fixture.detectChanges(); + + expect(component.selectedSeries$).toBeUndefined(); + + component.getSeries(); + + expect(component.selectedSeries$).toBeDefined(); + }); + }); + + describe('[routerLink]', () => { + let linkDes: DebugElement[]; + let routerLinks: string | any[]; + + beforeEach(() => { + linkDes = getAndExpectDebugElementByDirective(compDe, RouterLinkStubDirective, 5, 5); + + routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + }); + + it('... can get correct number of routerLinks from template', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + expectToBe(routerLinks.length, expectedSectionsLength); + }); + + it('... can get correct linkParams from template', () => { + let linkIndex = 0; + expectedSelectedSeries.sections.forEach((section, _sectionIndex) => { + if (!section.disabled) { + // Check the router link for the section + const expectedSectionLinkParams = [section.section.route]; + expectToEqual(routerLinks[linkIndex++].linkParams, expectedSectionLinkParams); + } + linkIndex++; + }); + }); + + it('... can click section link in template', () => { + const sectionLinkDe = linkDes[0]; + const sectionLink = routerLinks[0]; + + expectToBe(sectionLink.navigatedTo, null); + + click(sectionLinkDe); + fixture.detectChanges(); + + expectToEqual(sectionLink.navigatedTo, [expectedSelectedSeries.sections[0].section.route]); + }); + + it('... should navigate to section page when section link is clicked', () => { + const sectionLinkDe = linkDes[4]; + const sectionLink = routerLinks[4]; + + expectToBe(sectionLink.navigatedTo, null); + + click(sectionLinkDe); + fixture.detectChanges(); + + expectToEqual(sectionLink.navigatedTo, [expectedSelectedSeries.sections[4].section.route]); + }); + }); + }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts index 3a603cfa69..1f819f5c2b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts @@ -43,24 +43,24 @@ export class EditionSectionsComponent implements OnInit { } /** - * Public method: getSeries. + * Public method: clearSelectedSection. * - * It gets the selected series from the EditionService. + * It clears the selected section from the EditionService. * - * @returns {void} Gets the edition series. + * @returns {void} Clears the edition section. */ - getSeries(): void { - this.selectedSeries$ = this.editionService.getSelectedEditionSeries(); + clearSelectedSection(): void { + this.editionService.clearSelectedEditionSection(); } /** - * Public method: clearSelectedSection. + * Public method: getSeries. * - * It clears the selected section from the EditionService. + * It gets the selected series from the EditionService. * - * @returns {void} Clears the edition section. + * @returns {void} Gets the edition series. */ - clearSelectedSection(): void { - this.editionService.clearSelectedEditionSection(); + getSeries(): void { + this.selectedSeries$ = this.editionService.getSelectedEditionSeries(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts index c1f85e7090..04da1efb5e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts @@ -21,7 +21,6 @@ describe('EditionSeriesDetailComponent', () => { beforeEach(async () => { // Mock edition service mockEditionService = { - getEditionSeriesById: (seriesId: string): EditionOutlineSeries => expectedEditionSeries, updateSelectedEditionSeries: (editionSeries: EditionOutlineSeries): void => {}, }; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts index a45ea95d6f..9276cc5dc5 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; /** * The EditionSeriesDetail component. @@ -58,7 +58,7 @@ export class EditionSeriesDetailComponent implements OnInit { updateSeriesFromRoute(): void { const id = this.route.snapshot.paramMap.get('id'); - this.selectedSeries = this.editionService.getEditionSeriesById(id); + this.selectedSeries = EditionOutlineService.getEditionSeriesById(id); this.editionService.updateSelectedEditionSeries(this.selectedSeries); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html index ad78cb2d8c..ef930c38d4 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html @@ -1,14 +1,14 @@ @if (editionOutline) {
- @for (series of editionOutline; track series) { + @for (series of editionOutline; track $index) {
-
+
{{ series.series.full }}
    - @for (section of series.sections; track section) { + @for (section of series.sections; track $index) {
  • @if (!section.disabled) { {{ diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts index 37b87efa44..b77cf5fe2c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts @@ -11,12 +11,12 @@ import { getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; +import { mockEditionOutline } from '@testing/mock-data/mockEditionOutline'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { EDITION_OUTLINE_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionSeriesComponent } from './edition-series.component'; @@ -35,12 +35,18 @@ describe('EditionSeriesComponent (DONE)', () => { let expectedEditionOutline: EditionOutlineSeries[]; + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + }); + beforeEach(waitForAsync(() => { + // Mock edition service mockEditionService = { clearSelectedEditionSeries: () => {}, clearSelectedEditionSection: () => {}, - getEditionOutline: (): EditionOutlineSeries[] => EDITION_OUTLINE_DATA, }; + TestBed.configureTestingModule({ declarations: [EditionSeriesComponent, RouterLinkStubDirective], providers: [{ provide: EditionService, useValue: mockEditionService }], @@ -53,7 +59,7 @@ describe('EditionSeriesComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedEditionOutline = EDITION_OUTLINE_DATA; + expectedEditionOutline = EditionOutlineService.getEditionOutline(); // Spies clearSelectionsSpy = spyOn(component, 'clearSelections').and.callThrough(); @@ -66,7 +72,7 @@ describe('EditionSeriesComponent (DONE)', () => { mockEditionService, 'clearSelectedEditionSection' ).and.callThrough(); - serviceGetEditionOutlineSpy = spyOn(mockEditionService, 'getEditionOutline').and.callThrough(); + serviceGetEditionOutlineSpy = spyOn(EditionOutlineService, 'getEditionOutline').and.callThrough(); }); it('... should create', () => { @@ -92,7 +98,7 @@ describe('EditionSeriesComponent (DONE)', () => { describe('AFTER initial data binding', () => { beforeEach(() => { - // Component.editionOutline = expectedEditionOutline; + component.editionOutline = expectedEditionOutline; // Trigger initial data binding fixture.detectChanges(); @@ -118,54 +124,54 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should contain as many div.col in div.row as there are series', () => { const expectedSeriesLength = expectedEditionOutline.length; - const rowDe = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); - getAndExpectDebugElementByCss(rowDe[0], 'div.col', expectedSeriesLength, expectedSeriesLength); + getAndExpectDebugElementByCss(rowDes[0], 'div.col', expectedSeriesLength, expectedSeriesLength); }); it('... should contain a div.card in each div.col', () => { const expectedSeriesLength = expectedEditionOutline.length; - const colDe = getAndExpectDebugElementByCss( + const colDes = getAndExpectDebugElementByCss( compDe, 'div.col', expectedSeriesLength, expectedSeriesLength ); - colDe.forEach((de, _index) => { - getAndExpectDebugElementByCss(de, 'div.card', 1, 1); + colDes.forEach(colDe => { + getAndExpectDebugElementByCss(colDe, 'div.card', 1, 1); }); }); it('... should contain a h5.card-header in each div.card', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, _index) => { - getAndExpectDebugElementByCss(de, 'h5.card-header', 1, 1); + cardDes.forEach(cardDe => { + getAndExpectDebugElementByCss(cardDe, 'h5.card-header', 1, 1); }); }); it('... should display series name in each h5.card-header', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, index) => { + cardDes.forEach((cardDe, index) => { const expectedSeries = expectedEditionOutline[index].series; - const h5De = getAndExpectDebugElementByCss(de, 'h5.card-header', 1, 1); + const h5De = getAndExpectDebugElementByCss(cardDe, 'h5.card-header', 1, 1); const h5El = h5De[0].nativeElement; expectToBe(h5El.textContent.trim(), expectedSeries.full); @@ -175,48 +181,48 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should contain a div.card-body in each div.card', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, _index) => { - getAndExpectDebugElementByCss(de, 'div.card-body', 1, 1); + cardDes.forEach(cardDe => { + getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); }); }); it('... should contain a ul.list-group in each div.card-body', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardBodyDe = getAndExpectDebugElementByCss( + const cardBodyDes = getAndExpectDebugElementByCss( compDe, 'div.card-body', expectedSeriesLength, expectedSeriesLength ); - cardBodyDe.forEach((de, _index) => { - getAndExpectDebugElementByCss(de, 'ul.list-group', 1, 1); + cardBodyDes.forEach(cardBodyDe => { + getAndExpectDebugElementByCss(cardBodyDe, 'ul.list-group', 1, 1); }); }); it('... should contain as many li.list-group-item in ul.list-group as there are sections in a series', () => { const expectedSeriesLength = expectedEditionOutline.length; - const ulDe = getAndExpectDebugElementByCss( + const ulDes = getAndExpectDebugElementByCss( compDe, 'ul.list-group', expectedSeriesLength, expectedSeriesLength ); - ulDe.forEach((de, index) => { + ulDes.forEach((ulDe, index) => { const expectedSectionsLength = expectedEditionOutline[index].sections.length; getAndExpectDebugElementByCss( - de, + ulDe, 'li.list-group-item', expectedSectionsLength, expectedSectionsLength @@ -227,26 +233,26 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should display section name in each li.list-group-item', () => { const expectedSeriesLength = expectedEditionOutline.length; - const ulDe = getAndExpectDebugElementByCss( + const ulDes = getAndExpectDebugElementByCss( compDe, 'ul.list-group', expectedSeriesLength, expectedSeriesLength ); - ulDe.forEach((de, index) => { + ulDes.forEach((ulDe, index) => { const expectedSections = expectedEditionOutline[index].sections; - const liDe = getAndExpectDebugElementByCss( - de, + const liDes = getAndExpectDebugElementByCss( + ulDe, 'li.list-group-item', expectedSections.length, expectedSections.length ); - liDe.forEach((li, liIndex) => { + liDes.forEach((liDe, liIndex) => { const expectedSection = expectedSections[liIndex].section; - const liEl = li.nativeElement; + const liEl = liDe.nativeElement; expectToBe(liEl.textContent.trim(), expectedSection.full); }); @@ -256,29 +262,29 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should contain a routerLink and no span.text-muted in li.list-group-item if section is not disabled', () => { const expectedSeriesLength = expectedEditionOutline.length; - const ulDe = getAndExpectDebugElementByCss( + const ulDes = getAndExpectDebugElementByCss( compDe, 'ul.list-group', expectedSeriesLength, expectedSeriesLength ); - ulDe.forEach((de, index) => { + ulDes.forEach((ulDe, index) => { const expectedSections = expectedEditionOutline[index].sections; - const liDe = getAndExpectDebugElementByCss( - de, + const liDes = getAndExpectDebugElementByCss( + ulDe, 'li.list-group-item', expectedSections.length, expectedSections.length ); - liDe.forEach((li, liIndex) => { + liDes.forEach((liDe, liIndex) => { const expectedSection = expectedSections[liIndex]; if (!expectedSection.disabled) { - getAndExpectDebugElementByDirective(li, RouterLinkStubDirective, 1, 1); - getAndExpectDebugElementByCss(li, 'span.text-muted', 0, 0); + getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 1, 1); + getAndExpectDebugElementByCss(liDe, 'span.text-muted', 0, 0); } }); }); @@ -287,29 +293,29 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should contain no router link, but a span.text-muted in li.list-group-item if section is disabled', () => { const expectedSeriesLength = expectedEditionOutline.length; - const ulDe = getAndExpectDebugElementByCss( + const ulDes = getAndExpectDebugElementByCss( compDe, 'ul.list-group', expectedSeriesLength, expectedSeriesLength ); - ulDe.forEach((de, index) => { + ulDes.forEach((ulDe, index) => { const expectedSections = expectedEditionOutline[index].sections; - const liDe = getAndExpectDebugElementByCss( - de, + const liDes = getAndExpectDebugElementByCss( + ulDe, 'li.list-group-item', expectedSections.length, expectedSections.length ); - liDe.forEach((li, liIndex) => { + liDes.forEach((liDe, liIndex) => { const expectedSection = expectedSections[liIndex]; if (expectedSection.disabled) { - getAndExpectDebugElementByDirective(li, RouterLinkStubDirective, 0, 0); - getAndExpectDebugElementByCss(li, 'span.text-muted', 1, 1); + getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 0, 0); + getAndExpectDebugElementByCss(liDe, 'span.text-muted', 1, 1); } }); }); @@ -318,56 +324,56 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should contain a div.card-footer in each div.card', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, _index) => { - getAndExpectDebugElementByCss(de, 'div.card-footer', 1, 1); + cardDes.forEach((cardDe, _index) => { + getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); }); }); it('... should contain a routerLink in each div.card-footer', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, _index) => { - const footerDe = getAndExpectDebugElementByCss(de, 'div.card-footer', 1, 1); - getAndExpectDebugElementByDirective(footerDe[0], RouterLinkStubDirective, 1, 1); + cardDes.forEach((cardDe, _index) => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); }); }); it('... should have correct routerLink in each div.card-footer', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, index) => { + cardDes.forEach((cardDe, index) => { const expectedSeries = expectedEditionOutline[index].series; - const footerDe = getAndExpectDebugElementByCss(de, 'div.card-footer', 1, 1); + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - const footerLinkDe = getAndExpectDebugElementByDirective( - footerDe[0], + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], RouterLinkStubDirective, 1, 1 ); - const footerLink = footerLinkDe[0].injector.get(RouterLinkStubDirective); + const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); const expectedLinkParams = [expectedSeries.route]; @@ -378,23 +384,23 @@ describe('EditionSeriesComponent (DONE)', () => { it('... should display correct text in each routerLink in div.card-footer', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardDe = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, 'div.card', expectedSeriesLength, expectedSeriesLength ); - cardDe.forEach((de, _index) => { - const footerDe = getAndExpectDebugElementByCss(de, 'div.card-footer', 1, 1); + cardDes.forEach((cardDe, _index) => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - const footerLinkDe = getAndExpectDebugElementByDirective( - footerDe[0], + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], RouterLinkStubDirective, 1, 1 ); - const footerLinkEl = footerLinkDe[0].nativeElement; + const footerLinkEl = footerLinkDes[0].nativeElement; const expectedLinkText = 'Mehr ...'; @@ -419,7 +425,7 @@ describe('EditionSeriesComponent (DONE)', () => { it('... can get correct linkParams from template', () => { let linkIndex = 0; - EDITION_OUTLINE_DATA.forEach((series, _seriesIndex) => { + expectedEditionOutline.forEach((series, _seriesIndex) => { series.sections.forEach((section, _sectionIndex) => { if (!section.disabled) { // Check the router link for the section @@ -470,7 +476,7 @@ describe('EditionSeriesComponent (DONE)', () => { expectToEqual(seriesLink.navigatedTo, ['1']); }); - it('... should navigate to section page when section link is clicked', () => { + it('... should navigate to series page when series link is clicked', () => { const seriesLinkDe = linkDes[1]; const seriesLink = routerLinks[1]; @@ -519,7 +525,7 @@ describe('EditionSeriesComponent (DONE)', () => { }); it('...should set `editionOutline`', () => { - const anotherEditionOutline = JSON.parse(JSON.stringify(EDITION_OUTLINE_DATA)); + const anotherEditionOutline = JSON.parse(JSON.stringify(mockEditionOutline)); anotherEditionOutline[0].series = EDITION_ROUTE_CONSTANTS.SERIES_2; serviceGetEditionOutlineSpy.and.returnValue(anotherEditionOutline); diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts index e06bd33fbf..fc98132447 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; /** * The EditionSeries component. @@ -64,6 +64,6 @@ export class EditionSeriesComponent implements OnInit { * @returns {void} Gets the edition outline. */ getEditionOutline(): void { - this.editionOutline = this.editionService.getEditionOutline(); + this.editionOutline = EditionOutlineService.getEditionOutline(); } } diff --git a/src/app/views/edition-view/edition-view.component.html b/src/app/views/edition-view/edition-view.component.html index 9f2e838ae9..a587134840 100644 --- a/src/app/views/edition-view/edition-view.component.html +++ b/src/app/views/edition-view/edition-view.component.html @@ -102,14 +102,15 @@
    {{ selectedEditionComplex.pubStatement.section.full }}
    -

    - -

    + +

    Ediert von - @for (editor of selectedEditionComplex.respStatement.editors; track editor; let isLast = $last) { + @for (editor of selectedEditionComplex.respStatement.editors; track $index; let isLast = $last) { {{ editor.name }} @if (!isLast) { diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index e1ae4201b8..f3695898da 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -14,13 +14,11 @@ import { getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; -import { mockEditionOutline } from '@testing/mock-data/mockEditionOutline'; import { ActivatedRouteStub, RouterLinkStubDirective, RouterOutletStubComponent } from '@testing/router-stubs'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionViewComponent } from './edition-view.component'; @@ -67,6 +65,7 @@ describe('EditionViewComponent (DONE)', () => { beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); }); beforeEach(waitForAsync(() => { @@ -78,14 +77,14 @@ describe('EditionViewComponent (DONE)', () => { // Mock edition service mockEditionService = { + getIsPrefaceView: (): Observable => observableOf(expectedIsPrefaceView), + getIsRowTableView: (): Observable => observableOf(expectedIsRowTableView), getSelectedEditionComplex: (): Observable => // Return op. 12 by default observableOf(EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId)), updateSelectedEditionComplex: (editionComplex: EditionComplex): void => { // Intentional empty test override }, - getIsPrefaceView: (): Observable => observableOf(expectedIsPrefaceView), - getIsRowTableView: (): Observable => observableOf(expectedIsRowTableView), getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedEditionSeries), getSelectedEditionSection: (): Observable => @@ -102,10 +101,7 @@ describe('EditionViewComponent (DONE)', () => { ], providers: [ { provide: EditionService, useValue: mockEditionService }, - { - provide: ActivatedRoute, - useValue: mockActivatedRoute, - }, + { provide: ActivatedRoute, useValue: mockActivatedRoute }, { provide: Router, useValue: mockRouter }, ], }).compileComponents(); @@ -125,8 +121,8 @@ describe('EditionViewComponent (DONE)', () => { expectedSelectedEditionComplex = EditionComplexesService.getEditionComplexById( expectedSelectedEditionComplexId ); - expectedSelectedEditionSeries = mockEditionOutline[0]; // Series 1 - expectedSelectedEditionSection = expectedSelectedEditionSeries.sections[4]; + expectedSelectedEditionSeries = EditionOutlineService.getEditionOutline()[0]; // Series 1 + expectedSelectedEditionSection = expectedSelectedEditionSeries.sections[4]; // Section 5 // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see @@ -385,11 +381,11 @@ describe('EditionViewComponent (DONE)', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-edition-complex', 1, 1); }); - it('... should have an h6, an h3 and a responsibility div in div.awg-edition-complex', () => { + it('... should have an h6 (breadcrumb), a JumbotronComponent (stubbed) and a responsibility div in div.awg-edition-complex', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-complex', 1, 1); - getAndExpectDebugElementByCss(divDes[0], 'h6', 1, 1); - getAndExpectDebugElementByCss(divDes[0], 'h3.awg-edition-info-header', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'h6.awg-edition-info-breadcrumb', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionJumbotronStubComponent, 1, 1); getAndExpectDebugElementByCss(divDes[0], 'div.awg-edition-responsibility', 1, 1); }); @@ -410,19 +406,21 @@ describe('EditionViewComponent (DONE)', () => { expectToBe(hEl.innerText, expectedBreadCrumb); }); - it('... should display edition complex title in awg-edition-info-header', () => { - const hDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-complex > h3.awg-edition-info-header', + it('... should pass down `editionViewId` and `title` to JumbotronComponent (stubbed)', () => { + // Get debug and native element of JumbotronComponent + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-complex', 1, 1); + const jumbotronDes = getAndExpectDebugElementByDirective( + divDes[0], + EditionJumbotronStubComponent, 1, 1 ); - const titleDes = getAndExpectDebugElementByCss(hDes[0], '.awg-edition-info-header-title', 1, 1); - const titleEl = titleDes[0].nativeElement; - - const expectedHeaderTitle = expectedSelectedEditionComplex.complexId.full; + const jumbotronCmp = jumbotronDes[0].injector.get( + EditionJumbotronStubComponent + ) as EditionJumbotronStubComponent; - expectToBe(titleEl.innerHTML, expectedHeaderTitle); + expectToBe(jumbotronCmp.jumbotronId, expectedId); + expectToBe(jumbotronCmp.jumbotronTitle, expectedSelectedEditionComplex.complexId.full); }); it('... should have one paragraph with editor and version in responsibility div', () => { diff --git a/src/app/views/edition-view/models/edition-complex.model.ts b/src/app/views/edition-view/models/edition-complex.model.ts index a14e9cca75..ab43d860d5 100644 --- a/src/app/views/edition-view/models/edition-complex.model.ts +++ b/src/app/views/edition-view/models/edition-complex.model.ts @@ -6,14 +6,14 @@ import { import { EditionRouteConstant } from './edition-route-constant.model'; /** - * The EditionComplexJsonInput interface. + * The EditionComplexJsonData interface. * * It is used in the context of the edition view - * to describe the structure of a JSON input for an edition complex. + * to describe the structure of a JSON data for an edition complex. */ -export interface EditionComplexJsonInput { +export interface EditionComplexJsonData { /** - * The edition complex input. + * The edition complex data. */ [key: string]: { titleStatement: { title: string; catalogueType: string; catalogueNumber: string }; @@ -23,16 +23,16 @@ export interface EditionComplexJsonInput { } /** - * The EditionComplexesJsonInput interface. + * The EditionComplexesJsonData interface. * * It is used in the context of the edition view - * to describe the structure of a JSON input for edition complexes. + * to describe the structure of a JSON data for edition complexes. */ -export interface EditionComplexesJsonInput { +export interface EditionComplexesJsonData { /** - * The edition complexes input. + * The edition complexes data. */ - editionComplexes: EditionComplexJsonInput[]; + editionComplexes: EditionComplexJsonData[]; } /** diff --git a/src/app/views/edition-view/models/edition-outline.model.ts b/src/app/views/edition-view/models/edition-outline.model.ts index ece8d93734..0802481568 100644 --- a/src/app/views/edition-view/models/edition-outline.model.ts +++ b/src/app/views/edition-view/models/edition-outline.model.ts @@ -1,45 +1,87 @@ +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionRouteConstant } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; + import { EditionComplex } from './edition-complex.model'; -import { EditionRouteConstant } from './edition-route-constant.model'; /** - * The EditionOutlineSeries interface. + * The EditionOutlineSeriesJsonData interface. * * It is used in the context of the edition view - * to structure outline information of the edition series. + * to describe the structure of a JSON data for an edition outline series. */ -export interface EditionOutlineSeries { +export interface EditionOutlineSeriesJsonData { /** - * The series route of an edition series. + * The series data. */ - series: EditionRouteConstant; + series: string; /** - * The section route of an edition series. + * The sections data. */ - sections: EditionOutlineSection[]; + sections: EditionOutlineSectionsJsonData[]; } /** - * The EditionOutlineSection interface. + * The EditionOutlineSectionsJsonData interface. * * It is used in the context of the edition view - * to structure outline information of the edition sections. + * to describe the structure of a JSON data for an edition outline sections. */ -export interface EditionOutlineSection { +export interface EditionOutlineSectionsJsonData { /** - * The section route of an edition section. + * The section data. */ - section: EditionRouteConstant; + section: string; /** - * The edition complexes of an edition section. + * The complexTypes data */ - complexes: EditionOutlineComplexTypes; + complexTypes: { + opus: [{ complex: string; disabled: boolean }]; + mnr: [{ complex: string; disabled: boolean }]; + }; /** - * Boolean flag if an edition section is disabled. + * Boolean flag if a section is disabled. + */ + disabled: boolean; +} + +/** + * The EditionOutlineJsonData interface. + * + * It is used in the context of the edition view + * to describe the structure of a JSON data for an edition outline. + */ +export interface EditionOutlineJsonData { + /** + * The edition outline data. + */ + editionOutline: EditionOutlineSeriesJsonData[]; +} + +/** + * The EditionOutlineComplex interface. + * + * It is used in the context of the edition view + * to structure outline information of an edition complex. + */ +export interface EditionOutlineComplexItem { + /** + * The edition complex. + */ + complex: EditionComplex; + + /** + * Boolean flag if an edition complex is disabled. */ disabled: boolean; + + /** + * The sub-complexes of an edition complex. + */ + subComplexes?: EditionOutlineComplexItem[]; } /** @@ -52,28 +94,144 @@ export interface EditionOutlineComplexTypes { /** * The opus parts of an edition complex. */ - opus: EditionOutlineComplex[]; + opus: EditionOutlineComplexItem[]; /** * The mnr parts of an edition complex. */ - mnr: EditionOutlineComplex[]; + mnr: EditionOutlineComplexItem[]; } /** - * The EditionOutlineComplex interface. + * The EditionOutlineSection interface. * * It is used in the context of the edition view - * to structure outline information of an edition complex. + * to structure outline information of the edition sections. */ -export interface EditionOutlineComplex { +export interface EditionOutlineSection { /** - * The edition complex. + * The section route of an edition section. */ - complex: EditionComplex; + section: EditionRouteConstant; /** - * Boolean flag if an edition complex is disabled. + * The edition complex types of an edition section. + */ + complexTypes: EditionOutlineComplexTypes; + + /** + * Boolean flag if an edition section is disabled. */ disabled: boolean; } + +/** + * The EditionOutlineSeries interface. + * + * It is used in the context of the edition view + * to structure outline information of the edition series. + */ +export interface EditionOutlineSeries { + /** + * The series route of an edition series. + */ + series: EditionRouteConstant; + + /** + * The section route of an edition series. + */ + sections: EditionOutlineSection[]; +} + +/** + * The EditionOutline interface. + * + * It is used in the context of the edition view + * to structure outline information of the edition. + */ +export class EditionOutline { + /** + * The outline of the edition. + */ + outline: EditionOutlineSeries[]; + + /** + * Constructor of the EditionOutline class. + * + * It initializes the class with an edition outline Object. + * + * @param {EditionOutlineSeriesJsonData[]} outlineData The given edition outline. + */ + constructor(outlineData: EditionOutlineSeriesJsonData[]) { + if (!outlineData) { + return; + } + + this.outline = outlineData.map(this._mapSeries); + } + + /** + * Private method: _mapSeries. + * + * It maps the series data. + * + * @param {EditionOutlineSeriesJsonData} data The series data to map. + * @param {string} data.series The given series string. + * @param {EditionOutlineSectionsJsonData[]} data.sections The given sections data. + * + * @returns {EditionOutlineSeries} The mapped series. + */ + private _mapSeries = ({ series, sections }: EditionOutlineSeriesJsonData): EditionOutlineSeries => { + const seriesConstant: EditionRouteConstant = EDITION_ROUTE_CONSTANTS['SERIES_' + series]; + return { + series: seriesConstant, + sections: sections.map(section => this._mapSection(section, series)), + }; + }; + + /** + * Private method: _mapSection. + * + * It maps the section data. + * + * @param {EditionOutlineSectionsJsonData} data The section data to map. + * @param {string} data.section The given section string. + * @param {Object} data.complexTypes The given complex types data. + * @param {boolean} data.disabled The given disabled flag. + * + * @returns {EditionOutlineSection} The mapped section. + */ + private _mapSection = ( + { section, complexTypes, disabled }: EditionOutlineSectionsJsonData, + series: string + ): EditionOutlineSection => { + const sectionConstant: EditionRouteConstant = + series === '3' && section === '5' + ? EDITION_ROUTE_CONSTANTS.SERIES_3_SECTION_5 + : EDITION_ROUTE_CONSTANTS['SECTION_' + section]; + + return { + section: sectionConstant, + complexTypes: { + opus: this._mapComplexItems(complexTypes.opus), + mnr: this._mapComplexItems(complexTypes.mnr), + }, + disabled, + }; + }; + + /** + * Private method: _mapComplexItems. + * + * It maps the complex items. + * + * @param {EditionOutlineComplexItem[]} complexItems The complex items to map. + * + * @returns {EditionOutlineComplexItem[]} The mapped complex items. + */ + private _mapComplexItems = (complexItems: { complex: string; disabled: boolean }[]): EditionOutlineComplexItem[] => + complexItems.map(({ complex, disabled }) => ({ + complex: EditionComplexesService.getEditionComplexById(complex), + disabled, + })); +} diff --git a/src/app/views/edition-view/models/folio-calculation.model.ts b/src/app/views/edition-view/models/folio-calculation.model.ts index 157b77da7c..631beb8c61 100644 --- a/src/app/views/edition-view/models/folio-calculation.model.ts +++ b/src/app/views/edition-view/models/folio-calculation.model.ts @@ -277,8 +277,20 @@ export class FolioCalculationContentSegmentVertices { const systemIndex = isStart ? section.startSystem - 1 : section.endSystem - 1; const systemLines = this.systems.SYSTEMS_LINES.SYSTEMS_ARRAYS[systemIndex]; + let offset = 0; + switch (section.relativeToSystem) { + case 'below': + offset = 20; + break; + case 'above': + offset = -20; + break; + default: + offset = 0; + } + const yValue = isStart ? systemLines.at(0).START_POINT.y : systemLines.at(-1).END_POINT.y; - const correction = this.segmentOffsetCorrection * (isStart ? -1 : 1); + const correction = this.segmentOffsetCorrection * (isStart ? -1 : 1) + offset; return round(yValue + correction, 2); } diff --git a/src/app/views/edition-view/models/folio.model.ts b/src/app/views/edition-view/models/folio.model.ts index 7b8b776f2e..5f04ba1b1e 100644 --- a/src/app/views/edition-view/models/folio.model.ts +++ b/src/app/views/edition-view/models/folio.model.ts @@ -165,4 +165,9 @@ export class FolioSection { * The folio section's optional position (number). */ position?: number; + + /** + * The folio section's optional position relative to the system (string). + */ + relativeToSystem?: string; } diff --git a/src/app/views/edition-view/models/index.ts b/src/app/views/edition-view/models/index.ts index 19988e1825..bb023019de 100644 --- a/src/app/views/edition-view/models/index.ts +++ b/src/app/views/edition-view/models/index.ts @@ -12,12 +12,18 @@ import { D3ZoomBehaviour } from './d3-zoom-behaviour.model'; import { EditionComplex, - EditionComplexesJsonInput, + EditionComplexesJsonData, EditionComplexesList, - EditionComplexJsonInput, + EditionComplexJsonData, EditionComplexTitleStatement, } from './edition-complex.model'; -import { EditionOutlineComplex, EditionOutlineSection, EditionOutlineSeries } from './edition-outline.model'; +import { + EditionOutline, + EditionOutlineComplexItem, + EditionOutlineJsonData, + EditionOutlineSection, + EditionOutlineSeries, +} from './edition-outline.model'; import { EditionRouteConstant } from './edition-route-constant.model'; import { EditionRowTables, EditionRowTablesList } from './edition-row-tables.model'; import { EditionSvgLinkBox } from './edition-svg-link-box.model'; @@ -53,11 +59,13 @@ export { D3Selection, D3ZoomBehaviour, EditionComplex, - EditionComplexesJsonInput, + EditionComplexesJsonData, EditionComplexesList, - EditionComplexJsonInput, + EditionComplexJsonData, EditionComplexTitleStatement, - EditionOutlineComplex, + EditionOutline, + EditionOutlineComplexItem, + EditionOutlineJsonData, EditionOutlineSection, EditionOutlineSeries, EditionRouteConstant, diff --git a/src/app/core/services/edition-complexes/edition-complexes.service.spec.ts b/src/app/views/edition-view/services/edition-complexes.service.spec.ts similarity index 98% rename from src/app/core/services/edition-complexes/edition-complexes.service.spec.ts rename to src/app/views/edition-view/services/edition-complexes.service.spec.ts index 6da4462d90..96997b0664 100644 --- a/src/app/core/services/edition-complexes/edition-complexes.service.spec.ts +++ b/src/app/views/edition-view/services/edition-complexes.service.spec.ts @@ -10,7 +10,7 @@ import { EditionComplex } from '@awg-views/edition-view/models'; import { EditionComplexesService } from './edition-complexes.service'; -describe('EditionComplexesService', () => { +describe('EditionComplexesService (DONE)', () => { let initializeEditionComplexesListSpy: Spy; let setEditionComplexesListSpy: Spy; let fetchEditionComplexesDataSpy: Spy; @@ -54,7 +54,7 @@ describe('EditionComplexesService', () => { expectSpyCall(initializeEditionComplexesListSpy, 1); expectSpyCall(fetchEditionComplexesDataSpy, 1); - expectSpyCall(setEditionComplexesListSpy, 1, editionComplexesList); + expectSpyCall(setEditionComplexesListSpy, 1, [editionComplexesList]); }); it('... should initialize the edition complexes list', () => { diff --git a/src/app/core/services/edition-complexes/edition-complexes.service.ts b/src/app/views/edition-view/services/edition-complexes.service.ts similarity index 97% rename from src/app/core/services/edition-complexes/edition-complexes.service.ts rename to src/app/views/edition-view/services/edition-complexes.service.ts index e5a9d79ec4..c2753e1090 100644 --- a/src/app/core/services/edition-complexes/edition-complexes.service.ts +++ b/src/app/views/edition-view/services/edition-complexes.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; -import { EditionComplex, EditionComplexesList, EditionComplexJsonInput } from '@awg-views/edition-view/models'; +import { EditionComplex, EditionComplexesList, EditionComplexJsonData } from '@awg-views/edition-view/models'; import * as jsonEditionComplexes from 'assets/data/edition/edition-complexes.json'; @@ -84,7 +84,7 @@ export class EditionComplexesService { const complexesData = (jsonEditionComplexes as any).default; const editionComplexesList: EditionComplexesList = {}; - complexesData.editionComplexes.forEach((complex: EditionComplexJsonInput) => { + complexesData.editionComplexes.forEach((complex: EditionComplexJsonData) => { Object.entries(complex).forEach(([complexKey, complexValue]) => { editionComplexesList[complexKey] = new EditionComplex( complexValue.titleStatement, diff --git a/src/app/views/edition-view/services/edition-data.service.spec.ts b/src/app/views/edition-view/services/edition-data.service.spec.ts index adfe0f2991..ae93ba06e8 100644 --- a/src/app/views/edition-view/services/edition-data.service.spec.ts +++ b/src/app/views/edition-view/services/edition-data.service.spec.ts @@ -18,7 +18,6 @@ import { expectSpyCall, expectToBe, expectToEqual } from '@testing/expect-helper import { mockEditionData } from '@testing/mock-data'; import { mockConsole } from '@testing/mock-helper'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ASSETS_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { @@ -42,6 +41,7 @@ import { Textcritics, TextcriticsList, } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { EditionDataService } from './edition-data.service'; diff --git a/src/app/views/edition-view/services/edition-outline.service.spec.ts b/src/app/views/edition-view/services/edition-outline.service.spec.ts new file mode 100644 index 0000000000..4f0f4999a4 --- /dev/null +++ b/src/app/views/edition-view/services/edition-outline.service.spec.ts @@ -0,0 +1,238 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { TestBed } from '@angular/core/testing'; + +import Spy = jasmine.Spy; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectSpyCall, expectToEqual } from '@testing/expect-helper'; + +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionOutline, EditionOutlineSeries } from '@awg-views/edition-view/models'; + +import { EditionOutlineService } from './edition-outline.service'; + +describe('EditionOutlineService (DONE)', () => { + let initializeEditionOutlineSpy: Spy; + let setEditionOutlineSpy: Spy; + let fetchEditionOutlineDataSpy: Spy; + + beforeAll(() => { + EditionOutlineService.initializeEditionOutline(); + }); + + beforeEach(() => { + TestBed.configureTestingModule({}); + + // Spies for service methods + initializeEditionOutlineSpy = spyOn(EditionOutlineService, 'initializeEditionOutline').and.callThrough(); + setEditionOutlineSpy = spyOn(EditionOutlineService, 'setEditionOutline').and.callThrough(); + fetchEditionOutlineDataSpy = spyOn(EditionOutlineService as any, '_fetchEditionOutlineData').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('... should create', () => { + expect(EditionOutlineService).toBeTruthy(); + }); + + it('... should have `_editionOutline`', () => { + expect((EditionOutlineService as any)._editionOutline).toBeTruthy(); + }); + + describe('#initializeEditionOutline()', () => { + it('... should have a method `initializeEditionOutline`', () => { + expect(EditionOutlineService.initializeEditionOutline).toBeDefined(); + }); + + it('... should trigger `_fetchEditionOutlineData` and set the edition complexes list', () => { + EditionOutlineService.initializeEditionOutline(); + + const editionOutline = EditionOutlineService.getEditionOutline(); + + expectSpyCall(initializeEditionOutlineSpy, 1); + expectSpyCall(fetchEditionOutlineDataSpy, 1); + expectSpyCall(setEditionOutlineSpy, 1, [editionOutline]); + }); + + it('... should initialize the edition outline', () => { + EditionOutlineService.initializeEditionOutline(); + + const editionOutline = EditionOutlineService.getEditionOutline(); + + expect(editionOutline).toBeDefined(); + expect(editionOutline).not.toBe([]); + + // Test for samples + expect(editionOutline.length).toBeGreaterThan(0); + expectToEqual(editionOutline[0].series, EDITION_ROUTE_CONSTANTS.SERIES_1); + expectToEqual(editionOutline[1].series, EDITION_ROUTE_CONSTANTS.SERIES_2); + expectToEqual(editionOutline[2].series, EDITION_ROUTE_CONSTANTS.SERIES_3); + }); + }); + + describe('#getEditionOutline()', () => { + it('... should have a method `getEditionOutline`', () => { + expect(EditionOutlineService.getEditionOutline).toBeDefined(); + }); + + it('... should return the edition outline', () => { + const editionOutline = EditionOutlineService.getEditionOutline(); + + expect(editionOutline).toBeDefined(); + expect(editionOutline).not.toBe([]); + + // Test for samples + expect(editionOutline.length).toBeGreaterThan(0); + expectToEqual(editionOutline[0].series, EDITION_ROUTE_CONSTANTS.SERIES_1); + expectToEqual(editionOutline[1].series, EDITION_ROUTE_CONSTANTS.SERIES_2); + expectToEqual(editionOutline[2].series, EDITION_ROUTE_CONSTANTS.SERIES_3); + }); + }); + + describe('#setEditionOutline()', () => { + it('... should have a method `setEditionOutline`', () => { + expect(EditionOutlineService.setEditionOutline).toBeDefined(); + }); + + it('... should set the edition outline', () => { + const expectedOutline = new EditionOutline([ + { + series: '2', + sections: [ + { + section: '5', + complexTypes: { + opus: [ + { + complex: '', + disabled: true, + }, + ], + mnr: [{ complex: '', disabled: true }], + }, + disabled: true, + }, + { + section: '4', + complexTypes: { + opus: [ + { + complex: '', + disabled: true, + }, + ], + mnr: [{ complex: '', disabled: true }], + }, + disabled: false, + }, + ], + }, + ]); + + EditionOutlineService.setEditionOutline(expectedOutline.outline); + + const editionOutline = EditionOutlineService.getEditionOutline(); + + expectToEqual(editionOutline, expectedOutline.outline); + }); + + it('... should do nothing if the edition outline is null', () => { + const expectedOutline = new EditionOutline(null); + + EditionOutlineService.setEditionOutline(expectedOutline.outline); + + const editionOutline = EditionOutlineService.getEditionOutline(); + + expect(editionOutline).toBeUndefined(); + }); + }); + + describe('#getEditionSeriesById()', () => { + it('... should have a method `getEditionSeriesById`', () => { + expect(EditionOutlineService.getEditionSeriesById).toBeDefined(); + }); + + it('... should return editionSeries with given id', () => { + const expectedOutline: EditionOutlineSeries[] = [ + { + series: EDITION_ROUTE_CONSTANTS.SERIES_2, + sections: [ + { + section: EDITION_ROUTE_CONSTANTS.SECTION_5, + complexTypes: { opus: [], mnr: [] }, + disabled: true, + }, + { + section: EDITION_ROUTE_CONSTANTS.SECTION_4, + complexTypes: { opus: [], mnr: [] }, + disabled: false, + }, + ], + }, + ]; + EditionOutlineService.setEditionOutline(expectedOutline); + + const series = EditionOutlineService.getEditionSeriesById(EDITION_ROUTE_CONSTANTS.SERIES_2.route); + + expectToEqual(series, expectedOutline[0]); + }); + }); + + describe('#getEditionSectionById()', () => { + it('... should have a method `getEditionSectionById`', () => { + expect(EditionOutlineService.getEditionSectionById).toBeDefined(); + }); + + it('... should return editionSection with given id', () => { + const expectedOutline: EditionOutlineSeries[] = [ + { + series: EDITION_ROUTE_CONSTANTS.SERIES_2, + sections: [ + { + section: EDITION_ROUTE_CONSTANTS.SECTION_5, + complexTypes: { opus: [], mnr: [] }, + disabled: true, + }, + { + section: EDITION_ROUTE_CONSTANTS.SECTION_4, + complexTypes: { opus: [], mnr: [] }, + disabled: false, + }, + ], + }, + ]; + expectedOutline[0].sections.forEach(section => { + const expectedEditionSection = section; + + const getSection = EditionOutlineService.getEditionSectionById( + EDITION_ROUTE_CONSTANTS.SERIES_2.route, + section.section.route + ); + + expectToEqual(getSection, expectedEditionSection); + }); + }); + }); + + describe('#_fetchEditionOutlineData()', () => { + it('... should have a method `_fetchEditionOutlineData`', () => { + expect((EditionOutlineService as any)._fetchEditionOutlineData).toBeDefined(); + }); + + it('... should fetch the edition outline data', () => { + const editionOutline = (EditionOutlineService as any)._fetchEditionOutlineData(); + + expect(editionOutline).toBeDefined(); + expect(editionOutline).not.toBe({}); + expect(Object.keys(editionOutline).length).toBeGreaterThan(0); + expect(editionOutline.outline).toBeDefined(); + + // Test for samples + expectToEqual(editionOutline.outline[0].series, EDITION_ROUTE_CONSTANTS.SERIES_1); + expectToEqual(editionOutline.outline[1].series, EDITION_ROUTE_CONSTANTS.SERIES_2); + expectToEqual(editionOutline.outline[2].series, EDITION_ROUTE_CONSTANTS.SERIES_3); + }); + }); +}); diff --git a/src/app/views/edition-view/services/edition-outline.service.ts b/src/app/views/edition-view/services/edition-outline.service.ts new file mode 100644 index 0000000000..85a045d6d9 --- /dev/null +++ b/src/app/views/edition-view/services/edition-outline.service.ts @@ -0,0 +1,108 @@ +import { Injectable } from '@angular/core'; + +import { + EditionOutline, + EditionOutlineJsonData, + EditionOutlineSection, + EditionOutlineSeries, +} from '@awg-views/edition-view/models'; + +import * as jsonEditionOutline from 'assets/data/edition/edition-outline.json'; + +/** + * The EditionComplexes service. + * + * It handles the provision of the edition complexes. + * + * Provided in: `root`. + */ +@Injectable({ + providedIn: 'root', +}) +export class EditionOutlineService { + /** + * Static variable: _EditionOutline. + * + * It keeps the edition outline. + */ + private static _editionOutline: EditionOutlineSeries[] = []; + + /** + * Static method: initEditionOutline. + * + * It initializes the edition outline. + * + * @returns {void} Initializes the edition outline. + */ + static initializeEditionOutline(): void { + const outline = EditionOutlineService._fetchEditionOutlineData(); + EditionOutlineService.setEditionOutline(outline.outline); + } + + /** + * Static method: getEditionOutline. + * + * It provides the edition outline with its series. + * + * @returns {EditionOutline} The edition outline. + */ + static getEditionOutline(): EditionOutlineSeries[] { + return EditionOutlineService._editionOutline; + } + + /** + * Static method: getEditionSeriesById. + * + * It finds a series of the edition by a given id. + * + * @param {string} seriesId The given series id. + * + * @returns {EditionOutlineSeries} The found edition series. + */ + static getEditionSeriesById(seriesId: string): EditionOutlineSeries { + return EditionOutlineService.getEditionOutline().find(series => series.series.route === seriesId); + } + + /** + * Static method: getEditionSectionById. + * + * It finds a section of an edition series by a given id. + * + * @param {string} seriesId The given series id. + * @param {string} sectionId The given series id. + * + * @returns {EditionOutlineSection} The found edition section. + */ + static getEditionSectionById(seriesId: string, sectionId: string): EditionOutlineSection { + const series = EditionOutlineService.getEditionSeriesById(seriesId); + return series.sections.find(section => section.section.route === sectionId); + } + + /** + * Static method: setEditionOutline. + * + * It sets the edition outline. + * + * @param {EditionOutline} outline The given edition outline. + * + * @returns {void} Sets the edition outline. + */ + static setEditionOutline(outline: EditionOutlineSeries[]): void { + EditionOutlineService._editionOutline = outline; + } + + /** + * Public method: _fetchEditionOutlineData. + * + * It fetches the data from a JSON file + * for the outline of the edition view. + * + * @returns {EditionOutline} The EditionOutline data. + */ + private static _fetchEditionOutlineData(): EditionOutline { + // Load the JSON data directly from the file + const outlineData: EditionOutlineJsonData = (jsonEditionOutline as any).default; + + return new EditionOutline(outlineData['editionOutline']); + } +} diff --git a/src/app/views/edition-view/services/edition.service.spec.ts b/src/app/views/edition-view/services/edition.service.spec.ts index a9d7f56fb3..b0b3ff37d3 100644 --- a/src/app/views/edition-view/services/edition.service.spec.ts +++ b/src/app/views/edition-view/services/edition.service.spec.ts @@ -4,10 +4,9 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToBe, expectToEqual } from '@testing/expect-helper'; -import { EditionComplexesService } from '@awg-core/services'; -import { EDITION_OUTLINE_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; import { EditionService } from './edition.service'; @@ -24,6 +23,7 @@ describe('EditionService (DONE)', () => { beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); }); beforeEach(() => { @@ -35,10 +35,10 @@ describe('EditionService (DONE)', () => { // Test data (default) expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); - expectedEditionOutline = EDITION_OUTLINE_DATA; + expectedEditionOutline = EditionOutlineService.getEditionOutline(); expectedEditionSeriesRoute = EDITION_ROUTE_CONSTANTS.EDITION.route + EDITION_ROUTE_CONSTANTS.SERIES.route; - expectedEditionSeries = EDITION_OUTLINE_DATA[0]; - expectedEditionSection = EDITION_OUTLINE_DATA[0].sections[0]; + expectedEditionSeries = expectedEditionOutline[0]; + expectedEditionSection = expectedEditionOutline[0].sections[0]; expectedIsPrefaceView = true; expectedIsRowTableView = true; }); @@ -179,31 +179,7 @@ describe('EditionService (DONE)', () => { }); }); - describe('#getEditionOutline()', () => { - it('... should have a method `getEditionOutline`', () => { - expect(editionService.getEditionOutline).toBeDefined(); - }); - - it('... should return editionOutline', () => { - const outline = editionService.getEditionOutline(); - - expectToEqual(outline, expectedEditionOutline); - }); - }); - describe('EditionSeries', () => { - describe('#getEditionSeriesById()', () => { - it('... should have a method `getEditionSeriesById`', () => { - expect(editionService.getEditionSeriesById).toBeDefined(); - }); - - it('... should return editionSeries with given id', () => { - const series = editionService.getEditionSeriesById(EDITION_ROUTE_CONSTANTS.SERIES_1.route); - - expectToEqual(series, expectedEditionSeries); - }); - }); - describe('#getSelectedEditionSeries()', () => { it('... should have a method `getSelectedEditionSeries`', () => { expect(editionService.getSelectedEditionSeries).toBeDefined(); @@ -231,7 +207,7 @@ describe('EditionService (DONE)', () => { editionService.updateSelectedEditionSeries(expectedEditionSeries); // Update editionSeries - expectedEditionSeries = EDITION_OUTLINE_DATA[1]; + expectedEditionSeries = expectedEditionOutline[1]; editionService.updateSelectedEditionSeries(expectedEditionSeries); })); }); @@ -252,7 +228,7 @@ describe('EditionService (DONE)', () => { editionService.updateSelectedEditionSeries(expectedEditionSeries); // Update editionSeries - expectedEditionSeries = EDITION_OUTLINE_DATA[1]; + expectedEditionSeries = expectedEditionOutline[1]; editionService.updateSelectedEditionSeries(expectedEditionSeries); })); }); @@ -292,25 +268,6 @@ describe('EditionService (DONE)', () => { }); describe('EditionSection', () => { - describe('#getEditionSectionById()', () => { - it('... should have a method `getEditionSectionById`', () => { - expect(editionService.getEditionSectionById).toBeDefined(); - }); - - it('... should return editionSection with given id', () => { - expectedEditionOutline[0].sections.forEach((section, index) => { - expectedEditionSection = section; - - const getSection = editionService.getEditionSectionById( - EDITION_ROUTE_CONSTANTS.SERIES_1.route, - EDITION_ROUTE_CONSTANTS[`SECTION_${index + 1}`].route - ); - - expectToEqual(getSection, expectedEditionSection); - }); - }); - }); - describe('#getSelectedEditionSection()', () => { it('... should have a method `getSelectedEditionSection`', () => { expect(editionService.getSelectedEditionSection).toBeDefined(); @@ -338,7 +295,7 @@ describe('EditionService (DONE)', () => { editionService.updateSelectedEditionSection(expectedEditionSection); // Update editionSection - expectedEditionSection = EDITION_OUTLINE_DATA[0].sections[4]; + expectedEditionSection = expectedEditionOutline[0].sections[4]; editionService.updateSelectedEditionSection(expectedEditionSection); })); }); @@ -359,7 +316,7 @@ describe('EditionService (DONE)', () => { editionService.updateSelectedEditionSection(expectedEditionSection); // Update editionSection - expectedEditionSection = EDITION_OUTLINE_DATA[0].sections[4]; + expectedEditionSection = expectedEditionOutline[0].sections[4]; editionService.updateSelectedEditionSection(expectedEditionSection); })); }); diff --git a/src/app/views/edition-view/services/edition.service.ts b/src/app/views/edition-view/services/edition.service.ts index 1278daffdc..5870d11ec2 100644 --- a/src/app/views/edition-view/services/edition.service.ts +++ b/src/app/views/edition-view/services/edition.service.ts @@ -2,7 +2,6 @@ import { Injectable } from '@angular/core'; import { Observable, ReplaySubject } from 'rxjs'; -import { EDITION_OUTLINE_DATA } from '@awg-views/edition-view/data'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; /** @@ -108,45 +107,6 @@ export class EditionService { this._selectedEditionComplexSubject.next(null); } - /** - * Public method: getEditionOutline. - * - * It provides the outline of the edition with its series. - * - * @returns {EditionOutlineSeries[]} The edition outline. - */ - getEditionOutline(): EditionOutlineSeries[] { - return EDITION_OUTLINE_DATA; - } - - /** - * Public method: getEditionSeriesById. - * - * It finds a series of the edition by a given id. - * - * @param {string} seriesId The given series id. - * - * @returns {EditionOutlineSeries} The found edition series. - */ - getEditionSeriesById(seriesId: string): EditionOutlineSeries { - return EDITION_OUTLINE_DATA.find(series => series.series.route === seriesId); - } - - /** - * Public method: getEditionSectionById. - * - * It finds a section of an edition series by a given id. - * - * @param {string} seriesId The given series id. - * @param {string} sectionId The given series id. - * - * @returns {EditionOutlineSection} The found edition section. - */ - getEditionSectionById(seriesId: string, sectionId: string): EditionOutlineSection { - const series = this.getEditionSeriesById(seriesId); - return series.sections.find(section => section.section.route === sectionId); - } - /** * Public method: getSelectedEditionSeries. * diff --git a/src/app/views/edition-view/services/index.ts b/src/app/views/edition-view/services/index.ts index 5671fd14f8..e78cc0839b 100644 --- a/src/app/views/edition-view/services/index.ts +++ b/src/app/views/edition-view/services/index.ts @@ -7,9 +7,18 @@ * */ +import { EditionComplexesService } from './edition-complexes.service'; import { EditionDataService } from './edition-data.service'; +import { EditionOutlineService } from './edition-outline.service'; import { EditionSheetsService } from './edition-sheets.service'; import { EditionSvgDrawingService } from './edition-svg-drawing.service'; import { EditionService } from './edition.service'; -export { EditionDataService, EditionService, EditionSheetsService, EditionSvgDrawingService }; +export { + EditionComplexesService, + EditionDataService, + EditionOutlineService, + EditionService, + EditionSheetsService, + EditionSvgDrawingService, +}; diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index 510e38bb5d..d0defcea83 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -19,9 +19,9 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { METADATA } from '@awg-core/core-data'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; -import { EditionComplexesService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; import { HomeViewComponent } from './home-view.component'; diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index fec33c2f50..24f5da10b1 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -2,9 +2,10 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; -import { CoreService, EditionComplexesService } from '@awg-core/services'; +import { CoreService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; /** * The HomeView component. diff --git a/src/assets/data/edition/edition-complexes.json b/src/assets/data/edition/edition-complexes.json index 38e30f78c9..e40c59e4c2 100644 --- a/src/assets/data/edition/edition-complexes.json +++ b/src/assets/data/edition/edition-complexes.json @@ -110,6 +110,28 @@ } } }, + { + "M36": { + "titleStatement": { + "title": "Studienkomposition für Klavier", + "catalogueType": "MNR", + "catalogueNumber": "36" + }, + "respStatement": { + "editors": [ + { + "name": "Michael Matter", + "homepage": "https://www.anton-webern.ch/index.php?id=3" + } + ], + "lastModified": "14. August 2024" + }, + "pubStatement": { + "series": "2", + "section": "2a" + } + } + }, { "M37": { "titleStatement": { @@ -132,6 +154,28 @@ } } }, + { + "M38": { + "titleStatement": { + "title": "Studienkomposition für Klavier", + "catalogueType": "MNR", + "catalogueNumber": "38" + }, + "respStatement": { + "editors": [ + { + "name": "Michael Matter", + "homepage": "https://www.anton-webern.ch/index.php?id=3" + } + ], + "lastModified": "15. August 2024" + }, + "pubStatement": { + "series": "2", + "section": "2a" + } + } + }, { "M133": { "titleStatement": { diff --git a/src/assets/data/edition/edition-outline.json b/src/assets/data/edition/edition-outline.json new file mode 100644 index 0000000000..189cd012f4 --- /dev/null +++ b/src/assets/data/edition/edition-outline.json @@ -0,0 +1,139 @@ +{ + "editionOutline": [ + { + "series": "1", + "sections": [ + { + "section": "1", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "2", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "3", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "4", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "5", + "complexTypes": { + "opus": [ + { "complex": "OP3", "disabled": false }, + { "complex": "OP4", "disabled": false }, + { "complex": "OP12", "disabled": false }, + { "complex": "OP23", "disabled": false }, + { "complex": "OP25", "disabled": false } + ], + "mnr": [ + { "complex": "M133", "disabled": true }, + { "complex": "M134", "disabled": true }, + { "complex": "M135", "disabled": true }, + { "complex": "M136", "disabled": true }, + { "complex": "M137", "disabled": true }, + { "complex": "M138", "disabled": true }, + { "complex": "M139", "disabled": true }, + { "complex": "M140", "disabled": true }, + { "complex": "M141", "disabled": true }, + { "complex": "M142", "disabled": true }, + { "complex": "M143", "disabled": false }, + { "complex": "M144", "disabled": false }, + { "complex": "M145", "disabled": false }, + { "complex": "M146", "disabled": false }, + { "complex": "M213", "disabled": true }, + { "complex": "M212", "disabled": true }, + { "complex": "M216", "disabled": true }, + { "complex": "M217", "disabled": true } + ] + }, + "disabled": false + } + ] + }, + { + "series": "2", + "sections": [ + { + "section": "1", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "2A", + "complexTypes": { + "opus": [], + "mnr": [ + { "complex": "M22", "disabled": false }, + { "complex": "M30", "disabled": false }, + { "complex": "M31", "disabled": false }, + { "complex": "M34", "disabled": false }, + { "complex": "M35_42", "disabled": false }, + { "complex": "M36", "disabled": false }, + { "complex": "M37", "disabled": false }, + { "complex": "M38", "disabled": false } + ] + }, + "disabled": false + }, + { + "section": "2B", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "3", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "4", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "5", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + } + ] + }, + { + "series": "3", + "sections": [ + { + "section": "1", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "2", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "3", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "4", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + }, + { + "section": "5", + "complexTypes": { "opus": [], "mnr": [] }, + "disabled": true + } + ] + } + ] +} diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index fe661f6b18..c2ca182433 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -2047,6 +2047,7 @@ ], "comments": [ { +<<<<<<< HEAD "svgGroupId": "TODO", "measure": "1", "system": "Klav.", @@ -2552,6 +2553,445 @@ } ], "linkBoxes": [] +======= + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "1/8–2/4", + "comment": "Crescendogabel zwischen den Systemen gestrichen. Crescendogabel 1–2/8, Decrescendogabel 2/8 bis Taktende über dem System hinzugefügt." + }, + { + "measure": "1
    bis 2", + "system": "Klav. o.", + "position": "1/8
    4/8", + "comment": "Legatobogen geändert zu zwei Legatobögen von T. 1 1/8 bis T. 2 1/8 und T. 2 2.–3. Note." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "zögernd geändert zu rit. - - - (mit Geltungsstrichelung bis Taktende).
    {{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "Achtelfähnchen bei 2/8 geändert zu Balken." + }, + { + "measure": "3", + "system": "Ges.", + "position": "6/8", + "comment": "Tenutostrich hinzugefügt." + }, + { + "measure": "3
    bis 5", + "system": "Ges.", + "position": "6/8
    3/8", + "comment": "Zuerst: Bogen über den Noten hinzugefügt.
    Dann: Bogen wieder gestrichen.
    Siehe Korrektur in T. 4 3/8 bis T. 5 3/8." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel gestrichen." + }, + { + "measure": "4", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "Legatobogen und Decrescendogabel hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "3–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "4
    bis 5", + "system": "Ges.", + "position": "3/8
    3/8", + "comment": "Bogen hinzugefügt.
    Siehe Korrektur in T. 3 6/8 bis T. 5 3/8." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "letzte Pause", + "comment": "Viertelpause gestrichen." + }, + { + "measure": "4", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3–4/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "5
    bis 7", + "system": "Ges.", + "position": "4/8
    1/4", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "2.–4. Note", + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken über den Noten.
    Dann: Balken bei 2.–4. Note unter den Noten hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "2–3/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "7", + "system": "Klav.", + "position": "2–3/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "7", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "7
    bis 8", + "system": "Ges.", + "position": "2. Note
    1. Note", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "7
    bis 8", + "system": "Ges.", + "position": "3. Note
    nach 1/4", + "comment": "Ende der Crescendogabel T. 7 3. Note verlängert zu T. 8 nach 1/4." + }, + { + "measure": "7
    bis 8", + "system": "Ges.", + "position": "3. Note
    3/8", + "comment": "dis fis e unter den Noten es2–ges2–fes2." + }, + { + "measure": "8", + "system": "Klav. o. u.", + "position": "1.–2. Note", + "comment": "Stacctopunkte überschrieben zu Tenutostrichen." + }, + { + "measure": "8
    bis 9", + "system": "Ges.", + "position": "3/8
    2. Note", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "8
    bis 9", + "system": "Ges.", + "position": "4/8
    2. Note", + "comment": "Ende der Crescendogabel T. 8 4/8 verlängert zu T. 9 2. Note." + }, + { + "measure": "9", + "system": "Klav.", + "position": "1/4", + "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "measure": "9", + "system": "Ges.", + "position": "", + "comment": "Drei Vierteltriolen geändert zu triolischer Viertel- und Achtelnote sowie triolischer Achtelpause und Viertelnote." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "9
    bis 11", + "system": "Ges.", + "position": "3. Note
    1/4", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "9
    bis 10", + "system": "Klav. u.", + "position": "4/8
    1/4", + "comment": "Legatobogen gestrichen." + }, + { + "measure": "9
    bis 11", + "system": "Klav. u.", + "position": "4/8
    1/4", + "comment": "Legatobogen hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "1., 2. Note", + "comment": "Tenutostriche gestrichen." + }, + { + "measure": "10
    bis 11", + "system": "Klav. o.", + "position": "1. Note
    2. Note", + "comment": "Legatobogen hinzugefügt. Siehe Korrektur T. 10 2. Note bis T. 11 2. Note.
    Crescendogabel T. 10 1. Note bis nach 2. Note und Decrescendogabel T. 11 1.–2. Note geändert zu Decrescendogabel T. 10 1. Note bis T. 11 2. Note." + }, + { + "measure": "10", + "system": "Ges.", + "position": "2–4/8", + "comment": "Achtelfähnchen bei 3–4/8 geändert zu Balken." + }, + { + "measure": "10
    bis 11", + "system": "Klav. o.", + "position": "2. Note
    2. Note", + "comment": "Legatobogen gestrichen. Siehe Korrektur T. 10 1. Note bis T. 11 2. Note." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "2/4", + "comment": "Tenutostrich gestrichen." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "molto (scil: „molto rit.“) gestrichen." + }, + { + "measure": "12/13", + "system": "", + "position": "Taktstrich", + "comment": "Fermaten über Ges. und Klav. o. hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1/8", + "comment": "Fermate gestrichen." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "", + "comment": "Fermate gestrichen." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "1/4", + "comment": "Fermate gestrichen." + }, + { + "measure": "13
    bis 14", + "system": "Ges.", + "position": "2/8
    2. Note?", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "3/4", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "measure": "14", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "14", + "system": "Klav. (u.)", + "position": "1/8", + "comment": "ohne Pedal gestrichen." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "2. Note", + "comment": "Decrescendogabel gestrichen." + }, + { + "measure": "14
    bis 15", + "system": "Ges.", + "position": "3. Note
    2/8", + "comment": "Anfang des Bogens geändert von T. 14 3/8." + }, + { + "measure": "14
    bis 15", + "system": "Ges.", + "position": "3. Note
    2/8", + "comment": "Crescendogabel von T. 14 4/8 bis T. 15 1/8 geändert zu T. 14 3. Note bis T. 15 2/8." + }, + { + "measure": "15", + "system": "Ges.", + "position": "2/8–8/16", + "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken.
    Dann: Balken bei 2.–4. Note hinzugefügt." + }, + { + "measure": "15", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "measure": "15
    bis 16", + "system": "Ges.", + "position": "3. Note
    2/4", + "comment": "Crescendogabel T. 15 3.–4. Note und Decrescendogabel T. 16 1–2/4 geändert zu Decrescendogabel.
    Anfang des Bogens T. 16 1/4 geändert zu T. 15 3. Note." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('[pp]')}} zu 1. Note gestrichen und Crescendogabel geändert zu Decrescendogabel." + }, + { + "measure": "16", + "system": "Klav.", + "position": "(3/4)", + "comment": "Crescendogabel gestrichen." + }, + { + "measure": "17", + "system": "Klav.", + "position": "Taktanfang bis 1/4", + "comment": "Decrescendogabel von T. 16 hinzugefügt. (E: Akkoladenwechsel nach T. 16.)" + }, + { + "measure": "17", + "system": "Ges.", + "position": "1–4/8", + "comment": "Achtelfähnchen geändert zu Balken." + }, + { + "measure": "17
    bis 18", + "system": "Ges.", + "position": "1/8
    2. Note", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "17", + "system": "Ges.", + "position": "2–3/8", + "comment": "Crescendogabel gestrichen." + }, + { + "measure": "17", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[p]')}} hinzugefügt." + }, + { + "measure": "18", + "system": "Ges.", + "position": "Taktanfang
    bis 2. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "18", + "system": "Ges.", + "position": "", + "comment": "Drei Vierteltriolen geändert zu Viertel-, Achtelnote as1–ges1 unter einer Triolenklammer und Achtelpause, Viertelnote des1 unter einer Triolenklammer." + }, + { + "measure": "18", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "18
    bis 21", + "system": "Ges.", + "position": "3. Note", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "19", + "system": "Ges.", + "position": "", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen." + }, + { + "measure": "19", + "system": "Ges.", + "position": "", + "comment": "Ansatz zu Bogen oder Crescendogabel (bis Taktende) gestrichen." + }, + { + "measure": "20", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Crescendogabel überschrieben zu Decrescendogabel." + }, + { + "measure": "21", + "system": "Klav.", + "position": "2/4", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[p]')}}." + }, + { + "measure": "21
    bis 22", + "system": "Klav.", + "position": "2/4", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "22", + "system": "Klav.", + "position": "2/4", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + } + ] + } + ] +>>>>>>> develop } ] } @@ -2939,6 +3379,7 @@ } ], "corrections": [ +<<<<<<< HEAD { "id": "source_F_corr", "label": "Korrekturen in F", @@ -3825,6 +4266,764 @@ "linkBoxes": [] } ] +======= + { + "id": "source_F_corr", + "label": "Korrekturen in F", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Vier Lieder op. 12." + ], + "comments": [ + { + "blockHeader": "I „Der Tag ist vergangen“ M 212", + "blockComments": [ + { + "measure": "1", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Rasur über dem System. Ante correcturam: Tempobezeichnung?" + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Rasur über dem System. Ante correcturam: rit.?" + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Rasur über dem System. Ante correcturam: tempo?" + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "1. Note bis Taktende", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "measure": "5
    bis 6", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "measure": "5
    bis 7", + "system": "Ges.", + "position": "4/8
    1/4", + "comment": "Zwei Bögen von T. 5 4/8 bis T. 6 4/16 und von T. 6 3. Note bis T. 7 1/4 über dem System rasiert." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "measure": "9", + "system": "Ges.", + "position": "1. Pause, letzte Note", + "comment": "Triolenklammer hinzugefügt mit rotem Buntstift." + }, + { + "measure": "10
    bis 11", + "system": "Klav. o.", + "position": "1. Note
    2. Note", + "comment": "Legatobogen auf Rasur." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "1/4", + "comment": "Rasur unter dem System. Ende des Bogen von T. 9 letzte Note?" + }, + { + "measure": "10
    bis 11", + "system": "Klav. o.", + "position": "2. Note
    2. Note", + "comment": "Decrescendogabel, {{ref.getGlyph('[pp]')}} auf Rasur." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Staccatopunkt hinzugefügt mit Bleistift." + }, + { + "measure": "12", + "system": "Ges.", + "position": "", + "comment": "Ganze Pause hinzugefügt mit Bleistift." + }, + { + "measure": "13", + "system": "Ges., Klav.", + "position": "", + "comment": "Fermaten rasiert über Ges. 1/8 und Klav. o. Ganze Pause. Fermaten über Taktstrich vor T. 13 vermutlich danach hinzugefügt." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Decrescendogabel auf Rasur." + }, + { + "measure": "21", + "system": "Klav. o.", + "position": "", + "comment": "{{ref.getGlyph('[a]')}} zu e1 verändert zu {{ref.getGlyph('[b]')}} zu es1 und Verweislinie zu AW unter der Akkolade mit rotem Buntstift." + }, + { + "measure": "21", + "system": "Klav. u.", + "position": "", + "comment": "Rasur rechts neben g. Ante correcturam: Punktierung?" + }, + { + "measure": "21
    bis 22", + "system": "Klav. o.", + "position": "2/4", + "comment": "Bogen über dem System rasiert." + } + ] + }, + { + "blockHeader": "II Die geheimnisvolle Flöte („An einem Abend“) M 217", + "blockComments": [ + { + "measure": "5", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "2. Note", + "comment": "g2 auf Rasur.
    Ende der Decrescendogabel auf Rasur." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur.
    Rasur am Notenhals." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "Auf Rasur. Ante correcturam: Untersatz angeglichen?" + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Rasur unter der Note. Ante correcturam: Dynamik?" + }, + { + "measure": "6", + "system": "Klav.", + "position": "2/8–5/16", + "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} auf Rasur. Rasur unter dem System. Ante correcturam: Dynamik?" + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "4/8", + "comment": "Rasur unter dem System. Ante correcturam: Dynamik?" + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "Rasur rechts neben dem Notenkopf. Ante correcturam: Augmentationspunkt?" + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "2/4", + "comment": "Viertelpause hinzugefügt mit Bleistift." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "10/16", + "comment": "Rasur über dem System. Ante correcturam: Dynamik?" + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "3/16–2/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelende zuerst bis Taktende?" + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst in T. 8 4/8?" + }, + { + "measure": "12
    bis 13", + "system": "Klav.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel, {{ref.getGlyph('[ppp]')}} auf Rasur. Ante correcturam: Decrescendogabel zuerst über den Taktstrich?" + }, + { + "measure": "13", + "system": "Ges.", + "position": "", + "comment": "Gabeln auf Rasur." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "2/4", + "comment": "Notenhals auf Rasur." + }, + { + "measure": "14
    bis 16", + "system": "Klav. u.", + "position": "2/4
    2/4", + "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 16 bis 17.)" + }, + { + "measure": "16", + "system": "Ges.", + "position": "5/8 bis Taktende", + "comment": "{{ref.getGlyph('[mp]')}}, Crescendogabel auf Rasur." + }, + { + "measure": "16
    bis 17", + "system": "Klav. u.", + "position": "3/4
    2/4", + "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 14 bis 16.)" + }, + { + "measure": "17", + "system": "Ges.", + "position": "2–3/4", + "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst zu 1/4?" + }, + { + "measure": "17", + "system": "Klav. o.", + "position": "9/16", + "comment": "Rasur über dem System. Ante correcturam: Dynamik?" + }, + { + "measure": "17", + "system": "Klav. o.", + "position": "9–12/16", + "comment": "Rasur unter dem System. Ante correcturam: Gabel?" + }, + { + "measure": "17", + "system": "Klav. u.", + "position": "5–6/8", + "comment": "Rasur unter dem System. Ante correcturam: Dynamik und Gabel?" + }, + { + "measure": "18", + "system": "Ges.", + "position": "1/4", + "comment": "? mit rotem Buntstift: Text fehlt." + }, + { + "measure": "18
    bis 19", + "system": "Klav. u.", + "position": "1/16
    3/4", + "comment": "Rasur über dem System. Ante correcturam: Bogen?" + }, + { + "measure": "18", + "system": "Klav. o.", + "position": "3/4", + "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "measure": "18
    bis 19", + "system": "Klav. o.", + "position": "3/4
    3. Note", + "comment": "Decrescendogabel auf Rasur." + }, + { + "measure": "19", + "system": "Klav. o.", + "position": "3.–4. Note", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel mit schwarzer Tinte überschreiben Decrescendogabel mit Bleitstift." + }, + { + "measure": "19
    bis 22", + "system": "Ges.", + "position": "3/4
    2/4", + "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen von T. 20 1/4 bis T. 22 2/4.
    (Decrescendogabel in T. 22 auf dieser Rasur.)" + }, + { + "measure": "20", + "system": "Klav. o.", + "position": "1/16–3/8", + "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen 1/16–3/8." + }, + { + "measure": "20", + "system": "Klav. u.", + "position": "1/8", + "comment": "Staccatopunkt auf Rasur." + }, + { + "measure": "21", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Crescendogabel mit Bleistift, nachgezogen mit schwarzer Tinte." + }, + { + "measure": "21", + "system": "Ges.", + "position": "letzte Note", + "comment": "des2 auf Rasur." + }, + { + "measure": "22", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Auf Rasur. (Untersatz geändert.)
    {{ref.getGlyph('[p]')}} mit Bleistift, nachgezogen mit schwarzer Tinte." + }, + { + "measure": "22", + "system": "Klav. o.", + "position": "1.–3. Note", + "comment": "Rasur unter dem System. Ante correcturam: Decrescendogabel bereits ab 1. Note?" + }, + { + "measure": "22", + "system": "Ges.", + "position": "5/8", + "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "measure": "23
    bis 24", + "system": "Ges., Klav.", + "position": "Taktanfang", + "comment": "Auf Rasur. (Untersatzkorrektur?)" + }, + { + "measure": "25–27", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren unter dem System." + }, + { + "measure": "25
    bis 26", + "system": "Klav. o.", + "position": "3/8
    2. Note", + "comment": "Rasuren über dem System. Ante correcturam: Bogen bis T. 26 2. Note?" + }, + { + "measure": "25
    bis 26", + "system": "Klav.", + "position": "2/4
    Taktende", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." + }, + { + "measure": "27", + "system": "Klav.", + "position": "", + "comment": "{{ref.getGlyph('[ppp]')}}, Decrescendogabel auf Rasur." + }, + { + "measure": "27", + "system": "Klav. u.", + "position": "", + "comment": "Augmentationspunkt hinzugefügt mit Bleistift." + } + ] + }, + { + "blockHeader": "III „Schien mir’s, als ich sah die Sonne“ M 213", + "blockComments": [ + { + "measure": "4", + "system": "Ges.", + "position": "5–6/16", + "comment": "Sechzehntelpause auf Rasur. Ante correcturam: Achtelnote d2." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "2/16–2/8", + "comment": "Decrescendogabel auf Rasur." + }, + { + "measure": "5", + "system": "Klav.", + "position": "3–6/16", + "comment": "Rasur über den Noten." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren neben den Notenköpfen. Ante correcturam: punktierte Viertelnote." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2–3/8", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "6/16", + "comment": "[Son-]ne! geändert zu [Son-]ne,, ! rasiert, Komma mit Bleistift." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "2/8–6/16", + "comment": "Rasuren. Ante correcturam: vermutlich zwei zusammengebalkte Achtelnoten?" + }, + { + "measure": "11", + "system": "Ges.", + "position": "3/8", + "comment": ": (?) überschrieben zu ; mit Bleistift." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "tempo auf Rasur. Ante correcturam: Geltungsstrichelung von rit. in T. 11 bis Ende T. 12?" + }, + { + "measure": "14", + "system": "Klav. o.", + "position": "1., 2. Note", + "comment": "Rasuren über den Noten." + }, + { + "measure": "15
    bis 16", + "system": "Ges.", + "position": "3/8
    Taktende", + "comment": "Rasur unter den Noten. Ante correcturam: Bogen unter den Noten." + }, + { + "measure": "16", + "system": "", + "position": "", + "comment": "Geltungsstrichelung von rit. auf Rasur." + }, + { + "measure": "16", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Rasuren über der Note." + }, + { + "measure": "17–18", + "system": "", + "position": "", + "comment": "Taktartvorzeichnung vor T. 17: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 17 und Taktartvorzeichnung vor T. 18 (3/8) hinzugefügt." + }, + { + "measure": "17", + "system": "Klav. o.", + "position": "Taktanfang", + "comment": "Bassschlüssel auf Rasur. Ante correcturam: Violinschlüssel." + }, + { + "measure": "20–21", + "system": "", + "position": "", + "comment": "Taktartvorzeichnung vor T. 20: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 20 hinzugefügt und Untersatz am Anfang von T. 21 geändert auf Rasur." + }, + { + "measure": "21", + "system": "Klav. u.", + "position": "4/16", + "comment": "Rasur über dem System." + }, + { + "measure": "22", + "system": "Ges.", + "position": "2/16", + "comment": "dis2 auf Rasur." + }, + { + "measure": "23", + "system": "Klav. o.", + "position": "1–2/8", + "comment": "Crescendogabel auf Rasur." + }, + { + "measure": "23", + "system": "Ges.", + "position": "2/16–12/32", + "comment": "Gabeln auf Rasur." + }, + { + "measure": "24", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "24
    bis 25", + "system": "Ges.", + "position": "1. Note
    letzte Note", + "comment": "Rasuren über dem System. Decrescendogabel in T. 25 3.–4. Note auf Rasur." + }, + { + "measure": "25", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "25", + "system": "", + "position": "(2/8)", + "comment": "rit.- - - gestrichen mit Bleistift. (Siehe Korrektur in T. 26 Taktanfang.)" + }, + { + "measure": "25", + "system": "Klav. o.", + "position": "3/8", + "comment": "{{ref.getGlyph('[mf]')}} auf Rasur." + }, + { + "measure": "26", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
    rit. hinzugefügt mit Bleistift. (Siehe Korrektur in T. 25 [2/8].)" + }, + { + "measure": "26", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Auf Rasur." + }, + { + "measure": "26", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Gabeln mit Bleistift, radiert und mit schwarzer Tinte nachgezogen." + }, + { + "measure": "26", + "system": "Klav. o.", + "position": "3.–4. Note", + "comment": "Ende der Decrescendogabel auf Rasur." + }, + { + "measure": "26", + "system": "Klav. u.", + "position": "8/16", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "27
    bis 28", + "system": "Ges.", + "position": "2/16
    2/8", + "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 27 2/16 bis T. 28 2/8." + }, + { + "measure": "28", + "system": "Ges.", + "position": "1–2/8", + "comment": "Bogen auf Rasur." + }, + { + "measure": "28
    bis 29", + "system": "Ges.", + "position": "3. Note
    2. Note", + "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 28 3. Note bis T. 29 2. Note." + }, + { + "measure": "30", + "system": "", + "position": "Taktanfang", + "comment": "accell. auf Rasur. Ante correcturam: vermutlich durchgehende Geltungsstrichelung von rit. in T. 28 3/8 bis Ende T. 31?" + }, + { + "measure": "30", + "system": "Klav.", + "position": "1/8", + "comment": "Achtelpausen auf Rasur." + }, + { + "measure": "30", + "system": "Klav. o.", + "position": "vor 2/8", + "comment": "Violinschlüssel auf Rasur." + }, + { + "measure": "33", + "system": "Klav.", + "position": "4/32–4/16", + "comment": "Auf Rasur." + }, + { + "measure": "34", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
    Geltungsstrichelung auf Rasur." + }, + { + "measure": "34", + "system": "Klav. o.", + "position": "1/4", + "comment": "Oberstimmenschicht: Viertelpause auf Rasur." + }, + { + "measure": "34–36", + "system": "Klav. o.", + "position": "", + "comment": "Rasur zwischen den Stimmenschichten. Ante correcturam: Trillerwellenlinie über a aus Unterstimmenschicht?" + }, + { + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "sehr ruhig ([Achtel] = ca 100) auf Rasur." + }, + { + "measure": "38–40", + "system": "", + "position": "", + "comment": "rit. - - - mit Bleistift, nachgezogen mit schwarzer Tinte." + } + ] + }, + { + "blockHeader": "IV Gleich und Gleich („Ein Blumenglöckchen“) M 216", + "blockComments": [ + { + "measure": "2", + "system": "Klav. o.", + "position": "2.–4. Note", + "comment": "Decrescendogabel hinzugefügt mit Bleistift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1–2/4", + "comment": "Viertelpausen und Fermate zu 2/4 hinzugefügt mit Bleistift." + }, + { + "measure": "8
    bis 9", + "system": "Klav. u.", + "position": "1/4", + "comment": "e/g auf Rasur." + }, + { + "measure": "9
    bis 10", + "system": "Klav. o.", + "position": "2/8
    2/8", + "comment": "Notenköpfe mit Bleistift nachgezogen.
    Gabeln (über dem System) auf Rasur. Ante correcturam: Bogen über dem System. Post correcturam: Bogen unter dem System." + }, + { + "measure": "9
    bis 10", + "system": "Klav. u.", + "position": "2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "10
    bis 11", + "system": "Ges.", + "position": "2/4
    1. Note", + "comment": "Rasur über dem System. Ante correcturam: Bogen und Decrescendogabel überschneiden sich." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "1/8", + "comment": "Rasur über der Note." + }, + { + "measure": "11", + "system": "", + "position": "3/4", + "comment": "rit. vermutlich versetzt von Anfang T. 12. (Dort Geltungsstrichelung auf Rasur)." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "", + "comment": "g2/ges3/ais3, zweite Hilfslinie gestrichen und Tonnamen fis | es vor den beiden obersten Notenköpfen ergänzt mit Bleistift." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "1/4", + "comment": "Unterstimmenschicht: Viertelpause auf Rasur." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "2/8", + "comment": "{{ref.getGlyph('[f]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Rasur unter dem System." + }, + { + "measure": "16", + "system": "Ges.", + "position": "", + "comment": "Ganze Pause hinzugefügt mit Bleistift." + }, + { + "measure": "16", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." + }, + { + "measure": "16", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: Klav. u. und Klav. o. Unterstimmenschicht vermutlich Ligatur aus Viertelnote, punktierte Viertelnote C/A und e, Achtelpause. Klav. o. Oberstimmenschicht vermutlich Viertelnote cis1, Achtelpause" + }, + { + "measure": "18", + "system": "Klav. o.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit Bleistift." + }, + { + "measure": "19", + "system": "Klav. o.", + "position": "2.–3. Note", + "comment": "Oberstimmenschicht auf Rasur." + } + ] + } + ] + } + ] +>>>>>>> develop } }, { diff --git a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json index bae510c455..322ff2d879 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m34/folio-convolute.json @@ -61,7 +61,7 @@ "sections": [ { "position": 2, - "startSystem": 7, + "startSystem": 6, "endSystem": 8 } ] @@ -79,6 +79,20 @@ } ] }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1d", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 12", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 12, + "endSystem": 12 + } + ] + }, { "complexId": "m35_42", "sheetId": "M_35_42_Sk1b", @@ -92,6 +106,61 @@ "endSystem": 14 } ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1c", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 8–11", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1b", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 7", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1e", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 16", + "sectionPartition": 7, + "sections": [ + { + "position": 4, + "startSystem": 15, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1a", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] } ] }, @@ -102,7 +171,50 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3b", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 5", + "sectionPartition": 4, + "sections": [ + { + "position": 4, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3a", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 1–4", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3c", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 6–8", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] }, { "folioId": "2r", @@ -139,6 +251,34 @@ "endSystem": 18 } ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk2", + "sigle": "M 38 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk1", + "sigle": "M 38 Sk1", + "sigleAddendum": "", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18, + "relativeToSystem": "below" + } + ] } ] }, @@ -150,6 +290,32 @@ "width": 265 }, "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3d", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 9–12B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3e", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 13–17", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, { "complexId": "m37", "sheetId": "M_37_Sk3a", diff --git a/src/assets/data/edition/series/2/section/2a/m34/source-description.json b/src/assets/data/edition/series/2/section/2a/m34/source-description.json index 9d283b71fc..ce6523db89 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m34/source-description.json @@ -4,14 +4,12 @@ "id": "source_A", "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 34.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 35–38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 34.
    Enthält auch Skizzen zu Studienkompositionen für Klavier M 35/42, M 36–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2)." - ], + "desc": ["1 Bogen (Bl. 1/2)."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -152,7 +150,10 @@ }, { "item": "M 36 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", "folios": [ { @@ -164,35 +165,35 @@ { "system": "16–17", "measure": "1–6", - "linkTo": "" + "linkTo": "M_36_Sk1a" } ], [ { "system": "14c–15b", "measure": "7", - "linkTo": "" + "linkTo": "M_36_Sk1b" } ], [ { "system": "13b–14b", "measure": "8–11", - "linkTo": "" + "linkTo": "M_36_Sk1c" } ], [ { "system": "12", "measure": "12", - "linkTo": "" + "linkTo": "M_36_Sk1d" } ], [ { "system": "15a", "measure": "16", - "linkTo": "" + "linkTo": "M_36_Sk1e" } ] ] @@ -334,7 +335,10 @@ }, { "item": "M 38 Sk3", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk3a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -346,21 +350,21 @@ { "system": "15–16c", "measure": "1–4", - "linkTo": "" + "linkTo": "M_38_Sk3a" } ], [ { "system": "13b–14b", "measure": "5", - "linkTo": "" + "linkTo": "M_38_Sk3b" } ], [ { "system": "17c–18", "measure": "6–8", - "linkTo": "" + "linkTo": "M_38_Sk3c" } ] ] @@ -374,14 +378,14 @@ { "system": "1–2", "measure": "9–10, {11A–12A}, 11B–12B", - "linkTo": "" + "linkTo": "M_38_Sk3d" } ], [ { "system": "4–5", "measure": "13–17", - "linkTo": "" + "linkTo": "M_38_Sk3e" } ] ] @@ -543,7 +547,10 @@ }, { "item": "M 38 Sk2", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -564,7 +571,10 @@ }, { "item": "M 38 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -628,14 +638,12 @@ "id": "source_B", "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 34.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 35–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 34.
    Enthält auch Tintenniederschrift zu Studienkompositionen für Klavier M 35/42, M 36–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." - ], + "desc": ["1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -769,7 +777,10 @@ }, { "item": "M 36", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", "folios": [ { @@ -849,7 +860,10 @@ }, { "item": "M 38", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", "folios": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m34/source-list.json b/src/assets/data/edition/series/2/section/2a/m34/source-list.json index 911d49cf4a..744a57eaae 100644 --- a/src/assets/data/edition/series/2/section/2a/m34/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m34/source-list.json @@ -3,7 +3,7 @@ { "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 34.
    Enthält auch Skizzen zu Studienkompositionen für Klavier M 35/42, M 36–38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 34.
    Enthält auch Skizzen zu Studienkompositionen für Klavier M 35/42, M 36–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_A" diff --git a/src/assets/data/edition/series/2/section/2a/m35_42/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m35_42/folio-convolute.json index 8abe276300..92a62ce918 100644 --- a/src/assets/data/edition/series/2/section/2a/m35_42/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m35_42/folio-convolute.json @@ -61,7 +61,7 @@ "sections": [ { "position": 2, - "startSystem": 7, + "startSystem": 6, "endSystem": 8 } ] @@ -79,6 +79,20 @@ } ] }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1d", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 12", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 12, + "endSystem": 12 + } + ] + }, { "complexId": "m35_42", "sheetId": "M_35_42_Sk1b", @@ -92,6 +106,61 @@ "endSystem": 14 } ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1c", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 8–11", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1b", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 7", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1e", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 16", + "sectionPartition": 7, + "sections": [ + { + "position": 4, + "startSystem": 15, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1a", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] } ] }, @@ -102,7 +171,50 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3b", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 5", + "sectionPartition": 4, + "sections": [ + { + "position": 4, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3a", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 1–4", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3c", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 6–8", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] }, { "folioId": "2r", @@ -139,6 +251,34 @@ "endSystem": 18 } ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk2", + "sigle": "M 38 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk1", + "sigle": "M 38 Sk1", + "sigleAddendum": "", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18, + "relativeToSystem": "below" + } + ] } ] }, @@ -150,6 +290,32 @@ "width": 265 }, "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3d", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 9–12B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3e", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 13–17", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, { "complexId": "m37", "sheetId": "M_37_Sk3a", @@ -195,7 +361,49 @@ }, { "convoluteId": "B", - "convoluteLabel": "B Skizzen (CH-Bps)", + "convoluteLabel": "B Tintenniederschrift (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + } + ] + }, + { + "convoluteId": "C", + "convoluteLabel": "C Skizzen (CH-Bps)", "folios": [ { "folioId": "1r", @@ -304,48 +512,7 @@ } ] }, - { - "convoluteId": "C", - "convoluteLabel": "C Tintenniederschrift (CH-Bps)", - "folios": [ - { - "folioId": "1r", - "systems": "18", - "format": { - "height": 349, - "width": 267 - }, - "content": [] - }, - { - "folioId": "1v", - "systems": "18", - "format": { - "height": 349, - "width": 267 - }, - "content": [] - }, - { - "folioId": "2r", - "systems": "18", - "format": { - "height": 349, - "width": 267 - }, - "content": [] - }, - { - "folioId": "2v", - "systems": "18", - "format": { - "height": 349, - "width": 267 - }, - "content": [] - } - ] - }, + { "convoluteId": "D", "convoluteLabel": "D Tintenniederschrift (CH-Bps)", diff --git a/src/assets/data/edition/series/2/section/2a/m35_42/source-description.json b/src/assets/data/edition/series/2/section/2a/m35_42/source-description.json index 17ef47c919..a27e359879 100644 --- a/src/assets/data/edition/series/2/section/2a/m35_42/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m35_42/source-description.json @@ -4,14 +4,12 @@ "id": "source_A", "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 35/42.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 36–38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 35/42.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 36–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2)." - ], + "desc": ["1 Bogen (Bl. 1/2)."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -152,7 +150,10 @@ }, { "item": "M 36 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", "folios": [ { @@ -164,35 +165,35 @@ { "system": "16–17", "measure": "1–6", - "linkTo": "" + "linkTo": "M_36_Sk1a" } ], [ { "system": "14c–15b", "measure": "7", - "linkTo": "" + "linkTo": "M_36_Sk1b" } ], [ { "system": "13b–14b", "measure": "8–11", - "linkTo": "" + "linkTo": "M_36_Sk1c" } ], [ { "system": "12", "measure": "12", - "linkTo": "" + "linkTo": "M_36_Sk1d" } ], [ { "system": "15a", "measure": "16", - "linkTo": "" + "linkTo": "M_36_Sk1e" } ] ] @@ -334,7 +335,10 @@ }, { "item": "M 38 Sk3", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk3a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -346,21 +350,21 @@ { "system": "15–16c", "measure": "1–4", - "linkTo": "" + "linkTo": "M_38_Sk3a" } ], [ { "system": "13b–14b", "measure": "5", - "linkTo": "" + "linkTo": "M_38_Sk3b" } ], [ { "system": "17c–18", "measure": "6–8", - "linkTo": "" + "linkTo": "M_38_Sk3c" } ] ] @@ -374,14 +378,14 @@ { "system": "1–2", "measure": "9–10, {11A–12A}, 11B–12B", - "linkTo": "" + "linkTo": "M_38_Sk3d" } ], [ { "system": "4–5", "measure": "13–17", - "linkTo": "" + "linkTo": "M_38_Sk3e" } ] ] @@ -543,7 +547,10 @@ }, { "item": "M 38 Sk2", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -564,7 +571,10 @@ }, { "item": "M 38 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -631,11 +641,9 @@ "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 35/42.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 36–38 und M 39 Textfassung 1→2 sowie Skizzen zu Studienkomposition für Klavier M 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." - ], + "desc": ["1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -769,7 +777,10 @@ }, { "item": "M 36", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", "folios": [ { @@ -849,7 +860,10 @@ }, { "item": "M 38", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", "folios": [ { @@ -1046,9 +1060,7 @@ "type": "Skizzen zu
    Studienkomposition für Klavier M 35/42.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 39 Textfassung 2, M 40–41 und M* 405–406.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2). Kleiner Riss am rechten Rand von Bl. 2." - ], + "desc": ["1 Bogen (Bl. 1/2). Kleiner Riss am rechten Rand von Bl. 2."], "writingMaterialStrings": [ "Notenpapier, 18 Systeme, Format: hoch 348 × 266 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" ], @@ -1427,9 +1439,7 @@ "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 35/42.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 39 Textfassung 2 und M 40.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Blatt (Bl. 1). Rissspuren am linken Rand: von Bogen abgetrennt." - ], + "desc": ["1 Blatt (Bl. 1). Rissspuren am linken Rand: von Bogen abgetrennt."], "writingMaterialStrings": [ "Notenpapier, 18 Systeme, Format: hoch 347 × 265 mm, Firmenzeichen:

    unten links auf Bl. 1r" ], diff --git a/src/assets/data/edition/series/2/section/2a/m35_42/source-list.json b/src/assets/data/edition/series/2/section/2a/m35_42/source-list.json index a76e1effcd..5a2813fa3a 100644 --- a/src/assets/data/edition/series/2/section/2a/m35_42/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m35_42/source-list.json @@ -2,7 +2,7 @@ "sources": [ { "siglum": "A", - "type": "Skizzen zu
    Studienkomposition für Klavier M 35/42.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 36–38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 35/42.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 36–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_A" diff --git a/src/assets/data/edition/series/2/section/2a/m35_42/textcritics.json b/src/assets/data/edition/series/2/section/2a/m35_42/textcritics.json index afe5948d24..0bb250e1a8 100644 --- a/src/assets/data/edition/series/2/section/2a/m35_42/textcritics.json +++ b/src/assets/data/edition/series/2/section/2a/m35_42/textcritics.json @@ -229,6 +229,13 @@ } ], "linkBoxes": [ + { + "svgGroupId": "g1", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1c" + } + }, { "svgGroupId": "g2", "linkTo": { diff --git a/src/assets/data/edition/series/2/section/2a/m36/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m36/folio-convolute.json new file mode 100644 index 0000000000..322ff2d879 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/folio-convolute.json @@ -0,0 +1,405 @@ +{ + "convolutes": [ + { + "convoluteId": "A", + "convoluteLabel": "A Skizzen (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m34", + "sheetId": "M_34_Sk1a", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 1–7", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1b", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 8–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1c", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 15–16", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1_1", + "sigle": "M 34 Sk1.1", + "sigleAddendum": "", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 6, + "endSystem": 8 + } + ] + }, + { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1a", + "sigle": "M 35/42 Sk1", + "sigleAddendum": "T. 1–7", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1d", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 12", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 12, + "endSystem": 12 + } + ] + }, + { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1b", + "sigle": "M 35/42 Sk1", + "sigleAddendum": "T. 8(1–2/4)–9B", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1c", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 8–11", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1b", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 7", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1e", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 16", + "sectionPartition": 7, + "sections": [ + { + "position": 4, + "startSystem": 15, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1a", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + } + ] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3b", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 5", + "sectionPartition": 4, + "sections": [ + { + "position": 4, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3a", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 1–4", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3c", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 6–8", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m37", + "sheetId": "M_37_Sk1", + "sigle": "M 37 Sk1", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 1, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk2", + "sigle": "M 37 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 2, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk2", + "sigle": "M 38 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk1", + "sigle": "M 38 Sk1", + "sigleAddendum": "", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18, + "relativeToSystem": "below" + } + ] + } + ] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3d", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 9–12B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3e", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 13–17", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3a", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3b", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 7–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3c", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 15–21", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 14 + } + ] + } + ] + } + ] + }, + { + "convoluteId": "B", + "convoluteLabel": "B Tintenniederschrift (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + } + ] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/graph.json b/src/assets/data/edition/series/2/section/2a/m36/graph.json new file mode 100644 index 0000000000..b6944f6343 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/graph.json @@ -0,0 +1,13 @@ +{ + "graph": [ + { + "id": "m36", + "title": "Skizzengraph M 36", + "description": [], + "rdfData": { + "queryList": [], + "triples": "" + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/intro.json b/src/assets/data/edition/series/2/section/2a/m36/intro.json new file mode 100644 index 0000000000..6ee4bc2fab --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/intro.json @@ -0,0 +1,8 @@ +{ + "intro": [ + { + "id": "m36", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/source-description.json b/src/assets/data/edition/series/2/section/2a/m36/source-description.json new file mode 100644 index 0000000000..81c4997270 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/source-description.json @@ -0,0 +1,1057 @@ +{ + "sources": [ + { + "id": "source_A", + "siglum": "A", + "siglumAddendum": "", + "type": "Skizzen zu
    Studienkomposition für Klavier M 36.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 37–39 und M* 404.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": ["1 Bogen (Bl. 1/2)."], + "writingMaterialStrings": [ + "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" + ], + "writingMaterials": [ + { + "paperType": "Notenpapier", + "systems": { + "number": 18, + "info": "", + "addendum": "" + }, + "format": { + "orientation": "hoch", + "height": { + "uncertainty": "", + "value": "349" + }, + "width": { + "uncertainty": "", + "value": "265" + } + }, + "firmSign": { + "variant": "FIRM_JE_NO_5_LIN_18_C", + "alt": "", + "location": [ + { + "info": "", + "folios": ["1r", "2r"], + "position": "unten links" + } + ] + }, + "folioAddendum": "1/2" + } + ], + "writingInstruments": { + "main": "Bleistift", + "secondary": [] + }, + "titles": [], + "dates": [], + "paginations": [], + "measureNumbers": [], + "instrumentations": [], + "annotations": [], + "contents": [ + { + "item": "M 34 Sk1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–7", + "linkTo": "M_34_Sk1a" + } + ], + [ + { + "system": "4–5", + "measure": "8–14", + "linkTo": "M_34_Sk1b" + } + ], + [ + { + "system": "7a–8a", + "measure": "15–16", + "linkTo": "M_34_Sk1c" + } + ] + ] + } + ] + }, + { + "item": "M 34 Sk1.1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1_1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "6–8b", + "measure": "5–8", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42 Sk1", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "10–11", + "measure": "1–7", + "linkTo": "M_35_42_Sk1a" + } + ], + [ + { + "system": "13a–14a", + "measure": "8(1–2/4), {8(3/4)A–9A, 10}, 8(3/4)B–9B", + "linkTo": "M_35_42_Sk1b" + } + ] + ] + } + ] + }, + { + "item": "M 36 Sk1", + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16–17", + "measure": "1–6", + "linkTo": "M_36_Sk1a" + } + ], + [ + { + "system": "14c–15b", + "measure": "7", + "linkTo": "M_36_Sk1b" + } + ], + [ + { + "system": "13b–14b", + "measure": "8–11", + "linkTo": "M_36_Sk1c" + } + ], + [ + { + "system": "12", + "measure": "12", + "linkTo": "M_36_Sk1d" + } + ], + [ + { + "system": "15a", + "measure": "16", + "linkTo": "M_36_Sk1e" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–4, {5A}", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "5B, {6A–7A}, 6B–7B", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "8A–9A, 8B(3/4)–9B, 10–11", + "linkTo": "" + } + ], + [ + { + "system": "13a–14a", + "measure": "12–15", + "linkTo": "" + } + ], + [ + { + "system": "16a–17a", + "measure": "16", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7a–8a", + "measure": "1–2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.2", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7b–8b", + "measure": "1–2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.3", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7c–8c", + "measure": "x+1", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.4", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16b–17b", + "measure": "16–17", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk3", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk3a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "15–16c", + "measure": "1–4", + "linkTo": "M_38_Sk3a" + } + ], + [ + { + "system": "13b–14b", + "measure": "5", + "linkTo": "M_38_Sk3b" + } + ], + [ + { + "system": "17c–18", + "measure": "6–8", + "linkTo": "M_38_Sk3c" + } + ] + ] + }, + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "9–10, {11A–12A}, 11B–12B", + "linkTo": "M_38_Sk3d" + } + ], + [ + { + "system": "4–5", + "measure": "13–17", + "linkTo": "M_38_Sk3e" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "2a–3a", + "measure": "1, {2A}", + "linkTo": "" + } + ], + [ + { + "system": "5–6", + "measure": "{2B}, 3–4, 5A", + "linkTo": "" + } + ], + [ + { + "system": "8a–9a", + "measure": "5B", + "linkTo": "" + } + ], + [ + { + "system": "11a–12a", + "measure": "6A, {7A–8A}", + "linkTo": "" + } + ], + [ + { + "system": "13a–14a", + "measure": "6B–8B", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "{9A–13A}", + "linkTo": "" + } + ], + [ + { + "system": "9c–10", + "measure": "{9B}", + "linkTo": "" + } + ], + [ + { + "system": "11b–12b", + "measure": "9C, 10B", + "linkTo": "" + } + ], + [ + { + "system": "13b–14b", + "measure": "11C, 12B", + "linkTo": "" + } + ], + [ + { + "system": "7–8c", + "measure": "13B, 14", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk1.1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "8b–9b", + "measure": "2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk1", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18a", + "measure": "1–4", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk2", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18b", + "measure": "1, {2A}, 2B, 3–5", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk2", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18c", + "measure": "9–11", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk1", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "nach 18", + "measure": "1–12", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk3", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk3" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7–8", + "measure": "1–6", + "linkTo": "M_37_Sk3a" + } + ], + [ + { + "system": "10–11", + "measure": "7–14", + "linkTo": "M_37_Sk3b" + } + ], + [ + { + "system": "13–14", + "measure": "15–21", + "linkTo": "M_37_Sk3c" + } + ] + ] + } + ] + } + ] + } + }, + { + "id": "source_B", + "siglum": "B", + "siglumAddendum": "", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 36.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 37–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": ["1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens."], + "writingMaterialStrings": [ + "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" + ], + "writingMaterials": [ + { + "paperType": "Notenpapier", + "systems": { + "number": 18, + "info": "", + "addendum": "" + }, + "format": { + "orientation": "hoch", + "height": { + "uncertainty": "", + "value": "349" + }, + "width": { + "uncertainty": "", + "value": "267" + } + }, + "firmSign": { + "variant": "FIRM_JE_NO_5_LIN_18_D", + "alt": "", + "location": [ + { + "info": "", + "folios": ["1r", "2r"], + "position": "unten links" + } + ] + }, + "folioAddendum": "1/2" + } + ], + "writingInstruments": { + "main": "schwarze Tinte, Bleistift", + "secondary": [] + }, + "titles": [], + "dates": [], + "paginations": [], + "measureNumbers": [], + "instrumentations": [], + "annotations": [], + "contents": [ + { + "item": "M 34", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–5", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "6–8", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7–8", + "measure": "1–7", + "linkTo": "" + } + ], + [ + { + "system": "10a–11a", + "measure": "8–9", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42 Sk2", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "10b–11b (Bleistift)", + "measure": "7(2–3/4)–9", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 36", + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13–14", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "7–13", + "linkTo": "" + } + ] + ] + }, + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "14–16", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "4–5", + "measure": "1–7", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "8–15", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "16–21", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13–14", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "15–16", + "measure": "7–12", + "linkTo": "" + } + ], + [ + { + "system": "17–18", + "measure": "13–20", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39", + "itemLinkTo": {}, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–3", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "4–7", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "8–12 → T. 8, {9–12}", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "13–16 → T. {13–14}, 13–14", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "17–19 → T. 15–17", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk2", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16a–17a (Bleistift)", + "measure": "9–10", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk3", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13b–14b (Bleistift)", + "measure": "16–17(1–2/4)", + "linkTo": "" + } + ], + [ + { + "system": "16b–17b (Bleistift)", + "measure": "17(3–4/4)–19", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 41", + "itemLinkTo": {}, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 41)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "7–12", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "13–18", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "19–25", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "26–30", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "31", + "linkTo": "" + } + ] + ] + } + ] + } + ] + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/source-evaluation.json b/src/assets/data/edition/series/2/section/2a/m36/source-evaluation.json new file mode 100644 index 0000000000..363094bbc2 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/source-evaluation.json @@ -0,0 +1,8 @@ +{ + "sources": [ + { + "id": "m36", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/source-list.json b/src/assets/data/edition/series/2/section/2a/m36/source-list.json index 81b22f1aa9..51b4c39fbb 100644 --- a/src/assets/data/edition/series/2/section/2a/m36/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m36/source-list.json @@ -3,7 +3,7 @@ { "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 36.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34–35, M 37–38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 36.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 37–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_A" @@ -11,7 +11,7 @@ { "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 36.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–35, M 37–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35 und 39 Textfassung 2.", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 36.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 37–38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_B" diff --git a/src/assets/data/edition/series/2/section/2a/m36/svg-sheets.json b/src/assets/data/edition/series/2/section/2a/m36/svg-sheets.json new file mode 100644 index 0000000000..42df98df9c --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/svg-sheets.json @@ -0,0 +1,57 @@ +{ + "sheets": { + "workEditions": [], + "textEditions": [ + { + "id": "M_36_TF1", + "label": "M 36 einzige Textfassung", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Textfassung1-1von1-final.svg", + "image": "", + "partial": "", + "convolute": "B" + } + ] + } + ], + "sketchEditions": [ + { + "id": "M_36_Sk1", + "label": "M 36 Sk1", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Sk1-1von5-final.svg", + "image": "", + "partial": "a", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Sk1-2von5-final.svg", + "image": "", + "partial": "b", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Sk1-3von5-final.svg", + "image": "", + "partial": "c", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Sk1-4von5-final.svg", + "image": "", + "partial": "d", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m36/M36_Sk1-5von5-final.svg", + "image": "", + "partial": "e", + "convolute": "A" + } + ] + } + ] + } +} diff --git a/src/assets/data/edition/series/2/section/2a/m36/textcritics.json b/src/assets/data/edition/series/2/section/2a/m36/textcritics.json new file mode 100644 index 0000000000..d37365505d --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m36/textcritics.json @@ -0,0 +1,146 @@ +{ + "textcritics": [ + { + "id": "M_36_TF1", + "label": "M 36 einzige Textfassung", + "description": [ + "Für die Textedition der Studienkomposition für Klavier M 36 ist B relevante Quelle. A enthält Skizzen.
    B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
    Hauptquelle für die Textedition der Studienkomposition für Klavier M 36 ist B nach Korrekturen 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g820", + "measure": "11", + "system": "Klav.", + "position": "3/4", + "comment": "Diastematisch undefinierter Notenkopf zwischen den Systemen weggelassen." + } + ] + } + ] + }, + { + "id": "M_36_Sk1", + "label": "M 36 Sk1", + "description": [ + "Sk1 ist die Verlaufsskizze zu der Studienkomposition für Klavier M 36, bei der die Reprise mit Ausnahme des neuen Schlussakkords (T. 16) nicht ausnotiert ist." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g1046", + "measure": "3", + "system": "16", + "position": "1. Note", + "comment": "Halbe Note g1/c2/e2 überschreibt Viertelnote c2/e2." + }, + { + "svgGroupId": "g1058", + "measure": "5", + "system": "16", + "position": "1. Note", + "comment": "Punktierte Halbe Note überschreibt Viertelnote." + }, + { + "svgGroupId": "g3", + "measure": "6", + "system": "17", + "position": "3/4", + "comment": "Metrisch falsch gesetzter Notenkopf e gestrichen." + }, + { + "svgGroupId": "g975", + "measure": "7", + "system": "14", + "position": "1. Note", + "comment": "{{ref.getGlyph('[#]')}}cis1 überschreibt d1." + }, + { + "svgGroupId": "g13", + "measure": "7", + "system": "15", + "position": "(2/4)", + "comment": "Viertelnote e gstrichen? Entzifferung unsicher." + }, + { + "svgGroupId": "g1040", + "measure": "8 bis
    9", + "system": "13", + "position": "3/4
    1/4", + "comment": "a1–a1 überschreibt h1–h1." + }, + { + "svgGroupId": "g9", + "measure": "11", + "system": "13", + "position": "1/4", + "comment": "Oberstimmenschicht: Viertelnote überschreibt Halbe Note." + }, + { + "svgGroupId": "g10", + "measure": "12", + "system": "12", + "position": "1. Note", + "comment": "h überschreibt a." + }, + { + "svgGroupId": "g111", + "measure": "12", + "system": "12", + "position": "2/4", + "comment": "Entzifferung unsicher. Die Viertelnote mit Hilfslinien ist vergleichsweise tief gesetzt und möglicherweise auch lesbar als H1 im Bassschlüssel analog Tintenniederschrift." + } + ] + } + ], + "linkBoxes": [ + { + "svgGroupId": "g2", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1d" + } + }, + { + "svgGroupId": "g5", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1e" + } + }, + { + "svgGroupId": "g6", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + } + }, + { + "svgGroupId": "g8", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1b" + } + }, + { + "svgGroupId": "g11", + "linkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1b" + } + }, + { + "svgGroupId": "g12", + "linkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1c" + } + } + ] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json index bae510c455..322ff2d879 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json +++ b/src/assets/data/edition/series/2/section/2a/m37/folio-convolute.json @@ -61,7 +61,7 @@ "sections": [ { "position": 2, - "startSystem": 7, + "startSystem": 6, "endSystem": 8 } ] @@ -79,6 +79,20 @@ } ] }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1d", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 12", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 12, + "endSystem": 12 + } + ] + }, { "complexId": "m35_42", "sheetId": "M_35_42_Sk1b", @@ -92,6 +106,61 @@ "endSystem": 14 } ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1c", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 8–11", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1b", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 7", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1e", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 16", + "sectionPartition": 7, + "sections": [ + { + "position": 4, + "startSystem": 15, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1a", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] } ] }, @@ -102,7 +171,50 @@ "height": 349, "width": 265 }, - "content": [] + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3b", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 5", + "sectionPartition": 4, + "sections": [ + { + "position": 4, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3a", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 1–4", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3c", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 6–8", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] }, { "folioId": "2r", @@ -139,6 +251,34 @@ "endSystem": 18 } ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk2", + "sigle": "M 38 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk1", + "sigle": "M 38 Sk1", + "sigleAddendum": "", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18, + "relativeToSystem": "below" + } + ] } ] }, @@ -150,6 +290,32 @@ "width": 265 }, "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3d", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 9–12B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3e", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 13–17", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, { "complexId": "m37", "sheetId": "M_37_Sk3a", diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-description.json b/src/assets/data/edition/series/2/section/2a/m37/source-description.json index e79e7e32d6..9e392e1884 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-description.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-description.json @@ -4,14 +4,12 @@ "id": "source_A", "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 37.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 37.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 36, M 38–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2)." - ], + "desc": ["1 Bogen (Bl. 1/2)."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -152,7 +150,10 @@ }, { "item": "M 36 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", "folios": [ { @@ -164,35 +165,35 @@ { "system": "16–17", "measure": "1–6", - "linkTo": "" + "linkTo": "M_36_Sk1a" } ], [ { "system": "14c–15b", "measure": "7", - "linkTo": "" + "linkTo": "M_36_Sk1b" } ], [ { "system": "13b–14b", "measure": "8–11", - "linkTo": "" + "linkTo": "M_36_Sk1c" } ], [ { "system": "12", "measure": "12", - "linkTo": "" + "linkTo": "M_36_Sk1d" } ], [ { "system": "15a", "measure": "16", - "linkTo": "" + "linkTo": "M_36_Sk1e" } ] ] @@ -334,7 +335,10 @@ }, { "item": "M 38 Sk3", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk3a" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -346,21 +350,21 @@ { "system": "15–16c", "measure": "1–4", - "linkTo": "" + "linkTo": "M_38_Sk3a" } ], [ { "system": "13b–14b", "measure": "5", - "linkTo": "" + "linkTo": "M_38_Sk3b" } ], [ { "system": "17c–18", "measure": "6–8", - "linkTo": "" + "linkTo": "M_38_Sk3c" } ] ] @@ -374,14 +378,14 @@ { "system": "1–2", "measure": "9–10, {11A–12A}, 11B–12B", - "linkTo": "" + "linkTo": "M_38_Sk3d" } ], [ { "system": "4–5", "measure": "13–17", - "linkTo": "" + "linkTo": "M_38_Sk3e" } ] ] @@ -543,7 +547,10 @@ }, { "item": "M 38 Sk2", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -564,7 +571,10 @@ }, { "item": "M 38 Sk1", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk1" + }, "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", "folios": [ { @@ -628,14 +638,12 @@ "id": "source_B", "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 37.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 37.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "description": { - "desc": [ - "1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens." - ], + "desc": ["1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens."], "writingMaterialStrings": [ - "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen:

    unten links auf Bl. 1r und 2r" + "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r" ], "writingMaterials": [ { @@ -769,7 +777,10 @@ }, { "item": "M 36", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", "folios": [ { @@ -849,7 +860,10 @@ }, { "item": "M 38", - "itemLinkTo": {}, + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_TF1" + }, "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", "folios": [ { diff --git a/src/assets/data/edition/series/2/section/2a/m37/source-list.json b/src/assets/data/edition/series/2/section/2a/m37/source-list.json index e7f2d9e0df..f706873d27 100644 --- a/src/assets/data/edition/series/2/section/2a/m37/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m37/source-list.json @@ -3,7 +3,7 @@ { "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 37.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 37.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 36, M 38–39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_A" @@ -11,7 +11,7 @@ { "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 37.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 37.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 36, M 38, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_B" diff --git a/src/assets/data/edition/series/2/section/2a/m38/folio-convolute.json b/src/assets/data/edition/series/2/section/2a/m38/folio-convolute.json new file mode 100644 index 0000000000..322ff2d879 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/folio-convolute.json @@ -0,0 +1,405 @@ +{ + "convolutes": [ + { + "convoluteId": "A", + "convoluteLabel": "A Skizzen (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m34", + "sheetId": "M_34_Sk1a", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 1–7", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1b", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 8–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1c", + "sigle": "M 34 Sk1", + "sigleAddendum": "T. 15–16", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m34", + "sheetId": "M_34_Sk1_1", + "sigle": "M 34 Sk1.1", + "sigleAddendum": "", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 6, + "endSystem": 8 + } + ] + }, + { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1a", + "sigle": "M 35/42 Sk1", + "sigleAddendum": "T. 1–7", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1d", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 12", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 12, + "endSystem": 12 + } + ] + }, + { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1b", + "sigle": "M 35/42 Sk1", + "sigleAddendum": "T. 8(1–2/4)–9B", + "sectionPartition": 2, + "sections": [ + { + "position": 1, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1c", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 8–11", + "sectionPartition": 2, + "sections": [ + { + "position": 2, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1b", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 7", + "sectionPartition": 7, + "sections": [ + { + "position": 6, + "startSystem": 14, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1e", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 16", + "sectionPartition": 7, + "sections": [ + { + "position": 4, + "startSystem": 15, + "endSystem": 15 + } + ] + }, + { + "complexId": "m36", + "sheetId": "M_36_Sk1a", + "sigle": "M 36 Sk1", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 16, + "endSystem": 17 + } + ] + } + ] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3b", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 5", + "sectionPartition": 4, + "sections": [ + { + "position": 4, + "startSystem": 13, + "endSystem": 14 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3a", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 1–4", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 15, + "endSystem": 16 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3c", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 6–8", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 17, + "endSystem": 18 + } + ] + } + ] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m37", + "sheetId": "M_37_Sk1", + "sigle": "M 37 Sk1", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 1, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk2", + "sigle": "M 37 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 2, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk2", + "sigle": "M 38 Sk2", + "sigleAddendum": "", + "sectionPartition": 3, + "sections": [ + { + "position": 3, + "startSystem": 18, + "endSystem": 18 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk1", + "sigle": "M 38 Sk1", + "sigleAddendum": "", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 18, + "endSystem": 18, + "relativeToSystem": "below" + } + ] + } + ] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 265 + }, + "content": [ + { + "complexId": "m38", + "sheetId": "M_38_Sk3d", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 9–12B", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 1, + "endSystem": 2 + } + ] + }, + { + "complexId": "m38", + "sheetId": "M_38_Sk3e", + "sigle": "M 38 Sk3", + "sigleAddendum": "T. 13–17", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 4, + "endSystem": 5 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3a", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 1–6", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 7, + "endSystem": 8 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3b", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 7–14", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 10, + "endSystem": 11 + } + ] + }, + { + "complexId": "m37", + "sheetId": "M_37_Sk3c", + "sigle": "M 37 Sk3", + "sigleAddendum": "T. 15–21", + "sectionPartition": 1, + "sections": [ + { + "startSystem": 13, + "endSystem": 14 + } + ] + } + ] + } + ] + }, + { + "convoluteId": "B", + "convoluteLabel": "B Tintenniederschrift (CH-Bps)", + "folios": [ + { + "folioId": "1r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "1v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2r", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + }, + { + "folioId": "2v", + "systems": "18", + "format": { + "height": 349, + "width": 267 + }, + "content": [] + } + ] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/graph.json b/src/assets/data/edition/series/2/section/2a/m38/graph.json new file mode 100644 index 0000000000..d7c11099c6 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/graph.json @@ -0,0 +1,13 @@ +{ + "graph": [ + { + "id": "m38", + "title": "Skizzengraph M 38", + "description": [], + "rdfData": { + "queryList": [], + "triples": "" + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/intro.json b/src/assets/data/edition/series/2/section/2a/m38/intro.json new file mode 100644 index 0000000000..1afb18ff03 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/intro.json @@ -0,0 +1,8 @@ +{ + "intro": [ + { + "id": "m38", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/source-description.json b/src/assets/data/edition/series/2/section/2a/m38/source-description.json new file mode 100644 index 0000000000..032f11d5dc --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/source-description.json @@ -0,0 +1,1053 @@ +{ + "sources": [ + { + "id": "source_A", + "siglum": "A", + "siglumAddendum": "", + "type": "Skizzen zu
    Studienkomposition für Klavier M 38.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 36–37, M 39 und M* 404.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": ["1 Bogen (Bl. 1/2)."], + "writingMaterialString": "Notenpapier, 18 Systeme, Format: hoch 349 × 265 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r.", + "writingMaterials": [ + { + "paperType": "Notenpapier", + "systems": { + "number": 18, + "info": "", + "addendum": "" + }, + "format": { + "orientation": "hoch", + "height": { + "uncertainty": "", + "value": "349" + }, + "width": { + "uncertainty": "", + "value": "265" + } + }, + "firmSign": { + "variant": "FIRM_JE_NO_5_LIN_18_C", + "alt": "", + "location": [ + { + "info": "", + "folios": ["1r", "2r"], + "position": "unten links" + } + ] + }, + "folioAddendum": "1/2" + } + ], + "writingInstruments": { + "main": "Bleistift", + "secondary": [] + }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", + "contents": [ + { + "item": "M 34 Sk1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–7", + "linkTo": "M_34_Sk1a" + } + ], + [ + { + "system": "4–5", + "measure": "8–14", + "linkTo": "M_34_Sk1b" + } + ], + [ + { + "system": "7a–8a", + "measure": "15–16", + "linkTo": "M_34_Sk1c" + } + ] + ] + } + ] + }, + { + "item": "M 34 Sk1.1", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_Sk1_1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "6–8b", + "measure": "5–8", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42 Sk1", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "10–11", + "measure": "1–7", + "linkTo": "M_35_42_Sk1a" + } + ], + [ + { + "system": "13a–14a", + "measure": "8(1–2/4), {8(3/4)A–9A, 10}, 8(3/4)B–9B", + "linkTo": "M_35_42_Sk1b" + } + ] + ] + } + ] + }, + { + "item": "M 36 Sk1", + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_Sk1a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 36)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16–17", + "measure": "1–6", + "linkTo": "M_36_Sk1a" + } + ], + [ + { + "system": "14c–15b", + "measure": "7", + "linkTo": "M_36_Sk1b" + } + ], + [ + { + "system": "13b–14b", + "measure": "8–11", + "linkTo": "M_36_Sk1c" + } + ], + [ + { + "system": "12", + "measure": "12", + "linkTo": "M_36_Sk1d" + } + ], + [ + { + "system": "15a", + "measure": "16", + "linkTo": "M_36_Sk1e" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–4, {5A}", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "5B, {6A–7A}, 6B–7B", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "8A–9A, 8B(3/4)–9B, 10–11", + "linkTo": "" + } + ], + [ + { + "system": "13a–14a", + "measure": "12–15", + "linkTo": "" + } + ], + [ + { + "system": "16a–17a", + "measure": "16", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7a–8a", + "measure": "1–2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.2", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7b–8b", + "measure": "1–2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.3", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7c–8c", + "measure": "x+1", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M* 404 Sk1.4", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M* 404)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16b–17b", + "measure": "16–17", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk3", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk3a" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "15–16c", + "measure": "1–4", + "linkTo": "M_38_Sk3a" + } + ], + [ + { + "system": "13b–14b", + "measure": "5", + "linkTo": "M_38_Sk3b" + } + ], + [ + { + "system": "17c–18", + "measure": "6–8", + "linkTo": "M_38_Sk3c" + } + ] + ] + }, + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "9–10, {11A–12A}, 11B–12B", + "linkTo": "M_38_Sk3d" + } + ], + [ + { + "system": "4–5", + "measure": "13–17", + "linkTo": "M_38_Sk3e" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "2a–3a", + "measure": "1, {2A}", + "linkTo": "" + } + ], + [ + { + "system": "5–6", + "measure": "{2B}, 3–4, 5A", + "linkTo": "" + } + ], + [ + { + "system": "8a–9a", + "measure": "5B", + "linkTo": "" + } + ], + [ + { + "system": "11a–12a", + "measure": "6A, {7A–8A}", + "linkTo": "" + } + ], + [ + { + "system": "13a–14a", + "measure": "6B–8B", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "{9A–13A}", + "linkTo": "" + } + ], + [ + { + "system": "9c–10", + "measure": "{9B}", + "linkTo": "" + } + ], + [ + { + "system": "11b–12b", + "measure": "9C, 10B", + "linkTo": "" + } + ], + [ + { + "system": "13b–14b", + "measure": "11C, 12B", + "linkTo": "" + } + ], + [ + { + "system": "7–8c", + "measure": "13B, 14", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk1.1", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "8b–9b", + "measure": "2", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk1", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18a", + "measure": "1–4", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk2", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18b", + "measure": "1, {2A}, 2B, 3–5", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk2", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "18c", + "measure": "9–11", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38 Sk1", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_Sk1" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "nach 18", + "measure": "1–12", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37 Sk3", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk3" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7–8", + "measure": "1–6", + "linkTo": "M_37_Sk3a" + } + ], + [ + { + "system": "10–11", + "measure": "7–14", + "linkTo": "M_37_Sk3b" + } + ], + [ + { + "system": "13–14", + "measure": "15–21", + "linkTo": "M_37_Sk3c" + } + ] + ] + } + ] + } + ] + } + }, + { + "id": "source_B", + "siglum": "B", + "siglumAddendum": "", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 38.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 36–37, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", + "location": "CH-Bps, Sammlung Anton Webern.", + "description": { + "desc": ["1 Bogen (Bl. 1/2). Stockfleck und rötliche Verfärbung mittig am oberen Rand des Bogens."], + "writingMaterialString": "Notenpapier, 18 Systeme, Format: hoch 349 × 267 mm, Firmenzeichen: ##[JE]## | Protokoll. Schutzmarke | No. 5 | 18 linig. unten links auf Bl. 1r und 2r.", + "writingMaterials": [ + { + "paperType": "Notenpapier", + "systems": { + "number": 18, + "info": "", + "addendum": "" + }, + "format": { + "orientation": "hoch", + "height": { + "uncertainty": "", + "value": "349" + }, + "width": { + "uncertainty": "", + "value": "267" + } + }, + "firmSign": { + "variant": "FIRM_JE_NO_5_LIN_18_D", + "alt": "", + "location": [ + { + "info": "", + "folios": ["1r", "2r"], + "position": "unten links" + } + ] + }, + "folioAddendum": "1/2" + } + ], + "writingInstruments": { + "main": "schwarze Tinte, Bleistift", + "secondary": [] + }, + "title": "", + "date": "", + "pagination": "", + "measureNumbers": "", + "instrumentation": "", + "annotations": "", + "contents": [ + { + "item": "M 34", + "itemLinkTo": { + "complexId": "m34", + "sheetId": "M_34_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 34)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–5", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "6–8", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "7–8", + "measure": "1–7", + "linkTo": "" + } + ], + [ + { + "system": "10a–11a", + "measure": "8–9", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 35/42 Sk2", + "itemLinkTo": { + "complexId": "m35_42", + "sheetId": "M_35_42_Sk2" + }, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 35/42)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "10b–11b (Bleistift)", + "measure": "7(2–3/4)–9", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 36", + "itemLinkTo": { + "complexId": "m36", + "sheetId": "M_36_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 36)", + "folios": [ + { + "folio": "1r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13–14", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "7–13", + "linkTo": "" + } + ] + ] + }, + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "14–16", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 37", + "itemLinkTo": { + "complexId": "m37", + "sheetId": "M_37_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 37)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "4–5", + "measure": "1–7", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "8–15", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "16–21", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 38", + "itemLinkTo": { + "complexId": "m38", + "sheetId": "M_38_TF1" + }, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 38)", + "folios": [ + { + "folio": "1v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13–14", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "15–16", + "measure": "7–12", + "linkTo": "" + } + ], + [ + { + "system": "17–18", + "measure": "13–20", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39", + "itemLinkTo": {}, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 39: Textfassung 1→2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–3", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "4–7", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "8–12 → T. 8, {9–12}", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "13–16 → T. {13–14}, 13–14", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "17–19 → T. 15–17", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk2", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "16a–17a (Bleistift)", + "measure": "9–10", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 39 Sk3", + "itemLinkTo": {}, + "itemDescription": "(Skizze zu Studienkomposition für Klavier M 39: Textfassung 2)", + "folios": [ + { + "folio": "2r", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "13b–14b (Bleistift)", + "measure": "16–17(1–2/4)", + "linkTo": "" + } + ], + [ + { + "system": "16b–17b (Bleistift)", + "measure": "17(3–4/4)–19", + "linkTo": "" + } + ] + ] + } + ] + }, + { + "item": "M 41", + "itemLinkTo": {}, + "itemDescription": "(Tintenniederschrift von Studienkomposition für Klavier M 41)", + "folios": [ + { + "folio": "2v", + "folioLinkTo": "", + "folioDescription": "", + "systemGroups": [ + [ + { + "system": "1–2", + "measure": "1–6", + "linkTo": "" + } + ], + [ + { + "system": "4–5", + "measure": "7–12", + "linkTo": "" + } + ], + [ + { + "system": "7–8", + "measure": "13–18", + "linkTo": "" + } + ], + [ + { + "system": "10–11", + "measure": "19–25", + "linkTo": "" + } + ], + [ + { + "system": "13–14", + "measure": "26–30", + "linkTo": "" + } + ], + [ + { + "system": "16–17", + "measure": "31", + "linkTo": "" + } + ] + ] + } + ] + } + ] + } + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/source-evaluation.json b/src/assets/data/edition/series/2/section/2a/m38/source-evaluation.json new file mode 100644 index 0000000000..9b00864989 --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/source-evaluation.json @@ -0,0 +1,8 @@ +{ + "sources": [ + { + "id": "m38", + "content": [] + } + ] +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/source-list.json b/src/assets/data/edition/series/2/section/2a/m38/source-list.json index 422ff96657..42c357f2f4 100644 --- a/src/assets/data/edition/series/2/section/2a/m38/source-list.json +++ b/src/assets/data/edition/series/2/section/2a/m38/source-list.json @@ -3,7 +3,7 @@ { "siglum": "A", "siglumAddendum": "", - "type": "Skizzen zu
    Studienkomposition für Klavier M 38.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34–37, M 39 Textfassung 1→2 und M* 404.", + "type": "Skizzen zu
    Studienkomposition für Klavier M 38.
    Enthält auch Skizzen zu Studienkomposition für Klavier M 34, M 35/42, M 36–37, M 39 und M* 404.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_A" @@ -11,7 +11,7 @@ { "siglum": "B", "siglumAddendum": "", - "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 38.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34–37, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35 und M 39 Textfassung 2.", + "type": "Tintenniederschrift von
    Studienkomposition für Klavier M 38.
    Enthält auch Tintenniederschrift von Studienkomposition für Klavier M 34, M 35/42, M 36–37, M 39 Textfassung 1→2 und M 41 sowie Skizzen zu Studienkomposition für Klavier M 35/42 und M 39 Textfassung 2.", "location": "CH-Bps, Sammlung Anton Webern.", "hasDescription": true, "linkTo": "source_B" diff --git a/src/assets/data/edition/series/2/section/2a/m38/svg-sheets.json b/src/assets/data/edition/series/2/section/2a/m38/svg-sheets.json new file mode 100644 index 0000000000..95b4201b7d --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/svg-sheets.json @@ -0,0 +1,81 @@ +{ + "sheets": { + "workEditions": [], + "textEditions": [ + { + "id": "M_38_TF1", + "label": "M 38 einzige Textfassung", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Textfassung1-1von1-final.svg", + "image": "", + "partial": "", + "convolute": "B" + } + ] + } + ], + "sketchEditions": [ + { + "id": "M_38_Sk1", + "label": "M 38 Sk1", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk1-1von1-final.svg", + "image": "", + "partial": "", + "convolute": "A" + } + ] + }, + { + "id": "M_38_Sk2", + "label": "M 38 Sk2", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg", + "image": "", + "partial": "", + "convolute": "A" + } + ] + }, + { + "id": "M_38_Sk3", + "label": "M 38 Sk3", + "content": [ + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk3-1von5-final.svg", + "image": "", + "partial": "a", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg", + "image": "", + "partial": "b", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk3-3von5-final.svg", + "image": "", + "partial": "c", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk3-4von5-final.svg", + "image": "", + "partial": "d", + "convolute": "A" + }, + { + "svg": "assets/img/edition/series/2/section/2a/m38/M38_Sk3-5von5-final.svg", + "image": "", + "partial": "e", + "convolute": "A" + } + ] + } + ] + } +} diff --git a/src/assets/data/edition/series/2/section/2a/m38/textcritics.json b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json new file mode 100644 index 0000000000..0c90d6726a --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/m38/textcritics.json @@ -0,0 +1,286 @@ +{ + "textcritics": [ + { + "id": "M_38_TF1", + "label": "M 38 einzige Textfassung", + "description": [ + "Für die Textedition der Studienkomposition für Klavier M 38 ist B relevante Quelle. A enthält Skizzen.
    B weist zwei unterscheidbare Korrekturschichten auf: Korrekturen 1 mit Tinte sowie die später entstandenen Korrekturen 2 mit Bleistift. Der Zustand vor Korrekturen 1 ist nicht immer zu entziffern.
    Hauptquelle für die Textedition der Studienkomposition für Klavier M 38 ist B nach Korrekturen 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g4083", + "measure": "12", + "system": "Klav. u.", + "position": "2/4", + "comment": "Unterstimmenschicht: B2/E korrigiert zu E1/E mit Blick auf harmonischen Kontext." + }, + { + "svgGroupId": "g4087", + "measure": "17", + "system": "Klav. o.", + "position": "6/8", + "comment": "a1/cis2 ergänzt mit Blick auf Ligaturbögen von 5/8 zu 6/8." + }, + { + "svgGroupId": "g4091", + "measure": "19", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Viertelnote C korrigiert zu Halbe Note mit Blick auf metrischen Kontext (vgl. Korrekturen mit Tinte)." + }, + { + "svgGroupId": "g4095", + "measure": "19", + "system": "Klav. o.", + "position": "5/8", + "comment": "f korrigiert zu a mit Blick auf Stimmführung und analog T. 7." + } + ] + } + ] + }, + { + "id": "M_38_Sk1", + "label": "M 38 Sk1", + "description": [ + "Sk1 enthält einen rhythmischen Entwurf des Melodieverlaufs der Studienkomposition für Klavier M 38." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g989", + "measure": "2", + "system": "nach 18", + "position": "1. Note", + "comment": "Punktierte Halbe Note überschreibt Viertelnote." + }, + { + "svgGroupId": "g1030", + "measure": "6", + "system": "nach 18", + "position": "1. Note", + "comment": "Halbe Note überschreibt Viertelnote." + }, + { + "svgGroupId": "g1037", + "measure": "10", + "system": "nach 18", + "position": "1. Note", + "comment": "Achtelnote überschreibt punktierte Halbe Note." + }, + { + "svgGroupId": "g1045", + "measure": "10", + "system": "nach 18", + "position": "2/8–6/8", + "comment": "Überschreibungen nicht eindeutig zu entziffern. Taktstrich am Ende zudem möglicherweise gestrichen." + }, + { + "svgGroupId": "g1063", + "measure": "11", + "system": "nach 18", + "position": "", + "comment": "sic. Rhythmisch-metrische Aufteilung am Ende von Sk1 nicht ganz klar." + } + ] + } + ] + }, + { + "id": "M_38_Sk2", + "label": "M 38 Sk2", + "description": [ + "Sk2 enthält eine flüchtige, teils nur rhythmisch formulierte Darstellung des Zwischenthemas der Studienkomposition für Klavier M 38." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g950", + "measure": "11", + "system": "18", + "position": "1.–2. Note", + "comment": "Achtelnote–Viertelnote überschreibt zusammengebalkte Achtelnoten." + } + ] + } + ], + "linkBoxes": [ + { + "svgGroupId": "g1", + "linkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk1" + } + }, + { + "svgGroupId": "g2", + "linkTo": { + "complexId": "m37", + "sheetId": "M_37_Sk2" + } + } + ] + }, + { + "id": "M_38_Sk3", + "label": "M 38 Sk3", + "description": [ + "Sk3 ist die Verlaufsskizze zu der Studienkomposition für Klavier M 38." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "svgGroupId": "g985", + "measure": "2", + "system": "15", + "position": "1. Note", + "comment": "Halbe Note überschreibt Viertelnote a1." + }, + { + "svgGroupId": "g1056", + "measure": "3", + "system": "15", + "position": "3/4", + "comment": "f2 überschreibt g2." + }, + { + "svgGroupId": "g1062", + "measure": "4", + "system": "15", + "position": "3/4", + "comment": "g2 überschreibt a2." + }, + { + "svgGroupId": "g985", + "measure": "2", + "system": "15", + "position": "1. Note", + "comment": "Halbe Note überschreibt Viertelnote a1." + }, + { + "svgGroupId": "g955", + "measure": "5", + "system": "14", + "position": "1. Note", + "comment": "G überschreibt F." + }, + { + "svgGroupId": "g1110", + "measure": "7", + "system": "17", + "position": "1. Note", + "comment": "Notenkopf c2 gestrichen." + }, + { + "svgGroupId": "g1104", + "measure": "7", + "system": "17", + "position": "2–6/8", + "comment": "c2–b1–g1–f1–e1 überschreibt d2–c2–a1–g1–f1." + }, + { + "svgGroupId": "g1268", + "measure": "9", + "system": "2", + "position": "2/4", + "comment": "Viertelnote C1/C gestrichen und ersetzt durch Es/Es." + }, + { + "svgGroupId": "g1276", + "measure": "9", + "system": "2", + "position": "3/4", + "comment": "D überschreibt H1." + }, + { + "svgGroupId": "g1306", + "measure": "10", + "system": "2", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}}E überschreibt F." + }, + { + "svgGroupId": "g1310", + "measure": "10", + "system": "1", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} zu g2 überschreibt {{ref.getGlyph('[#]')}}." + }, + { + "svgGroupId": "g1323", + "measure": "10", + "system": "2", + "position": "2/4", + "comment": "G1/E überschreibt E/e." + }, + { + "svgGroupId": "g1412", + "measure": "10", + "system": "2", + "position": "3/4", + "comment": "Gis/Gis1 überschreibt E/e." + }, + { + "svgGroupId": "g1420", + "measure": "{11A}", + "system": "1", + "position": "5/8", + "comment": "c1 überschreibt b." + }, + { + "svgGroupId": "g1426", + "measure": "{11A}
    bis {12A}", + "system": "1–2", + "position": "1/8
    2/8", + "comment": "Noten gestrichen." + }, + { + "svgGroupId": "g1443", + "measure": "12B", + "system": "1", + "position": "2/4", + "comment": "Notenkopf {{ref.getGlyph('[b]')}}as gestrichen." + }, + { + "svgGroupId": "g998", + "measure": "14", + "system": "4", + "position": "1/4", + "comment": "Unterstimmenschicht: Viertelnote überschreibt Halbe Note." + }, + { + "svgGroupId": "g1033", + "measure": "15", + "system": "4", + "position": "1. Note", + "comment": "Halbe Note f1/d2/f2 überschreibt Viertelnote f1/b1/f2." + }, + { + "svgGroupId": "g1039", + "measure": "15", + "system": "5", + "position": "2/4", + "comment": "d überschreibt c." + }, + { + "svgGroupId": "g1045", + "measure": "16", + "system": "5", + "position": "1/4", + "comment": "Viertelnote überschreibt Halbe Note." + } + ] + } + ] + } + ] +} diff --git a/src/assets/img/edition/series/2/section/2a/m35_42/M35_42_Sk1-2von6-final.svg b/src/assets/img/edition/series/2/section/2a/m35_42/M35_42_Sk1-2von6-final.svg index c666e11565..7e1d6b7380 100644 --- a/src/assets/img/edition/series/2/section/2a/m35_42/M35_42_Sk1-2von6-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m35_42/M35_42_Sk1-2von6-final.svg @@ -414,12 +414,8 @@ - - - - - - + + @@ -434,6 +430,6 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-1von5-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-1von5-final.svg new file mode 100644 index 0000000000..6220a21823 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-1von5-final.svg @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-2von5-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-2von5-final.svg new file mode 100644 index 0000000000..fe846815a5 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-2von5-final.svg @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-3von5-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-3von5-final.svg new file mode 100644 index 0000000000..d85e932958 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-3von5-final.svg @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-4von5-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-4von5-final.svg new file mode 100644 index 0000000000..ac7716c3cf --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-4von5-final.svg @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-5von5-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-5von5-final.svg new file mode 100644 index 0000000000..75883920ff --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Sk1-5von5-final.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m36/M36_Textfassung1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m36/M36_Textfassung1-1von1-final.svg new file mode 100644 index 0000000000..06f015ca07 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m36/M36_Textfassung1-1von1-final.svg @@ -0,0 +1,1093 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg index 06433281bf..f2a46a0fbb 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk1-1von1-final.svg @@ -101,7 +101,7 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg index 70401f395e..c80dc51ae3 100644 --- a/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg +++ b/src/assets/img/edition/series/2/section/2a/m37/M37_Sk2-1von1-final.svg @@ -131,7 +131,7 @@ - + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk1-1von1-final.svg new file mode 100644 index 0000000000..44de021ac8 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk1-1von1-final.svg @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg new file mode 100644 index 0000000000..3059abeb52 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk2-1von1-final.svg @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-1von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-1von5-final.svg new file mode 100644 index 0000000000..4e9b99c365 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-1von5-final.svg @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg new file mode 100644 index 0000000000..be81b29bf1 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-2von5-final.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-3von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-3von5-final.svg new file mode 100644 index 0000000000..99da001fb8 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-3von5-final.svg @@ -0,0 +1,403 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-4von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-4von5-final.svg new file mode 100644 index 0000000000..b3c9d91878 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-4von5-final.svg @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-5von5-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-5von5-final.svg new file mode 100644 index 0000000000..89c629c0cb --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Sk3-5von5-final.svg @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/edition/series/2/section/2a/m38/M38_Textfassung1-1von1-final.svg b/src/assets/img/edition/series/2/section/2a/m38/M38_Textfassung1-1von1-final.svg new file mode 100644 index 0000000000..663757eee1 --- /dev/null +++ b/src/assets/img/edition/series/2/section/2a/m38/M38_Textfassung1-1von1-final.svg @@ -0,0 +1,1796 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/testing/mock-data/mockEditionData.ts b/src/testing/mock-data/mockEditionData.ts index b1a5e33353..890d2d22bf 100644 --- a/src/testing/mock-data/mockEditionData.ts +++ b/src/testing/mock-data/mockEditionData.ts @@ -134,6 +134,36 @@ export const mockEditionData = { }, ], }, + { + complexId: 'op12', + sheetId: 'M_212_Sk3', + sigle: 'M 212 Sk3', + sigleAddendum: 'T. 3', + sectionPartition: 1, + sections: [ + { + position: 1, + startSystem: 5, + endSystem: 7, + relativeToSystem: 'above', + }, + ], + }, + { + complexId: 'op12', + sheetId: 'M_212_Sk2', + sigle: 'M 212 Sk2', + sigleAddendum: 'T. 2', + sectionPartition: 1, + sections: [ + { + position: 1, + startSystem: 5, + endSystem: 7, + relativeToSystem: 'below', + }, + ], + }, ], }, ], diff --git a/src/testing/mock-data/mockEditionOutline.ts b/src/testing/mock-data/mockEditionOutline.ts index 4f932dd6f4..2d22ba2ff4 100644 --- a/src/testing/mock-data/mockEditionOutline.ts +++ b/src/testing/mock-data/mockEditionOutline.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { EDITION_COMPLEXES } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; /** * Test helper data file: mockEditionOutline. @@ -17,37 +17,37 @@ export const mockEditionOutline = [ sections: [ { section: EDITION_ROUTE_CONSTANTS.SECTION_1, - complexes: { opus: [], mnr: [] }, + complexTypes: { opus: [], mnr: [] }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_2, - complexes: { opus: [], mnr: [] }, + complexTypes: { opus: [], mnr: [] }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_3, - complexes: { opus: [], mnr: [] }, + complexTypes: { opus: [], mnr: [] }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexes: { opus: [], mnr: [] }, + complexTypes: { opus: [], mnr: [] }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_5, - complexes: { + complexTypes: { opus: [ - { complex: EDITION_COMPLEXES.OP12, disabled: false }, - { complex: EDITION_COMPLEXES.OP23, disabled: false }, - { complex: EDITION_COMPLEXES.OP25, disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('OP12'), disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('OP23'), disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('OP25'), disabled: false }, ], mnr: [ - { complex: EDITION_COMPLEXES.M212, disabled: false }, - { complex: EDITION_COMPLEXES.M213, disabled: false }, - { complex: EDITION_COMPLEXES.M216, disabled: false }, - { complex: EDITION_COMPLEXES.M217, disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('M212'), disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('M213'), disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('M216'), disabled: false }, + { complex: EditionComplexesService.getEditionComplexById('M217'), disabled: false }, ], }, disabled: true, diff --git a/yarn.lock b/yarn.lock index 6e9a3e8233..dcdc446fd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1801.4": - version: 0.1801.4 - resolution: "@angular-devkit/architect@npm:0.1801.4" +"@angular-devkit/architect@npm:0.1802.4": + version: 0.1802.4 + resolution: "@angular-devkit/architect@npm:0.1802.4" dependencies: - "@angular-devkit/core": "npm:18.1.4" + "@angular-devkit/core": "npm:18.2.4" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/633c665fa9e508cc499651717ab23d2763a48a89677d5b34bd949b2eeb1a7824c20ee2ed9abe6d623f9a1bf425ce2ad02ce270ca58a6115ba3bdc3580d175164 + checksum: 10c0/cf60d7dfe380e932d540440b61ea7e97bd70f77acfc8c13093cf9c69d1011ae76ba48b28da1f1cb8ef7f3021c693e11c0b3514b6f6a7af983bf3ac113870a90e languageName: node linkType: hard @@ -47,47 +47,47 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular-devkit/build-angular@npm:18.1.4" +"@angular-devkit/build-angular@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/build-angular@npm:18.2.4" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1801.4" - "@angular-devkit/build-webpack": "npm:0.1801.4" - "@angular-devkit/core": "npm:18.1.4" - "@angular/build": "npm:18.1.4" - "@babel/core": "npm:7.24.7" - "@babel/generator": "npm:7.24.7" + "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/build-webpack": "npm:0.1802.4" + "@angular-devkit/core": "npm:18.2.4" + "@angular/build": "npm:18.2.4" + "@babel/core": "npm:7.25.2" + "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:7.25.0" "@babel/plugin-transform-async-to-generator": "npm:7.24.7" "@babel/plugin-transform-runtime": "npm:7.24.7" - "@babel/preset-env": "npm:7.24.7" - "@babel/runtime": "npm:7.24.7" - "@discoveryjs/json-ext": "npm:0.5.7" - "@ngtools/webpack": "npm:18.1.4" + "@babel/preset-env": "npm:7.25.3" + "@babel/runtime": "npm:7.25.0" + "@discoveryjs/json-ext": "npm:0.6.1" + "@ngtools/webpack": "npm:18.2.4" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.19" + autoprefixer: "npm:10.4.20" babel-loader: "npm:9.1.3" browserslist: "npm:^4.21.5" copy-webpack-plugin: "npm:12.0.2" critters: "npm:0.0.24" css-loader: "npm:7.1.2" - esbuild: "npm:0.21.5" - esbuild-wasm: "npm:0.21.5" + esbuild: "npm:0.23.0" + esbuild-wasm: "npm:0.23.0" fast-glob: "npm:3.3.2" http-proxy-middleware: "npm:3.0.0" https-proxy-agent: "npm:7.0.5" - istanbul-lib-instrument: "npm:6.0.2" + istanbul-lib-instrument: "npm:6.0.3" jsonc-parser: "npm:3.3.1" karma-source-map-support: "npm:1.4.0" less: "npm:4.2.0" less-loader: "npm:12.2.0" license-webpack-plugin: "npm:4.0.2" loader-utils: "npm:3.3.1" - magic-string: "npm:0.30.10" + magic-string: "npm:0.30.11" mini-css-extract-plugin: "npm:2.9.0" mrmime: "npm:2.0.0" open: "npm:10.1.0" @@ -95,25 +95,24 @@ __metadata: parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" piscina: "npm:4.6.1" - postcss: "npm:8.4.38" + postcss: "npm:8.4.41" postcss-loader: "npm:8.1.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.1" sass: "npm:1.77.6" - sass-loader: "npm:14.2.1" - semver: "npm:7.6.2" + sass-loader: "npm:16.0.0" + semver: "npm:7.6.3" source-map-loader: "npm:5.0.0" source-map-support: "npm:0.5.21" - terser: "npm:5.29.2" + terser: "npm:5.31.6" tree-kill: "npm:1.2.2" tslib: "npm:2.6.3" - undici: "npm:6.19.2" - vite: "npm:5.3.2" + vite: "npm:5.4.0" watchpack: "npm:2.4.1" - webpack: "npm:5.92.1" - webpack-dev-middleware: "npm:7.2.1" + webpack: "npm:5.94.0" + webpack-dev-middleware: "npm:7.4.2" webpack-dev-server: "npm:5.0.4" - webpack-merge: "npm:5.10.0" + webpack-merge: "npm:6.0.1" webpack-subresource-integrity: "npm:5.1.0" peerDependencies: "@angular/compiler-cli": ^18.0.0 @@ -158,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/17463a4c4b1bc6a6013fa5476e59c53c092f253256b35dbfb26acfc58c9e9edaf3c16ef857cdcacfa72118d3410202b085c94ab06c76364d093c4b6189d727c2 + checksum: 10c0/855292cbcd02e7793d270373356c4ff35775ab7981bb6bbc044bb822906a8e91fbad568a9afff5b80e5720f8dd47e1a95618e7141ade63c3c1ce684dffd961c5 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1801.4": - version: 0.1801.4 - resolution: "@angular-devkit/build-webpack@npm:0.1801.4" +"@angular-devkit/build-webpack@npm:0.1802.4": + version: 0.1802.4 + resolution: "@angular-devkit/build-webpack@npm:0.1802.4" dependencies: - "@angular-devkit/architect": "npm:0.1801.4" + "@angular-devkit/architect": "npm:0.1802.4" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -176,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/4a2b7bdca61c1ad76cbed827fb385c6885cad597c5a7cd90ec4a4eefc95d44fcd4c4d30997ee5604179b0e3ede7300b447fe731654024d4dc32af6e1228cb348 + checksum: 10c0/b105403e6ae52376b32c0026a0030ed820be1ee83540a1fad245f7762c7674c83447bb16d8b13b017701ea912aede7e20115aecbdae4e72118849de8d5abc2ac languageName: node linkType: hard @@ -218,11 +217,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.1.4": - version: 18.1.4 - resolution: "@angular-devkit/core@npm:18.1.4" +"@angular-devkit/core@npm:18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/core@npm:18.2.4" dependencies: - ajv: "npm:8.16.0" + ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" jsonc-parser: "npm:3.3.1" picomatch: "npm:4.0.2" @@ -238,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/5347b9d7dd2f6f833b8dd14d52d1bc9231e3986675127fff336550cc291f1996364580589cfee0ee51de9edd780cc98a7cad31e96376d12eccb9f6f9b29b3ef6 + checksum: 10c0/e2a1ffe35dfc25709931ee21d954d305511e988e48e94439e0e63401d1e2f048dc3f96f9a4efe5a3fadb5777ce74b55f1ceb233ec3b53cd33b64d466f5c27d37 languageName: node linkType: hard @@ -255,13 +254,13 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.1.4": - version: 18.1.4 - resolution: "@angular-devkit/schematics@npm:18.1.4" +"@angular-devkit/schematics@npm:18.2.4": + version: 18.2.4 + resolution: "@angular-devkit/schematics@npm:18.2.4" dependencies: - "@angular-devkit/core": "npm:18.1.4" + "@angular-devkit/core": "npm:18.2.4" jsonc-parser: "npm:3.3.1" - magic-string: "npm:0.30.10" + magic-string: "npm:0.30.11" ora: "npm:5.4.1" rxjs: "npm:7.8.1" dependenciesMeta: @@ -269,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/0c1289dd80643adf577ee5d1baaffa97c30711f4b983587da2b204cfe1d0eda1dc95874f0e581771f06402cd07e3684f2262c65be8aaf7ac5df48cb80c608b3c + checksum: 10c0/c0c4ef9490c2f002e9c150d2168c6bba147ef2318c1d6fcd39053cadab460691065ed6c2da51c615e7f78566816652b35c906667994c6f4c7ed24c589c372f94 languageName: node linkType: hard @@ -286,141 +285,134 @@ __metadata: languageName: node linkType: hard -"@angular-eslint/builder@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/builder@npm:18.2.0" - dependencies: - "@nx/devkit": "npm:^19.0.6" - nx: "npm:^19.0.6" +"@angular-eslint/builder@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/builder@npm:18.3.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/1f94e1ca1e346621f94ce5abba5b90028afd9a0fe7e6e42d006d15ffe87d856a863308bb926bcd407c5187d502ee6d56aa2291a27030f06b5d2317564b3451b1 + checksum: 10c0/26202232826e05d04849611733fed9c53cdf6c97bc1235a3b1cbd8eba3c6d09da0b28e6813780e8f726037f2ecacbc2bc722afe62e3a3a192b20848413a11c1d languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/bundled-angular-compiler@npm:18.2.0" - checksum: 10c0/404ea5bd3b2c06d81be91e1dbac707b3d8103b09d6a7dbc261005476648b7f9389c94568171d09a973a98c995a8100889410ea17d1bcf52a78cad2108b8b7d03 +"@angular-eslint/bundled-angular-compiler@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/bundled-angular-compiler@npm:18.3.1" + checksum: 10c0/8808ca1927cd95f5aae8471d0d16c69f34bb411232cf8a53a1b585255dae9b460fd7bea17d1b1fdc2ea05971a79b860446ee62436d479d16b8a37241caa8b655 languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:18.2.0, @angular-eslint/eslint-plugin-template@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/eslint-plugin-template@npm:18.2.0" +"@angular-eslint/eslint-plugin-template@npm:18.3.1, @angular-eslint/eslint-plugin-template@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin-template@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.2.0" - "@angular-eslint/utils": "npm:18.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" aria-query: "npm:5.3.0" axobject-query: "npm:4.1.0" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/471f90492b8cf03d8b08d43ef0d9f091a8c4752453bc5133d4cc9ee68e9082825f1dd7842437c84554334a59f531ac8e23c649f9496c49a322d474a4a01b94b8 + checksum: 10c0/43cbdbb42c5dd99d9c54fc94f1603c57d72c60d33d1c1efc45de3cd0b11f29a206ad7035f329d4ee93c14957c3e32f854faa09b9c11004107e4630e53fdabf8a languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:18.2.0, @angular-eslint/eslint-plugin@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/eslint-plugin@npm:18.2.0" +"@angular-eslint/eslint-plugin@npm:18.3.1, @angular-eslint/eslint-plugin@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.2.0" - "@angular-eslint/utils": "npm:18.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/cb016b2b91747e98f2e5c7b183a1684f1e0e8b77aafd44d0f1a47efbc56259dc1adfa669cabdff5ab845bf8621d0815f9a1306d011aab0efdd3d789614e6e8cc + checksum: 10c0/5959d515e5eb206127c137db8b247c4e1416fe755c0e1460e611cdfd37938081ecdd7417bcdf2bf519b447d0724f9ca1e596a76b4fadbbf4f8dff1153c8a771f languageName: node linkType: hard -"@angular-eslint/schematics@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/schematics@npm:18.2.0" +"@angular-eslint/schematics@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/schematics@npm:18.3.1" dependencies: - "@angular-eslint/eslint-plugin": "npm:18.2.0" - "@angular-eslint/eslint-plugin-template": "npm:18.2.0" - "@nx/devkit": "npm:^19.0.6" - ignore: "npm:5.3.1" - nx: "npm:^19.0.6" + "@angular-eslint/eslint-plugin": "npm:18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:18.3.1" + ignore: "npm:5.3.2" semver: "npm:7.6.3" strip-json-comments: "npm:3.1.1" peerDependencies: "@angular-devkit/core": ">= 18.0.0 < 19.0.0" "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" - checksum: 10c0/4d43da585bef4ebed44d4809999e86fb34ac84151fc7fdb8df46d550e76ae08a0dad7c1af48e0c19cb0f81434620d7964b59ce7fdc0a63e059f5b458e324ed3f + checksum: 10c0/0083120df5993a3adbd8b19817c9d1e0ade95245292d47be97e0ef3c0eec1f4dd2bcde6e080597127bc1875236d93774a6fa0134a0f23edd74b074c78325ba03 languageName: node linkType: hard -"@angular-eslint/template-parser@npm:^18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/template-parser@npm:18.2.0" +"@angular-eslint/template-parser@npm:^18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/template-parser@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" eslint-scope: "npm:^8.0.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/d417bcd14fb3f01544d1cc9e4dde11e8e1a850b5d5739460f051da80039b655abe914b68181e693d774cea6e099cc520d9646901fe86f96be94c94b1c01f3dd8 + checksum: 10c0/a109cae442bc115b0fc2d4a40402f02e75497945a5f827422143d20ed3957b3f165920c380a2731758cb23f71de31cac53fc7e2597eba6c674cf87200a2238d2 languageName: node linkType: hard -"@angular-eslint/utils@npm:18.2.0": - version: 18.2.0 - resolution: "@angular-eslint/utils@npm:18.2.0" +"@angular-eslint/utils@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/utils@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/74cf8d22b266fca336f1db2fd721d3c3ed441ebfbe2cdf9cb3f0fa6fe7c5628984a1af71335f975bec07a7a5186295fde62166a44f5ddf1837e6cf80ddce566b + checksum: 10c0/c0d1b7e78736957c5555bd389fb81674e7d15d21b07457c2a669d12b26b9c499cb2bbbfc6575c2d173ad18187ff151f97962d46182bd5df8fc11168672a29266 languageName: node linkType: hard -"@angular/animations@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/animations@npm:18.1.4" +"@angular/animations@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/animations@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.1.4 - checksum: 10c0/6a0d2e8c94c462d934afa15924a54020b51922a441038753085236e627fa38950715ed2edde795d7ead0bad38170b28e8cf0716f1054244a25ed7c367e45f191 + "@angular/core": 18.2.4 + checksum: 10c0/85b161d32b5009fb9bdc5b9311ad8d274dc44f7aab9e4b1dfb449724b079b9652916223ad1518b1b027d1b1d22b079e886fd9bc4bf6d3c68b9cb1ffd3bbbd59f languageName: node linkType: hard -"@angular/build@npm:18.1.4": - version: 18.1.4 - resolution: "@angular/build@npm:18.1.4" +"@angular/build@npm:18.2.4": + version: 18.2.4 + resolution: "@angular/build@npm:18.2.4" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1801.4" - "@babel/core": "npm:7.24.7" + "@angular-devkit/architect": "npm:0.1802.4" + "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" "@babel/plugin-syntax-import-attributes": "npm:7.24.7" - "@inquirer/confirm": "npm:3.1.11" + "@inquirer/confirm": "npm:3.1.22" "@vitejs/plugin-basic-ssl": "npm:1.1.0" - ansi-colors: "npm:4.1.3" browserslist: "npm:^4.23.0" critters: "npm:0.0.24" - esbuild: "npm:0.21.5" + esbuild: "npm:0.23.0" fast-glob: "npm:3.3.2" https-proxy-agent: "npm:7.0.5" - lmdb: "npm:3.0.12" - magic-string: "npm:0.30.10" + listr2: "npm:8.2.4" + lmdb: "npm:3.0.13" + magic-string: "npm:0.30.11" mrmime: "npm:2.0.0" - ora: "npm:5.4.1" parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" piscina: "npm:4.6.1" - rollup: "npm:4.18.0" + rollup: "npm:4.20.0" sass: "npm:1.77.6" - semver: "npm:7.6.2" - undici: "npm:6.19.2" - vite: "npm:5.3.2" + semver: "npm:7.6.3" + vite: "npm:5.4.0" watchpack: "npm:2.4.1" peerDependencies: "@angular/compiler-cli": ^18.0.0 @@ -449,29 +441,29 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/ac9ea01e943f011b56f0f24c4f58be07dfed089c06cd89ac036b5560bc2d7a158b3152404a3e3e2980643c80eebacac37bb846762d2259a014406928bafadd31 + checksum: 10c0/204927d738257a91620908fe70086b9c3e47184ebeceb20647c282debc22b0ad502561e04f6ca9a03a8fd802d03e570c6c91a51c358bee5c7c1013dce7172329 languageName: node linkType: hard -"@angular/cli@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/cli@npm:18.1.4" +"@angular/cli@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/cli@npm:18.2.4" dependencies: - "@angular-devkit/architect": "npm:0.1801.4" - "@angular-devkit/core": "npm:18.1.4" - "@angular-devkit/schematics": "npm:18.1.4" - "@inquirer/prompts": "npm:5.0.7" - "@listr2/prompt-adapter-inquirer": "npm:2.0.13" - "@schematics/angular": "npm:18.1.4" + "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/schematics": "npm:18.2.4" + "@inquirer/prompts": "npm:5.3.8" + "@listr2/prompt-adapter-inquirer": "npm:2.0.15" + "@schematics/angular": "npm:18.2.4" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" - listr2: "npm:8.2.3" - npm-package-arg: "npm:11.0.2" - npm-pick-manifest: "npm:9.0.1" + listr2: "npm:8.2.4" + npm-package-arg: "npm:11.0.3" + npm-pick-manifest: "npm:9.1.0" pacote: "npm:18.0.6" resolve: "npm:1.22.8" - semver: "npm:7.6.2" + semver: "npm:7.6.3" symbol-observable: "npm:4.0.0" yargs: "npm:17.7.2" dependenciesMeta: @@ -481,27 +473,27 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/698a9eff7e3471c59027907bb56e7f0acbd65dec1f90d1f3d8fdaa9d635c52aea79dba340a2ef903e528e069c02e32bbdceb118fa014f8c5d82cc7b68caa9c49 + checksum: 10c0/7da10419ec3c09ddedd18e2a2621bc493b4849309b7b66d08cb2b76d8354aae2ba1afc8a4d5c843d9cc99b04cb5a6d4e386e4235647e3d35bdba3f06d124847e languageName: node linkType: hard -"@angular/common@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/common@npm:18.1.4" +"@angular/common@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/common@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.1.4 + "@angular/core": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/361ca657dd07f7ebd3cbe195554216e405b841077b91e356366b70dd956fb0df8e24cbba7ae948467a210a131e3dad09077cc5c811692d858842c0854a0ae265 + checksum: 10c0/8e167a48e7ac85277c3f52e797a2dfe6eb804b862ccd1b3d8c0e1b9d3c558df699d6e92dd7ca6d75de63b8b89292d3a9e74baba8a8c246ddb4ca0c4b9a7230ef languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/compiler-cli@npm:18.1.4" +"@angular/compiler-cli@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/compiler-cli@npm:18.2.4" dependencies: - "@babel/core": "npm:7.24.9" + "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" chokidar: "npm:^3.0.0" convert-source-map: "npm:^1.5.1" @@ -510,143 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.1.4 + "@angular/compiler": 18.2.4 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/1cae47e10fa0d89e4085af605776d676217e50b703f4e52ce1e628aac8fb6e3d458e293802b14af139d849b8156f201732868aec2b4072bc5ea0b435b7ed21ce + checksum: 10c0/5535e188096e789960cfedcab68162ea088c62fc7deb0aac4223ddd8a976e4935cec3b0fc999a4d7c0daaaab9811f9de92735384f6f519c32481231bb59a9964 languageName: node linkType: hard -"@angular/compiler@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/compiler@npm:18.1.4" +"@angular/compiler@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/compiler@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.1.4 + "@angular/core": 18.2.4 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/6bea88cf8004dc6be85f8e1ddd65abebc2ddf360bfce2f5f6225dccdd3ba7b3b8e53354172f4c0d84735ddc5afe82b88467a202fe41bed1656b10dabb852f489 + checksum: 10c0/fc7d0162652572afebcd7a19ae2a68dd1eeea926b1b4e34db9ff8788ce58ad4b89ca2a99335d8ca3bb75db2a60273e09437bafd325a556a2b63d73a5894b19b4 languageName: node linkType: hard -"@angular/core@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/core@npm:18.1.4" +"@angular/core@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/core@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 - zone.js: ~0.14.0 - checksum: 10c0/71c126d52cf5760e698805d5c9d154e801b2240baf53827b2b2d16fe0000d97f6484b9bab4505b591d636d0761129e09de88438f3eb130449a7512d14911ce54 + zone.js: ~0.14.10 + checksum: 10c0/994c93006297964670050e108b32a73329e5ad734247a0f5cf02abe8c52c14ea1fa819955aecb634ec7228d5aea8cc5488f21d8e55f4eff61db697b3f88209aa languageName: node linkType: hard -"@angular/forms@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/forms@npm:18.1.4" +"@angular/forms@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/forms@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.1.4 - "@angular/core": 18.1.4 - "@angular/platform-browser": 18.1.4 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/05f8808759e8e75bc9c0272fc0ba56501760d618282b4993e0af1da8985365e01fa17c6a385b7b3571f57af59dbebbd9e046c9d914fde29118f933dabbdf3076 + checksum: 10c0/3392feeebba64068cf692fdee1dcf8a1d6c91229b85440a75627c4ec2b519af7435310376568fa10fb94c2796ee40497ea0b5e7847d9599d286bcd35d7f68874 languageName: node linkType: hard -"@angular/localize@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/localize@npm:18.1.4" +"@angular/localize@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/localize@npm:18.2.4" dependencies: - "@babel/core": "npm:7.24.9" + "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.1.4 - "@angular/compiler-cli": 18.1.4 + "@angular/compiler": 18.2.4 + "@angular/compiler-cli": 18.2.4 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/091f020f2459df5c500e3e9e2746849b45e4a1989632fd27626a8ebaa85bf0a5bd300043f82e9be1785c5ebc7e003eeb6687621a808a6f5b80ee7e6129e0b42c + checksum: 10c0/858b0a4f08e4e00ecd94d1cd8112d455ca6581830d3f01cc08635a4546f28c839930d5b5caa442938769480f7020b23a49d4100aeeb0b0780a4d2b607fa8f3db languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/platform-browser-dynamic@npm:18.1.4" +"@angular/platform-browser-dynamic@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-browser-dynamic@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.1.4 - "@angular/compiler": 18.1.4 - "@angular/core": 18.1.4 - "@angular/platform-browser": 18.1.4 - checksum: 10c0/b29d462afdfb5743abe2ab037504fed33a94ab1abf50950613573bc32659691d17b2fe145ba93987fc884ead775f52ac6322ba3b9850ada2d2d23ff9e2da0d84 + "@angular/common": 18.2.4 + "@angular/compiler": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 + checksum: 10c0/efbf21ea037746071f17acec38cabec7df5443c094e7a3540fbe150154394b32934812415b8860755b6685fdff1b757386e3616da464b2ac8b79e41d58ded647 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/platform-browser@npm:18.1.4" +"@angular/platform-browser@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-browser@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.1.4 - "@angular/common": 18.1.4 - "@angular/core": 18.1.4 + "@angular/animations": 18.2.4 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/0f5fb7186a61fb04b541f1f1e44799e7f225fbb04ab2ac5772fedfa6f352bb56ad22c73543e69e77bda0c20a0bbedfe410378bb4d6ba06e169b23e148245502b + checksum: 10c0/acbce33423cdcd181984b92f896db7924de86962c69612be1660cc598dcbf1940481cb8c71f6dcedc7b8122b6a0f429a55ce0558399a662418f3a413e40af6fb languageName: node linkType: hard -"@angular/platform-server@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/platform-server@npm:18.1.4" +"@angular/platform-server@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/platform-server@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.1.4 - "@angular/common": 18.1.4 - "@angular/compiler": 18.1.4 - "@angular/core": 18.1.4 - "@angular/platform-browser": 18.1.4 - checksum: 10c0/36d73c47fe1b1f2c95a10c182b65a60c595cb0a532c853fefbaa3a87b71ff54caf2c9a5d3df27fe2ad03f36d5322f54fa94942725742b2d90eaf5917e854a212 + "@angular/animations": 18.2.4 + "@angular/common": 18.2.4 + "@angular/compiler": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 + checksum: 10c0/b5b38459e801bf5ea3e4b030b2875fd8b3c42b75c72bfafc10eff3e9500a1a0e9dadf7399c8739db73790b668c733ed0ad1d504ebc32c52ce4c48d1b390fbe6c languageName: node linkType: hard -"@angular/router@npm:^18.1.4": - version: 18.1.4 - resolution: "@angular/router@npm:18.1.4" +"@angular/router@npm:^18.2.4": + version: 18.2.4 + resolution: "@angular/router@npm:18.2.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.1.4 - "@angular/core": 18.1.4 - "@angular/platform-browser": 18.1.4 + "@angular/common": 18.2.4 + "@angular/core": 18.2.4 + "@angular/platform-browser": 18.2.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/dba54db70e10d72a94c08e8177b9bbbab13a8be3206ed9b5446ce9af14560b0c6553c344efee5bfec8b09d5abebad14e2fa6c302bbab5d8fc0ab3c5b2a523f81 - languageName: node - linkType: hard - -"@asamuzakjp/dom-selector@npm:^2.0.1": - version: 2.0.2 - resolution: "@asamuzakjp/dom-selector@npm:2.0.2" - dependencies: - bidi-js: "npm:^1.0.3" - css-tree: "npm:^2.3.1" - is-potential-custom-element-name: "npm:^1.0.1" - checksum: 10c0/54d9afa3d654a98fcf2e45c53ea330237e513877f130f8c8c17611c603c8d50cb18f937e1b0bcc08f0030443a9c8479dcad9cebff02766025e2df2754459c647 + checksum: 10c0/6bf286fa53684ef49b28b4e6c33387da894eedc6281d012d68905240a7d84770481da43f3df70567616b5e74db3041d19521d2cf64f20af4283d67f31b1abecb languageName: node linkType: hard @@ -674,7 +655,37 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.24.7, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.6": +"@babel/compat-data@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/compat-data@npm:7.25.2" + checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5 + languageName: node + linkType: hard + +"@babel/core@npm:7.25.2": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + languageName: node + linkType: hard + +"@babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.6": version: 7.24.7 resolution: "@babel/core@npm:7.24.7" dependencies: @@ -697,30 +708,19 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.24.9": - version: 7.24.9 - resolution: "@babel/core@npm:7.24.9" +"@babel/generator@npm:7.25.0, @babel/generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.24.9" - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-module-transforms": "npm:^7.24.9" - "@babel/helpers": "npm:^7.24.8" - "@babel/parser": "npm:^7.24.8" - "@babel/template": "npm:^7.24.7" - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.9" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/e104ec6efbf099f55184933e9ab078eb5821c792ddfef3e9c6561986ec4ff103f5c11e3d7d6e5e8929e50e2c58db1cc80e5b6f14b530335b6622095ec4b4124c + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 languageName: node linkType: hard -"@babel/generator@npm:7.24.7, @babel/generator@npm:^7.24.7": +"@babel/generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/generator@npm:7.24.7" dependencies: @@ -732,7 +732,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9": +"@babel/generator@npm:^7.24.8": version: 7.24.10 resolution: "@babel/generator@npm:7.24.10" dependencies: @@ -789,6 +789,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-validator-option": "npm:^7.24.8" + browserslist: "npm:^4.23.1" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" @@ -821,6 +834,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.0": + version: 7.25.2 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/85a7e3639c118856fb1113f54fb7e3bf7698171ddfd0cd6fccccd5426b3727bc1434fe7f69090441dcde327feef9de917e00d35e47ab820047057518dd675317 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": version: 0.6.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" @@ -874,6 +900,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" + dependencies: + "@babel/traverse": "npm:^7.24.8" + "@babel/types": "npm:^7.24.8" + checksum: 10c0/7e14a5acc91f6cd26305a4441b82eb6f616bd70b096a4d2099a968f16b26d50207eec0b9ebfc466fefd62bd91587ac3be878117cdfec819b7151911183cb0e5a + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" @@ -899,18 +935,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/helper-module-transforms@npm:7.24.9" +"@babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" "@babel/helper-module-imports": "npm:^7.24.7" "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.2" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/e27bca43bc113731ee4f2b33a4c5bf9c7eebf4d64487b814c305cbd5feb272c29fcd3d79634ba03131ade171e5972bc7ede8dbc83ba0deb02f1e62d318c87770 + checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 languageName: node linkType: hard @@ -930,6 +965,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" @@ -943,6 +985,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-wrap-function": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/0d17b5f7bb6a607edc9cc62fff8056dd9f341bf2f919884f97b99170d143022a5e7ae57922c4891e4fc360ad291e708d2f8cd8989f1d3cd7a17600159984f5a6 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -956,6 +1011,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.24.8" + "@babel/helper-optimise-call-expression": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/b4b6650ab3d56c39a259367cd97f8df2f21c9cebb3716fea7bca40a150f8847bfb82f481e98927c7c6579b48a977b5a8f77318a1c6aeb497f41ecd6dbc3fdfef + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -1032,6 +1100,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-wrap-function@npm:7.25.0" + dependencies: + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/d54601a98384c191cbc1ff07b03a19e288ef8d5c6bfafe270b2a303d96e7304eb296002921ed464cc1b105a547d1db146eb86b0be617924dee1ba1b379cdc216 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helpers@npm:7.24.7" @@ -1042,13 +1121,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helpers@npm:7.24.8" +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" dependencies: - "@babel/template": "npm:^7.24.7" - "@babel/types": "npm:^7.24.8" - checksum: 10c0/42b8939b0a0bf72d6df9721973eb0fd7cd48f42641c5c9c740916397faa586255c06d36c6e6a7e091860723096281c620f6ffaee0011a3bb254a6f5475d89a12 + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8 languageName: node linkType: hard @@ -1082,6 +1161,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" @@ -1094,6 +1184,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/814b4d3f102e7556a5053d1acf57ef601cfcff39a2c81b8cdc6a5c842e3cb9838f5925d1466a5f1e6416e74c9c83586a3c07fbd7fb8610a396c2becdf9ae5790 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/9645a1f47b3750acadb1353c02e71cc712d072aafe5ce115ed3a886bc14c5d9200cfb0b5b5e60e813baa549b800cf798f8714019fd246c699053cf68c428e426 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" @@ -1105,6 +1218,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ed1ce1c90cac46c01825339fd0f2a96fa071b016fb819d8dfaf8e96300eae30e74870cb47e4dc80d4ce2fb287869f102878b4f3b35bc927fec8b1d0d76bcf612 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" @@ -1130,6 +1254,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/45988025537a9d4a27b610fd696a18fd9ba9336621a69b4fb40560eeb10c79657f85c92a37f30c7c8fb29c22970eea0b373315795a891f1a05549a6cfe5a6bfe + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -1349,7 +1485,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:7.24.7, @babel/plugin-transform-async-generator-functions@npm:^7.24.7": +"@babel/plugin-transform-async-generator-functions@npm:7.25.0, @babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-remap-async-to-generator": "npm:^7.25.0" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5348c3a33d16e0d62f13482c6fa432185ba096d58880b08d42450f7db662d6b03e6149d495c8620897dcd3da35061068cbd6c09da7d0ec95743e55a788809e4e + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" dependencies: @@ -1398,6 +1548,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/382931c75a5d0ea560387e76cb57b03461300527e4784efcb2fb62f36c1eb0ab331327b6034def256baa0cad9050925a61f9c0d56261b6afd6a29c3065fb0bd4 + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" @@ -1441,6 +1602,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-classes@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-replace-supers": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4451dccf8a7979427ae042afe381233f30764a8072faf0de1337a4fc297c6d7cb40df9e28931ac096e5b56392d0cd97d3ce10aee68288150a8701624d362a791 + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" @@ -1464,6 +1641,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/804968c1d5f5072c717505296c1e5d5ec33e90550423de66de82bbcb78157156e8470bbe77a04ab8c710a88a06360a30103cf223ac7eff4829adedd6150de5ce + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" @@ -1487,6 +1675,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/1c9b57ddd9b33696e88911d0e7975e1573ebc46219c4b30eb1dc746cbb71aedfac6f6dab7fdfdec54dd58f31468bf6ab56b157661ea4ffe58f906d71f89544c8 + languageName: node + linkType: hard + "@babel/plugin-transform-dynamic-import@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" @@ -1548,6 +1748,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.1 + resolution: "@babel/plugin-transform-function-name@npm:7.25.1" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e74912174d5e33d1418b840443c2e226a7b76cc017c1ed20ee30a566e4f1794d4a123be03180da046241576e8b692731807ba1f52608922acf1cb2cb6957593f + languageName: node + linkType: hard + "@babel/plugin-transform-json-strings@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" @@ -1571,6 +1784,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/plugin-transform-literals@npm:7.25.2" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0796883217b0885d37e7f6d350773be349e469a812b6bf11ccf862a6edf65103d3e7c849529d65381b441685c12e756751d8c2489a0fd3f8139bb5ef93185f58 + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" @@ -1619,6 +1843,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" + dependencies: + "@babel/helper-module-transforms": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-simple-access": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f1cf552307ebfced20d3907c1dd8be941b277f0364aa655e2b5fee828c84c54065745183104dae86f1f93ea0406db970a463ef7ceaaed897623748e99640e5a7 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" @@ -1633,6 +1870,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/fca6198da71237e4bb1274b3b67a0c81d56013c9535361242b6bfa87d70a9597854aadb45d4d8203369be4a655e158be2a5d20af0040b1f8d1bfc47db3ad7b68 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-umd@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" @@ -1743,6 +1994,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4ffbe1aad7dec7c9aa2bf6ceb4b2f91f96815b2784f2879bde80e46934f59d64a12cb2c6262e40897c4754d77d2c35d8a5cfed63044fdebf94978b1ed3d14b17 + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" @@ -1886,6 +2150,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2f570a4fbbdc5fd85f48165a97452826560051e3b8efb48c3bb0a0a33ee8485633439e7b71bfe3ef705583a1df43f854f49125bd759abdedc195b2cf7e60012a + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" @@ -1933,7 +2208,100 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.24.7, @babel/preset-env@npm:^7.24.6": +"@babel/preset-env@npm:7.25.3": + version: 7.25.3 + resolution: "@babel/preset-env@npm:7.25.3" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-validator-option": "npm:^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.0" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.24.7" + "@babel/plugin-transform-class-static-block": "npm:^7.24.7" + "@babel/plugin-transform-classes": "npm:^7.25.0" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" + "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-json-strings": "npm:^7.24.7" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" + "@babel/plugin-transform-modules-amd": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" + "@babel/plugin-transform-modules-umd": "npm:^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-new-target": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-object-super": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-property-literals": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-reserved-words": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-template-literals": "npm:^7.24.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" + "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.4" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + core-js-compat: "npm:^3.37.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9287dc2e296fe2aa3367d84c2a799db17c9d1e48bba86525f47c6f51f5ba2e2cce454f45f4ae2ef928f9077c0640b04556b55b94835675ceeca94a0c5133205e + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.24.6": version: 7.24.7 resolution: "@babel/preset-env@npm:7.24.7" dependencies: @@ -2044,7 +2412,16 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.24.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:7.25.0": + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4": version: 7.24.7 resolution: "@babel/runtime@npm:7.24.7" dependencies: @@ -2064,6 +2441,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + languageName: node + linkType: hard + "@babel/traverse@npm:^7.24.7": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" @@ -2100,6 +2488,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/traverse@npm:7.25.3" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.2" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.24.7 resolution: "@babel/types@npm:7.24.7" @@ -2122,6 +2525,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 + languageName: node + linkType: hard + "@codemirror/autocomplete@npm:^6.0.0": version: 6.16.2 resolution: "@codemirror/autocomplete@npm:6.16.2" @@ -2165,12 +2579,12 @@ __metadata: languageName: node linkType: hard -"@codemirror/legacy-modes@npm:^6.4.0": - version: 6.4.0 - resolution: "@codemirror/legacy-modes@npm:6.4.0" +"@codemirror/legacy-modes@npm:^6.4.1": + version: 6.4.1 + resolution: "@codemirror/legacy-modes@npm:6.4.1" dependencies: "@codemirror/language": "npm:^6.0.0" - checksum: 10c0/0d4a4c120fcc2e476393a3e1fc6d5d396c9b64e3b4c35ea473fdb71f5117fbedca8be4e360321272880665dd8bd6aca2ce8736209056e9c7cec714f003ce28aa + checksum: 10c0/4a75eb664bde93f3979084c386a85074eb2522503220ca1999bb6b33cf188bca44c024aefa378f784db7f3d55ba9707abd4194fe1dc7a2cec330a5f986501644 languageName: node linkType: hard @@ -2221,201 +2635,200 @@ __metadata: languageName: node linkType: hard -"@commitlint/cli@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/cli@npm:19.4.0" +"@commitlint/cli@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/cli@npm:19.5.0" dependencies: - "@commitlint/format": "npm:^19.3.0" - "@commitlint/lint": "npm:^19.2.2" - "@commitlint/load": "npm:^19.4.0" - "@commitlint/read": "npm:^19.4.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" + "@commitlint/format": "npm:^19.5.0" + "@commitlint/lint": "npm:^19.5.0" + "@commitlint/load": "npm:^19.5.0" + "@commitlint/read": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + tinyexec: "npm:^0.3.0" yargs: "npm:^17.0.0" bin: commitlint: cli.js - checksum: 10c0/b3f4a0b07ae18c59bcc7c4a10fa5e265271d1f76b94d1c64371104b0f9cdabf8480c941382c3de5db53513b3c4785acc02f9445a1f357361ff4f5ff4ecdf5f4b + checksum: 10c0/a9fb05f3de2634764a7f36f693f39e90594dfc9174e6293a43c582c6a9181f69b346094790e3268e3482d7bb0d1d29c64e15785fb50278c8628f73750214a398 languageName: node linkType: hard -"@commitlint/config-angular-type-enum@npm:^19.1.0": - version: 19.1.0 - resolution: "@commitlint/config-angular-type-enum@npm:19.1.0" - checksum: 10c0/d5fd020ea5592c08d0855b95cc195ab9270fd262340dd43b8f2d30d45577eed5eb771dfb86d4382323544c4116737349f40c49c44a3bec28e0cd8beec7507990 +"@commitlint/config-angular-type-enum@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-angular-type-enum@npm:19.5.0" + checksum: 10c0/d8bb2ad6699e3413c8a9647b59cb866be0194c84adc17b1fe3a80c8b4d1fd972c9280940add39a2d79e8482173394b548a0bdebea4be054de94c6db3830a841e languageName: node linkType: hard -"@commitlint/config-angular@npm:^19.3.0": - version: 19.3.0 - resolution: "@commitlint/config-angular@npm:19.3.0" +"@commitlint/config-angular@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-angular@npm:19.5.0" dependencies: - "@commitlint/config-angular-type-enum": "npm:^19.1.0" - checksum: 10c0/b20966ea62f65f5254740c592c1ef5ca1504cee716f9f24455a57ecd25a10a76c67403d978d9a286b3dd7171d6aa27a1d980406d1504111af0a292c853374a63 + "@commitlint/config-angular-type-enum": "npm:^19.5.0" + checksum: 10c0/80291dec5cb81727931e91d20bf4b48ebded589b57b8d99c15f9ec11efee7c26d0c64207d4702361da8e77bd5dbfbb3620d7a615b0199d60e5123579dad1a0e0 languageName: node linkType: hard -"@commitlint/config-validator@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/config-validator@npm:19.0.3" +"@commitlint/config-validator@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-validator@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" ajv: "npm:^8.11.0" - checksum: 10c0/7a0d55837fb88b1f05892fed67a9582669331a452de96e4caec0c9a397cd6083701265b066e6e32a259b43737187cd31b15ab02b0459c817ea9e7b75602db3c7 + checksum: 10c0/f04b8c66448c9a4f335d1ac9625393d471d2bcc864adc834eeec52ce19939c25475bf90677504df03ab88869e883b4ebfddff68f99f7652900d6b297ef586643 languageName: node linkType: hard -"@commitlint/ensure@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/ensure@npm:19.0.3" +"@commitlint/ensure@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/ensure@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" lodash.camelcase: "npm:^4.3.0" lodash.kebabcase: "npm:^4.1.1" lodash.snakecase: "npm:^4.1.1" lodash.startcase: "npm:^4.4.0" lodash.upperfirst: "npm:^4.3.1" - checksum: 10c0/66785aeddec70e26766f6bb11b1f78892cabdb97b0b77fb97ca6457578e663188903933d5f64559205dd54754e8c2c4a902e73e1749e34cbe07a4b296e374d72 + checksum: 10c0/94955d424da36a4e9390dfb6e128160d1dcd3ffa20b835a9b6fdd92af46bf8897851f19cbeb9d12a70e9b9c36a993d3a48a60893e74f32fe1b601e1e68484d71 languageName: node linkType: hard -"@commitlint/execute-rule@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/execute-rule@npm:19.0.0" - checksum: 10c0/70d37f25a9af0a6adcd9ae7cadd4a917e8d219d316798469e2957608288d7cab8a3b03f7b132f1229a5ee545bbba139dc801d0006a7df3b756354b3890b9c1bb +"@commitlint/execute-rule@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/execute-rule@npm:19.5.0" + checksum: 10c0/966dfc09ae3fe609527fb49c7773ae210ade9d14a802a92a57ab251900a77d2968aed08df6b34f175bf4ae9bf5d675b52b346e7b10b717e8a635499e4cf42267 languageName: node linkType: hard -"@commitlint/format@npm:^19.3.0": - version: 19.3.0 - resolution: "@commitlint/format@npm:19.3.0" +"@commitlint/format@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/format@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" chalk: "npm:^5.3.0" - checksum: 10c0/857a1784481edad9013514cbcc9ec93af33acc8bd491f5d23625c53fb93841566ce110e3004ecaab7f4f89c9331940fe63b83922a4a81f419e67b70e0dc90e41 + checksum: 10c0/209a3d530d028d483886ea2337d6ec8a95b61119f53f7f1db167b13fd8a204bdcbcd704e649406a0b2285e8424b3bac9e1e6856d2a78f45e176976b9efb76e45 languageName: node linkType: hard -"@commitlint/is-ignored@npm:^19.2.2": - version: 19.2.2 - resolution: "@commitlint/is-ignored@npm:19.2.2" +"@commitlint/is-ignored@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/is-ignored@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" semver: "npm:^7.6.0" - checksum: 10c0/8e416edbf24ec386f6211d4879c002cf82fdebfd1f69556ae2ad62f6ae9b705aa20ea3108529fd44e7d246526c6133851905ee826a83efc81b2f11443a7d03c3 + checksum: 10c0/ac74cd00c45e9054366969d986a952b681283987af09995c369cab29fef693fe2c23d02f15883622759faf1787744828f832096a213992eefb9cfb16785ee02e languageName: node linkType: hard -"@commitlint/lint@npm:^19.2.2": - version: 19.2.2 - resolution: "@commitlint/lint@npm:19.2.2" +"@commitlint/lint@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/lint@npm:19.5.0" dependencies: - "@commitlint/is-ignored": "npm:^19.2.2" - "@commitlint/parse": "npm:^19.0.3" - "@commitlint/rules": "npm:^19.0.3" - "@commitlint/types": "npm:^19.0.3" - checksum: 10c0/e7b3ca6027fecc1a3eda0ee8c21ecef0071ddddc7711a922cc6eb53a590c7e4f00d550b01134a5ebaaae603a0afbeaf65809b12f8099e08cace9d594cb69ff4b + "@commitlint/is-ignored": "npm:^19.5.0" + "@commitlint/parse": "npm:^19.5.0" + "@commitlint/rules": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/8db4d5ca3173949368ed8626316c54554dc6ca0a8eed5c636d043974e1f628e41ddf52119e2251ad402a82ee30d3db20e8a9734452bda9ac7f724b2a152e0a7f languageName: node linkType: hard -"@commitlint/load@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/load@npm:19.4.0" +"@commitlint/load@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/load@npm:19.5.0" dependencies: - "@commitlint/config-validator": "npm:^19.0.3" - "@commitlint/execute-rule": "npm:^19.0.0" - "@commitlint/resolve-extends": "npm:^19.1.0" - "@commitlint/types": "npm:^19.0.3" + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/execute-rule": "npm:^19.5.0" + "@commitlint/resolve-extends": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" chalk: "npm:^5.3.0" cosmiconfig: "npm:^9.0.0" cosmiconfig-typescript-loader: "npm:^5.0.0" lodash.isplainobject: "npm:^4.0.6" lodash.merge: "npm:^4.6.2" lodash.uniq: "npm:^4.5.0" - checksum: 10c0/805fd80b1f0e127a03b89405c60535dd89fd6676c749ef86e4a41af787f3c9cae0c18c5d5ce906bd6620f566b37d19a4edff63d21539da4212414fd741e19c72 + checksum: 10c0/72fb5f3b2299cb40374181e4fb630658c7faf0cca775bd15338e9a49f9571134ef25529319b453ed0d68917346949abf88c44f73a132f89d8965d6b3e7347d0b languageName: node linkType: hard -"@commitlint/message@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/message@npm:19.0.0" - checksum: 10c0/753bf18838ebde4464e8f4b346d04d3367fbb90b542db6a54da08aa241497b4050a6ecd09dba4f37f6348855fa86e6625350d596fe5dea7a8dd4faee49ab76a7 +"@commitlint/message@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/message@npm:19.5.0" + checksum: 10c0/72b990ba8c3c41441bff2126f4ea536a635c9768dee7000b4951770ac82c5e0bb4c2d408cf28cadbf51a0abbdb7a09ddd36e0968af0997fcc166596d4c3866a7 languageName: node linkType: hard -"@commitlint/parse@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/parse@npm:19.0.3" +"@commitlint/parse@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/parse@npm:19.5.0" dependencies: - "@commitlint/types": "npm:^19.0.3" + "@commitlint/types": "npm:^19.5.0" conventional-changelog-angular: "npm:^7.0.0" conventional-commits-parser: "npm:^5.0.0" - checksum: 10c0/ede8d5bfb37520337ea7836a68f280cdb4b9788d0586b8be676394b3dd8a7a9626391178c4f94d334c5b8d95ea75c73939c40c8c9d81c372cf7743f5bff3d0e1 + checksum: 10c0/63655cedcf48b29613ef959155ee83f49942406abe40ee6b64ad989a169a0582451dcf15a9c9b69a66011ae451ab2e086fb80c1823cc7ddf275705ff627660b1 languageName: node linkType: hard -"@commitlint/read@npm:^19.4.0": - version: 19.4.0 - resolution: "@commitlint/read@npm:19.4.0" +"@commitlint/read@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/read@npm:19.5.0" dependencies: - "@commitlint/top-level": "npm:^19.0.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" + "@commitlint/top-level": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" git-raw-commits: "npm:^4.0.0" minimist: "npm:^1.2.8" - checksum: 10c0/b0243feeb903fe4bb15bc352b10116451ac280fffbf2220a684e0f01ce4583e558b944ff8a6901f8a70faa0ec6020fa720da70328fb110747dbd4a7162695125 + tinyexec: "npm:^0.3.0" + checksum: 10c0/c2d6f958930e815337a4994779ca1dfcbbb6b81b8f3098cc7380e2cc5ddeae69ebd839b48fecd08950e565d43bc42c479915c578eaf57b3877706bca1fad6b8a languageName: node linkType: hard -"@commitlint/resolve-extends@npm:^19.1.0": - version: 19.1.0 - resolution: "@commitlint/resolve-extends@npm:19.1.0" +"@commitlint/resolve-extends@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/resolve-extends@npm:19.5.0" dependencies: - "@commitlint/config-validator": "npm:^19.0.3" - "@commitlint/types": "npm:^19.0.3" + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" global-directory: "npm:^4.0.1" import-meta-resolve: "npm:^4.0.0" lodash.mergewith: "npm:^4.6.2" resolve-from: "npm:^5.0.0" - checksum: 10c0/5b4c69694ddf63f15499a940f99a39bdf0ae1943eb4731c7ea10572e416e44d6d57280faa8011801f4dc64aa70e55eb3b510c86c8e2b76820dcfe88b421afd4a + checksum: 10c0/10569a46036b7aa93c77dc5001a67bc9f36b340b97b2fd39b5ee95b0efc5e35335c61f86d4ba0bb5a8e6dd49ccf956990cce9ee29cfea9ba567e02668be01841 languageName: node linkType: hard -"@commitlint/rules@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/rules@npm:19.0.3" +"@commitlint/rules@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/rules@npm:19.5.0" dependencies: - "@commitlint/ensure": "npm:^19.0.3" - "@commitlint/message": "npm:^19.0.0" - "@commitlint/to-lines": "npm:^19.0.0" - "@commitlint/types": "npm:^19.0.3" - execa: "npm:^8.0.1" - checksum: 10c0/4a9a3f2fb838949707650a6bf2a016ec2b0ec570cb151d1005d01bdeb2e27adff5e5eab3c06a302c6834a88e2ec39090a5482bb57f2da51e6609c2b89e33d948 + "@commitlint/ensure": "npm:^19.5.0" + "@commitlint/message": "npm:^19.5.0" + "@commitlint/to-lines": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/8dc5a6e8277b78e9010f3bbc3aa3af6ac044d82501fb4df91f4edf14214a7dccb9bc9a85f7396872e197726edb506c8301e8b10d9c92e35fb44fe6423a5eeb23 languageName: node linkType: hard -"@commitlint/to-lines@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/to-lines@npm:19.0.0" - checksum: 10c0/9e8836668d176f4ddfa30bd6619cba9764223c5e0a76473c470b373069785ae2eb7af17db67e0e11ff30d8db997d0dd06a148bd8053c71fea1d03fc2278f0e8b +"@commitlint/to-lines@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/to-lines@npm:19.5.0" + checksum: 10c0/7674b4b6887c09e84728b9fa9c986ab77db400bf53ec83aaae84e03e0f3ed33088d450d1f67135f0f7a4cbc1121181775199779e1ca162fe604c902987e3008f languageName: node linkType: hard -"@commitlint/top-level@npm:^19.0.0": - version: 19.0.0 - resolution: "@commitlint/top-level@npm:19.0.0" +"@commitlint/top-level@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/top-level@npm:19.5.0" dependencies: find-up: "npm:^7.0.0" - checksum: 10c0/27ee2797f8d3d75aec3e9bf151b48fdbe4c362effbc2e7a11e6326342af06a29983fea5ad8756587e285c035b5ec45d4c4bc28cd698b62db31ca326db46efb64 + checksum: 10c0/8c1edc513c8d6655606e52d160d31ccd4b13234400ca67d21782798ab66701780b1ec21a7bb411fe8270db7735f10d39d3b0a3e52f3ddd1109b80741eb512bb4 languageName: node linkType: hard -"@commitlint/types@npm:^19.0.3": - version: 19.0.3 - resolution: "@commitlint/types@npm:19.0.3" +"@commitlint/types@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/types@npm:19.5.0" dependencies: "@types/conventional-commits-parser": "npm:^5.0.0" chalk: "npm:^5.3.0" - checksum: 10c0/279454409771097432cb3ecd4930b8f10e99e150b9306e931b69e4e80011a4251f326523bfaba59fcf9a9db7978c76073b7c7c07fbad6b90e045cb0fa2b70047 + checksum: 10c0/f4a93992f43b23cd5af200c69bb73227fdc0f78a6f7ebcda73dad10d558c1ac66ff164aa6dc3c2ddb322c9ed8b1a89b05f458e40d7c440a0358f435d2d71c2df languageName: node linkType: hard @@ -2553,14 +2966,21 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.46.0": - version: 0.46.0 - resolution: "@es-joy/jsdoccomment@npm:0.46.0" +"@discoveryjs/json-ext@npm:0.6.1": + version: 0.6.1 + resolution: "@discoveryjs/json-ext@npm:0.6.1" + checksum: 10c0/116838b9685f26ce88335703f0f0cb84a242f9db93a6b408676c314a3bfd916ef405d84c3ff427e882dc4775b586e3a8a9d88fecc07cc93cbd33f6d560db29bf + languageName: node + linkType: hard + +"@es-joy/jsdoccomment@npm:~0.48.0": + version: 0.48.0 + resolution: "@es-joy/jsdoccomment@npm:0.48.0" dependencies: comment-parser: "npm:1.4.1" esquery: "npm:^1.6.0" - jsdoc-type-pratt-parser: "npm:~4.0.0" - checksum: 10c0/a7a67936ebf6d9aaf74af018c3ac744769af3552b05ad9b88fca96b2ffdca16e724b0ff497f53634ec4cca81e98d8c471b6b6bde0fa5b725af4222ad9a0707f0 + jsdoc-type-pratt-parser: "npm:~4.1.0" + checksum: 10c0/8d87c7c0426fade009c30ab429d4ede53fd253d40b55079c02bdacdaa4c0fe904aaea5e3084cd98052f2bed6b3030c381d84f4a3251b343a71fee6f681a08bee languageName: node linkType: hard @@ -2571,6 +2991,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/aix-ppc64@npm:0.23.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -2578,6 +3005,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm64@npm:0.23.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -2585,6 +3019,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm@npm:0.23.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -2592,6 +3033,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-x64@npm:0.23.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -2599,6 +3047,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-arm64@npm:0.23.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -2606,6 +3061,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-x64@npm:0.23.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -2613,6 +3075,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-arm64@npm:0.23.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -2620,6 +3089,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-x64@npm:0.23.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -2627,6 +3103,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm64@npm:0.23.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -2634,6 +3117,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm@npm:0.23.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -2641,6 +3131,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ia32@npm:0.23.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -2648,6 +3145,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-loong64@npm:0.23.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -2655,6 +3159,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-mips64el@npm:0.23.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -2662,6 +3173,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ppc64@npm:0.23.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -2669,6 +3187,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-riscv64@npm:0.23.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -2676,6 +3201,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-s390x@npm:0.23.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -2683,6 +3215,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-x64@npm:0.23.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -2690,6 +3229,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/netbsd-x64@npm:0.23.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-arm64@npm:0.23.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -2697,6 +3250,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-x64@npm:0.23.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -2704,6 +3264,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/sunos-x64@npm:0.23.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -2711,6 +3278,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-arm64@npm:0.23.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -2718,6 +3292,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-ia32@npm:0.23.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -2725,6 +3306,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-x64@npm:0.23.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -2911,68 +3499,37 @@ __metadata: languageName: node linkType: hard -"@inquirer/checkbox@npm:^2.3.7": - version: 2.3.10 - resolution: "@inquirer/checkbox@npm:2.3.10" - dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/figures": "npm:^1.0.3" - "@inquirer/type": "npm:^1.4.0" - ansi-escapes: "npm:^4.3.2" - yoctocolors-cjs: "npm:^2.1.2" - checksum: 10c0/fa6a8b7291d8303cb3c0dcab2a4111f4408fdab5761ccb07c329360adef9e7d5ae0c7820656ed6eb42f994299dc3a491a385bec39cb8c73c2044c8536a6b88dc - languageName: node - linkType: hard - -"@inquirer/confirm@npm:3.1.11": - version: 3.1.11 - resolution: "@inquirer/confirm@npm:3.1.11" - dependencies: - "@inquirer/core": "npm:^8.2.4" - "@inquirer/type": "npm:^1.3.3" - checksum: 10c0/149970dc4cdca6ffebe1a35841a68b4c90d78e71cdabdb1b8cc06f7e38fc4a628a8a85aa965c488d3cd3226bc726407030e40bfce1736b62b2f1b3e91f027f64 - languageName: node - linkType: hard - -"@inquirer/confirm@npm:^3.1.11": - version: 3.1.14 - resolution: "@inquirer/confirm@npm:3.1.14" +"@inquirer/checkbox@npm:^2.4.7": + version: 2.4.7 + resolution: "@inquirer/checkbox@npm:2.4.7" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" - checksum: 10c0/935054f38afb2fc203e638a27a982d7b0be8b4848cff092b7c127cc7635cc62f0dcfdb31b0127cb3f1d2a0bac218085273bb14fab6d6e506f64821a5f536a679 + "@inquirer/core": "npm:^9.0.10" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.2" + ansi-escapes: "npm:^4.3.2" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/92bd2727f316e2304b150ef32eb3023200512de154b49b6e121f468c2ad6fa58cb3b37d9dc91d1a2dc039e932dd934df5ce481acb2555cacac2b0308acb05576 languageName: node linkType: hard -"@inquirer/core@npm:^8.2.4": - version: 8.2.4 - resolution: "@inquirer/core@npm:8.2.4" +"@inquirer/confirm@npm:3.1.22, @inquirer/confirm@npm:^3.1.22": + version: 3.1.22 + resolution: "@inquirer/confirm@npm:3.1.22" dependencies: - "@inquirer/figures": "npm:^1.0.3" - "@inquirer/type": "npm:^1.3.3" - "@types/mute-stream": "npm:^0.0.4" - "@types/node": "npm:^20.14.9" - "@types/wrap-ansi": "npm:^3.0.0" - ansi-escapes: "npm:^4.3.2" - cli-spinners: "npm:^2.9.2" - cli-width: "npm:^4.1.0" - mute-stream: "npm:^1.0.0" - picocolors: "npm:^1.0.1" - signal-exit: "npm:^4.1.0" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^6.2.0" - checksum: 10c0/3328ea52823a59cad4bf6c36b143c7322a2e1430ae040717e63c94680f246c0d628aed3032a2f6890652dd4b7fdb0fec7e324059b74173ffa78ae2a485939f33 + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" + checksum: 10c0/99e1a17e62a674d8e440a11bf4e9d5a62666247823b091314e52ee40929a6a6e8ce60086ec653bbeb59117bfc940d807c6f4b604cf5cf51f24009b9d09d5bf98 languageName: node linkType: hard -"@inquirer/core@npm:^9.0.2": - version: 9.0.2 - resolution: "@inquirer/core@npm:9.0.2" +"@inquirer/core@npm:^9.0.10": + version: 9.0.10 + resolution: "@inquirer/core@npm:9.0.10" dependencies: - "@inquirer/figures": "npm:^1.0.3" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.2" "@types/mute-stream": "npm:^0.0.4" - "@types/node": "npm:^20.14.9" + "@types/node": "npm:^22.1.0" "@types/wrap-ansi": "npm:^3.0.0" ansi-escapes: "npm:^4.3.2" cli-spinners: "npm:^2.9.2" @@ -2982,106 +3539,130 @@ __metadata: strip-ansi: "npm:^6.0.1" wrap-ansi: "npm:^6.2.0" yoctocolors-cjs: "npm:^2.1.2" - checksum: 10c0/2ec629b2e2d4503059981bb54ee555e1e80100e2ec0fed0aec5ce4f8bae6d124bb241a7fbf0fb8141cabbefcfbd7ddaec4702e581feb99d29e10d4017394aae1 + checksum: 10c0/117f50a55b5ebee8bfc62ea6adec87035f28ee7ace1efea67895c3d32ab50bf569ecd3ca33c457d0c7ae4240b9fe4d7b698ab70946ac561ab579d0920ddc98bb languageName: node linkType: hard -"@inquirer/editor@npm:^2.1.11": - version: 2.1.14 - resolution: "@inquirer/editor@npm:2.1.14" +"@inquirer/editor@npm:^2.1.22": + version: 2.1.22 + resolution: "@inquirer/editor@npm:2.1.22" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" external-editor: "npm:^3.1.0" - checksum: 10c0/b1ba22a1016f1a74e5b38bf05e9fd8593281371534f7c5feba8b464949832b8d5da1b372f744057e1a13c3745dc41c609d69923115def6559196b8198857f1da + checksum: 10c0/a2e65362ed187695450b092c8f5698661002e4e24e1e800dfbbfeaa8e71f60b5d5e1dfa98b9402457c02cab1762ac2b20d3364c11db0b5572aa61caf55f5beba languageName: node linkType: hard -"@inquirer/expand@npm:^2.1.11": - version: 2.1.14 - resolution: "@inquirer/expand@npm:2.1.14" +"@inquirer/expand@npm:^2.1.22": + version: 2.1.22 + resolution: "@inquirer/expand@npm:2.1.22" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" yoctocolors-cjs: "npm:^2.1.2" - checksum: 10c0/81ea4e4bb0bab4eddcdc6ba0f18ada5d4a1b09cc68fd9d713b9a5853de54c7e936b46218a39aff350f62183ef88bed20b366827aafc68b75c178ece2a89dc755 + checksum: 10c0/0f9d3447ca6b9e24e0179b4ec53f463647a8323d8a041bc3321f19a2914176117a264bcc6deb723e3f9ec718d3faf672f3f840f0898bbff4371fa899b239b411 languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.3": - version: 1.0.3 - resolution: "@inquirer/figures@npm:1.0.3" - checksum: 10c0/099e062f000baafb4010014ece443d0cd211f562194854dc52a128bfe514611f8cc3da4cdb5092d75440956aff201dcd8e893b8a71feb104f97b0b00c6a696cf +"@inquirer/figures@npm:^1.0.5": + version: 1.0.5 + resolution: "@inquirer/figures@npm:1.0.5" + checksum: 10c0/ec9ba23db42cb33fa18eb919abf2a18e750e739e64c1883ce4a98345cd5711c60cac12d1faf56a859f52d387deb221c8d3dfe60344ee07955a9a262f8b821fe3 languageName: node linkType: hard -"@inquirer/input@npm:^2.1.11": - version: 2.2.1 - resolution: "@inquirer/input@npm:2.2.1" +"@inquirer/input@npm:^2.2.9": + version: 2.2.9 + resolution: "@inquirer/input@npm:2.2.9" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" - checksum: 10c0/dea8e00f01614cbde2405fe6c4407742b655b04e2e0b406f26b1f3734cc371fbd0c554c6ea5a9f027745b04dd149be2e7031f6c7d166f29c84616b4be9679fdc + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" + checksum: 10c0/0fcdc5d9c17712f9a2c79f39d1e03ed4a58cfe1dd1095209b4c83621dba2cb94db03b7df0df34e22584bce9e53403a284c76721def66a452e4751666d945d99f languageName: node linkType: hard -"@inquirer/password@npm:^2.1.11": - version: 2.1.14 - resolution: "@inquirer/password@npm:2.1.14" +"@inquirer/number@npm:^1.0.10": + version: 1.0.10 + resolution: "@inquirer/number@npm:1.0.10" + dependencies: + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" + checksum: 10c0/efa7c49322d8f36eeb8afb704bba673c10fcf7992babc8ad5f25d4c8db0fbafc0007439abdef05a462171b37a68b981981859587ff5b71e79002ffac65be859a + languageName: node + linkType: hard + +"@inquirer/password@npm:^2.1.22": + version: 2.1.22 + resolution: "@inquirer/password@npm:2.1.22" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" ansi-escapes: "npm:^4.3.2" - checksum: 10c0/fa40d83627b2822e57b2b3da5852fa46a51c103422c0efe780db4d54f7b12b12d44d125d9c5b9c69da739441b7689898ecf1156cc8ade4e1b8adab0a9db9445f + checksum: 10c0/5cd5bab0026d673539710f424e6f7dda8abea4863a0cddf982278b15a250f5a2be0a0f17fdf970a900d33187a64ad987d24d038cfbed2599b5a2a97c169bbddc languageName: node linkType: hard -"@inquirer/prompts@npm:5.0.7": - version: 5.0.7 - resolution: "@inquirer/prompts@npm:5.0.7" +"@inquirer/prompts@npm:5.3.8": + version: 5.3.8 + resolution: "@inquirer/prompts@npm:5.3.8" + dependencies: + "@inquirer/checkbox": "npm:^2.4.7" + "@inquirer/confirm": "npm:^3.1.22" + "@inquirer/editor": "npm:^2.1.22" + "@inquirer/expand": "npm:^2.1.22" + "@inquirer/input": "npm:^2.2.9" + "@inquirer/number": "npm:^1.0.10" + "@inquirer/password": "npm:^2.1.22" + "@inquirer/rawlist": "npm:^2.2.4" + "@inquirer/search": "npm:^1.0.7" + "@inquirer/select": "npm:^2.4.7" + checksum: 10c0/2c49afb5e9f7d825c1489d8c587f985418e890508802e1483d1cb8da46644e9803b2f0a8b71f53f0ff5d9273ca39e28faeadf7d6691467eb5c0dbbde900e5233 + languageName: node + linkType: hard + +"@inquirer/rawlist@npm:^2.2.4": + version: 2.2.4 + resolution: "@inquirer/rawlist@npm:2.2.4" dependencies: - "@inquirer/checkbox": "npm:^2.3.7" - "@inquirer/confirm": "npm:^3.1.11" - "@inquirer/editor": "npm:^2.1.11" - "@inquirer/expand": "npm:^2.1.11" - "@inquirer/input": "npm:^2.1.11" - "@inquirer/password": "npm:^2.1.11" - "@inquirer/rawlist": "npm:^2.1.11" - "@inquirer/select": "npm:^2.3.7" - checksum: 10c0/0e064510bee3efb7ddfb41a101d9cdd91c6494129f04045310e872f43ca3ceccbe1d4fe62323651541183c7e7826f2b4a6ff8e8dac68bb3a9f5264c128f85a02 + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/d7c5e0784bb357f6465b7ca08a22310f124fb61db6cce7a1860305d8d25dcdfa66db216d4cc52873d68ae379376984cf8d9cd14880fbca41b7b03802be49caf8 languageName: node linkType: hard -"@inquirer/rawlist@npm:^2.1.11": - version: 2.1.14 - resolution: "@inquirer/rawlist@npm:2.1.14" +"@inquirer/search@npm:^1.0.7": + version: 1.0.7 + resolution: "@inquirer/search@npm:1.0.7" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/core": "npm:^9.0.10" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.2" yoctocolors-cjs: "npm:^2.1.2" - checksum: 10c0/6ce174e739f7c0a9a294a5d04c01195e17aafab413a622417ed133170194ad2632d3c8262c774a79db107e9aed09e513392ae86d60a488d726fdb73a501883de + checksum: 10c0/29179cc32236689b956cccdc092b537c67e841c5cd0a6473b92f9e71f56c0fb737baa4856bf76572f07c0c3999b6b5ea1ce3b74ef56504e179098f700a85a5cf languageName: node linkType: hard -"@inquirer/select@npm:^2.3.7": - version: 2.3.10 - resolution: "@inquirer/select@npm:2.3.10" +"@inquirer/select@npm:^2.4.7": + version: 2.4.7 + resolution: "@inquirer/select@npm:2.4.7" dependencies: - "@inquirer/core": "npm:^9.0.2" - "@inquirer/figures": "npm:^1.0.3" - "@inquirer/type": "npm:^1.4.0" + "@inquirer/core": "npm:^9.0.10" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.2" ansi-escapes: "npm:^4.3.2" yoctocolors-cjs: "npm:^2.1.2" - checksum: 10c0/273595645433d130226734439bc021bb1d31023997478747435152da68e511a1ff752a7eb084ade67e706a1780da4dffa4623e95abef4a0b0881570d6556f727 + checksum: 10c0/34e120a263ca2e7edeab08ef6ca24d0966135e8d1a9d6f167fbc03fa8f057391228d58292281609a25d51eb9d59d0b1d00146bd2a5811c5d3880800321cfe8e6 languageName: node linkType: hard -"@inquirer/type@npm:^1.3.3, @inquirer/type@npm:^1.4.0": - version: 1.4.0 - resolution: "@inquirer/type@npm:1.4.0" +"@inquirer/type@npm:^1.5.1, @inquirer/type@npm:^1.5.2": + version: 1.5.2 + resolution: "@inquirer/type@npm:1.5.2" dependencies: mute-stream: "npm:^1.0.0" - checksum: 10c0/927b46eef9195523a5c4d9467fa43dcd8fde6376131c777012dd899b96b5f5c0d7276e03379f61d3209206e65ef82dc45b129eb79fb4dfe61de29d7aed437cd4 + checksum: 10c0/e2c91562c07440620bd805a60438b78c188d2727d86f396a68c480e4357469a72cd80bd2c158faa6b987671911566bd4fc12976f4bdda1a3441594e318c40058 languageName: node linkType: hard @@ -3106,15 +3687,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": "npm:^0.27.8" - checksum: 10c0/b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be - languageName: node - linkType: hard - "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" @@ -3157,6 +3729,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" @@ -3244,55 +3823,55 @@ __metadata: languageName: node linkType: hard -"@listr2/prompt-adapter-inquirer@npm:2.0.13": - version: 2.0.13 - resolution: "@listr2/prompt-adapter-inquirer@npm:2.0.13" +"@listr2/prompt-adapter-inquirer@npm:2.0.15": + version: 2.0.15 + resolution: "@listr2/prompt-adapter-inquirer@npm:2.0.15" dependencies: - "@inquirer/type": "npm:^1.3.3" + "@inquirer/type": "npm:^1.5.1" peerDependencies: "@inquirer/prompts": ">= 3 < 6" - checksum: 10c0/d930fe2a70b438c9552d680237030fc047474c9ab63c9c6b9faf1aed74305b06cfb3a2b85c152d55a50b30122d0307dbb6bfbc17038d53f8967eb41c73771202 + checksum: 10c0/c7eb85315be9ea11973b095331a7cd55b2ec4b2655da071e119e3233f0a2412df1e7319641da30f07cfadee21862d721177618147c3a50830dd6ae0778d4c5f4 languageName: node linkType: hard -"@lmdb/lmdb-darwin-arm64@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-darwin-arm64@npm:3.0.12" +"@lmdb/lmdb-darwin-arm64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-darwin-arm64@npm:3.0.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-darwin-x64@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-darwin-x64@npm:3.0.12" +"@lmdb/lmdb-darwin-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-darwin-x64@npm:3.0.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm64@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-linux-arm64@npm:3.0.12" +"@lmdb/lmdb-linux-arm64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-arm64@npm:3.0.13" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-linux-arm@npm:3.0.12" +"@lmdb/lmdb-linux-arm@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-arm@npm:3.0.13" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@lmdb/lmdb-linux-x64@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-linux-x64@npm:3.0.12" +"@lmdb/lmdb-linux-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-x64@npm:3.0.13" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-win32-x64@npm:3.0.12": - version: 3.0.12 - resolution: "@lmdb/lmdb-win32-x64@npm:3.0.12" +"@lmdb/lmdb-win32-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-win32-x64@npm:3.0.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3339,9 +3918,9 @@ __metadata: languageName: node linkType: hard -"@ng-bootstrap/ng-bootstrap@npm:^17.0.0": - version: 17.0.0 - resolution: "@ng-bootstrap/ng-bootstrap@npm:17.0.0" +"@ng-bootstrap/ng-bootstrap@npm:^17.0.1": + version: 17.0.1 + resolution: "@ng-bootstrap/ng-bootstrap@npm:17.0.1" dependencies: tslib: "npm:^2.3.0" peerDependencies: @@ -3351,13 +3930,13 @@ __metadata: "@angular/localize": ^18.0.0 "@popperjs/core": ^2.11.8 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/155588196668ab73c189db82f7afc4386fb1561a7df79198a0e846cbf914361a40fe35b240cfe4130608f3a7923e3d1622dc89c44206d6b84f7541914d0d89e2 + checksum: 10c0/9892a7b99596491f9144669c6ccc28574160ed79e6c7045fea9c922cac0896dc02b6de00cc115ae1830f46233a5fafbca5af985533a02085e409769ff7c210af languageName: node linkType: hard -"@ngtools/webpack@npm:18.1.4": - version: 18.1.4 - resolution: "@ngtools/webpack@npm:18.1.4" +"@ngtools/webpack@npm:18.2.4": + version: 18.2.4 + resolution: "@ngtools/webpack@npm:18.2.4" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3367,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/08751a6bcf50e3cdd3c9e97e83ec61881154559e6d96d308123c1227c5d5d716378597866713e3a03c5e8167692eba78314974d1373282900f9b889e888da101 + checksum: 10c0/06868c04557112cae4cb4158fe6aeda639d9e06033b79cd2e0ec88f94a1ee89df829fd1e9c590ca4af33c09a26a1561b7d864c3f7d5ff29b89938207748d082b languageName: node linkType: hard @@ -3520,116 +4099,6 @@ __metadata: languageName: node linkType: hard -"@nrwl/devkit@npm:19.1.2": - version: 19.1.2 - resolution: "@nrwl/devkit@npm:19.1.2" - dependencies: - "@nx/devkit": "npm:19.1.2" - checksum: 10c0/97f7af65cd67430ea5a9818531d68b7fb72b9feba344d5d17794bc9cc4bdcfd23352d0034deb21405745d2b78ff4671e853d9cad59a9b95ce8c00f6178e8f506 - languageName: node - linkType: hard - -"@nrwl/tao@npm:19.1.2": - version: 19.1.2 - resolution: "@nrwl/tao@npm:19.1.2" - dependencies: - nx: "npm:19.1.2" - tslib: "npm:^2.3.0" - bin: - tao: index.js - checksum: 10c0/dde2cf007717bf595d28e5a9e8d0392e5d0d0f92ad201581e35b124e1d6d4f5a55ecee1c7c21e98c3284fb1f3af05fea796fd01e201dc01597a17066ae6c4a72 - languageName: node - linkType: hard - -"@nx/devkit@npm:19.1.2, @nx/devkit@npm:^19.0.6": - version: 19.1.2 - resolution: "@nx/devkit@npm:19.1.2" - dependencies: - "@nrwl/devkit": "npm:19.1.2" - ejs: "npm:^3.1.7" - enquirer: "npm:~2.3.6" - ignore: "npm:^5.0.4" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.3" - tmp: "npm:~0.2.1" - tslib: "npm:^2.3.0" - yargs-parser: "npm:21.1.1" - peerDependencies: - nx: ">= 17 <= 20" - checksum: 10c0/b8484c6243be0afab41a148c369724e659ac06f1324f66f9707db9182707e5ca61b9ccede1aca7933cd9d69dbab87bdc300a04b5c644b0ead2c4440d97160792 - languageName: node - linkType: hard - -"@nx/nx-darwin-arm64@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-darwin-arm64@npm:19.1.2" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@nx/nx-darwin-x64@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-darwin-x64@npm:19.1.2" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@nx/nx-freebsd-x64@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-freebsd-x64@npm:19.1.2" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@nx/nx-linux-arm-gnueabihf@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-linux-arm-gnueabihf@npm:19.1.2" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@nx/nx-linux-arm64-gnu@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-linux-arm64-gnu@npm:19.1.2" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@nx/nx-linux-arm64-musl@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-linux-arm64-musl@npm:19.1.2" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@nx/nx-linux-x64-gnu@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-linux-x64-gnu@npm:19.1.2" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@nx/nx-linux-x64-musl@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-linux-x64-musl@npm:19.1.2" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@nx/nx-win32-arm64-msvc@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-win32-arm64-msvc@npm:19.1.2" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@nx/nx-win32-x64-msvc@npm:19.1.2": - version: 19.1.2 - resolution: "@nx/nx-win32-x64-msvc@npm:19.1.2" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -3665,6 +4134,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-android-arm64@npm:4.18.0" @@ -3672,6 +4148,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm64@npm:4.20.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" @@ -3679,6 +4162,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" @@ -3686,6 +4176,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" @@ -3693,6 +4190,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" @@ -3700,6 +4204,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" @@ -3707,6 +4218,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" @@ -3714,6 +4232,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" @@ -3721,6 +4246,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" @@ -3728,6 +4260,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" @@ -3735,6 +4274,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" @@ -3742,6 +4288,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" @@ -3749,6 +4302,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" @@ -3756,6 +4316,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" @@ -3763,6 +4330,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" @@ -3770,19 +4344,33 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.1.4": - version: 18.1.4 - resolution: "@schematics/angular@npm:18.1.4" +"@rollup/rollup-win32-x64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b + languageName: node + linkType: hard + +"@schematics/angular@npm:18.2.4": + version: 18.2.4 + resolution: "@schematics/angular@npm:18.2.4" dependencies: - "@angular-devkit/core": "npm:18.1.4" - "@angular-devkit/schematics": "npm:18.1.4" + "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/schematics": "npm:18.2.4" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/f2002dfbeab3af65dae30b00987a756f1c9e02f3c65ca9744b6bc8c5e2bf4ba0b38be89e4a47d84bbc6bb45aecb7c4b87bff2d8ee4785a5ccce2161d78f3eb73 + checksum: 10c0/22579e170d9d07c1384d8af1385db751995c9172f127001d4e665a32199141eed7240f564e4886132bb7dd751d5c5a028ab801b3a764830364839512e19a3f42 languageName: node linkType: hard @@ -3844,13 +4432,6 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 10c0/ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e - languageName: node - linkType: hard - "@sindresorhus/merge-streams@npm:^2.1.0": version: 2.3.0 resolution: "@sindresorhus/merge-streams@npm:2.3.0" @@ -4291,27 +4872,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.7 - resolution: "@types/eslint-scope@npm:3.7.7" - dependencies: - "@types/eslint": "npm:*" - "@types/estree": "npm:*" - checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.56.10 - resolution: "@types/eslint@npm:8.56.10" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 10c0/674349d6c342c3864d70f4d5a9965f96fb253801532752c8c500ad6a1c2e8b219e01ccff5dc8791dcb58b5483012c495708bb9f3ff929f5c9322b3da126c15d3 - languageName: node - linkType: hard - -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -4372,7 +4933,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -4436,12 +4997,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.14.9": - version: 20.14.10 - resolution: "@types/node@npm:20.14.10" +"@types/node@npm:^22.1.0": + version: 22.3.0 + resolution: "@types/node@npm:22.3.0" dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/0b06cff14365c2d0085dc16cc8cbea5c40ec09cfc1fea966be9eeecf35562760bfde8f88e86de6edfaf394501236e229d9c1084fad04fb4dec472ae245d8ae69 + undici-types: "npm:~6.18.2" + checksum: 10c0/855be3b97f4262a84818f889ff898e147dcef4f72b866e3551a8367380cdb63a45cf3929f09d9a0647f62706f8d4772e91a1ecd1bd7c6a80d6744c2b0cbca608 languageName: node linkType: hard @@ -4535,15 +5096,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.0.1" +"@typescript-eslint/eslint-plugin@npm:^8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.5.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.0.1" - "@typescript-eslint/type-utils": "npm:8.0.1" - "@typescript-eslint/utils": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/type-utils": "npm:8.5.0" + "@typescript-eslint/utils": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -4554,25 +5115,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/fd4e11599c4a85d0fbbd0be350f11acaa32d424bc5c2c0b672133266b4b56fc20a78edd0c7b803b4223a1a66736624561a60fee827738118550733d14afb775a + checksum: 10c0/69ae7067e03d2d8d442e69d668235bdafd63b07229d0be27025eaad8aa468b5af8ac54627021e0e3a060df04ed1c39d1327a0b11469ac72405b52b74a79f402b languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/parser@npm:8.0.1" +"@typescript-eslint/parser@npm:^8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/parser@npm:8.5.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.0.1" - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/typescript-estree": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/typescript-estree": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bf93640f06c9d2e09a79d015d2c3303f58a8569a3f6928544feeeaad8825388133b5e44ca017b4480d38c037644cf6390c785129539fe256f55422ae608943b5 + checksum: 10c0/509fdd605b86c7d025928f20e1035712c2fc268c34b1af84248ed0b53d699034f19caf98e085c5c758d3025e29939dd12eea427c72cae9e5ea79274364851f0a languageName: node linkType: hard @@ -4586,28 +5147,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/scope-manager@npm:8.0.1" +"@typescript-eslint/scope-manager@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/scope-manager@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" - checksum: 10c0/79c00bc726c0c14b800bbbc1c1b88978c2cbeb29d2b06b94a5773f959aafac5cfb37bdb8c3bb80b9fb07fd10440413fce9098f338dce100696a4d3dc1ea6b187 + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" + checksum: 10c0/868602f9324a6e15fcae017acd3b0832e9f2c8c8cd315667df37c2e7c765cda5fba7c4bede931f32cc04819ba97cf74a5fddb085c6f1c7993f1fb085ba126422 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/type-utils@npm:8.0.1" +"@typescript-eslint/type-utils@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/type-utils@npm:8.5.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.0.1" - "@typescript-eslint/utils": "npm:8.0.1" + "@typescript-eslint/typescript-estree": "npm:8.5.0" + "@typescript-eslint/utils": "npm:8.5.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5cbf604044d5cd9cc6e95a2eee5a62803a09f46ccf4aa7293e373a4be8b7b57b470cbc97c1121ef354f842e7fc1d17b30c81bf3540023382ad5e339c9ca3ce15 + checksum: 10c0/675d3e41f938d16e9268fd33764a4e16b12a4a9817e61d5e2508a07fe6783c69ce9d05facc61822b5647c71d767929618ed37b8b93f423f7c2ccb62cfeb4343b languageName: node linkType: hard @@ -4618,10 +5179,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/types@npm:8.0.1" - checksum: 10c0/e7c02d4e153a935c04bfddc0c8fc1618b1c8e9767583cff05a0e063bbacb7f3c8fac2257879c41162fe19094a0de3a567b57969177b2a0c32f39accd4c5601d5 +"@typescript-eslint/types@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/types@npm:8.5.0" + checksum: 10c0/f0b666b5c001b9779bfd9e4c7d031843d07264429d5bcf5d636f26f96cd5d949a33f5d6a645b8d74b93daf565a468476a6a4935dd7135a200250fb03acbe4988 languageName: node linkType: hard @@ -4644,14 +5205,14 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.0.1" +"@typescript-eslint/typescript-estree@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/visitor-keys": "npm:8.5.0" debug: "npm:^4.3.4" - globby: "npm:^11.1.0" + fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" @@ -4659,21 +5220,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/12507995dc634a1746b581635e0df9f986ad01e7f0b4482f1f240986e7277ebd301dfe3b59c07da6d1f3d465f9110dc2a61ce50b67a8f31188cad13f7cc3632e + checksum: 10c0/f62f03d0c5dc57b2b54dbe1cbd027966f774f241279655f46c64145abb54b765176a0cd40447583ba56ada306181da9a82e39b777c78128e105e4ea98c609350 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/utils@npm:8.0.1" +"@typescript-eslint/utils@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/utils@npm:8.5.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.0.1" - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/typescript-estree": "npm:8.0.1" + "@typescript-eslint/scope-manager": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/typescript-estree": "npm:8.5.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/9ab4baee82ac74caee18fb687697698043385aea5d0ec4bb34d874a6969eaa3e48f9319ab023cbcb6114f86de17f7360a43460fb4159c61760a2d2984004dd21 + checksum: 10c0/0cb0bfdaf0da79d13c0d0379478eb14b5825d235873bc7181e70c4f6297fa1c74431ef730cbc2912fe1814dd8d46c6515ce22b39c57e8f03c337aa152fd49a4e languageName: node linkType: hard @@ -4701,13 +5262,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.0.1" +"@typescript-eslint/visitor-keys@npm:8.5.0": + version: 8.5.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.5.0" dependencies: - "@typescript-eslint/types": "npm:8.0.1" + "@typescript-eslint/types": "npm:8.5.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/64c12095a97808bb1e1f5709192b274cac58d6b8fbbf9ec8fafead30f7effef7f0232244ec759298d046e1cd43521b9f3ba37b80618d5184c8b22fae665a7068 + checksum: 10c0/8b9e81968ad36e8af18ac17b63c4e0764612451ca085676c939b723549052243f63577d2706bc2da48174f11bf47587ab47e6e0b7c5b28d9f3c1ef7b9aad322d languageName: node linkType: hard @@ -4892,35 +5453,14 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/lockfile@npm:1.1.0, @yarnpkg/lockfile@npm:^1.1.0": +"@yarnpkg/lockfile@npm:1.1.0": version: 1.1.0 resolution: "@yarnpkg/lockfile@npm:1.1.0" checksum: 10c0/0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda languageName: node linkType: hard -"@yarnpkg/parsers@npm:3.0.0-rc.46": - version: 3.0.0-rc.46 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.46" - dependencies: - js-yaml: "npm:^3.10.0" - tslib: "npm:^2.4.0" - checksum: 10c0/c7f421c6885142f351459031c093fb2e79abcce6f4a89765a10e600bb7ab122949c54bcea2b23de9572a2b34ba29f822b17831c1c43ba50373ceb8cb5b336667 - languageName: node - linkType: hard - -"@zkochan/js-yaml@npm:0.0.7": - version: 0.0.7 - resolution: "@zkochan/js-yaml@npm:0.0.7" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/c8b3525717912811f9422ed50e94c5751ed6f771eb1b7e5cde097f14835654931e2bdaecb1e5fc37b51cf8d822410a307f16dd1581d46149398c30215f3f9bac - languageName: node - linkType: hard - -"JSONStream@npm:^1.0.4, JSONStream@npm:^1.3.5": +"JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" dependencies: @@ -5122,15 +5662,15 @@ __metadata: languageName: node linkType: hard -"ajv@npm:8.16.0, ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0": - version: 8.16.0 - resolution: "ajv@npm:8.16.0" +"ajv@npm:8.17.1": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 10c0/6fc38aa8fd4fbfaa7096ac049e48c0cb440db36b76fef2d7d5b7d92b102735670d055d412d19176c08c9d48eaa9d06661b67e59f04943dc71ab1551e0484f88c + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 languageName: node linkType: hard @@ -5146,6 +5686,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0": + version: 8.16.0 + resolution: "ajv@npm:8.16.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.4.1" + checksum: 10c0/6fc38aa8fd4fbfaa7096ac049e48c0cb440db36b76fef2d7d5b7d92b102735670d055d412d19176c08c9d48eaa9d06661b67e59f04943dc71ab1551e0484f88c + languageName: node + linkType: hard + "amdefine@npm:>=0.0.4": version: 1.0.1 resolution: "amdefine@npm:1.0.1" @@ -5170,7 +5722,7 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:4.1.3, ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": +"ansi-colors@npm:4.1.3, ansi-colors@npm:^4.1.3": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 @@ -5186,13 +5738,6 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^6.2.0": - version: 6.2.1 - resolution: "ansi-escapes@npm:6.2.1" - checksum: 10c0/a2c6f58b044be5f69662ee17073229b492daa2425a7fd99a665db6c22eab6e4ab42752807def7281c1c7acfed48f87f2362dda892f08c2c437f1b39c6b033103 - languageName: node - linkType: hard - "ansi-escapes@npm:^7.0.0": version: 7.0.0 resolution: "ansi-escapes@npm:7.0.0" @@ -5243,13 +5788,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df - languageName: node - linkType: hard - "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" @@ -5307,15 +5845,6 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: "npm:~1.0.2" - checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -5356,7 +5885,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.7": +"array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -5393,7 +5922,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlastindex@npm:1.2.5" dependencies: @@ -5477,21 +6006,21 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.19": - version: 10.4.19 - resolution: "autoprefixer@npm:10.4.19" +"autoprefixer@npm:10.4.20": + version: 10.4.20 + resolution: "autoprefixer@npm:10.4.20" dependencies: - browserslist: "npm:^4.23.0" - caniuse-lite: "npm:^1.0.30001599" + browserslist: "npm:^4.23.3" + caniuse-lite: "npm:^1.0.30001646" fraction.js: "npm:^4.3.7" normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.0" + picocolors: "npm:^1.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 10c0/fe0178eb8b1da4f15c6535cd329926609b22d1811e047371dccce50563623f8075dd06fb167daff059e4228da651b0bdff6d9b44281541eaf0ce0b79125bfd19 + checksum: 10c0/e1f00978a26e7c5b54ab12036d8c13833fad7222828fc90914771b1263f51b28c7ddb5803049de4e77696cbd02bb25cfc3634e80533025bb26c26aacdf938940 languageName: node linkType: hard @@ -5508,42 +6037,42 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.1.4" - "@angular-eslint/builder": "npm:^18.2.0" - "@angular-eslint/eslint-plugin": "npm:^18.2.0" - "@angular-eslint/eslint-plugin-template": "npm:^18.2.0" - "@angular-eslint/schematics": "npm:^18.2.0" - "@angular-eslint/template-parser": "npm:^18.2.0" - "@angular/animations": "npm:^18.1.4" - "@angular/cli": "npm:^18.1.4" - "@angular/common": "npm:^18.1.4" - "@angular/compiler": "npm:^18.1.4" - "@angular/compiler-cli": "npm:^18.1.4" - "@angular/core": "npm:^18.1.4" - "@angular/forms": "npm:^18.1.4" - "@angular/localize": "npm:^18.1.4" - "@angular/platform-browser": "npm:^18.1.4" - "@angular/platform-browser-dynamic": "npm:^18.1.4" - "@angular/platform-server": "npm:^18.1.4" - "@angular/router": "npm:^18.1.4" - "@codemirror/legacy-modes": "npm:^6.4.0" - "@commitlint/cli": "npm:^19.4.0" - "@commitlint/config-angular": "npm:^19.3.0" + "@angular-devkit/build-angular": "npm:^18.2.4" + "@angular-eslint/builder": "npm:^18.3.1" + "@angular-eslint/eslint-plugin": "npm:^18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" + "@angular-eslint/schematics": "npm:^18.3.1" + "@angular-eslint/template-parser": "npm:^18.3.1" + "@angular/animations": "npm:^18.2.4" + "@angular/cli": "npm:^18.2.4" + "@angular/common": "npm:^18.2.4" + "@angular/compiler": "npm:^18.2.4" + "@angular/compiler-cli": "npm:^18.2.4" + "@angular/core": "npm:^18.2.4" + "@angular/forms": "npm:^18.2.4" + "@angular/localize": "npm:^18.2.4" + "@angular/platform-browser": "npm:^18.2.4" + "@angular/platform-browser-dynamic": "npm:^18.2.4" + "@angular/platform-server": "npm:^18.2.4" + "@angular/router": "npm:^18.2.4" + "@codemirror/legacy-modes": "npm:^6.4.1" + "@commitlint/cli": "npm:^19.5.0" + "@commitlint/config-angular": "npm:^19.5.0" "@compodoc/compodoc": "npm:^1.1.25" "@fortawesome/angular-fontawesome": "npm:^0.15.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" "@kolkov/ngx-gallery": "npm:2.0.1" - "@ng-bootstrap/ng-bootstrap": "npm:^17.0.0" + "@ng-bootstrap/ng-bootstrap": "npm:^17.0.1" "@popperjs/core": "npm:^2.11.8" "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.0.1" - "@typescript-eslint/parser": "npm:^8.0.1" + "@typescript-eslint/eslint-plugin": "npm:^8.5.0" + "@typescript-eslint/parser": "npm:^8.5.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" - commit-and-tag-version: "npm:^12.4.1" + commit-and-tag-version: "npm:^12.4.4" conventional-recommended-bump: "npm:^10.0.0" d3-drag: "npm:^3.0.0" d3-fetch: "npm:^3.0.1" @@ -5554,45 +6083,34 @@ __metadata: eslint-config-prettier: "npm:^9.1.0" eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" - eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-jsdoc: "npm:^50.0.1" + eslint-plugin-import: "npm:^2.30.0" + eslint-plugin-jsdoc: "npm:^50.2.3" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" - husky: "npm:^9.1.4" - jasmine-core: "npm:~5.2.0" + husky: "npm:^9.1.6" + jasmine-core: "npm:~5.3.0" json2typescript: "npm:^1.5.1" karma: "npm:~6.4.4" karma-chrome-launcher: "npm:~3.2.0" karma-coverage: "npm:^2.2.1" karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" - lint-staged: "npm:^15.2.8" - n3: "npm:^1.20.4" + lint-staged: "npm:^15.2.10" + n3: "npm:^1.21.1" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" rxjs: "npm:~7.8.1" source-map-explorer: "npm:^2.5.3" stream: "npm:^0.0.3" - tslib: "npm:^2.6.2" + tslib: "npm:^2.7.0" typescript: "npm:~5.5.4" webpack-bundle-analyzer: "npm:^4.10.2" zone.js: "npm:~0.14.10" languageName: unknown linkType: soft -"axios@npm:^1.6.0": - version: 1.7.2 - resolution: "axios@npm:1.7.2" - dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.0" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/cbd47ce380fe045313364e740bb03b936420b8b5558c7ea36a4563db1258c658f05e40feb5ddd41f6633fdd96d37ac2a76f884dad599c5b0224b4c451b3fa7ae - languageName: node - linkType: hard - "axobject-query@npm:4.1.0": version: 4.1.0 resolution: "axobject-query@npm:4.1.0" @@ -5700,15 +6218,6 @@ __metadata: languageName: node linkType: hard -"bidi-js@npm:^1.0.3": - version: 1.0.3 - resolution: "bidi-js@npm:1.0.3" - dependencies: - require-from-string: "npm:^2.0.2" - checksum: 10c0/fdddea4aa4120a34285486f2267526cd9298b6e8b773ad25e765d4f104b6d7437ab4ba542e6939e3ac834a7570bcf121ee2cf6d3ae7cd7082c4b5bedc8f271e1 - languageName: node - linkType: hard - "big.js@npm:^5.2.2": version: 5.2.2 resolution: "big.js@npm:5.2.2" @@ -5743,9 +6252,9 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.20.2, body-parser@npm:^1.19.0": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" +"body-parser@npm:1.20.3, body-parser@npm:^1.19.0": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" dependencies: bytes: "npm:3.1.2" content-type: "npm:~1.0.5" @@ -5755,11 +6264,11 @@ __metadata: http-errors: "npm:2.0.0" iconv-lite: "npm:0.4.24" on-finished: "npm:2.4.1" - qs: "npm:6.11.0" + qs: "npm:6.13.0" raw-body: "npm:2.5.2" type-is: "npm:~1.6.18" unpipe: "npm:1.0.0" - checksum: 10c0/06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9 + checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310 languageName: node linkType: hard @@ -5860,7 +6369,21 @@ __metadata: update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10c0/0217d23c69ed61cdd2530c7019bf7c822cd74c51f8baab18dd62457fed3129f52499f8d3a6f809ae1fb7bb3050aa70caa9a529cc36c7478427966dbf429723a5 + checksum: 10c0/0217d23c69ed61cdd2530c7019bf7c822cd74c51f8baab18dd62457fed3129f52499f8d3a6f809ae1fb7bb3050aa70caa9a529cc36c7478427966dbf429723a5 + languageName: node + linkType: hard + +"browserslist@npm:^4.23.3": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 languageName: node linkType: hard @@ -6014,7 +6537,7 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599": +"caniuse-lite@npm:^1.0.30001587": version: 1.0.30001628 resolution: "caniuse-lite@npm:1.0.30001628" checksum: 10c0/7f3e198d30220e02d54ea9de1562725d65e89e4318e16b5addd550a8cd6d240de4d42eecb97506c5eafdf5193ad39624729e12b6385fc63b2a2b8e8c430cbcb1 @@ -6028,6 +6551,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001651 + resolution: "caniuse-lite@npm:1.0.30001651" + checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad + languageName: node + linkType: hard + "canonicalize@npm:^1.0.1": version: 1.0.8 resolution: "canonicalize@npm:1.0.8" @@ -6146,7 +6676,7 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:3.1.0, cli-cursor@npm:^3.1.0": +"cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" dependencies: @@ -6155,15 +6685,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" - dependencies: - restore-cursor: "npm:^4.0.0" - checksum: 10c0/e776e8c3c6727300d0539b0d25160b2bb56aed1a63942753ba1826b012f337a6f4b7ace3548402e4f2f13b5e16bfd751be672c44b203205e7eca8be94afec42c - languageName: node - linkType: hard - "cli-cursor@npm:^5.0.0": version: 5.0.0 resolution: "cli-cursor@npm:5.0.0" @@ -6173,13 +6694,6 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:2.6.1": - version: 2.6.1 - resolution: "cli-spinners@npm:2.6.1" - checksum: 10c0/6abcdfef59aa68e6b51376d87d257f9120a0a7120a39dd21633702d24797decb6dc747dff2217c88732710db892b5053c5c672d221b6c4d13bbcb5372e203596 - languageName: node - linkType: hard - "cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": version: 2.9.2 resolution: "cli-spinners@npm:2.9.2" @@ -6365,12 +6879,12 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.4.1": - version: 12.4.1 - resolution: "commit-and-tag-version@npm:12.4.1" +"commit-and-tag-version@npm:^12.4.4": + version: 12.4.4 + resolution: "commit-and-tag-version@npm:12.4.4" dependencies: chalk: "npm:^2.4.2" - conventional-changelog: "npm:3.1.25" + conventional-changelog: "npm:4.0.0" conventional-changelog-config-spec: "npm:2.1.0" conventional-changelog-conventionalcommits: "npm:6.1.0" conventional-recommended-bump: "npm:7.0.1" @@ -6380,14 +6894,14 @@ __metadata: figures: "npm:^3.1.0" find-up: "npm:^5.0.0" git-semver-tags: "npm:^5.0.0" - jsdom: "npm:^23.2.0" - semver: "npm:^7.5.4" + jsdom: "npm:^25.0.0" + semver: "npm:^7.6.3" w3c-xmlserializer: "npm:^5.0.0" yaml: "npm:^2.4.1" yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10c0/a7304ead72d809878571da31fff6a88b03a3502a31e89de085ed1cb5a0dc34f8d9e2682997fc79f1debaa056da580089bf14f633cad14ccbb3c0163e7fab04c1 + checksum: 10c0/f5c888d341594780aa0c08d2f5e64fa39ebbc0580d925a281b08b69e607cf54a2c9322e822c1b9835f9551ed08eb4b166b9cbb0e9376995474910b561779795d languageName: node linkType: hard @@ -6507,13 +7021,12 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:^5.0.12": - version: 5.0.13 - resolution: "conventional-changelog-angular@npm:5.0.13" +"conventional-changelog-angular@npm:^6.0.0": + version: 6.0.0 + resolution: "conventional-changelog-angular@npm:6.0.0" dependencies: compare-func: "npm:^2.0.0" - q: "npm:^1.5.1" - checksum: 10c0/bca711b835fe01d75e3500b738f6525c91a12096218e917e9fd81bf9accf157f904fee16f88c523fd5462fb2a7cb1d060eb79e9bc9a3ccb04491f0c383b43231 + checksum: 10c0/a661ff7b79d4b829ccf8f424ef1bb210e777c1152a1ba5b2ba0a8639529c315755b82a6f84684f1b552c4e8ed6696bfe57317c5f7b868274e9a72b2bf13081ba languageName: node linkType: hard @@ -6526,21 +7039,17 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-atom@npm:^2.0.8": - version: 2.0.8 - resolution: "conventional-changelog-atom@npm:2.0.8" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/1c7e971e8ba58564397c2dfc9a7522f46bad315844ae782db66e27b2d584f22c21a757a429400657c2eef915690e8fd04bddfc3f8e9504d1fadccd8d0758217b +"conventional-changelog-atom@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-atom@npm:3.0.0" + checksum: 10c0/35a1764d3921ad44671ad839707191f8336faa40ccd57b43c42f53df853036bfd015917ca28be18c7769e47bde455740799f4650d098dc2b12f0b3e07a882dcd languageName: node linkType: hard -"conventional-changelog-codemirror@npm:^2.0.8": - version: 2.0.8 - resolution: "conventional-changelog-codemirror@npm:2.0.8" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/467c8c0daec0424acad6b30aa8897ea5e07c327352d3daae50f3a5427584bcb47d5ac5a3167eb7aeb818ebb856e2e81b19cab9a256fe6f21ad96e4a751599325 +"conventional-changelog-codemirror@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-codemirror@npm:3.0.0" + checksum: 10c0/ec7bc77841682bc085b420b263872198aa0ed1e9b6a021f3b25faed408d53eb1df99768fa49e0f99862d978ae7f5923b83f9c17fc0bc8df36051336ab82252d3 languageName: node linkType: hard @@ -6551,7 +7060,7 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:6.1.0": +"conventional-changelog-conventionalcommits@npm:6.1.0, conventional-changelog-conventionalcommits@npm:^6.0.0": version: 6.1.0 resolution: "conventional-changelog-conventionalcommits@npm:6.1.0" dependencies: @@ -6560,89 +7069,59 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:^4.5.0": - version: 4.6.3 - resolution: "conventional-changelog-conventionalcommits@npm:4.6.3" - dependencies: - compare-func: "npm:^2.0.0" - lodash: "npm:^4.17.15" - q: "npm:^1.5.1" - checksum: 10c0/f3b5e6132ec03dad4aa4a2b5ac47ee0e2ae8be6d0fa53a131c722412ce7c02a742c190790f15b5ab4983a31ce90b7066ce1f3f3d5cc4253aa3484ee414259bd2 - languageName: node - linkType: hard - -"conventional-changelog-core@npm:^4.2.1": - version: 4.2.4 - resolution: "conventional-changelog-core@npm:4.2.4" +"conventional-changelog-core@npm:^5.0.0": + version: 5.0.2 + resolution: "conventional-changelog-core@npm:5.0.2" dependencies: add-stream: "npm:^1.0.0" - conventional-changelog-writer: "npm:^5.0.0" - conventional-commits-parser: "npm:^3.2.0" - dateformat: "npm:^3.0.0" - get-pkg-repo: "npm:^4.0.0" - git-raw-commits: "npm:^2.0.8" + conventional-changelog-writer: "npm:^6.0.0" + conventional-commits-parser: "npm:^4.0.0" + dateformat: "npm:^3.0.3" + get-pkg-repo: "npm:^4.2.1" + git-raw-commits: "npm:^3.0.0" git-remote-origin-url: "npm:^2.0.0" - git-semver-tags: "npm:^4.1.1" - lodash: "npm:^4.17.15" - normalize-package-data: "npm:^3.0.0" - q: "npm:^1.5.1" + git-semver-tags: "npm:^5.0.0" + normalize-package-data: "npm:^3.0.3" read-pkg: "npm:^3.0.0" read-pkg-up: "npm:^3.0.0" - through2: "npm:^4.0.0" - checksum: 10c0/4c9f30350250298d9bbb56988b3093ec7de593499a796609c5877115533362815434ff6df3493649e20b1b40399fef3d42032f39e8279bb8df192b89e6e32e69 + checksum: 10c0/2356fdeb793fd089b2540d5f3ece6937ffe49ff0588ffdc13ceb94b6b708227ce9a8f54555a08ff762573dcd428c201e86dade90b7af85df71d2abe1256b7f73 languageName: node linkType: hard -"conventional-changelog-ember@npm:^2.0.9": - version: 2.0.9 - resolution: "conventional-changelog-ember@npm:2.0.9" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/bc37a1ec320b56f9831ec6a156d77444743944cdc06ff23b1175a3a23063b907b31fad402566a281b722da1bc9fd687db993cc8dbe9a9baf6e38af24541ccfbc +"conventional-changelog-ember@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-ember@npm:3.0.0" + checksum: 10c0/4927f7f04685a93d85c384a3d30cdaa1a0fd2459b36fbc76b56cdcf55936b68c4f64399dcb226dec858722c4644504d4d67afcf541caf21d5e49ae3263ca8199 languageName: node linkType: hard -"conventional-changelog-eslint@npm:^3.0.9": - version: 3.0.9 - resolution: "conventional-changelog-eslint@npm:3.0.9" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/340b3be510e6713e37f641f0efcb2d8d2bc0b2c1bc38e7c1e2107f69432606290661d43cbc5971b418dd87cd92c2acb86af857264643a607cd8f29887e28683d +"conventional-changelog-eslint@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-changelog-eslint@npm:4.0.0" + checksum: 10c0/16713ffc85477a2259bfa6d17112cc18f3c42f09fc957268548fcb42f5aeeb63addd21b8519c7e1c665ac35a20c53b095d4004a31613b9ce7db891a9a7ba9f93 languageName: node linkType: hard -"conventional-changelog-express@npm:^2.0.6": - version: 2.0.6 - resolution: "conventional-changelog-express@npm:2.0.6" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/11a02868847d7d1c585bd38cdd7e39636aefde3ef83138044d859d31c23afc1a82a3cab26c8b8aaae2f536b457b011232325c3ed3f2d6a9ec564522dae265ae2 +"conventional-changelog-express@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-express@npm:3.0.0" + checksum: 10c0/5b5c8dd1ff9bd42601132ab60b85384a9a2ecc446c4b3c3450161ea7102eb08dd5ce0f1fe1d82516fc60f455eb987c3b0ee042603219636ee62a5d09c8311237 languageName: node linkType: hard -"conventional-changelog-jquery@npm:^3.0.11": - version: 3.0.11 - resolution: "conventional-changelog-jquery@npm:3.0.11" - dependencies: - q: "npm:^1.5.1" - checksum: 10c0/5662ff1bee271f6f7f2ca893b84942ec01e4a48299701b3323383dde3e461301c65f248dbcfa8219742258e96b1547ba5f21e66f4785fbc39cbe3074d46d71a4 +"conventional-changelog-jquery@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-changelog-jquery@npm:4.0.0" + checksum: 10c0/57766188846ab651d479198c0c3f05228d2daa2292c2eb6bd053f8bdf048e1626db64dcfd11a1afa289e87a9a6bb16b2acf65e5873d23a2705dd2590f2d3e91e languageName: node linkType: hard -"conventional-changelog-jshint@npm:^2.0.9": - version: 2.0.9 - resolution: "conventional-changelog-jshint@npm:2.0.9" +"conventional-changelog-jshint@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-changelog-jshint@npm:3.0.0" dependencies: compare-func: "npm:^2.0.0" - q: "npm:^1.5.1" - checksum: 10c0/3048c3a02b173836f5c2f9c326bac7e80386e7591b9734d4f3a91e7dfe87329fde03414c62fdebe718a82f29e61b1122343186180e7173a47513487b3cfb463d - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^2.3.4": - version: 2.3.4 - resolution: "conventional-changelog-preset-loader@npm:2.3.4" - checksum: 10c0/a978bcd5fc2eb12b56bc03ec59705af32e521fd27b98a209a26767c2078d423e7d8e30c09d45547371631790f0387453434c73c4541521a7473dce14d5360c7d + checksum: 10c0/c53c39abf2a5c6cfc769a31654eee589e0cf5f957c7b9c8fb546bc9f63c90dfb7b95f989a583573e96e4ab460d02c2c51311b8c045c08ef8d0ac866f70cb0131 languageName: node linkType: hard @@ -6660,51 +7139,39 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-writer@npm:^5.0.0": - version: 5.0.1 - resolution: "conventional-changelog-writer@npm:5.0.1" +"conventional-changelog-writer@npm:^6.0.0": + version: 6.0.1 + resolution: "conventional-changelog-writer@npm:6.0.1" dependencies: - conventional-commits-filter: "npm:^2.0.7" - dateformat: "npm:^3.0.0" + conventional-commits-filter: "npm:^3.0.0" + dateformat: "npm:^3.0.3" handlebars: "npm:^4.7.7" json-stringify-safe: "npm:^5.0.1" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - semver: "npm:^6.0.0" - split: "npm:^1.0.0" - through2: "npm:^4.0.0" + meow: "npm:^8.1.2" + semver: "npm:^7.0.0" + split: "npm:^1.0.1" bin: conventional-changelog-writer: cli.js - checksum: 10c0/268b56a3e4db07ad24da7134788c889ecd024cf2e7c0bfe8ca76f83e5db79f057538c45500b052a77b7933c4d0f47e2e807c6e756cbd5ad9db365744c9ce0e7f - languageName: node - linkType: hard - -"conventional-changelog@npm:3.1.25": - version: 3.1.25 - resolution: "conventional-changelog@npm:3.1.25" - dependencies: - conventional-changelog-angular: "npm:^5.0.12" - conventional-changelog-atom: "npm:^2.0.8" - conventional-changelog-codemirror: "npm:^2.0.8" - conventional-changelog-conventionalcommits: "npm:^4.5.0" - conventional-changelog-core: "npm:^4.2.1" - conventional-changelog-ember: "npm:^2.0.9" - conventional-changelog-eslint: "npm:^3.0.9" - conventional-changelog-express: "npm:^2.0.6" - conventional-changelog-jquery: "npm:^3.0.11" - conventional-changelog-jshint: "npm:^2.0.9" - conventional-changelog-preset-loader: "npm:^2.3.4" - checksum: 10c0/8065d5d742a400ab6d73ea5a42af746c3ec51e081e5ea542b00ebb220f904828002a04ae5841d5588a242773f8112f28bc353bf700fb0b2bda182fac6505c7a7 + checksum: 10c0/50790b0d92e06c5ab1c02cc4eb2ecd74575244d31cfacea1885d7c8afeae1bc7bbc169140fe062f2438b9952400762240b796e59521c0246278859296b323338 languageName: node linkType: hard -"conventional-commits-filter@npm:^2.0.7": - version: 2.0.7 - resolution: "conventional-commits-filter@npm:2.0.7" - dependencies: - lodash.ismatch: "npm:^4.4.0" - modify-values: "npm:^1.0.0" - checksum: 10c0/df06fb29285b473614f5094e983d26fcc14cd0f64b2cbb2f65493fc8bd47c077c2310791d26f4b2b719e9585aaade95370e73230bff6647163164a18b9dfaa07 +"conventional-changelog@npm:4.0.0": + version: 4.0.0 + resolution: "conventional-changelog@npm:4.0.0" + dependencies: + conventional-changelog-angular: "npm:^6.0.0" + conventional-changelog-atom: "npm:^3.0.0" + conventional-changelog-codemirror: "npm:^3.0.0" + conventional-changelog-conventionalcommits: "npm:^6.0.0" + conventional-changelog-core: "npm:^5.0.0" + conventional-changelog-ember: "npm:^3.0.0" + conventional-changelog-eslint: "npm:^4.0.0" + conventional-changelog-express: "npm:^3.0.0" + conventional-changelog-jquery: "npm:^4.0.0" + conventional-changelog-jshint: "npm:^3.0.0" + conventional-changelog-preset-loader: "npm:^3.0.0" + checksum: 10c0/715ea8ef45c250b8d279efd8e01df88e8829f12c6ef36a5c6288f674bffab959b00b88e449ecba5ee4f03844754c1b2e89b2500ed2e078ad9b3c924cdd1b686e languageName: node linkType: hard @@ -6725,22 +7192,6 @@ __metadata: languageName: node linkType: hard -"conventional-commits-parser@npm:^3.2.0": - version: 3.2.4 - resolution: "conventional-commits-parser@npm:3.2.4" - dependencies: - JSONStream: "npm:^1.0.4" - is-text-path: "npm:^1.0.1" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - conventional-commits-parser: cli.js - checksum: 10c0/122d7d7f991a04c8e3f703c0e4e9a25b2ecb20906f497e4486cb5c2acd9c68f6d9af745f7e79cb407538f50e840b33399274ac427b20971b98b335d1b66d3d17 - languageName: node - linkType: hard - "conventional-commits-parser@npm:^4.0.0": version: 4.0.0 resolution: "conventional-commits-parser@npm:4.0.0" @@ -6881,6 +7332,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.37.1": + version: 3.38.0 + resolution: "core-js-compat@npm:3.38.0" + dependencies: + browserslist: "npm:^4.23.3" + checksum: 10c0/9d653a448b8a491034358d2f052e63dda86f75fb65646e2d313a938212470ba1c2f5a83bf31cc583d6c87a9e8d7b0d49458447cab2ff36c4caa097ae381de336 + languageName: node + linkType: hard + "core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -7005,16 +7465,6 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: "npm:2.0.30" - source-map-js: "npm:^1.0.1" - checksum: 10c0/6f8c1a11d5e9b14bf02d10717fc0351b66ba12594166f65abfbd8eb8b5b490dd367f5c7721db241a3c792d935fc6751fbc09f7e1598d421477ad9fadc30f4f24 - languageName: node - linkType: hard - "css-what@npm:^6.1.0": version: 6.1.0 resolution: "css-what@npm:6.1.0" @@ -7248,7 +7698,7 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:^3.0.0": +"dateformat@npm:^3.0.3": version: 3.0.3 resolution: "dateformat@npm:3.0.3" checksum: 10c0/2effb8bef52ff912f87a05e4adbeacff46353e91313ad1ea9ed31412db26849f5a0fcc7e3ce36dbfb84fc6c881a986d5694f84838ad0da7000d5150693e78678 @@ -7271,7 +7721,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": version: 4.3.5 resolution: "debug@npm:4.3.5" dependencies: @@ -7292,7 +7742,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.6": +"debug@npm:^4.3.6, debug@npm:~4.3.6": version: 4.3.6 resolution: "debug@npm:4.3.6" dependencies: @@ -7555,13 +8005,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: 10c0/32e27ac7dbffdf2fb0eb5a84efd98a9ad084fbabd5ac9abb8757c6770d5320d2acd172830b28c4add29bb873d59420601dfc805ac4064330ce59b1adfd0593b2 - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -7664,20 +8107,6 @@ __metadata: languageName: node linkType: hard -"dotenv-expand@npm:~10.0.0": - version: 10.0.0 - resolution: "dotenv-expand@npm:10.0.0" - checksum: 10c0/298f5018e29cfdcb0b5f463ba8e8627749103fbcf6cf81c561119115754ed582deee37b49dfc7253028aaba875ab7aea5fa90e5dac88e511d009ab0e6677924e - languageName: node - linkType: hard - -"dotenv@npm:~16.3.1": - version: 16.3.2 - resolution: "dotenv@npm:16.3.2" - checksum: 10c0/a87d62cef0810b670cb477db1a24a42a093b6b428c9e65c185ce1d6368ad7175234b13547718ba08da18df43faae4f814180cc0366e11be1ded2277abc4dd22e - languageName: node - linkType: hard - "dotgitignore@npm:^2.1.0": version: 2.1.0 resolution: "dotgitignore@npm:2.1.0" @@ -7728,7 +8157,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.5, ejs@npm:^3.1.7": +"ejs@npm:^3.1.5": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -7753,6 +8182,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.4": + version: 1.5.8 + resolution: "electron-to-chromium@npm:1.5.8" + checksum: 10c0/801de2afa0479ffa0cd0e36b7865241dcd3a66a92fca28457431d2dc2bd9c2d066ab07578b419426c504df196f078c63283ee47140c28039d224ec2631acbcee + languageName: node + linkType: hard + "email-addresses@npm:^3.0.1": version: 3.1.0 resolution: "email-addresses@npm:3.1.0" @@ -7802,6 +8238,13 @@ __metadata: languageName: node linkType: hard +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + "encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -7845,22 +8288,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.0": - version: 5.17.0 - resolution: "enhanced-resolve@npm:5.17.0" +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/90065e58e4fd08e77ba47f827eaa17d60c335e01e4859f6e644bb3b8d0e32b203d33894aee92adfa5121fa262f912b48bdf0d0475e98b4a0a1132eea1169ad37 - languageName: node - linkType: hard - -"enquirer@npm:~2.3.6": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" - dependencies: - ansi-colors: "npm:^4.1.1" - checksum: 10c0/8e070e052c2c64326a2803db9084d21c8aaa8c688327f133bf65c4a712586beb126fd98c8a01cfb0433e82a4bd3b6262705c55a63e0f7fb91d06b9cedbde9a11 + checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 languageName: node linkType: hard @@ -8067,16 +8501,99 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.21.5": - version: 0.21.5 - resolution: "esbuild-wasm@npm:0.21.5" +"esbuild-wasm@npm:0.23.0": + version: 0.23.0 + resolution: "esbuild-wasm@npm:0.23.0" + bin: + esbuild: bin/esbuild + checksum: 10c0/027a5d8db3b9a39523d68885de9e02f82ec0a0174668fa184b1bc7af4c1e17ed07180d9ceccc714ec8d5d8b7d43faf3f81e8c675b4921fa5262b1e1aa876f457 + languageName: node + linkType: hard + +"esbuild@npm:0.23.0": + version: 0.23.0 + resolution: "esbuild@npm:0.23.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.0" + "@esbuild/android-arm": "npm:0.23.0" + "@esbuild/android-arm64": "npm:0.23.0" + "@esbuild/android-x64": "npm:0.23.0" + "@esbuild/darwin-arm64": "npm:0.23.0" + "@esbuild/darwin-x64": "npm:0.23.0" + "@esbuild/freebsd-arm64": "npm:0.23.0" + "@esbuild/freebsd-x64": "npm:0.23.0" + "@esbuild/linux-arm": "npm:0.23.0" + "@esbuild/linux-arm64": "npm:0.23.0" + "@esbuild/linux-ia32": "npm:0.23.0" + "@esbuild/linux-loong64": "npm:0.23.0" + "@esbuild/linux-mips64el": "npm:0.23.0" + "@esbuild/linux-ppc64": "npm:0.23.0" + "@esbuild/linux-riscv64": "npm:0.23.0" + "@esbuild/linux-s390x": "npm:0.23.0" + "@esbuild/linux-x64": "npm:0.23.0" + "@esbuild/netbsd-x64": "npm:0.23.0" + "@esbuild/openbsd-arm64": "npm:0.23.0" + "@esbuild/openbsd-x64": "npm:0.23.0" + "@esbuild/sunos-x64": "npm:0.23.0" + "@esbuild/win32-arm64": "npm:0.23.0" + "@esbuild/win32-ia32": "npm:0.23.0" + "@esbuild/win32-x64": "npm:0.23.0" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true bin: esbuild: bin/esbuild - checksum: 10c0/eb7b8fd0d4c70a368adf57618410ce60f5e77ea9b27a19b52866858ea048e3b008c358b4c5b3e85be8f89cb4ca8a92050bc40b3c648d7ddccdff1cd0f23edfef + checksum: 10c0/08c148c067795165798c0467ce02d2d1ecedc096989bded5f0d795c61a1fcbec6c14d0a3c9f4ad6185cc29ec52087acaa335ed6d98be6ad57f7fa4264626bde0 languageName: node linkType: hard -"esbuild@npm:0.21.5, esbuild@npm:^0.21.3": +"esbuild@npm:^0.21.3": version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: @@ -8206,15 +8723,15 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.8.0": - version: 2.8.1 - resolution: "eslint-module-utils@npm:2.8.1" +"eslint-module-utils@npm:^2.9.0": + version: 2.9.0 + resolution: "eslint-module-utils@npm:2.9.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882 + checksum: 10c0/7c45c5b54402a969e99315890c10e9bf8c8bee16c7890573343af05dfa04566d61546585678c413e5228af0550e39461be47e35a8ff0d1863e113bdbb28d1d29 languageName: node linkType: hard @@ -8239,41 +8756,42 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" +"eslint-plugin-import@npm:^2.30.0": + version: 2.30.0 + resolution: "eslint-plugin-import@npm:2.30.0" dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlastindex: "npm:^1.2.3" + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" array.prototype.flat: "npm:^1.3.2" array.prototype.flatmap: "npm:^1.3.2" debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.8.0" - hasown: "npm:^2.0.0" - is-core-module: "npm:^2.13.1" + eslint-module-utils: "npm:^2.9.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" is-glob: "npm:^4.0.3" minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.7" - object.groupby: "npm:^1.0.1" - object.values: "npm:^1.1.7" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" semver: "npm:^6.3.1" tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10c0/5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196 + checksum: 10c0/4c9dcb1f27505c4d5dd891d2b551f56c70786d136aa3992a77e785bdc67c9f60200a2c7fb0ce55b7647fe550b12bc433d5dfa59e2c00ab44227791c5ab86badf languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.0.1": - version: 50.0.1 - resolution: "eslint-plugin-jsdoc@npm:50.0.1" +"eslint-plugin-jsdoc@npm:^50.2.3": + version: 50.2.3 + resolution: "eslint-plugin-jsdoc@npm:50.2.3" dependencies: - "@es-joy/jsdoccomment": "npm:~0.46.0" + "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" - debug: "npm:^4.3.5" + debug: "npm:^4.3.6" escape-string-regexp: "npm:^4.0.0" espree: "npm:^10.1.0" esquery: "npm:^1.6.0" @@ -8283,7 +8801,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/5f8b2f1517e82c274d9379f840056bea0712b783443e65276fd51bc59c7cbd0d63c69f1c6f6d9938831d6108acd32f3a3d9d33926958507b84c44e749e7232ab + checksum: 10c0/244bfc815a082fac2d22867b6efb5ed25dd2a76e08ae1a6b83a522360a44138eea03d23450db947d969d015c17953a0925bad3926ce51856150a20e23fe6a954 languageName: node linkType: hard @@ -8421,16 +8939,6 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 - languageName: node - linkType: hard - "esquery@npm:^1.4.2": version: 1.5.0 resolution: "esquery@npm:1.5.0" @@ -8563,7 +9071,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1, execa@npm:~8.0.1": +"execa@npm:~8.0.1": version: 8.0.1 resolution: "execa@npm:8.0.1" dependencies: @@ -8595,41 +9103,41 @@ __metadata: linkType: hard "express@npm:^4.17.3": - version: 4.19.2 - resolution: "express@npm:4.19.2" + version: 4.20.0 + resolution: "express@npm:4.20.0" dependencies: accepts: "npm:~1.3.8" array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.2" + body-parser: "npm:1.20.3" content-disposition: "npm:0.5.4" content-type: "npm:~1.0.4" cookie: "npm:0.6.0" cookie-signature: "npm:1.0.6" debug: "npm:2.6.9" depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" + encodeurl: "npm:~2.0.0" escape-html: "npm:~1.0.3" etag: "npm:~1.8.1" finalhandler: "npm:1.2.0" fresh: "npm:0.5.2" http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" + merge-descriptors: "npm:1.0.3" methods: "npm:~1.1.2" on-finished: "npm:2.4.1" parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" + path-to-regexp: "npm:0.1.10" proxy-addr: "npm:~2.0.7" qs: "npm:6.11.0" range-parser: "npm:~1.2.1" safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" + send: "npm:0.19.0" + serve-static: "npm:1.16.0" setprototypeof: "npm:1.2.0" statuses: "npm:2.0.1" type-is: "npm:~1.6.18" utils-merge: "npm:1.0.1" vary: "npm:~1.1.2" - checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb + checksum: 10c0/626e440e9feffa3f82ebce5e7dc0ad7a74fa96079994f30048cce450f4855a258abbcabf021f691aeb72154867f0d28440a8498c62888805faf667a829fb65aa languageName: node linkType: hard @@ -8701,6 +9209,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.1 + resolution: "fast-uri@npm:3.0.1" + checksum: 10c0/3cd46d6006083b14ca61ffe9a05b8eef75ef87e9574b6f68f2e17ecf4daa7aaadeff44e3f0f7a0ef4e0f7e7c20fc07beec49ff14dc72d0b500f00386592f2d10 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.17.1 resolution: "fastq@npm:1.17.1" @@ -8729,7 +9244,7 @@ __metadata: languageName: node linkType: hard -"figures@npm:3.2.0, figures@npm:^3.1.0": +"figures@npm:^3.1.0": version: 3.2.0 resolution: "figures@npm:3.2.0" dependencies: @@ -8927,7 +9442,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": +"follow-redirects@npm:^1.0.0": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: @@ -9018,7 +9533,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": +"fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" dependencies: @@ -9160,7 +9675,7 @@ __metadata: languageName: node linkType: hard -"get-pkg-repo@npm:^4.0.0": +"get-pkg-repo@npm:^4.2.1": version: 4.2.1 resolution: "get-pkg-repo@npm:4.2.1" dependencies: @@ -9226,21 +9741,6 @@ __metadata: languageName: node linkType: hard -"git-raw-commits@npm:^2.0.8": - version: 2.0.11 - resolution: "git-raw-commits@npm:2.0.11" - dependencies: - dargs: "npm:^7.0.0" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - git-raw-commits: cli.js - checksum: 10c0/c9cee7ce11a6703098f028d7e47986d5d3e4147d66640086734d6ee2472296b8711f91b40ad458e95acac1bc33cf2898059f1dc890f91220ff89c5fcc609ab64 - languageName: node - linkType: hard - "git-raw-commits@npm:^3.0.0": version: 3.0.0 resolution: "git-raw-commits@npm:3.0.0" @@ -9277,18 +9777,6 @@ __metadata: languageName: node linkType: hard -"git-semver-tags@npm:^4.1.1": - version: 4.1.1 - resolution: "git-semver-tags@npm:4.1.1" - dependencies: - meow: "npm:^8.0.0" - semver: "npm:^6.0.0" - bin: - git-semver-tags: cli.js - checksum: 10c0/cd8c91c666901f8dd6381f4cef2aec32aa3f39e517bd8d8491f9133adf956dde9e0487d510fa0f12042fa474f21a8a88b4aa56db8b473979c7491109c57b7016 - languageName: node - linkType: hard - "git-semver-tags@npm:^5.0.0": version: 5.0.1 resolution: "git-semver-tags@npm:5.0.1" @@ -9750,7 +10238,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -9803,7 +10291,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:7.0.5": +"https-proxy-agent@npm:7.0.5, https-proxy-agent@npm:^7.0.5": version: 7.0.5 resolution: "https-proxy-agent@npm:7.0.5" dependencies: @@ -9823,7 +10311,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": +"https-proxy-agent@npm:^7.0.1": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" dependencies: @@ -9863,12 +10351,12 @@ __metadata: languageName: node linkType: hard -"husky@npm:^9.1.4": - version: 9.1.4 - resolution: "husky@npm:9.1.4" +"husky@npm:^9.1.6": + version: 9.1.6 + resolution: "husky@npm:9.1.6" bin: husky: bin.js - checksum: 10c0/f5185003bef9ad9ec3f40e821963e4c12409b993fdcab89e3d660bed7d8c9d8bfd399f05222e27e0ead6589601fb1bb08d1a589c51751a4ab0547ead3429b8de + checksum: 10c0/705673db4a247c1febd9c5df5f6a3519106cf0335845027bb50a15fba9b1f542cb2610932ede96fd08008f6d9f49db0f15560509861808b0031cdc0e7c798bac languageName: node linkType: hard @@ -9931,7 +10419,14 @@ __metadata: languageName: node linkType: hard -"ignore@npm:5.3.1, ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": +"ignore@npm:5.3.2": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd @@ -10145,7 +10640,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -10154,6 +10649,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.15.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612 + languageName: node + linkType: hard + "is-data-view@npm:^1.0.1": version: 1.0.1 resolution: "is-data-view@npm:1.0.1" @@ -10534,16 +11038,16 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:6.0.2": - version: 6.0.2 - resolution: "istanbul-lib-instrument@npm:6.0.2" +"istanbul-lib-instrument@npm:6.0.3": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" dependencies: "@babel/core": "npm:^7.23.9" "@babel/parser": "npm:^7.23.9" "@istanbuljs/schema": "npm:^0.1.3" istanbul-lib-coverage: "npm:^3.2.0" semver: "npm:^7.5.4" - checksum: 10c0/405c6ac037bf8c7ee7495980b0cd5544b2c53078c10534d0c9ceeb92a9ea7dcf8510f58ccfce31336458a8fa6ccef27b570bbb602abaa8c1650f5496a807477c + checksum: 10c0/a1894e060dd2a3b9f046ffdc87b44c00a35516f5e6b7baf4910369acca79e506fc5323a816f811ae23d82334b38e3ddeb8b3b331bd2c860540793b59a8689128 languageName: node linkType: hard @@ -10626,29 +11130,10 @@ __metadata: languageName: node linkType: hard -"jasmine-core@npm:~5.2.0": - version: 5.2.0 - resolution: "jasmine-core@npm:5.2.0" - checksum: 10c0/eac5298932fef389071529d55b8b4554646cb0094c765dac48d041e7e0c70822b0a3d831acaeec5b47ce0f0c90cad8e6926202ec67804638b4e5bf89a43def3e - languageName: node - linkType: hard - -"jest-diff@npm:^29.4.1": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" - dependencies: - chalk: "npm:^4.0.0" - diff-sequences: "npm:^29.6.3" - jest-get-type: "npm:^29.6.3" - pretty-format: "npm:^29.7.0" - checksum: 10c0/89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 10c0/552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b +"jasmine-core@npm:~5.3.0": + version: 5.3.0 + resolution: "jasmine-core@npm:5.3.0" + checksum: 10c0/231c8a43bcf8d4bd5cd9bab9ed5b7a895c7febc3ccc8b7e0629e6f78535826d01434b94c6edda312287752b164108bbafb0e69edba40f6905da9e37907eb6cbd languageName: node linkType: hard @@ -10679,18 +11164,6 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.10.0": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b - languageName: node - linkType: hard - "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -10709,44 +11182,44 @@ __metadata: languageName: node linkType: hard -"jsdoc-type-pratt-parser@npm:~4.0.0": - version: 4.0.0 - resolution: "jsdoc-type-pratt-parser@npm:4.0.0" - checksum: 10c0/b23ef7bbbe2f56d72630d1c5a233dc9fecaff399063d373c57bef136908c1b05e723dac107177303c03ccf8d75aa51507510b282aa567600477479c5ea0c36d1 +"jsdoc-type-pratt-parser@npm:~4.1.0": + version: 4.1.0 + resolution: "jsdoc-type-pratt-parser@npm:4.1.0" + checksum: 10c0/7700372d2e733a32f7ea0a1df9cec6752321a5345c11a91b2ab478a031a426e934f16d5c1f15c8566c7b2c10af9f27892a29c2c789039f595470e929a4aa60ea languageName: node linkType: hard -"jsdom@npm:^23.2.0": - version: 23.2.0 - resolution: "jsdom@npm:23.2.0" +"jsdom@npm:^25.0.0": + version: 25.0.0 + resolution: "jsdom@npm:25.0.0" dependencies: - "@asamuzakjp/dom-selector": "npm:^2.0.1" cssstyle: "npm:^4.0.1" data-urls: "npm:^5.0.0" decimal.js: "npm:^10.4.3" form-data: "npm:^4.0.0" html-encoding-sniffer: "npm:^4.0.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.2" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.5" is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.12" parse5: "npm:^7.1.2" - rrweb-cssom: "npm:^0.6.0" + rrweb-cssom: "npm:^0.7.1" saxes: "npm:^6.0.0" symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^4.1.3" + tough-cookie: "npm:^4.1.4" w3c-xmlserializer: "npm:^5.0.0" webidl-conversions: "npm:^7.0.0" whatwg-encoding: "npm:^3.1.1" whatwg-mimetype: "npm:^4.0.0" whatwg-url: "npm:^14.0.0" - ws: "npm:^8.16.0" + ws: "npm:^8.18.0" xml-name-validator: "npm:^5.0.0" peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true - checksum: 10c0/b062af50f7be59d914ba75236b7817c848ef3cd007aea1d6b8020a41eb263b7d5bd2652298106e9756b56892f773d990598778d02adab7d0d0d8e58726fc41d3 + checksum: 10c0/1552bcfb816b2c69ae159ba0cd79e8964030c106cc0cb2deb20a64c1ca54e1ea41352b9802d89b7cf823e43e6d74ed7289abff4aacc95b1b2bc936570aab3594 languageName: node linkType: hard @@ -10842,7 +11315,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": +"json5@npm:^2.1.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -10851,13 +11324,6 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.0": - version: 3.2.0 - resolution: "jsonc-parser@npm:3.2.0" - checksum: 10c0/5a12d4d04dad381852476872a29dcee03a57439574e4181d91dca71904fcdcc5e8e4706c0a68a2c61ad9810e1e1c5806b5100d52d3e727b78f5cdc595401045b - languageName: node - linkType: hard - "jsonc-parser@npm:3.2.1": version: 3.2.1 resolution: "jsonc-parser@npm:3.2.1" @@ -11149,16 +11615,9 @@ __metadata: languageName: node linkType: hard -"lines-and-columns@npm:~2.0.3": - version: 2.0.4 - resolution: "lines-and-columns@npm:2.0.4" - checksum: 10c0/4db28bf065cd7ad897c0700f22d3d0d7c5ed6777e138861c601c496d545340df3fc19e18bd04ff8d95a246a245eb55685b82ca2f8c2ca53a008e9c5316250379 - languageName: node - linkType: hard - -"lint-staged@npm:^15.2.8": - version: 15.2.8 - resolution: "lint-staged@npm:15.2.8" +"lint-staged@npm:^15.2.10": + version: 15.2.10 + resolution: "lint-staged@npm:15.2.10" dependencies: chalk: "npm:~5.3.0" commander: "npm:~12.1.0" @@ -11166,31 +11625,17 @@ __metadata: execa: "npm:~8.0.1" lilconfig: "npm:~3.1.2" listr2: "npm:~8.2.4" - micromatch: "npm:~4.0.7" + micromatch: "npm:~4.0.8" pidtree: "npm:~0.6.0" string-argv: "npm:~0.3.2" yaml: "npm:~2.5.0" bin: lint-staged: bin/lint-staged.js - checksum: 10c0/7d43f11f493d27951c746b4c077fed16ba954c0517cf2fd999034e9e7bf86fde506a797b23531a56a1fde4c24846e0f6583ce6db3bdfd42e92335b1aab367737 - languageName: node - linkType: hard - -"listr2@npm:8.2.3": - version: 8.2.3 - resolution: "listr2@npm:8.2.3" - dependencies: - cli-truncate: "npm:^4.0.0" - colorette: "npm:^2.0.20" - eventemitter3: "npm:^5.0.1" - log-update: "npm:^6.0.0" - rfdc: "npm:^1.4.1" - wrap-ansi: "npm:^9.0.0" - checksum: 10c0/44404ecfcb49719538b39aceaa1c7f5a61e6ed88456769c8c876bfc326fc69c26c88cc1cc81ea6cc8341f5ca14ed56558b65263f3ec4d396e83ff02ee8a69508 + checksum: 10c0/6ad7b41f5e87a84fa2eb1990080ea3c68a2f2031b4e81edcdc2a458cc878538eedb310e6f98ffd878a1287e1a52ac968e540ee8a0e96c247e04b0cbc36421cdd languageName: node linkType: hard -"listr2@npm:~8.2.4": +"listr2@npm:8.2.4, listr2@npm:~8.2.4": version: 8.2.4 resolution: "listr2@npm:8.2.4" dependencies: @@ -11204,16 +11649,16 @@ __metadata: languageName: node linkType: hard -"lmdb@npm:3.0.12": - version: 3.0.12 - resolution: "lmdb@npm:3.0.12" - dependencies: - "@lmdb/lmdb-darwin-arm64": "npm:3.0.12" - "@lmdb/lmdb-darwin-x64": "npm:3.0.12" - "@lmdb/lmdb-linux-arm": "npm:3.0.12" - "@lmdb/lmdb-linux-arm64": "npm:3.0.12" - "@lmdb/lmdb-linux-x64": "npm:3.0.12" - "@lmdb/lmdb-win32-x64": "npm:3.0.12" +"lmdb@npm:3.0.13": + version: 3.0.13 + resolution: "lmdb@npm:3.0.13" + dependencies: + "@lmdb/lmdb-darwin-arm64": "npm:3.0.13" + "@lmdb/lmdb-darwin-x64": "npm:3.0.13" + "@lmdb/lmdb-linux-arm": "npm:3.0.13" + "@lmdb/lmdb-linux-arm64": "npm:3.0.13" + "@lmdb/lmdb-linux-x64": "npm:3.0.13" + "@lmdb/lmdb-win32-x64": "npm:3.0.13" msgpackr: "npm:^1.10.2" node-addon-api: "npm:^6.1.0" node-gyp: "npm:latest" @@ -11235,7 +11680,7 @@ __metadata: optional: true bin: download-lmdb-prebuilds: bin/download-prebuilds.js - checksum: 10c0/8f1b4e323e0afb89fd0d106b154c23b56a43f9585b5e2a053ced8132f79c7ca93dde92b43e676ef8d674ccf2d52d16218d9485e1660a4797053cd3ddcf74d550 + checksum: 10c0/feac522854112af3c8204c837356c70c06a6ce3a39c57c061008ac63aa52a71505e2e217b730e96ab5120ce4c22efc84b78a9fc0b8001a7e5af2e135938a7fd1 languageName: node linkType: hard @@ -11400,14 +11845,14 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21": +"lodash@npm:^4.17.14, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c languageName: node linkType: hard -"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": +"log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: @@ -11417,19 +11862,6 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^6.0.0": - version: 6.0.0 - resolution: "log-update@npm:6.0.0" - dependencies: - ansi-escapes: "npm:^6.2.0" - cli-cursor: "npm:^4.0.0" - slice-ansi: "npm:^7.0.0" - strip-ansi: "npm:^7.1.0" - wrap-ansi: "npm:^9.0.0" - checksum: 10c0/e0b3c3401ef49ce3eb17e2f83d644765e4f7988498fc1344eaa4f31ab30e510dcc469a7fb64dc01bd1c8d9237d917598fa677a9818705fb3774c10f6e9d4b27c - languageName: node - linkType: hard - "log-update@npm:^6.1.0": version: 6.1.0 resolution: "log-update@npm:6.1.0" @@ -11518,6 +11950,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:0.30.11": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -11620,13 +12061,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 - languageName: node - linkType: hard - "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -11660,7 +12094,7 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0, meow@npm:^8.1.2": +"meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" dependencies: @@ -11679,10 +12113,10 @@ __metadata: languageName: node linkType: hard -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 10c0/b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10c0/866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93 languageName: node linkType: hard @@ -11707,13 +12141,13 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.7": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: braces: "npm:^3.0.3" picomatch: "npm:^2.3.1" - checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772 + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 languageName: node linkType: hard @@ -11805,15 +12239,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac - languageName: node - linkType: hard - "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -12013,7 +12438,7 @@ __metadata: languageName: node linkType: hard -"modify-values@npm:^1.0.0, modify-values@npm:^1.0.1": +"modify-values@npm:^1.0.1": version: 1.0.1 resolution: "modify-values@npm:1.0.1" checksum: 10c0/6acb1b82aaf7a02f9f7b554b20cbfc159f223a79c66b0a257511c5933d50b85e12ea1220b0a90a2af6f80bc29ff784f929a52a51881867a93ae6a12ce87a729a @@ -12137,14 +12562,14 @@ __metadata: languageName: node linkType: hard -"n3@npm:^1.20.4": - version: 1.20.4 - resolution: "n3@npm:1.20.4" +"n3@npm:^1.21.1": + version: 1.21.1 + resolution: "n3@npm:1.21.1" dependencies: buffer: "npm:^6.0.3" queue-microtask: "npm:^1.1.2" readable-stream: "npm:^4.0.0" - checksum: 10c0/6af387e29df5a68f4f2f117ed3e87acf7241ade2e852b09b40dab66447fa95b0fe8e020164018aa9e3ed97d904cc991b43b31770556bedeeea748a9b143f2d86 + checksum: 10c0/4058332422e621d58d5a734c8334052d808422bf2e245511f5056062efd6b2fc1065b98b023a0db77a5f3c2e9300b67163bc1da9b6ad8419ea5c723842fcb051 languageName: node linkType: hard @@ -12353,13 +12778,6 @@ __metadata: languageName: node linkType: hard -"node-machine-id@npm:1.1.12": - version: 1.1.12 - resolution: "node-machine-id@npm:1.1.12" - checksum: 10c0/ab2fea5f75a6f1ce3c76c5e0ae3903b631230e0a99b003d176568fff8ddbdf7b2943be96cd8d220c497ca0f6149411831f8a450601929f326781cb1b59bab7f8 - languageName: node - linkType: hard - "node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" @@ -12367,6 +12785,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 + languageName: node + linkType: hard + "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -12401,7 +12826,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": +"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.3": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -12464,7 +12889,19 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:11.0.2, npm-package-arg@npm:^11.0.0": +"npm-package-arg@npm:11.0.3": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" + dependencies: + hosted-git-info: "npm:^7.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10c0/e18333485e05c3a8774f4b5701ef74f4799533e650b70a68ca8dd697666c9a8d46932cb765fc593edce299521033bd4025a40323d5240cea8a393c784c0c285a + languageName: node + linkType: hard + +"npm-package-arg@npm:^11.0.0": version: 11.0.2 resolution: "npm-package-arg@npm:11.0.2" dependencies: @@ -12485,7 +12922,19 @@ __metadata: languageName: node linkType: hard -"npm-pick-manifest@npm:9.0.1, npm-pick-manifest@npm:^9.0.0": +"npm-pick-manifest@npm:9.1.0": + version: 9.1.0 + resolution: "npm-pick-manifest@npm:9.1.0" + dependencies: + npm-install-checks: "npm:^6.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + npm-package-arg: "npm:^11.0.0" + semver: "npm:^7.3.5" + checksum: 10c0/8765f4199755b381323da2bff2202b4b15b59f59dba0d1be3f2f793b591321cd19e1b5a686ef48d9753a6bd4868550da632541a45dfb61809d55664222d73e44 + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^9.0.0": version: 9.0.1 resolution: "npm-pick-manifest@npm:9.0.1" dependencies: @@ -12552,86 +13001,10 @@ __metadata: languageName: node linkType: hard -"nx@npm:19.1.2, nx@npm:^19.0.6": - version: 19.1.2 - resolution: "nx@npm:19.1.2" - dependencies: - "@nrwl/tao": "npm:19.1.2" - "@nx/nx-darwin-arm64": "npm:19.1.2" - "@nx/nx-darwin-x64": "npm:19.1.2" - "@nx/nx-freebsd-x64": "npm:19.1.2" - "@nx/nx-linux-arm-gnueabihf": "npm:19.1.2" - "@nx/nx-linux-arm64-gnu": "npm:19.1.2" - "@nx/nx-linux-arm64-musl": "npm:19.1.2" - "@nx/nx-linux-x64-gnu": "npm:19.1.2" - "@nx/nx-linux-x64-musl": "npm:19.1.2" - "@nx/nx-win32-arm64-msvc": "npm:19.1.2" - "@nx/nx-win32-x64-msvc": "npm:19.1.2" - "@yarnpkg/lockfile": "npm:^1.1.0" - "@yarnpkg/parsers": "npm:3.0.0-rc.46" - "@zkochan/js-yaml": "npm:0.0.7" - axios: "npm:^1.6.0" - chalk: "npm:^4.1.0" - cli-cursor: "npm:3.1.0" - cli-spinners: "npm:2.6.1" - cliui: "npm:^8.0.1" - dotenv: "npm:~16.3.1" - dotenv-expand: "npm:~10.0.0" - enquirer: "npm:~2.3.6" - figures: "npm:3.2.0" - flat: "npm:^5.0.2" - fs-extra: "npm:^11.1.0" - ignore: "npm:^5.0.4" - jest-diff: "npm:^29.4.1" - jsonc-parser: "npm:3.2.0" - lines-and-columns: "npm:~2.0.3" - minimatch: "npm:9.0.3" - node-machine-id: "npm:1.1.12" - npm-run-path: "npm:^4.0.1" - open: "npm:^8.4.0" - ora: "npm:5.3.0" - semver: "npm:^7.5.3" - string-width: "npm:^4.2.3" - strong-log-transformer: "npm:^2.1.0" - tar-stream: "npm:~2.2.0" - tmp: "npm:~0.2.1" - tsconfig-paths: "npm:^4.1.2" - tslib: "npm:^2.3.0" - yargs: "npm:^17.6.2" - yargs-parser: "npm:21.1.1" - peerDependencies: - "@swc-node/register": ^1.8.0 - "@swc/core": ^1.3.85 - dependenciesMeta: - "@nx/nx-darwin-arm64": - optional: true - "@nx/nx-darwin-x64": - optional: true - "@nx/nx-freebsd-x64": - optional: true - "@nx/nx-linux-arm-gnueabihf": - optional: true - "@nx/nx-linux-arm64-gnu": - optional: true - "@nx/nx-linux-arm64-musl": - optional: true - "@nx/nx-linux-x64-gnu": - optional: true - "@nx/nx-linux-x64-musl": - optional: true - "@nx/nx-win32-arm64-msvc": - optional: true - "@nx/nx-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@swc-node/register": - optional: true - "@swc/core": - optional: true - bin: - nx: bin/nx.js - nx-cloud: bin/nx-cloud.js - checksum: 10c0/54afbf205811a076d23b717d8b23356046a98965d7e73f353e38bb5690bf37df68d84f7752de34477f0db80f2b4232dde6e9c6d52321e8bb72ef6f1d1589b056 +"nwsapi@npm:^2.2.12": + version: 2.2.12 + resolution: "nwsapi@npm:2.2.12" + checksum: 10c0/95e9623d63df111405503df8c5d800e26f71675d319e2c9c70cddfa31e5ace1d3f8b6d98d354544fc156a1506d920ec291e303fab761e4f99296868e199a466e languageName: node linkType: hard @@ -12678,7 +13051,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": +"object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: @@ -12690,7 +13063,7 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": +"object.groupby@npm:^1.0.3": version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies: @@ -12701,7 +13074,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.7": +"object.values@npm:^1.2.0": version: 1.2.0 resolution: "object.values@npm:1.2.0" dependencies: @@ -12813,17 +13186,6 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.4.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 - languageName: node - linkType: hard - "opencollective-postinstall@npm:^2.0.3": version: 2.0.3 resolution: "opencollective-postinstall@npm:2.0.3" @@ -12856,22 +13218,6 @@ __metadata: languageName: node linkType: hard -"ora@npm:5.3.0": - version: 5.3.0 - resolution: "ora@npm:5.3.0" - dependencies: - bl: "npm:^4.0.3" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-spinners: "npm:^2.5.0" - is-interactive: "npm:^1.0.0" - log-symbols: "npm:^4.0.0" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - checksum: 10c0/30d5f3218eb75b0a2028c5fb9aa88e83e38a2f1745ab56839abb06c3ba31bae35f768f4e72c4f9e04e2a66be6a898e9312e8cf85c9333e1e3613eabb8c7cdf57 - languageName: node - linkType: hard - "ora@npm:5.4.1": version: 5.4.1 resolution: "ora@npm:5.4.1" @@ -13222,10 +13568,10 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 10c0/50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905 +"path-to-regexp@npm:0.1.10": + version: 0.1.10 + resolution: "path-to-regexp@npm:0.1.10" + checksum: 10c0/34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4 languageName: node linkType: hard @@ -13483,7 +13829,18 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.38, postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.33, postcss@npm:^8.4.38": +"postcss@npm:8.4.41, postcss@npm:^8.4.40": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10c0/c1828fc59e7ec1a3bf52b3a42f615dba53c67960ed82a81df6441b485fe43c20aba7f4e7c55425762fd99c594ecabbaaba8cf5b30fd79dfec5b52a9f63a2d690 + languageName: node + linkType: hard + +"postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.33": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -13541,17 +13898,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.7.0": - version: 29.7.0 - resolution: "pretty-format@npm:29.7.0" - dependencies: - "@jest/schemas": "npm:^29.6.3" - ansi-styles: "npm:^5.0.0" - react-is: "npm:^18.0.0" - checksum: 10c0/edc5ff89f51916f036c62ed433506b55446ff739358de77207e63e88a28ca2894caac6e73dcb68166a606e51c8087d32d400473e6a9fdd2dbe743f46c9c0276f - languageName: node - linkType: hard - "prismjs@npm:^1.29.0": version: 1.29.0 resolution: "prismjs@npm:1.29.0" @@ -13634,13 +13980,6 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b - languageName: node - linkType: hard - "proxy-middleware@npm:latest": version: 0.15.0 resolution: "proxy-middleware@npm:0.15.0" @@ -13679,13 +14018,6 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4 - languageName: node - linkType: hard - "qjobs@npm:^1.2.0": version: 1.2.0 resolution: "qjobs@npm:1.2.0" @@ -13702,6 +14034,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.13.0": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -13798,13 +14139,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^18.0.0": - version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 - languageName: node - linkType: hard - "read-pkg-up@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg-up@npm:3.0.0" @@ -14074,16 +14408,6 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/6f7da8c5e422ac26aa38354870b1afac09963572cf2879443540449068cb43476e9cbccf6f8de3e0171e0d6f7f533c2bc1a0a008003c9a525bbc098e89041318 - languageName: node - linkType: hard - "restore-cursor@npm:^5.0.0": version: 5.1.0 resolution: "restore-cursor@npm:5.1.0" @@ -14162,7 +14486,70 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.18.0, rollup@npm:^4.13.0": +"rollup@npm:4.20.0": + version: 4.20.0 + resolution: "rollup@npm:4.20.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.20.0" + "@rollup/rollup-android-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-x64": "npm:4.20.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-musl": "npm:4.20.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/9b23bf0e3380e64573a5f68a55274d5c7969036e55c19aab9fb4deea2e938d76769db70f3c95ee3783c24af152bea1772ad73f9e3625b6ffd4e600a788fe97ea + languageName: node + linkType: hard + +"rollup@npm:^4.13.0": version: 4.18.0 resolution: "rollup@npm:4.18.0" dependencies: @@ -14232,6 +14619,13 @@ __metadata: languageName: node linkType: hard +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 10c0/127b8ca6c8aac45e2755abbae6138d4a813b1bedc2caabf79466ae83ab3cfc84b5bfab513b7033f0aa4561c7753edf787d0dd01163ceacdee2e8eb1b6bf7237e + languageName: node + linkType: hard + "run-applescript@npm:^7.0.0": version: 7.0.0 resolution: "run-applescript@npm:7.0.0" @@ -14308,9 +14702,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:14.2.1": - version: 14.2.1 - resolution: "sass-loader@npm:14.2.1" +"sass-loader@npm:16.0.0": + version: 16.0.0 + resolution: "sass-loader@npm:16.0.0" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -14330,7 +14724,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/9a48d454584d96d6c562eb323bb9e3c6808e930eeaaa916975b97d45831e0b87936a8655cdb3a4512a25abc9587dea65a9616e42396be0d7e7c507a4795a8146 + checksum: 10c0/0d2c2ee89a380ae19f1d024008c241afb747c254cf8e2163b281533c803a1cb3933236f0cfbb59a296fce864e4274e32a80c30dadd5b98618a362f0be8bac20f languageName: node linkType: hard @@ -14412,15 +14806,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.2, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": - version: 7.6.2 - resolution: "semver@npm:7.6.2" - bin: - semver: bin/semver.js - checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c - languageName: node - linkType: hard - "semver@npm:7.6.3, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" @@ -14439,6 +14824,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c + languageName: node + linkType: hard + "send@npm:0.18.0, send@npm:latest": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -14460,6 +14854,27 @@ __metadata: languageName: node linkType: hard +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -14484,15 +14899,15 @@ __metadata: languageName: node linkType: hard -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" +"serve-static@npm:1.16.0": + version: 1.16.0 + resolution: "serve-static@npm:1.16.0" dependencies: encodeurl: "npm:~1.0.2" escape-html: "npm:~1.0.3" parseurl: "npm:~1.3.3" send: "npm:0.18.0" - checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba + checksum: 10c0/d7a5beca08cc55f92998d8b87c111dd842d642404231c90c11f504f9650935da4599c13256747b0a988442a59851343271fe8e1946e03e92cd79c447b5f3ae01 languageName: node linkType: hard @@ -14582,7 +14997,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": version: 1.0.6 resolution: "side-channel@npm:1.0.6" dependencies: @@ -14694,7 +15109,7 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^7.0.0, slice-ansi@npm:^7.1.0": +"slice-ansi@npm:^7.1.0": version: 7.1.0 resolution: "slice-ansi@npm:7.1.0" dependencies: @@ -14823,7 +15238,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": version: 1.2.0 resolution: "source-map-js@npm:1.2.0" checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 @@ -14937,7 +15352,7 @@ __metadata: languageName: node linkType: hard -"split2@npm:^3.0.0, split2@npm:^3.2.2": +"split2@npm:^3.2.2": version: 3.2.2 resolution: "split2@npm:3.2.2" dependencies: @@ -14953,7 +15368,7 @@ __metadata: languageName: node linkType: hard -"split@npm:^1.0.0, split@npm:^1.0.1": +"split@npm:^1.0.1": version: 1.0.1 resolution: "split@npm:1.0.1" dependencies: @@ -14969,13 +15384,6 @@ __metadata: languageName: node linkType: hard -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb - languageName: node - linkType: hard - "sqlite3@npm:>=2.1.1, sqlite3@npm:^5.1.6": version: 5.1.7 resolution: "sqlite3@npm:5.1.7" @@ -15238,19 +15646,6 @@ __metadata: languageName: node linkType: hard -"strong-log-transformer@npm:^2.1.0": - version: 2.1.0 - resolution: "strong-log-transformer@npm:2.1.0" - dependencies: - duplexer: "npm:^0.1.1" - minimist: "npm:^1.2.0" - through: "npm:^2.3.4" - bin: - sl-log-transformer: bin/sl-log-transformer.js - checksum: 10c0/3c3b8aa8f34d661910563ff996412e2f527fc814e699a376854b554d4a4294ab7e285b4e2c08a080a7b19c5600a9b93a98798d3ac600fe3de545ca6605c07829 - languageName: node - linkType: hard - "style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": version: 4.1.2 resolution: "style-mod@npm:4.1.2" @@ -15349,7 +15744,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^2.1.4, tar-stream@npm:~2.2.0": +"tar-stream@npm:^2.1.4": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -15418,9 +15813,9 @@ __metadata: languageName: node linkType: hard -"terser@npm:5.29.2": - version: 5.29.2 - resolution: "terser@npm:5.29.2" +"terser@npm:5.31.6": + version: 5.31.6 + resolution: "terser@npm:5.31.6" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -15428,7 +15823,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/a6f1e26725e3dc99943d7173a3fca8bee21418a3ff39f37053fecd6a988b5341432d535721642807e9c24604aff64410577e9aed3200d9345c89b176b0ba3d65 + checksum: 10c0/b17d02b65a52a5041430572b3c514475820f5e7590fa93773c0f5b4be601ccf3f6d745bf5a79f3ee58187cf85edf61c24ddf4345783839fccb44c9c8fa9b427e languageName: node linkType: hard @@ -15486,7 +15881,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^4.0.0, through2@npm:^4.0.2": +"through2@npm:^4.0.2": version: 4.0.2 resolution: "through2@npm:4.0.2" dependencies: @@ -15495,7 +15890,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.4": +"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.4": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -15516,6 +15911,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.0": + version: 0.3.0 + resolution: "tinyexec@npm:0.3.0" + checksum: 10c0/138a4f4241aea6b6312559508468ab275a31955e66e2f57ed206e0aaabecee622624f208c5740345f0a66e33478fd065e359ed1eb1269eb6fd4fa25d44d0ba3b + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -15525,7 +15927,7 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.2.1, tmp@npm:~0.2.1": +"tmp@npm:^0.2.1": version: 0.2.3 resolution: "tmp@npm:0.2.3" checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 @@ -15562,7 +15964,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.3": +"tough-cookie@npm:^4.1.4": version: 4.1.4 resolution: "tough-cookie@npm:4.1.4" dependencies: @@ -15659,24 +16061,20 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^4.1.2": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: "npm:^2.2.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea - languageName: node - linkType: hard - -"tslib@npm:2.6.3, tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2": +"tslib@npm:2.6.3, tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.6.2": version: 2.6.3 resolution: "tslib@npm:2.6.3" checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a languageName: node linkType: hard +"tslib@npm:^2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + "tuf-js@npm:^2.2.1": version: 2.2.1 resolution: "tuf-js@npm:2.2.1" @@ -15913,10 +16311,10 @@ __metadata: languageName: node linkType: hard -"undici@npm:6.19.2": - version: 6.19.2 - resolution: "undici@npm:6.19.2" - checksum: 10c0/3b7b9238c0c84fd90742422fb12844a29e33e922d2c5f722f626090ca1f1ec93596ccec9be1814bb0e923e28682d2080a17d17a4afe373897b9770ef25a64d97 +"undici-types@npm:~6.18.2": + version: 6.18.2 + resolution: "undici-types@npm:6.18.2" + checksum: 10c0/dea28163891a5af7624c120107dc07a74c369ee94c6dd1d0de29af061ee129fac4846f97130589f4436b85f6102c73d30328ca908be02626dd8ab9fec5642aba languageName: node linkType: hard @@ -16181,19 +16579,20 @@ __metadata: languageName: node linkType: hard -"vite@npm:5.3.2": - version: 5.3.2 - resolution: "vite@npm:5.3.2" +"vite@npm:5.4.0": + version: 5.4.0 + resolution: "vite@npm:5.4.0" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.38" + postcss: "npm:^8.4.40" rollup: "npm:^4.13.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" + sass-embedded: "*" stylus: "*" sugarss: "*" terser: ^5.4.0 @@ -16209,6 +16608,8 @@ __metadata: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -16217,7 +16618,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/3ed576d18c6c008ae92be68f9c79bf7556dae10978a3e8b4c4b42199424755e5c99836e6d4f81fb8b533b957d7f4e351abc60b8a93f4c4b5eb9890b5b6450926 + checksum: 10c0/122de7795e1c3c08cd0acc7d77296f908398266b424492be7310400107f37a3cf4c9506f2b4b16619e57299ca2859b8ca187aac5e25f8e66d84f9204a1d72d18 languageName: node linkType: hard @@ -16315,7 +16716,26 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:7.2.1, webpack-dev-middleware@npm:^7.1.0": +"webpack-dev-middleware@npm:7.4.2": + version: 7.4.2 + resolution: "webpack-dev-middleware@npm:7.4.2" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^4.6.0" + mime-types: "npm:^2.1.31" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10c0/2aa873ef57a7095d7fba09400737b6066adc3ded229fd6eba89a666f463c2614c68e01ae58f662c9cdd74f0c8da088523d972329bf4a054e470bc94feb8bcad0 + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^7.1.0": version: 7.2.1 resolution: "webpack-dev-middleware@npm:7.2.1" dependencies: @@ -16381,14 +16801,14 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:5.10.0": - version: 5.10.0 - resolution: "webpack-merge@npm:5.10.0" +"webpack-merge@npm:6.0.1": + version: 6.0.1 + resolution: "webpack-merge@npm:6.0.1" dependencies: clone-deep: "npm:^4.0.1" flat: "npm:^5.0.2" - wildcard: "npm:^2.0.0" - checksum: 10c0/b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b + wildcard: "npm:^2.0.1" + checksum: 10c0/bf1429567858b353641801b8a2696ca0aac270fc8c55d4de8a7b586fe07d27fdcfc83099a98ab47e6162383db8dd63bb8cc25b1beb2ec82150422eec843b0dc0 languageName: node linkType: hard @@ -16414,11 +16834,10 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.92.1": - version: 5.92.1 - resolution: "webpack@npm:5.92.1" +"webpack@npm:5.94.0": + version: 5.94.0 + resolution: "webpack@npm:5.94.0" dependencies: - "@types/eslint-scope": "npm:^3.7.3" "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.12.1" "@webassemblyjs/wasm-edit": "npm:^1.12.1" @@ -16427,7 +16846,7 @@ __metadata: acorn-import-attributes: "npm:^1.9.5" browserslist: "npm:^4.21.10" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.17.0" + enhanced-resolve: "npm:^5.17.1" es-module-lexer: "npm:^1.2.1" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" @@ -16447,7 +16866,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/43ca7c76b9c1005bd85f05303d048f918bac10276a209e3ef5e359353fbfef4e5fcee876265e6bc305bf5ef326576e02df63bc7e5af878fb7f06d7e1795b811a + checksum: 10c0/b4d1b751f634079bd177a89eef84d80fa5bb8d6fc15d72ab40fc2b9ca5167a79b56585e1a849e9e27e259803ee5c4365cb719e54af70a43c06358ec268ff4ebf languageName: node linkType: hard @@ -16575,7 +16994,7 @@ __metadata: languageName: node linkType: hard -"wildcard@npm:^2.0.0": +"wildcard@npm:^2.0.1": version: 2.0.1 resolution: "wildcard@npm:2.0.1" checksum: 10c0/08f70cd97dd9a20aea280847a1fe8148e17cae7d231640e41eb26d2388697cbe65b67fd9e68715251c39b080c5ae4f76d71a9a69fa101d897273efdfb1b58bf7 @@ -16686,6 +17105,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + "ws@npm:~8.11.0": version: 8.11.0 resolution: "ws@npm:8.11.0" @@ -16777,13 +17211,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:21.1.1, yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 - languageName: node - linkType: hard - "yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -16791,7 +17218,14 @@ __metadata: languageName: node linkType: hard -"yargs@npm:17.7.2, yargs@npm:^17.0.0, yargs@npm:^17.2.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 + languageName: node + linkType: hard + +"yargs@npm:17.7.2, yargs@npm:^17.0.0, yargs@npm:^17.2.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: From 41c7789dbd0a95a4f7a1cf4f87342264b588594a Mon Sep 17 00:00:00 2001 From: masthom Date: Wed, 18 Sep 2024 15:18:01 +0200 Subject: [PATCH 056/213] add corrections op. 12: source_Cc_corr + source_Cd_corr --- .../1/section/5/op12/source-description.json | 1413 +---------------- 1 file changed, 16 insertions(+), 1397 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index c2ca182433..7151e34f8f 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1865,6 +1865,22 @@ "Cb weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von Die geheimnisvolle Flöte M 217. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." ], "comments": [ ] + }, + { + "id": "source_Cc_corr", + "label": "Korrekturen in Cc", + "description": [ + "Cc weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur bzw. auf Tektur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von „Schien mir’s, als ich sah die Sonne“ M 213. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + ], + "comments": [ ] + }, + { + "id": "source_Cd_corr", + "label": "Korrekturen in Cd", + "description": [ + "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + ], + "comments": [ ] } ] } @@ -2047,513 +2063,6 @@ ], "comments": [ { -<<<<<<< HEAD - "svgGroupId": "TODO", - "measure": "1", - "system": "Klav.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." - }, - { - "svgGroupId": "TODO", - "measure": "1", - "system": "Klav. o.", - "position": "1/8–2/4", - "comment": "Crescendogabel zwischen den Systemen gestrichen. Crescendogabel 1–2/8, Decrescendogabel 2/8 bis Taktende über dem System hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "1
    bis 2", - "system": "Klav. o.", - "position": "1/8
    4/8", - "comment": "Legatobogen geändert zu zwei Legatobögen von T. 1 1/8 bis T. 2 1/8 und T. 2 2.–3. Note." - }, - { - "svgGroupId": "TODO", - "measure": "2", - "system": "Klav. o.", - "position": "2. Note", - "comment": "zögernd geändert zu rit. - - - (mit Geltungsstrichelung bis Taktende).
    {{ref.getGlyph('[ppp]')}} hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "3", - "system": "Klav. u.", - "position": "2–3/8", - "comment": "Achtelfähnchen bei 2/8 geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "3", - "system": "Ges.", - "position": "6/8", - "comment": "Tenutostrich hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "3
    bis 5", - "system": "Ges.", - "position": "6/8
    3/8", - "comment": "Zuerst: Bogen über den Noten hinzugefügt.
    Dann: Bogen wieder gestrichen.
    Siehe Korrektur in T. 4 3/8 bis T. 5 3/8." - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Ges.", - "position": "2–4/8", - "comment": "Crescendogabel gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Klav.", - "position": "1.–2. Note", - "comment": "Legatobogen und Decrescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Ges.", - "position": "3–4/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "4
    bis 5", - "system": "Ges.", - "position": "3/8
    3/8", - "comment": "Bogen hinzugefügt.
    Siehe Korrektur in T. 3 6/8 bis T. 5 3/8." - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Klav. o.", - "position": "letzte Pause", - "comment": "Viertelpause gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Klav.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[pp]')}} gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Ges.", - "position": "3–4/8", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "5
    bis 7", - "system": "Ges.", - "position": "4/8
    1/4", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Ges.", - "position": "2.–4. Note", - "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken über den Noten.
    Dann: Balken bei 2.–4. Note unter den Noten hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Klav. o.", - "position": "2–3/8", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Klav.", - "position": "2–3/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Klav. u.", - "position": "2–3/8", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "7
    bis 8", - "system": "Ges.", - "position": "2. Note
    1. Note", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "7
    bis 8", - "system": "Ges.", - "position": "3. Note
    nach 1/4", - "comment": "Ende der Crescendogabel T. 7 3. Note verlängert zu T. 8 nach 1/4." - }, - { - "svgGroupId": "TODO", - "measure": "7
    bis 8", - "system": "Ges.", - "position": "3. Note
    3/8", - "comment": "dis fis e unter den Noten es2–ges2–fes2." - }, - { - "svgGroupId": "TODO", - "measure": "8", - "system": "Klav. o. u.", - "position": "1.–2. Note", - "comment": "Stacctopunkte überschrieben zu Tenutostrichen." - }, - { - "svgGroupId": "TODO", - "measure": "8
    bis 9", - "system": "Ges.", - "position": "3/8
    2. Note", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "8
    bis 9", - "system": "Ges.", - "position": "4/8
    2. Note", - "comment": "Ende der Crescendogabel T. 8 4/8 verlängert zu T. 9 2. Note." - }, - { - "svgGroupId": "TODO", - "measure": "9", - "system": "Klav.", - "position": "1/4", - "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}}." - }, - { - "svgGroupId": "TODO", - "measure": "9", - "system": "Ges.", - "position": "", - "comment": "Drei Vierteltriolen geändert zu triolischer Viertel- und Achtelnote sowie triolischer Achtelpause und Viertelnote." - }, - { - "svgGroupId": "TODO", - "measure": "9", - "system": "Ges.", - "position": "3. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "9
    bis 11", - "system": "Ges.", - "position": "3. Note
    1/4", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "9
    bis 10", - "system": "Klav. u.", - "position": "4/8
    1/4", - "comment": "Legatobogen gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "9
    bis 11", - "system": "Klav. u.", - "position": "4/8
    1/4", - "comment": "Legatobogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "10", - "system": "Klav. o.", - "position": "1., 2. Note", - "comment": "Tenutostriche gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "10
    bis 11", - "system": "Klav. o.", - "position": "1. Note
    2. Note", - "comment": "Legatobogen hinzugefügt. Siehe Korrektur T. 10 2. Note bis T. 11 2. Note.
    Crescendogabel T. 10 1. Note bis nach 2. Note und Decrescendogabel T. 11 1.–2. Note geändert zu Decrescendogabel T. 10 1. Note bis T. 11 2. Note." - }, - { - "svgGroupId": "TODO", - "measure": "10", - "system": "Ges.", - "position": "2–4/8", - "comment": "Achtelfähnchen bei 3–4/8 geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "10
    bis 11", - "system": "Klav. o.", - "position": "2. Note
    2. Note", - "comment": "Legatobogen gestrichen. Siehe Korrektur T. 10 1. Note bis T. 11 2. Note." - }, - { - "svgGroupId": "TODO", - "measure": "10", - "system": "Klav. u.", - "position": "2/4", - "comment": "Tenutostrich gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "Klav. o.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "12", - "system": "", - "position": "Taktanfang", - "comment": "molto (scil: „molto rit.“) gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "12/13", - "system": "", - "position": "Taktstrich", - "comment": "Fermaten über Ges. und Klav. o. hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Ges.", - "position": "1/8", - "comment": "Fermate gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Klav. o.", - "position": "", - "comment": "Fermate gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Klav. u.", - "position": "1/4", - "comment": "Fermate gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "13
    bis 14", - "system": "Ges.", - "position": "2/8
    2. Note?", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Ges.", - "position": "5–6/8", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Klav. u.", - "position": "3/4", - "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Klav. (u.)", - "position": "1/8", - "comment": "ohne Pedal gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Klav. u.", - "position": "1.–2. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Klav. u.", - "position": "2. Note", - "comment": "Decrescendogabel gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "14
    bis 15", - "system": "Ges.", - "position": "3. Note
    2/8", - "comment": "Anfang des Bogens geändert von T. 14 3/8." - }, - { - "svgGroupId": "TODO", - "measure": "14
    bis 15", - "system": "Ges.", - "position": "3. Note
    2/8", - "comment": "Crescendogabel von T. 14 4/8 bis T. 15 1/8 geändert zu T. 14 3. Note bis T. 15 2/8." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Ges.", - "position": "2/8–8/16", - "comment": "Zunächst: Fähnchen bei 3.–4. Note geändert zu Balken.
    Dann: Balken bei 2.–4. Note hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Ges.", - "position": "3. Note", - "comment": "{{ref.getGlyph('[pp]')}} gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "15
    bis 16", - "system": "Ges.", - "position": "3. Note
    2/4", - "comment": "Crescendogabel T. 15 3.–4. Note und Decrescendogabel T. 16 1–2/4 geändert zu Decrescendogabel.
    Anfang des Bogens T. 16 1/4 geändert zu T. 15 3. Note." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Klav. o.", - "position": "1.–2. Note", - "comment": "{{ref.getGlyph('[pp]')}} zu 1. Note gestrichen und Crescendogabel geändert zu Decrescendogabel." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Klav.", - "position": "(3/4)", - "comment": "Crescendogabel gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav.", - "position": "Taktanfang bis 1/4", - "comment": "Decrescendogabel von T. 16 hinzugefügt. (E: Akkoladenwechsel nach T. 16.)" - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Ges.", - "position": "1–4/8", - "comment": "Achtelfähnchen geändert zu Balken." - }, - { - "svgGroupId": "TODO", - "measure": "17
    bis 18", - "system": "Ges.", - "position": "1/8
    2. Note", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Ges.", - "position": "2–3/8", - "comment": "Crescendogabel gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[p]')}} hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Ges.", - "position": "Taktanfang
    bis 2. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Ges.", - "position": "", - "comment": "Drei Vierteltriolen geändert zu Viertel-, Achtelnote as1–ges1 unter einer Triolenklammer und Achtelpause, Viertelnote des1 unter einer Triolenklammer." - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Ges.", - "position": "3. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "18
    bis 21", - "system": "Ges.", - "position": "3. Note", - "comment": "Bogen hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "19", - "system": "Ges.", - "position": "", - "comment": "{{ref.getGlyph('[pp]')}} gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "19", - "system": "Ges.", - "position": "", - "comment": "Ansatz zu Bogen oder Crescendogabel (bis Taktende) gestrichen." - }, - { - "svgGroupId": "TODO", - "measure": "20", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "Crescendogabel überschrieben zu Decrescendogabel." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Klav.", - "position": "2/4", - "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[p]')}}." - }, - { - "svgGroupId": "TODO", - "measure": "21
    bis 22", - "system": "Klav.", - "position": "2/4", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "22", - "system": "Klav.", - "position": "2/4", - "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." - } - ], - "linkBoxes": [] -======= "blockHeader": "", "blockComments": [ { @@ -2991,7 +2500,6 @@ ] } ] ->>>>>>> develop } ] } @@ -3379,894 +2887,6 @@ } ], "corrections": [ -<<<<<<< HEAD - { - "id": "source_F_corr", - "label": "Korrekturen in F", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Vier Lieder op. 12." - ], - "comments": [ - { - "svgGroupId": "TODO", - "measure": "I „Der Tag ist vergangen“ M 212", - "system": "", - "position": "", - "comment": "" - }, - { - "svgGroupId": "TODO", - "measure": "1", - "system": "Klav. o.", - "position": "Taktanfang", - "comment": "Rasur über dem System. Ante correcturam: Tempobezeichnung?" - }, - { - "svgGroupId": "TODO", - "measure": "2", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Rasur über dem System. Ante correcturam: rit.?" - }, - { - "svgGroupId": "TODO", - "measure": "3", - "system": "Klav. o.", - "position": "Taktanfang", - "comment": "Rasur über dem System. Ante correcturam: tempo?" - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Klav. u.", - "position": "letzte Note", - "comment": "Auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Klav. o.", - "position": "1. Note bis Taktende", - "comment": "Rasur unter dem System. Ante correcturam: Gabel?" - }, - { - "svgGroupId": "TODO", - "measure": "5
    bis 6", - "system": "Klav. u.", - "position": "1. Note", - "comment": "Rasur unter dem System. Ante correcturam: Gabel?" - }, - { - "svgGroupId": "TODO", - "measure": "5
    bis 7", - "system": "Ges.", - "position": "4/8
    1/4", - "comment": "Zwei Bögen von T. 5 4/8 bis T. 6 4/16 und von T. 6 3. Note bis T. 7 1/4 über dem System rasiert." - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav. o.", - "position": "1–2/4", - "comment": "Rasur unter dem System. Ante correcturam: Gabel?" - }, - { - "svgGroupId": "TODO", - "measure": "9", - "system": "Ges.", - "position": "1. Pause, letzte Note", - "comment": "Triolenklammer hinzugefügt mit rotem Buntstift." - }, - { - "svgGroupId": "TODO", - "measure": "10
    bis 11", - "system": "Klav. o.", - "position": "1. Note
    2. Note", - "comment": "Legatobogen auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "10", - "system": "Klav. u.", - "position": "1/4", - "comment": "Rasur unter dem System. Ende des Bogen von T. 9 letzte Note?" - }, - { - "svgGroupId": "TODO", - "measure": "10
    bis 11", - "system": "Klav. o.", - "position": "2. Note
    2. Note", - "comment": "Decrescendogabel, {{ref.getGlyph('[pp]')}} auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Staccatopunkt hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "12", - "system": "Ges.", - "position": "", - "comment": "Ganze Pause hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Ges., Klav.", - "position": "", - "comment": "Fermaten rasiert über Ges. 1/8 und Klav. o. Ganze Pause. Fermaten über Taktstrich vor T. 13 vermutlich danach hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Klav. o.", - "position": "1.–2. Note", - "comment": "Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Klav. o.", - "position": "", - "comment": "{{ref.getGlyph('[a]')}} zu e1 verändert zu {{ref.getGlyph('[b]')}} zu es1 und Verweislinie zu AW unter der Akkolade mit rotem Buntstift." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Klav. u.", - "position": "", - "comment": "Rasur rechts neben g. Ante correcturam: Punktierung?" - }, - { - "svgGroupId": "TODO", - "measure": "21
    bis 22", - "system": "Klav. o.", - "position": "2/4", - "comment": "Bogen über dem System rasiert." - }, - { - "svgGroupId": "TODO", - "measure": "II Die geheimnisvolle Flöte („An einem Abend“) M 217", - "system": "", - "position": "", - "comment": "" - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Klav. o.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Klav. o.", - "position": "2. Note", - "comment": "g2 auf Rasur.
    Ende der Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur.
    Rasur am Notenhals." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Ges.", - "position": "6/8", - "comment": "Auf Rasur. Ante correcturam: Untersatz angeglichen?" - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav. u.", - "position": "1. Note", - "comment": "Rasur unter der Note. Ante correcturam: Dynamik?" - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav.", - "position": "2/8–5/16", - "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav. u.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[pp]')}} auf Rasur. Rasur unter dem System. Ante correcturam: Dynamik?" - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav. o.", - "position": "4/8", - "comment": "Rasur unter dem System. Ante correcturam: Dynamik?" - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Ges.", - "position": "1. Note", - "comment": "Rasur rechts neben dem Notenkopf. Ante correcturam: Augmentationspunkt?" - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Klav. u.", - "position": "2/4", - "comment": "Viertelpause hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "7", - "system": "Klav. u.", - "position": "10/16", - "comment": "Rasur über dem System. Ante correcturam: Dynamik?" - }, - { - "svgGroupId": "TODO", - "measure": "8", - "system": "Klav. u.", - "position": "3/16–2/4", - "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelende zuerst bis Taktende?" - }, - { - "svgGroupId": "TODO", - "measure": "9", - "system": "Klav. o.", - "position": "1/4", - "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst in T. 8 4/8?" - }, - { - "svgGroupId": "TODO", - "measure": "12
    bis 13", - "system": "Klav.", - "position": "letzte Note", - "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel, {{ref.getGlyph('[ppp]')}} auf Rasur. Ante correcturam: Decrescendogabel zuerst über den Taktstrich?" - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Ges.", - "position": "", - "comment": "Gabeln auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Klav. u.", - "position": "2/4", - "comment": "Notenhals auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "14
    bis 16", - "system": "Klav. u.", - "position": "2/4
    2/4", - "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 16 bis 17.)" - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Ges.", - "position": "5/8 bis Taktende", - "comment": "[mp], Crescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "16
    bis 17", - "system": "Klav. u.", - "position": "3/4
    2/4", - "comment": "Bogen schwach mit Bleistift: stehengelassene Vorzeichnung? (Siehe auch Korrektur in T. 14 bis 16.)" - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Ges.", - "position": "2–3/4", - "comment": "Decrescendogabel auf Rasur. Ante correcturam: Gabelanfang zuerst zu 1/4?" - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav. o.", - "position": "9/16", - "comment": "Rasur über dem System. Ante correcturam: Dynamik?" - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav. o.", - "position": "9–12/16", - "comment": "Rasur unter dem System. Ante correcturam: Gabel?" - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav. u.", - "position": "5–6/8", - "comment": "Rasur unter dem System. Ante correcturam: Dynamik und Gabel?" - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Ges.", - "position": "1/4", - "comment": "? mit rotem Buntstift: Text fehlt." - }, - { - "svgGroupId": "TODO", - "measure": "18
    bis 19", - "system": "Klav. u.", - "position": "1/16
    3/4", - "comment": "Rasur über dem System. Ante correcturam: Bogen?" - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Klav. o.", - "position": "3/4", - "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." - }, - { - "svgGroupId": "TODO", - "measure": "18
    bis 19", - "system": "Klav. o.", - "position": "3/4
    3. Note", - "comment": "Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "19", - "system": "Klav. o.", - "position": "3.–4. Note", - "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel mit schwarzer Tinte überschreiben Decrescendogabel mit Bleitstift." - }, - { - "svgGroupId": "TODO", - "measure": "19
    bis 22", - "system": "Ges.", - "position": "3/4
    2/4", - "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen von T. 20 1/4 bis T. 22 2/4.
    (Decrescendogabel in T. 22 auf dieser Rasur.)" - }, - { - "svgGroupId": "TODO", - "measure": "20", - "system": "Klav. o.", - "position": "1/16–3/8", - "comment": "Rasuren über dem System. Ante correcturam: vermutlich Bogen 1/16–3/8." - }, - { - "svgGroupId": "TODO", - "measure": "20", - "system": "Klav. u.", - "position": "1/8", - "comment": "Staccatopunkt auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Klav. o.", - "position": "1.–4. Note", - "comment": "Crescendogabel mit Bleistift, nachgezogen mit schwarzer Tinte." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Ges.", - "position": "letzte Note", - "comment": "des2 auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "22", - "system": "Klav. o.", - "position": "1. Note", - "comment": "Auf Rasur. (Untersatz geändert.)
    {{ref.getGlyph('[p]')}} mit Bleistift, nachgezogen mit schwarzer Tinte." - }, - { - "svgGroupId": "TODO", - "measure": "22", - "system": "Klav. o.", - "position": "1.–3. Note", - "comment": "Rasur unter dem System. Ante correcturam: Decrescendogabel bereits ab 1. Note?" - }, - { - "svgGroupId": "TODO", - "measure": "22", - "system": "Ges.", - "position": "5/8", - "comment": "{{ref.getGlyph('[p]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." - }, - { - "svgGroupId": "TODO", - "measure": "23
    bis 24", - "system": "Ges., Klav.", - "position": "Taktanfang", - "comment": "Auf Rasur. (Untersatzkorrektur?)" - }, - { - "svgGroupId": "TODO", - "measure": "25–27", - "system": "Klav. u.", - "position": "", - "comment": "Rasuren unter dem System." - }, - { - "svgGroupId": "TODO", - "measure": "25
    bis 26", - "system": "Klav. o.", - "position": "3/8
    2. Note", - "comment": "Rasuren über dem System. Ante correcturam: Bogen bis T. 26 2. Note?" - }, - { - "svgGroupId": "TODO", - "measure": "25
    bis 26", - "system": "Klav.", - "position": "2/4
    Taktende", - "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "27", - "system": "Klav.", - "position": "", - "comment": "{{ref.getGlyph('[ppp]')}}, Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "27", - "system": "Klav. u.", - "position": "", - "comment": "Augmentationspunkt hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "III „Schien mir’s, als ich sah die Sonne“ M 213", - "system": "", - "position": "", - "comment": "" - }, - { - "svgGroupId": "TODO", - "measure": "4", - "system": "Ges.", - "position": "5–6/16", - "comment": "Sechzehntelpause auf Rasur. Ante correcturam: Achtelnote d2." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Klav. o.", - "position": "2/16–2/8", - "comment": "Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "5", - "system": "Klav.", - "position": "3–6/16", - "comment": "Rasur über den Noten." - }, - { - "svgGroupId": "TODO", - "measure": "6", - "system": "Klav. u.", - "position": "", - "comment": "Rasuren neben den Notenköpfen. Ante correcturam: punktierte Viertelnote." - }, - { - "svgGroupId": "TODO", - "measure": "8", - "system": "Klav. u.", - "position": "2–3/8", - "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "8", - "system": "Ges.", - "position": "6/16", - "comment": "[Son-]ne! geändert zu [Son-]ne,, ! rasiert, Komma mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "Klav. o.", - "position": "2/8–6/16", - "comment": "Rasuren. Ante correcturam: vermutlich zwei zusammengebalkte Achtelnoten?" - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "Ges.", - "position": "3/8", - "comment": ": (?) überschrieben zu ; mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "12", - "system": "", - "position": "Taktanfang", - "comment": "tempo auf Rasur. Ante correcturam: Geltungsstrichelung von rit. in T. 11 bis Ende T. 12?" - }, - { - "svgGroupId": "TODO", - "measure": "14", - "system": "Klav. o.", - "position": "1., 2. Note", - "comment": "Rasuren über den Noten." - }, - { - "svgGroupId": "TODO", - "measure": "15
    bis 16", - "system": "Ges.", - "position": "3/8
    Taktende", - "comment": "Rasur unter den Noten. Ante correcturam: Bogen unter den Noten." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "", - "position": "", - "comment": "Geltungsstrichelung von rit. auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Rasuren über der Note." - }, - { - "svgGroupId": "TODO", - "measure": "17–18", - "system": "", - "position": "", - "comment": "Taktartvorzeichnung vor T. 17: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 17 und Taktartvorzeichnung vor T. 18 (3/8) hinzugefügt." - }, - { - "svgGroupId": "TODO", - "measure": "17", - "system": "Klav. o.", - "position": "Taktanfang", - "comment": "Bassschlüssel auf Rasur. Ante correcturam: Violinschlüssel." - }, - { - "svgGroupId": "TODO", - "measure": "20–21", - "system": "", - "position": "", - "comment": "Taktartvorzeichnung vor T. 20: 5/8 überschrieben zu 2/8 sowie Taktstrich nach T. 20 hinzugefügt und Untersatz am Anfang von T. 21 geändert auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "21", - "system": "Klav. u.", - "position": "4/16", - "comment": "Rasur über dem System." - }, - { - "svgGroupId": "TODO", - "measure": "22", - "system": "Ges.", - "position": "2/16", - "comment": "dis2 auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "23", - "system": "Klav. o.", - "position": "1–2/8", - "comment": "Crescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "23", - "system": "Ges.", - "position": "2/16–12/32", - "comment": "Gabeln auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "24", - "system": "Klav. u.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "24
    bis 25", - "system": "Ges.", - "position": "1. Note
    letzte Note", - "comment": "Rasuren über dem System. Decrescendogabel in T. 25 3.–4. Note auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "25", - "system": "Klav. u.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "25", - "system": "", - "position": "(2/8)", - "comment": "rit.- - - gestrichen mit Bleistift. (Siehe Korrektur in T. 26 Taktanfang.)" - }, - { - "svgGroupId": "TODO", - "measure": "25", - "system": "Klav. o.", - "position": "3/8", - "comment": "[mf] auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "26", - "system": "", - "position": "Taktanfang", - "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
    rit. hinzugefügt mit Bleistift. (Siehe Korrektur in T. 25 [2/8].)" - }, - { - "svgGroupId": "TODO", - "measure": "26", - "system": "Klav. u.", - "position": "1–2/8", - "comment": "Auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "26", - "system": "Ges.", - "position": "1.–4. Note", - "comment": "Gabeln mit Bleistift, radiert und mit schwarzer Tinte nachgezogen." - }, - { - "svgGroupId": "TODO", - "measure": "26", - "system": "Klav. o.", - "position": "3.–4. Note", - "comment": "Ende der Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "26", - "system": "Klav. u.", - "position": "8/16", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "27
    bis 28", - "system": "Ges.", - "position": "2/16
    2/8", - "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 27 2/16 bis T. 28 2/8." - }, - { - "svgGroupId": "TODO", - "measure": "28", - "system": "Ges.", - "position": "1–2/8", - "comment": "Bogen auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "28
    bis 29", - "system": "Ges.", - "position": "3. Note
    2. Note", - "comment": "Rasur über den Noten. Ante correcturam: Bogen von T. 28 3. Note bis T. 29 2. Note." - }, - { - "svgGroupId": "TODO", - "measure": "30", - "system": "", - "position": "Taktanfang", - "comment": "accell. auf Rasur. Ante correcturam: vermutlich durchgehende Geltungsstrichelung von rit. in T. 28 3/8 bis Ende T. 31?" - }, - { - "svgGroupId": "TODO", - "measure": "30", - "system": "Klav.", - "position": "1/8", - "comment": "Achtelpausen auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "30", - "system": "Klav. o.", - "position": "vor 2/8", - "comment": "Violinschlüssel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "33", - "system": "Klav.", - "position": "4/32–4/16", - "comment": "Auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "34", - "system": "", - "position": "Taktanfang", - "comment": "Taktartvorzeichnung 4/8 überschrieben zu 2/4.
    Geltungsstrichelung auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "34", - "system": "Klav. o.", - "position": "1/4", - "comment": "Oberstimmenschicht: Viertelpause auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "34–36", - "system": "Klav. o.", - "position": "", - "comment": "Rasur zwischen den Stimmenschichten. Ante correcturam: Trillerwellenlinie über a aus Unterstimmenschicht?" - }, - { - "svgGroupId": "TODO", - "measure": "35", - "system": "", - "position": "Taktanfang", - "comment": "sehr ruhig ([Achtel] = ca 100) auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "38–40", - "system": "", - "position": "", - "comment": "rit. - - - mit Bleistift, nachgezogen mit schwarzer Tinte." - }, - { - "svgGroupId": "TODO", - "measure": "IV Gleich und Gleich („Ein Blumenglöckchen“) M 216", - "system": "", - "position": "", - "comment": "" - }, - { - "svgGroupId": "TODO", - "measure": "2", - "system": "Klav. o.", - "position": "2.–4. Note", - "comment": "Decrescendogabel hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "3", - "system": "Ges.", - "position": "1–2/4", - "comment": "Viertelpausen und Fermate zu 2/4 hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "8
    bis 9", - "system": "Klav. u.", - "position": "1/4", - "comment": "e/g auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "9
    bis 10", - "system": "Klav. o.", - "position": "2/8
    2/8", - "comment": "Notenköpfe mit Bleistift nachgezogen.
    Gabeln (über dem System) auf Rasur. Ante correcturam: Bogen über dem System. Post correcturam: Bogen unter dem System." - }, - { - "svgGroupId": "TODO", - "measure": "9
    bis 10", - "system": "Klav. u.", - "position": "2. Note", - "comment": "Bogen rasiert." - }, - { - "svgGroupId": "TODO", - "measure": "10
    bis 11", - "system": "Ges.", - "position": "2/4
    1. Note", - "comment": "Rasur über dem System. Ante correcturam: Bogen und Decrescendogabel überschneiden sich." - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "Klav. u.", - "position": "1/8", - "comment": "Rasur über der Note." - }, - { - "svgGroupId": "TODO", - "measure": "11", - "system": "", - "position": "3/4", - "comment": "rit. vermutlich versetzt von Anfang T. 12. (Dort Geltungsstrichelung auf Rasur)." - }, - { - "svgGroupId": "TODO", - "measure": "12", - "system": "Klav. u.", - "position": "1/4", - "comment": "Auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "13", - "system": "Klav. o.", - "position": "", - "comment": "g2/ges3/ais3, zweite Hilfslinie gestrichen und Tonnamen fis | es vor den beiden obersten Notenköpfen ergänzt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Klav. o.", - "position": "1/4", - "comment": "Unterstimmenschicht: Viertelpause auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Klav. o.", - "position": "2/8", - "comment": "{{ref.getGlyph('[f]')}} mit Bleistift, mit schwarzer Tinte nachgezogen." - }, - { - "svgGroupId": "TODO", - "measure": "15", - "system": "Klav. o.", - "position": "2–6/8", - "comment": "Rasur unter dem System." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Ges.", - "position": "", - "comment": "Ganze Pause hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Klav.", - "position": "1.–2. Note", - "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel auf Rasur." - }, - { - "svgGroupId": "TODO", - "measure": "16", - "system": "Klav.", - "position": "", - "comment": "Auf Rasur. Ante correcturam: Klav. u. und Klav. o. Unterstimmenschicht vermutlich Ligatur aus Viertelnote, punktierte Viertelnote C/A und e, Achtelpause. Klav. o. Oberstimmenschicht vermutlich Viertelnote cis1, Achtelpause" - }, - { - "svgGroupId": "TODO", - "measure": "18", - "system": "Klav. o.", - "position": "1/4", - "comment": "{{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit Bleistift." - }, - { - "svgGroupId": "TODO", - "measure": "19", - "system": "Klav. o.", - "position": "2.–3. Note", - "comment": "Oberstimmenschicht auf Rasur." - } - ], - "linkBoxes": [] - } - ] -======= { "id": "source_F_corr", "label": "Korrekturen in F", @@ -5023,7 +3643,6 @@ ] } ] ->>>>>>> develop } }, { From 7749846c6937389c4d7f3f500df48c62f168998f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 14:37:41 +0000 Subject: [PATCH 057/213] build(deps): bump n3 from 1.21.1 to 1.22.0 Bumps [n3](https://github.com/rdfjs/N3.js) from 1.21.1 to 1.22.0. - [Release notes](https://github.com/rdfjs/N3.js/releases) - [Commits](https://github.com/rdfjs/N3.js/compare/v1.21.1...v1.22.0) --- updated-dependencies: - dependency-name: n3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 05a011d6b6..38d40f2f5d 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "d3-zoom": "^3.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.5.1", - "n3": "^1.21.1", + "n3": "^1.22.0", "ngx-json-viewer": "^3.2.1", "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", diff --git a/yarn.lock b/yarn.lock index dcdc446fd5..cf1c435dfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6097,7 +6097,7 @@ __metadata: karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" lint-staged: "npm:^15.2.10" - n3: "npm:^1.21.1" + n3: "npm:^1.22.0" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" @@ -12562,14 +12562,14 @@ __metadata: languageName: node linkType: hard -"n3@npm:^1.21.1": - version: 1.21.1 - resolution: "n3@npm:1.21.1" +"n3@npm:^1.22.0": + version: 1.22.0 + resolution: "n3@npm:1.22.0" dependencies: buffer: "npm:^6.0.3" queue-microtask: "npm:^1.1.2" readable-stream: "npm:^4.0.0" - checksum: 10c0/4058332422e621d58d5a734c8334052d808422bf2e245511f5056062efd6b2fc1065b98b023a0db77a5f3c2e9300b67163bc1da9b6ad8419ea5c723842fcb051 + checksum: 10c0/ef531f36486235728261be168f9de8546bcfb8e91bc51ccc1426dceda830f4134cf07c1e0b4395c3125d604336953883a7050de483db543f1ebaf9fe814a039f languageName: node linkType: hard From 3c11cb81bbc051763aa9a6f72bbd81428729e5d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:23:56 +0000 Subject: [PATCH 058/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.5.0 to 8.6.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.6.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.5.0 to 8.6.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.6.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 38d40f2f5d..043f07dbba 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.4", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index cf1c435dfd..6205875384 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5096,15 +5096,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.5.0" +"@typescript-eslint/eslint-plugin@npm:^8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.6.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.5.0" - "@typescript-eslint/type-utils": "npm:8.5.0" - "@typescript-eslint/utils": "npm:8.5.0" - "@typescript-eslint/visitor-keys": "npm:8.5.0" + "@typescript-eslint/scope-manager": "npm:8.6.0" + "@typescript-eslint/type-utils": "npm:8.6.0" + "@typescript-eslint/utils": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5115,25 +5115,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/69ae7067e03d2d8d442e69d668235bdafd63b07229d0be27025eaad8aa468b5af8ac54627021e0e3a060df04ed1c39d1327a0b11469ac72405b52b74a79f402b + checksum: 10c0/c777f01535b896d3092f9886a67ccf9e50bf9e0f581ffab607c5e95dbf3092299b0d9f3e6041b134d69059a6fa5691785940b81015f73bb9a0e9d1605f6442ea languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/parser@npm:8.5.0" +"@typescript-eslint/parser@npm:^8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/parser@npm:8.6.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.5.0" - "@typescript-eslint/types": "npm:8.5.0" - "@typescript-eslint/typescript-estree": "npm:8.5.0" - "@typescript-eslint/visitor-keys": "npm:8.5.0" + "@typescript-eslint/scope-manager": "npm:8.6.0" + "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/typescript-estree": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/509fdd605b86c7d025928f20e1035712c2fc268c34b1af84248ed0b53d699034f19caf98e085c5c758d3025e29939dd12eea427c72cae9e5ea79274364851f0a + checksum: 10c0/3f280d289b486359194d422d89df9896b3f10a6d45cdf851d1d5f3200489271a31ab503c127cb5656f9b0ad6d795dd708b960f21fb105750aac19f41f8f815d1 languageName: node linkType: hard @@ -5147,28 +5147,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/scope-manager@npm:8.5.0" +"@typescript-eslint/scope-manager@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/scope-manager@npm:8.6.0" dependencies: - "@typescript-eslint/types": "npm:8.5.0" - "@typescript-eslint/visitor-keys": "npm:8.5.0" - checksum: 10c0/868602f9324a6e15fcae017acd3b0832e9f2c8c8cd315667df37c2e7c765cda5fba7c4bede931f32cc04819ba97cf74a5fddb085c6f1c7993f1fb085ba126422 + "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" + checksum: 10c0/37092ef70171c06854ac67ebfb2255063890c1c6133654e6b15b6adb6d2ab83de4feafd1599f4d02ed71a018226fcb3a389021758ec045e1904fb1798e90b4fe languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/type-utils@npm:8.5.0" +"@typescript-eslint/type-utils@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/type-utils@npm:8.6.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.5.0" - "@typescript-eslint/utils": "npm:8.5.0" + "@typescript-eslint/typescript-estree": "npm:8.6.0" + "@typescript-eslint/utils": "npm:8.6.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/675d3e41f938d16e9268fd33764a4e16b12a4a9817e61d5e2508a07fe6783c69ce9d05facc61822b5647c71d767929618ed37b8b93f423f7c2ccb62cfeb4343b + checksum: 10c0/914b4637caa40c102117655a9b4451e0db611a61309ed39d6c57522655463c059f4dfd4e2d7ffdefcc9ab7533be21fb877b740c58f5be11f3530aa29f3d2cb62 languageName: node linkType: hard @@ -5179,10 +5179,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/types@npm:8.5.0" - checksum: 10c0/f0b666b5c001b9779bfd9e4c7d031843d07264429d5bcf5d636f26f96cd5d949a33f5d6a645b8d74b93daf565a468476a6a4935dd7135a200250fb03acbe4988 +"@typescript-eslint/types@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/types@npm:8.6.0" + checksum: 10c0/e7051d212252f7d1905b5527b211e335db4ec5bb1d3a52d73c8d2de6ddf5cbc981f2c92ca9ffcef35f7447bda635ea1ccce5f884ade7f243d14f2a254982c698 languageName: node linkType: hard @@ -5205,12 +5205,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.5.0" +"@typescript-eslint/typescript-estree@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.6.0" dependencies: - "@typescript-eslint/types": "npm:8.5.0" - "@typescript-eslint/visitor-keys": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5220,21 +5220,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/f62f03d0c5dc57b2b54dbe1cbd027966f774f241279655f46c64145abb54b765176a0cd40447583ba56ada306181da9a82e39b777c78128e105e4ea98c609350 + checksum: 10c0/33ab8c03221a797865301f09d1d198c67f8b0e3dbf0d13e41f699dc2740242303a9fcfd7b38302cef318541fdedd832fd6e8ba34a5041a57e9114fa134045385 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/utils@npm:8.5.0" +"@typescript-eslint/utils@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/utils@npm:8.6.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.5.0" - "@typescript-eslint/types": "npm:8.5.0" - "@typescript-eslint/typescript-estree": "npm:8.5.0" + "@typescript-eslint/scope-manager": "npm:8.6.0" + "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/typescript-estree": "npm:8.6.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/0cb0bfdaf0da79d13c0d0379478eb14b5825d235873bc7181e70c4f6297fa1c74431ef730cbc2912fe1814dd8d46c6515ce22b39c57e8f03c337aa152fd49a4e + checksum: 10c0/5b615106342dfdf09f5a73e2554cc0c4d979c262a9a4548eb76ec7045768e0ff0bf0316cf8a5eb5404689cd476fcd335fc84f90eb985557559e42aeee33d687e languageName: node linkType: hard @@ -5262,13 +5262,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.5.0": - version: 8.5.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.5.0" +"@typescript-eslint/visitor-keys@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.6.0" dependencies: - "@typescript-eslint/types": "npm:8.5.0" + "@typescript-eslint/types": "npm:8.6.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/8b9e81968ad36e8af18ac17b63c4e0764612451ca085676c939b723549052243f63577d2706bc2da48174f11bf47587ab47e6e0b7c5b28d9f3c1ef7b9aad322d + checksum: 10c0/9bd5d5daee9de7e009fdd1b64b1eca685a699d1b2639373bc279c97e25e769fff56fffef708ef66a2b19bc8bb201d36daf9e7084f0e0872178bfcf9d923b41f3 languageName: node linkType: hard @@ -6067,8 +6067,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.5.0" - "@typescript-eslint/parser": "npm:^8.5.0" + "@typescript-eslint/eslint-plugin": "npm:^8.6.0" + "@typescript-eslint/parser": "npm:^8.6.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From c520b4e20596a8a3924cd771ac69cb5bda5430fb Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:58:39 +0200 Subject: [PATCH 059/213] fix(assets): small fixes in source descriptions AWG I/5 * fix typo in source description op. 4: J. * fix extension of link expression in source description op. 12: B * fix double space --- .../series/1/section/5/op12/source-description.json | 8 ++++---- .../series/1/section/5/op4/source-description.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 049a433022..8dd5659255 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1000,7 +1000,7 @@ { "item": "", "itemLinkTo": {}, - "itemDescription": "Autograph von „Der Tag ist vergangen“ M 212: Textfassung 1→2", + "itemDescription": "Autograph von „Der Tag ist vergangen“ M 212: Textfassung 1→2", "folios": [ { "folio": "1r", @@ -1066,7 +1066,7 @@ "id": "source_B_corr_1", "label": "Korrekturen 1 in B (mit Tinte)", "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 1." + "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 1." ], "comments": [ { @@ -1122,7 +1122,7 @@ "id": "source_B_corr_2", "label": "Korrekturen 2 in B (mit Tinte)", "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 1." + "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 1." ], "comments": [ { @@ -2605,7 +2605,7 @@ ], "comments": [ { - "blockHeader": "I „Der Tag ist vergangen“ M 212", + "blockHeader": "I „Der Tag ist vergangen“ M 212", "blockComments": [ { "measure": "1", diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index 37be3fe4ba..85e15550da 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -1687,7 +1687,7 @@ "location": "Wien: Universal Edition, 1923.", "description": { "desc": [ - "12 Seiten (S [1]–[12]): 3 fadengeheftete Bögen (S. [1]|2/11|[12], 3|4/9|10 und 5|6/7|8) in Umschlag (S. [a]–[d]), Format: hoch ### × ### mm. S. [2] und [12] sowie innere Seiten des Umschlags (S. [b] und [c]) nicht bedruckt. [Die konsultierten Exemplare lassen wegen Einbindung in Sammelbände keine Aussagen über das Originalformat und den Inhalt von S. [d] (Verlagsanzeige?) zu.]" + "12 Seiten (S. [1]–[12]): 3 fadengeheftete Bögen (S. [1]|2/11|[12], 3|4/9|10 und 5|6/7|8) in Umschlag (S. [a]–[d]), Format: hoch ### × ### mm. S. [2] und [12] sowie innere Seiten des Umschlags (S. [b] und [c]) nicht bedruckt. [Die konsultierten Exemplare lassen wegen Einbindung in Sammelbände keine Aussagen über das Originalformat und den Inhalt von S. [d] (Verlagsanzeige?) zu.]" ], "writingMaterialStrings": [], "writingInstruments": { From 1651f8370b0f5affb3ff7198fa7acf9a70064153 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:59:51 +0000 Subject: [PATCH 060/213] build(deps): bump actions/setup-node from 4.0.3 to 4.0.4 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 4.0.4. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/1e60f620b9541d16bece96c5465dc8ee9832be0b...0a44ba7841725637a19e28fa30b79a866c81b0a6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 039ea1890b..a08e2b07ba 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -57,7 +57,7 @@ jobs: echo "SHA: ${{ steps.get-sha.outputs.SHA }}" - name: Set up node ${{ matrix.node-version}} - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: node-version: ${{ matrix.node-version }} @@ -65,7 +65,7 @@ jobs: run: corepack enable - name: Get yarn cache ${{ matrix.node-version}} - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: cache: 'yarn' @@ -215,7 +215,7 @@ jobs: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Set up node ${{ matrix.node-version}} - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: node-version: ${{ matrix.node-version }} cache: 'yarn' From 93f13d0594ffe5574f268fa3cf5450f5061d19c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:00:05 +0000 Subject: [PATCH 061/213] build(deps): bump github/codeql-action from 3.26.7 to 3.26.8 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.7 to 3.26.8. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/8214744c546c1e5c8f03dde8fab3a7353211988d...294a9d92911152fe08befb9ec03e240add280cb3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 6f9627569a..06d46f504e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 + uses: github/codeql-action/init@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 + uses: github/codeql-action/autobuild@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 + uses: github/codeql-action/analyze@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index a71b2294a4..9327dfa9ef 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 + uses: github/codeql-action/upload-sarif@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 with: sarif_file: results.sarif From e0c28ea3bfdc7e6d509bfe42456c5dfd9fa645e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:53:00 +0000 Subject: [PATCH 062/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.3 to 50.2.4. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.3...v50.2.4) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 043f07dbba..e2a0de657a 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-jsdoc": "^50.2.3", + "eslint-plugin-jsdoc": "^50.2.4", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 6205875384..06931a034c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6084,7 +6084,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.30.0" - eslint-plugin-jsdoc: "npm:^50.2.3" + eslint-plugin-jsdoc: "npm:^50.2.4" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -8784,9 +8784,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.2.3": - version: 50.2.3 - resolution: "eslint-plugin-jsdoc@npm:50.2.3" +"eslint-plugin-jsdoc@npm:^50.2.4": + version: 50.2.4 + resolution: "eslint-plugin-jsdoc@npm:50.2.4" dependencies: "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" @@ -8801,7 +8801,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/244bfc815a082fac2d22867b6efb5ed25dd2a76e08ae1a6b83a522360a44138eea03d23450db947d969d015c17953a0925bad3926ce51856150a20e23fe6a954 + checksum: 10c0/9635726563213781dd18ee07459cc85ca4aca0f3b45bf02504cd880cb78757ef627578a0f9e5d412c401abcd7f6bab6d78f79198572b982ad2a71a74e03a416f languageName: node linkType: hard From b883d76739f865e3b23107a26fee9dde688054df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:42:30 +0000 Subject: [PATCH 063/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.4...18.2.5) Updates `@angular/cli` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.4...18.2.5) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 325 +++++++++++++++++++++++++++------------------------ 2 files changed, 177 insertions(+), 152 deletions(-) diff --git a/package.json b/package.json index e2a0de657a..6314e42aa4 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.4", + "@angular-devkit/build-angular": "^18.2.5", "@angular-eslint/builder": "^18.3.1", "@angular-eslint/eslint-plugin": "^18.3.1", "@angular-eslint/eslint-plugin-template": "^18.3.1", "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", - "@angular/cli": "^18.2.4", + "@angular/cli": "^18.2.5", "@angular/compiler-cli": "^18.2.4", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 06931a034c..9ba8e77572 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.4": - version: 0.1802.4 - resolution: "@angular-devkit/architect@npm:0.1802.4" +"@angular-devkit/architect@npm:0.1802.5": + version: 0.1802.5 + resolution: "@angular-devkit/architect@npm:0.1802.5" dependencies: - "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/core": "npm:18.2.5" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/cf60d7dfe380e932d540440b61ea7e97bd70f77acfc8c13093cf9c69d1011ae76ba48b28da1f1cb8ef7f3021c693e11c0b3514b6f6a7af983bf3ac113870a90e + checksum: 10c0/98c3e877e6bc140e263fff7c9224c6c348a401a0e9b1fe32d9e5f562162a608b605fd104fac441899ed3e6c0ed497a97b777cb07ce82ba48a45bbe8b19c09a07 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular-devkit/build-angular@npm:18.2.4" +"@angular-devkit/build-angular@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular-devkit/build-angular@npm:18.2.5" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.4" - "@angular-devkit/build-webpack": "npm:0.1802.4" - "@angular-devkit/core": "npm:18.2.4" - "@angular/build": "npm:18.2.4" + "@angular-devkit/architect": "npm:0.1802.5" + "@angular-devkit/build-webpack": "npm:0.1802.5" + "@angular-devkit/core": "npm:18.2.5" + "@angular/build": "npm:18.2.5" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.4" + "@ngtools/webpack": "npm:18.2.5" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -107,7 +107,7 @@ __metadata: terser: "npm:5.31.6" tree-kill: "npm:1.2.2" tslib: "npm:2.6.3" - vite: "npm:5.4.0" + vite: "npm:5.4.6" watchpack: "npm:2.4.1" webpack: "npm:5.94.0" webpack-dev-middleware: "npm:7.4.2" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/855292cbcd02e7793d270373356c4ff35775ab7981bb6bbc044bb822906a8e91fbad568a9afff5b80e5720f8dd47e1a95618e7141ade63c3c1ce684dffd961c5 + checksum: 10c0/1eaff28680c825e8aa85354754e2ec6094be858a8626e9d4f7b561ef1123b8397e7eefb1c6bedc8de111ddcd63608d421477ab9a766d2fc2a50804360a592eb2 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.4": - version: 0.1802.4 - resolution: "@angular-devkit/build-webpack@npm:0.1802.4" +"@angular-devkit/build-webpack@npm:0.1802.5": + version: 0.1802.5 + resolution: "@angular-devkit/build-webpack@npm:0.1802.5" dependencies: - "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/architect": "npm:0.1802.5" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/b105403e6ae52376b32c0026a0030ed820be1ee83540a1fad245f7762c7674c83447bb16d8b13b017701ea912aede7e20115aecbdae4e72118849de8d5abc2ac + checksum: 10c0/388c5b8e1337d4009339ee16a2b87fa2684dff1fb22e20a6f4f4a20890d9ea5445fdfdad334d3bfb1eaff2c11e54e0a309bc3c3a2b94e4601acfaabc2fcac9e5 languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.4": - version: 18.2.4 - resolution: "@angular-devkit/core@npm:18.2.4" +"@angular-devkit/core@npm:18.2.5": + version: 18.2.5 + resolution: "@angular-devkit/core@npm:18.2.5" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/e2a1ffe35dfc25709931ee21d954d305511e988e48e94439e0e63401d1e2f048dc3f96f9a4efe5a3fadb5777ce74b55f1ceb233ec3b53cd33b64d466f5c27d37 + checksum: 10c0/ec43823814bf65ca13ec7c9fe653a9e1c6e1eacc8b775cdd3128e998ac4f598f56ffee717cbee8db0f581e56da08197beddcfe7cb58034060a2c79f76bc22847 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.4": - version: 18.2.4 - resolution: "@angular-devkit/schematics@npm:18.2.4" +"@angular-devkit/schematics@npm:18.2.5": + version: 18.2.5 + resolution: "@angular-devkit/schematics@npm:18.2.5" dependencies: - "@angular-devkit/core": "npm:18.2.4" + "@angular-devkit/core": "npm:18.2.5" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/c0c4ef9490c2f002e9c150d2168c6bba147ef2318c1d6fcd39053cadab460691065ed6c2da51c615e7f78566816652b35c906667994c6f4c7ed24c589c372f94 + checksum: 10c0/06de4de8a9660e7330f155fd8bb7fa30aa2ff4c7cb185580191fe0df87704a9ac93400eaece23b2256bb364b743d7bd85907aa45fca25208ed54a6ce320fb009 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.4": - version: 18.2.4 - resolution: "@angular/build@npm:18.2.4" +"@angular/build@npm:18.2.5": + version: 18.2.5 + resolution: "@angular/build@npm:18.2.5" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.4" + "@angular-devkit/architect": "npm:0.1802.5" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -412,7 +412,7 @@ __metadata: rollup: "npm:4.20.0" sass: "npm:1.77.6" semver: "npm:7.6.3" - vite: "npm:5.4.0" + vite: "npm:5.4.6" watchpack: "npm:2.4.1" peerDependencies: "@angular/compiler-cli": ^18.0.0 @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/204927d738257a91620908fe70086b9c3e47184ebeceb20647c282debc22b0ad502561e04f6ca9a03a8fd802d03e570c6c91a51c358bee5c7c1013dce7172329 + checksum: 10c0/5899d2b6e6532d2cd2c2a39220c20c48cf6c466f9e8542f36c2dfc8ca56e00a90c513d3b80acd8c76ff3d29e1d885d617f9abc7a7d225ff068eba984ffb5f113 languageName: node linkType: hard -"@angular/cli@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/cli@npm:18.2.4" +"@angular/cli@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/cli@npm:18.2.5" dependencies: - "@angular-devkit/architect": "npm:0.1802.4" - "@angular-devkit/core": "npm:18.2.4" - "@angular-devkit/schematics": "npm:18.2.4" + "@angular-devkit/architect": "npm:0.1802.5" + "@angular-devkit/core": "npm:18.2.5" + "@angular-devkit/schematics": "npm:18.2.5" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.4" + "@schematics/angular": "npm:18.2.5" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/7da10419ec3c09ddedd18e2a2621bc493b4849309b7b66d08cb2b76d8354aae2ba1afc8a4d5c843d9cc99b04cb5a6d4e386e4235647e3d35bdba3f06d124847e + checksum: 10c0/474291f59bb267cc108c7167fc0988a98ae71f0bb6b77cc6e5c69d0f943aa9bc1fe9c4a729be25d4cdd86fdeb6b50dfc51b585c591a9be9021362a9862624c55 languageName: node linkType: hard @@ -3934,9 +3934,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.4": - version: 18.2.4 - resolution: "@ngtools/webpack@npm:18.2.4" +"@ngtools/webpack@npm:18.2.5": + version: 18.2.5 + resolution: "@ngtools/webpack@npm:18.2.5" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3946,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/06868c04557112cae4cb4158fe6aeda639d9e06033b79cd2e0ec88f94a1ee89df829fd1e9c590ca4af33c09a26a1561b7d864c3f7d5ff29b89938207748d082b + checksum: 10c0/d16bf5a093ee3c59ed7547684752d86eb14567819ac34c8de1d28e426d73e20a9c851110ee6009f8d8f922477497137038155cb731fef48f421170a472d04d95 languageName: node linkType: hard @@ -4127,13 +4127,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@rollup/rollup-android-arm-eabi@npm:4.20.0": version: 4.20.0 resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" @@ -4141,10 +4134,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm64@npm:4.18.0" - conditions: os=android & cpu=arm64 +"@rollup/rollup-android-arm-eabi@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.0" + conditions: os=android & cpu=arm languageName: node linkType: hard @@ -4155,10 +4148,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" - conditions: os=darwin & cpu=arm64 +"@rollup/rollup-android-arm64@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-android-arm64@npm:4.22.0" + conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -4169,10 +4162,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" - conditions: os=darwin & cpu=x64 +"@rollup/rollup-darwin-arm64@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.0" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -4183,10 +4176,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" - conditions: os=linux & cpu=arm & libc=glibc +"@rollup/rollup-darwin-x64@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.0" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -4197,10 +4190,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" - conditions: os=linux & cpu=arm & libc=musl +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.0" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard @@ -4211,10 +4204,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" - conditions: os=linux & cpu=arm64 & libc=glibc +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.0" + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard @@ -4225,10 +4218,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" - conditions: os=linux & cpu=arm64 & libc=musl +"@rollup/rollup-linux-arm64-gnu@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.0" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -4239,10 +4232,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" - conditions: os=linux & cpu=ppc64 & libc=glibc +"@rollup/rollup-linux-arm64-musl@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.0" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -4253,10 +4246,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" - conditions: os=linux & cpu=riscv64 & libc=glibc +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.0" + conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -4267,10 +4260,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" - conditions: os=linux & cpu=s390x & libc=glibc +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.0" + conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard @@ -4281,10 +4274,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" - conditions: os=linux & cpu=x64 & libc=glibc +"@rollup/rollup-linux-s390x-gnu@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.0" + conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -4295,10 +4288,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" - conditions: os=linux & cpu=x64 & libc=musl +"@rollup/rollup-linux-x64-gnu@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.0" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -4309,10 +4302,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" - conditions: os=win32 & cpu=arm64 +"@rollup/rollup-linux-x64-musl@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.0" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -4323,10 +4316,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" - conditions: os=win32 & cpu=ia32 +"@rollup/rollup-win32-arm64-msvc@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -4337,10 +4330,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" - conditions: os=win32 & cpu=x64 +"@rollup/rollup-win32-ia32-msvc@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.0" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -4351,6 +4344,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.22.0": + version: 4.22.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -4358,19 +4358,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.4": - version: 18.2.4 - resolution: "@schematics/angular@npm:18.2.4" +"@schematics/angular@npm:18.2.5": + version: 18.2.5 + resolution: "@schematics/angular@npm:18.2.5" dependencies: - "@angular-devkit/core": "npm:18.2.4" - "@angular-devkit/schematics": "npm:18.2.4" + "@angular-devkit/core": "npm:18.2.5" + "@angular-devkit/schematics": "npm:18.2.5" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/22579e170d9d07c1384d8af1385db751995c9172f127001d4e665a32199141eed7240f564e4886132bb7dd751d5c5a028ab801b3a764830364839512e19a3f42 + checksum: 10c0/d5da79b792174b9dcf3d07bb14192022df45e64341dada5752860c9700d34a49a20999ab23e6daa102588e9f1114b54cef12807e3434f69ed5fc1cc5a8d1cfb9 languageName: node linkType: hard @@ -6037,14 +6037,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.4" + "@angular-devkit/build-angular": "npm:^18.2.5" "@angular-eslint/builder": "npm:^18.3.1" "@angular-eslint/eslint-plugin": "npm:^18.3.1" "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.4" - "@angular/cli": "npm:^18.2.4" + "@angular/cli": "npm:^18.2.5" "@angular/common": "npm:^18.2.4" "@angular/compiler": "npm:^18.2.4" "@angular/compiler-cli": "npm:^18.2.4" @@ -13637,6 +13637,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.0": + version: 1.1.0 + resolution: "picocolors@npm:1.1.0" + checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 + languageName: node + linkType: hard + "picomatch@npm:4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" @@ -13829,7 +13836,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.41, postcss@npm:^8.4.40": +"postcss@npm:8.4.41": version: 8.4.41 resolution: "postcss@npm:8.4.41" dependencies: @@ -13851,6 +13858,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.43": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.0" + source-map-js: "npm:^1.2.1" + checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 + languageName: node + linkType: hard + "prebuild-install@npm:^7.1.1": version: 7.1.2 resolution: "prebuild-install@npm:7.1.2" @@ -14549,26 +14567,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.13.0": - version: 4.18.0 - resolution: "rollup@npm:4.18.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.18.0" - "@rollup/rollup-android-arm64": "npm:4.18.0" - "@rollup/rollup-darwin-arm64": "npm:4.18.0" - "@rollup/rollup-darwin-x64": "npm:4.18.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.18.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.18.0" - "@rollup/rollup-linux-x64-musl": "npm:4.18.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.18.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.18.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.18.0" +"rollup@npm:^4.20.0": + version: 4.22.0 + resolution: "rollup@npm:4.22.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.22.0" + "@rollup/rollup-android-arm64": "npm:4.22.0" + "@rollup/rollup-darwin-arm64": "npm:4.22.0" + "@rollup/rollup-darwin-x64": "npm:4.22.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.22.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.22.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.22.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.22.0" + "@rollup/rollup-linux-x64-musl": "npm:4.22.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.22.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.22.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.22.0" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -14608,7 +14626,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/7d0239f029c48d977e0d0b942433bed9ca187d2328b962fc815fc775d0fdf1966ffcd701fef265477e999a1fb01bddcc984fc675d1b9d9864bf8e1f1f487e23e + checksum: 10c0/8dd70e7f8d1f8f1a40328634ced7438daca5a7da113d60881bc743a8a601f23d6922488b33754f47c8acea29fda1b3085040ff261f9ee6820cfb4370b4a89528 languageName: node linkType: hard @@ -15245,6 +15263,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + "source-map-loader@npm:5.0.0": version: 5.0.0 resolution: "source-map-loader@npm:5.0.0" @@ -16579,14 +16604,14 @@ __metadata: languageName: node linkType: hard -"vite@npm:5.4.0": - version: 5.4.0 - resolution: "vite@npm:5.4.0" +"vite@npm:5.4.6": + version: 5.4.6 + resolution: "vite@npm:5.4.6" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.40" - rollup: "npm:^4.13.0" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" @@ -16618,7 +16643,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/122de7795e1c3c08cd0acc7d77296f908398266b424492be7310400107f37a3cf4c9506f2b4b16619e57299ca2859b8ca187aac5e25f8e66d84f9204a1d72d18 + checksum: 10c0/5f87be3a10e970eaf9ac52dfab39cf9fff583036685252fb64570b6d7bfa749f6d221fb78058f5ef4b5664c180d45a8e7a7ff68d7f3770e69e24c7c68b958bde languageName: node linkType: hard From 75ce2493dedbbd78ad3a30033a82d43d2eae18e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 10:23:10 +0000 Subject: [PATCH 064/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.4` | `18.2.5` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.4` | `18.2.5` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.4` | `18.2.5` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.4` | `18.2.5` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.4` | `18.2.5` | | [@angular/localize](https://github.com/angular/angular) | `18.2.4` | `18.2.5` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.4` | `18.2.5` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.4` | `18.2.5` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.4` | `18.2.5` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.4` | `18.2.5` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.4` | `18.2.5` | Updates `@angular/animations` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/animations) Updates `@angular/common` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/common) Updates `@angular/compiler` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/compiler) Updates `@angular/core` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/core) Updates `@angular/forms` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/forms) Updates `@angular/localize` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.4...18.2.5) Updates `@angular/platform-browser` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/platform-server) Updates `@angular/router` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/router) Updates `@angular/compiler-cli` from 18.2.4 to 18.2.5 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.5/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 6314e42aa4..8e8c7c46a3 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.4", - "@angular/common": "^18.2.4", - "@angular/compiler": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/forms": "^18.2.4", - "@angular/localize": "^18.2.4", - "@angular/platform-browser": "^18.2.4", - "@angular/platform-browser-dynamic": "^18.2.4", - "@angular/platform-server": "^18.2.4", - "@angular/router": "^18.2.4", + "@angular/animations": "^18.2.5", + "@angular/common": "^18.2.5", + "@angular/compiler": "^18.2.5", + "@angular/core": "^18.2.5", + "@angular/forms": "^18.2.5", + "@angular/localize": "^18.2.5", + "@angular/platform-browser": "^18.2.5", + "@angular/platform-browser-dynamic": "^18.2.5", + "@angular/platform-server": "^18.2.5", + "@angular/router": "^18.2.5", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", "@angular/cli": "^18.2.5", - "@angular/compiler-cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.5", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 9ba8e77572..ba820a1367 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/animations@npm:18.2.4" +"@angular/animations@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/animations@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.4 - checksum: 10c0/85b161d32b5009fb9bdc5b9311ad8d274dc44f7aab9e4b1dfb449724b079b9652916223ad1518b1b027d1b1d22b079e886fd9bc4bf6d3c68b9cb1ffd3bbbd59f + "@angular/core": 18.2.5 + checksum: 10c0/dac5c08755ae4ab8cae1aea7c9e8d7eef730a337283057ee663d77a66e635918c2fb9e1e398885c5ce8d4114231fe589334073a1fd27de62b8767a5b73e5eb56 languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/common@npm:18.2.4" +"@angular/common@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/common@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.4 + "@angular/core": 18.2.5 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/8e167a48e7ac85277c3f52e797a2dfe6eb804b862ccd1b3d8c0e1b9d3c558df699d6e92dd7ca6d75de63b8b89292d3a9e74baba8a8c246ddb4ca0c4b9a7230ef + checksum: 10c0/80156f93bb4109e39d39b3b768109b60f10b226d32a811da6989feacb4b879a9d17242346023442f70cbbc3762e15193fc667d75cdc474c13f2e132d35096d2e languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/compiler-cli@npm:18.2.4" +"@angular/compiler-cli@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/compiler-cli@npm:18.2.5" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.4 + "@angular/compiler": 18.2.5 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/5535e188096e789960cfedcab68162ea088c62fc7deb0aac4223ddd8a976e4935cec3b0fc999a4d7c0daaaab9811f9de92735384f6f519c32481231bb59a9964 + checksum: 10c0/04625900fc9882d6318ed86524d910961a44b68183499fbd43714fa5ffde08dc3c7b4f2cc24ec960302879224e5882239bac7521b1544f1801875ad801a661c6 languageName: node linkType: hard -"@angular/compiler@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/compiler@npm:18.2.4" +"@angular/compiler@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/compiler@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.4 + "@angular/core": 18.2.5 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/fc7d0162652572afebcd7a19ae2a68dd1eeea926b1b4e34db9ff8788ce58ad4b89ca2a99335d8ca3bb75db2a60273e09437bafd325a556a2b63d73a5894b19b4 + checksum: 10c0/750cd0ae9aba3de206040d00a2150a15ac76b6639b5c56565674d9896a957b1ea8a369796ad01a339ce2226333ed3473d1493ac0a93c2d5aba10427e35352902 languageName: node linkType: hard -"@angular/core@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/core@npm:18.2.4" +"@angular/core@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/core@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/994c93006297964670050e108b32a73329e5ad734247a0f5cf02abe8c52c14ea1fa819955aecb634ec7228d5aea8cc5488f21d8e55f4eff61db697b3f88209aa + checksum: 10c0/158ad8181af43d5b54f4a12ff539e2fd718449648a412ce2b437270f4441d2f2ec5a7235b6ad8df09bfd633ebcfeb61c5081105dd37b505405b335f15ef83c3a languageName: node linkType: hard -"@angular/forms@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/forms@npm:18.2.4" +"@angular/forms@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/forms@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.4 - "@angular/core": 18.2.4 - "@angular/platform-browser": 18.2.4 + "@angular/common": 18.2.5 + "@angular/core": 18.2.5 + "@angular/platform-browser": 18.2.5 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/3392feeebba64068cf692fdee1dcf8a1d6c91229b85440a75627c4ec2b519af7435310376568fa10fb94c2796ee40497ea0b5e7847d9599d286bcd35d7f68874 + checksum: 10c0/9e26893f685edab77754addcaa852abe76d7f1d6187fa99a9378f6ce09f3062290c6db606b27b848d556e77d53c007dc8029662f9a11cd4c924a4792a3856ced languageName: node linkType: hard -"@angular/localize@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/localize@npm:18.2.4" +"@angular/localize@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/localize@npm:18.2.5" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.4 - "@angular/compiler-cli": 18.2.4 + "@angular/compiler": 18.2.5 + "@angular/compiler-cli": 18.2.5 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/858b0a4f08e4e00ecd94d1cd8112d455ca6581830d3f01cc08635a4546f28c839930d5b5caa442938769480f7020b23a49d4100aeeb0b0780a4d2b607fa8f3db + checksum: 10c0/c433eae0a9bb9158abe3e7ce608ea67bd7691a98efce995a55b7211665fb393c67624bf92131dce47e101e96a4ed2c93b3bc83f18f25d709c891ad6d36b44093 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/platform-browser-dynamic@npm:18.2.4" +"@angular/platform-browser-dynamic@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/platform-browser-dynamic@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.4 - "@angular/compiler": 18.2.4 - "@angular/core": 18.2.4 - "@angular/platform-browser": 18.2.4 - checksum: 10c0/efbf21ea037746071f17acec38cabec7df5443c094e7a3540fbe150154394b32934812415b8860755b6685fdff1b757386e3616da464b2ac8b79e41d58ded647 + "@angular/common": 18.2.5 + "@angular/compiler": 18.2.5 + "@angular/core": 18.2.5 + "@angular/platform-browser": 18.2.5 + checksum: 10c0/3acf09ac6b22ad3a8d80deac78c8a0693ac5d3644251f262326a7cb2b30e5543feebb26166007861cf901752f304e16be6f82f07e34a30153684713905019f6b languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/platform-browser@npm:18.2.4" +"@angular/platform-browser@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/platform-browser@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.4 - "@angular/common": 18.2.4 - "@angular/core": 18.2.4 + "@angular/animations": 18.2.5 + "@angular/common": 18.2.5 + "@angular/core": 18.2.5 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/acbce33423cdcd181984b92f896db7924de86962c69612be1660cc598dcbf1940481cb8c71f6dcedc7b8122b6a0f429a55ce0558399a662418f3a413e40af6fb + checksum: 10c0/75ad52c4d59bb5031490cf4f8bf1d3fa00b40f6cf1426046847c7a383b2f9c983767b6efd0d3293a2d8f125043c860eb3444bafe56db75aeb85be5a7065ecd73 languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/platform-server@npm:18.2.4" +"@angular/platform-server@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/platform-server@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.4 - "@angular/common": 18.2.4 - "@angular/compiler": 18.2.4 - "@angular/core": 18.2.4 - "@angular/platform-browser": 18.2.4 - checksum: 10c0/b5b38459e801bf5ea3e4b030b2875fd8b3c42b75c72bfafc10eff3e9500a1a0e9dadf7399c8739db73790b668c733ed0ad1d504ebc32c52ce4c48d1b390fbe6c + "@angular/animations": 18.2.5 + "@angular/common": 18.2.5 + "@angular/compiler": 18.2.5 + "@angular/core": 18.2.5 + "@angular/platform-browser": 18.2.5 + checksum: 10c0/b2034dca7c6ba81ee6f4f8c6c930da205b4486690472b1b3c6a82762ebee8c3540670d8515d967e90feb34d1e85bb7156c40ea8ddfa684590867b3279396c7db languageName: node linkType: hard -"@angular/router@npm:^18.2.4": - version: 18.2.4 - resolution: "@angular/router@npm:18.2.4" +"@angular/router@npm:^18.2.5": + version: 18.2.5 + resolution: "@angular/router@npm:18.2.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.4 - "@angular/core": 18.2.4 - "@angular/platform-browser": 18.2.4 + "@angular/common": 18.2.5 + "@angular/core": 18.2.5 + "@angular/platform-browser": 18.2.5 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/6bf286fa53684ef49b28b4e6c33387da894eedc6281d012d68905240a7d84770481da43f3df70567616b5e74db3041d19521d2cf64f20af4283d67f31b1abecb + checksum: 10c0/dd4a8447d7ac49c85b28b0b96a19b2d93bf1b3598dfc6a19771660ed2a1343ec7b02aaccf08aca83390c18e313723a0618ca83576ac056d659258a6cdeca01a4 languageName: node linkType: hard @@ -6043,18 +6043,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" - "@angular/animations": "npm:^18.2.4" + "@angular/animations": "npm:^18.2.5" "@angular/cli": "npm:^18.2.5" - "@angular/common": "npm:^18.2.4" - "@angular/compiler": "npm:^18.2.4" - "@angular/compiler-cli": "npm:^18.2.4" - "@angular/core": "npm:^18.2.4" - "@angular/forms": "npm:^18.2.4" - "@angular/localize": "npm:^18.2.4" - "@angular/platform-browser": "npm:^18.2.4" - "@angular/platform-browser-dynamic": "npm:^18.2.4" - "@angular/platform-server": "npm:^18.2.4" - "@angular/router": "npm:^18.2.4" + "@angular/common": "npm:^18.2.5" + "@angular/compiler": "npm:^18.2.5" + "@angular/compiler-cli": "npm:^18.2.5" + "@angular/core": "npm:^18.2.5" + "@angular/forms": "npm:^18.2.5" + "@angular/localize": "npm:^18.2.5" + "@angular/platform-browser": "npm:^18.2.5" + "@angular/platform-browser-dynamic": "npm:^18.2.5" + "@angular/platform-server": "npm:^18.2.5" + "@angular/router": "npm:^18.2.5" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" From 91442e21d6cfcf6a7e498e44d25f6a1869002380 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 20 Sep 2024 16:29:49 +0200 Subject: [PATCH 065/213] feat(edition): add check for intro view --- .../edition-intro/edition-intro.component.ts | 18 +++- .../edition-view/edition-view.component.html | 90 ++++++++-------- .../edition-view.component.spec.ts | 47 +++++++- .../edition-view/edition-view.component.ts | 9 ++ .../services/edition.service.spec.ts | 102 +++++++++++++++++- .../edition-view/services/edition.service.ts | 45 ++++++++ 6 files changed, 262 insertions(+), 49 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index 477e903a2b..3e76d5894b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { NavigationExtras, Router } from '@angular/router'; @@ -23,7 +23,7 @@ import { EditionDataService, EditionService } from '@awg-views/edition-view/serv styleUrls: ['./edition-intro.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class EditionIntroComponent implements OnInit { +export class EditionIntroComponent implements OnDestroy, OnInit { /** * ViewChild variable: modal. * @@ -98,6 +98,18 @@ export class EditionIntroComponent implements OnInit { this.getEditionIntroData(); } + /** + * Angular life cycle hook: ngOnDestroy. + * + * It calls the containing methods + * when destroying the component. + * + * Destroys subscriptions. + */ + ngOnDestroy() { + this.editionService.clearIsIntroView(); + } + /** * Public method: getEditionIntroData. * @@ -108,6 +120,8 @@ export class EditionIntroComponent implements OnInit { * @returns {void} Gets the current edition complex and the corresponding intro data. */ getEditionIntroData(): void { + this.editionService.updateIsIntroView(true); + this.editionIntroData$ = this.editionService // Get current editionComplex from editionService .getSelectedEditionComplex() diff --git a/src/app/views/edition-view/edition-view.component.html b/src/app/views/edition-view/edition-view.component.html index a587134840..26744ac088 100644 --- a/src/app/views/edition-view/edition-view.component.html +++ b/src/app/views/edition-view/edition-view.component.html @@ -33,50 +33,6 @@

    } - @if ( - (selectedEditionComplex$ | async) === null && - (isRowTableView$ | async) === null && - (isPrefaceView$ | async) === null - ) { -
    -
    - - {{ editionRouteConstants.EDITION?.short }} - - - @if (selectedEditionSeries$ | async; as selectedSeries) { - - {{ selectedSeries?.series.full }} - - - - - - / - @if (selectedEditionSection$ | async; as selectedSection) { - - - - / - - {{ selectedSection?.section.full }} - - } @else { - - / - } - } @else { - - / - } -
    - - -
    - } - @if (selectedEditionComplex$ | async; as selectedEditionComplex) {
    @@ -126,6 +82,52 @@
    } + @if ( + (selectedEditionComplex$ | async) === null && + (isRowTableView$ | async) === null && + (isPrefaceView$ | async) === null + ) { +
    +
    + + {{ editionRouteConstants.EDITION?.short }} + + + @if (selectedEditionSeries$ | async; as selectedSeries) { + + {{ selectedSeries?.series.full }} + + + + + + / + @if (selectedEditionSection$ | async; as selectedSection) { + + + + / + + {{ selectedSection?.section.full }} + + } @else { + + / + } + } @else { + + / + } +
    + + +
    + } +
diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index f3695898da..5fa375c589 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -49,6 +49,7 @@ describe('EditionViewComponent (DONE)', () => { let editionServiceGetSelectedEditionComplexSpy: Spy; let editionServiceGetSelectedEditionSeriesSpy: Spy; let editionServiceGetSelectedEditionSectionSpy: Spy; + let editionServiceGetIsIntroViewSpy: Spy; let editionServiceGetIsPrefaceViewSpy: Spy; let editionServiceGetIsRowTableViewSpy: Spy; @@ -56,6 +57,7 @@ describe('EditionViewComponent (DONE)', () => { let expectedSelectedEditionComplex: EditionComplex; let expectedSelectedEditionSeries: EditionOutlineSeries; let expectedSelectedEditionSection: EditionOutlineSection; + let expectedIsIntroView: boolean; let expectedIsPrefaceView: boolean; let expectedIsRowTableView: boolean; @@ -77,6 +79,7 @@ describe('EditionViewComponent (DONE)', () => { // Mock edition service mockEditionService = { + getIsIntroView: (): Observable => observableOf(expectedIsIntroView), getIsPrefaceView: (): Observable => observableOf(expectedIsPrefaceView), getIsRowTableView: (): Observable => observableOf(expectedIsRowTableView), getSelectedEditionComplex: (): Observable => @@ -115,6 +118,7 @@ describe('EditionViewComponent (DONE)', () => { mockEditionService = TestBed.inject(EditionService); // Test data + expectedIsIntroView = false; expectedIsPrefaceView = false; expectedIsRowTableView = true; expectedSelectedEditionComplexId = 'OP12'; @@ -135,6 +139,7 @@ describe('EditionViewComponent (DONE)', () => { mockEditionService, 'getSelectedEditionComplex' ).and.callThrough(); + editionServiceGetIsIntroViewSpy = spyOn(mockEditionService, 'getIsIntroView').and.callThrough(); editionServiceGetIsPrefaceViewSpy = spyOn(mockEditionService, 'getIsPrefaceView').and.callThrough(); editionServiceGetIsRowTableViewSpy = spyOn(mockEditionService, 'getIsRowTableView').and.callThrough(); editionServiceGetSelectedEditionSeriesSpy = spyOn( @@ -165,6 +170,10 @@ describe('EditionViewComponent (DONE)', () => { expectToEqual(component.editionRouteConstants, expectedEditionRouteConstants); }); + it('... should not have `isIntroView$`', () => { + expect(component.isIntroView$).toBeUndefined(); + }); + it('... should not have `isPrefaceView$`', () => { expect(component.isPrefaceView$).toBeUndefined(); }); @@ -226,6 +235,10 @@ describe('EditionViewComponent (DONE)', () => { expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 0); }); + it('... should not have set isIntroView$', () => { + expect(component.isIntroView$).toBeUndefined(); + }); + it('... should not have set isPrefaceView$', () => { expect(component.isPrefaceView$).toBeUndefined(); }); @@ -491,7 +504,7 @@ describe('EditionViewComponent (DONE)', () => { getAndExpectDebugElementByDirective(divDes[0], EditionJumbotronStubComponent, 1, 1); }); - it('... should pass down `editionViewId` and `title` to JumbotronComponent (stubbed)', () => { + it('... should pass down `editionViewId` and `editionViewTitle` to JumbotronComponent (stubbed)', () => { // Get debug and native element of JumbotronComponent const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series', 1, 1); const jumbotronDes = getAndExpectDebugElementByDirective( @@ -508,6 +521,26 @@ describe('EditionViewComponent (DONE)', () => { expectToBe(jumbotronCmp.jumbotronTitle, expectedTitle); }); + it('... should pass down `Einleitung/Introduction` as title to JumbotronComponent (stubbed) if `isIntroView=true`', () => { + component.isIntroView$ = observableOf(true); + fixture.detectChanges(); + + // Get debug and native element of JumbotronComponent + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series', 1, 1); + const jumbotronDes = getAndExpectDebugElementByDirective( + divDes[0], + EditionJumbotronStubComponent, + 1, + 1 + ); + const jumbotronCmp = jumbotronDes[0].injector.get( + EditionJumbotronStubComponent + ) as EditionJumbotronStubComponent; + + expectToBe(jumbotronCmp.jumbotronId, expectedId); + expectToBe(jumbotronCmp.jumbotronTitle, 'Einleitung/Introduction'); + }); + describe('... breadcrumb header (h6)', () => { it('... should display edition base root (AWG) if no series and section is given', () => { component.selectedEditionSeries$ = observableOf(null); @@ -586,6 +619,18 @@ describe('EditionViewComponent (DONE)', () => { expectSpyCall(setupEditionViewSpy, 1); }); + it('... should get isIntroView$ (via EditionService)', waitForAsync(() => { + expectSpyCall(setupEditionViewSpy, 1); + expectSpyCall(editionServiceGetIsIntroViewSpy, 1); + + expect(component.isIntroView$).toBeDefined(); + component.isIntroView$.subscribe({ + next: (isView: boolean) => { + expectToBe(isView, expectedIsIntroView); + }, + }); + })); + it('... should get isPrefaceView$ (via EditionService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); expectSpyCall(editionServiceGetIsPrefaceViewSpy, 1); diff --git a/src/app/views/edition-view/edition-view.component.ts b/src/app/views/edition-view/edition-view.component.ts index 6169b22c6c..7590c0a5e3 100644 --- a/src/app/views/edition-view/edition-view.component.ts +++ b/src/app/views/edition-view/edition-view.component.ts @@ -34,6 +34,14 @@ export class EditionViewComponent implements OnInit { */ editionViewId = 'awg-edition-view'; + /** + * Public variable: isIntroView$. + * + * Observable that keeps the information + * about the flag for the intro view. + */ + isIntroView$: Observable; + /** * Public variable: isPrefaceView$. * @@ -119,6 +127,7 @@ export class EditionViewComponent implements OnInit { this.selectedEditionSeries$ = this.editionService.getSelectedEditionSeries().pipe(delay(0)); this.selectedEditionSection$ = this.editionService.getSelectedEditionSection().pipe(delay(0)); this.selectedEditionComplex$ = this.editionService.getSelectedEditionComplex().pipe(delay(0)); + this.isIntroView$ = this.editionService.getIsIntroView().pipe(delay(0)); this.isPrefaceView$ = this.editionService.getIsPrefaceView().pipe(delay(0)); this.isRowTableView$ = this.editionService.getIsRowTableView().pipe(delay(0)); } diff --git a/src/app/views/edition-view/services/edition.service.spec.ts b/src/app/views/edition-view/services/edition.service.spec.ts index b0b3ff37d3..8254dc6dd5 100644 --- a/src/app/views/edition-view/services/edition.service.spec.ts +++ b/src/app/views/edition-view/services/edition.service.spec.ts @@ -18,6 +18,7 @@ describe('EditionService (DONE)', () => { let expectedEditionSeries: EditionOutlineSeries; let expectedEditionSeriesRoute: string; let expectedEditionSection: EditionOutlineSection; + let expectedIsIntroView: boolean; let expectedIsPrefaceView: boolean; let expectedIsRowTableView: boolean; @@ -39,6 +40,7 @@ describe('EditionService (DONE)', () => { expectedEditionSeriesRoute = EDITION_ROUTE_CONSTANTS.EDITION.route + EDITION_ROUTE_CONSTANTS.SERIES.route; expectedEditionSeries = expectedEditionOutline[0]; expectedEditionSection = expectedEditionOutline[0].sections[0]; + expectedIsIntroView = true; expectedIsPrefaceView = true; expectedIsRowTableView = true; }); @@ -55,6 +57,14 @@ describe('EditionService (DONE)', () => { expectToBe((editionService as any)._bufferSize, 1); }); + it('... should have _isIntroViewSubject', () => { + expect((editionService as any)._isIntroViewSubject).toBeTruthy(); + }); + + it('... should have _isIntroViewStream$', () => { + expect((editionService as any)._isIntroViewStream$).toBeTruthy(); + }); + it('... should have _isPrefaceViewSubject', () => { expect((editionService as any)._isPrefaceViewSubject).toBeTruthy(); }); @@ -355,6 +365,94 @@ describe('EditionService (DONE)', () => { }); }); + describe('IntroView', () => { + describe('#getIsIntroView()', () => { + it('... should have a method `getIsIntroView`', () => { + expect(editionService.getIsIntroView).toBeDefined(); + }); + + it('... should return isIntroView', waitForAsync(() => { + editionService.getIsIntroView().subscribe({ + next: (isIntroView: boolean) => { + expectToBe(isIntroView, expectedIsIntroView); + }, + }); + + // Set isIntroView (with default value) + editionService.updateIsIntroView(expectedIsIntroView); + })); + + it('... should return updated isIntroView', waitForAsync(() => { + editionService.getIsIntroView().subscribe({ + next: (isIntroView: boolean) => { + expectToBe(isIntroView, expectedIsIntroView); + }, + }); + + // Set isIntroView (with default value) + editionService.updateIsIntroView(expectedIsIntroView); + + // Update isIntroView + expectedIsIntroView = false; + editionService.updateIsIntroView(expectedIsIntroView); + })); + }); + + describe('#updateIsIntroView()', () => { + it('... should have a method `updateIsIntroView`', () => { + expect(editionService.updateIsIntroView).toBeDefined(); + }); + + it('... should emit updated isIntroView', waitForAsync(() => { + editionService.getIsIntroView().subscribe({ + next: (isIntroView: boolean) => { + expectToBe(isIntroView, expectedIsIntroView); + }, + }); + + // Set isIntroView (with default value) + editionService.updateIsIntroView(expectedIsIntroView); + + // Update isIntroView + expectedIsIntroView = false; + editionService.updateIsIntroView(expectedIsIntroView); + })); + }); + + describe('#clearIsIntroView()', () => { + it('... should have a method `clearIsIntroView`', () => { + expect(editionService.clearIsIntroView).toBeDefined(); + }); + + it('... should update isIntroView with null value', waitForAsync(() => { + editionService.getIsIntroView().subscribe({ + next: (isIntroView: boolean) => { + expectToBe(isIntroView, expectedIsIntroView); + }, + }); + + // Clear isIntroView + expectedIsIntroView = null; + editionService.clearIsIntroView(); + })); + + it('... should overwrite existing values', waitForAsync(() => { + editionService.getIsIntroView().subscribe({ + next: (isIntroView: boolean) => { + expectToBe(isIntroView, expectedIsIntroView); + }, + }); + + // Update isIntroView + editionService.updateIsIntroView(expectedIsIntroView); + + // Clear isIntroView + expectedIsIntroView = null; + editionService.clearIsIntroView(); + })); + }); + }); + describe('PrefaceView', () => { describe('#getIsPrefaceView()', () => { it('... should have a method `getIsPrefaceView`', () => { @@ -363,8 +461,8 @@ describe('EditionService (DONE)', () => { it('... should return isPrefaceView', waitForAsync(() => { editionService.getIsPrefaceView().subscribe({ - next: (isRowTableView: boolean) => { - expectToBe(isRowTableView, expectedIsPrefaceView); + next: (isPrefaceView: boolean) => { + expectToBe(isPrefaceView, expectedIsPrefaceView); }, }); diff --git a/src/app/views/edition-view/services/edition.service.ts b/src/app/views/edition-view/services/edition.service.ts index 5870d11ec2..fb6e5951d4 100644 --- a/src/app/views/edition-view/services/edition.service.ts +++ b/src/app/views/edition-view/services/edition.service.ts @@ -22,6 +22,16 @@ export class EditionService { */ private _bufferSize = 1; + /** + * Private replay subject to flag intro view. + */ + private _isIntroViewSubject = new ReplaySubject(this._bufferSize); + + /** + * Private readonly isIntroView stream as observable (`ReplaySubject`). + */ + private readonly _isIntroViewStream$ = this._isIntroViewSubject.asObservable(); + /** * Private replay subject to flag preface view. */ @@ -175,6 +185,41 @@ export class EditionService { this._selectedEditionSectionSubject.next(null); } + /** + * Public method: getIsIntroView. + * + * It provides the latest isIntroView flag from the isIntroView stream. + * + * @returns {Observable} The isIntroView stream as observable. + */ + getIsIntroView(): Observable { + return this._isIntroViewStream$; + } + + /** + * Public method: updateIsIntroView. + * + * It updates the isIntroView stream with the given boolean value. + * + * @param {boolean} isView The given isIntroView flag. + * + * @returns {void} Sets the next isIntroView flag to the stream. + */ + updateIsIntroView(isView: boolean): void { + this._isIntroViewSubject.next(isView); + } + + /** + * Public method: clearIsIntroView. + * + * It clears the isIntroView stream. + * + * @returns {void} Clears the isIntroView stream. + */ + clearIsIntroView(): void { + this._isIntroViewSubject.next(null); + } + /** * Public method: getIsPrefaceView. * From b2a8572a4a0a5b182283e0a7a893d43276f4cdd3 Mon Sep 17 00:00:00 2001 From: masthom Date: Fri, 20 Sep 2024 16:36:00 +0200 Subject: [PATCH 066/213] improvements after review --- .../1/section/5/op12/source-description.json | 108 ++++++------------ 1 file changed, 36 insertions(+), 72 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 7151e34f8f..01a6d57251 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1602,253 +1602,217 @@ { "blockHeader": "", "blockComments": [ - { - "svgGroupId": "TODO", + { "measure": "3", "system": "Ges.", "position": "5/8", "comment": "Rasur über System." }, - { - "svgGroupId": "TODO", + { "measure": "5", "system": "Klav. o.", "position": "1. Note", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "5", "system": "Ges.", "position": "3–4/8", "comment": "e1 und fis1 überschreiben nicht zu identifizierende Tonhöhen." }, - { - "svgGroupId": "TODO", + { "measure": "7", "system": "Klav. o.", "position": "2/8", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "7", "system": "Klav. u.", "position": "3/8", "comment": "Staccatopunkt auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "8", "system": "Ges.", "position": "3–4/8", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "9", "system": "Ges.", "position": "1.–3. Note", "comment": "Crescendogabel gestrichen." }, - { - "svgGroupId": "TODO", + { "measure": "9", "system": "Klav.", "position": "4/8", "comment": "Ped. gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "10", "system": "Klav. u.", "position": "", "comment": "Rasuren unter dem System." }, - { - "svgGroupId": "TODO", + { "measure": "10", "system": "Klav.", "position": "2/4", "comment": "Pedalaufhebung gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "11
bis 12", "system": "", "position": "", "comment": "sehr langsam in T. 11 3/4 gestrichen und geändert zu rit. (T. 11), molto (T. 12) und Geltungsstrichelung mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "11", "system": "Klav. o.", "position": "1. Note", "comment": "({{ref.getGlyph('[b]')}}) zu es1/as1 gestrichen mit blauer Tinte.
zögernd gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "11", "system": "Klav. o.", "position": "1. Note", "comment": "Crescendogabel geändert zu Decrescendogabel mit Bleistift." }, - { - "svgGroupId": "TODO", + { "measure": "11", "system": "Klav. u.", "position": "1. Note", "comment": "({{ref.getGlyph('[a]')}}) zu F/e gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "13", "system": "", "position": "Taktanfang", "comment": "I. Zeitmaß geändert zu tempo mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "13", "system": "Ges.", "position": "1/8", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "13", "system": "Ges.", "position": "", "comment": "Rasur über dem System." }, - { - "svgGroupId": "TODO", + { "measure": "14", "system": "Ges.", "position": "1.–2. Note", "comment": "Crescendogabel gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "14", "system": "Ges.", "position": "1.–3. Note", "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" }, - { - "svgGroupId": "TODO", + { "measure": "14", "system": "Klav. u.", "position": "1/8", "comment": "Auf Rasur.
({{ref.getGlyph('[a]')}}) zu e/a gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "14
bis 15", "system": "Ges.", "position": "4. Note
2/8", "comment": "Crescendogabel ergänzt mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "15", "system": "Klav. o.", "position": "(2/4)", "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" }, - { - "svgGroupId": "TODO", + { "measure": "15", "system": "Klav. o.", "position": "2. Note", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "15", "system": "Klav. u.", "position": "4/8", "comment": "Auf Rasur." }, - { - "svgGroupId": "TODO", + { "measure": "16", "system": "Klav. o.", "position": "3/4", "comment": "Unterstimmenschicht: fis1 geändert zu ges1." }, - { - "svgGroupId": "TODO", + { "measure": "16", "system": "Klav. u.", "position": "3/4", "comment": "cis geändert zu des." }, - { - "svgGroupId": "TODO", + { "measure": "17", "system": "Klav. o.", "position": "1. Note", "comment": "Crescendogabel gestrichen mit Bleistift." }, - { - "svgGroupId": "TODO", + { "measure": "17", "system": "Klav. o.", "position": "2. Note", "comment": "Unterstimmenschicht: des1/ges1 überschreibt cis1/fis1; Pfeil zu Notennamen ges | des am rechten Seitenrand. " }, - { - "svgGroupId": "TODO", + { "measure": "20", "system": "Klav. o.", "position": "(2/4)", "comment": "Decrescendogabel gestrichen mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "21", "system": "Klav. o.", "position": "1. Note", "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}} mit blauer Tinte." }, - { - "svgGroupId": "TODO", + { "measure": "21
bis 22", "system": "Klav. o.", "position": "1. Note
2/4", "comment": "Legatobogen ergänzt mit Bleistift." }, - { - "svgGroupId": "TODO", + { "measure": "22", "system": "Klav. o.", "position": "1/4", "comment": "({{ref.getGlyph('[b]')}}) zu es1 und ({{ref.getGlyph('[a]')}}) zu c2 (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." }, - { - "svgGroupId": "TODO", + { "measure": "22", "system": "Klav. o.", "position": "1–2/4", "comment": "Decrescendogabel gestrichen mit Bleistift." }, - { - "svgGroupId": "TODO", + { "measure": "22", "system": "Klav. u.", "position": "", "comment": "({{ref.getGlyph('[a]')}}) zu H/g (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." }, - { - "svgGroupId": "TODO", + { "measure": "22", "system": "Klav. o.", "position": "2/4", "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit blauer Tinte." }, { - "svgGroupId": "TODO", "measure": "22
bis 23", "system": "Klav. o.", "position": "2/4", @@ -1878,7 +1842,7 @@ "id": "source_Cd_corr", "label": "Korrekturen in Cd", "description": [ - "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der verschiedenen Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu den beiden edierten Textfassung nicht praktikabel ist." ], "comments": [ ] } From 4dc7bd9e459e0a39702cb5f44e79d8c3a717d8c1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 20 Sep 2024 16:40:35 +0200 Subject: [PATCH 067/213] fix(edition): move section detail overview into separate comp --- ...ion-section-detail-overview.component.html | 28 ++ ...ion-section-detail-overview.component.scss | 0 ...-section-detail-overview.component.spec.ts | 380 ++++++++++++++++++ ...ition-section-detail-overview.component.ts | 71 ++++ .../edition-section-detail.component.html | 29 +- .../edition-section-detail.component.spec.ts | 261 +----------- .../edition-section-detail.component.ts | 30 +- .../edition-view-routing.module.ts | 8 + 8 files changed, 508 insertions(+), 299 deletions(-) create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html new file mode 100644 index 0000000000..28098e4ab2 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html @@ -0,0 +1,28 @@ +@if ( + selectedSection && + utils.isNotEmptyObject(selectedSection.complexTypes) && + (utils.isNotEmptyArray(selectedSection.complexTypes.opus) || + utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) +) { +
+ @if (utils.isNotEmptyArray(selectedSection.complexTypes.opus)) { +
+
nach Opusnummer:
+ +
+ } + @if (utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) { +
+
nach Moldenhauer-Nummer:
+ +
+ } +
+} @else { + +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts new file mode 100644 index 0000000000..314623e36f --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts @@ -0,0 +1,380 @@ +import { Component, DebugElement, Input } from '@angular/core'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { Observable, of as observableOf } from 'rxjs'; +import Spy = jasmine.Spy; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { + expectSpyCall, + expectToBe, + expectToContain, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; + +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; + +import { EditionSectionDetailOverviewComponent } from './edition-section-detail-overview.component'; + +@Component({ selector: 'awg-edition-complex-card', template: '' }) +class EditionComplexCardStubComponent { + @Input() + complexes: EditionOutlineComplexItem[]; +} + +describe('EditionSectionDetailOverviewComponent', () => { + let component: EditionSectionDetailOverviewComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let mockEditionService: Partial; + + let editionServiceGetSelectedEditionSeriesSpy: Spy; + let editionServiceGetSelectedEditionSectionSpy: Spy; + let setupSectionDetailOverviewSpy: Spy; + + let expectedSelectedSeries: EditionOutlineSeries; + let expectedSelectedSection: EditionOutlineSection; + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + }); + + beforeEach(async () => { + // Mock edition service + mockEditionService = { + getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), + getSelectedEditionSection: (): Observable => observableOf(expectedSelectedSection), + }; + + await TestBed.configureTestingModule({ + declarations: [EditionSectionDetailOverviewComponent, EditionComplexCardStubComponent], + providers: [{ provide: EditionService, useValue: mockEditionService }], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionSectionDetailOverviewComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // TestData + expectedSelectedSeries = EditionOutlineService.getEditionOutline()[0]; + expectedSelectedSection = expectedSelectedSeries.sections[4]; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + editionServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionService, + 'getSelectedEditionSeries' + ).and.callThrough(); + editionServiceGetSelectedEditionSectionSpy = spyOn( + mockEditionService, + 'getSelectedEditionSection' + ).and.callThrough(); + setupSectionDetailOverviewSpy = spyOn(component, 'setupSectionDetailOverview').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `selectedSeries`', () => { + expect(component.selectedSeries).toBeUndefined(); + }); + + it('... should not have `selectedSection`', () => { + expect(component.selectedSection).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain no outer div.awg-edition-section-detail yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + }); + + it('... should contain no div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + }); + }); + + describe('#setupSectionDetailOverview()', () => { + it('... should have a method `setupSectionDetailOverview`', () => { + expect(component.setupSectionDetailOverview).toBeDefined(); + }); + + it('... should not have been called', () => { + expectSpyCall(setupSectionDetailOverviewSpy, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Mock the parent component input + component.selectedSeries = expectedSelectedSeries; + component.selectedSection = expectedSelectedSection; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('should have `selectedSeries`', () => { + expect(component.selectedSeries).toBeDefined(); + expect(component.selectedSeries).toEqual(expectedSelectedSeries); + }); + + it('should have `selectedSection`', () => { + expect(component.selectedSection).toBeDefined(); + expect(component.selectedSection).toEqual(expectedSelectedSection); + }); + + describe('VIEW', () => { + it('... should contain one outer div.awg-edition-section-detail', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + }); + + it('... should contain one div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + }); + + it('... should contain one awg-edition-complex-card', () => { + getAndExpectDebugElementByCss(compDe, 'awg-edition-complex-card', 1, 1); + }); + }); + + describe('VIEW', () => { + describe('... with given complexes', () => { + describe('... should contain 1 outer div.awg-edition-section-detail, but no div.alert-info ...', () => { + it('... if selected section is given and not empty', waitForAsync(() => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + })); + + it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + })); + + it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + })); + }); + + describe('... opus complexes', () => { + it('... should contain 1 inner div.awg-edition-section-detail-opus if opus complexes are given', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 1, 1); + }); + + it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', () => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 0, 0); + }); + + it('... should display header (h5) in div.awg-edition-section-detail-opus', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); + const headerEl = headerDe[0].nativeElement; + + const expectedHeaderText = 'nach Opusnummer:'; + + expectToBe(headerEl.textContent, expectedHeaderText); + }); + + it('... should contain 1 edition complex card component (stubbed)', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + + getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); + }); + + it('... should pass down complexes to edition complex card component', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + const complexCardDes = getAndExpectDebugElementByDirective( + divDe[0], + EditionComplexCardStubComponent, + 1, + 1 + ); + const complexCardCmp = complexCardDes[0].injector.get( + EditionComplexCardStubComponent + ) as EditionComplexCardStubComponent; + + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.opus); + }); + }); + + describe('... mnr complexes', () => { + it('... should contain 1 inner div.awg-edition-section-detail-mnr if mnr complexes are given', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 1, 1); + }); + + it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', () => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 0, 0); + }); + + it('... should display header (h5) in div.awg-edition-section-detail-mnr', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); + const headerEl = headerDe[0].nativeElement; + + const expectedHeaderText = 'nach Moldenhauer-Nummer:'; + + expectToBe(headerEl.textContent, expectedHeaderText); + }); + + it('... should contain 1 edition complex card component (stubbed)', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + + getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); + }); + + it('... should pass down complexes to edition complex card component', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + const complexCardDes = getAndExpectDebugElementByDirective( + divDe[0], + EditionComplexCardStubComponent, + 1, + 1 + ); + const complexCardCmp = complexCardDes[0].injector.get( + EditionComplexCardStubComponent + ) as EditionComplexCardStubComponent; + + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.mnr); + }); + }); + }); + + describe('... with no complexes', () => { + describe('... should contain no outer div.awg-edition-section-detail, but 1 div.alert-info ...', () => { + it('... if selectedSection has no complexes...', waitForAsync(() => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + })); + + it('... if selectedSection has empty opus and mnr complexes', waitForAsync(() => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = { + ...component.selectedSection.complexTypes, + opus: undefined, + mnr: undefined, + }; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + })); + }); + + it('... should contain 1 p.text-muted in div.alert-info', () => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + expectToContain(pEl.classList, 'text-muted'); + }); + + it('... should display info message in p.text-muted', () => { + const shallowCopy = { ...component.selectedSection }; + shallowCopy.complexTypes = undefined; + component.selectedSection = shallowCopy; + fixture.detectChanges(); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; + const series = expectedSelectedSeries.series.short; + const section = expectedSelectedSection.section.short; + + const expectedNoComplexesMsg = `[Diese Inhalte erscheinen im Zusammenhang der vollständigen Edition von ${awg} ${series}/${section}.]`; + + expectToBe(pEl.textContent.trim(), expectedNoComplexesMsg.trim()); + }); + }); + }); + + describe('#setupSectionDetailOverview()', () => { + it('... should have been called', () => { + expectSpyCall(setupSectionDetailOverviewSpy, 1); + }); + + it('... should have called `editionService.getSelectedEditionSeries`', () => { + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + }); + + it('... should have set selectedSeries (via EditionService)', () => { + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + expectToEqual(component.selectedSeries, expectedSelectedSeries); + }); + + it('... should have called `editionService.getSelectedEditionSection`', () => { + expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + }); + + it('... should have set selectedSection (via EditionService)', () => { + expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + expectToEqual(component.selectedSection, expectedSelectedSection); + }); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts new file mode 100644 index 0000000000..1b054435b8 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts @@ -0,0 +1,71 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +import { UtilityService } from '@awg-core/services'; +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionService } from '@awg-views/edition-view/services'; + +/** + * The EditionSectionDetailOverview component. + * + * It contains the detail overview of a section + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-section-detail-overview', + templateUrl: './edition-section-detail-overview.component.html', + styleUrls: ['./edition-section-detail-overview.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionSectionDetailOverviewComponent implements OnInit { + /** + * Public variable: selectedSeries. + * + * It keeps the selected series of the edition. + */ + selectedSeries: EditionOutlineSeries; + + /** + * Public variable: selectedSection. + * + * It keeps the selected section of the edition. + */ + selectedSection: EditionOutlineSection; + + /** + * Constructor of the EditionSectionDetailComponent. + * + * It declares private instances of the EditionService, + * and a public instance of the UtilityService. + * + * @param {EditionService} editionService Instance of the EditionService. + * @param {UtilityService} utils Instance of the UtilityService. + */ + constructor( + private editionService: EditionService, + public utils: UtilityService + ) { + // Intentionally left empty until implemented + } + + /** + * Angular life cycle hook: ngOnInit. + * + * It calls the containing methods + * when initializing the component. + */ + ngOnInit() { + this.setupSectionDetailOverview(); + } + + /** + * Public method: setupSectionDetailOverview. + * + * It sets up the section detail ovewview. + * + * @returns {void} Sets up the section detail overview. + */ + setupSectionDetailOverview(): void { + this.editionService.getSelectedEditionSeries().subscribe(series => (this.selectedSeries = series)); + this.editionService.getSelectedEditionSection().subscribe(section => (this.selectedSection = section)); + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html index 28098e4ab2..67e7bd4cd6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.html @@ -1,28 +1 @@ -@if ( - selectedSection && - utils.isNotEmptyObject(selectedSection.complexTypes) && - (utils.isNotEmptyArray(selectedSection.complexTypes.opus) || - utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) -) { -
- @if (utils.isNotEmptyArray(selectedSection.complexTypes.opus)) { -
-
nach Opusnummer:
- -
- } - @if (utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) { -
-
nach Moldenhauer-Nummer:
- -
- } -
-} @else { - -} + diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts index a596d9d601..bde6d1bbd9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts @@ -1,32 +1,19 @@ -import { Component, DebugElement, Input } from '@angular/core'; -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ActivatedRoute } from '@angular/router'; import { Observable, of as observableOf } from 'rxjs'; import Spy = jasmine.Spy; -import { - expectSpyCall, - expectToBe, - expectToContain, - expectToEqual, - getAndExpectDebugElementByCss, - getAndExpectDebugElementByDirective, -} from '@testing/expect-helper'; -import { ActivatedRouteStub } from '@testing/router-stubs'; +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectSpyCall, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; +import { ActivatedRouteStub, RouterOutletStubComponent } from '@testing/router-stubs'; -import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionSectionDetailComponent } from './edition-section-detail.component'; -@Component({ selector: 'awg-edition-complex-card', template: '' }) -class EditionComplexCardStubComponent { - @Input() - complexes: EditionOutlineComplexItem[]; -} - describe('EditionSectionDetailComponent (DONE)', () => { let component: EditionSectionDetailComponent; let fixture: ComponentFixture; @@ -61,7 +48,7 @@ describe('EditionSectionDetailComponent (DONE)', () => { mockActivatedRoute = new ActivatedRouteStub(); await TestBed.configureTestingModule({ - declarations: [EditionSectionDetailComponent, EditionComplexCardStubComponent], + declarations: [EditionSectionDetailComponent, RouterOutletStubComponent], providers: [ { provide: ActivatedRoute, useValue: mockActivatedRoute }, { provide: EditionService, useValue: mockEditionService }, @@ -98,19 +85,15 @@ describe('EditionSectionDetailComponent (DONE)', () => { ).and.callThrough(); }); + afterAll(() => { + cleanStylesFromDOM(); + }); + it('... should create', () => { expect(component).toBeTruthy(); }); describe('BEFORE initial data binding', () => { - it('... should not have `selectedSeries`', () => { - expect(component.selectedSeries).toBeUndefined(); - }); - - it('... should not have `selectedSection`', () => { - expect(component.selectedSection).toBeUndefined(); - }); - describe('#updateSectionFromRoute()', () => { it('... should have a method `updateSectionFromRoute`', () => { expect(component.updateSectionFromRoute).toBeDefined(); @@ -122,12 +105,8 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain no outer div.awg-edition-section-detail yet', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - }); - - it('... should contain no div.alert-info', () => { - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + it('... should contain one router outlet (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); }); }); }); @@ -150,228 +129,18 @@ describe('EditionSectionDetailComponent (DONE)', () => { expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); }); - it('... should have set selectedSeries (via EditionService)', waitForAsync(() => { - expectSpyCall(updateSectionFromRouteSpy, 1); - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); - - expectToEqual(component.selectedSeries, expectedSelectedSeries); - })); - it('... should have called EditionOutlineService.getEditionSectionById', () => { expectSpyCall(editionOutlineServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); }); - it('... should have set selectedSection (via EditionOutlineService)', waitForAsync(() => { - expectSpyCall(updateSectionFromRouteSpy, 1); - expectSpyCall(editionOutlineServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); - - expectToEqual(component.selectedSection, expectedSelectedSection); - })); - it('... should have called editionService.updateSelectedEditionSection with selectedSection', () => { expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1, expectedSelectedSection); }); }); describe('VIEW', () => { - describe('... with given complexes', () => { - describe('... should contain 1 outer div.awg-edition-section-detail, but no div.alert-info ...', () => { - it('... if selected section is given and not empty', waitForAsync(() => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - - it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - - it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - }); - - describe('... opus complexes', () => { - it('... should contain 1 inner div.awg-edition-section-detail-opus if opus complexes are given', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 1, 1); - }); - - it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 0, 0); - }); - - it('... should display header (h5) in div.awg-edition-section-detail-opus', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); - const headerEl = headerDe[0].nativeElement; - - const expectedHeaderText = 'nach Opusnummer:'; - - expectToBe(headerEl.textContent, expectedHeaderText); - }); - - it('... should contain 1 edition complex card component (stubbed)', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - - getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); - }); - - it('... should pass down complexes to edition complex card component', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - const complexCardDes = getAndExpectDebugElementByDirective( - divDe[0], - EditionComplexCardStubComponent, - 1, - 1 - ); - const complexCardCmp = complexCardDes[0].injector.get( - EditionComplexCardStubComponent - ) as EditionComplexCardStubComponent; - - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.opus); - }); - }); - - describe('... mnr complexes', () => { - it('... should contain 1 inner div.awg-edition-section-detail-mnr if mnr complexes are given', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 1, 1); - }); - - it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 0, 0); - }); - - it('... should display header (h5) in div.awg-edition-section-detail-mnr', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); - const headerEl = headerDe[0].nativeElement; - - const expectedHeaderText = 'nach Moldenhauer-Nummer:'; - - expectToBe(headerEl.textContent, expectedHeaderText); - }); - - it('... should contain 1 edition complex card component (stubbed)', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - - getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); - }); - - it('... should pass down complexes to edition complex card component', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - const complexCardDes = getAndExpectDebugElementByDirective( - divDe[0], - EditionComplexCardStubComponent, - 1, - 1 - ); - const complexCardCmp = complexCardDes[0].injector.get( - EditionComplexCardStubComponent - ) as EditionComplexCardStubComponent; - - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.mnr); - }); - }); - }); - - describe('... with no complexes', () => { - describe('... should contain no outer div.awg-edition-section-detail, but 1 div.alert-info ...', () => { - it('... if selectedSection has no complexes...', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - })); - - it('... if selectedSection has empty opus and mnr complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { - ...component.selectedSection.complexTypes, - opus: undefined, - mnr: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - })); - }); - - it('... should contain 1 p.text-muted in div.alert-info', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); - const pEl = pDe[0].nativeElement; - - expectToContain(pEl.classList, 'text-muted'); - }); - - it('... should display info message in p.text-muted', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); - const pEl = pDe[0].nativeElement; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const series = expectedSelectedSeries.series.short; - const section = expectedSelectedSection.section.short; - - const expectedNoComplexesMsg = `[Diese Inhalte erscheinen im Zusammenhang der vollständigen Edition von ${awg} ${series}/${section}.]`; - - expectToBe(pEl.textContent.trim(), expectedNoComplexesMsg.trim()); - }); + it('... should contain one router outlet (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts index d064cb4b75..a1c7953cad 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts @@ -4,8 +4,6 @@ import { ActivatedRoute } from '@angular/router'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; -import { UtilityService } from '@awg-core/services'; -import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; /** @@ -20,20 +18,6 @@ import { EditionOutlineService, EditionService } from '@awg-views/edition-view/s styleUrls: ['./edition-section-detail.component.scss'], }) export class EditionSectionDetailComponent implements OnInit, OnDestroy { - /** - * Public variable: selectedSeries. - * - * It keeps the selected series of the edition. - */ - selectedSeries: EditionOutlineSeries; - - /** - * Public variable: selectedSection. - * - * It keeps the selected section of the edition. - */ - selectedSection: EditionOutlineSection; - /** * Private variable: _destroyed$. * @@ -44,17 +28,14 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { /** * Constructor of the EditionSectionDetailComponent. * - * It declares private instances of the Angular ActivatedRoute and the EditionService, - * and a public instance of the UtilityService. + * It declares private instances of the Angular ActivatedRoute and the EditionService. * * @param {ActivatedRoute} route Instance of the ActivatedRoute. * @param {EditionService} editionService Instance of the EditionService. - * @param {UtilityService} utils Instance of the UtilityService. */ constructor( private route: ActivatedRoute, - private editionService: EditionService, - public utils: UtilityService + private editionService: EditionService ) { // Intentionally left empty until implemented } @@ -86,10 +67,9 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { filter(series => !!series) ) .subscribe(series => { - this.selectedSeries = series; - const seriesId = series.series.route; - this.selectedSection = EditionOutlineService.getEditionSectionById(seriesId, sectionId); - this.editionService.updateSelectedEditionSection(this.selectedSection); + const seriesId = series?.series?.route; + const selectedSection = EditionOutlineService.getEditionSectionById(seriesId, sectionId); + this.editionService.updateSelectedEditionSection(selectedSection); }); } diff --git a/src/app/views/edition-view/edition-view-routing.module.ts b/src/app/views/edition-view/edition-view-routing.module.ts index 2dca199d76..a1bbe91924 100644 --- a/src/app/views/edition-view/edition-view-routing.module.ts +++ b/src/app/views/edition-view/edition-view-routing.module.ts @@ -6,6 +6,7 @@ import { EditionDetailNavComponent } from './edition-outlets/edition-complex/edi import { EditionSeriesComponent } from './edition-outlets/edition-series'; import { EditionSeriesDetailComponent } from './edition-outlets/edition-series-detail'; import { EditionSectionDetailComponent } from './edition-outlets/edition-series-detail/edition-section-detail'; +import { EditionSectionDetailOverviewComponent } from './edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component'; import { EditionSectionsComponent } from './edition-outlets/edition-series-detail/edition-sections'; import { EditionViewComponent } from './edition-view.component'; @@ -34,6 +35,12 @@ const EDITION_VIEW_ROUTES: Routes = [ // Section by id (1, 2, 3, 4, 5). path: 'section/:id', component: EditionSectionDetailComponent, + children: [ + { + path: '', + component: EditionSectionDetailOverviewComponent, + }, + ], }, { path: 'sections/:id', @@ -148,6 +155,7 @@ export const routedEditionViewComponents = [ EditionDetailNavComponent, EditionSectionsComponent, EditionSectionDetailComponent, + EditionSectionDetailOverviewComponent, EditionSeriesComponent, EditionSeriesDetailComponent, ]; From 9152c8ffe03a0020b9d38194ec19d35b80d1c015 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 20 Sep 2024 16:45:17 +0200 Subject: [PATCH 068/213] refactor(edition): reorganize edition view routing --- .../edition-view-routing.module.ts | 49 ++++++------------- 1 file changed, 14 insertions(+), 35 deletions(-) diff --git a/src/app/views/edition-view/edition-view-routing.module.ts b/src/app/views/edition-view/edition-view-routing.module.ts index a1bbe91924..8f8472b84a 100644 --- a/src/app/views/edition-view/edition-view-routing.module.ts +++ b/src/app/views/edition-view/edition-view-routing.module.ts @@ -16,6 +16,20 @@ const EDITION_VIEW_ROUTES: Routes = [ path: '', component: EditionViewComponent, children: [ + { + path: 'preface', + loadChildren: () => + import('./edition-outlets/edition-preface/edition-preface.module').then( + m => m.EditionPrefaceModule + ), + }, + { + path: 'row-tables', + loadChildren: () => + import('./edition-outlets/edition-row-tables/edition-row-tables.module').then( + m => m.EditionRowTablesModule + ), + }, { // Overview of series. path: 'series', @@ -96,27 +110,6 @@ const EDITION_VIEW_ROUTES: Routes = [ './edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.module' ).then(m => m.EditionGraphModule), }, - /* - Path: 'workedition', - loadChildren: () => - import( - './edition-outlets/edition-complex/edition-detail/edition-workedition/edition-workedition.module' - ).then(m => m.EditionWorkeditionModule), - }, - { - path: 'texteditions', - loadChildren: () => - import( - './edition-outlets/edition-complex/edition-detail/edition-texteditions/edition-texteditions.module' - ).then(m => m.EditionTexteditionModule), - }, - { - path: 'sketches', - loadChildren: () => - import( - './edition-outlets/edition-complex/edition-detail/edition-sketches/edition-sketches.module' - ).then(m => m.EditionSketchesModule), - },*/ { path: '', redirectTo: 'sheets', @@ -126,20 +119,6 @@ const EDITION_VIEW_ROUTES: Routes = [ }, ], }, - { - path: 'preface', - loadChildren: () => - import('./edition-outlets/edition-preface/edition-preface.module').then( - m => m.EditionPrefaceModule - ), - }, - { - path: 'row-tables', - loadChildren: () => - import('./edition-outlets/edition-row-tables/edition-row-tables.module').then( - m => m.EditionRowTablesModule - ), - }, ], }, ]; From a4326c335fef302c57a5803833174f085f919253 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 20 Sep 2024 17:37:36 +0200 Subject: [PATCH 069/213] feat(edition): add section intro link to side info --- src/app/core/navbar/navbar.component.spec.ts | 6 +-- .../edition-info/edition-info.component.html | 19 +++++++++ .../edition-info.component.spec.ts | 40 +++++++++++++++---- .../edition-view/edition-route-constants.ts | 4 +- .../edition-view/edition-view.component.html | 2 +- .../edition-view.component.spec.ts | 4 +- .../services/edition-data.service.spec.ts | 2 + .../services/edition-data.service.ts | 2 + 8 files changed, 63 insertions(+), 16 deletions(-) diff --git a/src/app/core/navbar/navbar.component.spec.ts b/src/app/core/navbar/navbar.component.spec.ts index 41da104b57..b602003003 100644 --- a/src/app/core/navbar/navbar.component.spec.ts +++ b/src/app/core/navbar/navbar.component.spec.ts @@ -584,9 +584,9 @@ describe('NavbarComponent (DONE)', () => { const itemsEl2 = itemsDe[1].nativeElement; const itemsEl3 = itemsDe[2].nativeElement; - expectToBe(itemsEl1.textContent, 'Einleitung'); - expectToBe(itemsEl2.textContent, 'Edierte Notentexte'); - expectToBe(itemsEl3.textContent, 'Kritischer Bericht'); + expectToBe(itemsEl1.textContent, EDITION_ROUTE_CONSTANTS.EDITION_INTRO.full); + expectToBe(itemsEl2.textContent, EDITION_ROUTE_CONSTANTS.EDITION_SHEETS.full); + expectToBe(itemsEl3.textContent, EDITION_ROUTE_CONSTANTS.EDITION_REPORT.full); }); }); }); diff --git a/src/app/side-info/edition-info/edition-info.component.html b/src/app/side-info/edition-info/edition-info.component.html index dd4650c25f..d9f5c72412 100644 --- a/src/app/side-info/edition-info/edition-info.component.html +++ b/src/app/side-info/edition-info/edition-info.component.html @@ -4,6 +4,7 @@
{{ editionInfoHeader }}

+
@@ -45,6 +46,7 @@
{{ editionInfoHeader }}
+
+
} diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index 5fa375c589..f1aa1ae95c 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -521,7 +521,7 @@ describe('EditionViewComponent (DONE)', () => { expectToBe(jumbotronCmp.jumbotronTitle, expectedTitle); }); - it('... should pass down `Einleitung/Introduction` as title to JumbotronComponent (stubbed) if `isIntroView=true`', () => { + it('... should pass down full edition intro const as title to JumbotronComponent (stubbed) if `isIntroView=true`', () => { component.isIntroView$ = observableOf(true); fixture.detectChanges(); @@ -538,7 +538,7 @@ describe('EditionViewComponent (DONE)', () => { ) as EditionJumbotronStubComponent; expectToBe(jumbotronCmp.jumbotronId, expectedId); - expectToBe(jumbotronCmp.jumbotronTitle, 'Einleitung/Introduction'); + expectToBe(jumbotronCmp.jumbotronTitle, EDITION_ROUTE_CONSTANTS.EDITION_INTRO.full); }); describe('... breadcrumb header (h6)', () => { diff --git a/src/app/views/edition-view/services/edition-data.service.spec.ts b/src/app/views/edition-view/services/edition-data.service.spec.ts index ae93ba06e8..e450366506 100644 --- a/src/app/views/edition-view/services/edition-data.service.spec.ts +++ b/src/app/views/edition-view/services/edition-data.service.spec.ts @@ -98,7 +98,9 @@ describe('EditionDataService (DONE)', () => { EDITION_ROUTE_CONSTANTS.SERIES.route + delimiter + expectedEditionComplex.pubStatement.series.route + + delimiter + EDITION_ROUTE_CONSTANTS.SECTION.route + + delimiter + expectedEditionComplex.pubStatement.section.route + expectedEditionComplex.complexId.route; expectedAssetPath = expectedAssetPathBaseRoute + expectedComplexRoute; diff --git a/src/app/views/edition-view/services/edition-data.service.ts b/src/app/views/edition-view/services/edition-data.service.ts index 8dcd97507e..fef1f6a6ca 100644 --- a/src/app/views/edition-view/services/edition-data.service.ts +++ b/src/app/views/edition-view/services/edition-data.service.ts @@ -221,7 +221,9 @@ export class EditionDataService { EDITION_ROUTE_CONSTANTS.SERIES.route + delimiter + editionComplex.pubStatement.series.route + + delimiter + EDITION_ROUTE_CONSTANTS.SECTION.route + + delimiter + editionComplex.pubStatement.section.route + editionComplex.complexId.route; return EDITION_ASSETS_DATA.BASE_ROUTE + complexRoute; From 1d0f1f398e60061688e1b9c6d2c96c766960e5c6 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Fri, 20 Sep 2024 18:53:25 +0200 Subject: [PATCH 070/213] Update src/assets/data/edition/series/1/section/5/op12/source-description.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Stefan Münnich --- .../edition/series/1/section/5/op12/source-description.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 9051e5ef85..53ee147a20 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1842,7 +1842,7 @@ "id": "source_Cd_corr", "label": "Korrekturen in Cd", "description": [ - "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der verschiedenen Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu den beiden edierten Textfassung nicht praktikabel ist." + "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der verschiedenen Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu den beiden edierten Textfassungen nicht praktikabel ist." ], "comments": [ ] } From 33fb9ed0c4277951478dfd52c714b3611013c8af Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 11:04:20 +0200 Subject: [PATCH 071/213] refactor(edition): adjust outline model to account for intro --- .../edition-init.service.spec.ts | 4 +- ...ion-section-detail-overview.component.html | 44 +++- ...-section-detail-overview.component.spec.ts | 42 ++-- .../models/edition-outline.model.ts | 103 ++++++++-- .../services/edition-outline.service.spec.ts | 59 ++++-- src/assets/data/edition/edition-outline.json | 192 +++++++++++------- 6 files changed, 309 insertions(+), 135 deletions(-) diff --git a/src/app/core/services/edition-init-service/edition-init.service.spec.ts b/src/app/core/services/edition-init-service/edition-init.service.spec.ts index ab24a010cd..2751556fc0 100644 --- a/src/app/core/services/edition-init-service/edition-init.service.spec.ts +++ b/src/app/core/services/edition-init-service/edition-init.service.spec.ts @@ -6,8 +6,8 @@ import Spy = jasmine.Spy; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectSpyCall, expectToEqual } from '@testing/expect-helper'; -import { EDITION_ROUTE_CONSTANTS } from '@awg-app/views/edition-view/edition-route-constants'; -import { EditionComplexesService, EditionOutlineService } from '@awg-app/views/edition-view/services'; +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; import { EditionInitService } from './edition-init.service'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html index 28098e4ab2..6baf094d76 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html @@ -1,20 +1,50 @@ @if ( selectedSection && - utils.isNotEmptyObject(selectedSection.complexTypes) && - (utils.isNotEmptyArray(selectedSection.complexTypes.opus) || - utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) + (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus) || + utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr)) ) {
- @if (utils.isNotEmptyArray(selectedSection.complexTypes.opus)) { + @if (!selectedSection?.content?.intro.disabled) { +
+
Einleitung:
+
+
+
+ +
+
+ +
+
+ } + @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus)) {
nach Opusnummer:
- +
} - @if (utils.isNotEmptyArray(selectedSection.complexTypes.mnr)) { + @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr)) {
nach Moldenhauer-Nummer:
- +
}
diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts index 314623e36f..876e9e50d9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts @@ -160,8 +160,11 @@ describe('EditionSectionDetailOverviewComponent', () => { })); it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + const shallowCopy = { ...component?.selectedSection }; + shallowCopy.content.complexTypes = { + ...component.selectedSection?.content?.complexTypes, + opus: undefined, + }; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -170,8 +173,11 @@ describe('EditionSectionDetailOverviewComponent', () => { })); it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + const shallowCopy = { ...component?.selectedSection }; + shallowCopy.content.complexTypes = { + ...component?.selectedSection?.content?.complexTypes, + mnr: undefined, + }; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -187,8 +193,11 @@ describe('EditionSectionDetailOverviewComponent', () => { }); it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, opus: undefined }; + const shallowCopy = { ...component?.selectedSection }; + shallowCopy.content.complexTypes = { + ...component?.selectedSection?.content?.complexTypes, + opus: undefined, + }; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -239,7 +248,7 @@ describe('EditionSectionDetailOverviewComponent', () => { EditionComplexCardStubComponent ) as EditionComplexCardStubComponent; - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.opus); + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.opus); }); }); @@ -250,8 +259,11 @@ describe('EditionSectionDetailOverviewComponent', () => { }); it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { ...component.selectedSection.complexTypes, mnr: undefined }; + const shallowCopy = { ...component?.selectedSection }; + shallowCopy.content.complexTypes = { + ...component?.selectedSection?.content?.complexTypes, + mnr: undefined, + }; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -287,7 +299,7 @@ describe('EditionSectionDetailOverviewComponent', () => { EditionComplexCardStubComponent ) as EditionComplexCardStubComponent; - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.complexTypes.mnr); + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.mnr); }); }); }); @@ -296,7 +308,7 @@ describe('EditionSectionDetailOverviewComponent', () => { describe('... should contain no outer div.awg-edition-section-detail, but 1 div.alert-info ...', () => { it('... if selectedSection has no complexes...', waitForAsync(() => { const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; + shallowCopy.content.complexTypes = undefined; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -306,8 +318,8 @@ describe('EditionSectionDetailOverviewComponent', () => { it('... if selectedSection has empty opus and mnr complexes', waitForAsync(() => { const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = { - ...component.selectedSection.complexTypes, + shallowCopy.content.complexTypes = { + ...component.selectedSection.content.complexTypes, opus: undefined, mnr: undefined, }; @@ -321,7 +333,7 @@ describe('EditionSectionDetailOverviewComponent', () => { it('... should contain 1 p.text-muted in div.alert-info', () => { const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; + shallowCopy.content.complexTypes = undefined; component.selectedSection = shallowCopy; fixture.detectChanges(); @@ -334,7 +346,7 @@ describe('EditionSectionDetailOverviewComponent', () => { it('... should display info message in p.text-muted', () => { const shallowCopy = { ...component.selectedSection }; - shallowCopy.complexTypes = undefined; + shallowCopy.content.complexTypes = undefined; component.selectedSection = shallowCopy; fixture.detectChanges(); diff --git a/src/app/views/edition-view/models/edition-outline.model.ts b/src/app/views/edition-view/models/edition-outline.model.ts index 0802481568..5fa6d91c17 100644 --- a/src/app/views/edition-view/models/edition-outline.model.ts +++ b/src/app/views/edition-view/models/edition-outline.model.ts @@ -5,21 +5,26 @@ import { EditionComplexesService } from '@awg-views/edition-view/services'; import { EditionComplex } from './edition-complex.model'; /** - * The EditionOutlineSeriesJsonData interface. + * The EditionOutlineSectionsContentJsonData interface. * * It is used in the context of the edition view - * to describe the structure of a JSON data for an edition outline series. + * to describe the structure of a JSON data for an edition outline sections content. */ -export interface EditionOutlineSeriesJsonData { +export interface EditionOutlineSectionsContentJsonData { /** - * The series data. + * The intro data. */ - series: string; + intro: { + disabled: boolean; + }; /** - * The sections data. + * The complex types data. */ - sections: EditionOutlineSectionsJsonData[]; + complexTypes: { + opus: [{ complex: string; disabled: boolean }]; + mnr: [{ complex: string; disabled: boolean }]; + }; } /** @@ -35,12 +40,9 @@ export interface EditionOutlineSectionsJsonData { section: string; /** - * The complexTypes data + * The section content data. */ - complexTypes: { - opus: [{ complex: string; disabled: boolean }]; - mnr: [{ complex: string; disabled: boolean }]; - }; + content: EditionOutlineSectionsContentJsonData; /** * Boolean flag if a section is disabled. @@ -48,6 +50,24 @@ export interface EditionOutlineSectionsJsonData { disabled: boolean; } +/** + * The EditionOutlineSeriesJsonData interface. + * + * It is used in the context of the edition view + * to describe the structure of a JSON data for an edition outline series. + */ +export interface EditionOutlineSeriesJsonData { + /** + * The series data. + */ + series: string; + + /** + * The sections data. + */ + sections: EditionOutlineSectionsJsonData[]; +} + /** * The EditionOutlineJsonData interface. * @@ -102,6 +122,37 @@ export interface EditionOutlineComplexTypes { mnr: EditionOutlineComplexItem[]; } +/** + * The EditionOutlineIntroItem interface. + * + * It is used in the context of the edition view + * to structure outline information of the edition intro. + */ +export interface EditionOutlineIntroItem { + /** + * Boolean flag if an intro is disabled. + */ + disabled: boolean; +} + +/** + * The EditionOutlineSectionContent interface. + * + * It is used in the context of the edition view + * to structure outline information of the edition section content. + */ +export interface EditionOutlineSectionContent { + /** + * The intro of an edition section. + */ + intro: EditionOutlineIntroItem; + + /** + * The edition complex types of an edition section. + */ + complexTypes: EditionOutlineComplexTypes; +} + /** * The EditionOutlineSection interface. * @@ -115,9 +166,9 @@ export interface EditionOutlineSection { section: EditionRouteConstant; /** - * The edition complex types of an edition section. + * The section content of an edition section. */ - complexTypes: EditionOutlineComplexTypes; + content: EditionOutlineSectionContent; /** * Boolean flag if an edition section is disabled. @@ -202,7 +253,7 @@ export class EditionOutline { * @returns {EditionOutlineSection} The mapped section. */ private _mapSection = ( - { section, complexTypes, disabled }: EditionOutlineSectionsJsonData, + { section, disabled, content }: EditionOutlineSectionsJsonData, series: string ): EditionOutlineSection => { const sectionConstant: EditionRouteConstant = @@ -212,14 +263,28 @@ export class EditionOutline { return { section: sectionConstant, - complexTypes: { - opus: this._mapComplexItems(complexTypes.opus), - mnr: this._mapComplexItems(complexTypes.mnr), - }, + content: this._mapSectionContent(content), disabled, }; }; + /** + * Private method: _mapContent. + * + * It maps the content data. + * + * @param {EditionOutlineSectionsContentJsonData} content The content data to map. + * + * @returns {EditionOutlineSectionContent} The mapped content. + */ + private _mapSectionContent = (content: EditionOutlineSectionsContentJsonData): EditionOutlineSectionContent => ({ + intro: { disabled: content.intro.disabled }, + complexTypes: { + opus: this._mapComplexItems(content.complexTypes.opus), + mnr: this._mapComplexItems(content.complexTypes.mnr), + }, + }); + /** * Private method: _mapComplexItems. * diff --git a/src/app/views/edition-view/services/edition-outline.service.spec.ts b/src/app/views/edition-view/services/edition-outline.service.spec.ts index 4f0f4999a4..d0d40e75cd 100644 --- a/src/app/views/edition-view/services/edition-outline.service.spec.ts +++ b/src/app/views/edition-view/services/edition-outline.service.spec.ts @@ -103,27 +103,34 @@ describe('EditionOutlineService (DONE)', () => { sections: [ { section: '5', - complexTypes: { - opus: [ - { - complex: '', - disabled: true, - }, - ], - mnr: [{ complex: '', disabled: true }], + content: { + intro: { disabled: true }, + complexTypes: { + opus: [ + { + complex: '', + disabled: true, + }, + ], + mnr: [{ complex: '', disabled: true }], + }, }, + disabled: true, }, { section: '4', - complexTypes: { - opus: [ - { - complex: '', - disabled: true, - }, - ], - mnr: [{ complex: '', disabled: true }], + content: { + intro: { disabled: false }, + complexTypes: { + opus: [ + { + complex: '', + disabled: true, + }, + ], + mnr: [{ complex: '', disabled: true }], + }, }, disabled: false, }, @@ -161,12 +168,18 @@ describe('EditionOutlineService (DONE)', () => { sections: [ { section: EDITION_ROUTE_CONSTANTS.SECTION_5, - complexTypes: { opus: [], mnr: [] }, + content: { + intro: { disabled: true }, + complexTypes: { opus: [], mnr: [] }, + }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexTypes: { opus: [], mnr: [] }, + content: { + intro: { disabled: false }, + complexTypes: { opus: [], mnr: [] }, + }, disabled: false, }, ], @@ -192,12 +205,18 @@ describe('EditionOutlineService (DONE)', () => { sections: [ { section: EDITION_ROUTE_CONSTANTS.SECTION_5, - complexTypes: { opus: [], mnr: [] }, + content: { + intro: { disabled: true }, + complexTypes: { opus: [], mnr: [] }, + }, disabled: true, }, { section: EDITION_ROUTE_CONSTANTS.SECTION_4, - complexTypes: { opus: [], mnr: [] }, + content: { + intro: { disabled: false }, + complexTypes: { opus: [], mnr: [] }, + }, disabled: false, }, ], diff --git a/src/assets/data/edition/edition-outline.json b/src/assets/data/edition/edition-outline.json index 189cd012f4..79cacf514e 100644 --- a/src/assets/data/edition/edition-outline.json +++ b/src/assets/data/edition/edition-outline.json @@ -5,56 +5,71 @@ "sections": [ { "section": "1", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "2", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "3", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "4", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "5", - "complexTypes": { - "opus": [ - { "complex": "OP3", "disabled": false }, - { "complex": "OP4", "disabled": false }, - { "complex": "OP12", "disabled": false }, - { "complex": "OP23", "disabled": false }, - { "complex": "OP25", "disabled": false } - ], - "mnr": [ - { "complex": "M133", "disabled": true }, - { "complex": "M134", "disabled": true }, - { "complex": "M135", "disabled": true }, - { "complex": "M136", "disabled": true }, - { "complex": "M137", "disabled": true }, - { "complex": "M138", "disabled": true }, - { "complex": "M139", "disabled": true }, - { "complex": "M140", "disabled": true }, - { "complex": "M141", "disabled": true }, - { "complex": "M142", "disabled": true }, - { "complex": "M143", "disabled": false }, - { "complex": "M144", "disabled": false }, - { "complex": "M145", "disabled": false }, - { "complex": "M146", "disabled": false }, - { "complex": "M213", "disabled": true }, - { "complex": "M212", "disabled": true }, - { "complex": "M216", "disabled": true }, - { "complex": "M217", "disabled": true } - ] - }, - "disabled": false + "disabled": false, + "content": { + "intro": { "disabled": false }, + "complexTypes": { + "opus": [ + { "complex": "OP3", "disabled": false }, + { "complex": "OP4", "disabled": false }, + { "complex": "OP12", "disabled": false }, + { "complex": "OP23", "disabled": false }, + { "complex": "OP25", "disabled": false } + ], + "mnr": [ + { "complex": "M133", "disabled": true }, + { "complex": "M134", "disabled": true }, + { "complex": "M135", "disabled": true }, + { "complex": "M136", "disabled": true }, + { "complex": "M137", "disabled": true }, + { "complex": "M138", "disabled": true }, + { "complex": "M139", "disabled": true }, + { "complex": "M140", "disabled": true }, + { "complex": "M141", "disabled": true }, + { "complex": "M142", "disabled": true }, + { "complex": "M143", "disabled": false }, + { "complex": "M144", "disabled": false }, + { "complex": "M145", "disabled": false }, + { "complex": "M146", "disabled": false }, + { "complex": "M213", "disabled": true }, + { "complex": "M212", "disabled": true }, + { "complex": "M216", "disabled": true }, + { "complex": "M217", "disabled": true } + ] + } + } } ] }, @@ -63,45 +78,63 @@ "sections": [ { "section": "1", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "2A", - "complexTypes": { - "opus": [], - "mnr": [ - { "complex": "M22", "disabled": false }, - { "complex": "M30", "disabled": false }, - { "complex": "M31", "disabled": false }, - { "complex": "M34", "disabled": false }, - { "complex": "M35_42", "disabled": false }, - { "complex": "M36", "disabled": false }, - { "complex": "M37", "disabled": false }, - { "complex": "M38", "disabled": false } - ] - }, - "disabled": false + "disabled": false, + "content": { + "intro": { "disabled": true }, + "complexTypes": { + "opus": [], + "mnr": [ + { "complex": "M22", "disabled": false }, + { "complex": "M30", "disabled": false }, + { "complex": "M31", "disabled": false }, + { "complex": "M34", "disabled": false }, + { "complex": "M35_42", "disabled": false }, + { "complex": "M36", "disabled": false }, + { "complex": "M37", "disabled": false }, + { "complex": "M38", "disabled": false } + ] + } + } }, { "section": "2B", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "3", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "4", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "5", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } } ] }, @@ -110,28 +143,43 @@ "sections": [ { "section": "1", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "2", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "3", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "4", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } }, { "section": "5", - "complexTypes": { "opus": [], "mnr": [] }, - "disabled": true + "disabled": true, + "content": { + "intro": { "disabled": true }, + "complexTypes": { "opus": [], "mnr": [] } + } } ] } From af3804f473c0d47dd6d2aa8afda0cbc8075ad605 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:08:09 +0200 Subject: [PATCH 072/213] feat(assets): add corrections in op25: E --- .../1/section/5/op25/source-description.json | 912 +++++++++++++++++- 1 file changed, 911 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op25/source-description.json b/src/assets/data/edition/series/1/section/5/op25/source-description.json index 3f7eb91d1f..2d4a5512a7 100644 --- a/src/assets/data/edition/series/1/section/5/op25/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op25/source-description.json @@ -2180,7 +2180,917 @@ } ] } - ] + ], + "corrections": [ + { + "id": "source_E_corr1", + "label": "Korrekturen 1 in E", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Wie bin ich froh“ M 317: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "(5/8)", + "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 1 5/8. Siehe TkA zu 4/8." + }, + { + "measure": "10", + "system": "", + "position": "(3/4)", + "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 10 3/4 zu Taktanfang." + }, + { + "measure": "11
bis 12", + "system": "", + "position": "(4/4)", + "comment": "T. 11 4/4 wurde zum Teil auf handgezogenen Systemen am Akkoladenende ergänzt; am vom Systemanfang nach rechts verschobenen Akkoladenanfang vor T. 12 steht eine großflächige Rasur; weitere Rasuren in T. 12 Ges.; radierter Taktstrich nach T. 12 2/8. Ante correcturam: vermutlich eine dreitaktige Variante (T. [11–13]) mit Taktstrichen nach T. 11 6/8 (vor T. [12]) und nach T. 12 2/8 (vor T. [13]). Siehe M 317 Sk4 T. 13–15." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "2.–5. Note", + "comment": "Auf Rasur. Ante correcturam: Tonhöhen vermutlich im Violinschlüssel notiert. Siehe M 317 Sk4 T. 13–15." + } + ] + } + ] + }, + { + "id": "source_E_corr2", + "label": "Korrekturen 2 in E", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Drei Lieder nach Gedichten von Hildegard Jone op. 25." + ], + "comments": [ + { + "blockHeader": "I „Wie bin ich froh“ M 317", + "blockComments": [ + { + "measure": "1", + "system": "Klav.", + "position": "5–6/8", + "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "vor 4", + "system": "Klav. u.", + "position": "", + "comment": "Violinschlüssel versetzt von T. 4 vor 1. Note (dort Rasur; siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "8/8", + "comment": "Tenutostrich rasiert (siehe Textfassung 1)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "5
bis 6", + "system": "Klav.", + "position": "5/8
1/8", + "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." + }, + { + "measure": "6", + "system": "Klav.", + "position": "2. Note", + "comment": "Bleistiftskizzen über und unter der Akkolade (System 5 und 9) rasiert." + }, + { + "measure": "6
bis 7", + "system": "Ges.", + "position": "2. Note
2/8", + "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 7 1–2/8 im Zusammenhang mit dieser Korrektur." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4–6/8", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "nach 3/8", + "comment": "Violinschlüssel versetzt von vor 2. Note (dort Rasur; siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 8 3.–4. Note im Zusammenhang mit dieser Korrektur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "8/8
2/8", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/8", + "comment": "Tenutostrich rasiert (siehe Textfassung 1)." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "tempo I. ersetzt wieder tempo I. auf Rasur (siehe Textfassung 1)." + } + ] + }, + { + "blockHeader": "II „Des Herzens Purpurvogel“ M 322", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Metronomangabe auf Rasur." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "1/16", + "comment": "Auf Rasur." + }, + { + "measure": "3", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "3
bis 6", + "system": "Ges.", + "position": "6/16
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Auf Rasur. Ante correcturam: Hals- und Bogenausrichtung umgekehrt?" + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "2/8
2/8", + "comment": "Bogen rasiert." + }, + { + "measure": "9", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "1/16", + "comment": "{{ref.getGlyph('[f]')}} auf Rasur." + }, + { + "measure": "10", + "system": "", + "position": "4/16", + "comment": "rit. auf Rasur." + }, + { + "measure": "10
bis 11", + "system": "Ges.", + "position": "6/16
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "11", + "system": "Klav.", + "position": "2–6/16", + "comment": "Auf Rasur. Bleistiftskizzen über und unter dem Klav.-System (System 4 und 7) radiert." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "13", + "system": "Klav.", + "position": "", + "comment": "Crescendo- und Decrescendogabel auf Rasur." + }, + { + "measure": "13
bis 14", + "system": "Ges.", + "position": "2/8
6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "15", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "15", + "system": "Klav.", + "position": "1–5/16", + "comment": "Rasur zwischen den Systemen. Ante correcturam: Gabel?" + }, + { + "measure": "16", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "16
bis 17", + "system": "Ges.", + "position": "3/8
6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "16", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('[f]')}} auf Rasur." + }, + { + "measure": "16
bis 17", + "system": "Klav. u.", + "position": "3/8
1/16", + "comment": "Auf Rasur." + }, + { + "measure": "18
bis 19", + "system": "Ges.", + "position": "2/16
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "19", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "20", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "21", + "system": "Klav. o.", + "position": "1/16", + "comment": "Auf Rasur." + }, + { + "measure": "21", + "system": "Klav. u.", + "position": "2/16", + "comment": "Auf Rasur." + }, + { + "measure": "23–24", + "system": "", + "position": "", + "comment": "rit. - - - tempo auf Rasur (bis Ende T. 24)." + }, + { + "measure": "23", + "system": "Ges.", + "position": "2/16–2/8", + "comment": "Bogen rasiert." + }, + { + "measure": "23
bis 24", + "system": "Ges.", + "position": "3/8
1. Note", + "comment": "Anfang der Decrescendogabel auf Rasur. Ante correcturam: Ausdehnung der Gabel von T. 23 2/8 bis Taktende?" + }, + { + "measure": "23
bis 24", + "system": "Klav. o.", + "position": "6/16
1/16", + "comment": "Auf Rasur. Ante correcturam: ges1? (Siehe M 322 Sk4 T. 12.)" + }, + { + "measure": "24", + "system": "Klav. u.", + "position": "2/8", + "comment": "Auf Rasur." + }, + { + "measure": "25
bis 26", + "system": "Ges.", + "position": "1. Note
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "26", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "27", + "system": "Klav.", + "position": "2.–3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "27
bis 28", + "system": "Ges.", + "position": "4/16
2/16", + "comment": "Bogen rasiert. Crescendo- (T. 27 3/8) und Decrescendogabel auf Rasur." + }, + { + "measure": "27
bis 28", + "system": "Klav.", + "position": "6/16
2/16", + "comment": "Bogen auf Rasur." + }, + { + "measure": "29", + "system": "Ges.", + "position": "2–3/16", + "comment": "Bogen rasiert." + }, + { + "measure": "29
bis 30", + "system": "Ges.", + "position": "4/16
4/16", + "comment": "Bogen rasiert." + }, + { + "measure": "30", + "system": "", + "position": "6/16", + "comment": "tempo auf Rasur." + }, + { + "measure": "30
bis 31", + "system": "Ges.", + "position": "6/16
3/16", + "comment": "Bogen rasiert." + }, + { + "measure": "31", + "system": "", + "position": "2/16", + "comment": "rit. auf Rasur." + }, + { + "measure": "32", + "system": "", + "position": "Taktanfang", + "comment": "Geltungsstrichelung von rit. (T. 31) auf Rasur." + }, + { + "measure": "33", + "system": "", + "position": "Taktanfang", + "comment": "langsamer auf Rasur." + }, + { + "measure": "33", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "33", + "system": "Ges.", + "position": "5–6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "34", + "system": "Klav.", + "position": "2–4/16", + "comment": "Bogen rasiert. Staccatopunkt zu 4/16 auf Rasur." + }, + { + "measure": "34", + "system": "Ges.", + "position": "4/16–3/8", + "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." + }, + { + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "35", + "system": "Ges.", + "position": "2–4/16", + "comment": "Bogen rasiert." + }, + { + "measure": "36", + "system": "Klav.", + "position": "2–4/16", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." + }, + { + "measure": "37", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "37", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "37", + "system": "Klav.", + "position": "2/16", + "comment": "{{ref.getGlyph('[pp]')}} auf Rasur." + }, + { + "measure": "38", + "system": "", + "position": "3/16", + "comment": "immer langsamer auf Rasur." + }, + { + "measure": "38", + "system": "Klav. o.", + "position": "3/8", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "39", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." + }, + { + "measure": "39", + "system": "Klav. u.", + "position": "2/8–6/16", + "comment": "Auf Rasur." + }, + { + "measure": "40", + "system": "", + "position": "Taktanfang", + "comment": "Rasur über Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "40", + "system": "Ges.", + "position": "2–5/16", + "comment": "Bogen rasiert." + }, + { + "measure": "40", + "system": "Klav.", + "position": "4–6/16", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." + }, + { + "measure": "41", + "system": "", + "position": "Taktanfang", + "comment": "verlöschend auf Rasur." + }, + { + "measure": "41", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert. Silbenbogen 2.–3. Note auf Rasur.
{{ref.getGlyph('[pp]')}}, Decrescendogabel (?) rasiert." + }, + { + "measure": "nach 42", + "system": "", + "position": "", + "comment": "Bleistiftnotiz nach Schlusstaktstrich radiert." + } + ] + }, + { + "blockHeader": "III „Sterne, ihr silbernen Bienen“ M 321", + "blockComments": [ + { + "measure": "4–6", + "system": "Ges.", + "position": "", + "comment": "Bogen rasiert." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "9
bis 14", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "13", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur. Siehe M 321 Sk8 T. 5: calando." + }, + { + "measure": "13
bis 14", + "system": "Klav.", + "position": "2/4
2/4", + "comment": "Auf Rasur." + }, + { + "measure": "15
bis 16", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "15–21", + "system": "Klav.", + "position": "", + "comment": "Teilweise auf Rasur. Ante correcturam: alternative Aufteilung der Noten auf die Systeme?" + }, + { + "measure": "17", + "system": "", + "position": "", + "comment": "Geltungstrichelung von rit. (T. 13) und viel mäßiger (2/4) auf Rasur. Siehe M 321 Sk8 T. 6 2. TH: tempo." + }, + { + "measure": "17
bis 20", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "19", + "system": "Klav. u.", + "position": "", + "comment": "Bleistifteintragung (Text) radiert." + }, + { + "measure": "20", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "21", + "system": "Ges.", + "position": "1/4", + "comment": "Viertelpause ersetzt Viertelnote e2 mit Ligaturbogen von T. 20 2/4 auf Rasur." + }, + { + "measure": "22", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur. Siehe M 321 Sk8 T. 8A: calando." + }, + { + "measure": "22–24", + "system": "Ges.", + "position": "", + "comment": "Bogen rasiert." + }, + { + "measure": "26–28", + "system": "", + "position": "", + "comment": "Bleistifteintragung (Text) radiert." + }, + { + "measure": "28", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "29
bis 31", + "system": "", + "position": "Taktanfang
1/4", + "comment": "rit.- - - auf Rasur." + }, + { + "measure": "29
bis 30", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "31", + "system": "", + "position": "2/4", + "comment": "wieder viel mäßiger auf Rasur." + }, + { + "measure": "31
bis 33", + "system": "Ges.", + "position": "2/4
1/4", + "comment": "Bogen rasiert." + }, + { + "measure": "33
bis 34", + "system": "Ges.", + "position": "2/4
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "34", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Bleistiftskizze im System darüber radiert." + }, + { + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur." + }, + { + "measure": "35", + "system": "Klav. u.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "measure": "35
bis 36", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "37", + "system": "", + "position": "Taktanfang", + "comment": "tempo I. auf Rasur." + }, + { + "measure": "37
bis 38", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "39", + "system": "", + "position": "2/4", + "comment": "rit. - - - auf Rasur (ab Taktanfang)." + }, + { + "measure": "39
bis 41", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "42
bis 45", + "system": "Ges.", + "position": "1. Note
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "43", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 15: h–b1." + }, + { + "measure": "46
bis 49", + "system": "Ges.", + "position": "1. Note
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "48
bis 49", + "system": "Ges.", + "position": "2. Note
2. Note", + "comment": "Drecrescendogabel auf Rasur." + }, + { + "measure": "48
bis 49", + "system": "Klav.", + "position": "2/4
2/4", + "comment": "Drecrescendogabel auf Rasur." + }, + { + "measure": "50
bis 51", + "system": "Ges.", + "position": "1. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "51", + "system": "", + "position": "2/4", + "comment": "tempo auf Rasur (ab Taktanfang)." + }, + { + "measure": "51", + "system": "Klav. u.", + "position": "2/4", + "comment": "Auf Rasur." + }, + { + "measure": "55", + "system": "Klav. o.", + "position": "vor 2/4", + "comment": "Rasur. Siehe M 321 Sk8 T. 19B vor 2/8: Vorschlagsnote e1." + }, + { + "measure": "56", + "system": "", + "position": "Taktanfang", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "56", + "system": "Ges.", + "position": "2/4", + "comment": "{{ref.getGlyph('[ff]')}} auf Rasur. Siehe M 321 Sk8 T. 19B 1. Note: {{ref.getGlyph('[f]')}}." + }, + { + "measure": "57", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "57", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 19B 2. TH." + }, + { + "measure": "58
bis 60", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "61", + "system": "", + "position": "Taktanfang", + "comment": "wieder viel mäßiger auf Rasur (bis Ende T.63)." + }, + { + "measure": "61
bis 63", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "62
bis 63", + "system": "Klav. u.", + "position": "2/4
2/4", + "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." + }, + { + "measure": "63
bis 64", + "system": "Klav. o.", + "position": "1/4
1/4", + "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." + }, + { + "measure": "65
bis 68", + "system": "Ges.", + "position": "2/4
1/4", + "comment": "Bogen rasiert." + }, + { + "measure": "67", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur." + }, + { + "measure": "67–68", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 23B." + }, + { + "measure": "69", + "system": "", + "position": "Taktanfang", + "comment": "Geltungsstrichelung auf Rasur (bis tempo)." + }, + { + "measure": "69
bis 74", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "71
bis 73", + "system": "Klav.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "measure": "73", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur (bis Taktende)." + }, + { + "measure": "74
bis 75", + "system": "Klav.", + "position": "1/4
1/4", + "comment": "Bogen rasiert. Bogen T. 74 1–2/4 auf Rasur." + }, + { + "measure": "75
bis 76", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "76", + "system": "Ges.", + "position": "", + "comment": "< > auf Rasur." + }, + { + "measure": "76", + "system": "", + "position": "2/4", + "comment": "tempo I. [...] auf Rasur (ab Taktanfang)." + }, + { + "measure": "nach 78", + "system": "", + "position": "", + "comment": "Bleistifteintragung 2’ nach dem Schlusstaktstrich radiert." + } + ] + } + ] + } + ] } }, { From 10797f92c39dfcc11d328aaca9b69114563929ce Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 12:01:51 +0200 Subject: [PATCH 073/213] fix(assets): fix formatting of corrections --- .../1/section/5/op12/source-description.json | 510 ++--- .../1/section/5/op25/source-description.json | 1818 ++++++++--------- 2 files changed, 1165 insertions(+), 1163 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index 53ee147a20..acb261cb09 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1594,260 +1594,262 @@ } ], "corrections": [ - { - "id": "source_Ca_corr", - "label": "Korrekturen in Ca", - "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 2."], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "3", - "system": "Ges.", - "position": "5/8", - "comment": "Rasur über System." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "1. Note", - "comment": "Auf Rasur." - }, - { - "measure": "5", - "system": "Ges.", - "position": "3–4/8", - "comment": "e1 und fis1 überschreiben nicht zu identifizierende Tonhöhen." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "2/8", - "comment": "Auf Rasur." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "3/8", - "comment": "Staccatopunkt auf Rasur." - }, - { - "measure": "8", - "system": "Ges.", - "position": "3–4/8", - "comment": "Auf Rasur." - }, - { - "measure": "9", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Crescendogabel gestrichen." - }, - { - "measure": "9", - "system": "Klav.", - "position": "4/8", - "comment": "Ped. gestrichen mit blauer Tinte." - }, - { - "measure": "10", - "system": "Klav. u.", - "position": "", - "comment": "Rasuren unter dem System." - }, - { - "measure": "10", - "system": "Klav.", - "position": "2/4", - "comment": "Pedalaufhebung gestrichen mit blauer Tinte." - }, - { - "measure": "11
bis 12", - "system": "", - "position": "", - "comment": "sehr langsam in T. 11 3/4 gestrichen und geändert zu rit. (T. 11), molto (T. 12) und Geltungsstrichelung mit blauer Tinte." - }, - { - "measure": "11", - "system": "Klav. o.", - "position": "1. Note", - "comment": "({{ref.getGlyph('[b]')}}) zu es1/as1 gestrichen mit blauer Tinte.
zögernd gestrichen mit blauer Tinte." - }, - { - "measure": "11", - "system": "Klav. o.", - "position": "1. Note", - "comment": "Crescendogabel geändert zu Decrescendogabel mit Bleistift." - }, - { - "measure": "11", - "system": "Klav. u.", - "position": "1. Note", - "comment": "({{ref.getGlyph('[a]')}}) zu F/e gestrichen mit blauer Tinte." - }, - { - "measure": "13", - "system": "", - "position": "Taktanfang", - "comment": "I. Zeitmaß geändert zu tempo mit blauer Tinte." - }, - { - "measure": "13", - "system": "Ges.", - "position": "1/8", - "comment": "Auf Rasur." - }, - { - "measure": "13", - "system": "Ges.", - "position": "", - "comment": "Rasur über dem System." - }, - { - "measure": "14", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Crescendogabel gestrichen mit blauer Tinte." - }, - { - "measure": "14", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" - }, - { - "measure": "14", - "system": "Klav. u.", - "position": "1/8", - "comment": "Auf Rasur.
({{ref.getGlyph('[a]')}}) zu e/a gestrichen mit blauer Tinte." - }, - { - "measure": "14
bis 15", - "system": "Ges.", - "position": "4. Note
2/8", - "comment": "Crescendogabel ergänzt mit blauer Tinte." - }, - { - "measure": "15", - "system": "Klav. o.", - "position": "(2/4)", - "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" - }, - { - "measure": "15", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Auf Rasur." - }, - { - "measure": "15", - "system": "Klav. u.", - "position": "4/8", - "comment": "Auf Rasur." - }, - { - "measure": "16", - "system": "Klav. o.", - "position": "3/4", - "comment": "Unterstimmenschicht: fis1 geändert zu ges1." - }, - { - "measure": "16", - "system": "Klav. u.", - "position": "3/4", - "comment": "cis geändert zu des." - }, - { - "measure": "17", - "system": "Klav. o.", - "position": "1. Note", - "comment": "Crescendogabel gestrichen mit Bleistift." - }, - { - "measure": "17", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Unterstimmenschicht: des1/ges1 überschreibt cis1/fis1; Pfeil zu Notennamen ges | des am rechten Seitenrand. " - }, - { - "measure": "20", - "system": "Klav. o.", - "position": "(2/4)", - "comment": "Decrescendogabel gestrichen mit blauer Tinte." - }, - { - "measure": "21", - "system": "Klav. o.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}} mit blauer Tinte." - }, - { - "measure": "21
bis 22", - "system": "Klav. o.", - "position": "1. Note
2/4", - "comment": "Legatobogen ergänzt mit Bleistift." - }, - { - "measure": "22", - "system": "Klav. o.", - "position": "1/4", - "comment": "({{ref.getGlyph('[b]')}}) zu es1 und ({{ref.getGlyph('[a]')}}) zu c2 (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." - }, - { - "measure": "22", - "system": "Klav. o.", - "position": "1–2/4", - "comment": "Decrescendogabel gestrichen mit Bleistift." - }, - { - "measure": "22", - "system": "Klav. u.", - "position": "", - "comment": "({{ref.getGlyph('[a]')}}) zu H/g (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." - }, - { - "measure": "22", - "system": "Klav. o.", - "position": "2/4", - "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit blauer Tinte." - }, - { - "measure": "22
bis 23", - "system": "Klav. o.", - "position": "2/4", - "comment": "Gis1/Cis geändert zu As1/Des." - } - ] - } - ] - }, - { - "id": "source_Cb_corr", - "label": "Korrekturen in Cb", - "description": [ - "Cb weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von Die geheimnisvolle Flöte M 217. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." - ], - "comments": [ ] - }, - { - "id": "source_Cc_corr", - "label": "Korrekturen in Cc", - "description": [ - "Cc weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur bzw. auf Tektur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von „Schien mir’s, als ich sah die Sonne“ M 213. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." - ], - "comments": [ ] - }, - { - "id": "source_Cd_corr", - "label": "Korrekturen in Cd", - "description": [ - "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der verschiedenen Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu den beiden edierten Textfassungen nicht praktikabel ist." - ], - "comments": [ ] - } - ] -} + { + "id": "source_Ca_corr", + "label": "Korrekturen in Ca", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Der Tag ist vergangen“ M 212: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "3", + "system": "Ges.", + "position": "5/8", + "comment": "Rasur über System." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3–4/8", + "comment": "e1 und fis1 überschreiben nicht zu identifizierende Tonhöhen." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "2/8", + "comment": "Auf Rasur." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "3/8", + "comment": "Staccatopunkt auf Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3–4/8", + "comment": "Auf Rasur." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Crescendogabel gestrichen." + }, + { + "measure": "9", + "system": "Klav.", + "position": "4/8", + "comment": "Ped. gestrichen mit blauer Tinte." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "", + "comment": "Rasuren unter dem System." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2/4", + "comment": "Pedalaufhebung gestrichen mit blauer Tinte." + }, + { + "measure": "11
bis 12", + "system": "", + "position": "", + "comment": "sehr langsam in T. 11 3/4 gestrichen und geändert zu rit. (T. 11), molto (T. 12) und Geltungsstrichelung mit blauer Tinte." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "({{ref.getGlyph('[b]')}}) zu es1/as1 gestrichen mit blauer Tinte.
zögernd gestrichen mit blauer Tinte." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Crescendogabel geändert zu Decrescendogabel mit Bleistift." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "1. Note", + "comment": "({{ref.getGlyph('[a]')}}) zu F/e gestrichen mit blauer Tinte." + }, + { + "measure": "13", + "system": "", + "position": "Taktanfang", + "comment": "I. Zeitmaß geändert zu tempo mit blauer Tinte." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur." + }, + { + "measure": "13", + "system": "Ges.", + "position": "", + "comment": "Rasur über dem System." + }, + { + "measure": "14", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Crescendogabel gestrichen mit blauer Tinte." + }, + { + "measure": "14", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "1/8", + "comment": "Auf Rasur.
({{ref.getGlyph('[a]')}}) zu e/a gestrichen mit blauer Tinte." + }, + { + "measure": "14
bis 15", + "system": "Ges.", + "position": "4. Note
2/8", + "comment": "Crescendogabel ergänzt mit blauer Tinte." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "(2/4)", + "comment": "Triolenklammer hinzugefügt mit Bleistift (Hs.?)" + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Auf Rasur." + }, + { + "measure": "15", + "system": "Klav. u.", + "position": "4/8", + "comment": "Auf Rasur." + }, + { + "measure": "16", + "system": "Klav. o.", + "position": "3/4", + "comment": "Unterstimmenschicht: fis1 geändert zu ges1." + }, + { + "measure": "16", + "system": "Klav. u.", + "position": "3/4", + "comment": "cis geändert zu des." + }, + { + "measure": "17", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Crescendogabel gestrichen mit Bleistift." + }, + { + "measure": "17", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Unterstimmenschicht: des1/ges1 überschreibt cis1/fis1; Pfeil zu Notennamen ges | des am rechten Seitenrand. " + }, + { + "measure": "20", + "system": "Klav. o.", + "position": "(2/4)", + "comment": "Decrescendogabel gestrichen mit blauer Tinte." + }, + { + "measure": "21", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} geändert zu {{ref.getGlyph('[pp]')}} mit blauer Tinte." + }, + { + "measure": "21
bis 22", + "system": "Klav. o.", + "position": "1. Note
2/4", + "comment": "Legatobogen ergänzt mit Bleistift." + }, + { + "measure": "22", + "system": "Klav. o.", + "position": "1/4", + "comment": "({{ref.getGlyph('[b]')}}) zu es1 und ({{ref.getGlyph('[a]')}}) zu c2 (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." + }, + { + "measure": "22", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Decrescendogabel gestrichen mit Bleistift." + }, + { + "measure": "22", + "system": "Klav. u.", + "position": "", + "comment": "({{ref.getGlyph('[a]')}}) zu H/g (nach Akkoladenwechsel) gestrichen mit Bleistift (Hs. ?)." + }, + { + "measure": "22", + "system": "Klav. o.", + "position": "2/4", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit blauer Tinte." + }, + { + "measure": "22
bis 23", + "system": "Klav. o.", + "position": "2/4", + "comment": "Gis1/Cis geändert zu As1/Des." + } + ] + } + ] + }, + { + "id": "source_Cb_corr", + "label": "Korrekturen in Cb", + "description": [ + "Cb weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von Die geheimnisvolle Flöte M 217. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + ], + "comments": [] + }, + { + "id": "source_Cc_corr", + "label": "Korrekturen in Cc", + "description": [ + "Cc weist zwei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur bzw. auf Tektur (Korrekturen 1) und mit Bleistift (Korrekturen 2). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar. Korrekturen 2 betreffen die Überarbeitung zu der in F etablierten Textfassung von „Schien mir’s, als ich sah die Sonne“ M 213. Auf eine tabellarische Darstellung der beiden Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu der edierten einzigen Textfassung nicht praktikabel ist." + ], + "comments": [] + }, + { + "id": "source_Cd_corr", + "label": "Korrekturen in Cd", + "description": [ + "Cd weist drei voneinander unterscheidbare Korrekturschichten auf: mit Tinte ggf. auf Rasur (Korrekturen 1), mit Bleistift (Korrekturen 2) und mit Kopierstift (Korrekturen 3). Der Zustand vor und nach Korrekturen 1 ist nicht eindeutig entzifferbar, post correcturam entspricht er in weiten Teilen Textfassung 1 von Gleich und Gleich („Ein Blumenglöckchen“) M 216. Korrekturen 2 und 3 betreffen die Überarbeitung zu der in F etablierten Textfassung 2. Auf eine tabellarische Darstellung der verschiedenen Korrekturschichten wird verzichtet, da sie auf Grund der zahlreichen Abweichungen der Grundschicht zu den beiden edierten Textfassungen nicht praktikabel ist." + ], + "comments": [] + } + ] + } }, { "id": "source_D", diff --git a/src/assets/data/edition/series/1/section/5/op25/source-description.json b/src/assets/data/edition/series/1/section/5/op25/source-description.json index 2d4a5512a7..19da8237f3 100644 --- a/src/assets/data/edition/series/1/section/5/op25/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op25/source-description.json @@ -2182,915 +2182,915 @@ } ], "corrections": [ - { - "id": "source_E_corr1", - "label": "Korrekturen 1 in E", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Wie bin ich froh“ M 317: Textfassung 1." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "(5/8)", - "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 1 5/8. Siehe TkA zu 4/8." - }, - { - "measure": "10", - "system": "", - "position": "(3/4)", - "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 10 3/4 zu Taktanfang." - }, - { - "measure": "11
bis 12", - "system": "", - "position": "(4/4)", - "comment": "T. 11 4/4 wurde zum Teil auf handgezogenen Systemen am Akkoladenende ergänzt; am vom Systemanfang nach rechts verschobenen Akkoladenanfang vor T. 12 steht eine großflächige Rasur; weitere Rasuren in T. 12 Ges.; radierter Taktstrich nach T. 12 2/8. Ante correcturam: vermutlich eine dreitaktige Variante (T. [11–13]) mit Taktstrichen nach T. 11 6/8 (vor T. [12]) und nach T. 12 2/8 (vor T. [13]). Siehe M 317 Sk4 T. 13–15." - }, - { - "measure": "12", - "system": "Klav. u.", - "position": "2.–5. Note", - "comment": "Auf Rasur. Ante correcturam: Tonhöhen vermutlich im Violinschlüssel notiert. Siehe M 317 Sk4 T. 13–15." - } - ] - } - ] - }, - { - "id": "source_E_corr2", - "label": "Korrekturen 2 in E", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Drei Lieder nach Gedichten von Hildegard Jone op. 25." - ], - "comments": [ - { - "blockHeader": "I „Wie bin ich froh“ M 317", - "blockComments": [ - { - "measure": "1", - "system": "Klav.", - "position": "5–6/8", - "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." - }, - { - "measure": "2", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "3", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "3", - "system": "Ges.", - "position": "5–6/8", - "comment": "Tenutostriche rasiert (siehe Textfassung 1)." - }, - { - "measure": "vor 4", - "system": "Klav. u.", - "position": "", - "comment": "Violinschlüssel versetzt von T. 4 vor 1. Note (dort Rasur; siehe Textfassung 1)." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "4", - "system": "Ges.", - "position": "8/8", - "comment": "Tenutostrich rasiert (siehe Textfassung 1)." - }, - { - "measure": "5", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "5
bis 6", - "system": "Klav.", - "position": "5/8
1/8", - "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." - }, - { - "measure": "6", - "system": "Klav.", - "position": "2. Note", - "comment": "Bleistiftskizzen über und unter der Akkolade (System 5 und 9) rasiert." - }, - { - "measure": "6
bis 7", - "system": "Ges.", - "position": "2. Note
2/8", - "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 7 1–2/8 im Zusammenhang mit dieser Korrektur." - }, - { - "measure": "7", - "system": "Ges.", - "position": "4–6/8", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "nach 3/8", - "comment": "Violinschlüssel versetzt von vor 2. Note (dort Rasur; siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1.–4. Note", - "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 8 3.–4. Note im Zusammenhang mit dieser Korrektur." - }, - { - "measure": "8", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Tenutostriche rasiert (siehe Textfassung 1)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "3.–5. Note", - "comment": "Tenutostriche rasiert (siehe Textfassung 1)." - }, - { - "measure": "9
bis 10", - "system": "Ges.", - "position": "8/8
2/8", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "10", - "system": "Ges.", - "position": "3.–5. Note", - "comment": "Bogen rasiert (siehe Textfassung 1)." - }, - { - "measure": "11", - "system": "Ges.", - "position": "6/8", - "comment": "Tenutostrich rasiert (siehe Textfassung 1)." - }, - { - "measure": "12", - "system": "", - "position": "Taktanfang", - "comment": "tempo I. ersetzt wieder tempo I. auf Rasur (siehe Textfassung 1)." - } - ] - }, - { - "blockHeader": "II „Des Herzens Purpurvogel“ M 322", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "Metronomangabe auf Rasur." - }, - { - "measure": "2", - "system": "Klav. u.", - "position": "1/16", - "comment": "Auf Rasur." - }, - { - "measure": "3", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "3
bis 6", - "system": "Ges.", - "position": "6/16
3/8", - "comment": "Bogen rasiert." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "1–2/8", - "comment": "Auf Rasur. Ante correcturam: Hals- und Bogenausrichtung umgekehrt?" - }, - { - "measure": "7
bis 8", - "system": "Ges.", - "position": "2/8
2/8", - "comment": "Bogen rasiert." - }, - { - "measure": "9", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "10", - "system": "Klav. u.", - "position": "1/16", - "comment": "{{ref.getGlyph('[f]')}} auf Rasur." - }, - { - "measure": "10", - "system": "", - "position": "4/16", - "comment": "rit. auf Rasur." - }, - { - "measure": "10
bis 11", - "system": "Ges.", - "position": "6/16
3/8", - "comment": "Bogen rasiert." - }, - { - "measure": "11", - "system": "Klav.", - "position": "2–6/16", - "comment": "Auf Rasur. Bleistiftskizzen über und unter dem Klav.-System (System 4 und 7) radiert." - }, - { - "measure": "12", - "system": "Ges.", - "position": "2–3/8", - "comment": "Bogen rasiert." - }, - { - "measure": "13", - "system": "Klav.", - "position": "", - "comment": "Crescendo- und Decrescendogabel auf Rasur." - }, - { - "measure": "13
bis 14", - "system": "Ges.", - "position": "2/8
6/16", - "comment": "Bogen rasiert." - }, - { - "measure": "15", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "15", - "system": "Klav.", - "position": "1–5/16", - "comment": "Rasur zwischen den Systemen. Ante correcturam: Gabel?" - }, - { - "measure": "16", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "16
bis 17", - "system": "Ges.", - "position": "3/8
6/16", - "comment": "Bogen rasiert." - }, - { - "measure": "16", - "system": "Klav. u.", - "position": "3/8", - "comment": "{{ref.getGlyph('[f]')}} auf Rasur." - }, - { - "measure": "16
bis 17", - "system": "Klav. u.", - "position": "3/8
1/16", - "comment": "Auf Rasur." - }, - { - "measure": "18
bis 19", - "system": "Ges.", - "position": "2/16
2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "19", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "20", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "21", - "system": "Klav. o.", - "position": "1/16", - "comment": "Auf Rasur." - }, - { - "measure": "21", - "system": "Klav. u.", - "position": "2/16", - "comment": "Auf Rasur." - }, - { - "measure": "23–24", - "system": "", - "position": "", - "comment": "rit. - - - tempo auf Rasur (bis Ende T. 24)." - }, - { - "measure": "23", - "system": "Ges.", - "position": "2/16–2/8", - "comment": "Bogen rasiert." - }, - { - "measure": "23
bis 24", - "system": "Ges.", - "position": "3/8
1. Note", - "comment": "Anfang der Decrescendogabel auf Rasur. Ante correcturam: Ausdehnung der Gabel von T. 23 2/8 bis Taktende?" - }, - { - "measure": "23
bis 24", - "system": "Klav. o.", - "position": "6/16
1/16", - "comment": "Auf Rasur. Ante correcturam: ges1? (Siehe M 322 Sk4 T. 12.)" - }, - { - "measure": "24", - "system": "Klav. u.", - "position": "2/8", - "comment": "Auf Rasur." - }, - { - "measure": "25
bis 26", - "system": "Ges.", - "position": "1. Note
3/8", - "comment": "Bogen rasiert." - }, - { - "measure": "26", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "27", - "system": "Klav.", - "position": "2.–3. Note", - "comment": "Auf Rasur." - }, - { - "measure": "27
bis 28", - "system": "Ges.", - "position": "4/16
2/16", - "comment": "Bogen rasiert. Crescendo- (T. 27 3/8) und Decrescendogabel auf Rasur." - }, - { - "measure": "27
bis 28", - "system": "Klav.", - "position": "6/16
2/16", - "comment": "Bogen auf Rasur." - }, - { - "measure": "29", - "system": "Ges.", - "position": "2–3/16", - "comment": "Bogen rasiert." - }, - { - "measure": "29
bis 30", - "system": "Ges.", - "position": "4/16
4/16", - "comment": "Bogen rasiert." - }, - { - "measure": "30", - "system": "", - "position": "6/16", - "comment": "tempo auf Rasur." - }, - { - "measure": "30
bis 31", - "system": "Ges.", - "position": "6/16
3/16", - "comment": "Bogen rasiert." - }, - { - "measure": "31", - "system": "", - "position": "2/16", - "comment": "rit. auf Rasur." - }, - { - "measure": "32", - "system": "", - "position": "Taktanfang", - "comment": "Geltungsstrichelung von rit. (T. 31) auf Rasur." - }, - { - "measure": "33", - "system": "", - "position": "Taktanfang", - "comment": "langsamer auf Rasur." - }, - { - "measure": "33", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "33", - "system": "Ges.", - "position": "5–6/16", - "comment": "Bogen rasiert." - }, - { - "measure": "34", - "system": "Klav.", - "position": "2–4/16", - "comment": "Bogen rasiert. Staccatopunkt zu 4/16 auf Rasur." - }, - { - "measure": "34", - "system": "Ges.", - "position": "4/16–3/8", - "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." - }, - { - "measure": "35", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "35", - "system": "Ges.", - "position": "2–4/16", - "comment": "Bogen rasiert." - }, - { - "measure": "36", - "system": "Klav.", - "position": "2–4/16", - "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." - }, - { - "measure": "37", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "37", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "37", - "system": "Klav.", - "position": "2/16", - "comment": "{{ref.getGlyph('[pp]')}} auf Rasur." - }, - { - "measure": "38", - "system": "", - "position": "3/16", - "comment": "immer langsamer auf Rasur." - }, - { - "measure": "38", - "system": "Klav. o.", - "position": "3/8", - "comment": "{{ref.getGlyph('[p]')}} auf Rasur." - }, - { - "measure": "39", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." - }, - { - "measure": "39", - "system": "Klav. u.", - "position": "2/8–6/16", - "comment": "Auf Rasur." - }, - { - "measure": "40", - "system": "", - "position": "Taktanfang", - "comment": "Rasur über Akkolade. Ante correcturam: Tempoangabe?" - }, - { - "measure": "40", - "system": "Ges.", - "position": "2–5/16", - "comment": "Bogen rasiert." - }, - { - "measure": "40", - "system": "Klav.", - "position": "4–6/16", - "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." - }, - { - "measure": "41", - "system": "", - "position": "Taktanfang", - "comment": "verlöschend auf Rasur." - }, - { - "measure": "41", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen rasiert. Silbenbogen 2.–3. Note auf Rasur.
{{ref.getGlyph('[pp]')}}, Decrescendogabel (?) rasiert." - }, - { - "measure": "nach 42", - "system": "", - "position": "", - "comment": "Bleistiftnotiz nach Schlusstaktstrich radiert." - } - ] - }, - { - "blockHeader": "III „Sterne, ihr silbernen Bienen“ M 321", - "blockComments": [ - { - "measure": "4–6", - "system": "Ges.", - "position": "", - "comment": "Bogen rasiert." - }, - { - "measure": "8", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur." - }, - { - "measure": "9
bis 14", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "13", - "system": "", - "position": "Taktanfang", - "comment": "rit. auf Rasur. Siehe M 321 Sk8 T. 5: calando." - }, - { - "measure": "13
bis 14", - "system": "Klav.", - "position": "2/4
2/4", - "comment": "Auf Rasur." - }, - { - "measure": "15
bis 16", - "system": "Ges.", - "position": "2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "15–21", - "system": "Klav.", - "position": "", - "comment": "Teilweise auf Rasur. Ante correcturam: alternative Aufteilung der Noten auf die Systeme?" - }, - { - "measure": "17", - "system": "", - "position": "", - "comment": "Geltungstrichelung von rit. (T. 13) und viel mäßiger (2/4) auf Rasur. Siehe M 321 Sk8 T. 6 2. TH: tempo." - }, - { - "measure": "17
bis 20", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "19", - "system": "Klav. u.", - "position": "", - "comment": "Bleistifteintragung (Text) radiert." - }, - { - "measure": "20", - "system": "", - "position": "", - "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" - }, - { - "measure": "21", - "system": "Ges.", - "position": "1/4", - "comment": "Viertelpause ersetzt Viertelnote e2 mit Ligaturbogen von T. 20 2/4 auf Rasur." - }, - { - "measure": "22", - "system": "", - "position": "Taktanfang", - "comment": "rit. - - - auf Rasur. Siehe M 321 Sk8 T. 8A: calando." - }, - { - "measure": "22–24", - "system": "Ges.", - "position": "", - "comment": "Bogen rasiert." - }, - { - "measure": "26–28", - "system": "", - "position": "", - "comment": "Bleistifteintragung (Text) radiert." - }, - { - "measure": "28", - "system": "", - "position": "", - "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" - }, - { - "measure": "29
bis 31", - "system": "", - "position": "Taktanfang
1/4", - "comment": "rit.- - - auf Rasur." - }, - { - "measure": "29
bis 30", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "31", - "system": "", - "position": "2/4", - "comment": "wieder viel mäßiger auf Rasur." - }, - { - "measure": "31
bis 33", - "system": "Ges.", - "position": "2/4
1/4", - "comment": "Bogen rasiert." - }, - { - "measure": "33
bis 34", - "system": "Ges.", - "position": "2/4
2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "34", - "system": "Klav. o.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Bleistiftskizze im System darüber radiert." - }, - { - "measure": "35", - "system": "", - "position": "Taktanfang", - "comment": "rit. - - - auf Rasur." - }, - { - "measure": "35", - "system": "Klav. u.", - "position": "1/4", - "comment": "Auf Rasur." - }, - { - "measure": "35
bis 36", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "37", - "system": "", - "position": "Taktanfang", - "comment": "tempo I. auf Rasur." - }, - { - "measure": "37
bis 38", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "39", - "system": "", - "position": "2/4", - "comment": "rit. - - - auf Rasur (ab Taktanfang)." - }, - { - "measure": "39
bis 41", - "system": "Ges.", - "position": "2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "42
bis 45", - "system": "Ges.", - "position": "1. Note
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "43", - "system": "Klav. u.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Siehe M 321 Sk8 T. 15: h–b1." - }, - { - "measure": "46
bis 49", - "system": "Ges.", - "position": "1. Note
2. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "48
bis 49", - "system": "Ges.", - "position": "2. Note
2. Note", - "comment": "Drecrescendogabel auf Rasur." - }, - { - "measure": "48
bis 49", - "system": "Klav.", - "position": "2/4
2/4", - "comment": "Drecrescendogabel auf Rasur." - }, - { - "measure": "50
bis 51", - "system": "Ges.", - "position": "1. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "51", - "system": "", - "position": "2/4", - "comment": "tempo auf Rasur (ab Taktanfang)." - }, - { - "measure": "51", - "system": "Klav. u.", - "position": "2/4", - "comment": "Auf Rasur." - }, - { - "measure": "55", - "system": "Klav. o.", - "position": "vor 2/4", - "comment": "Rasur. Siehe M 321 Sk8 T. 19B vor 2/8: Vorschlagsnote e1." - }, - { - "measure": "56", - "system": "", - "position": "Taktanfang", - "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" - }, - { - "measure": "56", - "system": "Ges.", - "position": "2/4", - "comment": "{{ref.getGlyph('[ff]')}} auf Rasur. Siehe M 321 Sk8 T. 19B 1. Note: {{ref.getGlyph('[f]')}}." - }, - { - "measure": "57", - "system": "", - "position": "", - "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" - }, - { - "measure": "57", - "system": "Klav.", - "position": "", - "comment": "Auf Rasur. Siehe M 321 Sk8 T. 19B 2. TH." - }, - { - "measure": "58
bis 60", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "61", - "system": "", - "position": "Taktanfang", - "comment": "wieder viel mäßiger auf Rasur (bis Ende T.63)." - }, - { - "measure": "61
bis 63", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "62
bis 63", - "system": "Klav. u.", - "position": "2/4
2/4", - "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." - }, - { - "measure": "63
bis 64", - "system": "Klav. o.", - "position": "1/4
1/4", - "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." - }, - { - "measure": "65
bis 68", - "system": "Ges.", - "position": "2/4
1/4", - "comment": "Bogen rasiert." - }, - { - "measure": "67", - "system": "", - "position": "Taktanfang", - "comment": "rit. - - - auf Rasur." - }, - { - "measure": "67–68", - "system": "Klav.", - "position": "", - "comment": "Auf Rasur. Siehe M 321 Sk8 T. 23B." - }, - { - "measure": "69", - "system": "", - "position": "Taktanfang", - "comment": "Geltungsstrichelung auf Rasur (bis tempo)." - }, - { - "measure": "69
bis 74", - "system": "Ges.", - "position": "2/4
2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "71
bis 73", - "system": "Klav.", - "position": "1/4", - "comment": "Auf Rasur." - }, - { - "measure": "73", - "system": "", - "position": "Taktanfang", - "comment": "rit. - - - auf Rasur (bis Taktende)." - }, - { - "measure": "74
bis 75", - "system": "Klav.", - "position": "1/4
1/4", - "comment": "Bogen rasiert. Bogen T. 74 1–2/4 auf Rasur." - }, - { - "measure": "75
bis 76", - "system": "Ges.", - "position": "2/4", - "comment": "Bogen rasiert." - }, - { - "measure": "76", - "system": "Ges.", - "position": "", - "comment": "< > auf Rasur." - }, - { - "measure": "76", - "system": "", - "position": "2/4", - "comment": "tempo I. [...] auf Rasur (ab Taktanfang)." - }, - { - "measure": "nach 78", - "system": "", - "position": "", - "comment": "Bleistifteintragung 2’ nach dem Schlusstaktstrich radiert." - } - ] - } - ] - } - ] + { + "id": "source_E_corr1", + "label": "Korrekturen 1 in E", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Wie bin ich froh“ M 317: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "(5/8)", + "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 1 5/8. Siehe TkA zu 4/8." + }, + { + "measure": "10", + "system": "", + "position": "(3/4)", + "comment": "Geltungsstrichelung von rit. auf Rasur. Ante correcturam: rit. vermutlich versetzt von T. 10 3/4 zu Taktanfang." + }, + { + "measure": "11
bis 12", + "system": "", + "position": "(4/4)", + "comment": "T. 11 4/4 wurde zum Teil auf handgezogenen Systemen am Akkoladenende ergänzt; am vom Systemanfang nach rechts verschobenen Akkoladenanfang vor T. 12 steht eine großflächige Rasur; weitere Rasuren in T. 12 Ges.; radierter Taktstrich nach T. 12 2/8. Ante correcturam: vermutlich eine dreitaktige Variante (T. [11–13]) mit Taktstrichen nach T. 11 6/8 (vor T. [12]) und nach T. 12 2/8 (vor T. [13]). Siehe M 317 Sk4 T. 13–15." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "2.–5. Note", + "comment": "Auf Rasur. Ante correcturam: Tonhöhen vermutlich im Violinschlüssel notiert. Siehe M 317 Sk4 T. 13–15." + } + ] + } + ] + }, + { + "id": "source_E_corr2", + "label": "Korrekturen 2 in E", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Drei Lieder nach Gedichten von Hildegard Jone op. 25." + ], + "comments": [ + { + "blockHeader": "I „Wie bin ich froh“ M 317", + "blockComments": [ + { + "measure": "1", + "system": "Klav.", + "position": "5–6/8", + "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "vor 4", + "system": "Klav. u.", + "position": "", + "comment": "Violinschlüssel versetzt von T. 4 vor 1. Note (dort Rasur; siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "8/8", + "comment": "Tenutostrich rasiert (siehe Textfassung 1)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "5
bis 6", + "system": "Klav.", + "position": "5/8
1/8", + "comment": "Auf Rasur. Ante correcturam: Aufteilung der Noten auf die Systeme vermutlich wie in Textfassung 1." + }, + { + "measure": "6", + "system": "Klav.", + "position": "2. Note", + "comment": "Bleistiftskizzen über und unter der Akkolade (System 5 und 9) rasiert." + }, + { + "measure": "6
bis 7", + "system": "Ges.", + "position": "2. Note
2/8", + "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 7 1–2/8 im Zusammenhang mit dieser Korrektur." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4–6/8", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "nach 3/8", + "comment": "Violinschlüssel versetzt von vor 2. Note (dort Rasur; siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Bogen rasiert (siehe Textfassung 1). Möglicherweise steht der Silbenbogen in T. 8 3.–4. Note im Zusammenhang mit dieser Korrektur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Tenutostriche rasiert (siehe Textfassung 1)." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "8/8
2/8", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Bogen rasiert (siehe Textfassung 1)." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/8", + "comment": "Tenutostrich rasiert (siehe Textfassung 1)." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "tempo I. ersetzt wieder tempo I. auf Rasur (siehe Textfassung 1)." + } + ] + }, + { + "blockHeader": "II „Des Herzens Purpurvogel“ M 322", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Metronomangabe auf Rasur." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "1/16", + "comment": "Auf Rasur." + }, + { + "measure": "3", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "3
bis 6", + "system": "Ges.", + "position": "6/16
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Auf Rasur. Ante correcturam: Hals- und Bogenausrichtung umgekehrt?" + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "2/8
2/8", + "comment": "Bogen rasiert." + }, + { + "measure": "9", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "1/16", + "comment": "{{ref.getGlyph('[f]')}} auf Rasur." + }, + { + "measure": "10", + "system": "", + "position": "4/16", + "comment": "rit. auf Rasur." + }, + { + "measure": "10
bis 11", + "system": "Ges.", + "position": "6/16
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "11", + "system": "Klav.", + "position": "2–6/16", + "comment": "Auf Rasur. Bleistiftskizzen über und unter dem Klav.-System (System 4 und 7) radiert." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "13", + "system": "Klav.", + "position": "", + "comment": "Crescendo- und Decrescendogabel auf Rasur." + }, + { + "measure": "13
bis 14", + "system": "Ges.", + "position": "2/8
6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "15", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "15", + "system": "Klav.", + "position": "1–5/16", + "comment": "Rasur zwischen den Systemen. Ante correcturam: Gabel?" + }, + { + "measure": "16", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "16
bis 17", + "system": "Ges.", + "position": "3/8
6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "16", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('[f]')}} auf Rasur." + }, + { + "measure": "16
bis 17", + "system": "Klav. u.", + "position": "3/8
1/16", + "comment": "Auf Rasur." + }, + { + "measure": "18
bis 19", + "system": "Ges.", + "position": "2/16
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "19", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "20", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "21", + "system": "Klav. o.", + "position": "1/16", + "comment": "Auf Rasur." + }, + { + "measure": "21", + "system": "Klav. u.", + "position": "2/16", + "comment": "Auf Rasur." + }, + { + "measure": "23–24", + "system": "", + "position": "", + "comment": "rit. - - - tempo auf Rasur (bis Ende T. 24)." + }, + { + "measure": "23", + "system": "Ges.", + "position": "2/16–2/8", + "comment": "Bogen rasiert." + }, + { + "measure": "23
bis 24", + "system": "Ges.", + "position": "3/8
1. Note", + "comment": "Anfang der Decrescendogabel auf Rasur. Ante correcturam: Ausdehnung der Gabel von T. 23 2/8 bis Taktende?" + }, + { + "measure": "23
bis 24", + "system": "Klav. o.", + "position": "6/16
1/16", + "comment": "Auf Rasur. Ante correcturam: ges1? (Siehe M 322 Sk4 T. 12.)" + }, + { + "measure": "24", + "system": "Klav. u.", + "position": "2/8", + "comment": "Auf Rasur." + }, + { + "measure": "25
bis 26", + "system": "Ges.", + "position": "1. Note
3/8", + "comment": "Bogen rasiert." + }, + { + "measure": "26", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "27", + "system": "Klav.", + "position": "2.–3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "27
bis 28", + "system": "Ges.", + "position": "4/16
2/16", + "comment": "Bogen rasiert. Crescendo- (T. 27 3/8) und Decrescendogabel auf Rasur." + }, + { + "measure": "27
bis 28", + "system": "Klav.", + "position": "6/16
2/16", + "comment": "Bogen auf Rasur." + }, + { + "measure": "29", + "system": "Ges.", + "position": "2–3/16", + "comment": "Bogen rasiert." + }, + { + "measure": "29
bis 30", + "system": "Ges.", + "position": "4/16
4/16", + "comment": "Bogen rasiert." + }, + { + "measure": "30", + "system": "", + "position": "6/16", + "comment": "tempo auf Rasur." + }, + { + "measure": "30
bis 31", + "system": "Ges.", + "position": "6/16
3/16", + "comment": "Bogen rasiert." + }, + { + "measure": "31", + "system": "", + "position": "2/16", + "comment": "rit. auf Rasur." + }, + { + "measure": "32", + "system": "", + "position": "Taktanfang", + "comment": "Geltungsstrichelung von rit. (T. 31) auf Rasur." + }, + { + "measure": "33", + "system": "", + "position": "Taktanfang", + "comment": "langsamer auf Rasur." + }, + { + "measure": "33", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "33", + "system": "Ges.", + "position": "5–6/16", + "comment": "Bogen rasiert." + }, + { + "measure": "34", + "system": "Klav.", + "position": "2–4/16", + "comment": "Bogen rasiert. Staccatopunkt zu 4/16 auf Rasur." + }, + { + "measure": "34", + "system": "Ges.", + "position": "4/16–3/8", + "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." + }, + { + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "35", + "system": "Ges.", + "position": "2–4/16", + "comment": "Bogen rasiert." + }, + { + "measure": "36", + "system": "Klav.", + "position": "2–4/16", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." + }, + { + "measure": "37", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "37", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "37", + "system": "Klav.", + "position": "2/16", + "comment": "{{ref.getGlyph('[pp]')}} auf Rasur." + }, + { + "measure": "38", + "system": "", + "position": "3/16", + "comment": "immer langsamer auf Rasur." + }, + { + "measure": "38", + "system": "Klav. o.", + "position": "3/8", + "comment": "{{ref.getGlyph('[p]')}} auf Rasur." + }, + { + "measure": "39", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert. Tenutostrich zu 3/8 auf Rasur." + }, + { + "measure": "39", + "system": "Klav. u.", + "position": "2/8–6/16", + "comment": "Auf Rasur." + }, + { + "measure": "40", + "system": "", + "position": "Taktanfang", + "comment": "Rasur über Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "40", + "system": "Ges.", + "position": "2–5/16", + "comment": "Bogen rasiert." + }, + { + "measure": "40", + "system": "Klav.", + "position": "4–6/16", + "comment": "{{ref.getGlyph('[pp]')}} und Decrescendogabel auf Rasur." + }, + { + "measure": "41", + "system": "", + "position": "Taktanfang", + "comment": "verlöschend auf Rasur." + }, + { + "measure": "41", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen rasiert. Silbenbogen 2.–3. Note auf Rasur.
{{ref.getGlyph('[pp]')}}, Decrescendogabel (?) rasiert." + }, + { + "measure": "nach 42", + "system": "", + "position": "", + "comment": "Bleistiftnotiz nach Schlusstaktstrich radiert." + } + ] + }, + { + "blockHeader": "III „Sterne, ihr silbernen Bienen“ M 321", + "blockComments": [ + { + "measure": "4–6", + "system": "Ges.", + "position": "", + "comment": "Bogen rasiert." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur." + }, + { + "measure": "9
bis 14", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "13", + "system": "", + "position": "Taktanfang", + "comment": "rit. auf Rasur. Siehe M 321 Sk8 T. 5: calando." + }, + { + "measure": "13
bis 14", + "system": "Klav.", + "position": "2/4
2/4", + "comment": "Auf Rasur." + }, + { + "measure": "15
bis 16", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "15–21", + "system": "Klav.", + "position": "", + "comment": "Teilweise auf Rasur. Ante correcturam: alternative Aufteilung der Noten auf die Systeme?" + }, + { + "measure": "17", + "system": "", + "position": "", + "comment": "Geltungstrichelung von rit. (T. 13) und viel mäßiger (2/4) auf Rasur. Siehe M 321 Sk8 T. 6 2. TH: tempo." + }, + { + "measure": "17
bis 20", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "19", + "system": "Klav. u.", + "position": "", + "comment": "Bleistifteintragung (Text) radiert." + }, + { + "measure": "20", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "21", + "system": "Ges.", + "position": "1/4", + "comment": "Viertelpause ersetzt Viertelnote e2 mit Ligaturbogen von T. 20 2/4 auf Rasur." + }, + { + "measure": "22", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur. Siehe M 321 Sk8 T. 8A: calando." + }, + { + "measure": "22–24", + "system": "Ges.", + "position": "", + "comment": "Bogen rasiert." + }, + { + "measure": "26–28", + "system": "", + "position": "", + "comment": "Bleistifteintragung (Text) radiert." + }, + { + "measure": "28", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "29
bis 31", + "system": "", + "position": "Taktanfang
1/4", + "comment": "rit.- - - auf Rasur." + }, + { + "measure": "29
bis 30", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "31", + "system": "", + "position": "2/4", + "comment": "wieder viel mäßiger auf Rasur." + }, + { + "measure": "31
bis 33", + "system": "Ges.", + "position": "2/4
1/4", + "comment": "Bogen rasiert." + }, + { + "measure": "33
bis 34", + "system": "Ges.", + "position": "2/4
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "34", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Bleistiftskizze im System darüber radiert." + }, + { + "measure": "35", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur." + }, + { + "measure": "35", + "system": "Klav. u.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "measure": "35
bis 36", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "37", + "system": "", + "position": "Taktanfang", + "comment": "tempo I. auf Rasur." + }, + { + "measure": "37
bis 38", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "39", + "system": "", + "position": "2/4", + "comment": "rit. - - - auf Rasur (ab Taktanfang)." + }, + { + "measure": "39
bis 41", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "42
bis 45", + "system": "Ges.", + "position": "1. Note
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "43", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 15: h–b1." + }, + { + "measure": "46
bis 49", + "system": "Ges.", + "position": "1. Note
2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "48
bis 49", + "system": "Ges.", + "position": "2. Note
2. Note", + "comment": "Drecrescendogabel auf Rasur." + }, + { + "measure": "48
bis 49", + "system": "Klav.", + "position": "2/4
2/4", + "comment": "Drecrescendogabel auf Rasur." + }, + { + "measure": "50
bis 51", + "system": "Ges.", + "position": "1. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "51", + "system": "", + "position": "2/4", + "comment": "tempo auf Rasur (ab Taktanfang)." + }, + { + "measure": "51", + "system": "Klav. u.", + "position": "2/4", + "comment": "Auf Rasur." + }, + { + "measure": "55", + "system": "Klav. o.", + "position": "vor 2/4", + "comment": "Rasur. Siehe M 321 Sk8 T. 19B vor 2/8: Vorschlagsnote e1." + }, + { + "measure": "56", + "system": "", + "position": "Taktanfang", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "56", + "system": "Ges.", + "position": "2/4", + "comment": "{{ref.getGlyph('[ff]')}} auf Rasur. Siehe M 321 Sk8 T. 19B 1. Note: {{ref.getGlyph('[f]')}}." + }, + { + "measure": "57", + "system": "", + "position": "", + "comment": "Rasur über der Akkolade. Ante correcturam: Tempoangabe?" + }, + { + "measure": "57", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 19B 2. TH." + }, + { + "measure": "58
bis 60", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "61", + "system": "", + "position": "Taktanfang", + "comment": "wieder viel mäßiger auf Rasur (bis Ende T.63)." + }, + { + "measure": "61
bis 63", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "62
bis 63", + "system": "Klav. u.", + "position": "2/4
2/4", + "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." + }, + { + "measure": "63
bis 64", + "system": "Klav. o.", + "position": "1/4
1/4", + "comment": "Bogen rasiert. Staccatopunkte möglicherweise nach Rasur hinzugefügt." + }, + { + "measure": "65
bis 68", + "system": "Ges.", + "position": "2/4
1/4", + "comment": "Bogen rasiert." + }, + { + "measure": "67", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur." + }, + { + "measure": "67–68", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Siehe M 321 Sk8 T. 23B." + }, + { + "measure": "69", + "system": "", + "position": "Taktanfang", + "comment": "Geltungsstrichelung auf Rasur (bis tempo)." + }, + { + "measure": "69
bis 74", + "system": "Ges.", + "position": "2/4
2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "71
bis 73", + "system": "Klav.", + "position": "1/4", + "comment": "Auf Rasur." + }, + { + "measure": "73", + "system": "", + "position": "Taktanfang", + "comment": "rit. - - - auf Rasur (bis Taktende)." + }, + { + "measure": "74
bis 75", + "system": "Klav.", + "position": "1/4
1/4", + "comment": "Bogen rasiert. Bogen T. 74 1–2/4 auf Rasur." + }, + { + "measure": "75
bis 76", + "system": "Ges.", + "position": "2/4", + "comment": "Bogen rasiert." + }, + { + "measure": "76", + "system": "Ges.", + "position": "", + "comment": "< > auf Rasur." + }, + { + "measure": "76", + "system": "", + "position": "2/4", + "comment": "tempo I. [...] auf Rasur (ab Taktanfang)." + }, + { + "measure": "nach 78", + "system": "", + "position": "", + "comment": "Bleistifteintragung 2’ nach dem Schlusstaktstrich radiert." + } + ] + } + ] + } + ] } }, { From 02bf591abfd43ae21266dcb18d0c1b2f65e73b3c Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 12:20:01 +0200 Subject: [PATCH 074/213] fix(edition): don't display table if there are no corrections --- ...rce-description-corrections.component.html | 18 +++++++++------- ...-description-corrections.component.spec.ts | 21 +++++++++++++++++-- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.html index ef750b4eca..7184ee78f8 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.html @@ -12,14 +12,16 @@ [compile-html]="description" [compile-html-ref]="ref">

} - - + @if (correction.comments.length > 0) { + + + } }
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.spec.ts index 2ec91615b4..0507481877 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description-corrections/source-description-corrections.component.spec.ts @@ -1,7 +1,9 @@ +import { DOCUMENT } from '@angular/common'; import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import Spy = jasmine.Spy; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { expectSpyCall, expectToBe, @@ -14,7 +16,6 @@ import { mockEditionData } from '@testing/mock-data'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { TextcriticalCommentBlock, Textcritics } from '@awg-views/edition-view/models'; -import { DOCUMENT } from '@angular/common'; import { SourceDescriptionCorrectionsComponent } from './source-description-corrections.component'; // Mock components @@ -222,7 +223,23 @@ describe('SourceDescriptionCorrectionsComponent (DONE)', () => { }); }); - it('... should contain one EditionTkaTableComponent in each corrections detail', () => { + it('... should contain no EditionTkaTableComponent in corrections detail if no comments are given', () => { + component.corrections[0].comments = []; + detectChangesOnPush(fixture); + + const detailsDes = getAndExpectDebugElementByCss( + compDe, + 'details.awg-source-description-correction-details', + expectedCorrections.length, + expectedCorrections.length + ); + + detailsDes.forEach((detailsDe, _index) => { + getAndExpectDebugElementByDirective(detailsDe, EditionTkaTableStubComponent, 0, 0); + }); + }); + + it('... should contain one EditionTkaTableComponent in each corrections detail if comments are given', () => { const detailsDes = getAndExpectDebugElementByCss( compDe, 'details.awg-source-description-correction-details', From d61482b61f4db2d761f5a1b77f69d2425cc98bfa Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 12:22:20 +0200 Subject: [PATCH 075/213] style(edition): highlight blockHeaders in tka tables --- .../edition-tka-table/edition-tka-table.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html index b1d6a69a5f..8dfbd10a00 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html @@ -12,7 +12,7 @@ @for (textcriticalCommentBlock of textcriticalCommentBlocks; track $index) { @if (textcriticalCommentBlock.blockHeader) { - + From 7999eab51dcdfa7a1e235eab5788e188fdfde391 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 15:36:51 +0200 Subject: [PATCH 076/213] refactor(shared): move language switcher into separate component --- .../json-viewer/json-viewer.component.spec.ts | 2 +- .../language-switcher.component.html | 5 + .../language-switcher.component.scss | 25 +++ .../language-switcher.component.spec.ts | 194 ++++++++++++++++++ .../language-switcher.component.ts | 43 ++++ src/app/shared/shared.module.ts | 3 + .../edition-preface.component.html | 7 +- .../edition-preface.component.scss | 26 --- .../edition-preface.component.spec.ts | 129 ++++-------- .../edition-sections.component.spec.ts | 4 +- src/assets/data/edition/preface.json | 4 +- 11 files changed, 316 insertions(+), 126 deletions(-) create mode 100644 src/app/shared/language-switcher/language-switcher.component.html create mode 100644 src/app/shared/language-switcher/language-switcher.component.scss create mode 100644 src/app/shared/language-switcher/language-switcher.component.spec.ts create mode 100644 src/app/shared/language-switcher/language-switcher.component.ts diff --git a/src/app/shared/json-viewer/json-viewer.component.spec.ts b/src/app/shared/json-viewer/json-viewer.component.spec.ts index 972e0578c1..ecbda16057 100644 --- a/src/app/shared/json-viewer/json-viewer.component.spec.ts +++ b/src/app/shared/json-viewer/json-viewer.component.spec.ts @@ -210,7 +210,7 @@ describe('JsonViewerComponent (DONE)', () => { }); it('... should pass down `jsonViewerData` to ngx-json-viewer component in Formatted view', () => { - const viewerDes = getAndExpectDebugElementByDirective(compDe, NgxJsonViewerStubComponent, 1, 0); + const viewerDes = getAndExpectDebugElementByDirective(compDe, NgxJsonViewerStubComponent, 1, 1); const viewerCmp = viewerDes[0].injector.get(NgxJsonViewerStubComponent) as NgxJsonViewerStubComponent; expectToEqual(viewerCmp.json, expectedData); diff --git a/src/app/shared/language-switcher/language-switcher.component.html b/src/app/shared/language-switcher/language-switcher.component.html new file mode 100644 index 0000000000..2efd06978a --- /dev/null +++ b/src/app/shared/language-switcher/language-switcher.component.html @@ -0,0 +1,5 @@ +

+ DE + | + EN +

diff --git a/src/app/shared/language-switcher/language-switcher.component.scss b/src/app/shared/language-switcher/language-switcher.component.scss new file mode 100644 index 0000000000..7ae7958331 --- /dev/null +++ b/src/app/shared/language-switcher/language-switcher.component.scss @@ -0,0 +1,25 @@ +@import '/src/assets/themes/scss/shared'; + +.awg-language-switcher { + font-family: 'Montserrat', sans-serif; + font-size: small; + text-align: end; + + a { + cursor: pointer; + text-decoration: none; + color: inherit; + // disable the active link style + &.active, + &.active:hover { + cursor: default; + color: inherit; + } + &:not(.active) { + color: $link-color; + } + &:hover { + border-bottom: none !important; + } + } +} diff --git a/src/app/shared/language-switcher/language-switcher.component.spec.ts b/src/app/shared/language-switcher/language-switcher.component.spec.ts new file mode 100644 index 0000000000..1190d8aa99 --- /dev/null +++ b/src/app/shared/language-switcher/language-switcher.component.spec.ts @@ -0,0 +1,194 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, fakeAsync, TestBed } from '@angular/core/testing'; +import Spy = jasmine.Spy; + +import { clickAndAwaitChanges } from '@testing/click-helper'; +import { expectSpyCall, expectToBe, expectToContain, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; +import { LanguageSwitcherComponent } from './language-switcher.component'; + +describe('LanguageSwitcherComponent (DONE)', () => { + let component: LanguageSwitcherComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let setLanguageSpy: Spy; + let emitLanguageChangeRequestSpy: Spy; + + let expectedLanguage: number; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [LanguageSwitcherComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(LanguageSwitcherComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedLanguage = 0; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + setLanguageSpy = spyOn(component, 'setLanguage').and.callThrough(); + emitLanguageChangeRequestSpy = spyOn(component.languageChangeRequest, 'emit').and.callThrough(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `currentLanguage`', () => { + expect(component.currentLanguage).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain 1 language-switcher paragraph', () => { + getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + }); + + it('... should contain 2 language-switcher anchor elements (DE | EN)', () => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const pEl = pDes[0].nativeElement; + + expectToBe(pEl.textContent, 'DE | EN'); + + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + const aEl1 = aDes[0].nativeElement; + const aEl2 = aDes[1].nativeElement; + + expectToBe(aEl1.textContent, 'DE'); + expectToBe(aEl2.textContent, 'EN'); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.currentLanguage = expectedLanguage; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `currentLanguage` = 0', () => { + expectToBe(component.currentLanguage, 0); + }); + + describe('VIEW', () => { + it('... should trigger `setLanguage` method on anchor click', fakeAsync(() => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + // Trigger click with click helper & wait for changes + clickAndAwaitChanges(aDes[0], fixture); + + expectSpyCall(setLanguageSpy, 1); + + // Trigger click with click helper & wait for changes + clickAndAwaitChanges(aDes[1], fixture); + + expectSpyCall(setLanguageSpy, 2); + })); + + it('... should trigger setLanguage method with 0 when clicking on first anchor', fakeAsync(() => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + // Click on first anchor + clickAndAwaitChanges(aDes[0], fixture); + + expectSpyCall(setLanguageSpy, 1, 0); + })); + + it('... should trigger setLanguage method with 1 when clicking on second anchor', fakeAsync(() => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + // Click on second anchor + clickAndAwaitChanges(aDes[1], fixture); + + expectSpyCall(setLanguageSpy, 1, 1); + })); + + it('... should have .active class on first anchor element when currentLanguage is 0', () => { + component.currentLanguage = 0; + detectChangesOnPush(fixture); + + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + const aEl0 = aDes[0].nativeElement; + const aEl1 = aDes[1].nativeElement; + + expectToContain(aEl0.classList, 'active'); + expect(aEl1.classList).not.toContain('active'); + }); + + it('... should have .active class on second anchor element when currentLanguage is 1', () => { + component.currentLanguage = 1; + detectChangesOnPush(fixture); + + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + const aEl0 = aDes[0].nativeElement; + const aEl1 = aDes[1].nativeElement; + + expect(aEl0.classList).not.toContain('active'); + expectToContain(aEl1.classList, 'active'); + }); + }); + + describe('#setLanguage()', () => { + it('... should have a method `setLanguage`', () => { + expect(component.setLanguage).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + + // Trigger click with click helper & wait for changes + clickAndAwaitChanges(aDes[0], fixture); + + expectSpyCall(setLanguageSpy, 1); + + // Trigger click with click helper & wait for changes + clickAndAwaitChanges(aDes[1], fixture); + + expectSpyCall(setLanguageSpy, 2); + })); + + it('... should emit 0 when called with 0', () => { + component.setLanguage(0); + + expectSpyCall(setLanguageSpy, 1); + expectSpyCall(emitLanguageChangeRequestSpy, 1, 0); + }); + + it('... should emit 1 when called with 1', () => { + component.setLanguage(1); + + expectSpyCall(setLanguageSpy, 1); + expectSpyCall(emitLanguageChangeRequestSpy, 1, 1); + }); + + it('... should not emit when called with any other number than 0 or 1', () => { + const invalidLanguageNumbers = [-987654321, -2, -1, 2, 3, 987654321]; + + invalidLanguageNumbers.forEach((languageNumber, index) => { + component.setLanguage(languageNumber); + + expectSpyCall(setLanguageSpy, index + 1); + expectSpyCall(emitLanguageChangeRequestSpy, 0); + }); + }); + }); + }); +}); diff --git a/src/app/shared/language-switcher/language-switcher.component.ts b/src/app/shared/language-switcher/language-switcher.component.ts new file mode 100644 index 0000000000..e89d9c3a90 --- /dev/null +++ b/src/app/shared/language-switcher/language-switcher.component.ts @@ -0,0 +1,43 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; + +/** + * The LanguageSwitcher component. + * + * It contains the language switcher of the app. + */ +@Component({ + selector: 'awg-language-switcher', + templateUrl: './language-switcher.component.html', + styleUrls: ['./language-switcher.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class LanguageSwitcherComponent { + /** + * Input variable: currentLanguage. + * + * It keeps the current language: 0 for German, 1 for English. + */ + @Input() + currentLanguage: number; + + /** + * Output variable: languageChangeRequest. + * + * It emits the current language. + */ + @Output() languageChangeRequest = new EventEmitter(); + + /** + * Public method: setLanguage. + * + * It emits the current language. + * + * @param {number} language The given language number. + * @returns {void} Emits the current language. + */ + setLanguage(language: number): void { + if (language === 0 || language === 1) { + this.languageChangeRequest.emit(language); + } + } +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 3691fa79cb..56acca951f 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -18,6 +18,7 @@ import { AddressComponent } from './address/address.component'; import { ErrorAlertComponent } from './error-alert/error-alert.component'; import { HeadingComponent } from './heading/heading.component'; import { JsonViewerComponent } from './json-viewer/json-viewer.component'; +import { LanguageSwitcherComponent } from './language-switcher/language-switcher.component'; import { LicenseComponent } from './license/license.component'; import { ModalComponent } from './modal/modal.component'; import { OpenStreetMapComponent } from './open-street-map/open-street-map.component'; @@ -60,6 +61,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; ErrorAlertComponent, HeadingComponent, JsonViewerComponent, + LanguageSwitcherComponent, LicenseComponent, ModalComponent, OpenStreetMapComponent, @@ -89,6 +91,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; ErrorAlertComponent, HeadingComponent, JsonViewerComponent, + LanguageSwitcherComponent, LicenseComponent, ModalComponent, OpenStreetMapComponent, diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.html b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.html index b3f868decd..54cc6db787 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.html @@ -1,10 +1,7 @@ @if (prefaceData$ | async; as prefaceData) {
-

- DE - | - EN -

+ + @for (prefaceParagraph of prefaceData.preface[currentLanguage].content; track $index) {

} diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss index 9f5f641325..5ca701fec8 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.scss @@ -1,29 +1,3 @@ -@import '/src/assets/themes/scss/shared'; - -.awg-language-switcher { - font-family: 'Montserrat', sans-serif; - font-size: small; - text-align: end; - - a { - cursor: pointer; - text-decoration: none; - color: inherit; - // disable the active link style - &.active, - &.active:hover { - cursor: default; - color: inherit; - } - &:not(.active) { - color: $link-color; - } - &:hover { - border-bottom: none !important; - } - } -} - .awg-preface-para { margin: 0; text-indent: 25px; diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts index 4538060440..fe00710003 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts @@ -1,17 +1,16 @@ -import { DebugElement } from '@angular/core'; +import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; import { lastValueFrom, Observable, of as observableOf, ReplaySubject } from 'rxjs'; import Spy = jasmine.Spy; -import { clickAndAwaitChanges } from '@testing/click-helper'; import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { expectSpyCall, expectToBe, - expectToContain, expectToEqual, getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; import { mockEditionData } from '@testing/mock-data'; @@ -22,6 +21,14 @@ import { EditionDataService, EditionService } from '@awg-views/edition-view/serv import { EditionPrefaceComponent } from './edition-preface.component'; +// Mock components +@Component({ selector: 'awg-language-switcher', template: '' }) +class LanguageSwitcherStubComponent { + @Input() + currentLanguage: number; + @Output() languageChangeRequest = new EventEmitter(); +} + describe('EditionPrefaceComponent (DONE)', () => { let component: EditionPrefaceComponent; let fixture: ComponentFixture; @@ -38,6 +45,7 @@ describe('EditionPrefaceComponent (DONE)', () => { let mockIsPrefaceViewSubject: ReplaySubject; let expectedPrefaceData: PrefaceList; + let expectedCurrentLanguage: number; beforeEach(async () => { mockIsPrefaceViewSubject = new ReplaySubject(1); @@ -52,7 +60,7 @@ describe('EditionPrefaceComponent (DONE)', () => { }; await TestBed.configureTestingModule({ - declarations: [CompileHtmlComponent, EditionPrefaceComponent], + declarations: [CompileHtmlComponent, EditionPrefaceComponent, LanguageSwitcherStubComponent], providers: [ { provide: EditionService, useValue: mockEditionService }, { provide: EditionDataService, useValue: mockEditionDataService }, @@ -70,6 +78,7 @@ describe('EditionPrefaceComponent (DONE)', () => { // Test data expectedPrefaceData = JSON.parse(JSON.stringify(mockEditionData.mockPrefaceData)); + expectedCurrentLanguage = 0; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see @@ -91,7 +100,7 @@ describe('EditionPrefaceComponent (DONE)', () => { }); it('... should have `currentLanguage` = 0', () => { - expectToBe(component.currentLanguage, 0); + expectToBe(component.currentLanguage, expectedCurrentLanguage); }); it('... should have `GLYPHS`', () => { @@ -114,6 +123,10 @@ describe('EditionPrefaceComponent (DONE)', () => { it('... should contain no outer div.row (yet)', () => { getAndExpectDebugElementByCss(compDe, 'div.row', 0, 0); }); + + it('... should not contain language switcher component (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 0, 0); + }); }); }); @@ -141,86 +154,20 @@ describe('EditionPrefaceComponent (DONE)', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-preface-view', 1, 1); }); - it('... should contain 1 language-switcher paragraph', () => { - getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - }); - - it('... should contain 2 language-switcher anchor elements (DE | EN)', () => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const pEl = pDes[0].nativeElement; - - expectToBe(pEl.textContent, 'DE | EN'); - - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - const aEl1 = aDes[0].nativeElement; - const aEl2 = aDes[1].nativeElement; + it('... should contain one language switcher component (stubbed) in div.awg-preface-view', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-preface-view', 1, 1); - expectToBe(aEl1.textContent, 'DE'); - expectToBe(aEl2.textContent, 'EN'); + getAndExpectDebugElementByDirective(divDes[0], LanguageSwitcherStubComponent, 1, 1); }); - it('... should trigger `setLanguage` method on anchor click', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - - // Trigger click with click helper & wait for changes - clickAndAwaitChanges(aDes[0], fixture); + it('... should pass down `currentLanguage` to language switcher component', () => { + const switcherDes = getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 1, 1); + const switcherCmp = switcherDes[0].injector.get( + LanguageSwitcherStubComponent + ) as LanguageSwitcherStubComponent; - expectSpyCall(setLanguageSpy, 1); - - // Trigger click with click helper & wait for changes - clickAndAwaitChanges(aDes[1], fixture); - - expectSpyCall(setLanguageSpy, 2); - })); - - it('... should set currentLanguage to 0 when clicking on first anchor', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - - // Click on first anchor - clickAndAwaitChanges(aDes[0], fixture); - - expectToBe(component.currentLanguage, 0); - })); - - it('... should set currentLanguage to 1 when clicking on second anchor', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - - // Click on second anchor - clickAndAwaitChanges(aDes[1], fixture); - - expectToBe(component.currentLanguage, 1); - })); - - it('... should have .active class on first anchor element when currentLanguage is 0', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - - // Click on first anchor - clickAndAwaitChanges(aDes[0], fixture); - - const aEl0 = aDes[0].nativeElement; - const aEl1 = aDes[1].nativeElement; - - expectToContain(aEl0.classList, 'active'); - expect(aEl1.classList).not.toContain('active'); - })); - - it('... should have .active class on second anchor element when currentLanguage is 1', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); - - // Click on second anchor - clickAndAwaitChanges(aDes[1], fixture); - - const aEl0 = aDes[0].nativeElement; - const aEl1 = aDes[1].nativeElement; - - expect(aEl0.classList).not.toContain('active'); - expectToContain(aEl1.classList, 'active'); - })); + expectToEqual(switcherCmp.currentLanguage, expectedCurrentLanguage); + }); it('... should contain as many preface paragraph elements in div.awg-preface-view as content items in preview data (german)', () => { // Div debug element @@ -282,19 +229,21 @@ describe('EditionPrefaceComponent (DONE)', () => { expect(component.setLanguage).toBeDefined(); }); - it('... should trigger on click', fakeAsync(() => { - const pDes = getAndExpectDebugElementByCss(compDe, 'p.awg-language-switcher', 1, 1); - const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 2, 2); + it('... should trigger on event from LanguageSwitcherComponent', fakeAsync(() => { + const switcherDes = getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 1, 1); + const switcherCmp = switcherDes[0].injector.get( + LanguageSwitcherStubComponent + ) as LanguageSwitcherStubComponent; - // Trigger click with click helper & wait for changes - clickAndAwaitChanges(aDes[0], fixture); + // Language = 0 + switcherCmp.languageChangeRequest.emit(0); - expectSpyCall(setLanguageSpy, 1); + expectSpyCall(setLanguageSpy, 1, 0); - // Trigger click with click helper & wait for changes - clickAndAwaitChanges(aDes[1], fixture); + // Language = 1 + switcherCmp.languageChangeRequest.emit(1); - expectSpyCall(setLanguageSpy, 2); + expectSpyCall(setLanguageSpy, 2, 1); })); it('... should set the currentLanguage to 0 when called with 0', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts index 26e85bc3b9..fe2be4b1aa 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts @@ -15,8 +15,8 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { EditionOutlineSection, EditionOutlineSeries } from '@awg-app/views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-app/views/edition-view/services'; +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionSectionsComponent } from './edition-sections.component'; diff --git a/src/assets/data/edition/preface.json b/src/assets/data/edition/preface.json index 7d63d08a7f..f9416de6c2 100644 --- a/src/assets/data/edition/preface.json +++ b/src/assets/data/edition/preface.json @@ -1,7 +1,7 @@ { "preface": [ { - "id": "de", + "id": "de-preface", "content": [ " Die Anton Webern Gesamtausgabe (AWG) versteht sich als historisch-kritische Gesamtausgabe der Kompositionen Anton Weberns. Sie ist historisch, indem sie die Kompositionen durch Dokumentation verschiedener Textfassungen und ihrer Skizzen als in sich chronologisch differenzierte Editionskomplexe präsentiert sowie deren Entstehung in den Zusammenhang der Biographie des Komponisten und der allgemeinen Musikgeschichte einordnet. Sie ist kritisch, indem sie sämtliche erreichbaren Quellen vergleicht und textkritisch prüft. Sie ist eine Gesamtausgabe, indem sie die auf Grundlage dieser Quellenkritik erkennbaren Textfassungen und Skizzen sämtlicher, auch fragmentarischer Kompositionen ediert. Sie ist eine Gesamtausgabe, indem sie Notentexte mit dem methodischen Bewusstsein vorlegt, dass eine Edition grundsätzlich eine Interpretation des durch die Quellen bezeugten Texts darstellt.", "Die AWG gliedert sich in drei Serien:", @@ -41,7 +41,7 @@ ] }, { - "id": "en", + "id": "en-preface", "content": [ "The Anton Webern Gesamtausgabe (AWG) is a historical-critical complete edition of Anton Webern’s compositions. It is historical in that it documents different versions of the musical text (Textfassungen) plus related sketches for each composition, organized chronologically and grouped together in clusters where the common circumstances of their composition imply that they should be presented together (such clusters are in the German-language documentation of the Anton Webern Gesamtausgabe referred to throughout as Editionskomplexe). The AWG also situates these compositions and their genesis in the context of the composer’s biography and of general music history. It is critical in that it compares all the available sources and examines them critically. It is a complete edition in that it uses the aforementioned critical appraisal of the sources to edit all the recognizable versions and sketches of Webern’s compositions, including those that are extant as fragments. It is a complete edition in that its methodological basis for presenting a musical text presupposes an awareness that such an edition is fundamentally an interpretation of the text to which the sources bear witness.", "The AWG is divided into three series:", From 6ec7b1d0a1cbe5cc9e07132fe9256e2e4ee6f65b Mon Sep 17 00:00:00 2001 From: masthom Date: Mon, 23 Sep 2024 16:10:57 +0200 Subject: [PATCH 077/213] add corrections for op. 3: source_B_corr --- .../1/section/5/op3/source-description.json | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index de67fd948f..8aaed58d89 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -230,7 +230,47 @@ } ] } - ] + ], + "corrections": [ + { + "id": "source_B_corr", + "label": "Korrekturen in B", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[b]')}} zu b2 nachgezogen. (Zunächst zu hoch [ces3] angesetzt.)" + }, + { + "measure": "7", + "system": "Klav.", + "position": "10–12/16", + "comment": "Auf Tektur. Rechts neben Tektur in Klav. o. mit Bleistift zwei oben zusammengebalkte Sechzehntelnoten {{ref.getGlyph('[a]')}}c3–{{ref.getGlyph('[a]')}}d2/h2, radiert." + }, + { + "measure": "8", + "system": "Klav.", + "position": "1–4/16", + "comment": "Klav. u. 1–4/16 auf Rasur, Klav. o. (2/16) rasiert. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[a]')}} zu f1 hinzugefügt mit Bleistift." + } + ] + } + ] + } + ] } }, { From 9087bfccf7b5ef6d06193faafe0e68277f885050 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:23:39 +0200 Subject: [PATCH 078/213] fix(assets): remove disclaimer for corrections of op25 --- .../series/1/section/5/op25/source-description.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op25/source-description.json b/src/assets/data/edition/series/1/section/5/op25/source-description.json index 19da8237f3..127ac3c276 100644 --- a/src/assets/data/edition/series/1/section/5/op25/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op25/source-description.json @@ -3092,18 +3092,6 @@ } ] } - }, - { - "id": "notA", - "siglum": "", - "siglumAddendum": "", - "type": "", - "location": "", - "description": { - "desc": [ - "[Die Beschreibung der in den Quellen gegebenenfalls enthaltenen Korrekturen erfolgt im Zusammenhang der vollständigen Edition der Drei Lieder nach Gedichten von Hildegard Jone op. 25 in AWG I/5.]" - ] - } } ] } From cd3471b05bd54f6871fbd0d2ab11464cf72c7999 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 23 Sep 2024 16:26:53 +0200 Subject: [PATCH 079/213] feat(edition): add language switcher to intro --- .../edition-intro.component.html | 22 +++--- .../edition-intro.component.scss | 78 +++++++++++-------- .../edition-intro/edition-intro.component.ts | 19 +++++ 3 files changed, 77 insertions(+), 42 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index affa57d018..ea62ae0a26 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -7,9 +7,9 @@ @if (editionIntroData$ | async; as editionIntroData) {
- @if (utils.isNotEmptyArray(editionIntroData.intro[0].content)) { -
- @for (introBlock of editionIntroData.intro[0].content; track $index) { + @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].content)) { +
+ @for (introBlock of editionIntroData.intro[currentLanguage].content; track $index) {
@if (introBlock.blockHeader) {
@@ -26,12 +26,12 @@ }
} - @if (utils.isNotEmptyArray(editionIntroData.intro[0].footnotes)) { -
-
+ @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].footnotes)) { +
+
Anmerkungen
- @for (footnote of editionIntroData.intro[0].footnotes; track $index) { + @for (footnote of editionIntroData.intro[currentLanguage].footnotes; track $index) {

Anmerkungen

} } - @if (utils.isNotEmptyArray(editionIntroData.intro[0].footnotes)) { + @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].footnotes)) {
} } - @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].footnotes)) { + @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].notes)) {
} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index 66c36ec763..ad326acb78 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -38,6 +38,16 @@ export class EditionIntroComponent implements OnDestroy, OnInit { */ currentLanguage = 0; + /** + * Public variable: notesLables. + * + * It keeps the labels for the notes in the edition intro. + */ + notesLables: Map = new Map([ + [0, 'Anmerkungen'], + [1, 'Notes'], + ]); + /** * Public variable: editionComplex. * diff --git a/src/app/views/edition-view/models/intro.model.ts b/src/app/views/edition-view/models/intro.model.ts index c01a837aff..0eb5302192 100644 --- a/src/app/views/edition-view/models/intro.model.ts +++ b/src/app/views/edition-view/models/intro.model.ts @@ -41,9 +41,9 @@ export class Intro { content: IntroBlock[]; /** - * The footnotes array of an intro. + * The notes array of an intro. */ - footnotes: string[]; + notes: string[]; } /** diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index 111c347d44..b490a66d49 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -15,9 +15,9 @@ "blockHeader": "George-Lieder", "blockContent": [ "

Die insgesamt 14 Klavierlieder Weberns auf Texte von Stefan George (M 133–146) wurden in ihren frühesten Textfassungen vermutlich zwischen Dezember 1907 und 1909 komponiert und gehören zusammen mit den Fünf Sätzen für Streichquartett M 147–151 sowie den Sechs Stücken für großes Orchester M 152–157 zu seinen ersten sogenannten atonalen Kompositionen. Die Zusammenstellung der beiden 1919 bzw. 1923 gedruckten Sammlungen Fünf Lieder aus Der siebente Ring von Stefan George op. 3 und Fünf Lieder nach Gedichten von Stefan George op. 4 stand dabei nicht von Anfang an fest, sondern war einem langwierigen und in seinen verschiedenen Stadien nicht mehr eindeutig rekonstruierbaren Prozess unterworfen, während dessen die meisten Lieder in verschiedenen Textfassungen vorlagen.

", - "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", - "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", - "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", + "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", + "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", + "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", "
„Dies ist ein Lied“ M 133(Textfassung 1 in A, Textfassung 2 in B)
„Erwachen aus dem tiefsten Traumesschoße“ M 143(einzige Textfassung in A)
„Im Windesweben“ M 134(Textfassung 1 in A)
Kunfttag I M 144(einzige Textfassung in A)
", @@ -25,24 +25,24 @@ "

Ich weiß nicht, ich habe so eine blöde Scheu. Das ist es auch[,] warum ich noch nicht bei Marschalk war.

", "

Wenn ich ein Liederheft fertig hätte. Aber so kann er ja nichts nehmen, momentan.

", - "

Einerseits möchte ich, andrerseits –8

", + "

Einerseits möchte ich, andrerseits –8

", - "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", - "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", + "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", + "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", - "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", + "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", "

Der Aufenthalt in Kärnten wurde darüber hinaus vermutlich ab Mitte Juli durch ein kurzfristiges Theaterengagement Weberns in Innsbruck unterbrochen. Ab Ende Juli meldete sich Webern wieder vom Preglhof bei Schönberg, und am 20. August hieß es in einem der Briefe:

", - "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", + "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", "

Um welche George-Lieder es sich bei den in diesen Briefen an Schönberg erwähnten im Einzelnen handelte, ist nicht klar. Das einzige genauer datierbare George-Lied Weberns bleibt somit Trauer I M 145, das noch vor dem Aufenthalt in Kärnten kurz vor dem 25. Mai 1909 geschrieben wurde. Das verwendete Notenpapier sowie ein im Vergleich zu den oben genannten mutmaßlich 1908 komponierten Liedern deutlicher Wechsel des Schriftduktus legen nahe, dass im Laufe des Sommers oder Herbstes 1909 einschließlich Trauer I M 145 auch die ersten bzw. einzigen Textfassungen folgender Lieder entstanden sind:

", "
„An Bachesranft“ M 135(Textfassung 1 in E)
„Das lockere Saatgefilde“ M 146(einzige Textfassung in A)
Eingang M 138(Textfassung 1 in A)
„Im Morgentaun“ M 136(Textfassung 1 in D [Fragment], E und G)
„Ja Heil und Dank dir“ M 140(Textfassung 1 in B)
„Kahl reckt der Baum“ M 137(Textfassung 1 in E)
„Noch zwingt mich Treue“ M 139(Textfassung 1 in B)
„So ich traurig bin“ M 141(Textfassung 1 in B)
Trauer I M 145(einzige Textfassung in A – vor dem 25. Mai 1909)
", "

Auf der Grundlage der hier vorgeschlagenen schriftbildlichen Einschätzung lässt sich auch eine weitere Niederschrift von „Dies ist ein Lied“ M 133 (Textfassung 2: Grundschicht in C) diesem zeitlichen Umfeld zuordnen. Ob die nicht überlieferte autographe Niederschrift von „Ihr tratet zu dem Herde“ M 142 ([C]) auch 1909 oder bereits 1908 entstanden ist, lässt sich auf dieser Basis freilich nicht entscheiden.

", - "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", - "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", + "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", + "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", @@ -50,51 +50,51 @@ "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", - "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", + "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", "

Kürzlich beschäftigte uns der Fall Schönberg, nun gibt es auch den Fall Anton v. Webern, wenn auch im Grunde beide eins sind. Denn Herr v. Webern ist Schönbergs Schüler, dazu einer, der nicht bloß auf die Worte des Meisters schwört, sondern diesen in manchem Betrachte übertrumpft. Dem ist gut so; die Spannung schwindet, eine fast gemütliche Gleichgiltigkeit stellt sich ein. Mit dem Lehrer konnte und mußte man sich noch auseinandersetzen, nicht mehr mit dem Jünger. […] Auch sechs Lieder nach Stephan [sic] George gehen, und nicht bloß in der Wahl des Dichters, auf Schönbergs Pfaden. Zu Akkorden aus der neuen Harmonielehre tritt eine in den entsprechenden Intervallen psalmodierende Singstimme. Auch der musikalisch geschulte, gut aufnahmsfähige Hörer macht eine psychische Erfahrung: er glaubt immer dasselbe zu hören. Hier schafft aber das Wort einigen Ausdruck, freilich durchgehends den seelischer Geknicktheit, seelischen Zerfalls. Wenn man guten Willens ist, wird man an den besten Stellen an Oktave Mirbeaus Maler gemahnt, der schließlich nur noch „Seelen“ malen wollte. . . .

", - "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", + "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", - "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", + "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[b]1. Eingang.(„VII. Ring“)
[b + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[b + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[b + r]6. „Kahl reckt der baum..“
[b]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[b + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[b]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7 [b] „Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", - "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", - "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", - "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", + "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", + "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", + "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", "

Im Herbst 1911 erhielt Webern ebenso wie Schönberg und Alban Berg die Einladung eine Notenbeilage zum von Wassily Kandinsky und Franz Marc herausgegebenen Almanach Der blaue Reiter beizusteuern. Hierfür wählte er „Ihr tratet zu dem Herde“ M 142. Aus einem Brief an Paul Königer geht hervor, dass Webern dieses Lied auch in die Auswahl der an Tischer & Jagenberg gesandten Lieder aufgenommen hatte:

", "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", - "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", + "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", - "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", + "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", - "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", + "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", "

Diesem Entschluss waren im Februar Besprechungen mit Schönberg vorangegangen, der die Durchsicht verschiedener Werke Weberns in seinem Tagebuch erwähnt, darunter auch ausdrücklich Lieder:

", - "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", + "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", - "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", + "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", - "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", - "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", - "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", - "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", + "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", + "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", + "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", + "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", - "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", + "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", + "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", - "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", + "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", - "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", - "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", + "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", + "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", "

II   „Im Windesweben“ M 134 (Textfassung 3)

", @@ -102,8 +102,8 @@ "

IV  „Im Morgentaun“ M 136 (Textfassung 3)

", "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", - "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", - "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", + "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", + "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", @@ -111,20 +111,20 @@ "

IV  „So ich traurig bin“ M 141 (Textfassung 2)

", "

V   „Ihr tratet zu dem Herde“ M 142 (Textfassung 3)

", - "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", + "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", - "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", - "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", - "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", - "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", + "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", + "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", + "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", + "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" ] @@ -134,42 +134,42 @@ "blockHeader": "Vier Lieder op. 12", "blockContent": [ "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", - "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", - "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", - "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", - "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", - "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", - "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", + "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", + "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", - "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", + "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", - "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", + "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", - "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", - "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", + "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", + "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", - "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", + "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", - "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", + "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", - "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", + "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", - "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", + "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", - "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", + "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", - "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", - "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", + "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", + "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", + "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", + "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", + "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", + "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", + "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", + "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", + "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" ] @@ -179,44 +179,44 @@ "blockHeader": "Drei Gesänge aus Viae inviae von Hildegard Jone op. 23", "blockContent": [ "

Die Anfang 1933 begonnenen und im März 1934 fertiggestellten Drei Gesänge aus Viae inviae von Hildegard Jone op. 23 sind Weberns erste Klavierlieder, die auf der Grundlage der „Komposition mit zwölf Tönen“ – wie Webern in der Regel die Zwölftontechnik bezeichnet – geschrieben wurden, und seine erste vollendete Vokalkomposition seit den Ende 1925 bis Sommer 1926 entstandenen Zwei Liedern für gemischten Chor mit Begleitung von Celesta, Gitarre, Geige, Klarinette und Bassklarinette op. 19. Der von Webern im Titel verwendete Terminus „Gesang“ deutet auf die im Vergleich zu den meisten anderen seiner Vokalkompositionen ausgedehnte Länge der einzelnen Stücke hin. Sie sind zugleich Weberns erste Komposition auf Texte von Hildegard Jone, deren Lyrik die Grundlage für alle weiteren fertiggestellten Vokalkompositionen Weberns bilden sollte.

", - "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", + "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", - "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", + "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", - "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", - "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", - "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", + "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", + "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", + "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", - "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", + "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", - "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", - "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", + "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", + "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", - "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", + "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", - "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", + "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", - "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", + "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", "

Ebenfalls Anfang September 1933 nahm Webern zunächst die Skizzierung des ersten Satzes vom Konzert op. 24 im selben Skizzenbuch wieder auf, jedoch ohne diese Arbeit zu einem Abschluss zu bringen oder auch nur kontinuierlich weiterzuführen. Ende desselben Monats plante er, der Dichterin beide der bis zu diesem Zeitpunkt vorliegenden Gesänge aus op. 23 bei einem ihrer Aufenthalte in Wien vorzuführen:

", - "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", + "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", - "

Hoffentlich kann er etwas dauern!137

", + "

Hoffentlich kann er etwas dauern!137

", - "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", + "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", "

Liebste Frau Jone,

", "

die Aufregungen der letzten Tage sind ungeheuer u. werden es immer mehr. Es ist kaum möglich[,] einen Gedanken zu fassen […].

", "

[…] Und vergangene Woche habe ich doch wieder jeden freien Augenblick benützt, um an den Gedichten [sic] „Das dunkle Herz“ weiterzuschreiben. Ich hatte wieder etwas freie Zeit. […]

", - "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", + "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", - "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", + "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", "

Inzwischen ist das dritte Lied fertig geworden.

", "

Da es die Worte von „Das dunkle Herz…“ bis „…ich und du und alle“ umfaßt, ist es recht lang geworden u. stellt der musikalischen Form nach eigentlich eine Art „Arie“ dar: bestehend aus einem langsamen Teil u. ab „ich bin nicht mein…“ einem schnelleren, der aber trotzdem die Tempovorschrift „Ganz ruhig“ trägt.

", @@ -224,25 +224,25 @@ "

Den Titel habe ich mir so gedacht:

", "

Drei Gesänge aus Viae inviae.

", "

Kann ich diesen Titel Ihrer Gedichte übernehmen?

", - "

Bald sende ich Ihnen das Manuscript.143

", + "

Bald sende ich Ihnen das Manuscript.143

", "

An Alban Berg führte er in einem eine Woche später geschriebenen Brief die formale Disposition auch der anderen Gesänge näher aus:

", "

Ich habe gerade ein drittes Lied (nach Jone-Texten) fertig gestellt. Eigentlich ist es eine Arie, bestehend aus einem langsamen Teil u. einem schnelleren. Es wird das erste sein.

", "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", - "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", + "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", - "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", - "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", + "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", + "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", - "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", + "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", "

Über die Drei Gesänge heißt es in einer weiteren Besprechung lediglich:

", - "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", + "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", - "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" + "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" ] }, { @@ -251,39 +251,39 @@ "blockContent": [ "

Die im Laufe des Jahres 1934 entstandenen Drei Lieder nach Gedichten von Hildegard Jone op. 25 knüpfen an die im Jahr zuvor in den Drei Gesängen aus Viae inviae von Hildegard Jone op. 23 begonnene kompositorische Auseinandersetzung Weberns mit der Lyrik Hildegard Jones an. Die politischen Konsequenzen der Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes in Wien und anderen größeren Städten Österreichs vom 12. bis zum 15. Februar 1934 veränderten Weberns berufliche Situation gegenüber den Vorjahren jedoch einschneidend. Das Verbot der Sozialdemokratischen Partei bedeutete den Verlust seiner Tätigkeit als Dirigent bei den Wiener Arbeiter-Symphonie-Konzerten und als künstlerischer Direktor des Singvereins der Sozialdemokratischen Kunststelle. In der Folge wurden auch seine Engagements beim Rundfunk immer weniger. In einem Brief an Arnold Schönberg, der 1933 in die Vereinigten Staaten emigriert war, beschreibt Webern dies selbst mit vergleichsweise drastischen Worten:

", - "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", + "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", - "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", + "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", "

– 5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", "

– 8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", - "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", + "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", - "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", - "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", + "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", + "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", "

Erzählte ich schon, dass mein erster Satz [lies: von op. 24] fertig ist? Momentan habe ich aus Gründen, die ich noch erzählen werde, eine andere Arbeit eingeschoben: die Komposition eines kurzen Gedichtes von Ihnen, liebste Freundin:

", "

‚Wie bin ich froh! Noch einmal

", - "

wird mir Alles grün….‘161

", + "

wird mir Alles grün….‘161

", "

Die im Brief erwähnten „Gründe“ für die Unterbrechung der Arbeit an weiteren Sätzen des Konzertes op. 24 wegen eines Liedes bestanden sehr wahrscheinlich darin, eine Komposition rechtzeitig zum 60. Geburtstag von David Josef Bach am 13. August desselben Jahres fertigstellen zu wollen. Bach, ein Jugendfreund Schönbergs, war in den 1910er Jahren Initiator der Arbeiter-Symphonie-Konzerte in Wien sowie seit 1919 Leiter der Sozialdemokratischen Kunststelle gewesen. Seit 1922 hatte er Webern immer wieder als Dirigent der Konzerte sowie vor allem seit Ende 1923 als Leiter des Singvereins engagiert, was maßgeblich zu Weberns Reputation als Dirigent beigetragen hatte. Durch das Verbot der Sozialdemokratischen Partei nach den Februarereignissen 1934 war Bach selbst in eine prekäre Situation geraten, auf die Webern in Briefen u. a. an Schönberg aufmerksam machte – und dabei auch den bevorstehenden Geburtstag sowie seine geplante Lied-Widmung ansprach:

", "

Für Dr. Bachs 60. Geburtstag – 13. August d. J. – wird Folgendes vorbereitet: eine Adresse mit Unterschriften u. eine Geldsammlung.

", "

Seine finanzielle Lage ist noch immer sehr drückend […].

", - "

Ich widme ihm ein Lied […].162

", + "

Ich widme ihm ein Lied […].162

", - "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", - "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", "

Liebe, sehr verehrte Freundin,

", "

vielen, innigsten Dank für die schönen Lieder!

", - "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", + "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", - "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", + "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", - "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", - "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" + "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", + "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" ] }, { @@ -298,7 +298,7 @@ ] }, { - "blockId": "credits", + "blockId": "acknowledgements", "blockHeader": "Dank", "blockContent": [ "

Der Herausgeber dankt zahlreichen Personen und Institutionen, die ihn bei der Arbeit auf vielfältige Weise unterstützt haben. Dieser Dank gilt vor allem den Mitarbeitenden der Archive und Bibliotheken, die digitale Reproduktionen ihrer Quellen für die Editionsarbeiten zur Verfügung gestellt bzw. Zugang zu den Originalen gewährt haben: Das Arnold Schönberg Center in Wien, die Music Division der Library of Congress in Washington D.C., die Morgan Library & Museum in New York City, die Musiksammlung der Österreichischen Nationalbibliothek in Wien, die Musiksammlung der Wienbibliothek im Rathaus in Wien sowie das Historische Archiv der Universal Edition in Wien. Besonderer Dank gilt der Paul Sacher Stiftung in Basel, die den größten Teil der erhaltenen Webern-Quellen aufbewahrt: Insbesondere Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert und Andrietta Wahl waren hier immer wieder hilfsbereite und kenntnisreiche Ansprechpartner.

", @@ -311,182 +311,182 @@ ] } ], - "footnotes": [ - "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", - "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", - "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", - "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", - "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", - "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", - "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", - "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", - "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", - "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", - "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", - "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", - "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", - "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", - "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", - "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", - "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", - "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", - "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", - "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", - "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", - "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", - "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", - "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", - "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", - "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", - "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", - "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", - "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", - "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", - "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", - "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", - "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", - "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", - "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", - "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", - "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", - "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", - "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", - "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", - "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", - "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", - "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", - "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", - "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", - "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", - "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", - "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", - "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", - "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", - "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", - "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", - "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", - "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", - "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", - "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", - "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", - "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", - "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", - "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", - "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", - "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", - "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", - "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", - "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", - "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", - "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", - "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", - "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", - "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", - "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", - "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", - "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", - "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", - "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", - "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", - "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", - "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", - "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", - "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", - "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", - "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", - "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", - "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", - "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", - "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", - "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", - "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", - "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", - "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", - "97 | Vgl. ebd. (Anhang), S. 340 f.", - "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", - "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", - "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", - "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", - "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", - "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", - "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", - "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", - "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", - "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", - "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", - "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", - "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", - "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", - "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", - "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", - "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", - "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", - "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", - "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", - "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", - "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", - "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", - "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", - "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", - "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", - "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", - "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", - "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", - "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", - "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", - "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", - "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", - "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", - "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", - "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", - "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", - "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", - "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", - "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", - "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", - "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", - "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", - "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", - "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", - "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", - "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", - "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", - "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", - "157 | Ebd.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", - "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", - "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", - "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", - "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", - "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", - "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", - "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", - "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", - "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", - "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", - "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", - "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", - "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", - "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", - "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." + "notes": [ + "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", + "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", + "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", + "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", + "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", + "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", + "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", + "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", + "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", + "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", + "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", + "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", + "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", + "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", + "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", + "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", + "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", + "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", + "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", + "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", + "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", + "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", + "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", + "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", + "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", + "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", + "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", + "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", + "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", + "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", + "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", + "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", + "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", + "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", + "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", + "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", + "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", + "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", + "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", + "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", + "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", + "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", + "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", + "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", + "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", + "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", + "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", + "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", + "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", + "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", + "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", + "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", + "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", + "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", + "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", + "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", + "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", + "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", + "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", + "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", + "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", + "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", + "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", + "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", + "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", + "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", + "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", + "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", + "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", + "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", + "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", + "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", + "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", + "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", + "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", + "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", + "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", + "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", + "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", + "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", + "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", + "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", + "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", + "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", + "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", + "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", + "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", + "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", + "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", + "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", + "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", + "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", + "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", + "97 | Vgl. ebd. (Anhang), S. 340 f.", + "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", + "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", + "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", + "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", + "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", + "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", + "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", + "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", + "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", + "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", + "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", + "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", + "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", + "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", + "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", + "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", + "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", + "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", + "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", + "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", + "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", + "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", + "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", + "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", + "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", + "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", + "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", + "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", + "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", + "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", + "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", + "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", + "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", + "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", + "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", + "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", + "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", + "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", + "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", + "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", + "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", + "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", + "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", + "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", + "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", + "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", + "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", + "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", + "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", + "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", + "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", + "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", + "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", + "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", + "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", + "157 | Ebd.", + "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", + "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", + "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", + "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", + "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", + "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", + "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", + "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", + "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", + "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", + "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", + "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", + "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", + "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", + "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", + "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", + "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", + "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." ] }, { @@ -504,9 +504,9 @@ "blockHeader": "The George Songs", "blockContent": [ "

The earliest versions of Webern’s 14 songs with piano accompaniment to texts by Stefan George (M 133–146) were presumably composed between December 1907 and 1909. Together with the Five Movements for String Quartet M 147–151 and the Six Pieces for Large Orchestra M 152–157, they are among his first so-called atonal compositions. The two collections Five Songs from Der siebente Ring by Stefan George, Op. 3 and Five Songs on Poems of Stefan George, Op. 4 were published in 1919 and 1923 respectively. However, the specific songs collected in these opus numbers were not fixed from the beginning. Determining their content was a lengthy process, the various stages of which can no longer be reconstructed with certainty, and the musical text of most of these songs went through different versions.

", - "

We can trace Webern’s initial reception of George’s work back to circa 1900, when he copied the poem “Indes deine mutter dich stillt” into one of his diaries.1 We have no documentary proof either of any compositional engagement with this poem on his part, nor of his having read more George. He may have had further contact with George’s poetry in the Ansorge Society in Vienna, where Webern and his student friend Karl Horwitz were active from 1904 onwards, and whose evening events included performances of George settings by Conrad Ansorge (Five Songs on Poems of Stefan George, Op. 14).2

", - "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", - "

One incentive for Webern’s compositional engagement with George’s poems presumably came from Arnold Schoenberg’s own settings. Schoenberg had composed the song “Ich darf nicht dankend”, Op. 14, No. 1 on 17 December 1907 and numerous other songs for his growing cycle Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15, from March to May 1908 (we have definite proof that he composed the songs Op. 15 Nos. 3–8 at that time).5 In a letter dated 11 June 1908 from Webern to Schoenberg, there are indications that the former already knew some of the songs that the latter had completed by this time.6 Various features make it seem plausible that “Erwachen aus dem tiefsten Traumesschoße” M 143 represents Webern’s first setting of a poem by George for voice and piano, as it clearly refers to Schoenberg’s Op. 14, No. 1. Unlike most of Webern’s later songs, these two songs still have a key signature (as does his chorus “Entflieht auf leichten Kähnen” M 129, quite possibly written in 1907/08), which indicates a comparatively early date of conception. Given that the proven date of composition of Schoenberg’s Op. 14, No. 1 provides us with an earliest possible date for Webern’s song, the latter could have been composed between December 1907 and June 1908.7 A comparison of the handwriting and the types of music paper used suggests that the initial versions of the following songs (in one case: the sole extant version [einzige Textfassung]) could also have been written by mid-1908, including “Erwachen aus dem tiefsten Traumesschoße” M 143:

", + "

We can trace Webern’s initial reception of George’s work back to circa 1900, when he copied the poem “Indes deine mutter dich stillt” into one of his diaries.1 We have no documentary proof either of any compositional engagement with this poem on his part, nor of his having read more George. He may have had further contact with George’s poetry in the Ansorge Society in Vienna, where Webern and his student friend Karl Horwitz were active from 1904 onwards, and whose evening events included performances of George settings by Conrad Ansorge (Five Songs on Poems of Stefan George, Op. 14).2

", + "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", + "

One incentive for Webern’s compositional engagement with George’s poems presumably came from Arnold Schoenberg’s own settings. Schoenberg had composed the song “Ich darf nicht dankend”, Op. 14, No. 1 on 17 December 1907 and numerous other songs for his growing cycle Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15, from March to May 1908 (we have definite proof that he composed the songs Op. 15 Nos. 3–8 at that time).5 In a letter dated 11 June 1908 from Webern to Schoenberg, there are indications that the former already knew some of the songs that the latter had completed by this time.6 Various features make it seem plausible that “Erwachen aus dem tiefsten Traumesschoße” M 143 represents Webern’s first setting of a poem by George for voice and piano, as it clearly refers to Schoenberg’s Op. 14, No. 1. Unlike most of Webern’s later songs, these two songs still have a key signature (as does his chorus “Entflieht auf leichten Kähnen” M 129, quite possibly written in 1907/08), which indicates a comparatively early date of conception. Given that the proven date of composition of Schoenberg’s Op. 14, No. 1 provides us with an earliest possible date for Webern’s song, the latter could have been composed between December 1907 and June 1908.7 A comparison of the handwriting and the types of music paper used suggests that the initial versions of the following songs (in one case: the sole extant version [einzige Textfassung]) could also have been written by mid-1908, including “Erwachen aus dem tiefsten Traumesschoße” M 143:

", "

“Dies ist ein Lied” M 133 (version 1 in A, version 2 in B)

", "

“Erwachen aus dem tiefsten Traumesschoße” M 143 (sole extant version in A)

", @@ -518,16 +518,16 @@ "

I don’t know, I’m so stupidly shy. That’s also why I haven’t yet been to Marschalk.

", "

If only I had a volume of songs ready. But this means he can’t take

", "

anything at the moment.

", - "

On the one hand, I’d like to, but on the other hand –8

", + "

On the one hand, I’d like to, but on the other hand –8

", - "

Webern clearly did not consider either his four George songs (which were presumably finished by late 1908) nor his five Dehmel songs M 83, M 119, M 130–132 (which he had also already composed) to be suitable for publication.9

", - "

Webern’s letter to Heinrich Jalowetz of 25 May 1909, written in Vienna, provides an explicit, dated reference to the composition of a George song: “I have – thank God – written something again. A song after George, ‘Trauer I’ (VII Ring).”10 Webern went to his family’s estate of Preglhof in Carinthia on 29 May and spent the ensuing weeks and months there, during which time he reported to Schoenberg on the completion of a first version of his Five Movements for String Quartet M 147–151 and on further plans for songs and orchestral works (the latter being the Six Pieces for Large Orchestra M 152–157).11 However, his plans were initially delayed by the death and funeral of his maternal grandfather, Anton Geer:

", + "

Webern clearly did not consider either his four George songs (which were presumably finished by late 1908) nor his five Dehmel songs M 83, M 119, M 130–132 (which he had also already composed) to be suitable for publication.9

", + "

Webern’s letter to Heinrich Jalowetz of 25 May 1909, written in Vienna, provides an explicit, dated reference to the composition of a George song: “I have – thank God – written something again. A song after George, ‘Trauer I’ (VII Ring).”10 Webern went to his family’s estate of Preglhof in Carinthia on 29 May and spent the ensuing weeks and months there, during which time he reported to Schoenberg on the completion of a first version of his Five Movements for String Quartet M 147–151 and on further plans for songs and orchestral works (the latter being the Six Pieces for Large Orchestra M 152–157).11 However, his plans were initially delayed by the death and funeral of his maternal grandfather, Anton Geer:

", - "

Yes, for the reasons given above, I’ve only written one song since the quartet. Stefan George again. That was the day before yesterday and yesterday. Now a few more are on their way. I have so little peace here now. But it’s all still got to come together.12

", + "

Yes, for the reasons given above, I’ve only written one song since the quartet. Stefan George again. That was the day before yesterday and yesterday. Now a few more are on their way. I have so little peace here now. But it’s all still got to come together.12

", "

Webern’s visit to Carinthia was also interrupted – presumably from mid-July onwards – by a brief engagement at the theatre in Innsbruck. But by the end of July, Webern was writing to Schoenberg from Preglhof once again, and on 20 August he wrote:

", - "

Meanwhile, I have written 2 songs and two orchestral pieces. The songs are yet again quite different from before. The orchestral pieces too, of course.13

", + "

Meanwhile, I have written 2 songs and two orchestral pieces. The songs are yet again quite different from before. The orchestral pieces too, of course.13

", "

It is unclear precisely to which George songs Webern was referring in his letters to Schoenberg. The only George song by Webern that we can date more precisely thus remains Trauer I M 145, which he had written shortly before 25 May 1909, thus before his visit to Carinthia. Both the manuscript paper that he used and a clear shift in his handwriting style (when compared to the abovementioned songs that were probably composed in 1908) together suggest that, after Trauer I M 145, Webern also wrote the initial versions of the following songs in the course of the summer or autumn of 1909 (in some cases, these are the only versions of the songs in question):

", @@ -542,8 +542,8 @@ "

Trauer I M 145 (sole extant version in A – before 25 May 1909)

", "

On the basis of our assessment of Webern’s handwriting, a further manuscript can also be assigned to this period: “Dies ist ein Lied” M 133 (version 2, which is the basic layer in C). Since the autograph of “Ihr tratet zu dem Herde” M 142 ([C]) has not survived, it is naturally impossible to use these criteria to determine whether it was also written in 1909 or already in 1908.

", - "

In contrast to Webern’s compositions from before 1908 and after 1914, no conceptual sketches in pencil (i. e. continuity drafts, which were often dated) have survived for the George songs (the same applies to most other works composed in the same period). We only find pencil corrections to individual passages in the existing ink manuscripts. Webern commonly made such continuity drafts in pencil during other creative periods of his life, but it is impossible to make any general statement about whether this was also the case here, or whether the manuscripts in ink of the early versions of these songs served the function of a sketch during the compositional process.14

", - "

Six George songs were given their world premiere on 8 February 1910 in Vienna, at a concert of the Verein für Kunst und Kultur (the “Association for Art and Culture” that was the successor of the Ansorge Society). The same concert featured Webern’s Five Movements for String Quartet M 147–151 and songs by Bruno Walter and Karl Weigl.15 Webern’s songs were sung by Martha Winternitz-Dorda, accompanied by the composer. Just a few weeks earlier, on 14 January 1910, she had sung the world premiere of Schoenberg’s Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15 in a concert of his works organized by the same Association for Art and Culture. The programme booklet for the concert of 8 February gave the texts of Webern’s six George settings (listed below) under the collective title “Songs after Stefan George”, arranged in two groups according to the poetry volumes from which they were taken. No opus number was given (in the following schematic summary, we name the version of the song that was presumably performed on this occasion):

", + "

In contrast to Webern’s compositions from before 1908 and after 1914, no conceptual sketches in pencil (i. e. continuity drafts, which were often dated) have survived for the George songs (the same applies to most other works composed in the same period). We only find pencil corrections to individual passages in the existing ink manuscripts. Webern commonly made such continuity drafts in pencil during other creative periods of his life, but it is impossible to make any general statement about whether this was also the case here, or whether the manuscripts in ink of the early versions of these songs served the function of a sketch during the compositional process.14

", + "

Six George songs were given their world premiere on 8 February 1910 in Vienna, at a concert of the Verein für Kunst und Kultur (the “Association for Art and Culture” that was the successor of the Ansorge Society). The same concert featured Webern’s Five Movements for String Quartet M 147–151 and songs by Bruno Walter and Karl Weigl.15 Webern’s songs were sung by Martha Winternitz-Dorda, accompanied by the composer. Just a few weeks earlier, on 14 January 1910, she had sung the world premiere of Schoenberg’s Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15 in a concert of his works organized by the same Association for Art and Culture. The programme booklet for the concert of 8 February gave the texts of Webern’s six George settings (listed below) under the collective title “Songs after Stefan George”, arranged in two groups according to the poetry volumes from which they were taken. No opus number was given (in the following schematic summary, we name the version of the song that was presumably performed on this occasion):

", "

From Der siebente Ring

", "

Eingang M 138 (version 1)

", @@ -563,12 +563,12 @@ "

“Noch zwingt mich Treue” M 139: B (version 1)

", "

“Ihr tratet zu dem Herde” M 142: [C] (unknown version)

", - "

Webern’s compositions that were performed in this concert in 1910 were given several negative reviews. As an example, we offer here a passage from Julius Korngold’s review in the Neue Freie Presse in which he also makes explicit reference to the previous month’s concert in which Schoenberg’s George songs, Op. 15, were given their first performance:16

", + "

Webern’s compositions that were performed in this concert in 1910 were given several negative reviews. As an example, we offer here a passage from Julius Korngold’s review in the Neue Freie Presse in which he also makes explicit reference to the previous month’s concert in which Schoenberg’s George songs, Op. 15, were given their first performance:16

", "

We were recently occupied with the case of Schoenberg, and now we also have the case of Anton v. Webern, even if both are basically one. For Mr v. Webern is Schoenberg’s pupil, one who not only swears by his master’s words, but in many a respect outdoes him. This is a good thing; one feels less stressed, and experiences an almost comfortable indifference. One was able to engage with [the work of] the teacher, and indeed one was compelled to do so, while that is not the case with his disciple. […] [his] six songs by Stephan [sic] George also tread along Schoenberg’s path, and not just in his choice of poet. Chords from the new theory of harmony are accompanied by a psalmodizing singing voice using the relevant intervals. Even a musically trained, receptive listener here undergoes the psychological experience of thinking he is always hearing the same thing. Here, however, the words provide a certain degree of expression, though admittedly it is an expression throughout of mental dejection, of mental disintegration. If one listens in a spirit of good will, then one is reminded in their best moments of Octave Mirbeau’s painter, who ultimately only wanted to paint “souls”. . . .

", - "

May the reader here forgive our grim merriment. But when performed on Shrove Tuesday, this music involuntarily infects our Ash-Wednesday criticism with a certain carnival mood.17

", + "

May the reader here forgive our grim merriment. But when performed on Shrove Tuesday, this music involuntarily infects our Ash-Wednesday criticism with a certain carnival mood.17

", - "

The six songs that were given their first performance in 1910 were merely a selection of what were presumably a total of 14 George songs that Webern had already composed at that time. In two handwritten lists of titles, probably drawn up before the first performances of all the songs, he had already divided them into two groups designated “Op. 2” and “Op. 4”, with seven songs each.18 These two lists read as follows (with angle marks added in pencil, “[p]”, and in red crayon, “[r]”):

", + "

The six songs that were given their first performance in 1910 were merely a selection of what were presumably a total of 14 George songs that Webern had already composed at that time. In two handwritten lists of titles, probably drawn up before the first performances of all the songs, he had already divided them into two groups designated “Op. 2” and “Op. 4”, with seven songs each.18 These two lists read as follows (with angle marks added in pencil, “[p]”, and in red crayon, “[r]”):

", "

Sieben Lieder

", "

nach Gedichten von Stefan George

", @@ -596,43 +596,43 @@ "

aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“

", "

[r] 7 [b] „Ihr tratet zu dem herde….“ („Traurige Tänze“) aus „Jahr der Seele“

", - "

Several elements in these two lists19 prove that they were not written at the same time. Given that the sequence of opus numbers that Webern had begun with his Passacaglia M 127 (his “Op. 1”) was interrupted by his Five Movements for String Quartet M 147–151 (designated “Op. 3”), he probably compiled his Seven Songs (“Sieben Lieder”) “Op. 2” earlier than the songs that his second list designated as “Op. 4” (this would also seem to be confirmed by the fact that his “Op. 2” contains all the songs that he had presumably composed by 1908).20 Despite the differences between them and the presumed chronological distance between the two lists, they both bear traces of having been reworked at the same time; they have the abovementioned angle marks in pencil and red crayon on the left, alongside several lines of text (in the last line of “Op. 4” also between the song number and the opening line). Furthermore, some numbers in the list for “Op. 4” (“1”, “5” and “6”) have been crossed out in pencil. It is possible that the red crayon markings denote the choice of songs for the performance of 8 February 1910 (in which case the angle mark next to “2. ‘Dies ist ein lied...’” in the list for “Op. 2” would also refer to “1. Eingang.” above it).21 All the George songs, plus the two lists themselves, must in this case have been written before the date of this concert, and these two collections of songs would then presumably also have been among the compositions that Webern presented at a meeting that Schoenberg had organized with the director of Universal Edition, Emil Hertzka, on 9 October 1909 (though none of these works was subsequently accepted by the publishing house).22

", - "

However, these two compilations do not simply constitute more extensive versions of the collections later printed as Webern’s Opp. 3 and 4.23 For example, the ordering principle behind his Five Songs from Der siebente Ring by Stefan George, Op. 3, published in 1919, played no role in his selection of songs for “Op. 2”.24 In this Op. 3, Webern brought together all the texts that he had set to music from the poetic cycle Lieder (Songs) that George had included in Der siebente Ring and also kept those songs in the order of the original poems.25 “An Bachesranft” M 135, which features in this opus 3, also appears here in the list for “Op. 4”, while “So ich traurig bin” M 141, which was actually included in the Five Songs on Poems of Stefan George, Op. 4, published in 1923, was deleted from the list for the Seven Songs “Op. 4”.

", - "

In early June 1911, Webern sent “some 10 songs” to the Dreililien publishing company in Berlin, together with his Five Movements for String Quartet M 147–151 and his Four Pieces for Violin and Piano M 161–164.26 It is impossible to determine just which songs he sent. After all these works had been rejected, Webern submitted the same compositions to the publisher Tischer & Jagenberg in Cologne in late September or early October,27 though again without any of them being accepted for publication.28

", + "

Several elements in these two lists19 prove that they were not written at the same time. Given that the sequence of opus numbers that Webern had begun with his Passacaglia M 127 (his “Op. 1”) was interrupted by his Five Movements for String Quartet M 147–151 (designated “Op. 3”), he probably compiled his Seven Songs (“Sieben Lieder”) “Op. 2” earlier than the songs that his second list designated as “Op. 4” (this would also seem to be confirmed by the fact that his “Op. 2” contains all the songs that he had presumably composed by 1908).20 Despite the differences between them and the presumed chronological distance between the two lists, they both bear traces of having been reworked at the same time; they have the abovementioned angle marks in pencil and red crayon on the left, alongside several lines of text (in the last line of “Op. 4” also between the song number and the opening line). Furthermore, some numbers in the list for “Op. 4” (“1”, “5” and “6”) have been crossed out in pencil. It is possible that the red crayon markings denote the choice of songs for the performance of 8 February 1910 (in which case the angle mark next to “2. ‘Dies ist ein lied...’” in the list for “Op. 2” would also refer to “1. Eingang.” above it).21 All the George songs, plus the two lists themselves, must in this case have been written before the date of this concert, and these two collections of songs would then presumably also have been among the compositions that Webern presented at a meeting that Schoenberg had organized with the director of Universal Edition, Emil Hertzka, on 9 October 1909 (though none of these works was subsequently accepted by the publishing house).22

", + "

However, these two compilations do not simply constitute more extensive versions of the collections later printed as Webern’s Opp. 3 and 4.23 For example, the ordering principle behind his Five Songs from Der siebente Ring by Stefan George, Op. 3, published in 1919, played no role in his selection of songs for “Op. 2”.24 In this Op. 3, Webern brought together all the texts that he had set to music from the poetic cycle Lieder (Songs) that George had included in Der siebente Ring and also kept those songs in the order of the original poems.25 “An Bachesranft” M 135, which features in this opus 3, also appears here in the list for “Op. 4”, while “So ich traurig bin” M 141, which was actually included in the Five Songs on Poems of Stefan George, Op. 4, published in 1923, was deleted from the list for the Seven Songs “Op. 4”.

", + "

In early June 1911, Webern sent “some 10 songs” to the Dreililien publishing company in Berlin, together with his Five Movements for String Quartet M 147–151 and his Four Pieces for Violin and Piano M 161–164.26 It is impossible to determine just which songs he sent. After all these works had been rejected, Webern submitted the same compositions to the publisher Tischer & Jagenberg in Cologne in late September or early October,27 though again without any of them being accepted for publication.28

", "

In the autumn of 1911, Webern – along with Schoenberg and Alban Berg – received an invitation to contribute a musical supplement to the almanac Der blaue Reiter, published by Wassily Kandinsky and Franz Marc. For this he chose “Ihr tratet zu dem Herde” M 142. A letter that Webern wrote to Paul Königer reveals that he had also included this song in the selection sent to Tischer & Jagenberg:

", "

You want this song from me; yes, I have sent the two copies I possessed to the “blauer Reiter” and to the publisher.

", - "

But if it is still possible, I shall copy it out again from the sketch and give it to you as a gift.29

", + "

But if it is still possible, I shall copy it out again from the sketch and give it to you as a gift.29

", - "

Webern had thus presumably sent the sources [C] and [E], neither of which has survived, to the Cologne publisher and to Der blaue Reiter. When the publisher Gerhard Tischer rejected his music in late December 1911 or early January 1912, Webern got his works back and was able to inform Königer that he would send the promised copy of the song: “You’ll get my song soon. By the way, it will appear in the ‘blauer Reiter’.”30 (In late January, Webern was sent “the proofs of my song”,31 i. e. presumably the proofs from the music engraver [F] that were engraved after the copy he had sent). Der blaue Reiter was published in May 1912, and Webern received his copy (with GH) in early June.32

", + "

Webern had thus presumably sent the sources [C] and [E], neither of which has survived, to the Cologne publisher and to Der blaue Reiter. When the publisher Gerhard Tischer rejected his music in late December 1911 or early January 1912, Webern got his works back and was able to inform Königer that he would send the promised copy of the song: “You’ll get my song soon. By the way, it will appear in the ‘blauer Reiter’.”30 (In late January, Webern was sent “the proofs of my song”,31 i. e. presumably the proofs from the music engraver [F] that were engraved after the copy he had sent). Der blaue Reiter was published in May 1912, and Webern received his copy (with GH) in early June.32

", "

Already by the beginning of 1912, Webern was making plans for the private publication of a selection of nine songs together with others of his works, as he wrote in a letter to Berg:

", - "

At Schoenberg’s insistence, I have decided to publish 4 of my works (Passacaglia, 9 songs, Quartet [the first] and the older 6 orchestral pieces) with Straube (just like Schoenberg’s Quartet No. II). So I’ve got a lot to do with regard to revising these scores.33

", + "

At Schoenberg’s insistence, I have decided to publish 4 of my works (Passacaglia, 9 songs, Quartet [the first] and the older 6 orchestral pieces) with Straube (just like Schoenberg’s Quartet No. II). So I’ve got a lot to do with regard to revising these scores.33

", "

This decision had been preceded by discussions with Schoenberg in February, whose diary records his having looked through several works by Webern, expressly mentioning his songs:

", - "

Webern came on the afternoon in order to look through his songs with me (which he wants to publish). They again pleased me a lot. Truly an original talent. I can see that he’ll turn into something great.34

", + "

Webern came on the afternoon in order to look through his songs with me (which he wants to publish). They again pleased me a lot. Truly an original talent. I can see that he’ll turn into something great.34

", "

In his personal copy (GH) of the song that he published in Der blaue Reiter, Webern revised the musical text and added the opus number “2”. In the two abovementioned lists of the two sets of seven songs “Op. 2” and “Op. 4”, however, this song was still classified under “Op. 4”. So “Ihr tratet zu dem Herde” M 142 (version 2) was presumably part of a new collection of “9 songs” designated “Op. 2” that constituted a selection from all 14 of Webern’s George songs and replaced the two previous compilations. Just which other songs also belonged to this new collection remains undocumented. Ultimately, no Straube publication of the four aforementioned opus numbers came about. In fact, only the orchestral pieces M 152–157 were published thus in 1913, as Webern’s “Op. 4”.

", "

Instead, in a letter to Schoenberg sent in the summer of 1912, Webern mentions his plan to submit a different selection of his compositions to Simrock, from which he intentionally excluded his songs:

", - "

I’ll be sending the following to Simrock today already: the “Passacaglia”[,] the quartet and the violin pieces. I still haven’t copied out my songs properly, otherwise I would be sending them too. But I will speak of them in a letter. Perhaps he will then ask for the songs. By then I will have put them in order.35

", + "

I’ll be sending the following to Simrock today already: the “Passacaglia”[,] the quartet and the violin pieces. I still haven’t copied out my songs properly, otherwise I would be sending them too. But I will speak of them in a letter. Perhaps he will then ask for the songs. By then I will have put them in order.35

", - "

But just a few weeks later, Webern’s works were rejected once again.36 It remains unverifiable whether or not he had indeed subsequently “copied out [his] songs properly”. In early 1913, Webern ultimately sent an unspecified selection of his songs to the publishing house of Gadow in Hildburghausen, though again, clearly, without success.37

", - "

In the summer of 1914, Schoenberg once more approached Universal Edition about Webern.38 After a conversation between Webern and Hertzka that took place on 25 June, it was finally agreed that the latter would publish “the score of Op. 4, the chorus and a booklet of songs or the violin pieces39 by Webern the following year. However, no decision ever had to be made about whether to publish a volume of his songs or the Four Pieces for Violin and Piano M 161–164, because the First World War broke out just a few weeks after their meeting, and economic reasons forced the cancellation of their plans.40

", - "

A few days before the outbreak of war, thanks to the mediation of Alban Berg and Alfred Kalmus, the possibility nevertheless arose for Webern to contribute something to a collective publication being prepared by Universal Edition entitled Das moderne Lied (“The Modern Song”).41 Webern submitted three songs – none of which can be identified today42 – but none was included in the volume.43

", - "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", + "

But just a few weeks later, Webern’s works were rejected once again.36 It remains unverifiable whether or not he had indeed subsequently “copied out [his] songs properly”. In early 1913, Webern ultimately sent an unspecified selection of his songs to the publishing house of Gadow in Hildburghausen, though again, clearly, without success.37

", + "

In the summer of 1914, Schoenberg once more approached Universal Edition about Webern.38 After a conversation between Webern and Hertzka that took place on 25 June, it was finally agreed that the latter would publish “the score of Op. 4, the chorus and a booklet of songs or the violin pieces39 by Webern the following year. However, no decision ever had to be made about whether to publish a volume of his songs or the Four Pieces for Violin and Piano M 161–164, because the First World War broke out just a few weeks after their meeting, and economic reasons forced the cancellation of their plans.40

", + "

A few days before the outbreak of war, thanks to the mediation of Alban Berg and Alfred Kalmus, the possibility nevertheless arose for Webern to contribute something to a collective publication being prepared by Universal Edition entitled Das moderne Lied (“The Modern Song”).41 Webern submitted three songs – none of which can be identified today42 – but none was included in the volume.43

", + "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", "

Neun Lieder | op[.] 6 [“6” corrected from: “5”; the whole line has been added subsequently in pencil] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", - "

In addition to Webern’s efforts to get a selection of his George songs into print, there were also repeated plans for further performances of them, after the abovementioned first performance of six songs in February 1910. An unspecified number of Webern’s songs was initially planned for inclusion in a concert in Vienna on 24 April 1911, for example, though they were dropped for various reasons.46 Webern temporarily considered replacing a performance of his Pieces for Violin M 161–164, planned for 29 June 1912 in Vienna, with “4 songs” instead.47 And when Schoenberg had the idea of a joint “evening of compositions” by Berg and Webern in Berlin in autumn 1913, Webern thought of including several songs alongside his string quartet compositions M 147–151, M 171–174 and M 178–180:

", + "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", + "

In addition to Webern’s efforts to get a selection of his George songs into print, there were also repeated plans for further performances of them, after the abovementioned first performance of six songs in February 1910. An unspecified number of Webern’s songs was initially planned for inclusion in a concert in Vienna on 24 April 1911, for example, though they were dropped for various reasons.46 Webern temporarily considered replacing a performance of his Pieces for Violin M 161–164, planned for 29 June 1912 in Vienna, with “4 songs” instead.47 And when Schoenberg had the idea of a joint “evening of compositions” by Berg and Webern in Berlin in autumn 1913, Webern thought of including several songs alongside his string quartet compositions M 147–151, M 171–174 and M 178–180:

", - "

And then songs by me. It would be nicest of all if [Marya] Freund sang. Do you think that could be organized? I would like to send her the songs soon. May I ask you for the address of Ms Freund?48

", + "

And then songs by me. It would be nicest of all if [Marya] Freund sang. Do you think that could be organized? I would like to send her the songs soon. May I ask you for the address of Ms Freund?48

", - "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", - "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", + "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", + "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", "

I    “Dies ist ein Lied” M 133 (version 4)

", "

II   “Im Windesweben” M 134 (version 3)

", @@ -640,8 +640,8 @@ "

IV  “Im Morgentaun” M 136 (version 3)

", "

V   “Kahl reckt der Baum” M 137 (version 5)

", - "

Webern finally concluded a contract with Universal Edition in August 1920, signing over the rights to his Op. 1 (Passacaglia M 127), Op. 2 (“Entflieht auf leichten Kähnen” M 129), Op. 3 (George songs M 133–137) and Op. 6 (Pieces for Orchestra M 152–157), and Universal subsequently also took on the remaining copies of the edition of the Five Songs from Der siebente Ring by Stefan George, Op. 3, that had been printed by the Verein in 1919.58

", - "

For the publication of his Five Songs on Poems of Stefan George, Op. 4, Webern had a copy, I, made of the versions of the songs contained in his autograph fair copy H. It is unclear just when he had this done, though it was presumably not long after he signed the contract for the work in April 1923.59 Print J was published in August 1923 and contains the following songs:

", + "

Webern finally concluded a contract with Universal Edition in August 1920, signing over the rights to his Op. 1 (Passacaglia M 127), Op. 2 (“Entflieht auf leichten Kähnen” M 129), Op. 3 (George songs M 133–137) and Op. 6 (Pieces for Orchestra M 152–157), and Universal subsequently also took on the remaining copies of the edition of the Five Songs from Der siebente Ring by Stefan George, Op. 3, that had been printed by the Verein in 1919.58

", + "

For the publication of his Five Songs on Poems of Stefan George, Op. 4, Webern had a copy, I, made of the versions of the songs contained in his autograph fair copy H. It is unclear just when he had this done, though it was presumably not long after he signed the contract for the work in April 1923.59 Print J was published in August 1923 and contains the following songs:

", "

I     Eingang (“Welt der Gestalten”) M 138 (version 3)

", "

II   “Noch zwingt mich Treue” M 139 (version 3)

", @@ -649,20 +649,20 @@ "

IV  “So ich traurig bin” M 141 (version 2)

", "

V   “Ihr tratet zu dem Herde” M 142 (version 3)

", - "

The world premiere of the Five Songs on Poems of Stefan George, Op. 4, was given by Jenny Jungbauer und Ilse Fromm-Michaels on 23 November 1923 in Hamburg at a cycle of concerts entitled “New Music” that was organized by Josef Rufer und Hans Heinz Stuckenschmidt. Webern was presumably not in attendance, nor had he been involved in preparations for the performance.60 The complete collection of Op. 4 was performed in Webern’s presence only on 10 February 1940 in Basel in a concert of the International Society for Contemporary Music (hereinafter ISCM) featuring Marguerite Gradmann-Lüscher accompanied by Erich Schmid, at which they also performed three of Webern’s Four Songs, Op. 12, alongside songs by Schoenberg and Berg.61   

", + "

The world premiere of the Five Songs on Poems of Stefan George, Op. 4, was given by Jenny Jungbauer und Ilse Fromm-Michaels on 23 November 1923 in Hamburg at a cycle of concerts entitled “New Music” that was organized by Josef Rufer und Hans Heinz Stuckenschmidt. Webern was presumably not in attendance, nor had he been involved in preparations for the performance.60 The complete collection of Op. 4 was performed in Webern’s presence only on 10 February 1940 in Basel in a concert of the International Society for Contemporary Music (hereinafter ISCM) featuring Marguerite Gradmann-Lüscher accompanied by Erich Schmid, at which they also performed three of Webern’s Four Songs, Op. 12, alongside songs by Schoenberg and Berg.61   

", "

As in the latter case, further performances of Webern’s George songs during his lifetime often took place in various combinations comprising selections from the published collections Opp. 3 and 4 and the Four Songs, Op. 12. In addition to the performances already mentioned from the years 1910, 1919 (the world premiere of Op. 3) and 1923 (the world premiere of Op. 4), we currently have documentary evidence of the following:

", - "

– 20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", - "

– 17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", - "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", - "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", - "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", - "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", - "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", - "

– 17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", - "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", - "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", - "

– 5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", + "

– 20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", + "

– 17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", + "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", + "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", + "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", + "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", + "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", + "

– 17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", + "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", + "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", + "

– 5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Five Songs on Poems of Stefan George, Op. 4 (JH), we find various annotations pertaining to performances, and indications of durations. It is impossible to prove whether or not these are connected with one of the abovementioned performances (though perhaps with the first performance of the entire collection in Basel in 1940).

" ] @@ -672,42 +672,42 @@ "blockHeader": "Four Songs, Op. 12", "blockContent": [ "

The dates of composition of the individual continuity drafts for the Four Songs, Op. 12 can be divided into two clearly separate phases. Webern initially composed “Der Tag ist vergangen” M 212 and “Schien mir’s, als ich sah die Sonne” M 213 in early 1915; in the spring of 1917, he wrote Gleich und Gleich M 216 and Die geheimnisvolle Flöte M 217. Both of these phases occurred during a creative period that lasted from ca 1914 to the mid-1920s that was notable for Webern’s having concentrated on vocal composition, especially works for solo voice with ensemble accompaniment, most of which were published from 1924 onwards in his Opp. 13–19 (cf. AWG I/4). The genesis of the Four Songs, Op. 12 should also be seen in this context. Since they were composed for voice and piano, the present edition has assigned them to AWG Section I/5.

", - "

The gap of more than two years that occurred during the composition of the songs of Op. 12 was a result of a radical historical caesura: the First World War. When it broke out in late July 1914, it also forced Webern to change all his hitherto plans. He had been appointed as a conductor to various theatres from 1909 onwards, but had suffered repeated health problems, and so had undergone therapy with the psychoanalyst Alfred Adler from August to October 1913. After this, Webern once more felt in a condition to be able to assume conducting duties. He had accordingly accepted such a position in Stettin (today Szczecin in Poland) for the summer of 1914, but this engagement was cancelled because of the war. Webern was initially enthusiastic about the onset of war, and now sought to enrol in the military instead. However, his age and state of health meant that he was not called up until November 1914. In February 1915, he was stationed first in Klagenfurt and then in Gorizia as part of a “one-year” training course.73 Apart from several brief interruptions, Webern remained in military service until the end of 1916.

", - "

The two songs with piano that Webern composed in January 1915 were the first compositions that he completed after the beginning of the war, and the only works that he completed before being deployed. Webern had written to Heinrich Jalowetz in mid-December 1914, saying that he had “begun something again”,74 and reported to him once more on 10 January about his continuing productivity – a few days before dating his continuity draft for “Der Tag ist vergangen” M 212 in A (13 January 1915): “I am now writing something new again, i. e. I’m really only just getting down to it.”75

", - "

The text for “Der Tag ist vergangen” M 212 was taken from Peter Rosegger’s novel Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 This book is about a historical figure from the so-called Tyrolean freedom struggles after 1805 whose crises of conscience are depicted as akin to the martyrdom of a saint. He is torn between his social and religious longings for peace on the one hand and his efforts to help attain political and national emancipation on the other. Webern had read the book in early 1915, as can be seen from his letter to Arnold Schoenberg of 9 January in which he quotes a lengthy passage from it about a revelatory religious experience.77 However, Rosegger had already been of great importance to Webern since 1912 at the latest, as is especially clear from the numerous times that Webern mentions him in his letters to Alban Berg and Schoenberg.78 Besides Webern’s interest in the religious sphere evoked in the book, its nationalistic tenor might well have corresponded to his own euphoria for the war after its outbreak in mid-1914. In this two-strophe poem (which in older editions of the novel was published as four strophes), Rosegger uses formulae from traditional, popular songs of pilgrimage.79 He situates his poem in an evening scene of an act of military resistance disguised as a mass pilgrimage, in which several pilgrims sing the “melancholy notes of this song” with “bright voices”.

", - "

Webern presumably made the fair copy of version 1 of “Der Tag ist vergangen” M 212 in B shortly after the dated continuity draft. It is impossible to determine precisely when he made the revisions in A and B and the resulting copy of version 2 in C. Nevertheless, the red ink that he used for the text underlay in both B and C as well as the cursive script indicate that they were all made at a similar time, presumably before Webern was stationed in Klagenfurt. In any case, version 2 served as the engraver’s copy for the single print of “Der Tag ist vergangen” M 212 in the Musikblätter des Anbruch in May 1922 (E).80 When it was to be published in the collection Four Songs, Op. 12 (G) in 1925, Webern made his own engraver’s copy (version 3 in F). As with many of his other settings of Rosegger’s texts, Webern refrained here from indicating the author in all the copies and prints of this song. In his Four Songs, Op. 12, he identifies it as a “folk song”.

", - "

In a letter to Schoenberg dated 21 January 1915, Webern tells him he has completed a “song with piano” (presumably “Der Tag ist vergangen” M 212) and mentions that he has “begun” two other songs.81 One of these might have been “Schien mir’s, als ich sah die Sonne” M 213, whose continuity draft in A is dated 31 January 1915 (the second song was presumably the Trakl setting “In der Heimat” M 214, which remained unfinished).

", - "

The text of “Schien mir’s, als ich sah die Sonne” M 213 was taken from August Strindberg’s play Ghost Sonata (whose original Swedish title was Spöksonaten). A copy of the German translation by Emil Schering has been preserved in Webern’s library that bears the autograph date “2. VII[.] 09.” (which was Wilhelmine Mörtl’s 23rd birthday).82 Webern had already discovered Strindberg’s works in 1908, after which this author played a decisive role in his communications with both Schoenberg and Berg.83 The poem in question appears twice as a song in Schering’s edition of the play: at the close of the second act, and shortly before the end of the third and final act, when the (fatal) exchange between the “Student” and the “Young Lady” takes place. The song is sung by the Student, who is accompanied the first time by the Young Lady “on a harp”, while the second time, after the death of the Young Lady, it “whispers in the strings of the harp”.

", + "

The gap of more than two years that occurred during the composition of the songs of Op. 12 was a result of a radical historical caesura: the First World War. When it broke out in late July 1914, it also forced Webern to change all his hitherto plans. He had been appointed as a conductor to various theatres from 1909 onwards, but had suffered repeated health problems, and so had undergone therapy with the psychoanalyst Alfred Adler from August to October 1913. After this, Webern once more felt in a condition to be able to assume conducting duties. He had accordingly accepted such a position in Stettin (today Szczecin in Poland) for the summer of 1914, but this engagement was cancelled because of the war. Webern was initially enthusiastic about the onset of war, and now sought to enrol in the military instead. However, his age and state of health meant that he was not called up until November 1914. In February 1915, he was stationed first in Klagenfurt and then in Gorizia as part of a “one-year” training course.73 Apart from several brief interruptions, Webern remained in military service until the end of 1916.

", + "

The two songs with piano that Webern composed in January 1915 were the first compositions that he completed after the beginning of the war, and the only works that he completed before being deployed. Webern had written to Heinrich Jalowetz in mid-December 1914, saying that he had “begun something again”,74 and reported to him once more on 10 January about his continuing productivity – a few days before dating his continuity draft for “Der Tag ist vergangen” M 212 in A (13 January 1915): “I am now writing something new again, i. e. I’m really only just getting down to it.”75

", + "

The text for “Der Tag ist vergangen” M 212 was taken from Peter Rosegger’s novel Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 This book is about a historical figure from the so-called Tyrolean freedom struggles after 1805 whose crises of conscience are depicted as akin to the martyrdom of a saint. He is torn between his social and religious longings for peace on the one hand and his efforts to help attain political and national emancipation on the other. Webern had read the book in early 1915, as can be seen from his letter to Arnold Schoenberg of 9 January in which he quotes a lengthy passage from it about a revelatory religious experience.77 However, Rosegger had already been of great importance to Webern since 1912 at the latest, as is especially clear from the numerous times that Webern mentions him in his letters to Alban Berg and Schoenberg.78 Besides Webern’s interest in the religious sphere evoked in the book, its nationalistic tenor might well have corresponded to his own euphoria for the war after its outbreak in mid-1914. In this two-strophe poem (which in older editions of the novel was published as four strophes), Rosegger uses formulae from traditional, popular songs of pilgrimage.79 He situates his poem in an evening scene of an act of military resistance disguised as a mass pilgrimage, in which several pilgrims sing the “melancholy notes of this song” with “bright voices”.

", + "

Webern presumably made the fair copy of version 1 of “Der Tag ist vergangen” M 212 in B shortly after the dated continuity draft. It is impossible to determine precisely when he made the revisions in A and B and the resulting copy of version 2 in C. Nevertheless, the red ink that he used for the text underlay in both B and C as well as the cursive script indicate that they were all made at a similar time, presumably before Webern was stationed in Klagenfurt. In any case, version 2 served as the engraver’s copy for the single print of “Der Tag ist vergangen” M 212 in the Musikblätter des Anbruch in May 1922 (E).80 When it was to be published in the collection Four Songs, Op. 12 (G) in 1925, Webern made his own engraver’s copy (version 3 in F). As with many of his other settings of Rosegger’s texts, Webern refrained here from indicating the author in all the copies and prints of this song. In his Four Songs, Op. 12, he identifies it as a “folk song”.

", + "

In a letter to Schoenberg dated 21 January 1915, Webern tells him he has completed a “song with piano” (presumably “Der Tag ist vergangen” M 212) and mentions that he has “begun” two other songs.81 One of these might have been “Schien mir’s, als ich sah die Sonne” M 213, whose continuity draft in A is dated 31 January 1915 (the second song was presumably the Trakl setting “In der Heimat” M 214, which remained unfinished).

", + "

The text of “Schien mir’s, als ich sah die Sonne” M 213 was taken from August Strindberg’s play Ghost Sonata (whose original Swedish title was Spöksonaten). A copy of the German translation by Emil Schering has been preserved in Webern’s library that bears the autograph date “2. VII[.] 09.” (which was Wilhelmine Mörtl’s 23rd birthday).82 Webern had already discovered Strindberg’s works in 1908, after which this author played a decisive role in his communications with both Schoenberg and Berg.83 The poem in question appears twice as a song in Schering’s edition of the play: at the close of the second act, and shortly before the end of the third and final act, when the (fatal) exchange between the “Student” and the “Young Lady” takes place. The song is sung by the Student, who is accompanied the first time by the Young Lady “on a harp”, while the second time, after the death of the Young Lady, it “whispers in the strings of the harp”.

", "

Webern had already begun a setting of this poem in a short sketch for women’s and children’s chorus (“Schien mir’s, als ich sah die Sonne” M 198), which he dated “Winter 1913/1914” (though this date was presumably added later). This sketch, however, never proceeded beyond the first line. The copy of the song with piano “Schien mir’s als ich sah die Sonne” M 213 in C was based on the continuity draft in A and bears numerous traces of having been revised. It is not possible, however, to discern the musical text unambiguously as it existed before those corrections. The use of cursive script and of the same red ink for the text underlay that we find in the copies of “Der Tag ist vergangen” M 212 in B and C suggests that the basic layer of “Schien mir’s als ich sah die Sonne” M 213 was written at roughly the same time. It is therefore possible that it was also composed before Webern was stationed in Klagenfurt in February 1915.

", "

No compositional efforts of Webern’s have survived from his time in the military in 1915 and 1916. He wrote to Jalowetz as follows in January 1917:

", - "

I’m now recovering gradually from these 2 years – mentally. Only now can I really feel the effect. I’m slowly getting back on track, finding my way. I’m gradually remembering what I’d been thinking before, and where I had reached.84

", + "

I’m now recovering gradually from these 2 years – mentally. Only now can I really feel the effect. I’m slowly getting back on track, finding my way. I’m gradually remembering what I’d been thinking before, and where I had reached.84

", - "

The first composition that Webern completed after his two years in the military was Gleich und Gleich M 216, whose continuity draft in A is dated 31 March 1917. This was only Webern’s second-ever setting of Goethe, after his song with piano Blumengruß M 2085 of 1903. We have no details of Webern’s Goethe reception before 1917, though we do find sporadic mentions of his having read the poet.86 According to the handwritten list of books and scores that Webern began keeping in the 1910s, he owned the following edition of Goethe: Sämtliche Werke. Jubiläumsausgabe in 40 volumes, Stuttgart and Berlin: Cotta, [1902–1912].87 Further traces of his compositional engagement with Goethe’s works during these years can be found in two further sketches/fragments from 1917 (Gegenwart for voice [baritone?] and piano M 220) and 1918 (Cirrus for voice and orchestra M 235).88

", + "

The first composition that Webern completed after his two years in the military was Gleich und Gleich M 216, whose continuity draft in A is dated 31 March 1917. This was only Webern’s second-ever setting of Goethe, after his song with piano Blumengruß M 2085 of 1903. We have no details of Webern’s Goethe reception before 1917, though we do find sporadic mentions of his having read the poet.86 According to the handwritten list of books and scores that Webern began keeping in the 1910s, he owned the following edition of Goethe: Sämtliche Werke. Jubiläumsausgabe in 40 volumes, Stuttgart and Berlin: Cotta, [1902–1912].87 Further traces of his compositional engagement with Goethe’s works during these years can be found in two further sketches/fragments from 1917 (Gegenwart for voice [baritone?] and piano M 220) and 1918 (Cirrus for voice and orchestra M 235).88

", "

Version 1 of Gleich und Gleich M 216 fully notated in C presumably dates from shortly after the continuity draft. It reveals changes that point to version 2 in F, which was prepared for the song’s publication in 1925. Another, unrevised copy of version 1, found in D, can be confirmed as postdating C, not least because its text underlay is written in Latin script. However, we do not know the precise date when this version was committed to paper, nor why it was made. The designation “Op. 12” in its title suggests that its earliest possible date is some time after April 1920 (see below).

", - "

In one of his later lectures, “Wege zur neuen Musik” (“Paths to New Music”) of early 1932, Webern mentions the introductory measures of Gleich und Gleich M 216 as an example of his having already grasped intuitively the principles of later twelve-tone composition, since they present all twelve pitch classes of the chromatic scale. “The law was not yet known to us back then, but it had long been felt.”89 The next Goethe settings that Webern completed, the Two Songs for Mixed Chorus, Op. 19, only date from 1925/26. They are among his first explicitly twelve-tone compositions and are also the last settings of Goethe that he ever completed.

", - "

The continuity draft of Die geheimnisvolle Flöte M 217 in A is dated 10 April 1917, thus immediately after Webern had completed Gleich und Gleich M 216 (though his letters of this time to Berg, Jalowetz and Schoenberg mention neither of these works). The text he set in Die geheimnisvolle Flöte is a free adaptation of a poem by the Chinese writer Li Tai-po (today more commonly referred to as Li Bai), taken from Hans Bethge’s collection Die chinesische Flöte (The Chinese Flute), which was first published in 1907. The copy of the fourth edition of this book that has survived in Webern’s library bears the handwritten date “3. 12. 12.” (thus 3 December 1912, his 29th birthday) on the reverse of the front cover.90 Webern will have been aware of several poems from this collection at least one year previously, as Gustav Mahler had set them in his Lied von der Erde, whose world premiere Webern had attended on 20 November 1911 in Munich.91 Webern composed Die Einsame M 199 from Die chinesische Flöte for voice and orchestra in February 1914, and followed this in July 1917 with In der Fremde M 223, later including both these songs in his Four Songs for Voice and Orchestra, Op. 13. Two more unfinished sketches by Webern have survived that use texts from Die chinesische Flöte: Nächtliches Bild M 233 (from autumn 1918) and Der Frühlingsregen M 244 (probably from 1920).

", + "

In one of his later lectures, “Wege zur neuen Musik” (“Paths to New Music”) of early 1932, Webern mentions the introductory measures of Gleich und Gleich M 216 as an example of his having already grasped intuitively the principles of later twelve-tone composition, since they present all twelve pitch classes of the chromatic scale. “The law was not yet known to us back then, but it had long been felt.”89 The next Goethe settings that Webern completed, the Two Songs for Mixed Chorus, Op. 19, only date from 1925/26. They are among his first explicitly twelve-tone compositions and are also the last settings of Goethe that he ever completed.

", + "

The continuity draft of Die geheimnisvolle Flöte M 217 in A is dated 10 April 1917, thus immediately after Webern had completed Gleich und Gleich M 216 (though his letters of this time to Berg, Jalowetz and Schoenberg mention neither of these works). The text he set in Die geheimnisvolle Flöte is a free adaptation of a poem by the Chinese writer Li Tai-po (today more commonly referred to as Li Bai), taken from Hans Bethge’s collection Die chinesische Flöte (The Chinese Flute), which was first published in 1907. The copy of the fourth edition of this book that has survived in Webern’s library bears the handwritten date “3. 12. 12.” (thus 3 December 1912, his 29th birthday) on the reverse of the front cover.90 Webern will have been aware of several poems from this collection at least one year previously, as Gustav Mahler had set them in his Lied von der Erde, whose world premiere Webern had attended on 20 November 1911 in Munich.91 Webern composed Die Einsame M 199 from Die chinesische Flöte for voice and orchestra in February 1914, and followed this in July 1917 with In der Fremde M 223, later including both these songs in his Four Songs for Voice and Orchestra, Op. 13. Two more unfinished sketches by Webern have survived that use texts from Die chinesische Flöte: Nächtliches Bild M 233 (from autumn 1918) and Der Frühlingsregen M 244 (probably from 1920).

", "

The basic layer of the copy in C of Die geheimnisvolle Flöte M 217 (version “0”) can no longer be deciphered clearly. However, as in the case of Gleich und Gleich M 216, also in C, it was probably written shortly after the continuity draft and contains alterations in ink and pencil. Together with an intermediate stage that also cannot be determined with any clarity, these changes might have been pointing towards version 1 found in F, which was made with a view to publishing the song in 1925.

", - "

It was in 1920 at the latest when Webern brought together these four songs with piano to form a collection with an opus number. It was presumably sometime after April 1920 that Webern drew up a handwritten list of his works for Universal Edition in which he designated these as “4 Songs with Piano” and gave them the number “Op. 10”.92 This is the number that they were originally given on the cover page of source C, though this was later deleted and corrected to “Op. 12”.93 This change was made no earlier than the beginning of 1921, when Webern was busy numbering other works. In an article published by Egon Wellesz in February 1921, these songs are explicitly mentioned as being Webern’s “opus 12”.94 The music examples given in this article were prepared on the basis of version 2 of “Der Tag ist vergangen” M 212 and version 1 of Gleich und Gleich M 216, and thus presumably used C as their source (or possibly D in the case of M 216 in the corresponding stage of corrections). In May 1922, version 2 of “Der Tag ist vergangen” M 212 was published separately (though with a remark that it belonged to Op. 12) as a music supplement to the Musikblätter des Anbruch (E). Webern revised his personal copy of “Der Tag ist vergangen” M 212, EH, resulting in version 3, and he revised Gleich und Gleich M 216 in C, resulting in version 2 of the song. By the turn of the year 1924/25 at the latest, Webern had produced an engraver’s copy, F, of his Four Songs, Op. 12, which he then offered to Universal Edition in a letter of 3 January 1925 to its director, Emil Hertzka, in which he mentioned it as being one of the works he “currently had ‘in stock’”. He clearly submitted the work to them shortly afterwards.95 On 12 June of that year, he sent the second proofs of the engraved music back to his publisher, and on 20 June he returned the proof of the title page.96 Print G of the Four Songs, Op. 12 was published on 30 September 1925 in an edition of 499 copies.97

", + "

It was in 1920 at the latest when Webern brought together these four songs with piano to form a collection with an opus number. It was presumably sometime after April 1920 that Webern drew up a handwritten list of his works for Universal Edition in which he designated these as “4 Songs with Piano” and gave them the number “Op. 10”.92 This is the number that they were originally given on the cover page of source C, though this was later deleted and corrected to “Op. 12”.93 This change was made no earlier than the beginning of 1921, when Webern was busy numbering other works. In an article published by Egon Wellesz in February 1921, these songs are explicitly mentioned as being Webern’s “opus 12”.94 The music examples given in this article were prepared on the basis of version 2 of “Der Tag ist vergangen” M 212 and version 1 of Gleich und Gleich M 216, and thus presumably used C as their source (or possibly D in the case of M 216 in the corresponding stage of corrections). In May 1922, version 2 of “Der Tag ist vergangen” M 212 was published separately (though with a remark that it belonged to Op. 12) as a music supplement to the Musikblätter des Anbruch (E). Webern revised his personal copy of “Der Tag ist vergangen” M 212, EH, resulting in version 3, and he revised Gleich und Gleich M 216 in C, resulting in version 2 of the song. By the turn of the year 1924/25 at the latest, Webern had produced an engraver’s copy, F, of his Four Songs, Op. 12, which he then offered to Universal Edition in a letter of 3 January 1925 to its director, Emil Hertzka, in which he mentioned it as being one of the works he “currently had ‘in stock’”. He clearly submitted the work to them shortly afterwards.95 On 12 June of that year, he sent the second proofs of the engraved music back to his publisher, and on 20 June he returned the proof of the title page.96 Print G of the Four Songs, Op. 12 was published on 30 September 1925 in an edition of 499 copies.97

", "

Webern received an enthusiastic reaction from Alban Berg, who wrote to him just a few days after these songs were published:

", - "

What great pleasure you have given me, my dear, with your Op. 12! This is once again – just like everything by you – a real Webern. Even the way you have compiled the wonderful texts and have brought them together into a single whole! Not to mention the music! Yes, it seems to me as if I were to see you in a completely new way. What a tone you strike in the Strindberg song. And overall, what variety there is in these 4 songs. The last one, for example: such gracefulness. One can safely say that we will not find this anywhere else in the whole music repertoire –: such a song by you is for me a veritable fount of joy, a joy that shines out over my whole being. It’s like when the sun suddenly bursts forth on a gloomy day, and you just don’t know why you suddenly feel happy again.98

", + "

What great pleasure you have given me, my dear, with your Op. 12! This is once again – just like everything by you – a real Webern. Even the way you have compiled the wonderful texts and have brought them together into a single whole! Not to mention the music! Yes, it seems to me as if I were to see you in a completely new way. What a tone you strike in the Strindberg song. And overall, what variety there is in these 4 songs. The last one, for example: such gracefulness. One can safely say that we will not find this anywhere else in the whole music repertoire –: such a song by you is for me a veritable fount of joy, a joy that shines out over my whole being. It’s like when the sun suddenly bursts forth on a gloomy day, and you just don’t know why you suddenly feel happy again.98

", - "

The world premiere of Webern’s Op. 12 in its entirety took place on 8 January 1927 in the small hall of the Vienna Musikverein, sung by the Dutch singer Co van Geuns with Eduard Steuermann at the piano. The same concert saw the world premiere of Alban Berg’s Lyric Suite, performed by the Vienna String Quartet (the Kolisch Quartet), plus a performance under Webern’s baton of Johann Sebastian Bach’s Concerto for Four Pianos BWV 1065.99 Webern wrote to Schoenberg a few days later, offering a succinct commentary on the performance of his songs: “On the same evening as Berg’s quartet, a song opus of mine was also given its first performance. It went very well.”100 The Arbeiter-Zeitung afterwards featured a positive review of the concert in which it placed Berg’s work in the foreground and offered a comparatively brief report of Webern’s Four Songs, Op. 12:

", + "

The world premiere of Webern’s Op. 12 in its entirety took place on 8 January 1927 in the small hall of the Vienna Musikverein, sung by the Dutch singer Co van Geuns with Eduard Steuermann at the piano. The same concert saw the world premiere of Alban Berg’s Lyric Suite, performed by the Vienna String Quartet (the Kolisch Quartet), plus a performance under Webern’s baton of Johann Sebastian Bach’s Concerto for Four Pianos BWV 1065.99 Webern wrote to Schoenberg a few days later, offering a succinct commentary on the performance of his songs: “On the same evening as Berg’s quartet, a song opus of mine was also given its first performance. It went very well.”100 The Arbeiter-Zeitung afterwards featured a positive review of the concert in which it placed Berg’s work in the foreground and offered a comparatively brief report of Webern’s Four Songs, Op. 12:

", - "

New songs by Anton  W e b e r n, which Co van  G e u n s  sang with exceptional musicality, led by Eduard  S t e u e r m a n n  at the piano, were also a great success. Here, brief lyrical poems are pressed into musical forms whose composition cannot be clear to the impartial listener. So he must hold on to the expressive values that can be found here in abundance, even if the strange course of the singing voice makes it difficult to follow all the time. The songs had to be repeated and this made them easier to understand.101

", + "

New songs by Anton  W e b e r n, which Co van  G e u n s  sang with exceptional musicality, led by Eduard  S t e u e r m a n n  at the piano, were also a great success. Here, brief lyrical poems are pressed into musical forms whose composition cannot be clear to the impartial listener. So he must hold on to the expressive values that can be found here in abundance, even if the strange course of the singing voice makes it difficult to follow all the time. The songs had to be repeated and this made them easier to understand.101

", - "

According to a diary entry by Webern, Gleich und Gleich M 216 had already been sung by a “Dutch [woman] singer” in October 1926,102 presumably also van Geuns, who also performed songs by Webern (probably also from Op. 12) and by Alexander Zemlinsky in Cologne sometime after the world premiere of the Four Songs, Op. 12 of early January 1927.103 As with the George songs, several performances during Webern’s lifetime (probably with his consent or even at his suggestion) took place at which only a selection of the Four Songs, Op. 12 was sung, or at which selected songs from that opus were combined with individual numbers from the George songs Opp. 3 and 4. Apart from the performances with van Geuns already mentioned above, we have proof of the following concerts having taken place:

", + "

According to a diary entry by Webern, Gleich und Gleich M 216 had already been sung by a “Dutch [woman] singer” in October 1926,102 presumably also van Geuns, who also performed songs by Webern (probably also from Op. 12) and by Alexander Zemlinsky in Cologne sometime after the world premiere of the Four Songs, Op. 12 of early January 1927.103 As with the George songs, several performances during Webern’s lifetime (probably with his consent or even at his suggestion) took place at which only a selection of the Four Songs, Op. 12 was sung, or at which selected songs from that opus were combined with individual numbers from the George songs Opp. 3 and 4. Apart from the performances with van Geuns already mentioned above, we have proof of the following concerts having taken place:

", - "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", - "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", - "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", - "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", - "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", - "

– 9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", - "

– 21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", - "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", - "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", + "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", + "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", + "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", + "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", + "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", + "

– 9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", + "

– 21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", + "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", + "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" ] @@ -717,45 +717,45 @@ "blockHeader": "Three Songs from Viae inviae by Hildegard Jone, Op. 23", "blockContent": [ "

The Three Songs from Viae inviae by Hildegard Jone, Op. 23, which Webern began in early 1933 and completed in March 1934, were his first songs with piano accompaniment to use the method of “composing with twelve tones” – as Webern usually referred to it – and they were also the first vocal work that he had completed since his Two Songs for Mixed Chorus with the Accompaniment of Celeste, Guitar, Violin, Clarinet and Bass Clarinet, Op. 19, composed between late 1925 and the summer of 1926. Webern’s title uses the term “Gesang” for “song”, not “Lied”, which serves as an indication of the extended length of the individual songs when compared to most of his other vocal works. These were also Webern’s first compositions to texts by Hildegard Jone, whose poetry provided him with the basis for all the vocal works that he subsequently completed.

", - "

Webern presumably first met Jone and her husband, the sculptor Josef Humplik, in autumn 1926 at an exhibition of the Hagenbund in Vienna. This acquaintance led to plans for a collaboration between Webern and Jone by 1928 at the latest,113 and resulted in Jone writing “three opera texts”.114 A letter exists from Webern to Jone, written over a year later, in which he wrote that he wanted “to talk about your dramas”,115 though it remains unclear whether he is referring to the aforementioned three libretti or to other texts by Jone. However, it does seem that Jone still intended to “write [...] a ‘libretto’” for Webern.116 We know that Webern wrote to Jone in September 1930 to apologize

", + "

Webern presumably first met Jone and her husband, the sculptor Josef Humplik, in autumn 1926 at an exhibition of the Hagenbund in Vienna. This acquaintance led to plans for a collaboration between Webern and Jone by 1928 at the latest,113 and resulted in Jone writing “three opera texts”.114 A letter exists from Webern to Jone, written over a year later, in which he wrote that he wanted “to talk about your dramas”,115 though it remains unclear whether he is referring to the aforementioned three libretti or to other texts by Jone. However, it does seem that Jone still intended to “write [...] a ‘libretto’” for Webern.116 We know that Webern wrote to Jone in September 1930 to apologize

", - "

that your dramas, which are so beautiful, had obviously not found me in the right state of mind for such work, despite the fact that I was very serious at the time about composing such things.117

", + "

that your dramas, which are so beautiful, had obviously not found me in the right state of mind for such work, despite the fact that I was very serious at the time about composing such things.117

", - "

Instead, he goes on to ask her in this letter to write him a cantata text.118 Nevertheless, we do not know of any poems by Jone from this same time that might be connected to this request on the part of the composer (as is well known, Webern did indeed compose “cantatas” to texts by Jone, but only between 1935 and 1943; these were Das Augenlicht, Op. 26, the Cantata No. 1, Op. 29 and the Cantata No. 2, Op. 31). Quite apart from such concrete proposals for a possible collaboration, Jone repeatedly sent Webern manuscripts of her poems.119

", - "

Given this background, it is worthy of note that Webern first set one of Jones’s poems without any prior consultation with the poet, having taken it instead from an already published collection: Viae inviae, which was published in the autumn of 1932 in the journal Der Brenner.120 This cycle of poems was dedicated posthumously to the philosopher Ferdinand Ebner, who had died in October 1931, and whose Fragment von 1916 (together with an “afterword” to it that he wrote shortly before his death) precedes Jone’s collection of poems in that issue of the journal.121 Shortly before Ebner died, Jone had arranged for Webern to meet him in person.122 And even before that, Jone had repeatedly confronted Webern with Ebner’s ideas, and she in fact later remained active as his editor. Webern’s explicit engagement with Ebner’s writings can only be traced sporadically, from 1934 onwards. Nevertheless, we can discern an implicit reception of Ebner’s work on Webern’s part through Jone’s texts.123 The poems of Viae inviae are divided into two sections, each marked with a Roman numeral: Section I begins with a prologue entitled Dem einsamen Wanderer (“To the Lonely Wayfarer”) and contains within it the cycle Heimgang des Lebens (“Life’s Homecoming”), which is subdivided into three further sections, each with an Arabic numeral.124 The texts that Webern set to music in his Op. 23 are the third section of Heimgang des Lebens, which itself is divided into eight groups of verses of varying lengths. Webern’s three songs comprise verse groups 1–4 (“Das dunkle Herz…”), 5–6 (“Es stürzt aus Höhen…”) and 7–8 (“Herr Jesus mein…”). He did not compose them in the same order in which they appear in the source, though when the songs were complete, he kept their original order.

", - "

The initial sketches for Op. 23 in A (Sketchbook 3) are dated “1. II. 33” and are for “Herr Jesus mein” M 312 (M 312 Sk1, M 312 Sk1.1 and M 312 Sk2), i. e. the last two verse groups of the third section of Heimgang des Lebens. Webern sketched out a vocal line for the first words of the poem and then developed a twelve-note row from it. In the sketchbook in question, these and the subsequent sketches for Op. 23 constitute an interruption in his work on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, the first sketches of which already date from early 1931 but which had not progressed beyond 30 measures of the first movement by autumn 1932.125 In fact, since mid-1931, Webern’s health problems and a change of residence, compounded by his numerous conducting responsibilities in 1932, had barely left him either the time or the opportunity to compose. On 3 March 1933, he was able to report to Jone that he had made the first sketches for “Herr Jesus mein” M 312. He furthermore complained about his lack of time, also in connection with this new composition:

", + "

Instead, he goes on to ask her in this letter to write him a cantata text.118 Nevertheless, we do not know of any poems by Jone from this same time that might be connected to this request on the part of the composer (as is well known, Webern did indeed compose “cantatas” to texts by Jone, but only between 1935 and 1943; these were Das Augenlicht, Op. 26, the Cantata No. 1, Op. 29 and the Cantata No. 2, Op. 31). Quite apart from such concrete proposals for a possible collaboration, Jone repeatedly sent Webern manuscripts of her poems.119

", + "

Given this background, it is worthy of note that Webern first set one of Jones’s poems without any prior consultation with the poet, having taken it instead from an already published collection: Viae inviae, which was published in the autumn of 1932 in the journal Der Brenner.120 This cycle of poems was dedicated posthumously to the philosopher Ferdinand Ebner, who had died in October 1931, and whose Fragment von 1916 (together with an “afterword” to it that he wrote shortly before his death) precedes Jone’s collection of poems in that issue of the journal.121 Shortly before Ebner died, Jone had arranged for Webern to meet him in person.122 And even before that, Jone had repeatedly confronted Webern with Ebner’s ideas, and she in fact later remained active as his editor. Webern’s explicit engagement with Ebner’s writings can only be traced sporadically, from 1934 onwards. Nevertheless, we can discern an implicit reception of Ebner’s work on Webern’s part through Jone’s texts.123 The poems of Viae inviae are divided into two sections, each marked with a Roman numeral: Section I begins with a prologue entitled Dem einsamen Wanderer (“To the Lonely Wayfarer”) and contains within it the cycle Heimgang des Lebens (“Life’s Homecoming”), which is subdivided into three further sections, each with an Arabic numeral.124 The texts that Webern set to music in his Op. 23 are the third section of Heimgang des Lebens, which itself is divided into eight groups of verses of varying lengths. Webern’s three songs comprise verse groups 1–4 (“Das dunkle Herz…”), 5–6 (“Es stürzt aus Höhen…”) and 7–8 (“Herr Jesus mein…”). He did not compose them in the same order in which they appear in the source, though when the songs were complete, he kept their original order.

", + "

The initial sketches for Op. 23 in A (Sketchbook 3) are dated “1. II. 33” and are for “Herr Jesus mein” M 312 (M 312 Sk1, M 312 Sk1.1 and M 312 Sk2), i. e. the last two verse groups of the third section of Heimgang des Lebens. Webern sketched out a vocal line for the first words of the poem and then developed a twelve-note row from it. In the sketchbook in question, these and the subsequent sketches for Op. 23 constitute an interruption in his work on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, the first sketches of which already date from early 1931 but which had not progressed beyond 30 measures of the first movement by autumn 1932.125 In fact, since mid-1931, Webern’s health problems and a change of residence, compounded by his numerous conducting responsibilities in 1932, had barely left him either the time or the opportunity to compose. On 3 March 1933, he was able to report to Jone that he had made the first sketches for “Herr Jesus mein” M 312. He furthermore complained about his lack of time, also in connection with this new composition:

", - "

I am in a considerable state of distress: it is depressing me more than ever that I don’t have the time to compose. I quite spontaneously began setting your beautiful, wonderful poem one day, but I soon had to interrupt my work on it again, and the fact that I allowed myself to sit now and then at our work back in January and February is taking its toll. Now I’m so behind with the other things, with preparing for my concerts, here and in London. How am I supposed to do it? It’s wonderful that your poem is called “Joy”.126

", + "

I am in a considerable state of distress: it is depressing me more than ever that I don’t have the time to compose. I quite spontaneously began setting your beautiful, wonderful poem one day, but I soon had to interrupt my work on it again, and the fact that I allowed myself to sit now and then at our work back in January and February is taking its toll. Now I’m so behind with the other things, with preparing for my concerts, here and in London. How am I supposed to do it? It’s wonderful that your poem is called “Joy”.126

", - "

Webern had clearly already told Jone about “our work” even before writing this letter, and the title “Die Freude” (“Joy”) that Webern mentions here refers to a subsequent communication from Jone that the verses set to music by Webern (in a manuscript version independent of their publication in Brenner) belonged to a poem of that title.127 However, Webern seems to have been consistent in using published versions of the poems as the basis for his compositions.128 It was not until two months later, when Webern was busy both with a concert in the Great Hall of the Konzerthaus in Vienna on 19 March129 and with his weekly lecture series “Paths to new music”,130 that he began work on the piano introduction (M 312 Sk3) and wrote the opening of his continuity draft up to measure 8 (M 312 Sk4). He then revisited the opening of this continuity draft from measure 4 onwards, dating this version “31. V. 33” (M 312 Sk4, mm. 4B–5C), which means that it was not begun until after his return from his concert tour in London (16–26 April) and a radio concert with Mahler’s Sixth Symphony that he conducted on 23 May.131 At the close of this continuity draft, Webern wrote: “Maria Enzersdorf | 14. VII. 33”.

", - "

After a radio concert on 21 July,132 Webern began sketching another song, this time a setting of a text in Brenner that was printed on the same page, directly above the verses that he had already set (“Es stürzt aus Höhen” M 313). He wrote to Jone on 29 July that he had completed the song he had begun previously, and that he had begun work on a new one:

", + "

Webern had clearly already told Jone about “our work” even before writing this letter, and the title “Die Freude” (“Joy”) that Webern mentions here refers to a subsequent communication from Jone that the verses set to music by Webern (in a manuscript version independent of their publication in Brenner) belonged to a poem of that title.127 However, Webern seems to have been consistent in using published versions of the poems as the basis for his compositions.128 It was not until two months later, when Webern was busy both with a concert in the Great Hall of the Konzerthaus in Vienna on 19 March129 and with his weekly lecture series “Paths to new music”,130 that he began work on the piano introduction (M 312 Sk3) and wrote the opening of his continuity draft up to measure 8 (M 312 Sk4). He then revisited the opening of this continuity draft from measure 4 onwards, dating this version “31. V. 33” (M 312 Sk4, mm. 4B–5C), which means that it was not begun until after his return from his concert tour in London (16–26 April) and a radio concert with Mahler’s Sixth Symphony that he conducted on 23 May.131 At the close of this continuity draft, Webern wrote: “Maria Enzersdorf | 14. VII. 33”.

", + "

After a radio concert on 21 July,132 Webern began sketching another song, this time a setting of a text in Brenner that was printed on the same page, directly above the verses that he had already set (“Es stürzt aus Höhen” M 313). He wrote to Jone on 29 July that he had completed the song he had begun previously, and that he had begun work on a new one:

", "

I have already been working well. Your texts fulfil me more and more; one of them is already finished, from “Herz Jesus mein” to “Und, ewig Schlafende, auch euch erwartet Tag”. And now I am linking “Es stürzt aus Höhen Frische” – how wonderful is the substance of these words – to “überglüht noch lange Glut” to form a second song. But the order of the two songs will correspond to that of your poems.

", - "

How deeply they touch me. And I am so glad that I am finally in this position (composing a work to your texts). I had desired this for a long time. After I had finished the first song, I had to interrupt my work for 8 days because I still had to conduct a concert on the radio. I wanted to turn it down. But ultimately – well, you know the reasons why.133

", + "

How deeply they touch me. And I am so glad that I am finally in this position (composing a work to your texts). I had desired this for a long time. After I had finished the first song, I had to interrupt my work for 8 days because I still had to conduct a concert on the radio. I wanted to turn it down. But ultimately – well, you know the reasons why.133

", - "

Webern presumably interrupted his work on the continuity draft of this second song when he went on holiday “to an alpine pasture at an altitude of some 1600 m near Kitzbühel in the Tyrol”134 in early August. According to the date given in A, he completed it on “18. VIII. 33” (M 313 Sk4 m. 30C). In a letter to Jone of 3 September, he declared the two songs he had written up to now to be complete “for the moment”:

", + "

Webern presumably interrupted his work on the continuity draft of this second song when he went on holiday “to an alpine pasture at an altitude of some 1600 m near Kitzbühel in the Tyrol”134 in early August. According to the date given in A, he completed it on “18. VIII. 33” (M 313 Sk4 m. 30C). In a letter to Jone of 3 September, he declared the two songs he had written up to now to be complete “for the moment”:

", - "

For the moment, I have finished composing the texts from your “Viae inviae”. It has proceeded as I had planned: 1st song: “Es stürzt aus Höhen” up to “den Himmel u. die Seele überglüht noch lange Glut.” 2. “Herr Jesus mein” up to “auch euch erwartet Tag.” (i. e. the whole of page 65 from “Brenner”). I say “for the moment”, because I feel that I might soon have to come back to words of yours. But for the time being, at least, I believe that these 2 songs should remain on their own. They form a whole in musical terms, in the sense that they demonstrate a certain contrast. At the moment, I’m busy again with a purely instrumental piece that I began quite some while ago. How happy I was when I was working with your words!135

", + "

For the moment, I have finished composing the texts from your “Viae inviae”. It has proceeded as I had planned: 1st song: “Es stürzt aus Höhen” up to “den Himmel u. die Seele überglüht noch lange Glut.” 2. “Herr Jesus mein” up to “auch euch erwartet Tag.” (i. e. the whole of page 65 from “Brenner”). I say “for the moment”, because I feel that I might soon have to come back to words of yours. But for the time being, at least, I believe that these 2 songs should remain on their own. They form a whole in musical terms, in the sense that they demonstrate a certain contrast. At the moment, I’m busy again with a purely instrumental piece that I began quite some while ago. How happy I was when I was working with your words!135

", "

Webern also resumed sketching the first movement of his Concerto, Op. 24 in early September, using the same sketchbook. However, he was able neither to finish it nor to work continually on it. At the end of that same month, he was planning to play Jone both of the songs from Op. 23 that he had completed up to now, during one of her stays in Vienna:

", - "

You will soon be coming to Vienna, thank God. [...] I wonder what you’ll say to my songs that use your texts? How will it seem to you, when you hear your words as music? If only I could keep working. I hope to be able to start again in October.136

", + "

You will soon be coming to Vienna, thank God. [...] I wonder what you’ll say to my songs that use your texts? How will it seem to you, when you hear your words as music? If only I could keep working. I hope to be able to start again in October.136

", "

It was only in early January 1934 that Webern returned to work on Op. 23, making his initial sketches in A for the song “Das dunkle Herz” M 314 (M 314 Sk1, M 314 Sk2 and M 314 Sk3; these are dated “3. I. 1934” and “5. I. 34”). Its text uses the opening verses that were numbered together as a unit in Brenner, and in this respect it serves as a completion of the two songs that Webern had already composed. In a letter to Jone, Webern emphasised that the order of the verses as printed in the source would continue to determine their order in his cycle, which had now grown to encompass three songs:

", "

I’m now finally back at work. It’s: “Das dunkle Herz, das in sich lauscht...”. It’s everything that’s on the page from then on, in other words up to where I was already: “Es stürzt aus Höhen Frische…”. Following the order that you determined, [this new song] shall precede this and the subsequent “Herr Jesus mein…”.

", "

It seems to me as if my current state of working is something I have

", "

never before experienced like this.

", - "

I hope it can last!137

", + "

I hope it can last!137

", - "

Webern’s work on the continuity draft (M 314 Sk3), which he had begun on 5 January 1934, was then interrupted by his radio concert with Felix Mendelssohn Bartholdy’s Violin Concerto and Third Symphony on 28 January.138 Another interruption was occasioned by the street fighting that took place from 12 to 15 February in Vienna and other big cities in Austria between the Republikanischer Schutzbund (the paramilitary organization of the Social Democratic Party in Austria) on the one side, and the army and police under the control of Chancellor Engelbert Dollfuß’s regime on the other. These events had far-reaching consequences for Webern’s career as a conductor (see the details below on the Three Songs, Op. 25) and also had a short-term impact on his state of mind, making it difficult for him to continue work on the song he had begun, as he explained in a letter to Jone of 14 February:

", + "

Webern’s work on the continuity draft (M 314 Sk3), which he had begun on 5 January 1934, was then interrupted by his radio concert with Felix Mendelssohn Bartholdy’s Violin Concerto and Third Symphony on 28 January.138 Another interruption was occasioned by the street fighting that took place from 12 to 15 February in Vienna and other big cities in Austria between the Republikanischer Schutzbund (the paramilitary organization of the Social Democratic Party in Austria) on the one side, and the army and police under the control of Chancellor Engelbert Dollfuß’s regime on the other. These events had far-reaching consequences for Webern’s career as a conductor (see the details below on the Three Songs, Op. 25) and also had a short-term impact on his state of mind, making it difficult for him to continue work on the song he had begun, as he explained in a letter to Jone of 14 February:

", "

Dearest Mrs Jone,

", "

The commotion of the last few days has been monstrous and is becoming ever more so. It is barely possible to keep hold of a single thought [...].

", "

[...] And last week, I once again used every free moment to continue working on the poems [sic] “Das dunkle Herz”. I again had a little free time. [...]

", - "

And now once again – Mrs Jone! [I hear] the thunder of big guns and the rattle of machine-guns. –139

", + "

And now once again – Mrs Jone! [I hear] the thunder of big guns and the rattle of machine-guns. –139

", - "

On 20 February, Webern wrote to Humplik, telling him that he had nevertheless reached the passage “an das Wartende im Dunkel” in his continuity draft, thus measure 15.140 By the beginning of March he had got as far as measure 24: “In my work, I have reached: ... ‘ein goldenes Flattern trägt’ and I’m going to continue tomorrow. I still have some free time ahead of me.”141 He reported completing the sketch for the vocal part on 11 March,142 and he dated the continuity draft “15. III. 34” upon finally completing it. In the letter that he then wrote to Jone, Webern gave a relatively detailed description of this new song, and went on to propose a title for the collection of songs he had now finished:

", + "

On 20 February, Webern wrote to Humplik, telling him that he had nevertheless reached the passage “an das Wartende im Dunkel” in his continuity draft, thus measure 15.140 By the beginning of March he had got as far as measure 24: “In my work, I have reached: ... ‘ein goldenes Flattern trägt’ and I’m going to continue tomorrow. I still have some free time ahead of me.”141 He reported completing the sketch for the vocal part on 11 March,142 and he dated the continuity draft “15. III. 34” upon finally completing it. In the letter that he then wrote to Jone, Webern gave a relatively detailed description of this new song, and went on to propose a title for the collection of songs he had now finished:

", "

Meanwhile, the third song is finished.

", "

Because it encompasses the text from “Das dunkle Herz…” to “…ich und du und alle”, it has become rather long and in its musical form it is really a kind of “aria”, comprising a slow section and then a quicker section from “ich bin nicht mein…”, though it nevertheless bears the tempo marking “Very calmly”.

", @@ -763,25 +763,25 @@ "

I thought that the title could be this:

", "

Three Songs from Viae inviae.

", "

May I adopt this title from your poems?

", - "

I shall send you the manuscript soon.143

", + "

I shall send you the manuscript soon.143

", "

In a letter that Webern sent one week later to Alban Berg, he went into greater detail about the work’s formal organization, also regarding the other songs:

", "

I have just finished a third song (based on Jone texts). Actually, it’s an aria, comprising a slow section and a quicker section. It will be the first.

", "

And I’ve realized that the other two, which I composed earlier, are actually something other than songs (in their form): the one is a straightforward recitative with an arioso, the other (which is now the last of the sequence) is a rondo.

", - "

Thus, without having actually wanted it, I’ve come to engage with larger vocal forms in this opus. I’ll end up writing an opera after all.144

", + "

Thus, without having actually wanted it, I’ve come to engage with larger vocal forms in this opus. I’ll end up writing an opera after all.144

", - "

It is unclear whether Webern here means “finished” to refer retrospectively to the continuity draft whose completion predates this letter by a few days, or whether he is referring to some fair copy that he might already have made. (It is also possible that he had made fair copies of the other two songs shortly after having finished their respective continuity drafts). In any case, the autograph engraver’s copy of all three songs, C, was received by Universal Edition before July, and was accepted for publication on 11 July.145 However, the actual publishing process was delayed considerably. Webern had initially assumed that “U. E. [...] will [print] my last work by the autumn”,146 but by the end of August he learned that his publisher had “regrettably not yet begun” with engraving his songs “due to other, time-critical work”.147 It was not until February 1935 that Webern’s manuscript was finally sent to the engraver – though this order to the engraver was immediately rescinded. The engraver in fact only began work in early January 1936. Webern received the first proofs at the end of that same month, with two further sets of proofs received on 10 and 27 March respectively. The Three Songs, Op. 23 were published on 4 May 1936 in an edition of 302 copies.148

", - "

Already in 1935, Webern had hoped that Julia Nessy might sing his Three Songs, Op. 23, but this was not to be.149 The world premiere did not take place until 5 December 1943 at the Basel Conservatory, without the composer being present. This was a concert of the local section of the ISCM, largely organized by Willi Reich, in celebration of Webern’s 60th birthday.150 The pianist Paul Baumgartner accompanied Marguerite Gradmann-Lüscher, who had already given a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and a selection from the Four Songs, Op. 12, during Webern’s visit to Switzerland in 1940.151

", + "

It is unclear whether Webern here means “finished” to refer retrospectively to the continuity draft whose completion predates this letter by a few days, or whether he is referring to some fair copy that he might already have made. (It is also possible that he had made fair copies of the other two songs shortly after having finished their respective continuity drafts). In any case, the autograph engraver’s copy of all three songs, C, was received by Universal Edition before July, and was accepted for publication on 11 July.145 However, the actual publishing process was delayed considerably. Webern had initially assumed that “U. E. [...] will [print] my last work by the autumn”,146 but by the end of August he learned that his publisher had “regrettably not yet begun” with engraving his songs “due to other, time-critical work”.147 It was not until February 1935 that Webern’s manuscript was finally sent to the engraver – though this order to the engraver was immediately rescinded. The engraver in fact only began work in early January 1936. Webern received the first proofs at the end of that same month, with two further sets of proofs received on 10 and 27 March respectively. The Three Songs, Op. 23 were published on 4 May 1936 in an edition of 302 copies.148

", + "

Already in 1935, Webern had hoped that Julia Nessy might sing his Three Songs, Op. 23, but this was not to be.149 The world premiere did not take place until 5 December 1943 at the Basel Conservatory, without the composer being present. This was a concert of the local section of the ISCM, largely organized by Willi Reich, in celebration of Webern’s 60th birthday.150 The pianist Paul Baumgartner accompanied Marguerite Gradmann-Lüscher, who had already given a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and a selection from the Four Songs, Op. 12, during Webern’s visit to Switzerland in 1940.151

", "

The reviews of this concert in the Basel newspapers were clearly influenced by the introductory talk given by Reich and focused on offering an overall view of this supposedly “other-worldly” composer, who was thus already being seen as a kind of historical figure:

", - "

To be sure, the works that were performed (some of which were world premieres) conveyed the impression of being something thoroughly unique, unusual and unworldly. This is a music of the highest spiritual potency, embodying law and power at the same time. One might almost say it is too true to be beautiful, meaning that this music serves only the imperatives of honesty and sincerity, far beyond all notions of aural beauty or discord, and thereby compels its notes unconditionally to submit to the law of the spirit and its power of cognition. [...] But the general development of music cannot reach this point, and nor should it, because only someone who has set himself apart from the world and does not care about its judgements will be able to see these things and to reproduce them in sound: namely Anton Webern.152

", + "

To be sure, the works that were performed (some of which were world premieres) conveyed the impression of being something thoroughly unique, unusual and unworldly. This is a music of the highest spiritual potency, embodying law and power at the same time. One might almost say it is too true to be beautiful, meaning that this music serves only the imperatives of honesty and sincerity, far beyond all notions of aural beauty or discord, and thereby compels its notes unconditionally to submit to the law of the spirit and its power of cognition. [...] But the general development of music cannot reach this point, and nor should it, because only someone who has set himself apart from the world and does not care about its judgements will be able to see these things and to reproduce them in sound: namely Anton Webern.152

", "

Another review wrote only as follows about the Three Songs:

", - "

Three songs Op. 23 from Hildegard Jone’s Viae inviae were given their first performance. Here, the calm, tender vocal line, which is only occasionally fractured by large leaps, is disturbed by fierce, hard interjections from the accompaniment.153

", + "

Three songs Op. 23 from Hildegard Jone’s Viae inviae were given their first performance. Here, the calm, tender vocal line, which is only occasionally fractured by large leaps, is disturbed by fierce, hard interjections from the accompaniment.153

", - "

For an “evening of contemporary poetry” featuring Jone’s poems, planned for the Archbishop’s palace in Vienna on 29 November 1944, Jone and Webern for a while wanted to arrange a performance of both the Three Songs, Op. 23, and the Three Songs, Op. 25,154 which were rehearsed by an unnamed “Swedish [woman] singer” and Webern’s student Fré Focke.155 Ultimately, however, this performance did not take place, and no further plans for performances during Webern’s lifetime are known to us.

" + "

For an “evening of contemporary poetry” featuring Jone’s poems, planned for the Archbishop’s palace in Vienna on 29 November 1944, Jone and Webern for a while wanted to arrange a performance of both the Three Songs, Op. 23, and the Three Songs, Op. 25,154 which were rehearsed by an unnamed “Swedish [woman] singer” and Webern’s student Fré Focke.155 Ultimately, however, this performance did not take place, and no further plans for performances during Webern’s lifetime are known to us.

" ] }, { @@ -790,38 +790,38 @@ "blockContent": [ "

The Three Songs after Poems of Hildegard Jone, Op. 25, which Webern composed in the course of 1934, mark a continuation of his compositional interest in her poetry that had begun the year before with his Three Songs from Viae inviae, Op. 23. However, Webern’s professional situation changed drastically on account of the political consequences of the battles that took place from 12 to 15 February 1934 in Vienna and other big Austrian cities between the paramilitary Republikanischer Schutzbund of the Social Democratic Party and the army and police authorities of the Dollfuß regime. The latter now banned the Social Democratic Party, which meant that Webern lost his job as conductor with the Vienna Workers’ Symphony Concerts and as the artistic director of the Social Democratic Choral Society (the “Singverein der Sozialdemokratischen Kunststelle”). This in turn meant that the number of his radio engagements dwindled. In a letter to Arnold Schoenberg, who had emigrated to the United States in 1933, Webern described his situation in comparatively drastic terms:

", - "

It’s becoming increasingly difficult for me here. I am very aware of what’s been taken from me by the events in question, and which will hardly be able to be restored. – And apart from material things, it’s as if their cannon had shot to pieces – no, their cannon really have shot to pieces – what I had built up so painstakingly over 10 years.156

", + "

It’s becoming increasingly difficult for me here. I am very aware of what’s been taken from me by the events in question, and which will hardly be able to be restored. – And apart from material things, it’s as if their cannon had shot to pieces – no, their cannon really have shot to pieces – what I had built up so painstakingly over 10 years.156

", - "

All the same, his increasing isolation did have one specific consequence: “I’ve at least now got some time for my work […]”157

", + "

All the same, his increasing isolation did have one specific consequence: “I’ve at least now got some time for my work […]”157

", "

After completing his Three Songs, Op. 23 in March 1934, Webern continued working on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, and in parallel with this he also began composing a song to a text from Jone’s collection entitled Die Freude (“Joy”), which comprises 29 (unnumbered) poems in total, in July of the same year. Jone had published her cycle in the autumn of 1933 in the Catholic bimonthly magazine Die Schildgenossen. It is subdivided into the following:

", "

– 5 “Spring” (“Frühling”) poems (from which Webern set “Wie bin ich froh!” M 317 [Op. 25/1]),

", "

– 8 “Star” (“Stern”) poems (from which Webern set “Sterne, ihr silbernen Biene” M 321 [Op. 25/3]) and

", - "

– 16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", + "

– 16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", - "

It is impossible to determine whether Webern might have received a manuscript from Jone of the three poems he chose to set, either before or after she published them. In any case, we do know that the relevant issue of Die Schildgenossen was still unknown to Webern at the close of November 1933.159

", - "

In early January 1934, when Webern had only just begun his continuity draft of M 314 (Op. 23/1), he announced that his next project might involve setting “several ‘Star’ poems”, i. e. poems from the eight “Star” poems in the collection Die Freude.160 In fact, after having completed the continuity draft for M 314 (on 15 March 1934) and the first movement of his Concerto, Op. 24 (on 25 June 1934), Webern did not set any of the “Star” poems, but instead chose the first of the “Spring” group, which is also the very first poem in the whole collection: “Wie bin ich froh!” M 317. (Webern’s sketches for the first movement of his Concerto, Op. 24 reveal that he had also considered interrupting his work to set the poem “Wie kann der Tod so nah der Liebe wohnen?” [M 315] for chorus [on 11 May 1934], though he rejected this idea). According to the dates in his sketches, Webern began composing “Wie bin ich froh!” on 4 July 1934. A few days later, he wrote to Jone and Josef Humplik to tell them about it:

", + "

It is impossible to determine whether Webern might have received a manuscript from Jone of the three poems he chose to set, either before or after she published them. In any case, we do know that the relevant issue of Die Schildgenossen was still unknown to Webern at the close of November 1933.159

", + "

In early January 1934, when Webern had only just begun his continuity draft of M 314 (Op. 23/1), he announced that his next project might involve setting “several ‘Star’ poems”, i. e. poems from the eight “Star” poems in the collection Die Freude.160 In fact, after having completed the continuity draft for M 314 (on 15 March 1934) and the first movement of his Concerto, Op. 24 (on 25 June 1934), Webern did not set any of the “Star” poems, but instead chose the first of the “Spring” group, which is also the very first poem in the whole collection: “Wie bin ich froh!” M 317. (Webern’s sketches for the first movement of his Concerto, Op. 24 reveal that he had also considered interrupting his work to set the poem “Wie kann der Tod so nah der Liebe wohnen?” [M 315] for chorus [on 11 May 1934], though he rejected this idea). According to the dates in his sketches, Webern began composing “Wie bin ich froh!” on 4 July 1934. A few days later, he wrote to Jone and Josef Humplik to tell them about it:

", "

Did I tell you already that my first movement [i. e. of Op. 24] is finished? Right now, for reasons that I’ll tell you later, I have interrupted it to write something else: a setting of a brief poem by you, dearest friend [“Freundin”, i. e. Jone]:

", "

“Wie bin ich froh! Noch einmal

", - "

wird mir Alles grün….” [“How happy I am! Once again, everything is turning green for me…”]161

", + "

wird mir Alles grün….” [“How happy I am! Once again, everything is turning green for me…”]161

", "

Webern’s “reasons” for writing a song, instead of continuing with the next movements of his Concerto, Op. 24, were probably linked to his wanting to complete a work in time for David Josef Bach’s 60th birthday on 13 August of that year. Bach was a childhood friend of Schoenberg’s who had initiated the Workers’ Symphony Concerts in Vienna in the 1910s. He had also been the director of the Social Democratic Party’s arts office since 1919, and from 1922 onwards had engaged Webern repeatedly to conduct its concerts. Most importantly, he had appointed Webern as the chief conductor of the Singverein in late 1923 and had thereby made a significant contribution to establishing his reputation as a conductor. When the Social Democratic Party was banned after the events of February 1934, this put Bach himself in a precarious situation – a fact to which Webern drew attention in his letters to Schoenberg and others. He also mentioned Bach’s upcoming birthday and the song that he intended to dedicate to him:

", "

For Dr Bach’s 60th birthday – on 13 August of this year – the following is being prepared: an address with signatures and a collection of money. His financial situation is still highly onerous […].

", - "

I’m going to dedicate a song to him […].162

", + "

I’m going to dedicate a song to him […].162

", - "

Webern had finished his continuity draft of 15 measures, M 317 Sk4, in A (Sketchbook 3) a few days before, on 16 July, and thereupon wrote to Jone: “The new song is ready. –”163 There was for the moment no mention of his including it in any collection of songs he might be planning.164 After this continuity draft, the same sketchbook contains sketches for the second movement (M 319) of his Concerto, Op. 24, dated “21 VII[.]” Webern wrote the fair copy of his new song in E either just before making these sketches, or in parallel with them, though its initial layer presumably did not correspond to the later version that lasts 12 measures. Webern made a presentation copy of version 1 of this song (B) as his birthday gift for Bach. This was probably copied just before Webern left for a mountain hike in the Ötztal Alps on 11 August. Bach was spending the summer in Henndorf just outside Salzburg, and Webern stopped off there on his journey to the mountains in order to deliver his gift in person.165 Webern initially revised the autograph of M 317 contained in E (as Op. 25/1) to bring it in line with version 1 as found in B, though he later changed it again – presumably only when he made the fair copies of M 321 (Op. 25/3) and M 322 (Op. 25/2) – which resulted in version 2 of the song that he incorporated into Op. 25 that ultimately comprised three songs.

", - "

A few days after having completed the continuity draft for the third movement (M 320) of his Concerto, Op. 24 on 4 September, Webern reported to Humplik and Jone about his plan for a “song opus” that would also contain “Wie bin ich froh!”, M 317: “I have just finished my instrumental opus and I now want to continue with the song opus that I have already begun – [for which] ‘Wie bin ich froh’ has long been finished.”166 An initial sketch for “Sterne, ihr silbernen Bienen” M 321 in D (Sketchbook 4) can be found among the sketches for the third movement of his Concerto, Op. 24, and was probably already made in late August 1934 (M 321 Sk1). According to the dates in Webern’s own hand, he began making further sketches on 19 September (M 321 Sk2). In early October, he was able to report to Jone on his progress, though the precise number of songs for his “new song book” remained open. He even hinted at the possible inclusion of new songs that were not in her poetry collection Die Freude:

", + "

Webern had finished his continuity draft of 15 measures, M 317 Sk4, in A (Sketchbook 3) a few days before, on 16 July, and thereupon wrote to Jone: “The new song is ready. –”163 There was for the moment no mention of his including it in any collection of songs he might be planning.164 After this continuity draft, the same sketchbook contains sketches for the second movement (M 319) of his Concerto, Op. 24, dated “21 VII[.]” Webern wrote the fair copy of his new song in E either just before making these sketches, or in parallel with them, though its initial layer presumably did not correspond to the later version that lasts 12 measures. Webern made a presentation copy of version 1 of this song (B) as his birthday gift for Bach. This was probably copied just before Webern left for a mountain hike in the Ötztal Alps on 11 August. Bach was spending the summer in Henndorf just outside Salzburg, and Webern stopped off there on his journey to the mountains in order to deliver his gift in person.165 Webern initially revised the autograph of M 317 contained in E (as Op. 25/1) to bring it in line with version 1 as found in B, though he later changed it again – presumably only when he made the fair copies of M 321 (Op. 25/3) and M 322 (Op. 25/2) – which resulted in version 2 of the song that he incorporated into Op. 25 that ultimately comprised three songs.

", + "

A few days after having completed the continuity draft for the third movement (M 320) of his Concerto, Op. 24 on 4 September, Webern reported to Humplik and Jone about his plan for a “song opus” that would also contain “Wie bin ich froh!”, M 317: “I have just finished my instrumental opus and I now want to continue with the song opus that I have already begun – [for which] ‘Wie bin ich froh’ has long been finished.”166 An initial sketch for “Sterne, ihr silbernen Bienen” M 321 in D (Sketchbook 4) can be found among the sketches for the third movement of his Concerto, Op. 24, and was probably already made in late August 1934 (M 321 Sk1). According to the dates in Webern’s own hand, he began making further sketches on 19 September (M 321 Sk2). In early October, he was able to report to Jone on his progress, though the precise number of songs for his “new song book” remained open. He even hinted at the possible inclusion of new songs that were not in her poetry collection Die Freude:

", "

Dear, dear friend,

", "

Many heartfelt thanks for the beautiful songs!

", - "

“How happy I am” to have them [i. e. an allusion to the title of M 317, “Wie bin ich froh”]. I am sure that one or the other of them will be included in the new songbook. Now I am working on “Sterne, Ihr silbernen Bienen...” and have already made much progress.167

", + "

“How happy I am” to have them [i. e. an allusion to the title of M 317, “Wie bin ich froh”]. I am sure that one or the other of them will be included in the new songbook. Now I am working on “Sterne, Ihr silbernen Bienen...” and have already made much progress.167

", - "

Webern completed his continuity draft on 8 October and dated it thus (M 321 Sk3 mm. 21B–26B). He wrote to Jone on 17 October to report on its completion, and also on his having begun work on “Des Herzens Purpurvogel” M 322.168 He dated the beginning of an initial continuity draft “24. X[.] 34”, though he later broke off work on it (M 322 Sk3 mm. {1A}, {1B}, {1C-2A}, 1D–2B). He had presumably begun the preceding sketches (M 322 Sk1 and M 322 Sk2) before writing to Jone on 17 October; he might also have begun M 322 Sk3 measures {1A}, {1B}, {1C–2A} before that date. Webern seems to have been working on the final continuity draft in early November,169 which was completed on 15 November according to the date in the sketchbook (M 322 Sk4 m. 21C).

", + "

Webern completed his continuity draft on 8 October and dated it thus (M 321 Sk3 mm. 21B–26B). He wrote to Jone on 17 October to report on its completion, and also on his having begun work on “Des Herzens Purpurvogel” M 322.168 He dated the beginning of an initial continuity draft “24. X[.] 34”, though he later broke off work on it (M 322 Sk3 mm. {1A}, {1B}, {1C-2A}, 1D–2B). He had presumably begun the preceding sketches (M 322 Sk1 and M 322 Sk2) before writing to Jone on 17 October; he might also have begun M 322 Sk3 measures {1A}, {1B}, {1C–2A} before that date. Webern seems to have been working on the final continuity draft in early November,169 which was completed on 15 November according to the date in the sketchbook (M 322 Sk4 m. 21C).

", "

We have no documentary proof of when Webern made the fair copies of his two new songs, nor when he decided to reverse the order of the second and third songs when concluding this new opus (which was contrary both to their order in Die Freude and to the order in which he had composed them). Webern no longer mentions this project in his letters from December 1934 onwards. Instead, he seems to have been especially preoccupied with his arrangement of the Fuga (Ricercata) a 6 voci from Bach’s Musical Offering (M 323). He probably completed his fair copy of the complete collection of songs that he now numbered Op. 25 (E) by the end of 1934 at the latest.

", - "

In mid-October 1938, Webern wrote to Erwin Stein, a former student of Schoenberg’s who had worked for Universal Edition, had recently emigrated to London, and had now taken up a job as an editor for Boosey & Hawkes. He mentioned his “Three Songs with Piano, Op. 25, on poems of H. Jone” as being “a book of songs not yet printed nor yet accepted by any publisher”.170 We do not know if Webern had already offered them to Universal Edition. It was not until Webern’s 60th birthday in 1943 – presumably in connection with a possible performance (see below) – that Universal held out to Webern the prospect of publishing these songs, though nothing came of it during Webern’s lifetime.171 This opus was only published by Universal Edition in 1956, long after Webern’s death.

", - "

The world premiere of these Three Songs, Op. 25, together with that of the Three Songs, Op. 23, was planned for a concert of the Basel section of the ISCM, held on 5 December 1943, with Marguerite Gradmann-Lüscher accompanied by Paul Baumgartner. In order to facilitate this performance, Universal Edition apparently made two photographic copies of Webern’s autograph (since lost) and presumably sent them to Erich Schmid.172 But the Three Songs, Op. 25 were not performed on that occasion. When readings of Jone’s poetry were being organized at an “Evening of contemporary poetry” to be held at the Archbishop’s Palace in Vienna on 29 November 1944, Jone and Webern for some time harboured the plan of including a performance of both the Three Songs, Op. 23 and the Three Songs, Op. 25.173 They were to have been performed by an unnamed “Swedish singer” accompanied by Webern’s student Fré Focke, who also began rehearsing the works together.174 Ultimately, however, this performance never took place. The world premiere was only given posthumously, on 16 March 1952 in New York, with Bethany Beardslee accompanied by Jacques Monod at the piano.175

" + "

In mid-October 1938, Webern wrote to Erwin Stein, a former student of Schoenberg’s who had worked for Universal Edition, had recently emigrated to London, and had now taken up a job as an editor for Boosey & Hawkes. He mentioned his “Three Songs with Piano, Op. 25, on poems of H. Jone” as being “a book of songs not yet printed nor yet accepted by any publisher”.170 We do not know if Webern had already offered them to Universal Edition. It was not until Webern’s 60th birthday in 1943 – presumably in connection with a possible performance (see below) – that Universal held out to Webern the prospect of publishing these songs, though nothing came of it during Webern’s lifetime.171 This opus was only published by Universal Edition in 1956, long after Webern’s death.

", + "

The world premiere of these Three Songs, Op. 25, together with that of the Three Songs, Op. 23, was planned for a concert of the Basel section of the ISCM, held on 5 December 1943, with Marguerite Gradmann-Lüscher accompanied by Paul Baumgartner. In order to facilitate this performance, Universal Edition apparently made two photographic copies of Webern’s autograph (since lost) and presumably sent them to Erich Schmid.172 But the Three Songs, Op. 25 were not performed on that occasion. When readings of Jone’s poetry were being organized at an “Evening of contemporary poetry” to be held at the Archbishop’s Palace in Vienna on 29 November 1944, Jone and Webern for some time harboured the plan of including a performance of both the Three Songs, Op. 23 and the Three Songs, Op. 25.173 They were to have been performed by an unnamed “Swedish singer” accompanied by Webern’s student Fré Focke, who also began rehearsing the works together.174 Ultimately, however, this performance never took place. The world premiere was only given posthumously, on 16 March 1952 in New York, with Bethany Beardslee accompanied by Jacques Monod at the piano.175

" ] }, { @@ -836,7 +836,7 @@ ] }, { - "blockId": "credits", + "blockId": "acknowledgements", "blockHeader": "Acknowledgements", "blockContent": [ "

As editor, I should like to thank the numerous people and institutions who have supported me in many ways during my work. My thanks above all go to the staff of the archives and libraries who have made digital reproductions of their sources available to us, or granted us access to the originals: The Arnold Schönberg Center in Vienna, the Music Division of the Library of Congress in Washington D.C., the Morgan Library & Museum in New York City, the Music Collection of the Austrian National Library in Vienna, the Music Collection of the Wienbibliothek im Rathaus in Vienna, and the Historical Archive of Universal Edition, also in Vienna. Special thanks go to the Paul Sacher Foundation in Basel, which holds most of the extant Webern sources, in particular to Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert and Andrietta Wahl for always being ready to help and for providing expert advice.

", @@ -850,182 +850,182 @@ ] } ], - "footnotes": [ - "1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.", - "2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).", - "4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.", - "5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.", - "6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”", - "7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.", - "8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).", - "9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.", - "10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).", - "11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”", - "12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).", - "13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).", - "14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.", - "15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.", - "16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”", - "17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).", - "18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.", - "19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.", - "20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.", - "21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.", - "22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”", - "23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.", - "24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”", - "25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.", - "26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.", - "27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.", - "28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.", - "29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.", - "30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).", - "31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”", - "32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”", - "33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).
", - "34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”", - "35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).", - "36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”", - "37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”", - "38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”", - "39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”", - "40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”", - "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”", - "42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.", - "43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”", - "44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.", - "45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”", - "46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.", - "47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”", - "48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).", - "49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.", - "50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.", - "51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).", - "52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”", - "53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).", - "54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”", - "55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”", - "56 | The List of Sources in our Critical Report does not include such sources that may not have survived.", - "57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”", - "58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).", - "59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.", - "60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”", - "61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.", - "62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.", - "63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.", - "64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.", - "65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.", - "66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.", - "67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", - "68 | See Moldenhauer, Anton von Webern (note 18), p. 403.", - "69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.", - "70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", - "71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.", - "72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.", - "73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.", - "74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.", - "75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).", - "76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.", - "77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).", - "78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”", - "79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.", - "80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.", - "81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].", - "83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.", - "84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).", - "85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).", - "86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”", - "87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.", - "88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.", - "89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.", - "91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.", - "92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.", - "93 | Near this correction, we can also discern “13” in a further layer that has been erased.", - "94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”", - "95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.", - "96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).", - "97 | See ibid. (Appendix), pp. 340 f.", - "98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", - "99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.", - "100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).", - "101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.", - "102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.", - "103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.", - "104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.", - "105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”", - "106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.", - "107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", - "108 | See Moldenhauer, Anton von Webern (note 18), p. 403.", - "109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.", - "110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.", - "111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", - "112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.", - "113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”", - "114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.", - "115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).", - "116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”", - "117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).", - "118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.", - "119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”", - "121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.", - "122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”", - "123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.", - "124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.", - "125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.", - "126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).", - "127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.", - "128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.", - "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.", - "130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).", - "131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.", - "132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.", - "133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.", - "134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.", - "135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).", - "136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.", - "137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).", - "138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.", - "139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).", - "140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.", - "141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.", - "142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.", - "143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”", - "144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", - "145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).", - "146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).", - "147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).", - "148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.", - "149 | See Webern to Josef Humplik, 8 May 1935 (note 109).", - "150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”", - "151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.", - "152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.", - "153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.", - "154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”", - "155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", - "156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).", - "157 | Ibid.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.", - "159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”", - "160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.", - "161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).", - "162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).", - "163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).", - "164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”", - "165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.", - "166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).", - "167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.", - "168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”", - "169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”", - "170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.", - "171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”", - "172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EP1–P2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.", - "173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”", - "174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", - "175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f." + "notes": [ + "1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.", + "2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.", + "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).", + "4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.", + "5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.", + "6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”", + "7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.", + "8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).", + "9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.", + "10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).", + "11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”", + "12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).", + "13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).", + "14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.", + "15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.", + "16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”", + "17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).", + "18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.", + "19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.", + "20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.", + "21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.", + "22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”", + "23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.", + "24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”", + "25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.", + "26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.", + "27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.", + "28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.", + "29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.", + "30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).", + "31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”", + "32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”", + "33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).
", + "34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”", + "35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).", + "36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”", + "37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”", + "38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”", + "39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”", + "40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”", + "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”", + "42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.", + "43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”", + "44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.", + "45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”", + "46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.", + "47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”", + "48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).", + "49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.", + "50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.", + "51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).", + "52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”", + "53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).", + "54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”", + "55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”", + "56 | The List of Sources in our Critical Report does not include such sources that may not have survived.", + "57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”", + "58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).", + "59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.", + "60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”", + "61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.", + "62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.", + "63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.", + "64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.", + "65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.", + "66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.", + "67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", + "68 | See Moldenhauer, Anton von Webern (note 18), p. 403.", + "69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.", + "70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", + "71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.", + "72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.", + "73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.", + "74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.", + "75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).", + "76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.", + "77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).", + "78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”", + "79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.", + "80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.", + "81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).", + "82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].", + "83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.", + "84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).", + "85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).", + "86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”", + "87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.", + "88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.", + "89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).", + "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.", + "91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.", + "92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.", + "93 | Near this correction, we can also discern “13” in a further layer that has been erased.", + "94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”", + "95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.", + "96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).", + "97 | See ibid. (Appendix), pp. 340 f.", + "98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", + "99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.", + "100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).", + "101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.", + "102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.", + "103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.", + "104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.", + "105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”", + "106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.", + "107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", + "108 | See Moldenhauer, Anton von Webern (note 18), p. 403.", + "109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.", + "110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.", + "111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", + "112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.", + "113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”", + "114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.", + "115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).", + "116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”", + "117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).", + "118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.", + "119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”", + "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”", + "121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.", + "122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”", + "123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.", + "124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.", + "125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.", + "126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).", + "127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.", + "128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.", + "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.", + "130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).", + "131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.", + "132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.", + "133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.", + "134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.", + "135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).", + "136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.", + "137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).", + "138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.", + "139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).", + "140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.", + "141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.", + "142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.", + "143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”", + "144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", + "145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).", + "146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).", + "147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).", + "148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.", + "149 | See Webern to Josef Humplik, 8 May 1935 (note 109).", + "150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”", + "151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.", + "152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.", + "153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.", + "154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”", + "155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", + "156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).", + "157 | Ibid.", + "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.", + "159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”", + "160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.", + "161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).", + "162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).", + "163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).", + "164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”", + "165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.", + "166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).", + "167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.", + "168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”", + "169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”", + "170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.", + "171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”", + "172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EP1–P2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.", + "173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”", + "174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", + "175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f." ] } ] From 464e16e1f20d7aca49ef0c16f00ad585c05d729b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 26 Sep 2024 18:52:50 +0200 Subject: [PATCH 091/213] fix(edition): finish formatting of intro AWG I/5 --- .../edition-intro.component.html | 4 +- .../edition-intro.component.scss | 46 +- .../series/1/section/5/op12/intro.json | 857 +++++++++--------- 3 files changed, 445 insertions(+), 462 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 9c4ae020a3..b5a55b973e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -33,10 +33,10 @@
{{ notesLables.get(currentLanguage) }}
@for (note of editionIntroData.intro[currentLanguage].notes; track $index) {

}
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss index a80d65c69a..e5e052f715 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss @@ -1,7 +1,7 @@ .awg-intro-content { - margin-top: 25px; + margin-top: 1.5em; - .awg-intro-footnote, + .awg-intro-note, .awg-intro-para { text-align: justify; text-justify: inter-word; @@ -10,42 +10,74 @@ .link-todo { background-color: chartreuse; } + + .corrigenda { + background-color: burlywood; + } + .errata { background-color: red; } + + .note-1-dig { + margin-left: 1.3em; + text-indent: -1.3em; + } + + .note-2-dig { + margin-left: 1.8em; + text-indent: -1.8em; + } + + .note-3-dig { + margin-left: 2.3em; + text-indent: -2.3em; + } } } .awg-intro-para { margin: 0; - text-indent: 25px; + text-indent: 1.5em; &::ng-deep { p { margin-bottom: 0 !important; } + table > tbody > tr > td { padding-right: 10px; } + .heading { display: block; - margin-top: 25px; - margin-bottom: 25px; font-weight: bold; + margin: 1.5em 0; + text-indent: 0; } - .heading, + .small, .no-indent { text-indent: 0; } + .spacebreak { display: block; - margin-top: 25px; + margin-top: 1em; + + &.list { + text-indent: 0; + } &.no-indent { margin-left: 0; } } + + .list { + margin-left: 1em; + text-indent: -1em; + } } } } diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index b490a66d49..5754864fa3 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -114,17 +114,17 @@ "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", - "

– 20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", - "

– 17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", - "

– 17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", - "

– 5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", + "

–  20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", + "

–  17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", + "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", + "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", + "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", + "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", + "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", + "

–  17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", + "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", + "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", + "

–  5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" ] @@ -161,15 +161,15 @@ "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", - "

– 26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", - "

– 25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", - "

– 13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", - "

– 18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", - "

– 2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", - "

– 9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", - "

– 21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", - "

– 10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", - "

– 28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", + "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", + "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", + "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", + "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", + "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", + "

–  9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", + "

–  21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", + "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", + "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" ] @@ -256,9 +256,9 @@ "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", - "

– 5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", - "

– 8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", - "

– 16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", + "

–  5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", + "

–  8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", + "

–  16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", @@ -312,181 +312,181 @@ } ], "notes": [ - "1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.", - "2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).", - "4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.", - "5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.", - "6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“", - "7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.", - "8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).", - "9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.", - "10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).", - "11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“", - "12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).", - "13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).", - "14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.", - "15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.", - "16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“", - "17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).", - "18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.", - "19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.", - "20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.", - "21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.", - "22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“", - "23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“", - "24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.", - "25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“", - "26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.", - "27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.", - "28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.", - "29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.", - "30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).", - "31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.", - "32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“", - "33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).
", - "34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“", - "35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).", - "36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“", - "37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“", - "38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“", - "39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“", - "40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“", - "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“", - "42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.", - "43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“", - "44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.", - "45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“", - "46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.", - "47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“", - "48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).", - "49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.", - "50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.", - "51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).", - "52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“", - "53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.", - "54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“", - "55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“", - "56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.", - "57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“", - "58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.", - "59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.", - "60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“", - "61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.", - "62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.", - "63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.", - "64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.", - "65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.", - "66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.", - "67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.", - "70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.", - "72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.", - "73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.", - "74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.", - "75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).", - "76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.", - "77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).", - "78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“", - "79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.", - "80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.", - "81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].", - "83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.", - "84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).", - "85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.", - "86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“", - "87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.", - "88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.", - "89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.", - "91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.", - "92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.", - "93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.", - "94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“", - "95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.", - "96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).", - "97 | Vgl. ebd. (Anhang), S. 340 f.", - "98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.", - "100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).", - "101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.", - "102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.", - "103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.", - "104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.", - "105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“", - "106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).", - "107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.", - "108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.", - "109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.", - "110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.", - "111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.", - "112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.", - "113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“", - "114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.", - "115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).", - "116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“", - "117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).", - "118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.", - "119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“", - "121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.", - "122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“", - "123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.", - "124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.", - "125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.", - "126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).", - "127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.", - "128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.", - "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.", - "130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.", - "131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.", - "132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.", - "133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.", - "134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.", - "135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).", - "136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.", - "137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).", - "138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.", - "139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).", - "140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.", - "141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.", - "142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.", - "143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“", - "144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).", - "145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).", - "146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).", - "147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).", - "148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.", - "149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).", - "150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.", - "151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.", - "152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.", - "154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).", - "157 | Ebd.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.", - "159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“", - "160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“", - "161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).", - "162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).", - "163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.", - "164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“", - "165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.", - "166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).", - "167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.", - "168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“", - "169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“", - "170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.", - "171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“", - "172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.", - "173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“", - "174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“", - "175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f." + "

1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.

", + "

2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).

", + "

4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.

", + "

5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.

", + "

6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“

", + "

7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.

", + "

8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).

", + "

9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.

", + "

10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).

", + "

11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“

", + "

12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).

", + "

13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).

", + "

14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.

", + "

15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.

", + "

16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“

", + "

17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).

", + "

18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.

", + "

19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.

", + "

20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.

", + "

21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.

", + "

22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“

", + "

23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“

", + "

24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.

", + "

25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“

", + "

26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.

", + "

27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.

", + "

28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.

", + "

29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.

", + "

30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.

", + "

32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“

", + "

33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).

", + "

34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“

", + "

35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).

", + "

36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“

", + "

37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“

", + "

38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“

", + "

39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“

", + "

40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“

", + "

42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.

", + "

43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“

", + "

44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.

", + "

45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“

", + "

46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.

", + "

47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“

", + "

48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).

", + "

49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.

", + "

50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.

", + "

51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).

", + "

52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“

", + "

53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.

", + "

54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“

", + "

55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“

", + "

56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.

", + "

57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“

", + "

58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.

", + "

60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“

", + "

61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.

", + "

62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.

", + "

63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.

", + "

64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.

", + "

65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.

", + "

66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.

", + "

67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.

", + "

70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.

", + "

72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.

", + "

73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.

", + "

74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.

", + "

75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).

", + "

76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.

", + "

77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).

", + "

78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“

", + "

79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.

", + "

80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.

", + "

81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].

", + "

83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.

", + "

84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).

", + "

85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.

", + "

86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“

", + "

87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.

", + "

88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.

", + "

89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.

", + "

91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.

", + "

92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.

", + "

93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.

", + "

94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“

", + "

95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.

", + "

96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).

", + "

97 | Vgl. ebd. (Anhang), S. 340 f.

", + "

98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.

", + "

100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.

", + "

102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.

", + "

103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.

", + "

104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.

", + "

105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“

", + "

106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).

", + "

107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.

", + "

110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.

", + "

111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.

", + "

113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“

", + "

114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.

", + "

115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“

", + "

117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.

", + "

119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“

", + "

121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.

", + "

122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“

", + "

123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.

", + "

124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.

", + "

125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.

", + "

126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).

", + "

127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.

", + "

128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.

", + "

131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.

", + "

132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.

", + "

133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.

", + "

134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.

", + "

135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.

", + "

137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).

", + "

138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.

", + "

139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.

", + "

141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.

", + "

142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.

", + "

143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“

", + "

144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).

", + "

146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).

", + "

147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).

", + "

148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.

", + "

149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).

", + "

150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.

", + "

151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.

", + "

152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", + "

156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).

", + "

157 | Ebd.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.

", + "

159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“

", + "

160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“

", + "

161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).

", + "

163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.

", + "

164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“

", + "

165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.

", + "

166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.

", + "

168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“

", + "

169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“

", + "

170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.

", + "

171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“

", + "

172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.

", + "

173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", + "

175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f.

" ] }, { @@ -505,19 +505,15 @@ "blockContent": [ "

The earliest versions of Webern’s 14 songs with piano accompaniment to texts by Stefan George (M 133–146) were presumably composed between December 1907 and 1909. Together with the Five Movements for String Quartet M 147–151 and the Six Pieces for Large Orchestra M 152–157, they are among his first so-called atonal compositions. The two collections Five Songs from Der siebente Ring by Stefan George, Op. 3 and Five Songs on Poems of Stefan George, Op. 4 were published in 1919 and 1923 respectively. However, the specific songs collected in these opus numbers were not fixed from the beginning. Determining their content was a lengthy process, the various stages of which can no longer be reconstructed with certainty, and the musical text of most of these songs went through different versions.

", "

We can trace Webern’s initial reception of George’s work back to circa 1900, when he copied the poem “Indes deine mutter dich stillt” into one of his diaries.1 We have no documentary proof either of any compositional engagement with this poem on his part, nor of his having read more George. He may have had further contact with George’s poetry in the Ansorge Society in Vienna, where Webern and his student friend Karl Horwitz were active from 1904 onwards, and whose evening events included performances of George settings by Conrad Ansorge (Five Songs on Poems of Stefan George, Op. 14).2

", - "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", + "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", "

One incentive for Webern’s compositional engagement with George’s poems presumably came from Arnold Schoenberg’s own settings. Schoenberg had composed the song “Ich darf nicht dankend”, Op. 14, No. 1 on 17 December 1907 and numerous other songs for his growing cycle Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15, from March to May 1908 (we have definite proof that he composed the songs Op. 15 Nos. 3–8 at that time).5 In a letter dated 11 June 1908 from Webern to Schoenberg, there are indications that the former already knew some of the songs that the latter had completed by this time.6 Various features make it seem plausible that “Erwachen aus dem tiefsten Traumesschoße” M 143 represents Webern’s first setting of a poem by George for voice and piano, as it clearly refers to Schoenberg’s Op. 14, No. 1. Unlike most of Webern’s later songs, these two songs still have a key signature (as does his chorus “Entflieht auf leichten Kähnen” M 129, quite possibly written in 1907/08), which indicates a comparatively early date of conception. Given that the proven date of composition of Schoenberg’s Op. 14, No. 1 provides us with an earliest possible date for Webern’s song, the latter could have been composed between December 1907 and June 1908.7 A comparison of the handwriting and the types of music paper used suggests that the initial versions of the following songs (in one case: the sole extant version [einzige Textfassung]) could also have been written by mid-1908, including “Erwachen aus dem tiefsten Traumesschoße” M 143:

", - "

“Dies ist ein Lied” M 133 (version 1 in A, version 2 in B)

", - "

“Erwachen aus dem tiefsten Traumesschoße” M 143 (sole extant version in A)

", - "

“Im Windesweben” M 134 (version 1 in A)

", - "

Kunfttag I M 144 (sole version in A)

", + "
“Dies ist ein Lied” M 133(version 1 in A, version 2 in B)
“Erwachen aus dem tiefsten Traumesschoße” M 143(sole extant version in A)
“Im Windesweben” M 134(version 1 in A)
Kunfttag I M 144(sole version in A)
", "

Webern wrote to Schoenberg from Berlin in December 1908, requesting a letter of recommendation to Richard Strauss. He also discusses establishing contact with the Berlin publisher Max Marschalk of the Dreililien publishing company (which was probably suggested by Schoenberg). Webern goes on to say that he does not have enough material to make up a volume of songs:

", "

I don’t know, I’m so stupidly shy. That’s also why I haven’t yet been to Marschalk.

", - "

If only I had a volume of songs ready. But this means he can’t take

", - "

anything at the moment.

", + "

If only I had a volume of songs ready. But this means he can’t take anything at the moment.

", "

On the one hand, I’d like to, but on the other hand –8

", "

Webern clearly did not consider either his four George songs (which were presumably finished by late 1908) nor his five Dehmel songs M 83, M 119, M 130–132 (which he had also already composed) to be suitable for publication.9

", @@ -531,37 +527,17 @@ "

It is unclear precisely to which George songs Webern was referring in his letters to Schoenberg. The only George song by Webern that we can date more precisely thus remains Trauer I M 145, which he had written shortly before 25 May 1909, thus before his visit to Carinthia. Both the manuscript paper that he used and a clear shift in his handwriting style (when compared to the abovementioned songs that were probably composed in 1908) together suggest that, after Trauer I M 145, Webern also wrote the initial versions of the following songs in the course of the summer or autumn of 1909 (in some cases, these are the only versions of the songs in question):

", - "

“An Bachesranft” M 135 (version 1 in E)

", - "

“Das lockere Saatgefilde” M 146 (sole extant version in A)

", - "

Eingang M 138 (version 1 in A)

", - "

“Im Morgentaun” M 136 (version 1 in D [fragment], E and G)

", - "

“Ja Heil und Dank dir” M 140 (version 1 in B)

", - "

“Kahl reckt der Baum” M 137 (version 1 in E)

", - "

“Noch zwingt mich Treue” M 139 (version 1 in B)

", - "

“So ich traurig bin” M 141 (version 1 in B)

", - "

Trauer I M 145 (sole extant version in A – before 25 May 1909)

", + "
“An Bachesranft” M 135(version 1 in E)
“Das lockere Saatgefilde” M 146(sole extant version in A)
Eingang M 138(version 1 in A)
“Im Morgentaun” M 136(version 1 in D [fragment], E and G)
“Ja Heil und Dank dir” M 140(version 1 in B)
“Kahl reckt der Baum” M 137(version 1 in E)
“Noch zwingt mich Treue” M 139(version 1 in B)
“So ich traurig bin” M 141(version 1 in B)
Trauer I M 145(sole extant version in A – before 25 May 1909)
", "

On the basis of our assessment of Webern’s handwriting, a further manuscript can also be assigned to this period: “Dies ist ein Lied” M 133 (version 2, which is the basic layer in C). Since the autograph of “Ihr tratet zu dem Herde” M 142 ([C]) has not survived, it is naturally impossible to use these criteria to determine whether it was also written in 1909 or already in 1908.

", "

In contrast to Webern’s compositions from before 1908 and after 1914, no conceptual sketches in pencil (i. e. continuity drafts, which were often dated) have survived for the George songs (the same applies to most other works composed in the same period). We only find pencil corrections to individual passages in the existing ink manuscripts. Webern commonly made such continuity drafts in pencil during other creative periods of his life, but it is impossible to make any general statement about whether this was also the case here, or whether the manuscripts in ink of the early versions of these songs served the function of a sketch during the compositional process.14

", "

Six George songs were given their world premiere on 8 February 1910 in Vienna, at a concert of the Verein für Kunst und Kultur (the “Association for Art and Culture” that was the successor of the Ansorge Society). The same concert featured Webern’s Five Movements for String Quartet M 147–151 and songs by Bruno Walter and Karl Weigl.15 Webern’s songs were sung by Martha Winternitz-Dorda, accompanied by the composer. Just a few weeks earlier, on 14 January 1910, she had sung the world premiere of Schoenberg’s Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15 in a concert of his works organized by the same Association for Art and Culture. The programme booklet for the concert of 8 February gave the texts of Webern’s six George settings (listed below) under the collective title “Songs after Stefan George”, arranged in two groups according to the poetry volumes from which they were taken. No opus number was given (in the following schematic summary, we name the version of the song that was presumably performed on this occasion):

", - "

From Der siebente Ring

", - "

Eingang M 138 (version 1)

", - "

“Dies ist ein Lied” M 133 (version 2)

", - "

“Im Windesweben” M 134 (version 2)

", - "

“Kahl reckt der Baum” M 137 (version 1)

", - "

From Das Jahr der Seele

", - "

“Noch zwingt mich Treue” M 139 (version 1)

", - "

“Ihr tratet zu dem Herde” M 142 (unknown version)

", + "
From Der siebente Ring
Eingang M 138(version 1)
“Dies ist ein Lied” M 133(version 2)
“Im Windesweben” M 134(version 2)
“Kahl reckt der Baum” M 137(version 1)
From Das Jahr der Seele
“Noch zwingt mich Treue” M 139(version 1)
“Ihr tratet zu dem Herde” M 142(unknown version)
", "

Manuscript copies in other hands have survived of almost all these songs in F (see the List of Sources [Quellenübersicht] for Op. 3) and D (see the List of Sources for Op. 4) that were most likely made for this specific performance. These songs are numbered in pencil from “I” to “V” in these two sources; the numberings correspond to the order of the texts as given in the programme booklet (while no copy of “Ihr tratet zu dem Herde” M 142 [E] has survived, it no doubt existed and was presumably given the number “VI”). Certain musical and orthographic details in the copyist’s manuscripts seem especially clumsy, while their text underlay reveals similarities with the handwriting of Wilhelmine (Minna) Mörtl, who later became Webern’s wife. These manuscript copies generally contain numerous annotations by Webern himself, some of which (in “Dies ist ein Lied” M 133 most of all) entail a process of revision resulting in later versions of the song. However, some of the annotations in red crayon were probably made in the context of preparations for the first performances in February 1910, when the abovementioned copies were presumably used by the singer. When we consider the versions of the musical text that were most likely performed on that occasion, we can surmise that Webern probably played the piano accompaniment from the following sources:

", - "

Eingang M 138: A (version 1)

", - "

“Dies ist ein Lied” M 133: C (version 2)

", - "

“Im Windesweben” M 134: E (version 2)

", - "

“Kahl reckt der Baum” M 137: E (version 1)

", - "

“Noch zwingt mich Treue” M 139: B (version 1)

", - "

“Ihr tratet zu dem Herde” M 142: [C] (unknown version)

", + "
Eingang M 138:A (version 1)
“Dies ist ein Lied” M 133:C (version 2)
“Im Windesweben” M 134:E (version 2)
“Kahl reckt der Baum” M 137:E (version 1)
“Noch zwingt mich Treue” M 139:B (version 1)
“Ihr tratet zu dem Herde” M 142:[C] (unknown version)
", "

Webern’s compositions that were performed in this concert in 1910 were given several negative reviews. As an example, we offer here a passage from Julius Korngold’s review in the Neue Freie Presse in which he also makes explicit reference to the previous month’s concert in which Schoenberg’s George songs, Op. 15, were given their first performance:16

", @@ -570,31 +546,7 @@ "

The six songs that were given their first performance in 1910 were merely a selection of what were presumably a total of 14 George songs that Webern had already composed at that time. In two handwritten lists of titles, probably drawn up before the first performances of all the songs, he had already divided them into two groups designated “Op. 2” and “Op. 4”, with seven songs each.18 These two lists read as follows (with angle marks added in pencil, “[p]”, and in red crayon, “[r]”):

", - "

Sieben Lieder

", - "

nach Gedichten von Stefan George

", - "

op. 2

", - - "

[p] 1. Eingang. („VII. Ring“)

", - "

[p + r] 2. „Dies ist ein Lied...“ („VII. Ring“)

", - "

3. „Erwachen aus dem tiefsten traumesschoße....“ |

", - "

(„Jahr der Seele“)

", - "

[p + r] 4. „Im windes-weben.....“ („VII. Ring“)

", - "

5. Kunfttag 1. –

", - "

[p + r] 6. „Kahl reckt der baum..“ –

", - "

[p] 7. [„]Im morgentaun....“ –

", - "

Anton von Webern

", - - "

Sieben Lieder        op. 4

", - "

nach Gedichten von Stefan George

", - - "

1. Trauer I („Maximin“)        aus dem „VII. Ring“

", - "

2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“

", - "

[p + r] 3. „Noch zwingt mich treue....“ („Waller im Schnee“) aus „Jahr der Seele“

", - "

[p] 4. „An bachesranft....“ („Lieder I–IV [sic]“ aus dem VII. Ring“)

", - "

5 „Das lockere saatgefilde….“ („Gezeiten“) aus dem „VII. Ring“

", - "

6 „So ich traurig bin…..“ („Sänge eines fahrenden Spielmanns“

", - "

aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“

", - "

[r] 7 [b] „Ihr tratet zu dem herde….“ („Traurige Tänze“) aus „Jahr der Seele“

", + "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[p]1. Eingang.(„VII. Ring“)
[p + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[p + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[p + r]6. „Kahl reckt der baum..“
[p]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[p + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[p]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7&ngsp;[p]&ngsp;„Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", "

Several elements in these two lists19 prove that they were not written at the same time. Given that the sequence of opus numbers that Webern had begun with his Passacaglia M 127 (his “Op. 1”) was interrupted by his Five Movements for String Quartet M 147–151 (designated “Op. 3”), he probably compiled his Seven Songs (“Sieben Lieder”) “Op. 2” earlier than the songs that his second list designated as “Op. 4” (this would also seem to be confirmed by the fact that his “Op. 2” contains all the songs that he had presumably composed by 1908).20 Despite the differences between them and the presumed chronological distance between the two lists, they both bear traces of having been reworked at the same time; they have the abovementioned angle marks in pencil and red crayon on the left, alongside several lines of text (in the last line of “Op. 4” also between the song number and the opening line). Furthermore, some numbers in the list for “Op. 4” (“1”, “5” and “6”) have been crossed out in pencil. It is possible that the red crayon markings denote the choice of songs for the performance of 8 February 1910 (in which case the angle mark next to “2. ‘Dies ist ein lied...’” in the list for “Op. 2” would also refer to “1. Eingang.” above it).21 All the George songs, plus the two lists themselves, must in this case have been written before the date of this concert, and these two collections of songs would then presumably also have been among the compositions that Webern presented at a meeting that Schoenberg had organized with the director of Universal Edition, Emil Hertzka, on 9 October 1909 (though none of these works was subsequently accepted by the publishing house).22

", "

However, these two compilations do not simply constitute more extensive versions of the collections later printed as Webern’s Opp. 3 and 4.23 For example, the ordering principle behind his Five Songs from Der siebente Ring by Stefan George, Op. 3, published in 1919, played no role in his selection of songs for “Op. 2”.24 In this Op. 3, Webern brought together all the texts that he had set to music from the poetic cycle Lieder (Songs) that George had included in Der siebente Ring and also kept those songs in the order of the original poems.25 “An Bachesranft” M 135, which features in this opus 3, also appears here in the list for “Op. 4”, while “So ich traurig bin” M 141, which was actually included in the Five Songs on Poems of Stefan George, Op. 4, published in 1923, was deleted from the list for the Seven Songs “Op. 4”.

", @@ -652,17 +604,17 @@ "

The world premiere of the Five Songs on Poems of Stefan George, Op. 4, was given by Jenny Jungbauer und Ilse Fromm-Michaels on 23 November 1923 in Hamburg at a cycle of concerts entitled “New Music” that was organized by Josef Rufer und Hans Heinz Stuckenschmidt. Webern was presumably not in attendance, nor had he been involved in preparations for the performance.60 The complete collection of Op. 4 was performed in Webern’s presence only on 10 February 1940 in Basel in a concert of the International Society for Contemporary Music (hereinafter ISCM) featuring Marguerite Gradmann-Lüscher accompanied by Erich Schmid, at which they also performed three of Webern’s Four Songs, Op. 12, alongside songs by Schoenberg and Berg.61   

", "

As in the latter case, further performances of Webern’s George songs during his lifetime often took place in various combinations comprising selections from the published collections Opp. 3 and 4 and the Four Songs, Op. 12. In addition to the performances already mentioned from the years 1910, 1919 (the world premiere of Op. 3) and 1923 (the world premiere of Op. 4), we currently have documentary evidence of the following:

", - "

– 20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", - "

– 17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", - "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", - "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", - "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", - "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", - "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", - "

– 17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", - "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", - "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", - "

– 5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", + "

–  20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", + "

–  17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", + "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", + "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", + "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", + "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", + "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", + "

–  17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", + "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", + "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", + "

–  5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Five Songs on Poems of Stefan George, Op. 4 (JH), we find various annotations pertaining to performances, and indications of durations. It is impossible to prove whether or not these are connected with one of the abovementioned performances (though perhaps with the first performance of the entire collection in Basel in 1940).

" ] @@ -699,15 +651,15 @@ "

According to a diary entry by Webern, Gleich und Gleich M 216 had already been sung by a “Dutch [woman] singer” in October 1926,102 presumably also van Geuns, who also performed songs by Webern (probably also from Op. 12) and by Alexander Zemlinsky in Cologne sometime after the world premiere of the Four Songs, Op. 12 of early January 1927.103 As with the George songs, several performances during Webern’s lifetime (probably with his consent or even at his suggestion) took place at which only a selection of the Four Songs, Op. 12 was sung, or at which selected songs from that opus were combined with individual numbers from the George songs Opp. 3 and 4. Apart from the performances with van Geuns already mentioned above, we have proof of the following concerts having taken place:

", - "

– 26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", - "

– 25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", - "

– 13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", - "

– 18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", - "

– 2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", - "

– 9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", - "

– 21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", - "

– 10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", - "

– 28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", + "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", + "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", + "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", + "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", + "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", + "

–  9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", + "

–  21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", + "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", + "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" ] @@ -744,8 +696,7 @@ "

It was only in early January 1934 that Webern returned to work on Op. 23, making his initial sketches in A for the song “Das dunkle Herz” M 314 (M 314 Sk1, M 314 Sk2 and M 314 Sk3; these are dated “3. I. 1934” and “5. I. 34”). Its text uses the opening verses that were numbered together as a unit in Brenner, and in this respect it serves as a completion of the two songs that Webern had already composed. In a letter to Jone, Webern emphasised that the order of the verses as printed in the source would continue to determine their order in his cycle, which had now grown to encompass three songs:

", "

I’m now finally back at work. It’s: “Das dunkle Herz, das in sich lauscht...”. It’s everything that’s on the page from then on, in other words up to where I was already: “Es stürzt aus Höhen Frische…”. Following the order that you determined, [this new song] shall precede this and the subsequent “Herr Jesus mein…”.

", - "

It seems to me as if my current state of working is something I have

", - "

never before experienced like this.

", + "

It seems to me as if my current state of working is something I have never before experienced like this.

", "

I hope it can last!137

", "

Webern’s work on the continuity draft (M 314 Sk3), which he had begun on 5 January 1934, was then interrupted by his radio concert with Felix Mendelssohn Bartholdy’s Violin Concerto and Third Symphony on 28 January.138 Another interruption was occasioned by the street fighting that took place from 12 to 15 February in Vienna and other big cities in Austria between the Republikanischer Schutzbund (the paramilitary organization of the Social Democratic Party in Austria) on the one side, and the army and police under the control of Chancellor Engelbert Dollfuß’s regime on the other. These events had far-reaching consequences for Webern’s career as a conductor (see the details below on the Three Songs, Op. 25) and also had a short-term impact on his state of mind, making it difficult for him to continue work on the song he had begun, as he explained in a letter to Jone of 14 February:

", @@ -795,9 +746,9 @@ "

All the same, his increasing isolation did have one specific consequence: “I’ve at least now got some time for my work […]”157

", "

After completing his Three Songs, Op. 23 in March 1934, Webern continued working on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, and in parallel with this he also began composing a song to a text from Jone’s collection entitled Die Freude (“Joy”), which comprises 29 (unnumbered) poems in total, in July of the same year. Jone had published her cycle in the autumn of 1933 in the Catholic bimonthly magazine Die Schildgenossen. It is subdivided into the following:

", - "

– 5 “Spring” (“Frühling”) poems (from which Webern set “Wie bin ich froh!” M 317 [Op. 25/1]),

", - "

– 8 “Star” (“Stern”) poems (from which Webern set “Sterne, ihr silbernen Biene” M 321 [Op. 25/3]) and

", - "

– 16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", + "

–  5 “Spring” (“Frühling”) poems (from which Webern set “Wie bin ich froh!” M 317 [Op. 25/1]),

", + "

–  8 “Star” (“Stern”) poems (from which Webern set “Sterne, ihr silbernen Biene” M 321 [Op. 25/3]) and

", + "

–  16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", "

It is impossible to determine whether Webern might have received a manuscript from Jone of the three poems he chose to set, either before or after she published them. In any case, we do know that the relevant issue of Die Schildgenossen was still unknown to Webern at the close of November 1933.159

", "

In early January 1934, when Webern had only just begun his continuity draft of M 314 (Op. 23/1), he announced that his next project might involve setting “several ‘Star’ poems”, i. e. poems from the eight “Star” poems in the collection Die Freude.160 In fact, after having completed the continuity draft for M 314 (on 15 March 1934) and the first movement of his Concerto, Op. 24 (on 25 June 1934), Webern did not set any of the “Star” poems, but instead chose the first of the “Spring” group, which is also the very first poem in the whole collection: “Wie bin ich froh!” M 317. (Webern’s sketches for the first movement of his Concerto, Op. 24 reveal that he had also considered interrupting his work to set the poem “Wie kann der Tod so nah der Liebe wohnen?” [M 315] for chorus [on 11 May 1934], though he rejected this idea). According to the dates in his sketches, Webern began composing “Wie bin ich froh!” on 4 July 1934. A few days later, he wrote to Jone and Josef Humplik to tell them about it:

", @@ -851,181 +802,181 @@ } ], "notes": [ - "1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.", - "2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.", - "3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).", - "4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.", - "5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.", - "6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”", - "7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.", - "8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).", - "9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.", - "10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).", - "11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”", - "12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).", - "13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).", - "14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.", - "15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.", - "16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”", - "17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).", - "18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.", - "19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.", - "20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.", - "21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.", - "22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”", - "23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.", - "24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”", - "25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.", - "26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.", - "27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.", - "28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.", - "29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.", - "30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).", - "31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”", - "32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”", - "33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).
", - "34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”", - "35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).", - "36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”", - "37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”", - "38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”", - "39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”", - "40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”", - "41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”", - "42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.", - "43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”", - "44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.", - "45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”", - "46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.", - "47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”", - "48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).", - "49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.", - "50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.", - "51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).", - "52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”", - "53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).", - "54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”", - "55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”", - "56 | The List of Sources in our Critical Report does not include such sources that may not have survived.", - "57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”", - "58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).", - "59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.", - "60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”", - "61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.", - "62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.", - "63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.", - "64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.", - "65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.", - "66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.", - "67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", - "68 | See Moldenhauer, Anton von Webern (note 18), p. 403.", - "69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.", - "70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", - "71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.", - "72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.", - "73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.", - "74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.", - "75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).", - "76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.", - "77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).", - "78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”", - "79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.", - "80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.", - "81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).", - "82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].", - "83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.", - "84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).", - "85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).", - "86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”", - "87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.", - "88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.", - "89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).", - "90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.", - "91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.", - "92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.", - "93 | Near this correction, we can also discern “13” in a further layer that has been erased.", - "94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”", - "95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.", - "96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).", - "97 | See ibid. (Appendix), pp. 340 f.", - "98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", - "99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.", - "100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).", - "101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.", - "102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.", - "103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.", - "104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.", - "105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”", - "106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.", - "107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.", - "108 | See Moldenhauer, Anton von Webern (note 18), p. 403.", - "109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.", - "110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.", - "111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.", - "112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.", - "113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”", - "114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.", - "115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).", - "116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”", - "117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).", - "118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.", - "119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”", - "120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”", - "121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.", - "122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”", - "123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.", - "124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.", - "125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.", - "126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).", - "127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.", - "128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.", - "129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.", - "130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).", - "131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.", - "132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.", - "133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.", - "134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.", - "135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).", - "136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.", - "137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).", - "138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.", - "139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).", - "140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.", - "141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.", - "142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.", - "143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”", - "144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).", - "145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).", - "146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).", - "147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).", - "148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.", - "149 | See Webern to Josef Humplik, 8 May 1935 (note 109).", - "150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”", - "151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.", - "152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.", - "153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.", - "154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”", - "155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", - "156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).", - "157 | Ibid.", - "158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.", - "159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”", - "160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.", - "161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).", - "162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).", - "163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).", - "164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”", - "165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.", - "166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).", - "167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.", - "168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”", - "169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”", - "170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.", - "171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”", - "172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EP1–P2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.", - "173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”", - "174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”", - "175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f." + "

1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.

", + "

2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).

", + "

4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.

", + "

5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.

", + "

6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”

", + "

7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.

", + "

8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).

", + "

9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.

", + "

10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).

", + "

11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”

", + "

12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).

", + "

13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).

", + "

14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.

", + "

15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.

", + "

16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”

", + "

17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).

", + "

18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.

", + "

19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.

", + "

20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.

", + "

21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.

", + "

22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”

", + "

23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.

", + "

24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”

", + "

25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.

", + "

26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.

", + "

27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.

", + "

28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.

", + "

29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.

", + "

30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”

", + "

32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”

", + "

33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).

", + "

34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”

", + "

35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).

", + "

36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”

", + "

37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”

", + "

38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”

", + "

39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”

", + "

40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”

", + "

42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.

", + "

43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”

", + "

44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.

", + "

45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”

", + "

46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.

", + "

47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”

", + "

48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).

", + "

49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.

", + "

50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.

", + "

51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).

", + "

52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”

", + "

53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).

", + "

54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”

", + "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", + "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", + "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", + "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", + "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", + "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", + "

62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.

", + "

63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.

", + "

64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.

", + "

65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.

", + "

66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

68 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.

", + "

70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.

", + "

72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.

", + "

73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.

", + "

74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.

", + "

75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).

", + "

76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.

", + "

77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).

", + "

78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”

", + "

79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.

", + "

80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.

", + "

81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].

", + "

83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.

", + "

84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).

", + "

85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).

", + "

86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”

", + "

87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.

", + "

88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.

", + "

89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.

", + "

91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.

", + "

92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.

", + "

93 | Near this correction, we can also discern “13” in a further layer that has been erased.

", + "

94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”

", + "

95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.

", + "

96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).

", + "

97 | See ibid. (Appendix), pp. 340 f.

", + "

98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.

", + "

100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.

", + "

102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.

", + "

103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.

", + "

104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.

", + "

105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”

", + "

106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

108 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.

", + "

110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.

", + "

111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.

", + "

113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”

", + "

114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.

", + "

115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”

", + "

117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.

", + "

119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”

", + "

121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.

", + "

122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”

", + "

123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.

", + "

124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.

", + "

125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.

", + "

126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).

", + "

127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.

", + "

128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).

", + "

131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.

", + "

132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.

", + "

133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.

", + "

134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.

", + "

135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.

", + "

137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).

", + "

138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.

", + "

139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.

", + "

141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.

", + "

142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.

", + "

143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”

", + "

144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).

", + "

146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).

", + "

147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).

", + "

148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.

", + "

149 | See Webern to Josef Humplik, 8 May 1935 (note 109).

", + "

150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”

", + "

151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.

", + "

152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.

", + "

153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.

", + "

154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”

", + "

155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", + "

156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).

", + "

157 | Ibid.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.

", + "

159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”

", + "

160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.

", + "

161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).

", + "

163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).

", + "

164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”

", + "

165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.

", + "

166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.

", + "

168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”

", + "

169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”

", + "

170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.

", + "

171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”

", + "

172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EF1–F2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.

", + "

173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”

", + "

174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", + "

175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f.

" ] } ] From 29873dc9d29b5d3215c7db098494507cccdcbccb Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Thu, 26 Sep 2024 19:05:41 +0200 Subject: [PATCH 092/213] feat(assets): add corrections in op3: C --- .../1/section/5/op3/source-description.json | 294 +++++++++++++++++- 1 file changed, 293 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 2ec0f51766..19386d88e3 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -647,7 +647,299 @@ } ] } - ] + ], + "corrections": [ + { + "id": "source_C_corr", + "label": "Korrekturen in C", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Ganz wenig bewegt ([Achtelnote]) auf Rasur." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "", + "comment": "Teilweise auf Rasur." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote d1 (siehe Textfassung 2)." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–3/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." + }, + { + "measure": "2", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich as1 (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "(1/4)", + "comment": "Rasur unter 1. Note. Ante correcturam: vermutlich Unterstimmenschicht Viertelnote b/e1 (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "Taktanfang bis 6/8", + "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav.", + "position": "6/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "3
bis 4", + "system": "Klav.", + "position": "6/8
2/8", + "comment": "Crescendo-/Decrescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "3
bis 4", + "system": "Klav. u.", + "position": "6/8
6/8", + "comment": "Legatobogen rasiert und neu gesetzt in T. 3 6/8 bis T. 4 1/4 und T. 4 4–6/8." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Von (siehe Textfassung 2)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). D. h. Augementationspunkt zu 2. Note vermutlich hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "", + "position": "4/8", + "comment": "Tempo auf Rasur. Weitere Rasur ohne neuen Text an entsprechender Position über Klav. o." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "5
bis 6", + "system": "Ges.", + "position": "4/8
1. Note", + "comment": "Crescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('[ppp]')}} und {{ref.getGlyph('[a]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "5/16", + "comment": "Rasur unter der Note. Ante correcturam: vermutlich {{ref.getGlyph('[ppp]')}} (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "5–11/16", + "comment": "Crescendo-/Decrescendogabel hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "11–12/16", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des ersten Legatobogens zu 11/16 und Anfang des zweiten Legatobogens zu 12/16 gesetzt. Siehe auch Korrektur zu T. 7 6–7/32 und T. 7 10.–12. Note." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "3/16
1/8", + "comment": "rit. - - - hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift. rit. - - - auch über Klav. o. ab T. 7 1/8 zuerst mit Bleistift, dann radiert." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3/16–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich: wie Textfassung 2. Text: ein zu 3/16 (ante correcturam: vermutlich Großschreibung Ein) und (leicht-be-schwing-)tes zu 12/16 neu notiert." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "6–7/32", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des zweiten Legatobogens zu 6/32 und Anfang des dritten Legatobogens zu 7/32 gesetzt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 10.–12. Note." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "10.–12. Note", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des dritten Legatobogens zu 10. Note gesetzt und Staccatopunkte zu 11.–12. Note hinzugefügt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 6–7/32." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "11–12/16", + "comment": "Staccatopunkte auf Rasur. Ante correcturam: Legatobogen (siehe Textfassung 2).
Decrescendogabel auf Rasur hinzugefügt." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/16", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8", + "system": "", + "position": "2/8", + "comment": "etwas langsamer | als tempo I. auf Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2). D. h. Augmentationspunkt zu 2. Note vermutlich hinzugefügt." + }, + { + "measure": "8", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8
bis 10", + "system": "Klav.", + "position": "4/8
1/8", + "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen geändert zu Balken.
Silbenbogen hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1/4", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Möcht (siehe Textfassung 2)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2) mit Silbenbogen." + }, + { + "measure": "10", + "system": "Ges.", + "position": "(1/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('[a]')}}f1 (siehe Textfassung 2)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3–4/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich rühr-te (siehe Textfassung 2)." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "2. Note
1/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + } + ] + } + ] + } + ] } }, { From c49b0fb6150c2e18a8d4c5529f49514bed28c422 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 26 Sep 2024 19:12:42 +0200 Subject: [PATCH 093/213] fix(assets): fix formatting of corrections op3: C --- .../1/section/5/op3/source-description.json | 582 +++++++++--------- 1 file changed, 291 insertions(+), 291 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 19386d88e3..0be9bc2316 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -649,297 +649,297 @@ } ], "corrections": [ - { - "id": "source_C_corr", - "label": "Korrekturen in C", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "Ganz wenig bewegt ([Achtelnote]) auf Rasur." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "", - "comment": "Teilweise auf Rasur." - }, - { - "measure": "1", - "system": "Ges.", - "position": "2/4", - "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote d1 (siehe Textfassung 2)." - }, - { - "measure": "1", - "system": "Klav. o.", - "position": "2–3/4", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "2", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." - }, - { - "measure": "2", - "system": "Klav.", - "position": "", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "2", - "system": "Ges.", - "position": "3/8", - "comment": "Auf Rasur. Ante correcturam: vermutlich as1 (siehe Textfassung 2)." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "(1/4)", - "comment": "Rasur unter 1. Note. Ante correcturam: vermutlich Unterstimmenschicht Viertelnote b/e1 (siehe Textfassung 2)." - }, - { - "measure": "3", - "system": "Klav. u.", - "position": "Taktanfang bis 6/8", - "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "2–6/8", - "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." - }, - { - "measure": "3", - "system": "Klav.", - "position": "6/8", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "3
bis 4", - "system": "Klav.", - "position": "6/8
2/8", - "comment": "Crescendo-/Decrescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "3
bis 4", - "system": "Klav. u.", - "position": "6/8
6/8", - "comment": "Legatobogen rasiert und neu gesetzt in T. 3 6/8 bis T. 4 1/4 und T. 4 4–6/8." - }, - { - "measure": "4", - "system": "Ges.", - "position": "2/8", - "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Von (siehe Textfassung 2)." - }, - { - "measure": "4", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). D. h. Augementationspunkt zu 2. Note vermutlich hinzugefügt." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "1. Note", - "comment": "Auf Rasur." - }, - { - "measure": "5", - "system": "", - "position": "4/8", - "comment": "Tempo auf Rasur. Weitere Rasur ohne neuen Text an entsprechender Position über Klav. o." - }, - { - "measure": "5", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "4/8", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "5
bis 6", - "system": "Ges.", - "position": "4/8
1. Note", - "comment": "Crescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "6", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." - }, - { - "measure": "6", - "system": "Klav. o.", - "position": "", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "1/8", - "comment": "{{ref.getGlyph('[ppp]')}} und {{ref.getGlyph('[a]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "5/16", - "comment": "Rasur unter der Note. Ante correcturam: vermutlich {{ref.getGlyph('[ppp]')}} (siehe Textfassung 2)." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "5–11/16", - "comment": "Crescendo-/Decrescendogabel hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "11–12/16", - "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des ersten Legatobogens zu 11/16 und Anfang des zweiten Legatobogens zu 12/16 gesetzt. Siehe auch Korrektur zu T. 7 6–7/32 und T. 7 10.–12. Note." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "1.–4. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "7
bis 8", - "system": "", - "position": "3/16
1/8", - "comment": "rit. - - - hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift. rit. - - - auch über Klav. o. ab T. 7 1/8 zuerst mit Bleistift, dann radiert." - }, - { - "measure": "7", - "system": "Ges.", - "position": "3/16–12/16", - "comment": "Auf Rasur. Ante correcturam: vermutlich: wie Textfassung 2. Text: ein zu 3/16 (ante correcturam: vermutlich Großschreibung Ein) und (leicht-be-schwing-)tes zu 12/16 neu notiert." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "6–7/32", - "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des zweiten Legatobogens zu 6/32 und Anfang des dritten Legatobogens zu 7/32 gesetzt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 10.–12. Note." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "10.–12. Note", - "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des dritten Legatobogens zu 10. Note gesetzt und Staccatopunkte zu 11.–12. Note hinzugefügt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 6–7/32." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "11–12/16", - "comment": "Staccatopunkte auf Rasur. Ante correcturam: Legatobogen (siehe Textfassung 2).
Decrescendogabel auf Rasur hinzugefügt." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "2/16", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "8", - "system": "", - "position": "2/8", - "comment": "etwas langsamer | als tempo I. auf Rasur." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2). D. h. Augmentationspunkt zu 2. Note vermutlich hinzugefügt." - }, - { - "measure": "8", - "system": "Klav.", - "position": "4/8", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "8
bis 10", - "system": "Klav.", - "position": "4/8
1/8", - "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "8", - "system": "Ges.", - "position": "5–6/8", - "comment": "Achtelfähnchen geändert zu Balken.
Silbenbogen hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "9", - "system": "Ges.", - "position": "1/4", - "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Möcht (siehe Textfassung 2)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4.–5. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2) mit Silbenbogen." - }, - { - "measure": "10", - "system": "Ges.", - "position": "(1/4)", - "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('[a]')}}f1 (siehe Textfassung 2)." - }, - { - "measure": "10", - "system": "Ges.", - "position": "3–4/8", - "comment": "Text: auf Rasur. Ante correcturam: vermutlich rühr-te (siehe Textfassung 2)." - }, - { - "measure": "10", - "system": "Klav.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." - }, - { - "measure": "10
bis 11", - "system": "Klav. u.", - "position": "2. Note
1/4", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - } - ] - } - ] - } - ] + { + "id": "source_C_corr", + "label": "Korrekturen in C", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Ganz wenig bewegt ([Achtelnote]) auf Rasur." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "", + "comment": "Teilweise auf Rasur." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote d1 (siehe Textfassung 2)." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–3/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." + }, + { + "measure": "2", + "system": "Klav.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich as1 (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "(1/4)", + "comment": "Rasur unter 1. Note. Ante correcturam: vermutlich Unterstimmenschicht Viertelnote b/e1 (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "Taktanfang bis 6/8", + "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Fortsetzung des Legatobogens bis 6/8 (siehe Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav.", + "position": "6/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "3
bis 4", + "system": "Klav.", + "position": "6/8
2/8", + "comment": "Crescendo-/Decrescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "3
bis 4", + "system": "Klav. u.", + "position": "6/8
6/8", + "comment": "Legatobogen rasiert und neu gesetzt in T. 3 6/8 bis T. 4 1/4 und T. 4 4–6/8." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Von (siehe Textfassung 2)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). D. h. Augementationspunkt zu 2. Note vermutlich hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "", + "position": "4/8", + "comment": "Tempo auf Rasur. Weitere Rasur ohne neuen Text an entsprechender Position über Klav. o." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "5
bis 6", + "system": "Ges.", + "position": "4/8
1. Note", + "comment": "Crescendogabel hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('[ppp]')}} und {{ref.getGlyph('[a]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "5/16", + "comment": "Rasur unter der Note. Ante correcturam: vermutlich {{ref.getGlyph('[ppp]')}} (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "5–11/16", + "comment": "Crescendo-/Decrescendogabel hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "11–12/16", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des ersten Legatobogens zu 11/16 und Anfang des zweiten Legatobogens zu 12/16 gesetzt. Siehe auch Korrektur zu T. 7 6–7/32 und T. 7 10.–12. Note." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "3/16
1/8", + "comment": "rit. - - - hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift. rit. - - - auch über Klav. o. ab T. 7 1/8 zuerst mit Bleistift, dann radiert." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3/16–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich: wie Textfassung 2. Text: ein zu 3/16 (ante correcturam: vermutlich Großschreibung Ein) und (leicht-be-schwing-)tes zu 12/16 neu notiert." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "6–7/32", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des zweiten Legatobogens zu 6/32 und Anfang des dritten Legatobogens zu 7/32 gesetzt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 10.–12. Note." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "10.–12. Note", + "comment": "Ein durchgehender Legatobogen T. 6 5/16 bis T. 7 12. Note (siehe Textfassung 2) teilweise rasiert und geändert; Ende des dritten Legatobogens zu 10. Note gesetzt und Staccatopunkte zu 11.–12. Note hinzugefügt. Siehe Korrektur zu T. 6 11–12/16 und T. 7 6–7/32." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "11–12/16", + "comment": "Staccatopunkte auf Rasur. Ante correcturam: Legatobogen (siehe Textfassung 2).
Decrescendogabel auf Rasur hinzugefügt." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/16", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8", + "system": "", + "position": "2/8", + "comment": "etwas langsamer | als tempo I. auf Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "3. Note auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2). D. h. Augmentationspunkt zu 2. Note vermutlich hinzugefügt." + }, + { + "measure": "8", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "8
bis 10", + "system": "Klav.", + "position": "4/8
1/8", + "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen geändert zu Balken.
Silbenbogen hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1/4", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich Großschreibung Möcht (siehe Textfassung 2)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2) mit Silbenbogen." + }, + { + "measure": "10", + "system": "Ges.", + "position": "(1/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('[a]')}}f1 (siehe Textfassung 2)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3–4/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich rühr-te (siehe Textfassung 2)." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit schwarzer Tinte auf Vorzeichnung mit Bleistift." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "2. Note
1/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + } + ] + } + ] + } + ] } }, { From 30866b3f020f52e9ad41645a54de9f86874ac481 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 14:11:29 +0000 Subject: [PATCH 094/213] build(deps): bump actions/checkout from 4.1.7 to 4.2.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 6 +++--- .github/workflows/codeql.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/visualize-repo.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index a08e2b07ba..98ba0862c2 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -44,7 +44,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 0 # Get all history and branches @@ -141,7 +141,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: # ref (branch, tag or SHA) to check out ref: ${{ env.DEV_GH_PAGES_BRANCH }} @@ -213,7 +213,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Set up node ${{ matrix.node-version}} uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d754f4cd80..2d329ebe53 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,7 +31,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 2 # Initializes the CodeQL tools for scanning. diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index c1209291aa..5c03af260a 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -22,6 +22,6 @@ jobs: egress-policy: audit - name: 'Checkout Repository' - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: 'Dependency Review' uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index fb3a18bf38..1ad4c73615 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -36,7 +36,7 @@ jobs: egress-policy: audit - name: "Checkout code" - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: persist-credentials: false diff --git a/.github/workflows/visualize-repo.yml b/.github/workflows/visualize-repo.yml index 26d237ebaa..b0325c6a2b 100644 --- a/.github/workflows/visualize-repo.yml +++ b/.github/workflows/visualize-repo.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: ref: develop token: ${{ secrets.REPO_TOKEN }} From 1ad6cbdbaff0c959fb0399208dceb18d6e96864b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 14:29:13 +0000 Subject: [PATCH 095/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.2.4 to 50.2.5 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.4 to 50.2.5. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.4...v50.2.5) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4eeca9bb47..41c566553d 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-jsdoc": "^50.2.4", + "eslint-plugin-jsdoc": "^50.2.5", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 5fd7909ac7..0517923eb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6084,7 +6084,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.30.0" - eslint-plugin-jsdoc: "npm:^50.2.4" + eslint-plugin-jsdoc: "npm:^50.2.5" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -8784,9 +8784,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.2.4": - version: 50.2.4 - resolution: "eslint-plugin-jsdoc@npm:50.2.4" +"eslint-plugin-jsdoc@npm:^50.2.5": + version: 50.2.5 + resolution: "eslint-plugin-jsdoc@npm:50.2.5" dependencies: "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" @@ -8801,7 +8801,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/9635726563213781dd18ee07459cc85ca4aca0f3b45bf02504cd880cb78757ef627578a0f9e5d412c401abcd7f6bab6d78f79198572b982ad2a71a74e03a416f + checksum: 10c0/f62a67f2b387588fb0733aef44f3f02f9640c616047f1e22dcab09a7d857c4be4b751fc866832e9a68e32ecc4fa0ea75c2f25cc7a96ffe9dc705c2cebfa540a2 languageName: node linkType: hard From abbdcb1af23817cf28e732e1841d7f34b7f222ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 14:23:18 +0000 Subject: [PATCH 096/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.5...18.2.6) Updates `@angular/cli` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.5...18.2.6) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 284 +++++++++++++++++++++++++-------------------------- 2 files changed, 144 insertions(+), 144 deletions(-) diff --git a/package.json b/package.json index 41c566553d..8146bf314d 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.5", + "@angular-devkit/build-angular": "^18.2.6", "@angular-eslint/builder": "^18.3.1", "@angular-eslint/eslint-plugin": "^18.3.1", "@angular-eslint/eslint-plugin-template": "^18.3.1", "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", - "@angular/cli": "^18.2.5", + "@angular/cli": "^18.2.6", "@angular/compiler-cli": "^18.2.5", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 0517923eb7..52767bd6ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.5": - version: 0.1802.5 - resolution: "@angular-devkit/architect@npm:0.1802.5" +"@angular-devkit/architect@npm:0.1802.6": + version: 0.1802.6 + resolution: "@angular-devkit/architect@npm:0.1802.6" dependencies: - "@angular-devkit/core": "npm:18.2.5" + "@angular-devkit/core": "npm:18.2.6" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/98c3e877e6bc140e263fff7c9224c6c348a401a0e9b1fe32d9e5f562162a608b605fd104fac441899ed3e6c0ed497a97b777cb07ce82ba48a45bbe8b19c09a07 + checksum: 10c0/59ab500fa1d2afafceeb6548174f0cfd4ef49014ff7826646b2019152e414112bf365578ce35784dd03ec58ce31c91d724eac3be5ece7c6a92f68d063dc8acc6 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular-devkit/build-angular@npm:18.2.5" +"@angular-devkit/build-angular@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular-devkit/build-angular@npm:18.2.6" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.5" - "@angular-devkit/build-webpack": "npm:0.1802.5" - "@angular-devkit/core": "npm:18.2.5" - "@angular/build": "npm:18.2.5" + "@angular-devkit/architect": "npm:0.1802.6" + "@angular-devkit/build-webpack": "npm:0.1802.6" + "@angular-devkit/core": "npm:18.2.6" + "@angular/build": "npm:18.2.6" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.5" + "@ngtools/webpack": "npm:18.2.6" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/1eaff28680c825e8aa85354754e2ec6094be858a8626e9d4f7b561ef1123b8397e7eefb1c6bedc8de111ddcd63608d421477ab9a766d2fc2a50804360a592eb2 + checksum: 10c0/b41bdc80580e0a6ec79a548fe9cadb14ccafeaf8c8016425855182629d846b04b0638b045d4ffeaaf307058853d6379ce758b3df3f9cb8e8aea989db949141f1 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.5": - version: 0.1802.5 - resolution: "@angular-devkit/build-webpack@npm:0.1802.5" +"@angular-devkit/build-webpack@npm:0.1802.6": + version: 0.1802.6 + resolution: "@angular-devkit/build-webpack@npm:0.1802.6" dependencies: - "@angular-devkit/architect": "npm:0.1802.5" + "@angular-devkit/architect": "npm:0.1802.6" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/388c5b8e1337d4009339ee16a2b87fa2684dff1fb22e20a6f4f4a20890d9ea5445fdfdad334d3bfb1eaff2c11e54e0a309bc3c3a2b94e4601acfaabc2fcac9e5 + checksum: 10c0/2af2d59a181d560cc5033a6cf923051972f9aa1bdf967d7c1c616f4a53c1ce65a9b486bbed3a649c824c520f36bcaef0c3d612061ee23c50f4710c0b691b0646 languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.5": - version: 18.2.5 - resolution: "@angular-devkit/core@npm:18.2.5" +"@angular-devkit/core@npm:18.2.6": + version: 18.2.6 + resolution: "@angular-devkit/core@npm:18.2.6" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/ec43823814bf65ca13ec7c9fe653a9e1c6e1eacc8b775cdd3128e998ac4f598f56ffee717cbee8db0f581e56da08197beddcfe7cb58034060a2c79f76bc22847 + checksum: 10c0/027414c1923f2dc545b301c45d5867cc47659b8087b584d86dab3331bc34a0d3309de743f9beab78f7f92a9f057350848545e4c94bf0b14f683095414c054601 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.5": - version: 18.2.5 - resolution: "@angular-devkit/schematics@npm:18.2.5" +"@angular-devkit/schematics@npm:18.2.6": + version: 18.2.6 + resolution: "@angular-devkit/schematics@npm:18.2.6" dependencies: - "@angular-devkit/core": "npm:18.2.5" + "@angular-devkit/core": "npm:18.2.6" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/06de4de8a9660e7330f155fd8bb7fa30aa2ff4c7cb185580191fe0df87704a9ac93400eaece23b2256bb364b743d7bd85907aa45fca25208ed54a6ce320fb009 + checksum: 10c0/4f4ae12896b9e89b1f99dbba0e30e414d4885125906c060144917068f876d847fbadb1195922e431b8822880aa9a1f931f8894dc349691c231134828c1359bc4 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.5": - version: 18.2.5 - resolution: "@angular/build@npm:18.2.5" +"@angular/build@npm:18.2.6": + version: 18.2.6 + resolution: "@angular/build@npm:18.2.6" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.5" + "@angular-devkit/architect": "npm:0.1802.6" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -409,7 +409,7 @@ __metadata: parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" piscina: "npm:4.6.1" - rollup: "npm:4.20.0" + rollup: "npm:4.22.4" sass: "npm:1.77.6" semver: "npm:7.6.3" vite: "npm:5.4.6" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/5899d2b6e6532d2cd2c2a39220c20c48cf6c466f9e8542f36c2dfc8ca56e00a90c513d3b80acd8c76ff3d29e1d885d617f9abc7a7d225ff068eba984ffb5f113 + checksum: 10c0/6510564b21c2bafafb664a1bb3d97d876dbc8bfdc3f54c3d2fe3c7bf2771dcfb0cf179f171778939d9a60bf1525f25811ef3a16dc37266cef89b60c041964a8e languageName: node linkType: hard -"@angular/cli@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/cli@npm:18.2.5" +"@angular/cli@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/cli@npm:18.2.6" dependencies: - "@angular-devkit/architect": "npm:0.1802.5" - "@angular-devkit/core": "npm:18.2.5" - "@angular-devkit/schematics": "npm:18.2.5" + "@angular-devkit/architect": "npm:0.1802.6" + "@angular-devkit/core": "npm:18.2.6" + "@angular-devkit/schematics": "npm:18.2.6" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.5" + "@schematics/angular": "npm:18.2.6" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/474291f59bb267cc108c7167fc0988a98ae71f0bb6b77cc6e5c69d0f943aa9bc1fe9c4a729be25d4cdd86fdeb6b50dfc51b585c591a9be9021362a9862624c55 + checksum: 10c0/76e3ae9f6f77045649583dbc9a2be6b88a8299901b215ab3dc58f742bb842cefc0ce3c930765c3a37d0c90435810156cbff972964ccfb8401f088426c5e0387d languageName: node linkType: hard @@ -3934,9 +3934,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.5": - version: 18.2.5 - resolution: "@ngtools/webpack@npm:18.2.5" +"@ngtools/webpack@npm:18.2.6": + version: 18.2.6 + resolution: "@ngtools/webpack@npm:18.2.6" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3946,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/d16bf5a093ee3c59ed7547684752d86eb14567819ac34c8de1d28e426d73e20a9c851110ee6009f8d8f922477497137038155cb731fef48f421170a472d04d95 + checksum: 10c0/a00afdb4391e2dbe61d9330914e7d012c076894dfa7edabbff42e756df6286f9f21bd4d281f44486157728fe7b617786f165956c6b9efe678c562e419a7c0a1a languageName: node linkType: hard @@ -4127,13 +4127,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@rollup/rollup-android-arm-eabi@npm:4.22.0": version: 4.22.0 resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.0" @@ -4141,10 +4134,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-android-arm64@npm:4.20.0" - conditions: os=android & cpu=arm64 +"@rollup/rollup-android-arm-eabi@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" + conditions: os=android & cpu=arm languageName: node linkType: hard @@ -4155,10 +4148,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" - conditions: os=darwin & cpu=arm64 +"@rollup/rollup-android-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm64@npm:4.22.4" + conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -4169,10 +4162,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" - conditions: os=darwin & cpu=x64 +"@rollup/rollup-darwin-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -4183,10 +4176,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" - conditions: os=linux & cpu=arm & libc=glibc +"@rollup/rollup-darwin-x64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -4197,10 +4190,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" - conditions: os=linux & cpu=arm & libc=musl +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard @@ -4211,10 +4204,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" - conditions: os=linux & cpu=arm64 & libc=glibc +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard @@ -4225,10 +4218,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" - conditions: os=linux & cpu=arm64 & libc=musl +"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -4239,10 +4232,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" - conditions: os=linux & cpu=ppc64 & libc=glibc +"@rollup/rollup-linux-arm64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -4253,10 +4246,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" - conditions: os=linux & cpu=riscv64 & libc=glibc +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" + conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -4267,10 +4260,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" - conditions: os=linux & cpu=s390x & libc=glibc +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" + conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard @@ -4281,10 +4274,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" - conditions: os=linux & cpu=x64 & libc=glibc +"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" + conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -4295,10 +4288,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" - conditions: os=linux & cpu=x64 & libc=musl +"@rollup/rollup-linux-x64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -4309,10 +4302,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" - conditions: os=win32 & cpu=arm64 +"@rollup/rollup-linux-x64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -4323,10 +4316,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" - conditions: os=win32 & cpu=ia32 +"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -4337,10 +4330,10 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" - conditions: os=win32 & cpu=x64 +"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -4351,6 +4344,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -4358,19 +4358,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.5": - version: 18.2.5 - resolution: "@schematics/angular@npm:18.2.5" +"@schematics/angular@npm:18.2.6": + version: 18.2.6 + resolution: "@schematics/angular@npm:18.2.6" dependencies: - "@angular-devkit/core": "npm:18.2.5" - "@angular-devkit/schematics": "npm:18.2.5" + "@angular-devkit/core": "npm:18.2.6" + "@angular-devkit/schematics": "npm:18.2.6" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/d5da79b792174b9dcf3d07bb14192022df45e64341dada5752860c9700d34a49a20999ab23e6daa102588e9f1114b54cef12807e3434f69ed5fc1cc5a8d1cfb9 + checksum: 10c0/88259c1df78eff529239db4db1b02b3b46dd45e4e537563880fa851330aa3d68e752a203c96e1d84ae9bb2bb315c2e36e68316204f60ed353a56bd74cdd50337 languageName: node linkType: hard @@ -6037,14 +6037,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.5" + "@angular-devkit/build-angular": "npm:^18.2.6" "@angular-eslint/builder": "npm:^18.3.1" "@angular-eslint/eslint-plugin": "npm:^18.3.1" "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.5" - "@angular/cli": "npm:^18.2.5" + "@angular/cli": "npm:^18.2.6" "@angular/common": "npm:^18.2.5" "@angular/compiler": "npm:^18.2.5" "@angular/compiler-cli": "npm:^18.2.5" @@ -14504,26 +14504,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.20.0": - version: 4.20.0 - resolution: "rollup@npm:4.20.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.20.0" - "@rollup/rollup-android-arm64": "npm:4.20.0" - "@rollup/rollup-darwin-arm64": "npm:4.20.0" - "@rollup/rollup-darwin-x64": "npm:4.20.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-x64-musl": "npm:4.20.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" +"rollup@npm:4.22.4": + version: 4.22.4 + resolution: "rollup@npm:4.22.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.22.4" + "@rollup/rollup-android-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-x64": "npm:4.22.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-musl": "npm:4.22.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -14563,7 +14563,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/9b23bf0e3380e64573a5f68a55274d5c7969036e55c19aab9fb4deea2e938d76769db70f3c95ee3783c24af152bea1772ad73f9e3625b6ffd4e600a788fe97ea + checksum: 10c0/4c96b6e2e0c5dbe73b4ba899cea894a05115ab8c65ccff631fbbb944e2b3a9f2eb3b99c2dce3dd91b179647df1892ffc44ecee29381ccf155ba8000b22712a32 languageName: node linkType: hard From 005107f5a012bbf417dbd85fe3828a9406cadfe3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 08:58:50 +0000 Subject: [PATCH 097/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.5` | `18.2.6` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.5` | `18.2.6` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.5` | `18.2.6` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.5` | `18.2.6` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.5` | `18.2.6` | | [@angular/localize](https://github.com/angular/angular) | `18.2.5` | `18.2.6` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.5` | `18.2.6` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.5` | `18.2.6` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.5` | `18.2.6` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.5` | `18.2.6` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.5` | `18.2.6` | Updates `@angular/animations` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/animations) Updates `@angular/common` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/common) Updates `@angular/compiler` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/compiler) Updates `@angular/core` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/core) Updates `@angular/forms` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/forms) Updates `@angular/localize` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.5...18.2.6) Updates `@angular/platform-browser` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/platform-server) Updates `@angular/router` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/router) Updates `@angular/compiler-cli` from 18.2.5 to 18.2.6 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.6/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 8146bf314d..be32bed312 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.5", - "@angular/common": "^18.2.5", - "@angular/compiler": "^18.2.5", - "@angular/core": "^18.2.5", - "@angular/forms": "^18.2.5", - "@angular/localize": "^18.2.5", - "@angular/platform-browser": "^18.2.5", - "@angular/platform-browser-dynamic": "^18.2.5", - "@angular/platform-server": "^18.2.5", - "@angular/router": "^18.2.5", + "@angular/animations": "^18.2.6", + "@angular/common": "^18.2.6", + "@angular/compiler": "^18.2.6", + "@angular/core": "^18.2.6", + "@angular/forms": "^18.2.6", + "@angular/localize": "^18.2.6", + "@angular/platform-browser": "^18.2.6", + "@angular/platform-browser-dynamic": "^18.2.6", + "@angular/platform-server": "^18.2.6", + "@angular/router": "^18.2.6", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", "@angular/cli": "^18.2.6", - "@angular/compiler-cli": "^18.2.5", + "@angular/compiler-cli": "^18.2.6", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 52767bd6ad..d2a604e8bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/animations@npm:18.2.5" +"@angular/animations@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/animations@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.5 - checksum: 10c0/dac5c08755ae4ab8cae1aea7c9e8d7eef730a337283057ee663d77a66e635918c2fb9e1e398885c5ce8d4114231fe589334073a1fd27de62b8767a5b73e5eb56 + "@angular/core": 18.2.6 + checksum: 10c0/68491e883834a924f8c1d4aa9a22244c376d2f8e8e24b69e8368c7d38ad16e2c61be6ff9bd9349d89b6361354b051d1bd431b6308c2a65c4c74e6c72701d2399 languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/common@npm:18.2.5" +"@angular/common@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/common@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.5 + "@angular/core": 18.2.6 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/80156f93bb4109e39d39b3b768109b60f10b226d32a811da6989feacb4b879a9d17242346023442f70cbbc3762e15193fc667d75cdc474c13f2e132d35096d2e + checksum: 10c0/74b570da52ea37166f70a83f4c07d67afdafd994997a854290200907091b2c6bb1a99a7789f3463fc6d714b710a7a104681073139faecf36a243b5243fb7798f languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/compiler-cli@npm:18.2.5" +"@angular/compiler-cli@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/compiler-cli@npm:18.2.6" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.5 + "@angular/compiler": 18.2.6 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/04625900fc9882d6318ed86524d910961a44b68183499fbd43714fa5ffde08dc3c7b4f2cc24ec960302879224e5882239bac7521b1544f1801875ad801a661c6 + checksum: 10c0/551883f0d705f0b81e6589afcb4cb240a3e6ea517c275a806ac5328a90edcb0dbc409af985f7f80c4ac93ac539dc6c140e7ae5dd94c1521d3d232627fece261e languageName: node linkType: hard -"@angular/compiler@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/compiler@npm:18.2.5" +"@angular/compiler@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/compiler@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.5 + "@angular/core": 18.2.6 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/750cd0ae9aba3de206040d00a2150a15ac76b6639b5c56565674d9896a957b1ea8a369796ad01a339ce2226333ed3473d1493ac0a93c2d5aba10427e35352902 + checksum: 10c0/9afd029eaedf1f547c531a82ed6db64384b520fb06177eeb410d3f8ae65501ad8ead01e265b47523267f5745d580c382f0365480ea2ef66f81c0ec5f825b4250 languageName: node linkType: hard -"@angular/core@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/core@npm:18.2.5" +"@angular/core@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/core@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/158ad8181af43d5b54f4a12ff539e2fd718449648a412ce2b437270f4441d2f2ec5a7235b6ad8df09bfd633ebcfeb61c5081105dd37b505405b335f15ef83c3a + checksum: 10c0/464b76624fd82e76b45a8b4d399bd84c90672863a6a60c8879ce244e2b8ed302b33d605f16df6697647534d0c4abdcfaae9ba1fa2a8713d830a4689030da4212 languageName: node linkType: hard -"@angular/forms@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/forms@npm:18.2.5" +"@angular/forms@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/forms@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.5 - "@angular/core": 18.2.5 - "@angular/platform-browser": 18.2.5 + "@angular/common": 18.2.6 + "@angular/core": 18.2.6 + "@angular/platform-browser": 18.2.6 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/9e26893f685edab77754addcaa852abe76d7f1d6187fa99a9378f6ce09f3062290c6db606b27b848d556e77d53c007dc8029662f9a11cd4c924a4792a3856ced + checksum: 10c0/35dc2ff65774635525bd992bbd3438b09e94c6d7d3d7638bfc60c54af812ac0609dff7e61afbe078f11b38cefcbc1ce5de8cdcda50b7b914ba4e1d7d94ad4017 languageName: node linkType: hard -"@angular/localize@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/localize@npm:18.2.5" +"@angular/localize@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/localize@npm:18.2.6" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.5 - "@angular/compiler-cli": 18.2.5 + "@angular/compiler": 18.2.6 + "@angular/compiler-cli": 18.2.6 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/c433eae0a9bb9158abe3e7ce608ea67bd7691a98efce995a55b7211665fb393c67624bf92131dce47e101e96a4ed2c93b3bc83f18f25d709c891ad6d36b44093 + checksum: 10c0/fcbaad3b7bf8c9bad3c71610baa94a7765ce278faf5a6cc1a9e57cc021f16667e720ffbe3e898cc7f6462a85926020a6f13f822f948761bb50f70ead60b067a2 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/platform-browser-dynamic@npm:18.2.5" +"@angular/platform-browser-dynamic@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/platform-browser-dynamic@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.5 - "@angular/compiler": 18.2.5 - "@angular/core": 18.2.5 - "@angular/platform-browser": 18.2.5 - checksum: 10c0/3acf09ac6b22ad3a8d80deac78c8a0693ac5d3644251f262326a7cb2b30e5543feebb26166007861cf901752f304e16be6f82f07e34a30153684713905019f6b + "@angular/common": 18.2.6 + "@angular/compiler": 18.2.6 + "@angular/core": 18.2.6 + "@angular/platform-browser": 18.2.6 + checksum: 10c0/5b8482262d67affbd1233bdab590ed772561f7a3888a6e6bdbe6e8b8ee736257e07469d7979508d4ea521a13e905b72ee6088e05c16ad468078d5043b87d0585 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/platform-browser@npm:18.2.5" +"@angular/platform-browser@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/platform-browser@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.5 - "@angular/common": 18.2.5 - "@angular/core": 18.2.5 + "@angular/animations": 18.2.6 + "@angular/common": 18.2.6 + "@angular/core": 18.2.6 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/75ad52c4d59bb5031490cf4f8bf1d3fa00b40f6cf1426046847c7a383b2f9c983767b6efd0d3293a2d8f125043c860eb3444bafe56db75aeb85be5a7065ecd73 + checksum: 10c0/54f3e6224df60e76586b4ec0f5fcf06b92c7e6e54e9ded63543a75d8375755f84b3ae2357a5fd3144c82b01628e5edab6b01e477c3df64d447f9cf2e3d346fd5 languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/platform-server@npm:18.2.5" +"@angular/platform-server@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/platform-server@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.5 - "@angular/common": 18.2.5 - "@angular/compiler": 18.2.5 - "@angular/core": 18.2.5 - "@angular/platform-browser": 18.2.5 - checksum: 10c0/b2034dca7c6ba81ee6f4f8c6c930da205b4486690472b1b3c6a82762ebee8c3540670d8515d967e90feb34d1e85bb7156c40ea8ddfa684590867b3279396c7db + "@angular/animations": 18.2.6 + "@angular/common": 18.2.6 + "@angular/compiler": 18.2.6 + "@angular/core": 18.2.6 + "@angular/platform-browser": 18.2.6 + checksum: 10c0/af85d09873f15358b2c20713b0c46715ce3952d9c018db86eea615770e606635d6313588e5b51eb9e45e16e51c3d6b52afea50ce3a781c672532bc4d35a07526 languageName: node linkType: hard -"@angular/router@npm:^18.2.5": - version: 18.2.5 - resolution: "@angular/router@npm:18.2.5" +"@angular/router@npm:^18.2.6": + version: 18.2.6 + resolution: "@angular/router@npm:18.2.6" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.5 - "@angular/core": 18.2.5 - "@angular/platform-browser": 18.2.5 + "@angular/common": 18.2.6 + "@angular/core": 18.2.6 + "@angular/platform-browser": 18.2.6 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/dd4a8447d7ac49c85b28b0b96a19b2d93bf1b3598dfc6a19771660ed2a1343ec7b02aaccf08aca83390c18e313723a0618ca83576ac056d659258a6cdeca01a4 + checksum: 10c0/9a28d72d187339c8fa83fd72375948808bdaa5c89f432c31fd2d89bd9a3fa57719a3ee0f264a88310170b262846c7ba5db44c582de858a454f1ac341432041c2 languageName: node linkType: hard @@ -6043,18 +6043,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" - "@angular/animations": "npm:^18.2.5" + "@angular/animations": "npm:^18.2.6" "@angular/cli": "npm:^18.2.6" - "@angular/common": "npm:^18.2.5" - "@angular/compiler": "npm:^18.2.5" - "@angular/compiler-cli": "npm:^18.2.5" - "@angular/core": "npm:^18.2.5" - "@angular/forms": "npm:^18.2.5" - "@angular/localize": "npm:^18.2.5" - "@angular/platform-browser": "npm:^18.2.5" - "@angular/platform-browser-dynamic": "npm:^18.2.5" - "@angular/platform-server": "npm:^18.2.5" - "@angular/router": "npm:^18.2.5" + "@angular/common": "npm:^18.2.6" + "@angular/compiler": "npm:^18.2.6" + "@angular/compiler-cli": "npm:^18.2.6" + "@angular/core": "npm:^18.2.6" + "@angular/forms": "npm:^18.2.6" + "@angular/localize": "npm:^18.2.6" + "@angular/platform-browser": "npm:^18.2.6" + "@angular/platform-browser-dynamic": "npm:^18.2.6" + "@angular/platform-server": "npm:^18.2.6" + "@angular/router": "npm:^18.2.6" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" From 0d70055cc12529d56311f6dee29f012bc6a9fb12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:08:23 +0000 Subject: [PATCH 098/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.2.5 to 50.3.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.5 to 50.3.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.5...v50.3.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index be32bed312..2c30e700bd 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-jsdoc": "^50.2.5", + "eslint-plugin-jsdoc": "^50.3.0", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index d2a604e8bc..1dcaec523d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6084,7 +6084,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.30.0" - eslint-plugin-jsdoc: "npm:^50.2.5" + eslint-plugin-jsdoc: "npm:^50.3.0" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -8784,9 +8784,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.2.5": - version: 50.2.5 - resolution: "eslint-plugin-jsdoc@npm:50.2.5" +"eslint-plugin-jsdoc@npm:^50.3.0": + version: 50.3.0 + resolution: "eslint-plugin-jsdoc@npm:50.3.0" dependencies: "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" @@ -8801,7 +8801,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/f62a67f2b387588fb0733aef44f3f02f9640c616047f1e22dcab09a7d857c4be4b751fc866832e9a68e32ecc4fa0ea75c2f25cc7a96ffe9dc705c2cebfa540a2 + checksum: 10c0/2188f10c350f3306f476913f63880bb3324932006a40f28f4b7b95c10d147e8fd98b03917357c01ae2f81d60bc1c169dbdacc72031e2c1ae602445f39e574da1 languageName: node linkType: hard From 6d65df81b5ca910a18fadbbe8c333fedc24a06a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:42:44 +0000 Subject: [PATCH 099/213] build(deps): bump rollup from 4.22.0 to 4.22.4 Bumps [rollup](https://github.com/rollup/rollup) from 4.22.0 to 4.22.4. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.22.0...v4.22.4) --- updated-dependencies: - dependency-name: rollup dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 177 +----------------------------------------------------- 1 file changed, 1 insertion(+), 176 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1dcaec523d..af6b7dff9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4127,13 +4127,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@rollup/rollup-android-arm-eabi@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" @@ -4141,13 +4134,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-android-arm64@npm:4.22.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-android-arm64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-android-arm64@npm:4.22.4" @@ -4155,13 +4141,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.22.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-darwin-arm64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" @@ -4169,13 +4148,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.22.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-darwin-x64@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" @@ -4183,13 +4155,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.0" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" @@ -4197,13 +4162,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.0" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" @@ -4211,13 +4169,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-arm64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" @@ -4225,13 +4176,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-arm64-musl@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" @@ -4239,13 +4183,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" @@ -4253,13 +4190,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" @@ -4267,13 +4197,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-s390x-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" @@ -4281,13 +4204,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-x64-gnu@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" @@ -4295,13 +4211,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-x64-musl@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" @@ -4309,13 +4218,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-win32-arm64-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" @@ -4323,13 +4225,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@rollup/rollup-win32-ia32-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" @@ -4337,13 +4232,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.22.0": - version: 4.22.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-win32-x64-msvc@npm:4.22.4": version: 4.22.4 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" @@ -14504,7 +14392,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.22.4": +"rollup@npm:4.22.4, rollup@npm:^4.20.0": version: 4.22.4 resolution: "rollup@npm:4.22.4" dependencies: @@ -14567,69 +14455,6 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.20.0": - version: 4.22.0 - resolution: "rollup@npm:4.22.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.22.0" - "@rollup/rollup-android-arm64": "npm:4.22.0" - "@rollup/rollup-darwin-arm64": "npm:4.22.0" - "@rollup/rollup-darwin-x64": "npm:4.22.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.22.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.22.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.22.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.22.0" - "@rollup/rollup-linux-x64-musl": "npm:4.22.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.22.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.22.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.22.0" - "@types/estree": "npm:1.0.5" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-powerpc64le-gnu": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10c0/8dd70e7f8d1f8f1a40328634ced7438daca5a7da113d60881bc743a8a601f23d6922488b33754f47c8acea29fda1b3085040ff261f9ee6820cfb4370b4a89528 - languageName: node - linkType: hard - "rrweb-cssom@npm:^0.6.0": version: 0.6.0 resolution: "rrweb-cssom@npm:0.6.0" From 2615d0b12ce6cdc8d633c2c54e4160c3bcbfe527 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 14:16:57 +0000 Subject: [PATCH 100/213] build(deps): bump github/codeql-action from 3.26.9 to 3.26.10 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.9 to 3.26.10. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/461ef6c76dfe95d5c364de2f431ddbd31a417628...e2b3eafc8d227b0241d48be5f425d47c2d750a13) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2d329ebe53..d158900f35 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9 + uses: github/codeql-action/init@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9 + uses: github/codeql-action/autobuild@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9 + uses: github/codeql-action/analyze@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 1ad4c73615..c9b06419ef 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9 + uses: github/codeql-action/upload-sarif@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 with: sarif_file: results.sarif From 9551bbd438b49c6a44f6a8ac118281f3047310f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 14:12:57 +0000 Subject: [PATCH 101/213] build(deps): bump n3 from 1.22.1 to 1.22.3 Bumps [n3](https://github.com/rdfjs/N3.js) from 1.22.1 to 1.22.3. - [Release notes](https://github.com/rdfjs/N3.js/releases) - [Commits](https://github.com/rdfjs/N3.js/compare/v1.22.1...v1.22.3) --- updated-dependencies: - dependency-name: n3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2c30e700bd..139928a9fc 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "d3-zoom": "^3.0.0", "font-awesome": "^4.7.0", "json2typescript": "^1.5.1", - "n3": "^1.22.1", + "n3": "^1.22.3", "ngx-json-viewer": "^3.2.1", "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", "rxjs": "~7.8.1", diff --git a/yarn.lock b/yarn.lock index af6b7dff9b..60d7a50b85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5985,7 +5985,7 @@ __metadata: karma-jasmine: "npm:~5.1.0" karma-jasmine-html-reporter: "npm:^2.1.0" lint-staged: "npm:^15.2.10" - n3: "npm:^1.22.1" + n3: "npm:^1.22.3" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" @@ -12450,14 +12450,14 @@ __metadata: languageName: node linkType: hard -"n3@npm:^1.22.1": - version: 1.22.1 - resolution: "n3@npm:1.22.1" +"n3@npm:^1.22.3": + version: 1.22.3 + resolution: "n3@npm:1.22.3" dependencies: buffer: "npm:^6.0.3" queue-microtask: "npm:^1.1.2" readable-stream: "npm:^4.0.0" - checksum: 10c0/b50803e332bff66e30ad83cdcd811a3e190a5fde05ff25ef60e6c4b8102624c565e1b15cca28c99d813e2bc15869feef71d5ba5466ad3106e082cf9e760c6b87 + checksum: 10c0/dd976f7cbbef7496424aacef55985819784391238ecf3da5fcf3749125741a8a10ae979d7bd2a3e938bfed403a51dc33dfb431308d5cb46c304b77ef1aba46d1 languageName: node linkType: hard From 8fd65a35df30647ef1c27b17ba005d3a03ad9a21 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:37:26 +0200 Subject: [PATCH 102/213] feat(assets): add corrections in op3: E * fix Op3: source_Ab_corr2 * add corrections for Op3: source_Eabcde_corr --- .../1/section/5/op3/source-description.json | 1062 ++++++++++++++++- 1 file changed, 1061 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 0be9bc2316..2af5ad0cc2 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -376,7 +376,7 @@ }, { "id": "source_Ab_corr2", - "label": "Korrekturen 2 in Ab (mit schwarzer Tinte ggf. auf Rasur)", + "label": "Korrekturen 2 in Ab (mit Bleistift)", "description": [ "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 1." ], @@ -1422,6 +1422,1066 @@ } ] } + ], + "corrections": [ + { + "id": "source_Ea_corr", + "label": "Korrekturen in Ea", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 4." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "etwas zögernd gestrichen mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2/8", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}} mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "(2/4)", + "comment": "Triole aus Viertelnote, Achtelpause geändert zu Viertelnote; Bogen nach Viertelnote gestrichen mit rotem Buntstift.
< > hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1
bis 2", + "system": "Ges.", + "position": "1. Note
5/8", + "comment": "Bogen hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Wellenlinie über den Noten mit rotem Buntstift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "5–6/8", + "comment": "Wellenlinie über den Noten mit rotem Buntstift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} überschrieben zu {{ref.getGlyph('[p]')}} mit grünem Buntstift, dann {{ref.getGlyph('[p]')}} geändert zu [mp] mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Markierung der Viertel-Zählzeiten mit 1, 2, 3, 4 und Klammern (Zählzeiten 1–3) über dem System mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} überschrieben zu {{ref.getGlyph('[pp]')}} mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Decrescendogabel hinzugefügt, Legatobogen gestrichen mit rotem Buntstift." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "(1/16)", + "comment": "Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "Achtelnote c1 sowie Etwas langsamer | als Tempo I. auf Rasur." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "", + "comment": "Teilweise auf Rasur." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Notenkopf eingekreist mit grünem Buntstift." + }, + { + "measure": "10", + "system": "Ges., Klav. o.", + "position": "(4/8)", + "comment": "Markierungen zur korrekten Untersatz-Position von Ges. 4/8 im Verhältnis zu Klav. o. 2.–4. Note mit Bleistift und grünem Buntstift." + } + ] + } + ] + }, + { + "id": "source_Eb_corr1", + "label": "Korrekturen 1 in Eb (mit Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "3", + "system": "Ges.", + "position": "3. Note", + "comment": "Text: Anfang von nur nachgezogen." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5/8", + "comment": "Text: Komma hinzugefügt. Siehe TkA." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "6.–7. Note", + "comment": "Auf Rasur." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1.–4. Note", + "comment": "Bogen bis 5/16 in Klav. u. rasiert und geändert bis zu 4. Note." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "6–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4. Note", + "comment": "Text: ein auf Rasur. Ante correcturam: vermutlich Großschreibung Ein (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text: nun auf Rasur. Ante correcturam: vermutlich Großschreibung Nun (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/2", + "comment": "Vermutlich Viertelpause zu 4/4 rasiert (siehe Textfassung 1) und Halbe Pause hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "vorletze Note", + "comment": "Text: um auf Rasur. Ante correcturam: vermutlich Großschreibung Um (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2.–3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "6.–7. Note", + "comment": "Auf Rasur." + }, + { + "measure": "9", + "system": "Ges.", + "position": "5–6/8", + "comment": "Text: {{ref.getGlyph('[a]')}}-lle auf Rasur. Ante correcturam: vermutlich -lle bereits zu 5/8." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text: in auf Rasur. Ante correcturam: vermutlich Großschreibung In (siehe Textfassung 1)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5/16–6/8", + "comment": "Auf Rasur." + }, + { + "measure": "10", + "system": "Ges, Klav. o.", + "position": "4/4", + "comment": "Viertelpause auf Rasur. Ante correcturam: Schlusstaktstrich nach 3/4." + } + ] + } + ] + }, + { + "id": "source_Eb_corr2", + "label": "Korrekturen 2 in Eb (mit Bleistift und grünem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Bewegt mit Bleistift." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} zu a mit Bleistift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3–5/8", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "3
bis 4", + "system": "", + "position": "(5/8)
Taktanfang", + "comment": "rit.- - - langsamer gestrichen mit Bleistift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "8/16", + "comment": "Sechzehntelfähnchen hinzugefügt mit Bleistift. Siehe Korrekturen 1 1.–3. Note." + }, + { + "measure": "5", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "langsam gestrichen mit Bleistift." + }, + { + "measure": "6", + "system": "", + "position": "(2/4)", + "comment": "Zuerst: rit zu (4/8) hinzugefügt mit grünem Buntstift.
Dann: rit gestrichen und Rit zu 3/8 hinzugefügt mit grünem Buntstift." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "2/8
Taktanfang", + "comment": "acell. - - - tempo hinzugefügt zunächst mit Bleistift, dann mit schwarzer Tinte nachgezogen. (Siehe Textfassung 3.)" + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + } + ] + } + ] + }, + { + "id": "source_Ec_corr1", + "label": "Korrekturen 1 in Ec (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "", + "comment": "Leicht und zart auf Rasur." + }, + { + "measure": "vor 1", + "system": "Klav. o./u.", + "position": "1. Pause
bis letzte Note", + "comment": "Bögen gestrichen." + }, + { + "measure": "vor 1
bis 3", + "system": "Ges.", + "position": "2/8
4. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "3
bis 5", + "system": "Ges.", + "position": "6/8
1/8", + "comment": "Bogen rasiert." + }, + { + "measure": "5
bis 7", + "system": "Ges.", + "position": "4/16
vorletzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "6
bis 10", + "system": "Klav. o.", + "position": "1/8
1/8", + "comment": "Bogen rasiert. Bögen T. 6 1/8 bis T. 7 3. Note sowie T. 7 4. Note bis T. 10 1/8 vermutlich hinzugefügt." + }, + { + "measure": "8–12", + "system": "", + "position": "", + "comment": "Auf Tektur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3–4/8", + "comment": "Text: Rasur nach bleicht." + }, + { + "measure": "8
bis 11", + "system": "Ges.", + "position": "4/8
letzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "10
bis 12", + "system": "Klav.", + "position": "2. Note
2/4", + "comment": "Bogen gestrichen. Bogen in T. 10 2. Note bis 8/16 auf Rasur hinzugefügt." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "1. Note", + "comment": "A auf Rasur." + }, + { + "measure": "13
bis 14", + "system": "Ges.", + "position": "1/8
letzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "14", + "system": "Klav.", + "position": "1. Note
bis 2/4", + "comment": "Ligaturbögen auf Rasur." + } + ] + } + ] + }, + { + "id": "source_Ec_cor2", + "label": "Korrekturen 2 in Ec (mit Bleistift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Klav.", + "position": "1–3/8", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "3–7", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "4", + "system": "Ges.", + "position": "Taktanfang", + "comment": "2/4-Taktvorzeichnung geändert zu 3/4. Siehe Textfassung 2." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1. Note", + "comment": "Achtelnote geändert zu punktierter Viertelnote. Siehe Textfassung 2." + }, + { + "measure": "4", + "system": "", + "position": "(2/4)", + "comment": "im Tempo hinzugefügt." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "tempo hinzugefügt." + }, + { + "measure": "8
bis 9", + "system": "", + "position": "Taktanfang
Taktende", + "comment": "Zuerst: rit. - - - hinzugefügt.
Dann: Position von rit. geändert zu T. 9 Taktanfang." + }, + { + "measure": "11", + "system": "Ges.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "8va hinzugefügt. Siehe Textfassung 2." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "NB-Formulierung gestrichen." + }, + { + "measure": "12", + "system": "Klav.", + "position": "3. Note", + "comment": "Tenutostrich hinzugefügt." + }, + { + "measure": "14–15", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + } + ] + } + ] + }, + { + "id": "source_Ed_corr1", + "label": "Korrekturen 1 in Ed (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "8/8", + "comment": "Achtelnote geändert zu Sechzehntelnote und zu (16/16) versetzt. Siehe auch Korrekturen 2 7/8." + }, + { + "measure": "5
bis 6", + "system": "Ges.", + "position": "3/8", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "5/16–24/32", + "comment": "Auf Tektur." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA zu 1–4/8." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "Fortführung des Bogens nach T. 8 geändert zu Ende des Bogens in T. 7 letzte Note. Siehe Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3–6/8", + "comment": "Teilweise auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3–4/8", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." + } + ] + } + ] + }, + { + "id": "source_Ed_corr2", + "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "Ges.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1–2/8", + "comment": "Zäsurzeichen zwischen den Noten hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "2.–4. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8 bis letzte Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "7/8", + "comment": "Achtelnote geändert zu punktierter Achtelnote. Siehe auch Korrekturen 1 8/8." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Ges., Klav.", + "position": "(3/8)", + "comment": "Fermate hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3.–6. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2–4/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2., 3. Note", + "comment": "Pfeile zu Klav. u. zur Bestimmung des korrekten Untersatzes." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "", + "position": "Taktanfang", + "comment": "sehr ruhig (siehe Textfassung 1) gestrichen und geändert zu langsamer als zu Beginn." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "12/16–7/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "9
bis 10", + "system": "", + "position": "Taktanfang
Taktende", + "comment": "Rit[.] - - - hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2/8", + "comment": "dis1 zu gis1 hinzugefügt. (Notiert in Klav. o.)" + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8–5/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "5. Note", + "comment": "{{ref.getGlyph('[b]')}} zu b1 hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "8/8", + "comment": "wie ein Hauch (siehe T. 10 1/8) bereits hier hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Ee_corr1", + "label": "Korrekturen 1 in Ee (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. u.", + "position": "4–5/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich 2/4–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8", + "comment": "Text: Großschreibung Im geändert zu Kleinschreibung im." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4/8", + "comment": "Text: Großschreibung Sein geändert zu Kleinschreibung sein." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4/8", + "comment": "Text: Großschreibung Laß überschrieben zu Kleinschreibung laß." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "", + "comment": "Auf Tektur." + }, + { + "measure": "6", + "system": "Ges.", + "position": "2/8", + "comment": "Text: Großschreibung Vor geändert zu Kleinschreibung vor." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1–2/8", + "comment": "Auf Rasur." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/8", + "comment": "Unterstimmenschicht: [sf] gestrichen." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote." + }, + { + "measure": "10", + "system": "Ges.", + "position": "2. Note", + "comment": "Text: Großschreibung Mit geändert zu Kleinschreibung mit." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2/8", + "comment": "Text: Großschreibung Noch geändert zu Kleinschreibung noch." + }, + { + "measure": "13", + "system": "Ges.", + "position": "4/8, 3/4", + "comment": "Auf Rasur. (Vermutlich Untersatz-Korrektur.)" + }, + { + "measure": "13–15", + "system": "Klav.", + "position": "", + "comment": "Teilweise auf Rasur. Ante correcturam: vermutlich wie Textfassung 1. Siehe auch Korrekturen 3 T. 14 Klav. u." + }, + { + "measure": "16
bis [17]", + "system": "", + "position": "", + "comment": "Zusätzlicher Takt [17] (wie Textfassung 1) gestrichen und Schlusstaktstrich nach T. 16 hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Ee_corr2", + "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Bogen gestrichen." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Oberstimmenschicht: Bogen gestrichen." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "3–5/8", + "comment": "Unterstimmenschicht. Bogen gestrichen." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1/4", + "comment": "Viertelnote geändert zu Achtelnote, Achtelpause." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "3. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4.–6. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4/8", + "comment": "[mf] hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1–2/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3–6/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4. Note", + "comment": "Tenutostrich hinzugefügt mit blauem Buntstift." + }, + { + "measure": "12", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Decrescendogabel hinzugefügt mit blauem Buntstift." + }, + { + "measure": "13", + "system": "Ges-", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Ee_corr3", + "label": "Korrekturen 3 in Ee (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Ges.", + "position": "5/8", + "comment": "fis1 geändert zu ges1." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1–2/8", + "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." + }, + { + "measure": "4", + "system": "Ges.", + "position": "5/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. {{ref.getGlyph('[a]')}} zu g1 hinzugefügt. Siehe Korrekturen in G." + }, + { + "measure": "6", + "system": "Ges.", + "position": "letzte Note", + "comment": "Ausrufezeichen nach [he-]ben hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Kleinschreibung gunst überschrieben zu Großschreibung Gunst." + }, + { + "measure": "10", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "5/8", + "comment": "Notenkopf und Akzidens rasiert." + } + ] + } + ] + } ] } }, From d52628dda7446768c3a94ce86a5c27d2269963d3 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 1 Oct 2024 15:10:22 +0200 Subject: [PATCH 103/213] fix(assets): fix formatting of corrections op3: E --- .../1/section/5/op3/source-description.json | 2032 ++++++++--------- 1 file changed, 1016 insertions(+), 1016 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 2af5ad0cc2..6e8b3e0595 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -1425,1062 +1425,1062 @@ ], "corrections": [ { - "id": "source_Ea_corr", - "label": "Korrekturen in Ea", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 4." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "etwas zögernd gestrichen mit grünem Buntstift." - }, - { - "measure": "1", - "system": "Klav. o.", - "position": "2/8", - "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}} mit grünem Buntstift." - }, - { - "measure": "1", - "system": "Ges.", - "position": "(2/4)", - "comment": "Triole aus Viertelnote, Achtelpause geändert zu Viertelnote; Bogen nach Viertelnote gestrichen mit rotem Buntstift.
< > hinzugefügt mit grünem Buntstift." - }, - { - "measure": "1
bis 2", - "system": "Ges.", - "position": "1. Note
5/8", - "comment": "Bogen hinzugefügt mit rotem Buntstift." - }, - { - "measure": "1", - "system": "Klav. o.", - "position": "letzte Note", - "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit grünem Buntstift." - }, - { - "measure": "3", - "system": "Ges.", - "position": "5–6/8", - "comment": "Wellenlinie über den Noten mit rotem Buntstift." - }, - { - "measure": "4", - "system": "Ges.", - "position": "5–6/8", - "comment": "Wellenlinie über den Noten mit rotem Buntstift." - }, - { - "measure": "5", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('[pp]')}} überschrieben zu {{ref.getGlyph('[p]')}} mit grünem Buntstift, dann {{ref.getGlyph('[p]')}} geändert zu [mp] mit rotem Buntstift." - }, - { - "measure": "7", - "system": "Ges.", - "position": "", - "comment": "Markierung der Viertel-Zählzeiten mit 1, 2, 3, 4 und Klammern (Zählzeiten 1–3) über dem System mit rotem Buntstift." - }, - { - "measure": "7", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[ppp]')}} überschrieben zu {{ref.getGlyph('[pp]')}} mit rotem Buntstift." - }, - { - "measure": "7", - "system": "Ges.", - "position": "4.–5. Note", - "comment": "Decrescendogabel hinzugefügt, Legatobogen gestrichen mit rotem Buntstift." - }, - { - "measure": "8", - "system": "Klav. o.", - "position": "(1/16)", - "comment": "Rasur." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2/8", - "comment": "Achtelnote c1 sowie Etwas langsamer | als Tempo I. auf Rasur." - }, - { - "measure": "9", - "system": "Klav. u.", - "position": "", - "comment": "Teilweise auf Rasur." - }, - { - "measure": "9", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Notenkopf eingekreist mit grünem Buntstift." - }, + "id": "source_Ea_corr", + "label": "Korrekturen in Ea", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 4." + ], + "comments": [ { - "measure": "10", - "system": "Ges., Klav. o.", - "position": "(4/8)", - "comment": "Markierungen zur korrekten Untersatz-Position von Ges. 4/8 im Verhältnis zu Klav. o. 2.–4. Note mit Bleistift und grünem Buntstift." + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "etwas zögernd gestrichen mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2/8", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}} mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "(2/4)", + "comment": "Triole aus Viertelnote, Achtelpause geändert zu Viertelnote; Bogen nach Viertelnote gestrichen mit rotem Buntstift.
< > hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1
bis 2", + "system": "Ges.", + "position": "1. Note
5/8", + "comment": "Bogen hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Wellenlinie über den Noten mit rotem Buntstift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "5–6/8", + "comment": "Wellenlinie über den Noten mit rotem Buntstift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} überschrieben zu {{ref.getGlyph('[p]')}} mit grünem Buntstift, dann {{ref.getGlyph('[p]')}} geändert zu [mp] mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Markierung der Viertel-Zählzeiten mit 1, 2, 3, 4 und Klammern (Zählzeiten 1–3) über dem System mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} überschrieben zu {{ref.getGlyph('[pp]')}} mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Decrescendogabel hinzugefügt, Legatobogen gestrichen mit rotem Buntstift." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "(1/16)", + "comment": "Rasur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "Achtelnote c1 sowie Etwas langsamer | als Tempo I. auf Rasur." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "", + "comment": "Teilweise auf Rasur." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Notenkopf eingekreist mit grünem Buntstift." + }, + { + "measure": "10", + "system": "Ges., Klav. o.", + "position": "(4/8)", + "comment": "Markierungen zur korrekten Untersatz-Position von Ges. 4/8 im Verhältnis zu Klav. o. 2.–4. Note mit Bleistift und grünem Buntstift." + } + ] } ] - } - ] }, { - "id": "source_Eb_corr1", - "label": "Korrekturen 1 in Eb (mit Tinte ggf. auf Rasur)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "3", - "system": "Ges.", - "position": "3. Note", - "comment": "Text: Anfang von nur nachgezogen." - }, - { - "measure": "3", - "system": "Klav. u.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." - }, - { - "measure": "3", - "system": "Ges.", - "position": "5/8", - "comment": "Text: Komma hinzugefügt. Siehe TkA." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "6.–7. Note", - "comment": "Auf Rasur." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." - }, - { - "measure": "6", - "system": "Klav.", - "position": "1.–4. Note", - "comment": "Bogen bis 5/16 in Klav. u. rasiert und geändert bis zu 4. Note." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "6–12/16", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." - }, - { - "measure": "6", - "system": "Ges.", - "position": "4. Note", - "comment": "Text: ein auf Rasur. Ante correcturam: vermutlich Großschreibung Ein (siehe Textfassung 1)." - }, - { - "measure": "7", - "system": "Ges.", - "position": "1/8", - "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "4/8", - "comment": "Text: nun auf Rasur. Ante correcturam: vermutlich Großschreibung Nun (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "2/2", - "comment": "Vermutlich Viertelpause zu 4/4 rasiert (siehe Textfassung 1) und Halbe Pause hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "vorletze Note", - "comment": "Text: um auf Rasur. Ante correcturam: vermutlich Großschreibung Um (siehe Textfassung 1)." - }, - { - "measure": "9", - "system": "Klav. u.", - "position": "2.–3. Note", - "comment": "Auf Rasur." - }, - { - "measure": "9", - "system": "Klav. u.", - "position": "6.–7. Note", - "comment": "Auf Rasur." - }, - { - "measure": "9", - "system": "Ges.", - "position": "5–6/8", - "comment": "Text: {{ref.getGlyph('[a]')}}-lle auf Rasur. Ante correcturam: vermutlich -lle bereits zu 5/8." - }, - { - "measure": "9", - "system": "Ges.", - "position": "letzte Note", - "comment": "Text: in auf Rasur. Ante correcturam: vermutlich Großschreibung In (siehe Textfassung 1)." - }, - { - "measure": "10", - "system": "Klav. o.", - "position": "5/16–6/8", - "comment": "Auf Rasur." - }, + "id": "source_Eb_corr1", + "label": "Korrekturen 1 in Eb (mit Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." + ], + "comments": [ { - "measure": "10", - "system": "Ges, Klav. o.", - "position": "4/4", - "comment": "Viertelpause auf Rasur. Ante correcturam: Schlusstaktstrich nach 3/4." + "blockHeader": "", + "blockComments": [ + { + "measure": "3", + "system": "Ges.", + "position": "3. Note", + "comment": "Text: Anfang von nur nachgezogen." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5/8", + "comment": "Text: Komma hinzugefügt. Siehe TkA." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "6.–7. Note", + "comment": "Auf Rasur." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1.–4. Note", + "comment": "Bogen bis 5/16 in Klav. u. rasiert und geändert bis zu 4. Note." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "6–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4. Note", + "comment": "Text: ein auf Rasur. Ante correcturam: vermutlich Großschreibung Ein (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text: nun auf Rasur. Ante correcturam: vermutlich Großschreibung Nun (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/2", + "comment": "Vermutlich Viertelpause zu 4/4 rasiert (siehe Textfassung 1) und Halbe Pause hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "vorletze Note", + "comment": "Text: um auf Rasur. Ante correcturam: vermutlich Großschreibung Um (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2.–3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "6.–7. Note", + "comment": "Auf Rasur." + }, + { + "measure": "9", + "system": "Ges.", + "position": "5–6/8", + "comment": "Text: [a]-lle auf Rasur. Ante correcturam: vermutlich -lle bereits zu 5/8." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text: in auf Rasur. Ante correcturam: vermutlich Großschreibung In (siehe Textfassung 1)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5/16–6/8", + "comment": "Auf Rasur." + }, + { + "measure": "10", + "system": "Ges, Klav. o.", + "position": "4/4", + "comment": "Viertelpause auf Rasur. Ante correcturam: Schlusstaktstrich nach 3/4." + } + ] } ] - } - ] }, { - "id": "source_Eb_corr2", - "label": "Korrekturen 2 in Eb (mit Bleistift und grünem Buntstift)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "Bewegt mit Bleistift." - }, - { - "measure": "2", - "system": "Ges.", - "position": "3–4/8", - "comment": "Wellenlinie über den Noten mit grünem Buntstift." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "1/8", - "comment": "{{ref.getGlyph('[a]')}} zu a mit Bleistift." - }, - { - "measure": "3", - "system": "Ges.", - "position": "3–5/8", - "comment": "Wellenlinie über den Noten mit grünem Buntstift." - }, - { - "measure": "3
bis 4", - "system": "", - "position": "(5/8)
Taktanfang", - "comment": "rit.- - - langsamer gestrichen mit Bleistift." - }, - { - "measure": "4", - "system": "Ges.", - "position": "8/16", - "comment": "Sechzehntelfähnchen hinzugefügt mit Bleistift. Siehe Korrekturen 1 1.–3. Note." - }, - { - "measure": "5", - "system": "Klav.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit Bleistift." - }, - { - "measure": "5", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Wellenlinie über den Noten mit grünem Buntstift." - }, - { - "measure": "6", - "system": "", - "position": "Taktanfang", - "comment": "langsam gestrichen mit Bleistift." - }, - { - "measure": "6", - "system": "", - "position": "(2/4)", - "comment": "Zuerst: rit zu (4/8) hinzugefügt mit grünem Buntstift.
Dann: rit gestrichen und Rit zu 3/8 hinzugefügt mit grünem Buntstift." - }, + "id": "source_Eb_corr2", + "label": "Korrekturen 2 in Eb (mit Bleistift und grünem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." + ], + "comments": [ { - "measure": "7
bis 8", - "system": "", - "position": "2/8
Taktanfang", - "comment": "acell. - - - tempo hinzugefügt zunächst mit Bleistift, dann mit schwarzer Tinte nachgezogen. (Siehe Textfassung 3.)" - }, - { - "measure": "8", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." - }, - { - "measure": "8", - "system": "Ges.", - "position": "3. Note", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." - }, - { - "measure": "9", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." - } - ] - } - ] - }, - { - "id": "source_Ec_corr1", - "label": "Korrekturen 1 in Ec (mit schwarzer Tinte ggf. auf Rasur)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "vor 1", - "system": "", - "position": "", - "comment": "Leicht und zart auf Rasur." - }, - { - "measure": "vor 1", - "system": "Klav. o./u.", - "position": "1. Pause
bis letzte Note", - "comment": "Bögen gestrichen." - }, - { - "measure": "vor 1
bis 3", - "system": "Ges.", - "position": "2/8
4. Note", - "comment": "Bogen rasiert." - }, - { - "measure": "3
bis 5", - "system": "Ges.", - "position": "6/8
1/8", - "comment": "Bogen rasiert." - }, - { - "measure": "5
bis 7", - "system": "Ges.", - "position": "4/16
vorletzte Note", - "comment": "Bogen rasiert." - }, - { - "measure": "6
bis 10", - "system": "Klav. o.", - "position": "1/8
1/8", - "comment": "Bogen rasiert. Bögen T. 6 1/8 bis T. 7 3. Note sowie T. 7 4. Note bis T. 10 1/8 vermutlich hinzugefügt." - }, - { - "measure": "8–12", - "system": "", - "position": "", - "comment": "Auf Tektur." - }, - { - "measure": "8", - "system": "Ges.", - "position": "3–4/8", - "comment": "Text: Rasur nach bleicht." - }, - { - "measure": "8
bis 11", - "system": "Ges.", - "position": "4/8
letzte Note", - "comment": "Bogen rasiert." - }, - { - "measure": "10
bis 12", - "system": "Klav.", - "position": "2. Note
2/4", - "comment": "Bogen gestrichen. Bogen in T. 10 2. Note bis 8/16 auf Rasur hinzugefügt." - }, - { - "measure": "12", - "system": "Klav. u.", - "position": "1. Note", - "comment": "A auf Rasur." - }, - { - "measure": "13
bis 14", - "system": "Ges.", - "position": "1/8
letzte Note", - "comment": "Bogen rasiert." - }, - { - "measure": "14", - "system": "Klav.", - "position": "1. Note
bis 2/4", - "comment": "Ligaturbögen auf Rasur." + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Bewegt mit Bleistift." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} zu a mit Bleistift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3–5/8", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "3
bis 4", + "system": "", + "position": "(5/8)
Taktanfang", + "comment": "rit.- - - langsamer gestrichen mit Bleistift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "8/16", + "comment": "Sechzehntelfähnchen hinzugefügt mit Bleistift. Siehe Korrekturen 1 1.–3. Note." + }, + { + "measure": "5", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Wellenlinie über den Noten mit grünem Buntstift." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "langsam gestrichen mit Bleistift." + }, + { + "measure": "6", + "system": "", + "position": "(2/4)", + "comment": "Zuerst: rit zu (4/8) hinzugefügt mit grünem Buntstift.
Dann: rit gestrichen und Rit zu 3/8 hinzugefügt mit grünem Buntstift." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "2/8
Taktanfang", + "comment": "acell. - - - tempo hinzugefügt zunächst mit Bleistift, dann mit schwarzer Tinte nachgezogen. (Siehe Textfassung 3.)" + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + } + ] } ] - } - ] }, { - "id": "source_Ec_cor2", - "label": "Korrekturen 2 in Ec (mit Bleistift)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "2", - "system": "Klav.", - "position": "1–3/8", - "comment": "Korrekturskizzen zu Textfassung 2." - }, - { - "measure": "3–7", - "system": "Klav.", - "position": "", - "comment": "Korrekturskizzen zu Textfassung 2." - }, - { - "measure": "4", - "system": "Ges.", - "position": "Taktanfang", - "comment": "2/4-Taktvorzeichnung geändert zu 3/4. Siehe Textfassung 2." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1. Note", - "comment": "Achtelnote geändert zu punktierter Viertelnote. Siehe Textfassung 2." - }, - { - "measure": "4", - "system": "", - "position": "(2/4)", - "comment": "im Tempo hinzugefügt." - }, - { - "measure": "6", - "system": "", - "position": "Taktanfang", - "comment": "tempo hinzugefügt." - }, - { - "measure": "8
bis 9", - "system": "", - "position": "Taktanfang
Taktende", - "comment": "Zuerst: rit. - - - hinzugefügt.
Dann: Position von rit. geändert zu T. 9 Taktanfang." - }, - { - "measure": "11", - "system": "Ges.", - "position": "", - "comment": "Korrekturskizzen zu Textfassung 2." - }, - { - "measure": "11", - "system": "Klav. o.", - "position": "1. Note", - "comment": "8va hinzugefügt. Siehe Textfassung 2." - }, - { - "measure": "11", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "NB-Formulierung gestrichen." - }, - { - "measure": "12", - "system": "Klav.", - "position": "3. Note", - "comment": "Tenutostrich hinzugefügt." - }, + "id": "source_Ec_corr1", + "label": "Korrekturen 1 in Ec (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." + ], + "comments": [ { - "measure": "14–15", - "system": "Klav.", - "position": "", - "comment": "Korrekturskizzen zu Textfassung 2." + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "", + "comment": "Leicht und zart auf Rasur." + }, + { + "measure": "vor 1", + "system": "Klav. o./u.", + "position": "1. Pause
bis letzte Note", + "comment": "Bögen gestrichen." + }, + { + "measure": "vor 1
bis 3", + "system": "Ges.", + "position": "2/8
4. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "3
bis 5", + "system": "Ges.", + "position": "6/8
1/8", + "comment": "Bogen rasiert." + }, + { + "measure": "5
bis 7", + "system": "Ges.", + "position": "4/16
vorletzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "6
bis 10", + "system": "Klav. o.", + "position": "1/8
1/8", + "comment": "Bogen rasiert. Bögen T. 6 1/8 bis T. 7 3. Note sowie T. 7 4. Note bis T. 10 1/8 vermutlich hinzugefügt." + }, + { + "measure": "8–12", + "system": "", + "position": "", + "comment": "Auf Tektur." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3–4/8", + "comment": "Text: Rasur nach bleicht." + }, + { + "measure": "8
bis 11", + "system": "Ges.", + "position": "4/8
letzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "10
bis 12", + "system": "Klav.", + "position": "2. Note
2/4", + "comment": "Bogen gestrichen. Bogen in T. 10 2. Note bis 8/16 auf Rasur hinzugefügt." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "1. Note", + "comment": "A auf Rasur." + }, + { + "measure": "13
bis 14", + "system": "Ges.", + "position": "1/8
letzte Note", + "comment": "Bogen rasiert." + }, + { + "measure": "14", + "system": "Klav.", + "position": "1. Note
bis 2/4", + "comment": "Ligaturbögen auf Rasur." + } + ] } ] - } - ] }, { - "id": "source_Ed_corr1", - "label": "Korrekturen 1 in Ed (mit schwarzer Tinte ggf. auf Rasur)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 1." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "2", - "system": "Ges.", - "position": "3–4/8", - "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." - }, - { - "measure": "2", - "system": "Ges.", - "position": "8/8", - "comment": "Achtelnote geändert zu Sechzehntelnote und zu (16/16) versetzt. Siehe auch Korrekturen 2 7/8." - }, - { - "measure": "5
bis 6", - "system": "Ges.", - "position": "3/8", - "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "5/16–24/32", - "comment": "Auf Tektur." - }, - { - "measure": "7", - "system": "Ges.", - "position": "", - "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA zu 1–4/8." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "1–2/4", - "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "letzte Note", - "comment": "Fortführung des Bogens nach T. 8 geändert zu Ende des Bogens in T. 7 letzte Note. Siehe Textfassung 2." - }, - { - "measure": "8", - "system": "Ges.", - "position": "3–6/8", - "comment": "Teilweise auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2." - }, + "id": "source_Ec_cor2", + "label": "Korrekturen 2 in Ec (mit Bleistift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." + ], + "comments": [ { - "measure": "9", - "system": "Ges.", - "position": "3–4/8", - "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Klav.", + "position": "1–3/8", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "3–7", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "4", + "system": "Ges.", + "position": "Taktanfang", + "comment": "2/4-Taktvorzeichnung geändert zu 3/4. Siehe Textfassung 2." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1. Note", + "comment": "Achtelnote geändert zu punktierter Viertelnote. Siehe Textfassung 2." + }, + { + "measure": "4", + "system": "", + "position": "(2/4)", + "comment": "im Tempo hinzugefügt." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "tempo hinzugefügt." + }, + { + "measure": "8
bis 9", + "system": "", + "position": "Taktanfang
Taktende", + "comment": "Zuerst: rit. - - - hinzugefügt.
Dann: Position von rit. geändert zu T. 9 Taktanfang." + }, + { + "measure": "11", + "system": "Ges.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1. Note", + "comment": "8va hinzugefügt. Siehe Textfassung 2." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "NB-Formulierung gestrichen." + }, + { + "measure": "12", + "system": "Klav.", + "position": "3. Note", + "comment": "Tenutostrich hinzugefügt." + }, + { + "measure": "14–15", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + } + ] } ] - } - ] }, { - "id": "source_Ed_corr2", - "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "vor 1", - "system": "Ges.", - "position": "letzte Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, + "id": "source_Ed_corr1", + "label": "Korrekturen 1 in Ed (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 1." + ], + "comments": [ { - "measure": "2", - "system": "Ges.", - "position": "1–2/8", - "comment": "Zäsurzeichen zwischen den Noten hinzugefügt." - }, - { - "measure": "2", - "system": "Ges.", - "position": "2.–4. Note", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "2", - "system": "Ges.", - "position": "6/8 bis letzte Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "2", - "system": "Ges.", - "position": "7/8", - "comment": "Achtelnote geändert zu punktierter Achtelnote. Siehe auch Korrekturen 1 8/8." - }, - { - "measure": "3", - "system": "Ges.", - "position": "2. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, - { - "measure": "3", - "system": "Ges., Klav.", - "position": "(3/8)", - "comment": "Fermate hinzugefügt." - }, - { - "measure": "3", - "system": "Ges.", - "position": "3.–6. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "4", - "system": "Ges.", - "position": "2–4/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "2., 3. Note", - "comment": "Pfeile zu Klav. u. zur Bestimmung des korrekten Untersatzes." - }, - { - "measure": "6", - "system": "Ges.", - "position": "1/4", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "7", - "system": "", - "position": "Taktanfang", - "comment": "sehr ruhig (siehe Textfassung 1) gestrichen und geändert zu langsamer als zu Beginn." - }, - { - "measure": "7", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, - { - "measure": "7", - "system": "Ges.", - "position": "3.–5. Note", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "4.–5. Note", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "12/16–7/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "9
bis 10", - "system": "", - "position": "Taktanfang
Taktende", - "comment": "Rit[.] - - - hinzugefügt." - }, - { - "measure": "9", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." - }, - { - "measure": "9", - "system": "Klav. u.", - "position": "2/8", - "comment": "dis1 zu gis1 hinzugefügt. (Notiert in Klav. o.)" - }, - { - "measure": "9", - "system": "Ges.", - "position": "2/8–5/8", - "comment": "Bogen hinzugefügt." - }, + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "8/8", + "comment": "Achtelnote geändert zu Sechzehntelnote und zu (16/16) versetzt. Siehe auch Korrekturen 2 7/8." + }, + { + "measure": "5
bis 6", + "system": "Ges.", + "position": "3/8", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "5/16–24/32", + "comment": "Auf Tektur." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA zu 1–4/8." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2. Entzifferung ante correcturam unsicher: siehe TkA." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "Fortführung des Bogens nach T. 8 geändert zu Ende des Bogens in T. 7 letzte Note. Siehe Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3–6/8", + "comment": "Teilweise auf Rasur geändert zu rhythmischer Formulierung von Textfassung 2." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3–4/8", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. Siehe Textfassung2." + } + ] + } + ] + }, + { + "id": "source_Ed_corr2", + "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2." + ], + "comments": [ { - "measure": "9", - "system": "Klav. o.", - "position": "5. Note", - "comment": "{{ref.getGlyph('[b]')}} zu b1 hinzugefügt." - }, + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "Ges.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1–2/8", + "comment": "Zäsurzeichen zwischen den Noten hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "2.–4. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8 bis letzte Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "7/8", + "comment": "Achtelnote geändert zu punktierter Achtelnote. Siehe auch Korrekturen 1 8/8." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Ges., Klav.", + "position": "(3/8)", + "comment": "Fermate hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3.–6. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2–4/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2., 3. Note", + "comment": "Pfeile zu Klav. u. zur Bestimmung des korrekten Untersatzes." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "", + "position": "Taktanfang", + "comment": "sehr ruhig (siehe Textfassung 1) gestrichen und geändert zu langsamer als zu Beginn." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "12/16–7/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "9
bis 10", + "system": "", + "position": "Taktanfang
Taktende", + "comment": "Rit[.] - - - hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2/8", + "comment": "dis1 zu gis1 hinzugefügt. (Notiert in Klav. o.)" + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8–5/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "5. Note", + "comment": "{{ref.getGlyph('[b]')}} zu b1 hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "8/8", + "comment": "wie ein Hauch (siehe T. 10 1/8) bereits hier hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Ee_corr1", + "label": "Korrekturen 1 in Ee (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ { - "measure": "9", - "system": "Ges.", - "position": "8/8", - "comment": "wie ein Hauch (siehe T. 10 1/8) bereits hier hinzugefügt." + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. u.", + "position": "4–5/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich 2/4–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8", + "comment": "Text: Großschreibung Im geändert zu Kleinschreibung im." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4/8", + "comment": "Text: Großschreibung Sein geändert zu Kleinschreibung sein." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4/8", + "comment": "Text: Großschreibung Laß überschrieben zu Kleinschreibung laß." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "", + "comment": "Auf Tektur." + }, + { + "measure": "6", + "system": "Ges.", + "position": "2/8", + "comment": "Text: Großschreibung Vor geändert zu Kleinschreibung vor." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1–2/8", + "comment": "Auf Rasur." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/8", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[sf]')}} gestrichen." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote." + }, + { + "measure": "10", + "system": "Ges.", + "position": "2. Note", + "comment": "Text: Großschreibung Mit geändert zu Kleinschreibung mit." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2/8", + "comment": "Text: Großschreibung Noch geändert zu Kleinschreibung noch." + }, + { + "measure": "13", + "system": "Ges.", + "position": "4/8, 3/4", + "comment": "Auf Rasur. (Vermutlich Untersatz-Korrektur.)" + }, + { + "measure": "13–15", + "system": "Klav.", + "position": "", + "comment": "Teilweise auf Rasur. Ante correcturam: vermutlich wie Textfassung 1. Siehe auch Korrekturen 3 T. 14 Klav. u." + }, + { + "measure": "16
bis [17]", + "system": "", + "position": "", + "comment": "Zusätzlicher Takt [17] (wie Textfassung 1) gestrichen und Schlusstaktstrich nach T. 16 hinzugefügt." + } + ] } ] - } - ] }, { - "id": "source_Ee_corr1", - "label": "Korrekturen 1 in Ee (mit schwarzer Tinte ggf. auf Rasur)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "Klav. u.", - "position": "4–5/8", - "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." - }, - { - "measure": "2", - "system": "Ges.", - "position": "1/4", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "2", - "system": "Klav. o.", - "position": "2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich 2/4–5/8 wie Textfassung 1." - }, - { - "measure": "2", - "system": "Klav. u.", - "position": "2.–3. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich 3–5/8 wie Textfassung 1." - }, - { - "measure": "2", - "system": "Ges.", - "position": "6/8", - "comment": "Text: Großschreibung Im geändert zu Kleinschreibung im." - }, - { - "measure": "3", - "system": "Ges.", - "position": "4/8", - "comment": "Text: Großschreibung Sein geändert zu Kleinschreibung sein." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "4", - "system": "Ges.", - "position": "4/8", - "comment": "Text: Großschreibung Laß überschrieben zu Kleinschreibung laß." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "", - "comment": "Auf Tektur." - }, - { - "measure": "6", - "system": "Ges.", - "position": "2/8", - "comment": "Text: Großschreibung Vor geändert zu Kleinschreibung vor." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1–2/8", - "comment": "Auf Rasur." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "1/8", - "comment": "Unterstimmenschicht: [sf] gestrichen." - }, - { - "measure": "10", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote." - }, - { - "measure": "10", - "system": "Ges.", - "position": "2. Note", - "comment": "Text: Großschreibung Mit geändert zu Kleinschreibung mit." - }, - { - "measure": "12", - "system": "Ges.", - "position": "2/8", - "comment": "Text: Großschreibung Noch geändert zu Kleinschreibung noch." - }, - { - "measure": "13", - "system": "Ges.", - "position": "4/8, 3/4", - "comment": "Auf Rasur. (Vermutlich Untersatz-Korrektur.)" - }, - { - "measure": "13–15", - "system": "Klav.", - "position": "", - "comment": "Teilweise auf Rasur. Ante correcturam: vermutlich wie Textfassung 1. Siehe auch Korrekturen 3 T. 14 Klav. u." - }, + "id": "source_Ee_corr2", + "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ { - "measure": "16
bis [17]", - "system": "", - "position": "", - "comment": "Zusätzlicher Takt [17] (wie Textfassung 1) gestrichen und Schlusstaktstrich nach T. 16 hinzugefügt." + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "Bogen gestrichen." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Oberstimmenschicht: Bogen gestrichen." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "3–5/8", + "comment": "Unterstimmenschicht. Bogen gestrichen." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1/4", + "comment": "Viertelnote geändert zu Achtelnote, Achtelpause." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "3. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4.–6. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[mf]')}} hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1–2/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "3–6/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4. Note", + "comment": "Tenutostrich hinzugefügt mit blauem Buntstift." + }, + { + "measure": "12", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Decrescendogabel hinzugefügt mit blauem Buntstift." + }, + { + "measure": "13", + "system": "Ges-", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + } + ] } ] - } - ] }, { - "id": "source_Ee_corr2", - "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "Klav. o.", - "position": "1.–2. Note", - "comment": "Bogen gestrichen." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "1.–2. Note", - "comment": "Oberstimmenschicht: Bogen gestrichen." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "3–5/8", - "comment": "Unterstimmenschicht. Bogen gestrichen." - }, - { - "measure": "2", - "system": "Ges.", - "position": "1/4", - "comment": "Viertelnote geändert zu Achtelnote, Achtelpause." - }, - { - "measure": "2", - "system": "Klav. u.", - "position": "3. Note", - "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "2", - "system": "Ges.", - "position": "4–6/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "3", - "system": "Ges.", - "position": "4.–6. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "4", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "3/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "7", - "system": "Ges.", - "position": "4/8", - "comment": "[mf] hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1–2/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4–6/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "10", - "system": "Ges.", - "position": "3–6/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "11", - "system": "Ges.", - "position": "2–4/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "11", - "system": "Ges.", - "position": "4.–5. Note", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "12", - "system": "Ges.", - "position": "2–4/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "12", - "system": "Ges.", - "position": "4. Note", - "comment": "Tenutostrich hinzugefügt mit blauem Buntstift." - }, - { - "measure": "12", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Decrescendogabel hinzugefügt mit blauem Buntstift." - }, - { - "measure": "13", - "system": "Ges-", - "position": "1. Note", - "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." - }, + "id": "source_Ee_corr3", + "label": "Korrekturen 3 in Ee (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." + ], + "comments": [ { - "measure": "13", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Decrescendogabel hinzugefügt." + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Ges.", + "position": "5/8", + "comment": "fis1 geändert zu ges1." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1–2/8", + "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5–6/8", + "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." + }, + { + "measure": "4", + "system": "Ges.", + "position": "5/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. {{ref.getGlyph('[a]')}} zu g1 hinzugefügt. Siehe Korrekturen in G." + }, + { + "measure": "6", + "system": "Ges.", + "position": "letzte Note", + "comment": "Ausrufezeichen nach [he-]ben hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Kleinschreibung gunst überschrieben zu Großschreibung Gunst." + }, + { + "measure": "10", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "5/8", + "comment": "Notenkopf und Akzidens rasiert." + } + ] } ] - } - ] - }, - { - "id": "source_Ee_corr3", - "label": "Korrekturen 3 in Ee (mit schwarzer Tinte ggf. auf Rasur)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "2", - "system": "Ges.", - "position": "5/8", - "comment": "fis1 geändert zu ges1." - }, - { - "measure": "3", - "system": "Ges.", - "position": "1–2/8", - "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." - }, - { - "measure": "3", - "system": "Ges.", - "position": "5–6/8", - "comment": "Zwei Achtelnoten geändert zu punktierter Achtelnote, Sechzehntelnote. Siehe Korrekturen in G." - }, - { - "measure": "4", - "system": "Ges.", - "position": "5/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Zwei Achtelnoten geändert zu triolischer Viertelnote und Achtelnote. {{ref.getGlyph('[a]')}} zu g1 hinzugefügt. Siehe Korrekturen in G." - }, - { - "measure": "6", - "system": "Ges.", - "position": "letzte Note", - "comment": "Ausrufezeichen nach [he-]ben hinzugefügt." - }, - { - "measure": "10", - "system": "Ges.", - "position": "5–6/8", - "comment": "Kleinschreibung gunst überschrieben zu Großschreibung Gunst." - }, - { - "measure": "10", - "system": "Ges.", - "position": "6/8", - "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." - }, - { - "measure": "14", - "system": "Klav. u.", - "position": "5/8", - "comment": "Notenkopf und Akzidens rasiert." - } - ] - } - ] } ] } From 7cebd281a186342154e04e2773e97d07e38ff475 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 1 Oct 2024 15:11:33 +0200 Subject: [PATCH 104/213] fix(edition): add missing glyphs for sf and sp --- .../edition-view/data/edition-glyphs.data.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/app/views/edition-view/data/edition-glyphs.data.ts b/src/app/views/edition-view/data/edition-glyphs.data.ts index 1ba65657c0..78a46370fe 100644 --- a/src/app/views/edition-view/data/edition-glyphs.data.ts +++ b/src/app/views/edition-view/data/edition-glyphs.data.ts @@ -136,4 +136,22 @@ export const EDITION_GLYPHS_DATA = { alt: '[p]', hex: '\uD834\uDD8F', }, + + /** + * The glyph of a musical subito forte symbol. + * Cf. https://graphemica.com/%F0%9D%86%8D + */ + SUBITO_FORTE: { + alt: '[sf]', + hex: '\uD834\uDD8D\uD834\uDD91', + }, + + /** + * The glyph of a musical subito piano symbol. + * Cf. https://graphemica.com/%F0%9D%86%8D + */ + SUBITO_PIANO: { + alt: '[sp]', + hex: '\uD834\uDD8D\uD834\uDD8F', + }, } as const; From cd91a1459e2b71e6e0acfa18517de321318f1ca3 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 1 Oct 2024 15:16:13 +0200 Subject: [PATCH 105/213] fix(assets): fix typo in label in op3: source_Ee_corr2 --- .../data/edition/series/1/section/5/op3/source-description.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 6e8b3e0595..fedd7ad209 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -2282,7 +2282,7 @@ }, { "id": "source_Ee_corr2", - "label": "Korrekturen 2 in Ed (mit türkisem Buntstift)", + "label": "Korrekturen 2 in Ee (mit türkisem Buntstift)", "description": [ "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 2." ], From c1e7244217aa7689948e1c538a31506a502d4bcd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:30:14 +0000 Subject: [PATCH 106/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.7.0 to 8.8.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.7.0 to 8.8.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 139928a9fc..f27bb57dee 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.7.0", - "@typescript-eslint/parser": "^8.7.0", + "@typescript-eslint/eslint-plugin": "^8.8.0", + "@typescript-eslint/parser": "^8.8.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.4", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 60d7a50b85..f821ad8add 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4984,15 +4984,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.7.0" +"@typescript-eslint/eslint-plugin@npm:^8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.8.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.7.0" - "@typescript-eslint/type-utils": "npm:8.7.0" - "@typescript-eslint/utils": "npm:8.7.0" - "@typescript-eslint/visitor-keys": "npm:8.7.0" + "@typescript-eslint/scope-manager": "npm:8.8.0" + "@typescript-eslint/type-utils": "npm:8.8.0" + "@typescript-eslint/utils": "npm:8.8.0" + "@typescript-eslint/visitor-keys": "npm:8.8.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5003,25 +5003,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/f04d6fa6a30e32d51feba0f08789f75ca77b6b67cfe494bdbd9aafa241871edc918fa8b344dc9d13dd59ae055d42c3920f0e542534f929afbfdca653dae598fa + checksum: 10c0/98ac37587eda02a713710f0a62ca979833482024968f1d1735881718abe102a6b49707db4f1dac0d7c731d1cbf8111d829c5125348d4829ab6fad7a7b3b344e4 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/parser@npm:8.7.0" +"@typescript-eslint/parser@npm:^8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/parser@npm:8.8.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.7.0" - "@typescript-eslint/types": "npm:8.7.0" - "@typescript-eslint/typescript-estree": "npm:8.7.0" - "@typescript-eslint/visitor-keys": "npm:8.7.0" + "@typescript-eslint/scope-manager": "npm:8.8.0" + "@typescript-eslint/types": "npm:8.8.0" + "@typescript-eslint/typescript-estree": "npm:8.8.0" + "@typescript-eslint/visitor-keys": "npm:8.8.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/1d5020ff1f5d3eb726bc6034d23f0a71e8fe7a713756479a0a0b639215326f71c0b44e2c25cc290b4e7c144bd3c958f1405199711c41601f0ea9174068714a64 + checksum: 10c0/cf72a644b89c62cd55b09fa1d22b51a2c726714aac344a797f0c2ad80bfbabcb7567000fadd4ea8188aa1d923675bebdca06acc1d28ac1b8360bf28a36b46f3a languageName: node linkType: hard @@ -5035,28 +5035,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/scope-manager@npm:8.7.0" +"@typescript-eslint/scope-manager@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/scope-manager@npm:8.8.0" dependencies: - "@typescript-eslint/types": "npm:8.7.0" - "@typescript-eslint/visitor-keys": "npm:8.7.0" - checksum: 10c0/8b731a0d0bd3e8f6a322b3b25006f56879b5d2aad86625070fa438b803cf938cb8d5c597758bfa0d65d6e142b204dc6f363fa239bc44280a74e25aa427408eda + "@typescript-eslint/types": "npm:8.8.0" + "@typescript-eslint/visitor-keys": "npm:8.8.0" + checksum: 10c0/29ddf589ff0e465dbbf3eb87b79a29face4ec5a6cb617bbaafbac6ae8340d376b5b405bca762ee1c7a40cbdf7912a32734f9119f6864df048c7a0b2de21bdd3d languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/type-utils@npm:8.7.0" +"@typescript-eslint/type-utils@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/type-utils@npm:8.8.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.7.0" - "@typescript-eslint/utils": "npm:8.7.0" + "@typescript-eslint/typescript-estree": "npm:8.8.0" + "@typescript-eslint/utils": "npm:8.8.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2bd9fb93a50ff1c060af41528e39c775ae93b09dd71450defdb42a13c68990dd388460ae4e81fb2f4a49c38dc12152c515d43e845eca6198c44b14aab66733bc + checksum: 10c0/d6ee11f4686fb54daea1f436f73b96eb31a95f6e535abc0534abf5794e7597669a92d12300969c8afee0fc1912dbc1591664f7e37f0da5935016cc981b2921a8 languageName: node linkType: hard @@ -5067,10 +5067,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/types@npm:8.7.0" - checksum: 10c0/f7529eaea4ecc0f5e2d94ea656db8f930f6d1c1e65a3ffcb2f6bec87361173de2ea981405c2c483a35a927b3bdafb606319a1d0395a6feb1284448c8ba74c31e +"@typescript-eslint/types@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/types@npm:8.8.0" + checksum: 10c0/cd168fafcaf77641b023c4405ea3a8c30fbad1737abb5aec9fce67fe2ae20224b624b5a2e3e84900ba81dc7dd33343add3653763703a225326cc81356b182d09 languageName: node linkType: hard @@ -5093,12 +5093,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.7.0" +"@typescript-eslint/typescript-estree@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.8.0" dependencies: - "@typescript-eslint/types": "npm:8.7.0" - "@typescript-eslint/visitor-keys": "npm:8.7.0" + "@typescript-eslint/types": "npm:8.8.0" + "@typescript-eslint/visitor-keys": "npm:8.8.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5108,21 +5108,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/d714605b6920a9631ab1511b569c1c158b1681c09005ab240125c442a63e906048064151a61ce5eb5f8fe75cea861ce5ae1d87be9d7296b012e4ab6d88755e8b + checksum: 10c0/9b9e849f6b2d4e250840ef8e05f55a97d6598adaf48c1e6df83084b94c30feca6a3e7916ee1c235178188d0db6364a877cbf8fe218c36d5f8d5acb50767f3273 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/utils@npm:8.7.0" +"@typescript-eslint/utils@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/utils@npm:8.8.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.7.0" - "@typescript-eslint/types": "npm:8.7.0" - "@typescript-eslint/typescript-estree": "npm:8.7.0" + "@typescript-eslint/scope-manager": "npm:8.8.0" + "@typescript-eslint/types": "npm:8.8.0" + "@typescript-eslint/typescript-estree": "npm:8.8.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/7355b754ce2fc118773ed27a3e02b7dfae270eec73c2d896738835ecf842e8309544dfd22c5105aba6cae2787bfdd84129bbc42f4b514f57909dc7f6890b8eba + checksum: 10c0/fcf2dfd4a2d9491aa096a29c2c1fdd891ca3c13933d20cfea44e51b3d10a397e7ed9a9cd71ac9a29e8c4706264ae00c25a29394e2a6bda3291be298062901f2c languageName: node linkType: hard @@ -5150,13 +5150,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.7.0": - version: 8.7.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.7.0" +"@typescript-eslint/visitor-keys@npm:8.8.0": + version: 8.8.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.8.0" dependencies: - "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/types": "npm:8.8.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/1240da13c15f9f875644b933b0ad73713ef12f1db5715236824c1ec359e6ef082ce52dd9b2186d40e28be6a816a208c226e6e9af96e5baeb24b4399fe786ae7c + checksum: 10c0/580ce74c9b09b9e6a6f3f0ac2d2f0c6a6b983a78ce3b2544822ee08107c57142858d674897f61ff32a9a5e8fca00c916545c159bb75d134f4380884642542d38 languageName: node linkType: hard @@ -5955,8 +5955,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.7.0" - "@typescript-eslint/parser": "npm:^8.7.0" + "@typescript-eslint/eslint-plugin": "npm:^8.8.0" + "@typescript-eslint/parser": "npm:^8.8.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 110a2de552c70c00de602ccff3eabf42677abe82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:30:45 +0000 Subject: [PATCH 107/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.3.0 to 50.3.1. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.0...v50.3.1) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f27bb57dee..bfa125c805 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-jsdoc": "^50.3.0", + "eslint-plugin-jsdoc": "^50.3.1", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index f821ad8add..9647f8e165 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5972,7 +5972,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.30.0" - eslint-plugin-jsdoc: "npm:^50.3.0" + eslint-plugin-jsdoc: "npm:^50.3.1" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -8672,9 +8672,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.3.0": - version: 50.3.0 - resolution: "eslint-plugin-jsdoc@npm:50.3.0" +"eslint-plugin-jsdoc@npm:^50.3.1": + version: 50.3.1 + resolution: "eslint-plugin-jsdoc@npm:50.3.1" dependencies: "@es-joy/jsdoccomment": "npm:~0.48.0" are-docs-informative: "npm:^0.0.2" @@ -8689,7 +8689,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/2188f10c350f3306f476913f63880bb3324932006a40f28f4b7b95c10d147e8fd98b03917357c01ae2f81d60bc1c169dbdacc72031e2c1ae602445f39e574da1 + checksum: 10c0/b4e8d58f02794917581d74936e2af947aea3b518c4ad670866caa0b3f1f25cfec08414567c19d580a77d84431b2477f0a4075be500bb27b715013c59679f307e languageName: node linkType: hard From aa7dc82cd82aef0fcbd0268fb61c783598c18e1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:01:36 +0000 Subject: [PATCH 108/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.7) Updates `@angular/cli` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.7) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 106 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index bfa125c805..357ac0406b 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.6", + "@angular-devkit/build-angular": "^18.2.7", "@angular-eslint/builder": "^18.3.1", "@angular-eslint/eslint-plugin": "^18.3.1", "@angular-eslint/eslint-plugin-template": "^18.3.1", "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", - "@angular/cli": "^18.2.6", + "@angular/cli": "^18.2.7", "@angular/compiler-cli": "^18.2.6", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 9647f8e165..8685a19bc9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.6": - version: 0.1802.6 - resolution: "@angular-devkit/architect@npm:0.1802.6" +"@angular-devkit/architect@npm:0.1802.7": + version: 0.1802.7 + resolution: "@angular-devkit/architect@npm:0.1802.7" dependencies: - "@angular-devkit/core": "npm:18.2.6" + "@angular-devkit/core": "npm:18.2.7" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/59ab500fa1d2afafceeb6548174f0cfd4ef49014ff7826646b2019152e414112bf365578ce35784dd03ec58ce31c91d724eac3be5ece7c6a92f68d063dc8acc6 + checksum: 10c0/98d3b5c218d501bedd1ad1e41c2c9c26d7b3079f5e0f55f048e662483c023e0a40988cf46c14e9ed29a72b0cbfbee82e4b0461a7a9f0437daf9eb75d68209a62 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular-devkit/build-angular@npm:18.2.6" +"@angular-devkit/build-angular@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular-devkit/build-angular@npm:18.2.7" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.6" - "@angular-devkit/build-webpack": "npm:0.1802.6" - "@angular-devkit/core": "npm:18.2.6" - "@angular/build": "npm:18.2.6" + "@angular-devkit/architect": "npm:0.1802.7" + "@angular-devkit/build-webpack": "npm:0.1802.7" + "@angular-devkit/core": "npm:18.2.7" + "@angular/build": "npm:18.2.7" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.6" + "@ngtools/webpack": "npm:18.2.7" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/b41bdc80580e0a6ec79a548fe9cadb14ccafeaf8c8016425855182629d846b04b0638b045d4ffeaaf307058853d6379ce758b3df3f9cb8e8aea989db949141f1 + checksum: 10c0/b532ab663b05da2a6117414263e9f4a660c20fd287d7873ec3c4c3eef870aefa442b048f7e372a4f2132291e05df2ddebbcf72de8ca3de673c9547d53fc9c179 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.6": - version: 0.1802.6 - resolution: "@angular-devkit/build-webpack@npm:0.1802.6" +"@angular-devkit/build-webpack@npm:0.1802.7": + version: 0.1802.7 + resolution: "@angular-devkit/build-webpack@npm:0.1802.7" dependencies: - "@angular-devkit/architect": "npm:0.1802.6" + "@angular-devkit/architect": "npm:0.1802.7" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/2af2d59a181d560cc5033a6cf923051972f9aa1bdf967d7c1c616f4a53c1ce65a9b486bbed3a649c824c520f36bcaef0c3d612061ee23c50f4710c0b691b0646 + checksum: 10c0/845ca754f09185a0f9beb30b6ffe9223bbf301b8d9e8213fb22040bc0decd3f79053caa6080546154c1ab454fdf6c5cd974e2f0bc4c3f1a2e633545b8177813c languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.6": - version: 18.2.6 - resolution: "@angular-devkit/core@npm:18.2.6" +"@angular-devkit/core@npm:18.2.7": + version: 18.2.7 + resolution: "@angular-devkit/core@npm:18.2.7" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/027414c1923f2dc545b301c45d5867cc47659b8087b584d86dab3331bc34a0d3309de743f9beab78f7f92a9f057350848545e4c94bf0b14f683095414c054601 + checksum: 10c0/50ac4f06bef5a5bd955864e16eda9bd61dee6f91746390bf3a78a0e39309a1b9a72619150c1a8ed0169dc3b1db275f67cf10a746c3d7dea4e2e19a02dcb93867 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.6": - version: 18.2.6 - resolution: "@angular-devkit/schematics@npm:18.2.6" +"@angular-devkit/schematics@npm:18.2.7": + version: 18.2.7 + resolution: "@angular-devkit/schematics@npm:18.2.7" dependencies: - "@angular-devkit/core": "npm:18.2.6" + "@angular-devkit/core": "npm:18.2.7" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/4f4ae12896b9e89b1f99dbba0e30e414d4885125906c060144917068f876d847fbadb1195922e431b8822880aa9a1f931f8894dc349691c231134828c1359bc4 + checksum: 10c0/d7706bf58b4eafe43811ff20c4af77ba01a8327a610ec2da8713ec28a5a7e14ce3612d0f93ab5139f6e9c135c39c0cffaefbb5a3d0dc251d9831803dde3f8c65 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.6": - version: 18.2.6 - resolution: "@angular/build@npm:18.2.6" +"@angular/build@npm:18.2.7": + version: 18.2.7 + resolution: "@angular/build@npm:18.2.7" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.6" + "@angular-devkit/architect": "npm:0.1802.7" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/6510564b21c2bafafb664a1bb3d97d876dbc8bfdc3f54c3d2fe3c7bf2771dcfb0cf179f171778939d9a60bf1525f25811ef3a16dc37266cef89b60c041964a8e + checksum: 10c0/f893374519d65c3d6fa4fd3dee87d8f6dbcf64a422b2978c9222f0fa0796e18b00160071a40d3b149df70e5496893c97694a2b127ea4b5dfc1fc49da6afd4556 languageName: node linkType: hard -"@angular/cli@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/cli@npm:18.2.6" +"@angular/cli@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/cli@npm:18.2.7" dependencies: - "@angular-devkit/architect": "npm:0.1802.6" - "@angular-devkit/core": "npm:18.2.6" - "@angular-devkit/schematics": "npm:18.2.6" + "@angular-devkit/architect": "npm:0.1802.7" + "@angular-devkit/core": "npm:18.2.7" + "@angular-devkit/schematics": "npm:18.2.7" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.6" + "@schematics/angular": "npm:18.2.7" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/76e3ae9f6f77045649583dbc9a2be6b88a8299901b215ab3dc58f742bb842cefc0ce3c930765c3a37d0c90435810156cbff972964ccfb8401f088426c5e0387d + checksum: 10c0/9ae21274d4a9951086aacb88c9b02dff45d7a119ae3ef1c88c03016f8f91019d130bb8c06d445bb2c3f04eb87e37e2d317dffc1fc511ee5375e400d1ac63a5bf languageName: node linkType: hard @@ -3934,9 +3934,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.6": - version: 18.2.6 - resolution: "@ngtools/webpack@npm:18.2.6" +"@ngtools/webpack@npm:18.2.7": + version: 18.2.7 + resolution: "@ngtools/webpack@npm:18.2.7" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3946,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/a00afdb4391e2dbe61d9330914e7d012c076894dfa7edabbff42e756df6286f9f21bd4d281f44486157728fe7b617786f165956c6b9efe678c562e419a7c0a1a + checksum: 10c0/9f7e365857210664eda857a269bc1517c37f96a6d53d32c2fb09a65ad92852b2b6806e7689db7ba14e4634b70d15f93c6aa9f1e4938a1132992fac9ab2cbff20 languageName: node linkType: hard @@ -4246,19 +4246,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.6": - version: 18.2.6 - resolution: "@schematics/angular@npm:18.2.6" +"@schematics/angular@npm:18.2.7": + version: 18.2.7 + resolution: "@schematics/angular@npm:18.2.7" dependencies: - "@angular-devkit/core": "npm:18.2.6" - "@angular-devkit/schematics": "npm:18.2.6" + "@angular-devkit/core": "npm:18.2.7" + "@angular-devkit/schematics": "npm:18.2.7" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/88259c1df78eff529239db4db1b02b3b46dd45e4e537563880fa851330aa3d68e752a203c96e1d84ae9bb2bb315c2e36e68316204f60ed353a56bd74cdd50337 + checksum: 10c0/eb0cde6347031228478c5a3e6cfa8c442291c1283e58d7b2435eb549ec5c8b679338eba50a650e236debdb6f1e89c88f80f259c4b59eaf8d234bbdb273742998 languageName: node linkType: hard @@ -5925,14 +5925,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.6" + "@angular-devkit/build-angular": "npm:^18.2.7" "@angular-eslint/builder": "npm:^18.3.1" "@angular-eslint/eslint-plugin": "npm:^18.3.1" "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.6" - "@angular/cli": "npm:^18.2.6" + "@angular/cli": "npm:^18.2.7" "@angular/common": "npm:^18.2.6" "@angular/compiler": "npm:^18.2.6" "@angular/compiler-cli": "npm:^18.2.6" From 1d18b4db5228dc51edd6863c0aed8e732505097f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:04:59 +0000 Subject: [PATCH 109/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.6` | `18.2.7` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.6` | `18.2.7` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.6` | `18.2.7` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.6` | `18.2.7` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.6` | `18.2.7` | | [@angular/localize](https://github.com/angular/angular) | `18.2.6` | `18.2.7` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.6` | `18.2.7` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.6` | `18.2.7` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.6` | `18.2.7` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.6` | `18.2.7` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.6` | `18.2.7` | Updates `@angular/animations` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/animations) Updates `@angular/common` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/common) Updates `@angular/compiler` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/compiler) Updates `@angular/core` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/core) Updates `@angular/forms` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/forms) Updates `@angular/localize` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.6...18.2.7) Updates `@angular/platform-browser` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/platform-server) Updates `@angular/router` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/router) Updates `@angular/compiler-cli` from 18.2.6 to 18.2.7 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.7/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 357ac0406b..3042a1a1b5 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.6", - "@angular/common": "^18.2.6", - "@angular/compiler": "^18.2.6", - "@angular/core": "^18.2.6", - "@angular/forms": "^18.2.6", - "@angular/localize": "^18.2.6", - "@angular/platform-browser": "^18.2.6", - "@angular/platform-browser-dynamic": "^18.2.6", - "@angular/platform-server": "^18.2.6", - "@angular/router": "^18.2.6", + "@angular/animations": "^18.2.7", + "@angular/common": "^18.2.7", + "@angular/compiler": "^18.2.7", + "@angular/core": "^18.2.7", + "@angular/forms": "^18.2.7", + "@angular/localize": "^18.2.7", + "@angular/platform-browser": "^18.2.7", + "@angular/platform-browser-dynamic": "^18.2.7", + "@angular/platform-server": "^18.2.7", + "@angular/router": "^18.2.7", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", "@angular/cli": "^18.2.7", - "@angular/compiler-cli": "^18.2.6", + "@angular/compiler-cli": "^18.2.7", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 8685a19bc9..21969ef639 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/animations@npm:18.2.6" +"@angular/animations@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/animations@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.6 - checksum: 10c0/68491e883834a924f8c1d4aa9a22244c376d2f8e8e24b69e8368c7d38ad16e2c61be6ff9bd9349d89b6361354b051d1bd431b6308c2a65c4c74e6c72701d2399 + "@angular/core": 18.2.7 + checksum: 10c0/d36b955bc507c344f2b6e01000950a85c2c9160fe15cdb02f72e742da6a7510bb0d5730bbc14cefe76420a4a31845b2e4aaa54a9340221b8ca731368751f259c languageName: node linkType: hard @@ -477,21 +477,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/common@npm:18.2.6" +"@angular/common@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/common@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.6 + "@angular/core": 18.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/74b570da52ea37166f70a83f4c07d67afdafd994997a854290200907091b2c6bb1a99a7789f3463fc6d714b710a7a104681073139faecf36a243b5243fb7798f + checksum: 10c0/e552a7680ff59612f7e0fa7e307fbf8f7674cdf0f83d5a325c15f90ee0c4075ded6676003ed89ac8be94804d9d776fb4e97953a8f10aefedf3746a84baf5245b languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/compiler-cli@npm:18.2.6" +"@angular/compiler-cli@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/compiler-cli@npm:18.2.7" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -502,132 +502,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.6 + "@angular/compiler": 18.2.7 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/551883f0d705f0b81e6589afcb4cb240a3e6ea517c275a806ac5328a90edcb0dbc409af985f7f80c4ac93ac539dc6c140e7ae5dd94c1521d3d232627fece261e + checksum: 10c0/494a7fab7a9c0f9ecb57efb93b6c781bfd6454a7b478b3b8f8cc75dfbefc63a3739d325caf21f21fe3b8372d0d2bc392e8c7857787890aaa6cbf6ef3e7f254a6 languageName: node linkType: hard -"@angular/compiler@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/compiler@npm:18.2.6" +"@angular/compiler@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/compiler@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.6 + "@angular/core": 18.2.7 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/9afd029eaedf1f547c531a82ed6db64384b520fb06177eeb410d3f8ae65501ad8ead01e265b47523267f5745d580c382f0365480ea2ef66f81c0ec5f825b4250 + checksum: 10c0/87312d07cd8f0506903bc5e98ce64cbecb6a158b0e9799343aa44e6dc2d3f92498d65571863412dde4a83c5e1eae150346992dfb050b8b6348910634a16ba46a languageName: node linkType: hard -"@angular/core@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/core@npm:18.2.6" +"@angular/core@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/core@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/464b76624fd82e76b45a8b4d399bd84c90672863a6a60c8879ce244e2b8ed302b33d605f16df6697647534d0c4abdcfaae9ba1fa2a8713d830a4689030da4212 + checksum: 10c0/e51fc5d52e345706da9ba10f54269a347dd52cbea72847d45f1221c9da93aecc05e21bc19ef71d45f1ab6f662f8f66ccff8309976b86d986c06fbe1a8999827a languageName: node linkType: hard -"@angular/forms@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/forms@npm:18.2.6" +"@angular/forms@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/forms@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.6 - "@angular/core": 18.2.6 - "@angular/platform-browser": 18.2.6 + "@angular/common": 18.2.7 + "@angular/core": 18.2.7 + "@angular/platform-browser": 18.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/35dc2ff65774635525bd992bbd3438b09e94c6d7d3d7638bfc60c54af812ac0609dff7e61afbe078f11b38cefcbc1ce5de8cdcda50b7b914ba4e1d7d94ad4017 + checksum: 10c0/466ee2a4a49540c909d712f6c01897adb261289327708aeaa85bb0e7a3fdc0838986a525248a5fb3426713e7bd7acc1db202b6178188861c4ac96dae0f94b31b languageName: node linkType: hard -"@angular/localize@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/localize@npm:18.2.6" +"@angular/localize@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/localize@npm:18.2.7" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.6 - "@angular/compiler-cli": 18.2.6 + "@angular/compiler": 18.2.7 + "@angular/compiler-cli": 18.2.7 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/fcbaad3b7bf8c9bad3c71610baa94a7765ce278faf5a6cc1a9e57cc021f16667e720ffbe3e898cc7f6462a85926020a6f13f822f948761bb50f70ead60b067a2 + checksum: 10c0/3da3eeb1a2ddb799b51789d15667863d0e6d09de82d61ca82d22ae0cf8ef14311e01575b0fee1723d7bfa7462bb384fad35366c745bc0acb9a9bad8e502ad639 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/platform-browser-dynamic@npm:18.2.6" +"@angular/platform-browser-dynamic@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/platform-browser-dynamic@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.6 - "@angular/compiler": 18.2.6 - "@angular/core": 18.2.6 - "@angular/platform-browser": 18.2.6 - checksum: 10c0/5b8482262d67affbd1233bdab590ed772561f7a3888a6e6bdbe6e8b8ee736257e07469d7979508d4ea521a13e905b72ee6088e05c16ad468078d5043b87d0585 + "@angular/common": 18.2.7 + "@angular/compiler": 18.2.7 + "@angular/core": 18.2.7 + "@angular/platform-browser": 18.2.7 + checksum: 10c0/a2d57aceedc6ca0846fb2d8595b3d2e2645215a38d8520768ddf8a461b1183ac0597c57fd3b2968fcc87ec61a5a52fb50e415a08259063a8d9b596d8fe2a999a languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/platform-browser@npm:18.2.6" +"@angular/platform-browser@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/platform-browser@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.6 - "@angular/common": 18.2.6 - "@angular/core": 18.2.6 + "@angular/animations": 18.2.7 + "@angular/common": 18.2.7 + "@angular/core": 18.2.7 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/54f3e6224df60e76586b4ec0f5fcf06b92c7e6e54e9ded63543a75d8375755f84b3ae2357a5fd3144c82b01628e5edab6b01e477c3df64d447f9cf2e3d346fd5 + checksum: 10c0/59faa493fc3faddc9bf0743f0ac1da4d4105cf2ca2e9f37a706595237d41164ee5aa133523f1e6c86f926dad31fa346635c1d01e3f9a607a927a56b8512b0b93 languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/platform-server@npm:18.2.6" +"@angular/platform-server@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/platform-server@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.6 - "@angular/common": 18.2.6 - "@angular/compiler": 18.2.6 - "@angular/core": 18.2.6 - "@angular/platform-browser": 18.2.6 - checksum: 10c0/af85d09873f15358b2c20713b0c46715ce3952d9c018db86eea615770e606635d6313588e5b51eb9e45e16e51c3d6b52afea50ce3a781c672532bc4d35a07526 + "@angular/animations": 18.2.7 + "@angular/common": 18.2.7 + "@angular/compiler": 18.2.7 + "@angular/core": 18.2.7 + "@angular/platform-browser": 18.2.7 + checksum: 10c0/cad2d1db929cec641d9d14ac8cc029ee6e63de5477c8f83656ddda2d9ae528c1e4c2c0bb3afa57d317d395ca790551a907805853cf1a8c9019149fe9eefb6e7c languageName: node linkType: hard -"@angular/router@npm:^18.2.6": - version: 18.2.6 - resolution: "@angular/router@npm:18.2.6" +"@angular/router@npm:^18.2.7": + version: 18.2.7 + resolution: "@angular/router@npm:18.2.7" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.6 - "@angular/core": 18.2.6 - "@angular/platform-browser": 18.2.6 + "@angular/common": 18.2.7 + "@angular/core": 18.2.7 + "@angular/platform-browser": 18.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/9a28d72d187339c8fa83fd72375948808bdaa5c89f432c31fd2d89bd9a3fa57719a3ee0f264a88310170b262846c7ba5db44c582de858a454f1ac341432041c2 + checksum: 10c0/85ea724bbaa3580213dc6683c2c7747ca2f446b36f2a48f375e432e5960021be86492f537248a0bf2c968ac2174d7736b167cc8bc77f55bf46720bf51f6f2041 languageName: node linkType: hard @@ -5931,18 +5931,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" - "@angular/animations": "npm:^18.2.6" + "@angular/animations": "npm:^18.2.7" "@angular/cli": "npm:^18.2.7" - "@angular/common": "npm:^18.2.6" - "@angular/compiler": "npm:^18.2.6" - "@angular/compiler-cli": "npm:^18.2.6" - "@angular/core": "npm:^18.2.6" - "@angular/forms": "npm:^18.2.6" - "@angular/localize": "npm:^18.2.6" - "@angular/platform-browser": "npm:^18.2.6" - "@angular/platform-browser-dynamic": "npm:^18.2.6" - "@angular/platform-server": "npm:^18.2.6" - "@angular/router": "npm:^18.2.6" + "@angular/common": "npm:^18.2.7" + "@angular/compiler": "npm:^18.2.7" + "@angular/compiler-cli": "npm:^18.2.7" + "@angular/core": "npm:^18.2.7" + "@angular/forms": "npm:^18.2.7" + "@angular/localize": "npm:^18.2.7" + "@angular/platform-browser": "npm:^18.2.7" + "@angular/platform-browser-dynamic": "npm:^18.2.7" + "@angular/platform-server": "npm:^18.2.7" + "@angular/router": "npm:^18.2.7" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" From c0651ae5207859a400980e248d2323ee9072d1fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:37:36 +0000 Subject: [PATCH 110/213] build(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/e28ff129e5465c2c0dcc6f003fc735cb6ae0c673...b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 98ba0862c2..2209bfbbe6 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -79,7 +79,7 @@ jobs: - name: Upload code coverage if: matrix.node-version == 20.13 # upload coverage report for current node version only - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: From 0d0ef0630f4cdef992c04b9d9d2a520159901344 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 14:28:49 +0000 Subject: [PATCH 111/213] build(deps-dev): bump eslint-plugin-import from 2.30.0 to 2.31.0 Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.30.0 to 2.31.0. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 3042a1a1b5..4b12bec0dc 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-import": "^2.30.0", + "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^50.3.1", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", diff --git a/yarn.lock b/yarn.lock index 21969ef639..816504c24e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5971,7 +5971,7 @@ __metadata: eslint-config-prettier: "npm:^9.1.0" eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" - eslint-plugin-import: "npm:^2.30.0" + eslint-plugin-import: "npm:^2.31.0" eslint-plugin-jsdoc: "npm:^50.3.1" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" @@ -8611,15 +8611,15 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.9.0": - version: 2.9.0 - resolution: "eslint-module-utils@npm:2.9.0" +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/7c45c5b54402a969e99315890c10e9bf8c8bee16c7890573343af05dfa04566d61546585678c413e5228af0550e39461be47e35a8ff0d1863e113bdbb28d1d29 + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 languageName: node linkType: hard @@ -8644,9 +8644,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.30.0": - version: 2.30.0 - resolution: "eslint-plugin-import@npm:2.30.0" +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: "@rtsao/scc": "npm:^1.1.0" array-includes: "npm:^3.1.8" @@ -8656,7 +8656,7 @@ __metadata: debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.9.0" + eslint-module-utils: "npm:^2.12.0" hasown: "npm:^2.0.2" is-core-module: "npm:^2.15.1" is-glob: "npm:^4.0.3" @@ -8665,10 +8665,11 @@ __metadata: object.groupby: "npm:^1.0.3" object.values: "npm:^1.2.0" semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" tsconfig-paths: "npm:^3.15.0" peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10c0/4c9dcb1f27505c4d5dd891d2b551f56c70786d136aa3992a77e785bdc67c9f60200a2c7fb0ce55b7647fe550b12bc433d5dfa59e2c00ab44227791c5ab86badf + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a languageName: node linkType: hard From c0900fd2c08f9d4599b8db5077ec0bd7684a477f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:33:51 +0000 Subject: [PATCH 112/213] build(deps): bump github/codeql-action from 3.26.10 to 3.26.11 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.10 to 3.26.11. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/e2b3eafc8d227b0241d48be5f425d47c2d750a13...6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d158900f35..cf312f85c9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 + uses: github/codeql-action/init@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 + uses: github/codeql-action/autobuild@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 + uses: github/codeql-action/analyze@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index c9b06419ef..fb4d21cf2f 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 + uses: github/codeql-action/upload-sarif@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 with: sarif_file: results.sarif From 6e2fa811039a69d1e90a41b290e12ee653d66040 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:33:40 +0000 Subject: [PATCH 113/213] build(deps): bump SonarSource/sonarcloud-github-action Bumps [SonarSource/sonarcloud-github-action](https://github.com/sonarsource/sonarcloud-github-action) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/sonarsource/sonarcloud-github-action/releases) - [Commits](https://github.com/sonarsource/sonarcloud-github-action/compare/eb211723266fe8e83102bac7361f0a05c3ac1d1b...383f7e52eae3ab0510c3cb0e7d9d150bbaeab838) --- updated-dependencies: - dependency-name: SonarSource/sonarcloud-github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 2209bfbbe6..8952401b14 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -88,7 +88,7 @@ jobs: - name: Perform SonarCloud Analysis if: matrix.node-version == 20.13 && github.event_name != 'pull_request' && github.repository_owner == env.MAIN_REPO_OWNER # perform SonarCloud analysis only for current node version and not with pull requests or forks(token issue) - uses: SonarSource/sonarcloud-github-action@eb211723266fe8e83102bac7361f0a05c3ac1d1b # v3.0.0 + uses: SonarSource/sonarcloud-github-action@383f7e52eae3ab0510c3cb0e7d9d150bbaeab838 # v3.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From 6aa4ee9c2e67d84f23041a49b827895dfc187685 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:04:12 +0200 Subject: [PATCH 114/213] feat(assets): add corrections in op3: F MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add correction in Op. 3: source_Fabc_corr * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op3/source-description.json | 1194 ++++++++++++++++- 1 file changed, 1193 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index fedd7ad209..019849c577 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -2717,7 +2717,1199 @@ } ] } - ] + ], + "corrections": [ + { + "id": "source_Fa_corr1", + "label": "Korrekturen 1 in Fa (mit schwarzer Tinte, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Ganz wenig bewegt ([Achtelnote]) hinzugefügt." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "1", + "system": "Klav.", + "position": "2/8–2/4", + "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Auf Rasur. Ante correcturam vermutlich: Achtelpause, Achtelnote d1 (wie Textfassung 2). Text: Dies neu zu 2/4 notiert (Hs. Webern)." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–3/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." + }, + { + "measure": "2", + "system": "Klav.", + "position": "1. bis letzte Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1/4", + "comment": "Rasur. Ante correcturam: vermutlich Viertelnote b/e1 als Unterstimmenschicht in Klav. o. (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "Taktanfang bis 6/8", + "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Klav.", + "position": "6/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "3
bis 4", + "system": "Klav.", + "position": "6/8
2/8", + "comment": "Crescendo-/Decrescendogabel hinzugefügt." + }, + { + "measure": "3
bis 4", + "system": "Klav. u.", + "position": "6/8
6/8", + "comment": "Legatobogen rasiert. Bogen T. 4 4–6/8 auf Rasur." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2)." + }, + { + "measure": "4", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "1. Note", + "comment": "zögernd hinzugefügt." + }, + { + "measure": "5", + "system": "", + "position": "4/8", + "comment": "Tempo über Ges. und Klav. o. hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('ppp')}} und {{ref.getGlyph('a')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1/8–5/16", + "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3/16–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2. Text: Ein zu 3/16 und (leicht-be-schwing-)tes zu 12/16 neu notiert." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "3/16
1/8", + "comment": "rit. - - - hinzugefügt über Ges. und Klav. o." + }, + { + "measure": "8", + "system": "", + "position": "2/8", + "comment": "etwas langsamer | als tempo I. hinzugefügt über Klav. o." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2)." + }, + { + "measure": "8", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "8
bis 10", + "system": "Klav.", + "position": "4/8
1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen bei 5/8 überschrieben mit Balken zu 6/8.
Silbenbogen hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). Silbenbogen hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "(1/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('a')}}f1 (siehe Textfassung 2). {{ref.getGlyph('ppp')}} hinzugefügt." + }, + { + "measure": "10
bis 12", + "system": "", + "position": "(2/8)
1/4", + "comment": "rit. - - - über ges. und Klav. o. hinzugefügt." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "2. Note
1/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "10
bis 11", + "system": "Klav.", + "position": "2. Note
2/4", + "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "4/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich [rühr(-)]te (siehe Textfassung 2)." + } + ] + } + ] + }, + { + "id": "source_Fa_corr2", + "label": "Korrekturen 2 in Fa (Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "etwas zögernd hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Geändert zu Triole aus Viertelnote d1 und Achtelpause mit Bogen (siehe Textfassung 4) mit grünem Buntstift.
Siehe TkA zu Textfassung 4." + }, + { + "measure": "2", + "system": "", + "position": "Taktanfang", + "comment": "Tempo mit rotem Buntstift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Tenutostrich zu 5. Note, Staccatopunkt zu 6. Note, Bogen 5.–6. Note mit rotem Buntstift." + }, + { + "measure": "7", + "system": "", + "position": "", + "comment": "4/4-Taktvorzeichnung am Taktanfang hinzugefügt bei Klav. o. mit Bleistift und zwischen den Klav.-Systemen mit grünem Buntstift. Am Taktende mit grünem Buntstift und Bleistift Hinzufügung (4/4):
##Abbildung##
Siehe Textfassung 4." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "(1/8)", + "comment": "Zuerst: Sechzehntelpause hinzugefügt mit Bleistift.
Dann: Sechzehntelpause gestrichen und Achtelpause mit Fermate hinzugefügt mit Bleistift." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1–2/16", + "comment": "Sechzehntelpause bei 1/16 gestrichen, Ligaturbögen zu 2/16 von T. 7 und Sechzehntelpause mit Fermate hinzugefügt mit Bleistift. Siehe Textfassung 4." + }, + { + "measure": "8", + "system": "Ges., Klav. o.", + "position": "nach (1/8)", + "comment": "Zäsurzeichen gestrichen mit Bleistift." + }, + { + "measure": "9
bis 10", + "system": "Klav. u.", + "position": "3/4
1/8", + "comment": "Ligaturbögen in T. 9 3/4 gestrichen sowie Achtelpause und Triolenzeichen hinzugefügt mit Bleistift; Achtelnoten in T. 10 1/8 gestrichen mit Bleistift. Siehe Textfassung 4." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "3/4
1/4", + "comment": "Unterstimmenschicht: Ligatur zwei Viertelnoten Fis1 gestrichen mit grünem Buntstift. Siehe Textfassung 4." + } + ] + } + ] + }, + { + "id": "source_Fb_corr1", + "label": "Korrekturen 1 in Fb (mit schwarzer Tinte ggf. auf Rasur, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2. Abweichungen der Grundschicht von Fb zu dieser Textfassung sind mit dem Vermerk „sic“ gekennzeichnet." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Klav. o.", + "position": "2–8/16", + "comment": "sic: ein Bogen." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3. Note", + "comment": "Text sic: Großschreibung Nur (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2/8–8/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich drei Achtelnoten fis1–dis2–ais1 (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text sic: Großschreibung Was (siehe Textfassung 1)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "4/16", + "comment": "sic: {{ref.getGlyph('a')}}c1." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten d1–cis1 (siehe Textfassung 1)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Text sic: Großschreibung Nacht." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Text sic: Ein (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1/4", + "comment": "Text sic: Großschreibung Mai. Komma fehlt (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text sic: Großschreibung Nun (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text sic: Großschreibung Um (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1/8", + "comment": "Text sic: Großschreibung Aug." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "sic: Bogen. Siehe Korrekturen 2 in Fb." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3/8", + "comment": "Text sic: Großschreibung Haar." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text sic: Großschreibung In (siehe Textfassung 1)." + } + ] + } + ] + }, + { + "id": "source_Fb_corr2", + "label": "Korrekturen 2 in Fb (Hs. Webern)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Sehr bewegt hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–4/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav.", + "position": "4–5/16", + "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "7–10/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav.", + "position": "8–9/16", + "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('pp')}} geändert zu {{ref.getGlyph('ppp')}} mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "1
bis 3", + "system": "Ges.", + "position": "6/8
5/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2–4/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Wellenline über den Noten zunächst hinzugefügt, dann gestrichen mit rotem Buntstift." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "5–7/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "2", + "system": "Klav.", + "position": "10.–15. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "3
bis 5", + "system": "Klav. o.", + "position": "1/8
3. Note", + "comment": "Bogen überschrieben zu Verlängerung des Bogens bis T. 2 letzte Note zu T. 3 1/8 sowie zu Bogen in T. 3 2.–6. Note, T. 3 7. Note bis T. 4 5. Note und T. 4 6. Note bis T. 5 3. Note mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2.–5. Note", + "comment": "{{ref.getGlyph('ppp')}}, Crescendogabel bis 3. Note und Decrescendogabel ab 4. Note hinzugefügt mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3–5/8", + "comment": "Decrescendogabel gestrichen mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "7. Note bis Taktende", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "", + "position": "Taktanfang", + "comment": "nicht zurückhalten hinzugefügt mit Bleistift." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "5.–8. Note", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (überschreibt Crescendogabel 1.–3. Note)." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "3. Note", + "comment": "espr. hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "4.–6. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4
bis 5", + "system": "Ges.", + "position": "letzte Note
4. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1–2/8", + "comment": "Vermutlich zunächst Crescendogabel hinzugefügt mit schwarzer Tinte, dann Gabel gestrichen mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "2/16, 4/16", + "comment": "Staccatopunkte hinzugefügt mit grünem Buntstift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Vermutlich zunächst Decrescendogabel hinzugefügt mit schwarzer Tinte, dann Wellenline auf Gabel hinzugefügt (als Streichung?) mit rotem Buntstift." + }, + { + "measure": "5
bis 6", + "system": "", + "position": "5/16
Taktende", + "comment": "rit[.] - - - zunächst hinzugefügt über Ges. mit Bleistift und rotem Buntstift sowie über Klav. o. mit schwarzer Tinte, dann über Klav. o. bis vor T. 6 5/8 gestrichen mit schwarzer Tinte. Siehe Korrektur in T. 6 5/8 bis Taktende." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "5/16", + "comment": "Sechzehntelnote b1 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "5–8/16", + "comment": "{{ref.getGlyph('p')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3. Note", + "comment": "Tenutostrich hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3. Note–4. Pause", + "comment": "Augmentationspunkt zu gis hinzugefügt und Zweiunddreißigstelpause gestrichen mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "8. Note", + "comment": "{{ref.getGlyph('b')}} hinzugefügt mit schwarzer Tinte. Siehe Korrektur zu 5/16." + }, + { + "measure": "5", + "system": "Klav.", + "position": "(3/4)", + "comment": "{{ref.getGlyph('pp')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('ppp')}} hinzugefügt (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1–2/8", + "comment": "Staccatopunkte hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1–4/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "6
bis 7", + "system": "Klav. o.", + "position": "4/16
6/8", + "comment": "Bogen in T. 5 gestrichen, in T. 6 überschrieben mit Bogen zu 2–4/8 und Tenutostriche zu 5–6/8 (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Triole aus Achtelnote gis1 (mit Tenutostrich), Achtelpause, Achtelnote g1 (siehe Textfassung 3) teilweise auf Rasur. Ante correcturam: vermutlich zunächst zwei Achtelnoten gis1–g1 (siehe Textfassung 1), dann Triole aus Viertelnote gis1 und Achtelnote g1 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "", + "position": "3/8
bis Taktende", + "comment": "rit[.] [eingerahmt] und Wellenlinie hinzugefügt über Ges. mit rotem Buntstift (überschreibt Korrektur in T. 5 5/8 bis Taktende). rit. in T. 6 5/8 aus Korrektur in T. 5 5/8 bis Taktende eingerahmt mit rotem Bunstift." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "4/8 bis letzte Note", + "comment": "Crescendogabel bis vorletzte Note, Decrescendogabel bis letzte Note überschreibt Crescendogabel bis vorletzte Note mit grünem Buntstift (siehe Textfassung 3 3/8 bis letzte Note)." + }, + { + "measure": "6
bis 7", + "system": "Ges.", + "position": "4. Note
1/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "", + "position": "5/8 bis Taktende", + "comment": "rit. - - - (siehe Textfassung 3) hinzugefügt über Ges. und Klav. o. mit schwarzer Tinte (überschreibt dort Geltungsstrichelung von Korrektur in T. 5 5/16 bis T. 6 Taktende). Siehe Korrektur in T. 6 3/8 bis Taktende." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "Taktanfang
Taktanfang", + "comment": "accell. - - - tempo I. hinzugefügt über Ges. sowie in T. 6 1–2/8 - - - accell. hinzugefügt überKlav. o. mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "{{ref.getGlyph('pp')}} zu 2/8, Crescendogabel 2–4/8, Decrescendogabel 4–6/8 hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "4/16", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7
bis 8", + "system": "Klav. u.", + "position": "4/16
4/16", + "comment": "Bogen geändert zu zwei Bögen in T. 7 4–12/16 und T. 8 1–4/16 (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "5–8/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "4/8
1/4", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "9–12/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "{{ref.getGlyph('p')}} (siehe Textfassung 3), Crescendogabel 1.–3. Note, Decrescendogabel 3.–5. Note hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/16", + "comment": "Sechzehntelpause (siehe Textfassung 3) auf Rasur. Ante correcturam: Achtelnote a." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/16", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–5. Note", + "comment": "Zunächst {{ref.getGlyph('mp')}}, Crescendogabel 2.–3. Note, Decrescendogabel 4.–5. Note hinzugefügt, dann {{ref.getGlyph('mp')}} geändert zu {{ref.getGlyph('p')}} mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Klav.", + "position": "11/16", + "comment": "{{ref.getGlyph('p')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "6. Note", + "comment": "Triolische Achtelpause (wie Textfassung 3) auf Rasur. Ante correcturam vermutlich Achtelnote f1." + }, + { + "measure": "8", + "system": "Ges.", + "position": "7.–8. Note", + "comment": "{{ref.getGlyph('mp')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8
bis 9", + "system": "Ges.", + "position": "8. Note
3/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1–3/8", + "comment": "{{ref.getGlyph('p')}}, Crescenodgabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('mf')}}, Decrescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "Bogen gestrichen mit schwarzer Tinte." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "1.–4. Note", + "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "4.–7. Note", + "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–8. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav.", + "position": "13/16", + "comment": "Sechzehntelnote cis2/cis3 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav.", + "position": "14/16", + "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "gis1 (siehe Textfassung 3) auf Rasur. Ante correcturam: vermutlich as1." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "letzte Note
6/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "{{ref.getGlyph('ff')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "3/16", + "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5/16–20/32", + "comment": "{{ref.getGlyph('ff')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "5/16", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "7/16", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Tenutostriche hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "17–20/32", + "comment": "Bogen überschrieben mit Bogen zu 5/16–20/32 (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "19/32", + "comment": "{{ref.getGlyph('b')}} hinzugefügt mit Bleistift." + } + ] + } + ] + }, + { + "id": "source_Fc_corr", + "label": "Korrekturen in Fc (mit Bleistift, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." + }, + { + "measure": "2
bis 4", + "system": "Ges.", + "position": "1/4
2/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "6/8", + "comment": "{{ref.getGlyph('#')}} zu cis1 und {{ref.getGlyph('a')}} zu e1 hinzugefügt." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "5/8", + "comment": "{{ref.getGlyph('a')}} zu e2 hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1/8", + "comment": "{{ref.getGlyph('a')}} hinzugefügt." + }, + { + "measure": "4
bis 6", + "system": "Ges.", + "position": "4/8
6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('b')}} zu b hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('b')}} zu b hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2–5/8", + "comment": "Crescendogabel (zusätzlich zu Gabel 2–4/8) hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('a')}} e rasiert." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('a')}} zu a hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('a')}} zu e1 hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('a')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "1/4", + "comment": "Auf Rasur. Ante correcturam: e2/a2/cis2?" + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "3/8", + "comment": "{{ref.getGlyph('a')}} zu f2 hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4–6/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('a')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1/8", + "comment": "{{ref.getGlyph('a')}} zu c2/e2/c3 hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('#')}} zu cis1 hinzugefügt." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "4/8
2/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('#')}} zu cis3 hinzugefügt." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "6/8
2/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "6/8", + "comment": "{{ref.getGlyph('a')}} zu c3 und {{ref.getGlyph('b')}} zu es3 hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4/8", + "comment": "ruhig hinzugefügt." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "4/8
6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "2/8", + "comment": "{{ref.getGlyph('b')}} zu es hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen überschrieben zu Balken." + }, + { + "measure": "11", + "system": "", + "position": "2/8", + "comment": "rit. hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('b')}} zu es1 hinzugefügt." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "6/8", + "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Derescendogabel hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen und Decrescendogabel hinzugefügt." + } + ] + } + ] + } + ] } }, { From 097f9827ec3ffef5514a54a1864bcf344165720c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:51:38 +0000 Subject: [PATCH 115/213] build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.11 to 3.26.12. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea...c36620d31ac7c881962c3d9dd939c40ec9434f2b) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cf312f85c9..d24de4786a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 + uses: github/codeql-action/init@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 + uses: github/codeql-action/autobuild@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 + uses: github/codeql-action/analyze@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index fb4d21cf2f..a42556d3f2 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11 + uses: github/codeql-action/upload-sarif@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 with: sarif_file: results.sarif From 9e27174fa26c9196fbd79796cf45f9059b0c9564 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:51:28 +0000 Subject: [PATCH 116/213] build(deps): bump actions/checkout from 4.2.0 to 4.2.1 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/d632683dd7b4114ad314bca15554477dd762a938...eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 6 +++--- .github/workflows/codeql.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/visualize-repo.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 8952401b14..4116e9ac01 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -44,7 +44,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: fetch-depth: 0 # Get all history and branches @@ -141,7 +141,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: # ref (branch, tag or SHA) to check out ref: ${{ env.DEV_GH_PAGES_BRANCH }} @@ -213,7 +213,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: Set up node ${{ matrix.node-version}} uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d24de4786a..75f59c8b1f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,7 +31,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: fetch-depth: 2 # Initializes the CodeQL tools for scanning. diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 5c03af260a..7b0990bcf5 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -22,6 +22,6 @@ jobs: egress-policy: audit - name: 'Checkout Repository' - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: 'Dependency Review' uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index a42556d3f2..ae5fd9d359 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -36,7 +36,7 @@ jobs: egress-policy: audit - name: "Checkout code" - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: persist-credentials: false diff --git a/.github/workflows/visualize-repo.yml b/.github/workflows/visualize-repo.yml index b0325c6a2b..2934846568 100644 --- a/.github/workflows/visualize-repo.yml +++ b/.github/workflows/visualize-repo.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: ref: develop token: ${{ secrets.REPO_TOKEN }} From 337c221b93d4a30262fa9393e31efc4801b805c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:16:06 +0000 Subject: [PATCH 117/213] build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.2 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.2. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/50769540e7f4bd5e21e526ee35c689e35e0d6874...84480863f228bb9747b473957fcc9e309aa96097) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- .github/workflows/scorecards.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 4116e9ac01..6572e64e19 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -109,7 +109,7 @@ jobs: - name: Upload build artifacts (main && develop) # upload build artifacts for current node version and main or develop branch only if: matrix.node-version == 20.13 && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # ratchet:actions/upload-artifact@v4.4.0 + uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # ratchet:actions/upload-artifact@v4.4.2 with: name: dist path: ${{ github.workspace }}/${{ env.DIST_DIR }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index ae5fd9d359..9f6aabc4e6 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 + uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 with: name: SARIF file path: results.sarif From b5daa2ccb5f2a8e6ee2bffb36ccd402677cda23d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCnnich?= Date: Wed, 9 Oct 2024 11:22:58 +0200 Subject: [PATCH 118/213] Update .github/workflows/ci_workflow.yml --- .github/workflows/ci_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 6572e64e19..5f8a5cea90 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -109,7 +109,7 @@ jobs: - name: Upload build artifacts (main && develop) # upload build artifacts for current node version and main or develop branch only if: matrix.node-version == 20.13 && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') - uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # ratchet:actions/upload-artifact@v4.4.2 + uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 with: name: dist path: ${{ github.workspace }}/${{ env.DIST_DIR }} From 7fc0dfda02764828fd31f76913fe68a806a26cbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:33:48 +0000 Subject: [PATCH 119/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.8.0 to 8.8.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.8.0 to 8.8.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 4b12bec0dc..22d202a732 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.8.0", - "@typescript-eslint/parser": "^8.8.0", + "@typescript-eslint/eslint-plugin": "^8.8.1", + "@typescript-eslint/parser": "^8.8.1", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.4.4", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 816504c24e..6be02e08df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4984,15 +4984,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.8.0" +"@typescript-eslint/eslint-plugin@npm:^8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.8.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.8.0" - "@typescript-eslint/type-utils": "npm:8.8.0" - "@typescript-eslint/utils": "npm:8.8.0" - "@typescript-eslint/visitor-keys": "npm:8.8.0" + "@typescript-eslint/scope-manager": "npm:8.8.1" + "@typescript-eslint/type-utils": "npm:8.8.1" + "@typescript-eslint/utils": "npm:8.8.1" + "@typescript-eslint/visitor-keys": "npm:8.8.1" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5003,25 +5003,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/98ac37587eda02a713710f0a62ca979833482024968f1d1735881718abe102a6b49707db4f1dac0d7c731d1cbf8111d829c5125348d4829ab6fad7a7b3b344e4 + checksum: 10c0/020a0a482202b34c6665a56ec5902e38ae1870b2600ec1b2092de352b23099dde553781ee8323974f63962ebe164a6304f0019e937afb5cf7854b0e0163ad1ca languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/parser@npm:8.8.0" +"@typescript-eslint/parser@npm:^8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/parser@npm:8.8.1" dependencies: - "@typescript-eslint/scope-manager": "npm:8.8.0" - "@typescript-eslint/types": "npm:8.8.0" - "@typescript-eslint/typescript-estree": "npm:8.8.0" - "@typescript-eslint/visitor-keys": "npm:8.8.0" + "@typescript-eslint/scope-manager": "npm:8.8.1" + "@typescript-eslint/types": "npm:8.8.1" + "@typescript-eslint/typescript-estree": "npm:8.8.1" + "@typescript-eslint/visitor-keys": "npm:8.8.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/cf72a644b89c62cd55b09fa1d22b51a2c726714aac344a797f0c2ad80bfbabcb7567000fadd4ea8188aa1d923675bebdca06acc1d28ac1b8360bf28a36b46f3a + checksum: 10c0/2afd147ccec6754316d6837d6108a5d822eb6071e1a7355073288c232530bc3e49901d3f08755ce02d497110c531f3b3658eb46d0ff875a69d4f360b5f938cb4 languageName: node linkType: hard @@ -5035,28 +5035,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/scope-manager@npm:8.8.0" +"@typescript-eslint/scope-manager@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/scope-manager@npm:8.8.1" dependencies: - "@typescript-eslint/types": "npm:8.8.0" - "@typescript-eslint/visitor-keys": "npm:8.8.0" - checksum: 10c0/29ddf589ff0e465dbbf3eb87b79a29face4ec5a6cb617bbaafbac6ae8340d376b5b405bca762ee1c7a40cbdf7912a32734f9119f6864df048c7a0b2de21bdd3d + "@typescript-eslint/types": "npm:8.8.1" + "@typescript-eslint/visitor-keys": "npm:8.8.1" + checksum: 10c0/6f697baf087aedc3f0f228ff964fd108a9dd33fe4e5cc6c914be6367c324cee55629e099832668042bedfec8cdc72c6ef2ca960ee26966dbcc75753059a1352f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/type-utils@npm:8.8.0" +"@typescript-eslint/type-utils@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/type-utils@npm:8.8.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.8.0" - "@typescript-eslint/utils": "npm:8.8.0" + "@typescript-eslint/typescript-estree": "npm:8.8.1" + "@typescript-eslint/utils": "npm:8.8.1" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/d6ee11f4686fb54daea1f436f73b96eb31a95f6e535abc0534abf5794e7597669a92d12300969c8afee0fc1912dbc1591664f7e37f0da5935016cc981b2921a8 + checksum: 10c0/6edfc2b9fca5233dd922141f080377b677db1093ec3e702a3ab52d58f77b91c0fb69479d4d42f125536b8fc0ffa85c07c7de2f17cc4c6fa1df1226ec01e5608c languageName: node linkType: hard @@ -5067,10 +5067,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/types@npm:8.8.0" - checksum: 10c0/cd168fafcaf77641b023c4405ea3a8c30fbad1737abb5aec9fce67fe2ae20224b624b5a2e3e84900ba81dc7dd33343add3653763703a225326cc81356b182d09 +"@typescript-eslint/types@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/types@npm:8.8.1" + checksum: 10c0/4b44857332a0b1bfafbeccb8be157f8266d9e226ac723f6af1272b9b670b49444423ddac733655163eb3b90e8c88393a68ab2d7f326f5775371eaf4b9ca31d7b languageName: node linkType: hard @@ -5093,12 +5093,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.8.0" +"@typescript-eslint/typescript-estree@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.8.1" dependencies: - "@typescript-eslint/types": "npm:8.8.0" - "@typescript-eslint/visitor-keys": "npm:8.8.0" + "@typescript-eslint/types": "npm:8.8.1" + "@typescript-eslint/visitor-keys": "npm:8.8.1" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5108,21 +5108,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/9b9e849f6b2d4e250840ef8e05f55a97d6598adaf48c1e6df83084b94c30feca6a3e7916ee1c235178188d0db6364a877cbf8fe218c36d5f8d5acb50767f3273 + checksum: 10c0/e3b9bc1e925c07833237044271cdc9bd8bdba3e2143dcfc5bf3bf481c89731b666a6fad25333a4b1980ac2f4c6f5e6e42c71206f73f3704e319f6b3b67463a6a languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/utils@npm:8.8.0" +"@typescript-eslint/utils@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/utils@npm:8.8.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.8.0" - "@typescript-eslint/types": "npm:8.8.0" - "@typescript-eslint/typescript-estree": "npm:8.8.0" + "@typescript-eslint/scope-manager": "npm:8.8.1" + "@typescript-eslint/types": "npm:8.8.1" + "@typescript-eslint/typescript-estree": "npm:8.8.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/fcf2dfd4a2d9491aa096a29c2c1fdd891ca3c13933d20cfea44e51b3d10a397e7ed9a9cd71ac9a29e8c4706264ae00c25a29394e2a6bda3291be298062901f2c + checksum: 10c0/954a2e85ae56a3ebefb6e41fb33c59ffa886963860536e9729a35ecea55eefdc58858c7aa126048c4a61f4fd9997b4f7601e7884ed2b3e4e7a46c9e4617a9f29 languageName: node linkType: hard @@ -5150,13 +5150,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.8.0": - version: 8.8.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.8.0" +"@typescript-eslint/visitor-keys@npm:8.8.1": + version: 8.8.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.8.1" dependencies: - "@typescript-eslint/types": "npm:8.8.0" + "@typescript-eslint/types": "npm:8.8.1" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/580ce74c9b09b9e6a6f3f0ac2d2f0c6a6b983a78ce3b2544822ee08107c57142858d674897f61ff32a9a5e8fca00c916545c159bb75d134f4380884642542d38 + checksum: 10c0/6f917090b61277bd443aa851c532c4a9cc91ad57aedf185c5dff0c530f158cce84ef815833bd8deffa87f0bbf7a9f1abd1e02e30af2463c4e7f27c0c08f59080 languageName: node linkType: hard @@ -5955,8 +5955,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.8.0" - "@typescript-eslint/parser": "npm:^8.8.0" + "@typescript-eslint/eslint-plugin": "npm:^8.8.1" + "@typescript-eslint/parser": "npm:^8.8.1" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 1e978d1ef67471c8c58398a4b568ebb4b7ae2d21 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:51:11 +0200 Subject: [PATCH 120/213] feat(assets): add corrections in Op3: H MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Stefan Münnich --- .../1/section/5/op3/source-description.json | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 019849c577..99b5a71271 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -4236,6 +4236,194 @@ } ] } + ], + "corrections": [ + { + "id": "source_H_corr1", + "label": "Korrekturen 1 in H (mit schwarzer Tinte ggf. auf Rasur)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav.", + "position": "5/16", + "comment": "Auf Rasur. Ante correcturam: gis2 in Klav. o.; Klav. u. möglicherweise Viertelpause." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "4", + "system": "", + "position": "Taktanfang", + "comment": "(Redundante) Taktvorzeichnung 3/4 (siehe Textfassung 1) gestrichen." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich es1 (siehe Textfassung 1)." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1. Note", + "comment": "ais auf Rasur. Ante correcturam: vermutlich b (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Klav. o", + "position": "2. Note bis 4/8", + "comment": "Unterstimmenschicht: Bogen von cis1 zu es1 rasiert." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "1. Note", + "comment": "ais und Tenutostrich auf Rasur. Ante correcturam: vermutlich b (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Bogen rasiert." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "3. Note", + "comment": "8va-Linie bis zwischen 3–4/8 nach 3. Note gestrichen." + }, + { + "measure": "11", + "system": "Ges.", + "position": "letzte Note", + "comment": "dis1 mit Tenutostrich auf Rasur. Siehe Korrekturen 2." + }, + { + "measure": "12", + "system": "", + "position": "2. TH", + "comment": "Geltungsstrichelung von Rit. auf Rasur." + } + ] + } + ] + }, + { + "id": "source_H_corr2", + "label": "Korrekturen 2 in H (mit Bleistift und Buntstift)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "", + "comment": "Metronomzahl 90 hinzugefügt mit grünem Buntstift (Hs. ?)." + }, + { + "measure": "vor 1", + "system": "Ges.", + "position": "2/8", + "comment": "Vertikaler Strich zu Klav. hinzugefügt mit grünem Buntstift (zur Verdeutlichung des Untersatzes) (Hs. ?)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "6/8", + "comment": "Vertikaler Strich zu Klav. hinzugefügt mit grünem Buntstift (zur Verdeutlichung des Untersatzes) (Hs. ?)." + }, + { + "measure": "4", + "system": "Klav.", + "position": "1/16", + "comment": "Tempo über Klav. o. eingekreist mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "(Zusätzliche) Decresendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Crescendogabel 2. Note bis Taktende gestrichen mit rotem Buntstift und geändert zu Crescendogabel 2/4 bis Taktende." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Zählzeiten 1 und 2 mit verdeutlichenden Klammern über dem System hinzugefügt mit rotem Buntstift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "2. Note", + "comment": "Vertikaler Strich zu Klav. o. hinzugefügt mit grünem Buntstift (zur Verdeutlichung des Untersatzes) (Hs. ?)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3. Note", + "comment": "Tenutostrich hinzugefügt mit grünem Buntstift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('ppp')}} geändert zu {{ref.getGlyph('pp')}} mit rotem Buntstift." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "2/8
1/4", + "comment": "Decrescendogabel hinzugefügt mit rotem Buntstift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4/8", + "comment": "fis1 geändert zu ges1 mit Bleistift." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1/4", + "comment": "gis1 geändert zu as1 mit Bleistift." + }, + { + "measure": "11", + "system": "Ges.", + "position": "letzte Note", + "comment": "dis1 überschrieben zu es1 mit Bleistift. Siehe Textfassung 3." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "1. Note", + "comment": "Staccato-Punkt hinzugefügt mit grünem Buntstift." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "nach 3/8", + "comment": "Zäsurzeichen hinzugefügt mit grünem Buntstift." + } + ] + } + ] + } ] } }, From 6a9a559691e64ea476a08a8f21aaa0aae42bec90 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:11:03 +0200 Subject: [PATCH 121/213] feat(assets): add corrections in Op3: G MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections in Op3: Gbc * updateafter review (unify "Pedal-Aufhebung") --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op12/source-description.json | 2 +- .../1/section/5/op3/source-description.json | 408 ++++++++++++++++++ 2 files changed, 409 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op12/source-description.json b/src/assets/data/edition/series/1/section/5/op12/source-description.json index acb261cb09..799790b8f1 100644 --- a/src/assets/data/edition/series/1/section/5/op12/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op12/source-description.json @@ -1662,7 +1662,7 @@ "measure": "10", "system": "Klav.", "position": "2/4", - "comment": "Pedalaufhebung gestrichen mit blauer Tinte." + "comment": "Pedal-Aufhebung gestrichen mit blauer Tinte." }, { "measure": "11
bis 12", diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 99b5a71271..a846dd63a5 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -4153,6 +4153,414 @@ } ] } + ], + "corrections": [ + { + "id": "source_Gb_corr", + "label": "Korrekturen in Gb (mit schwarzer Tinte ggf. auf Rasur)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Langsam und, und gestrichen." + }, + { + "measure": "1–3", + "system": "Klav.", + "position": "", + "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1–2/8", + "comment": "Viertelnote (siehe Textfassung 2) geändert zu Achtelnote, Achtelpause." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1.–2., 5.–6. Note", + "comment": "Zwei Achtelnoten (siehe Textfassung 2) geändert zu punktierte Achtelnote, Sechzehntelnote." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "", + "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4–6/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich dis1–e1–gis1 (siehe Textfassung 2)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Auf Rasur. Ante correcturam: zwei Achtelnoten (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich cis2 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Auf Rasur. Ante correcturam: zwei Achtelnoten (siehe Textfassung 2)." + }, + { + "measure": "7", + "system": "Klav.", + "position": "", + "comment": "Auf Rasuren. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "7", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: zwei Achtelnoten (siehe Textfassung 2)." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "4/8", + "comment": "Rasur. Ante correcturam: vermutlich f1/a1 (siehe Textfassung 2)." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "2/8", + "comment": "Rasur. Ante correcturam: vermutlich e1/a1 (siehe Textfassung 2)." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "4. Note", + "comment": "Unterstimmenschicht auf Rasur. Ante correcturam: vermutlich Viertelnote, Achtelnote d (siehe Textfassung 2)." + }, + { + "measure": "13
bis 14", + "system": "Klav. u.", + "position": "4. Note
1/4", + "comment": "Bogen rasiert (siehe Textfassung 2)." + } + ] + } + ] + }, + { + "id": "source_Gc_corr", + "label": "Korrekturen in Gc", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2. Abweichungen der Grundschicht von Gc zu dieser Textfassung sind mit dem Vermerk „sic“ gekennzeichnet." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "Taktanfang", + "comment": "Zart bewegt hinzugefügt mit roter Tinte." + }, + { + "measure": "vor 1", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "vor 1", + "system": "Klav.", + "position": "", + "comment": "Ped[.] - - - [Pedal-Aufhebung] hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Klav.", + "position": "1–4/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "2. Note", + "comment": "{{ref.getGlyph('a')}} zu f hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "{{ref.getGlyph('#')}} hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "4. Note", + "comment": "Text: trittst auf Rasur. Ante correcturam: vermutlich Großschreibung." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "(2–4/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8", + "comment": "Text: mit auf Rasur. Ante correcturam: vermutlich Großschreibung." + }, + { + "measure": "2", + "system": "Ges.", + "position": "7.–8. Note", + "comment": "Zwei Achtelnoten (siehe Textfassung 1) geändert zu punktierter Achtelnote, Sechzehntelnote." + }, + { + "measure": "2", + "system": "Klav.", + "position": "7–8/8", + "comment": "Ped[.] - - - hinzugefügt mit Bleistift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "(1/4)", + "comment": "sic: zwei Achtelnoten es1/ges1–d1/f1 (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2. Note", + "comment": "äußerst zart hinzugefügt mit roter Tinte." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3. Note", + "comment": "Fermatenzeichen und quasi fermata hinzugefügt mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "(3/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1–4/8", + "comment": "Tenutostriche hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "3/16", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "4
bis 5", + "system": "Klav.", + "position": "5/16
2/8", + "comment": "Ped[.] - - - hinzugefügt mit Bleistift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "8/16", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('pp')}} korrigiert zu {{ref.getGlyph('ppp')}} mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "13/32–6/8", + "comment": "Auf Tektur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "19/32", + "comment": "{{ref.getGlyph('a')}} zu d2 mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "10/16–24/32", + "comment": "Auf Tektur." + }, + { + "measure": "6", + "system": "", + "position": "2/4", + "comment": "rit[.] hinzugefügt mit Bleistift, Geltungsstrichelung mit schwarzer Tinte." + }, + { + "measure": "6", + "system": "Klav.", + "position": "letzte Note", + "comment": "Pedal-Aufhebung gestrichen mit Bleistift." + }, + { + "measure": "7", + "system": "", + "position": "Taktanfang", + "comment": "sehr ruhig gestrichen mit schwarzer Tinte.
sehr ruhig hinzugefügt mit Bleistift, gestrichen mit Bleistift.
Langsamer | als zu Beginn hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Ges.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1/8 bis 1. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "2. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('a')}} zu g1 hinzugefügt mit Bleistift." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4. Note", + "comment": "Crescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1–2/8", + "comment": "Decrescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "2/8–5/8", + "comment": "sic: Bogen bis 7/8. Bogen gestrichen und geändert zu Bogen von 2–4/8 mit roter Tinte." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Crescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Ges.", + "position": "3.–6. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "4. Note", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5. Note bis 7/8", + "comment": "Decrescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "5. Note", + "comment": "Staccatopunkt hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "6. Note", + "comment": "Tenutostrich hinzugefügt mit roter Tinte.
{{ref.getGlyph('a')}} zu f2 nachgezogen mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "nach 6/8", + "comment": "Bassschlüssel hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('ppp')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "Klav.", + "position": "(1/2)", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2/8", + "comment": "gis neben dem Notenkopf hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2/4", + "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Zwei Achtelnoten (siehe Textfassung 1) geändert zu punktierter Achtelnote, Sechzehntelnote." + }, + { + "measure": "10", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift, nachgezogen mit schwarzer Tinte." + } + ] + } + ] + } ] } }, From 2b57b7fdc33207273762b199ca810cd73ad924d1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 9 Oct 2024 14:40:26 +0200 Subject: [PATCH 122/213] =?UTF-8?q?fix(assets):=20fix=20formatting=20of=20?= =?UTF-8?q?corrections=20op3:=20F=E2=80=93H?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1/section/5/op3/source-description.json | 2434 +++++++++-------- 1 file changed, 1220 insertions(+), 1214 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index a846dd63a5..8709abbbde 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -1510,7 +1510,7 @@ "measure": "8", "system": "Ges.", "position": "2/8", - "comment": "Achtelnote c1 sowie Etwas langsamer | als Tempo I. auf Rasur." + "comment": "Achtelnote c1 sowie Etwas langsamer | als Tempo I. auf Rasur." }, { "measure": "9", @@ -1847,7 +1847,7 @@ ] }, { - "id": "source_Ec_cor2", + "id": "source_Ec_corr2", "label": "Korrekturen 2 in Ec (mit Bleistift)", "description": [ "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 1." @@ -2717,1199 +2717,1201 @@ } ] } - ], - "corrections": [ - { - "id": "source_Fa_corr1", - "label": "Korrekturen 1 in Fa (mit schwarzer Tinte, Hs. Webern)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "Ganz wenig bewegt ([Achtelnote]) hinzugefügt." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "1", - "system": "Klav.", - "position": "2/8–2/4", - "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "1. Note", - "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." - }, - { - "measure": "1", - "system": "Ges.", - "position": "2/4", - "comment": "Auf Rasur. Ante correcturam vermutlich: Achtelpause, Achtelnote d1 (wie Textfassung 2). Text: Dies neu zu 2/4 notiert (Hs. Webern)." - }, - { - "measure": "1", - "system": "Klav. o.", - "position": "2–3/4", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "2", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." - }, - { - "measure": "2", - "system": "Klav.", - "position": "1. bis letzte Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "1/4", - "comment": "Rasur. Ante correcturam: vermutlich Viertelnote b/e1 als Unterstimmenschicht in Klav. o. (siehe Textfassung 2)." - }, - { - "measure": "3", - "system": "Klav. u.", - "position": "Taktanfang bis 6/8", - "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "2–6/8", - "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "4/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "3", - "system": "Klav.", - "position": "6/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "3
bis 4", - "system": "Klav.", - "position": "6/8
2/8", - "comment": "Crescendo-/Decrescendogabel hinzugefügt." - }, - { - "measure": "3
bis 4", - "system": "Klav. u.", - "position": "6/8
6/8", - "comment": "Legatobogen rasiert. Bogen T. 4 4–6/8 auf Rasur." - }, - { - "measure": "4", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2)." - }, - { - "measure": "4", - "system": "Klav.", - "position": "4/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "1. Note", - "comment": "zögernd hinzugefügt." - }, - { - "measure": "5", - "system": "", - "position": "4/8", - "comment": "Tempo über Ges. und Klav. o. hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "4/8", - "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "1.–2. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." - }, - { - "measure": "6", - "system": "Klav. o.", - "position": "", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "6", - "system": "Klav. u.", - "position": "1/8", - "comment": "{{ref.getGlyph('ppp')}} und {{ref.getGlyph('a')}} hinzugefügt." - }, - { - "measure": "6", - "system": "Klav.", - "position": "1/8–5/16", - "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "1.–4. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "7", - "system": "Ges.", - "position": "3/16–12/16", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2. Text: Ein zu 3/16 und (leicht-be-schwing-)tes zu 12/16 neu notiert." - }, - { - "measure": "7
bis 8", - "system": "", - "position": "3/16
1/8", - "comment": "rit. - - - hinzugefügt über Ges. und Klav. o." - }, - { - "measure": "8", - "system": "", - "position": "2/8", - "comment": "etwas langsamer | als tempo I. hinzugefügt über Klav. o." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2.–3. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2)." - }, - { - "measure": "8", - "system": "Klav.", - "position": "4/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "8
bis 10", - "system": "Klav.", - "position": "4/8
1/8", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "8", - "system": "Ges.", - "position": "5–6/8", - "comment": "Achtelfähnchen bei 5/8 überschrieben mit Balken zu 6/8.
Silbenbogen hinzugefügt." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4.–5. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). Silbenbogen hinzugefügt." - }, - { - "measure": "10", - "system": "Ges.", - "position": "(1/4)", - "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('a')}}f1 (siehe Textfassung 2). {{ref.getGlyph('ppp')}} hinzugefügt." - }, - { - "measure": "10
bis 12", - "system": "", - "position": "(2/8)
1/4", - "comment": "rit. - - - über ges. und Klav. o. hinzugefügt." - }, - { - "measure": "10", - "system": "Klav.", - "position": "2. Note", - "comment": "{{ref.getGlyph('ppp')}} hinzugefügt." - }, - { - "measure": "10
bis 11", - "system": "Klav. u.", - "position": "2. Note
1/4", - "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." - }, - { - "measure": "10
bis 11", - "system": "Klav.", - "position": "2. Note
2/4", - "comment": "Ped. und [Ped.-Auflösung] hinzugefügt." - }, - { - "measure": "10", - "system": "Ges.", - "position": "4/8", - "comment": "Text: auf Rasur. Ante correcturam: vermutlich [rühr(-)]te (siehe Textfassung 2)." - } - ] - } - ] - }, - { - "id": "source_Fa_corr2", - "label": "Korrekturen 2 in Fa (Hs. Webern)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "etwas zögernd hinzugefügt mit rotem Buntstift." - }, - { - "measure": "1", - "system": "Ges.", - "position": "2/4", - "comment": "Geändert zu Triole aus Viertelnote d1 und Achtelpause mit Bogen (siehe Textfassung 4) mit grünem Buntstift.
Siehe TkA zu Textfassung 4." - }, - { - "measure": "2", - "system": "", - "position": "Taktanfang", - "comment": "Tempo mit rotem Buntstift." - }, - { - "measure": "6", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Tenutostrich zu 5. Note, Staccatopunkt zu 6. Note, Bogen 5.–6. Note mit rotem Buntstift." - }, - { - "measure": "7", - "system": "", - "position": "", - "comment": "4/4-Taktvorzeichnung am Taktanfang hinzugefügt bei Klav. o. mit Bleistift und zwischen den Klav.-Systemen mit grünem Buntstift. Am Taktende mit grünem Buntstift und Bleistift Hinzufügung (4/4):
##Abbildung##
Siehe Textfassung 4." - }, - { - "measure": "8", - "system": "Klav. o.", - "position": "(1/8)", - "comment": "Zuerst: Sechzehntelpause hinzugefügt mit Bleistift.
Dann: Sechzehntelpause gestrichen und Achtelpause mit Fermate hinzugefügt mit Bleistift." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "1–2/16", - "comment": "Sechzehntelpause bei 1/16 gestrichen, Ligaturbögen zu 2/16 von T. 7 und Sechzehntelpause mit Fermate hinzugefügt mit Bleistift. Siehe Textfassung 4." - }, - { - "measure": "8", - "system": "Ges., Klav. o.", - "position": "nach (1/8)", - "comment": "Zäsurzeichen gestrichen mit Bleistift." - }, - { - "measure": "9
bis 10", - "system": "Klav. u.", - "position": "3/4
1/8", - "comment": "Ligaturbögen in T. 9 3/4 gestrichen sowie Achtelpause und Triolenzeichen hinzugefügt mit Bleistift; Achtelnoten in T. 10 1/8 gestrichen mit Bleistift. Siehe Textfassung 4." - }, - { - "measure": "10
bis 11", - "system": "Klav. u.", - "position": "3/4
1/4", - "comment": "Unterstimmenschicht: Ligatur zwei Viertelnoten Fis1 gestrichen mit grünem Buntstift. Siehe Textfassung 4." - } - ] - } - ] - }, - { - "id": "source_Fb_corr1", - "label": "Korrekturen 1 in Fb (mit schwarzer Tinte ggf. auf Rasur, Hs. Webern)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2. Abweichungen der Grundschicht von Fb zu dieser Textfassung sind mit dem Vermerk „sic“ gekennzeichnet." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "2", - "system": "Klav. o.", - "position": "2–8/16", - "comment": "sic: ein Bogen." - }, - { - "measure": "3", - "system": "Ges.", - "position": "3. Note", - "comment": "Text sic: Großschreibung Nur (siehe Textfassung 1)." - }, - { - "measure": "4", - "system": "Ges.", - "position": "2/8–8/16", - "comment": "Auf Rasur. Ante correcturam: vermutlich drei Achtelnoten fis1–dis2–ais1 (siehe Textfassung 1)." - }, - { - "measure": "4", - "system": "Ges.", - "position": "letzte Note", - "comment": "Text sic: Großschreibung Was (siehe Textfassung 1)." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "4/16", - "comment": "sic: {{ref.getGlyph('a')}}c1." - }, - { - "measure": "5", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten d1–cis1 (siehe Textfassung 1)." - }, - { - "measure": "6", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Text sic: Großschreibung Nacht." - }, - { - "measure": "6", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Text sic: Ein (siehe Textfassung 1)." - }, - { - "measure": "7", - "system": "Ges.", - "position": "1/8", - "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1/4", - "comment": "Text sic: Großschreibung Mai. Komma fehlt (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "4/8", - "comment": "Text sic: Großschreibung Nun (siehe Textfassung 1)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "4/8", - "comment": "Text sic: Großschreibung Um (siehe Textfassung 1)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "1/8", - "comment": "Text sic: Großschreibung Aug." - }, - { - "measure": "9", - "system": "Klav. o.", - "position": "1.–5. Note", - "comment": "sic: Bogen. Siehe Korrekturen 2 in Fb." - }, - { - "measure": "9", - "system": "Ges.", - "position": "3/8", - "comment": "Text sic: Großschreibung Haar." - }, - { - "measure": "9", - "system": "Ges.", - "position": "letzte Note", - "comment": "Text sic: Großschreibung In (siehe Textfassung 1)." - } - ] - } - ] - }, - { - "id": "source_Fb_corr2", - "label": "Korrekturen 2 in Fb (Hs. Webern)", - "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2."], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "", - "position": "Taktanfang", - "comment": "Sehr bewegt hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "1", - "system": "Klav. o.", - "position": "2–4/16", - "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "1", - "system": "Klav.", - "position": "4–5/16", - "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." - }, - { - "measure": "1", - "system": "Klav. u.", - "position": "7–10/16", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "1", - "system": "Klav.", - "position": "8–9/16", - "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." - }, - { - "measure": "1", - "system": "Ges.", - "position": "6/8", - "comment": "{{ref.getGlyph('pp')}} geändert zu {{ref.getGlyph('ppp')}} mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "1
bis 3", - "system": "Ges.", - "position": "6/8
5/8", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "2", - "system": "Klav. o.", - "position": "2–4/16", - "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "2", - "system": "Ges.", - "position": "3–4/8", - "comment": "Wellenline über den Noten zunächst hinzugefügt, dann gestrichen mit rotem Buntstift." - }, - { - "measure": "2", - "system": "Klav. o.", - "position": "5–7/16", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "2", - "system": "Klav.", - "position": "10.–15. Note", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "3
bis 5", - "system": "Klav. o.", - "position": "1/8
3. Note", - "comment": "Bogen überschrieben zu Verlängerung des Bogens bis T. 2 letzte Note zu T. 3 1/8 sowie zu Bogen in T. 3 2.–6. Note, T. 3 7. Note bis T. 4 5. Note und T. 4 6. Note bis T. 5 3. Note mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "2.–5. Note", - "comment": "{{ref.getGlyph('ppp')}}, Crescendogabel bis 3. Note und Decrescendogabel ab 4. Note hinzugefügt mit grünem Buntstift." - }, - { - "measure": "3", - "system": "Ges.", - "position": "3–5/8", - "comment": "Decrescendogabel gestrichen mit rotem Buntstift." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "7. Note bis Taktende", - "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "4", - "system": "", - "position": "Taktanfang", - "comment": "nicht zurückhalten hinzugefügt mit Bleistift." - }, - { - "measure": "4", - "system": "Klav. o.", - "position": "1.–3. Note", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1.–4. Note", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "4", - "system": "Klav. o.", - "position": "5.–8. Note", - "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "1.–2. Note", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (überschreibt Crescendogabel 1.–3. Note)." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "3. Note", - "comment": "espr. hinzugefügt mit grünem Buntstift." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "4.–6. Note", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." - }, - { - "measure": "4
bis 5", - "system": "Ges.", - "position": "letzte Note
4. Note", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Ges.", - "position": "1–2/8", - "comment": "Vermutlich zunächst Crescendogabel hinzugefügt mit schwarzer Tinte, dann Gabel gestrichen mit Bleistift." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "2/16, 4/16", - "comment": "Staccatopunkte hinzugefügt mit grünem Buntstift." - }, - { - "measure": "5", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Vermutlich zunächst Decrescendogabel hinzugefügt mit schwarzer Tinte, dann Wellenline auf Gabel hinzugefügt (als Streichung?) mit rotem Buntstift." - }, - { - "measure": "5
bis 6", - "system": "", - "position": "5/16
Taktende", - "comment": "rit[.] - - - zunächst hinzugefügt über Ges. mit Bleistift und rotem Buntstift sowie über Klav. o. mit schwarzer Tinte, dann über Klav. o. bis vor T. 6 5/8 gestrichen mit schwarzer Tinte. Siehe Korrektur in T. 6 5/8 bis Taktende." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "5/16", - "comment": "Sechzehntelnote b1 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "5–8/16", - "comment": "{{ref.getGlyph('p')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "3. Note", - "comment": "Tenutostrich hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "3. Note–4. Pause", - "comment": "Augmentationspunkt zu gis hinzugefügt und Zweiunddreißigstelpause gestrichen mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Klav. o.", - "position": "8. Note", - "comment": "{{ref.getGlyph('b')}} hinzugefügt mit schwarzer Tinte. Siehe Korrektur zu 5/16." - }, - { - "measure": "5", - "system": "Klav.", - "position": "(3/4)", - "comment": "{{ref.getGlyph('pp')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "5", - "system": "Ges.", - "position": "6/8", - "comment": "{{ref.getGlyph('ppp')}} hinzugefügt (siehe Textfassung 3)." - }, - { - "measure": "6", - "system": "Ges.", - "position": "1–2/8", - "comment": "Staccatopunkte hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "6", - "system": "Klav.", - "position": "1–4/16", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "6
bis 7", - "system": "Klav. o.", - "position": "4/16
6/8", - "comment": "Bogen in T. 5 gestrichen, in T. 6 überschrieben mit Bogen zu 2–4/8 und Tenutostriche zu 5–6/8 (siehe Textfassung 3)." - }, - { - "measure": "6", - "system": "Ges.", - "position": "3.–4. Note", - "comment": "Triole aus Achtelnote gis1 (mit Tenutostrich), Achtelpause, Achtelnote g1 (siehe Textfassung 3) teilweise auf Rasur. Ante correcturam: vermutlich zunächst zwei Achtelnoten gis1–g1 (siehe Textfassung 1), dann Triole aus Viertelnote gis1 und Achtelnote g1 (siehe Textfassung 2)." - }, - { - "measure": "6", - "system": "", - "position": "3/8
bis Taktende", - "comment": "rit[.] [eingerahmt] und Wellenlinie hinzugefügt über Ges. mit rotem Buntstift (überschreibt Korrektur in T. 5 5/8 bis Taktende). rit. in T. 6 5/8 aus Korrektur in T. 5 5/8 bis Taktende eingerahmt mit rotem Bunstift." - }, - { - "measure": "6", - "system": "Klav. o.", - "position": "4/8 bis letzte Note", - "comment": "Crescendogabel bis vorletzte Note, Decrescendogabel bis letzte Note überschreibt Crescendogabel bis vorletzte Note mit grünem Buntstift (siehe Textfassung 3 3/8 bis letzte Note)." - }, - { - "measure": "6
bis 7", - "system": "Ges.", - "position": "4. Note
1/8", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "6", - "system": "", - "position": "5/8 bis Taktende", - "comment": "rit. - - - (siehe Textfassung 3) hinzugefügt über Ges. und Klav. o. mit schwarzer Tinte (überschreibt dort Geltungsstrichelung von Korrektur in T. 5 5/16 bis T. 6 Taktende). Siehe Korrektur in T. 6 3/8 bis Taktende." - }, - { - "measure": "7
bis 8", - "system": "", - "position": "Taktanfang
Taktanfang", - "comment": "accell. - - - tempo I. hinzugefügt über Ges. sowie in T. 6 1–2/8 - - - accell. hinzugefügt überKlav. o. mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "2–6/8", - "comment": "{{ref.getGlyph('pp')}} zu 2/8, Crescendogabel 2–4/8, Decrescendogabel 4–6/8 hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "4/16", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "7
bis 8", - "system": "Klav. u.", - "position": "4/16
4/16", - "comment": "Bogen geändert zu zwei Bögen in T. 7 4–12/16 und T. 8 1–4/16 (siehe Textfassung 3)." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "5–8/16", - "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "7", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "7
bis 8", - "system": "Ges.", - "position": "4/8
1/4", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "9–12/16", - "comment": "Crescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "1/4", - "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "8", - "system": "Klav. o.", - "position": "1.–5. Note", - "comment": "{{ref.getGlyph('p')}} (siehe Textfassung 3), Crescendogabel 1.–3. Note, Decrescendogabel 3.–5. Note hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "1/16", - "comment": "Sechzehntelpause (siehe Textfassung 3) auf Rasur. Ante correcturam: Achtelnote a." - }, - { - "measure": "8", - "system": "Klav. u.", - "position": "2/16", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "2.–5. Note", - "comment": "Zunächst {{ref.getGlyph('mp')}}, Crescendogabel 2.–3. Note, Decrescendogabel 4.–5. Note hinzugefügt, dann {{ref.getGlyph('mp')}} geändert zu {{ref.getGlyph('p')}} mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "8", - "system": "Klav.", - "position": "11/16", - "comment": "{{ref.getGlyph('p')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "8", - "system": "Ges.", - "position": "6. Note", - "comment": "Triolische Achtelpause (wie Textfassung 3) auf Rasur. Ante correcturam vermutlich Achtelnote f1." - }, - { - "measure": "8", - "system": "Ges.", - "position": "7.–8. Note", - "comment": "{{ref.getGlyph('mp')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "8
bis 9", - "system": "Ges.", - "position": "8. Note
3/8", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "1–3/8", - "comment": "{{ref.getGlyph('p')}}, Crescenodgabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Klav. o.", - "position": "1.–2. Note", - "comment": "{{ref.getGlyph('mf')}}, Decrescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Klav. o.", - "position": "1.–5. Note", - "comment": "Bogen gestrichen mit schwarzer Tinte." - }, - { - "measure": "9", - "system": "Klav. u.", - "position": "1.–4. Note", - "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Klav. o.", - "position": "4.–7. Note", - "comment": "{{ref.getGlyph('p')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4/8", - "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4.–8. Note", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Klav.", - "position": "13/16", - "comment": "Sechzehntelnote cis2/cis3 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "9", - "system": "Klav.", - "position": "14/16", - "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "9", - "system": "Ges.", - "position": "letzte Note", - "comment": "gis1 (siehe Textfassung 3) auf Rasur. Ante correcturam: vermutlich as1." - }, - { - "measure": "9
bis 10", - "system": "Ges.", - "position": "letzte Note
6/8", - "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "10", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "{{ref.getGlyph('ff')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "10", - "system": "Klav. u.", - "position": "3/16", - "comment": "{{ref.getGlyph('f')}} hinzugefügt mit schwarzer Tinte." - }, - { - "measure": "10", - "system": "Klav. o.", - "position": "5/16–20/32", - "comment": "{{ref.getGlyph('ff')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "10", - "system": "Klav. u.", - "position": "5/16", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." - }, - { - "measure": "10", - "system": "Klav. o.", - "position": "7/16", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." - }, - { - "measure": "10", - "system": "Ges.", - "position": "5–6/8", - "comment": "Tenutostriche hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." - }, - { - "measure": "10", - "system": "Klav. o.", - "position": "17–20/32", - "comment": "Bogen überschrieben mit Bogen zu 5/16–20/32 (siehe Textfassung 3)." - }, - { - "measure": "10", - "system": "Klav. o.", - "position": "19/32", - "comment": "{{ref.getGlyph('b')}} hinzugefügt mit Bleistift." - } - ] - } - ] - }, - { - "id": "source_Fc_corr", - "label": "Korrekturen in Fc (mit Bleistift, Hs. Webern)", - "description": [ - "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 1." - ], - "comments": [ - { - "blockHeader": "", - "blockComments": [ - { - "measure": "1", - "system": "Klav. u.", - "position": "4/8", - "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." - }, - { - "measure": "2
bis 4", - "system": "Ges.", - "position": "1/4
2/8", - "comment": "Bogen hinzugefügt." - }, - { - "measure": "2", - "system": "Klav. u.", - "position": "3/8", - "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." - }, - { - "measure": "2", - "system": "Klav. u.", - "position": "6/8", - "comment": "{{ref.getGlyph('#')}} zu cis1 und {{ref.getGlyph('a')}} zu e1 hinzugefügt." - }, - { - "measure": "3", - "system": "Klav. u.", - "position": "1/8", - "comment": "{{ref.getGlyph('a')}} zu c1 und {{ref.getGlyph('b')}} zu es1 hinzugefügt." - }, - { - "measure": "3", - "system": "Ges.", - "position": "4–6/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "3", - "system": "Klav. o.", - "position": "5/8", - "comment": "{{ref.getGlyph('a')}} zu e2 hinzugefügt." - }, - { - "measure": "4", - "system": "Ges.", - "position": "1/8", - "comment": "{{ref.getGlyph('a')}} hinzugefügt." - }, - { - "measure": "4
bis 6", - "system": "Ges.", - "position": "4/8
6/8", - "comment": "Bogen hinzugefügt." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "4/8", - "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "5/8", - "comment": "{{ref.getGlyph('b')}} zu b hinzugefügt." - }, - { - "measure": "4", - "system": "Klav. u.", - "position": "5/8", - "comment": "{{ref.getGlyph('b')}} zu b hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "2–5/8", - "comment": "Crescendogabel (zusätzlich zu Gabel 2–4/8) hinzugefügt." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "3/8", - "comment": "{{ref.getGlyph('a')}} e rasiert." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "4/8", - "comment": "{{ref.getGlyph('a')}} zu a hinzugefügt." - }, - { - "measure": "5", - "system": "Klav. u.", - "position": "5/8", - "comment": "{{ref.getGlyph('a')}} zu e1 hinzugefügt." - }, - { - "measure": "5", - "system": "Ges.", - "position": "6/8", - "comment": "{{ref.getGlyph('a')}} hinzugefügt." - }, - { - "measure": "6", - "system": "Klav. o.", - "position": "1/4", - "comment": "Auf Rasur. Ante correcturam: e2/a2/cis2?" - }, - { - "measure": "6", - "system": "Klav. o.", - "position": "3/8", - "comment": "{{ref.getGlyph('a')}} zu f2 hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "4–6/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "6", - "system": "Ges.", - "position": "6/8", - "comment": "{{ref.getGlyph('a')}} hinzugefügt." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "1/8", - "comment": "{{ref.getGlyph('a')}} zu c2/e2/c3 hinzugefügt." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "1/8", - "comment": "{{ref.getGlyph('#')}} zu cis1 hinzugefügt." - }, - { - "measure": "7
bis 8", - "system": "Ges.", - "position": "4/8
2/8", - "comment": "Bogen hinzugefügt." - }, - { - "measure": "7", - "system": "Klav. u.", - "position": "4/8", - "comment": "{{ref.getGlyph('#')}} zu cis3 hinzugefügt." - }, - { - "measure": "7
bis 8", - "system": "Ges.", - "position": "6/8
2/8", - "comment": "Decrescendogabel hinzugefügt." - }, - { - "measure": "7", - "system": "Klav. o.", - "position": "6/8", - "comment": "{{ref.getGlyph('a')}} zu c3 und {{ref.getGlyph('b')}} zu es3 hinzugefügt." - }, - { - "measure": "9", - "system": "Ges.", - "position": "4/8", - "comment": "ruhig hinzugefügt." - }, - { - "measure": "9
bis 10", - "system": "Ges.", - "position": "4/8
6/8", - "comment": "Bogen hinzugefügt." - }, - { - "measure": "10", - "system": "Klav. u.", - "position": "2/8", - "comment": "{{ref.getGlyph('b')}} zu es hinzugefügt." - }, - { - "measure": "10", - "system": "Ges.", - "position": "5–6/8", - "comment": "Achtelfähnchen überschrieben zu Balken." - }, - { - "measure": "11", - "system": "", - "position": "2/8", - "comment": "rit. hinzugefügt." - }, - { - "measure": "11", - "system": "Ges.", - "position": "2–4/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "11", - "system": "Ges.", - "position": "2–6/8", - "comment": "Bogen hinzugefügt." - }, - { - "measure": "11", - "system": "Klav. u.", - "position": "4/8", - "comment": "{{ref.getGlyph('b')}} zu es1 hinzugefügt." - }, - { - "measure": "11", - "system": "Klav. u.", - "position": "6/8", - "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt." - }, - { - "measure": "12", - "system": "Ges.", - "position": "2/8", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "12", - "system": "Ges.", - "position": "2–4/8", - "comment": "Crescendogabel hinzugefügt." - }, - { - "measure": "12", - "system": "Ges.", - "position": "5.–6. Note", - "comment": "Derescendogabel hinzugefügt." - }, - { - "measure": "13", - "system": "Ges.", - "position": "1. Note", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt." - }, - { - "measure": "13", - "system": "Ges.", - "position": "1.–3. Note", - "comment": "Bogen und Decrescendogabel hinzugefügt." - } - ] - } - ] - } - ] + ], + "corrections": [ + { + "id": "source_Fa_corr1", + "label": "Korrekturen 1 in Fa (mit schwarzer Tinte, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Ganz wenig bewegt ([Achtelnote]) hinzugefügt." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "1", + "system": "Klav.", + "position": "2/8–2/4", + "comment": "Ped. und [Pedal-Aufhebung] hinzugefügt." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Auf Rasur. Ante correcturam vermutlich: Achtelpause, Achtelnote d1 (wie Textfassung 2). Text: Dies neu zu 2/4 notiert (Hs. Webern)." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–3/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten fis1–f1 (siehe Textfassung 2)." + }, + { + "measure": "2", + "system": "Klav.", + "position": "1. bis letzte Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1/4", + "comment": "Rasur. Ante correcturam: vermutlich Viertelnote b/e1 als Unterstimmenschicht in Klav. o. (siehe Textfassung 2)." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "Taktanfang bis 6/8", + "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "Fortsetzung des Legatobogens (wie Textfassung 2) rasiert." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Klav.", + "position": "6/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "3
bis 4", + "system": "Klav.", + "position": "6/8
2/8", + "comment": "Crescendo-/Decrescendogabel hinzugefügt." + }, + { + "measure": "3
bis 4", + "system": "Klav. u.", + "position": "6/8
6/8", + "comment": "Legatobogen rasiert. Bogen T. 4 4–6/8 auf Rasur." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2)." + }, + { + "measure": "4", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "1. Note", + "comment": "zögernd hinzugefügt." + }, + { + "measure": "5", + "system": "", + "position": "4/8", + "comment": "Tempo über Ges. und Klav. o. hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten es2–cis2 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('[ppp]')}} und {{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1/8–5/16", + "comment": "Ped. und [Pedal-Aufhebung] hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten gis1–h1 (siehe Textfassung 2)." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3/16–12/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2. Text: Ein zu 3/16 und (leicht-be-schwing-)tes zu 12/16 neu notiert." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "3/16
1/8", + "comment": "rit. - - - hinzugefügt über Ges. und Klav. o." + }, + { + "measure": "8", + "system": "", + "position": "2/8", + "comment": "etwas langsamer | als tempo I. hinzugefügt über Klav. o." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten e1–es1 (siehe Textfassung 2)." + }, + { + "measure": "8", + "system": "Klav.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "8
bis 10", + "system": "Klav.", + "position": "4/8
1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "8", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen bei 5/8 überschrieben mit Balken zu 6/8.
Silbenbogen hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–5. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten g1–fis1 (siehe Textfassung 2). Silbenbogen hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "(1/4)", + "comment": "Auf Rasur. Ante correcturam: vermutlich Achtelpause, Achtelnote {{ref.getGlyph('[a]')}}f1 (siehe Textfassung 2). {{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "10
bis 12", + "system": "", + "position": "(2/8)
1/4", + "comment": "rit. - - - über ges. und Klav. o. hinzugefügt." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "2. Note
1/4", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 2." + }, + { + "measure": "10
bis 11", + "system": "Klav.", + "position": "2. Note
2/4", + "comment": "Ped. und [Pedal-Aufhebung] hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "4/8", + "comment": "Text: auf Rasur. Ante correcturam: vermutlich [rühr(-)]te (siehe Textfassung 2)." + } + ] + } + ] + }, + { + "id": "source_Fa_corr2", + "label": "Korrekturen 2 in Fa (Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Dies ist ein Lied“ M 133: Textfassung 3." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "etwas zögernd hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2/4", + "comment": "Geändert zu Triole aus Viertelnote d1 und Achtelpause mit Bogen (siehe Textfassung 4) mit grünem Buntstift.
Siehe TkA zu Textfassung 4." + }, + { + "measure": "2", + "system": "", + "position": "Taktanfang", + "comment": "Tempo mit rotem Buntstift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Tenutostrich zu 5. Note, Staccatopunkt zu 6. Note, Bogen 5.–6. Note mit rotem Buntstift." + }, + { + "measure": "7", + "system": "", + "position": "", + "comment": "4/4-Taktvorzeichnung am Taktanfang hinzugefügt bei Klav. o. mit Bleistift und zwischen den Klav.-Systemen mit grünem Buntstift. Am Taktende mit grünem Buntstift und Bleistift Hinzufügung (4/4):
##Abbildung##
Siehe Textfassung 4." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "(1/8)", + "comment": "Zuerst: Sechzehntelpause hinzugefügt mit Bleistift.
Dann: Sechzehntelpause gestrichen und Achtelpause mit Fermate hinzugefügt mit Bleistift." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1–2/16", + "comment": "Sechzehntelpause bei 1/16 gestrichen, Ligaturbögen zu 2/16 von T. 7 und Sechzehntelpause mit Fermate hinzugefügt mit Bleistift. Siehe Textfassung 4." + }, + { + "measure": "8", + "system": "Ges., Klav. o.", + "position": "nach (1/8)", + "comment": "Zäsurzeichen gestrichen mit Bleistift." + }, + { + "measure": "9
bis 10", + "system": "Klav. u.", + "position": "3/4
1/8", + "comment": "Ligaturbögen in T. 9 3/4 gestrichen sowie Achtelpause und Triolenzeichen hinzugefügt mit Bleistift; Achtelnoten in T. 10 1/8 gestrichen mit Bleistift. Siehe Textfassung 4." + }, + { + "measure": "10
bis 11", + "system": "Klav. u.", + "position": "3/4
1/4", + "comment": "Unterstimmenschicht: Ligatur zwei Viertelnoten Fis1 gestrichen mit grünem Buntstift. Siehe Textfassung 4." + } + ] + } + ] + }, + { + "id": "source_Fb_corr1", + "label": "Korrekturen 1 in Fb (mit schwarzer Tinte ggf. auf Rasur, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2. Abweichungen der Grundschicht von Fb zu dieser Textfassung sind mit dem Vermerk „sic“ gekennzeichnet." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Klav. o.", + "position": "2–8/16", + "comment": "sic: ein Bogen." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3. Note", + "comment": "Text sic: Großschreibung Nur (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "2/8–8/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich drei Achtelnoten fis1–dis2–ais1 (siehe Textfassung 1)." + }, + { + "measure": "4", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text sic: Großschreibung Was (siehe Textfassung 1)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "4/16", + "comment": "sic: {{ref.getGlyph('[a]')}}c1." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich zwei Achtelnoten d1–cis1 (siehe Textfassung 1)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Text sic: Großschreibung Nacht." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Text sic: Ein (siehe Textfassung 1)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich dis1 (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1/4", + "comment": "Text sic: Großschreibung Mai. Komma fehlt (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text sic: Großschreibung Nun (siehe Textfassung 1)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "Text sic: Großschreibung Um (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1/8", + "comment": "Text sic: Großschreibung Aug." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "sic: Bogen. Siehe Korrekturen 2 in Fb." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3/8", + "comment": "Text sic: Großschreibung Haar." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "Text sic: Großschreibung In (siehe Textfassung 1)." + } + ] + } + ] + }, + { + "id": "source_Fb_corr2", + "label": "Korrekturen 2 in Fb (Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Im Windesweben“ M 134: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Sehr bewegt hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "2–4/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav.", + "position": "4–5/16", + "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "7–10/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "1", + "system": "Klav.", + "position": "8–9/16", + "comment": "Vertikaler Gliederungstrich hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[ppp]')}} mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "1
bis 3", + "system": "Ges.", + "position": "6/8
5/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2–4/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "2", + "system": "Ges.", + "position": "3–4/8", + "comment": "Wellenline über den Noten zunächst hinzugefügt, dann gestrichen mit rotem Buntstift." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "5–7/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "2", + "system": "Klav.", + "position": "10.–15. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "3
bis 5", + "system": "Klav. o.", + "position": "1/8
3. Note", + "comment": "Bogen überschrieben zu Verlängerung des Bogens bis T. 2 letzte Note zu T. 3 1/8 sowie zu Bogen in T. 3 2.–6. Note, T. 3 7. Note bis T. 4 5. Note und T. 4 6. Note bis T. 5 3. Note mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2.–5. Note", + "comment": "{{ref.getGlyph('[ppp]')}}, Crescendogabel bis 3. Note und Decrescendogabel ab 4. Note hinzugefügt mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3–5/8", + "comment": "Decrescendogabel gestrichen mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "7. Note bis Taktende", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "", + "position": "Taktanfang", + "comment": "nicht zurückhalten hinzugefügt mit Bleistift." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "5.–8. Note", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "1.–2. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (überschreibt Crescendogabel 1.–3. Note)." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "3. Note", + "comment": "espr. hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "4.–6. Note", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift." + }, + { + "measure": "4
bis 5", + "system": "Ges.", + "position": "letzte Note
4. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1–2/8", + "comment": "Vermutlich zunächst Crescendogabel hinzugefügt mit schwarzer Tinte, dann Gabel gestrichen mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "2/16, 4/16", + "comment": "Staccatopunkte hinzugefügt mit grünem Buntstift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Vermutlich zunächst Decrescendogabel hinzugefügt mit schwarzer Tinte, dann Wellenline auf Gabel hinzugefügt (als Streichung?) mit rotem Buntstift." + }, + { + "measure": "5
bis 6", + "system": "", + "position": "5/16
Taktende", + "comment": "rit[.] - - - zunächst hinzugefügt über Ges. mit Bleistift und rotem Buntstift sowie über Klav. o. mit schwarzer Tinte, dann über Klav. o. bis vor T. 6 5/8 gestrichen mit schwarzer Tinte. Siehe Korrektur in T. 6 5/8 bis Taktende." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "5/16", + "comment": "Sechzehntelnote b1 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "5–8/16", + "comment": "{{ref.getGlyph('[p]')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3. Note", + "comment": "Tenutostrich hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3. Note–4. Pause", + "comment": "Augmentationspunkt zu gis hinzugefügt und Zweiunddreißigstelpause gestrichen mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "8. Note", + "comment": "{{ref.getGlyph('[b]')}} hinzugefügt mit schwarzer Tinte. Siehe Korrektur zu 5/16." + }, + { + "measure": "5", + "system": "Klav.", + "position": "(3/4)", + "comment": "{{ref.getGlyph('[pp]')}}, Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1–2/8", + "comment": "Staccatopunkte hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1–4/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "6
bis 7", + "system": "Klav. o.", + "position": "4/16
6/8", + "comment": "Bogen in T. 5 gestrichen, in T. 6 überschrieben mit Bogen zu 2–4/8 und Tenutostriche zu 5–6/8 (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Triole aus Achtelnote gis1 (mit Tenutostrich), Achtelpause, Achtelnote g1 (siehe Textfassung 3) teilweise auf Rasur. Ante correcturam: vermutlich zunächst zwei Achtelnoten gis1–g1 (siehe Textfassung 1), dann Triole aus Viertelnote gis1 und Achtelnote g1 (siehe Textfassung 2)." + }, + { + "measure": "6", + "system": "", + "position": "3/8
bis Taktende", + "comment": "rit[.] [eingerahmt] und Wellenlinie hinzugefügt über Ges. mit rotem Buntstift (überschreibt Korrektur in T. 5 5/8 bis Taktende). rit. in T. 6 5/8 aus Korrektur in T. 5 5/8 bis Taktende eingerahmt mit rotem Bunstift." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "4/8 bis letzte Note", + "comment": "Crescendogabel bis vorletzte Note, Decrescendogabel bis letzte Note überschreibt Crescendogabel bis vorletzte Note mit grünem Buntstift (siehe Textfassung 3 3/8 bis letzte Note)." + }, + { + "measure": "6
bis 7", + "system": "Ges.", + "position": "4. Note
1/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "6", + "system": "", + "position": "5/8 bis Taktende", + "comment": "rit. - - - (siehe Textfassung 3) hinzugefügt über Ges. und Klav. o. mit schwarzer Tinte (überschreibt dort Geltungsstrichelung von Korrektur in T. 5 5/16 bis T. 6 Taktende). Siehe Korrektur in T. 6 3/8 bis Taktende." + }, + { + "measure": "7
bis 8", + "system": "", + "position": "Taktanfang
Taktanfang", + "comment": "accell. - - - tempo I. hinzugefügt über Ges. sowie in T. 6 1–2/8 - - - accell. hinzugefügt überKlav. o. mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "2–6/8", + "comment": "{{ref.getGlyph('[pp]')}} zu 2/8, Crescendogabel 2–4/8, Decrescendogabel 4–6/8 hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "4/16", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7
bis 8", + "system": "Klav. u.", + "position": "4/16
4/16", + "comment": "Bogen geändert zu zwei Bögen in T. 7 4–12/16 und T. 8 1–4/16 (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "5–8/16", + "comment": "Decrescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "4/8
1/4", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "9–12/16", + "comment": "Crescendogabel hinzugefügt mit grünem Buntstift (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "1/4", + "comment": "{{ref.getGlyph('[p]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "{{ref.getGlyph('[p]')}} (siehe Textfassung 3), Crescendogabel 1.–3. Note, Decrescendogabel 3.–5. Note hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/16", + "comment": "Sechzehntelpause (siehe Textfassung 3) auf Rasur. Ante correcturam: Achtelnote a." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "2/16", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2.–5. Note", + "comment": "Zunächst {{ref.getGlyph('[mp]')}}, Crescendogabel 2.–3. Note, Decrescendogabel 4.–5. Note hinzugefügt, dann {{ref.getGlyph('[mp]')}} geändert zu {{ref.getGlyph('[p]')}} mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Klav.", + "position": "11/16", + "comment": "{{ref.getGlyph('[p]')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "6. Note", + "comment": "Triolische Achtelpause (wie Textfassung 3) auf Rasur. Ante correcturam vermutlich Achtelnote f1." + }, + { + "measure": "8", + "system": "Ges.", + "position": "7.–8. Note", + "comment": "{{ref.getGlyph('[mp]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "8
bis 9", + "system": "Ges.", + "position": "8. Note
3/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1–3/8", + "comment": "{{ref.getGlyph('[p]')}}, Crescenodgabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–2. Note", + "comment": "{{ref.getGlyph('[mf]')}}, Decrescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "1.–5. Note", + "comment": "Bogen gestrichen mit schwarzer Tinte." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "1.–4. Note", + "comment": "{{ref.getGlyph('[p]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "4.–7. Note", + "comment": "{{ref.getGlyph('[p]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[f]')}} hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4.–8. Note", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav.", + "position": "13/16", + "comment": "Sechzehntelnote cis2/cis3 überschrieben zu Sechzehntelpause mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "9", + "system": "Klav.", + "position": "14/16", + "comment": "{{ref.getGlyph('[f]')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "gis1 (siehe Textfassung 3) auf Rasur. Ante correcturam: vermutlich as1." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "letzte Note
6/8", + "comment": "Bogen hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "{{ref.getGlyph('[ff]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "3/16", + "comment": "{{ref.getGlyph('[f]')}} hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5/16–20/32", + "comment": "{{ref.getGlyph('[ff]')}}, Crescendogabel hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "5/16", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "7/16", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Tenutostriche hinzugefügt mit schwarzer Tinte (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "17–20/32", + "comment": "Bogen überschrieben mit Bogen zu 5/16–20/32 (siehe Textfassung 3)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "19/32", + "comment": "{{ref.getGlyph('[b]')}} hinzugefügt mit Bleistift." + } + ] + } + ] + }, + { + "id": "source_Fc_corr", + "label": "Korrekturen in Fc (mit Bleistift, Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} zu c1 und {{ref.getGlyph('[b]')}} zu es1 hinzugefügt." + }, + { + "measure": "2
bis 4", + "system": "Ges.", + "position": "1/4
2/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} zu c1 und {{ref.getGlyph('[b]')}} zu es1 hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "6/8", + "comment": "{{ref.getGlyph('[#]')}} zu cis1 und {{ref.getGlyph('[a]')}} zu e1 hinzugefügt." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} zu c1 und {{ref.getGlyph('[b]')}} zu es1 hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4–6/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "5/8", + "comment": "{{ref.getGlyph('[a]')}} zu e2 hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "4
bis 6", + "system": "Ges.", + "position": "4/8
6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} zu h hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('[b]')}} zu b hinzugefügt." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('[b]')}} zu b hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2–5/8", + "comment": "Crescendogabel (zusätzlich zu Gabel 2–4/8) hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} e rasiert." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} zu a hinzugefügt." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "5/8", + "comment": "{{ref.getGlyph('[a]')}} zu e1 hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "1/4", + "comment": "Auf Rasur. Ante correcturam: e2/a2/cis2?" + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} zu f2 hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "4–6/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1/8", + "comment": "{{ref.getGlyph('[a]')}} zu c2/e2/c3 hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "1/8", + "comment": "{{ref.getGlyph('[#]')}} zu cis1 hinzugefügt." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "4/8
2/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('[#]')}} zu cis3 hinzugefügt." + }, + { + "measure": "7
bis 8", + "system": "Ges.", + "position": "6/8
2/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} zu c3 und {{ref.getGlyph('[b]')}} zu es3 hinzugefügt." + }, + { + "measure": "9", + "system": "Ges.", + "position": "4/8", + "comment": "ruhig hinzugefügt." + }, + { + "measure": "9
bis 10", + "system": "Ges.", + "position": "4/8
6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "2/8", + "comment": "{{ref.getGlyph('[b]')}} zu es hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Achtelfähnchen überschrieben zu Balken." + }, + { + "measure": "11", + "system": "", + "position": "2/8", + "comment": "rit. hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2–6/8", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "4/8", + "comment": "{{ref.getGlyph('[b]')}} zu es1 hinzugefügt." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} zu h hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "2–4/8", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Derescendogabel hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen und Decrescendogabel hinzugefügt." + } + ] + } + ] + } + ] } }, { @@ -4153,7 +4155,7 @@ } ] } - ], + ], "corrections": [ { "id": "source_Gb_corr", @@ -4247,7 +4249,7 @@ "measure": "13", "system": "Ges.", "position": "1. Note", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." }, { "measure": "13", @@ -4303,13 +4305,13 @@ "measure": "1", "system": "Klav. u.", "position": "2. Note", - "comment": "{{ref.getGlyph('a')}} zu f hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} zu f hinzugefügt mit Bleistift." }, { "measure": "1", "system": "Ges.", "position": "2/4", - "comment": "{{ref.getGlyph('#')}} hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[#]')}} hinzugefügt mit Bleistift." }, { "measure": "1", @@ -4375,13 +4377,13 @@ "measure": "4", "system": "Ges.", "position": "2/8", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit roter Tinte." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." }, { "measure": "4", "system": "Klav. u.", "position": "3/16", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." }, { "measure": "4
bis 5", @@ -4393,13 +4395,13 @@ "measure": "4", "system": "Klav. u.", "position": "8/16", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." }, { "measure": "5", "system": "Ges.", "position": "1. Note", - "comment": "{{ref.getGlyph('pp')}} korrigiert zu {{ref.getGlyph('ppp')}} mit roter Tinte." + "comment": "{{ref.getGlyph('[pp]')}} korrigiert zu {{ref.getGlyph('[ppp]')}} mit roter Tinte." }, { "measure": "5", @@ -4411,7 +4413,7 @@ "measure": "5", "system": "Klav. o.", "position": "19/32", - "comment": "{{ref.getGlyph('a')}} zu d2 mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} zu d2 mit Bleistift." }, { "measure": "5", @@ -4453,13 +4455,13 @@ "measure": "7", "system": "Ges.", "position": "1. Note", - "comment": "{{ref.getGlyph('pp')}} hinzugefügt mit roter Tinte." + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit roter Tinte." }, { "measure": "7", "system": "Klav. o.", "position": "2. Note", - "comment": "Unterstimmenschicht: {{ref.getGlyph('a')}} zu g1 hinzugefügt mit Bleistift." + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit Bleistift." }, { "measure": "7", @@ -4495,7 +4497,7 @@ "measure": "8", "system": "Klav. u.", "position": "4. Note", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." }, { "measure": "8", @@ -4513,7 +4515,7 @@ "measure": "8", "system": "Klav. o.", "position": "6. Note", - "comment": "Tenutostrich hinzugefügt mit roter Tinte.
{{ref.getGlyph('a')}} zu f2 nachgezogen mit roter Tinte." + "comment": "Tenutostrich hinzugefügt mit roter Tinte.
{{ref.getGlyph('[a]')}} zu f2 nachgezogen mit roter Tinte." }, { "measure": "8", @@ -4525,7 +4527,7 @@ "measure": "9", "system": "Ges.", "position": "2/8", - "comment": "{{ref.getGlyph('ppp')}} hinzugefügt mit roter Tinte." + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt mit roter Tinte." }, { "measure": "9", @@ -4543,7 +4545,7 @@ "measure": "9", "system": "Klav. u.", "position": "2/4", - "comment": "{{ref.getGlyph('a')}} zu h hinzugefügt mit Bleistift." + "comment": "{{ref.getGlyph('[a]')}} zu h hinzugefügt mit Bleistift." }, { "measure": "9", @@ -4555,7 +4557,7 @@ "measure": "10", "system": "Ges.", "position": "2/8", - "comment": "{{ref.getGlyph('a')}} hinzugefügt mit Bleistift, nachgezogen mit schwarzer Tinte." + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift, nachgezogen mit schwarzer Tinte." } ] } @@ -4649,7 +4651,9 @@ { "id": "source_H_corr1", "label": "Korrekturen 1 in H (mit schwarzer Tinte ggf. auf Rasur)", - "description": ["Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2."], + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2." + ], "comments": [ { "blockHeader": "", @@ -4727,7 +4731,9 @@ { "id": "source_H_corr2", "label": "Korrekturen 2 in H (mit Bleistift und Buntstift)", - "description": ["Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2."], + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „An Bachesranft“ M 135: Textfassung 2." + ], "comments": [ { "blockHeader": "", @@ -4790,7 +4796,7 @@ "measure": "9", "system": "Ges.", "position": "2/8", - "comment": "{{ref.getGlyph('ppp')}} geändert zu {{ref.getGlyph('pp')}} mit rotem Buntstift." + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}} mit rotem Buntstift." }, { "measure": "9
bis 10", From 2d08ad1286f55726d2972facd58933958f2e20dd Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 9 Oct 2024 16:00:33 +0200 Subject: [PATCH 123/213] fix(edition): add missing glyphs for note values --- .../edition-view/data/edition-glyphs.data.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/app/views/edition-view/data/edition-glyphs.data.ts b/src/app/views/edition-view/data/edition-glyphs.data.ts index 78a46370fe..f095226f89 100644 --- a/src/app/views/edition-view/data/edition-glyphs.data.ts +++ b/src/app/views/edition-view/data/edition-glyphs.data.ts @@ -83,6 +83,51 @@ export const EDITION_GLYPHS_DATA = { hex: '\uD834\uDD91\uD834\uDD91\uD834\uDD91', }, + /** + * The glyph of a musical eighth note symbol. + * Cf. https://graphemica.com/%F0%9D%85%A0 + */ + NOTE_EIGHTH: { + alt: '[Achtelnote]', + hex: '\uD834\uDD60', + }, + + /** + * The glyph of a musical half note symbol. + * Cf. https://graphemica.com/%F0%9D%85%9E + */ + NOTE_HALF: { + alt: '[Halbe Note]', + hex: '\uD834\uDD5E', + }, + + /** + * The glyph of a musical quarter note symbol. + * Cf. https://graphemica.com/%F0%9D%85%9F + */ + NOTE_QUARTER: { + alt: '[Viertelnote]', + hex: '\uD834\uDD5F', + }, + + /** + * The glyph of a musical sixteenth note symbol. + * Cf. https://graphemica.com/%F0%9D%85%A1 + */ + NOTE_SIXTEENTH: { + alt: '[Sechzehntelnote]', + hex: '\uD834\uDD61', + }, + + /** + * The glyph of a musical whole note symbol. + * Cf. https://graphemica.com/%F0%9D%85%9D + */ + NOTE_WHOLE: { + alt: '[Ganze Note]', + hex: '\uD834\uDD5D', + }, + /** * The glyph of a musical mezzo forte symbol. * Cf. https://graphemica.com/%F0%9D%86%90 From eb26661b8b5c1838a60d24b44d4a729440e2f6cd Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 9 Oct 2024 16:01:35 +0200 Subject: [PATCH 124/213] fix(assets): use glyphs for note values --- .../edition/series/1/section/5/op3/source-description.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 8709abbbde..94d8afaf57 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -663,7 +663,7 @@ "measure": "1", "system": "", "position": "Taktanfang", - "comment": "Ganz wenig bewegt ([Achtelnote]) auf Rasur." + "comment": "Ganz wenig bewegt ({{ref.getGlyph('[Achtelnote]')}}) auf Rasur." }, { "measure": "1", @@ -2733,7 +2733,7 @@ "measure": "1", "system": "", "position": "Taktanfang", - "comment": "Ganz wenig bewegt ([Achtelnote]) hinzugefügt." + "comment": "Ganz wenig bewegt ({{ref.getGlyph('[Achtelnote]')}}) hinzugefügt." }, { "measure": "1", From 49bdbade5b9898ecef9ce5c1d2efad38e2c1ec08 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 9 Oct 2024 16:52:07 +0200 Subject: [PATCH 125/213] feat(assets): create section wide intro file --- .../edition/series/1/section/5/intro.json | 990 ++++++++++++++++++ .../series/1/section/5/m143/intro.json | 5 +- .../series/1/section/5/m144/intro.json | 5 +- .../series/1/section/5/m145/intro.json | 5 +- .../series/1/section/5/m146/intro.json | 5 +- .../series/1/section/5/op12/intro.json | 978 +---------------- .../series/1/section/5/op23/intro.json | 3 +- .../series/1/section/5/op25/intro.json | 3 +- .../edition/series/1/section/5/op3/intro.json | 5 +- .../edition/series/1/section/5/op4/intro.json | 5 +- 10 files changed, 1005 insertions(+), 999 deletions(-) create mode 100644 src/assets/data/edition/series/1/section/5/intro.json diff --git a/src/assets/data/edition/series/1/section/5/intro.json b/src/assets/data/edition/series/1/section/5/intro.json new file mode 100644 index 0000000000..7f11328402 --- /dev/null +++ b/src/assets/data/edition/series/1/section/5/intro.json @@ -0,0 +1,990 @@ +{ + "intro": [ + { + "id": "de-awg-I-5", + "content": [ + { + "blockId": "preamble", + "blockHeader": "", + "blockContent": [ + "

Die in Serie I Abteilung 5 versammelten Klavierlieder beinhalten die erkennbaren Textfassungen der zu Lebzeiten Anton Weberns mit Opuszahlen versehenen und gedruckten oder zum Druck vorgesehenen Klavierlieder (op. 3, 4, 12, 23 und 25) sowie verschiedene dem Entstehungsprozess einiger dieser Editionskomplexe zuzuordnende Einzellieder (George-Lieder M 143–146). Weitere zu Lebzeiten Weberns nicht publizierte Lied-Komplexe, auch wenn sie mit später obsolet gewordenen Opuszahlen versehen wurden (z. B. Dehmel-Lieder M 83, 119, 130–131), werden in Serie II Abteilung 5 ediert.

" + ], + "blockNotes": [] + }, + { + "blockId": "op3+4", + "blockHeader": "George-Lieder", + "blockContent": [ + "

Die insgesamt 14 Klavierlieder Weberns auf Texte von Stefan George (M 133–146) wurden in ihren frühesten Textfassungen vermutlich zwischen Dezember 1907 und 1909 komponiert und gehören zusammen mit den Fünf Sätzen für Streichquartett M 147–151 sowie den Sechs Stücken für großes Orchester M 152–157 zu seinen ersten sogenannten atonalen Kompositionen. Die Zusammenstellung der beiden 1919 bzw. 1923 gedruckten Sammlungen Fünf Lieder aus Der siebente Ring von Stefan George op. 3 und Fünf Lieder nach Gedichten von Stefan George op. 4 stand dabei nicht von Anfang an fest, sondern war einem langwierigen und in seinen verschiedenen Stadien nicht mehr eindeutig rekonstruierbaren Prozess unterworfen, während dessen die meisten Lieder in verschiedenen Textfassungen vorlagen.

", + "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", + "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", + "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", + + "
„Dies ist ein Lied“ M 133(Textfassung 1 in A, Textfassung 2 in B)
„Erwachen aus dem tiefsten Traumesschoße“ M 143(einzige Textfassung in A)
„Im Windesweben“ M 134(Textfassung 1 in A)
Kunfttag I M 144(einzige Textfassung in A)
", + + "

In einem Brief an Schönberg vom Dezember 1908 schrieb Webern aus Berlin – im Zusammenhang einer Bitte um ein Empfehlungsschreiben an Richard Strauss und im Hinblick auf den wohl von Schönberg vorgeschlagenen Kontakt zu dem Berliner Verleger Max Marschalk (Dreililien-Verlag) –, dass er nicht ausreichend Material für ein Liederheft habe:

", + + "

Ich weiß nicht, ich habe so eine blöde Scheu. Das ist es auch[,] warum ich noch nicht bei Marschalk war.

", + "

Wenn ich ein Liederheft fertig hätte. Aber so kann er ja nichts nehmen, momentan.

", + "

Einerseits möchte ich, andrerseits –8

", + + "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", + "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", + + "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", + + "

Der Aufenthalt in Kärnten wurde darüber hinaus vermutlich ab Mitte Juli durch ein kurzfristiges Theaterengagement Weberns in Innsbruck unterbrochen. Ab Ende Juli meldete sich Webern wieder vom Preglhof bei Schönberg, und am 20. August hieß es in einem der Briefe:

", + + "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", + + "

Um welche George-Lieder es sich bei den in diesen Briefen an Schönberg erwähnten im Einzelnen handelte, ist nicht klar. Das einzige genauer datierbare George-Lied Weberns bleibt somit Trauer I M 145, das noch vor dem Aufenthalt in Kärnten kurz vor dem 25. Mai 1909 geschrieben wurde. Das verwendete Notenpapier sowie ein im Vergleich zu den oben genannten mutmaßlich 1908 komponierten Liedern deutlicher Wechsel des Schriftduktus legen nahe, dass im Laufe des Sommers oder Herbstes 1909 einschließlich Trauer I M 145 auch die ersten bzw. einzigen Textfassungen folgender Lieder entstanden sind:

", + + "
„An Bachesranft“ M 135(Textfassung 1 in E)
„Das lockere Saatgefilde“ M 146(einzige Textfassung in A)
Eingang M 138(Textfassung 1 in A)
„Im Morgentaun“ M 136(Textfassung 1 in D [Fragment], E und G)
„Ja Heil und Dank dir“ M 140(Textfassung 1 in B)
„Kahl reckt der Baum“ M 137(Textfassung 1 in E)
„Noch zwingt mich Treue“ M 139(Textfassung 1 in B)
„So ich traurig bin“ M 141(Textfassung 1 in B)
Trauer I M 145(einzige Textfassung in A – vor dem 25. Mai 1909)
", + + "

Auf der Grundlage der hier vorgeschlagenen schriftbildlichen Einschätzung lässt sich auch eine weitere Niederschrift von „Dies ist ein Lied“ M 133 (Textfassung 2: Grundschicht in C) diesem zeitlichen Umfeld zuordnen. Ob die nicht überlieferte autographe Niederschrift von „Ihr tratet zu dem Herde“ M 142 ([C]) auch 1909 oder bereits 1908 entstanden ist, lässt sich auf dieser Basis freilich nicht entscheiden.

", + "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", + "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", + + "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", + + "

Von nahezu allen diesen Liedern sind Abschriften fremder Hand in F (in Quellenübersicht zu op. 3) und D (in Quellenübersicht zu op. 4) überliefert, die sehr wahrscheinlich für diese Aufführung angefertigt worden waren: Nummerierungen der Lieder mit Bleistift von „I“ bis „V“ in den beiden genannten Quellen entsprechen der Reihenfolge der Texte im Programmheft. (Die nicht überlieferte Abschrift von „Ihr tratet zu dem Herde“ M 142 [E] dürfte vermutlich mit der Ziffer „VI“ bezeichnet gewesen sein.) Die Kopisten-Handschrift wirkt in einigen musikalisch-orthographischen Details sehr unbeholfen und weist in der Textunterlegung Ähnlichkeit mit der Schrift von Wilhelmine (Minna) Mörtl, Weberns späterer Ehefrau, auf. Die Abschriften zeigen in der Regel zahlreiche Eintragungen Weberns, die zum Teil (vor allem bei „Dies ist ein Lied“ M 133) Überarbeitungen zu späteren Textfassungen betreffen. Einige der Eintragungen mit rotem Buntstift dürften aber von der Vorbereitung zur Uraufführung im Februar 1910 stammen, wobei die genannten Abschriften vermutlich von der Sängerin benutzt worden waren. Mit Blick auf die mutmaßlich bei der Aufführung zugrundeliegenden Textfassungen hätte Webern die Klavierbegleitung wahrscheinlich aus den folgenden Quellen im Zustand der entsprechenden Korrekturschicht spielen können:

", + + "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", + + "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", + + "

Kürzlich beschäftigte uns der Fall Schönberg, nun gibt es auch den Fall Anton v. Webern, wenn auch im Grunde beide eins sind. Denn Herr v. Webern ist Schönbergs Schüler, dazu einer, der nicht bloß auf die Worte des Meisters schwört, sondern diesen in manchem Betrachte übertrumpft. Dem ist gut so; die Spannung schwindet, eine fast gemütliche Gleichgiltigkeit stellt sich ein. Mit dem Lehrer konnte und mußte man sich noch auseinandersetzen, nicht mehr mit dem Jünger. […] Auch sechs Lieder nach Stephan [sic] George gehen, und nicht bloß in der Wahl des Dichters, auf Schönbergs Pfaden. Zu Akkorden aus der neuen Harmonielehre tritt eine in den entsprechenden Intervallen psalmodierende Singstimme. Auch der musikalisch geschulte, gut aufnahmsfähige Hörer macht eine psychische Erfahrung: er glaubt immer dasselbe zu hören. Hier schafft aber das Wort einigen Ausdruck, freilich durchgehends den seelischer Geknicktheit, seelischen Zerfalls. Wenn man guten Willens ist, wird man an den besten Stellen an Oktave Mirbeaus Maler gemahnt, der schließlich nur noch „Seelen“ malen wollte. . . .

", + "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", + + "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", + + "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[b]1. Eingang.(„VII. Ring“)
[b + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[b + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[b + r]6. „Kahl reckt der baum..“
[b]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[b + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[b]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7 [b] „Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", + + "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", + "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", + "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", + "

Im Herbst 1911 erhielt Webern ebenso wie Schönberg und Alban Berg die Einladung eine Notenbeilage zum von Wassily Kandinsky und Franz Marc herausgegebenen Almanach Der blaue Reiter beizusteuern. Hierfür wählte er „Ihr tratet zu dem Herde“ M 142. Aus einem Brief an Paul Königer geht hervor, dass Webern dieses Lied auch in die Auswahl der an Tischer & Jagenberg gesandten Lieder aufgenommen hatte:

", + + "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", + "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", + + "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", + "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", + + "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", + + "

Diesem Entschluss waren im Februar Besprechungen mit Schönberg vorangegangen, der die Durchsicht verschiedener Werke Weberns in seinem Tagebuch erwähnt, darunter auch ausdrücklich Lieder:

", + + "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", + + "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", + "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", + + "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", + + "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", + "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", + "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", + "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", + + "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", + + "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", + "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", + + "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", + + "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", + "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", + + "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", + "

II   „Im Windesweben“ M 134 (Textfassung 3)

", + "

III  „An Bachesranft“ M 135 (Textfassung 3)

", + "

IV  „Im Morgentaun“ M 136 (Textfassung 3)

", + "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", + + "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", + "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", + + "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", + "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", + "

III  „Ja Heil und Dank dir“ M 140 (Textfassung 2)

", + "

IV  „So ich traurig bin“ M 141 (Textfassung 2)

", + "

V   „Ihr tratet zu dem Herde“ M 142 (Textfassung 3)

", + + "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", + "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", + + "

–  20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", + "

–  17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", + "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", + "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", + "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", + "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", + "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", + "

–  17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", + "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", + "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", + "

–  5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", + + "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" + ], + "blockNotes": [] + }, + { + "blockId": "op12", + "blockHeader": "Vier Lieder op. 12", + "blockContent": [ + "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", + "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", + "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", + "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", + "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", + "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", + "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", + "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", + "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", + + "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", + + "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", + "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", + "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", + "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", + "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", + "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", + "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", + + "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", + + "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", + + "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", + + "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", + + "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", + "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", + "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", + "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", + "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", + "

–  9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", + "

–  21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", + "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", + "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", + + "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" + ], + "blockNotes": [] + }, + { + "blockId": "op23", + "blockHeader": "Drei Gesänge aus Viae inviae von Hildegard Jone op. 23", + "blockContent": [ + "

Die Anfang 1933 begonnenen und im März 1934 fertiggestellten Drei Gesänge aus Viae inviae von Hildegard Jone op. 23 sind Weberns erste Klavierlieder, die auf der Grundlage der „Komposition mit zwölf Tönen“ – wie Webern in der Regel die Zwölftontechnik bezeichnet – geschrieben wurden, und seine erste vollendete Vokalkomposition seit den Ende 1925 bis Sommer 1926 entstandenen Zwei Liedern für gemischten Chor mit Begleitung von Celesta, Gitarre, Geige, Klarinette und Bassklarinette op. 19. Der von Webern im Titel verwendete Terminus „Gesang“ deutet auf die im Vergleich zu den meisten anderen seiner Vokalkompositionen ausgedehnte Länge der einzelnen Stücke hin. Sie sind zugleich Weberns erste Komposition auf Texte von Hildegard Jone, deren Lyrik die Grundlage für alle weiteren fertiggestellten Vokalkompositionen Weberns bilden sollte.

", + "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", + + "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", + + "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", + "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", + "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", + + "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", + + "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", + "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", + + "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", + "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", + + "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", + + "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", + + "

Ebenfalls Anfang September 1933 nahm Webern zunächst die Skizzierung des ersten Satzes vom Konzert op. 24 im selben Skizzenbuch wieder auf, jedoch ohne diese Arbeit zu einem Abschluss zu bringen oder auch nur kontinuierlich weiterzuführen. Ende desselben Monats plante er, der Dichterin beide der bis zu diesem Zeitpunkt vorliegenden Gesänge aus op. 23 bei einem ihrer Aufenthalte in Wien vorzuführen:

", + + "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", + + "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", + + "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", + "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", + "

Hoffentlich kann er etwas dauern!137

", + + "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", + + "

Liebste Frau Jone,

", + "

die Aufregungen der letzten Tage sind ungeheuer u. werden es immer mehr. Es ist kaum möglich[,] einen Gedanken zu fassen […].

", + "

[…] Und vergangene Woche habe ich doch wieder jeden freien Augenblick benützt, um an den Gedichten [sic] „Das dunkle Herz“ weiterzuschreiben. Ich hatte wieder etwas freie Zeit. […]

", + "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", + + "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", + + "

Inzwischen ist das dritte Lied fertig geworden.

", + "

Da es die Worte von „Das dunkle Herz…“ bis „…ich und du und alle“ umfaßt, ist es recht lang geworden u. stellt der musikalischen Form nach eigentlich eine Art „Arie“ dar: bestehend aus einem langsamen Teil u. ab „ich bin nicht mein…“ einem schnelleren, der aber trotzdem die Tempovorschrift „Ganz ruhig“ trägt.

", + "

Er – dieser 2. Teil – ist fast im Flüsterton gehalten. Vielleicht können Sie doch aus dieser Beschreibung ungefähr entnehmen, wie ich im Besonderen den 2. Teil Ihrer Worte aufgefaßt habe: nach einem großen Aufschwung des ersten[,] ganz unvermittelt völlige Stille, Ruhe, Einfachheit.

", + "

Den Titel habe ich mir so gedacht:

", + "

Drei Gesänge aus Viae inviae.

", + "

Kann ich diesen Titel Ihrer Gedichte übernehmen?

", + "

Bald sende ich Ihnen das Manuscript.143

", + + "

An Alban Berg führte er in einem eine Woche später geschriebenen Brief die formale Disposition auch der anderen Gesänge näher aus:

", + + "

Ich habe gerade ein drittes Lied (nach Jone-Texten) fertig gestellt. Eigentlich ist es eine Arie, bestehend aus einem langsamen Teil u. einem schnelleren. Es wird das erste sein.

", + "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", + "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", + + "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", + "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", + "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", + + "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", + + "

Über die Drei Gesänge heißt es in einer weiteren Besprechung lediglich:

", + + "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", + + "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" + ], + "blockNotes": [] + }, + { + "blockId": "op25", + "blockHeader": "Drei Lieder nach Gedichten von Hildegard Jone op. 25", + "blockContent": [ + "

Die im Laufe des Jahres 1934 entstandenen Drei Lieder nach Gedichten von Hildegard Jone op. 25 knüpfen an die im Jahr zuvor in den Drei Gesängen aus Viae inviae von Hildegard Jone op. 23 begonnene kompositorische Auseinandersetzung Weberns mit der Lyrik Hildegard Jones an. Die politischen Konsequenzen der Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes in Wien und anderen größeren Städten Österreichs vom 12. bis zum 15. Februar 1934 veränderten Weberns berufliche Situation gegenüber den Vorjahren jedoch einschneidend. Das Verbot der Sozialdemokratischen Partei bedeutete den Verlust seiner Tätigkeit als Dirigent bei den Wiener Arbeiter-Symphonie-Konzerten und als künstlerischer Direktor des Singvereins der Sozialdemokratischen Kunststelle. In der Folge wurden auch seine Engagements beim Rundfunk immer weniger. In einem Brief an Arnold Schönberg, der 1933 in die Vereinigten Staaten emigriert war, beschreibt Webern dies selbst mit vergleichsweise drastischen Worten:

", + + "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", + + "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", + "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", + + "

–  5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", + "

–  8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", + "

–  16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", + + "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", + "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", + + "

Erzählte ich schon, dass mein erster Satz [lies: von op. 24] fertig ist? Momentan habe ich aus Gründen, die ich noch erzählen werde, eine andere Arbeit eingeschoben: die Komposition eines kurzen Gedichtes von Ihnen, liebste Freundin:

", + "

‚Wie bin ich froh! Noch einmal

", + "

wird mir Alles grün….‘161

", + + "

Die im Brief erwähnten „Gründe“ für die Unterbrechung der Arbeit an weiteren Sätzen des Konzertes op. 24 wegen eines Liedes bestanden sehr wahrscheinlich darin, eine Komposition rechtzeitig zum 60. Geburtstag von David Josef Bach am 13. August desselben Jahres fertigstellen zu wollen. Bach, ein Jugendfreund Schönbergs, war in den 1910er Jahren Initiator der Arbeiter-Symphonie-Konzerte in Wien sowie seit 1919 Leiter der Sozialdemokratischen Kunststelle gewesen. Seit 1922 hatte er Webern immer wieder als Dirigent der Konzerte sowie vor allem seit Ende 1923 als Leiter des Singvereins engagiert, was maßgeblich zu Weberns Reputation als Dirigent beigetragen hatte. Durch das Verbot der Sozialdemokratischen Partei nach den Februarereignissen 1934 war Bach selbst in eine prekäre Situation geraten, auf die Webern in Briefen u. a. an Schönberg aufmerksam machte – und dabei auch den bevorstehenden Geburtstag sowie seine geplante Lied-Widmung ansprach:

", + + "

Für Dr. Bachs 60. Geburtstag – 13. August d. J. – wird Folgendes vorbereitet: eine Adresse mit Unterschriften u. eine Geldsammlung.

", + "

Seine finanzielle Lage ist noch immer sehr drückend […].

", + "

Ich widme ihm ein Lied […].162

", + + "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", + "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", + + "

Liebe, sehr verehrte Freundin,

", + "

vielen, innigsten Dank für die schönen Lieder!

", + "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", + + "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", + "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", + "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", + "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" + ], + "blockNotes": [] + }, + { + "blockId": "about", + "blockHeader": "Zur Edition", + "blockContent": [ + "

Die in der vorliegenden Abteilung versammelten Klavierlieder erscheinen in unterschiedlichen Editionsformen, die sich an der Überlieferungssituation ihrer Textfassungen orientieren: Die gedruckten Sammlungen werden als Werkeditionen vorgelegt. Die lediglich in Tintenniederschriften überlieferten Textfassungen dieser oder – wie im Fall der George-Lieder – im Entstehungsprozess gleichen Editionskomplexen zugeordneter Lieder werden als Texteditionen präsentiert. Eine Ausnahme von dieser Regel stellen die Drei Lieder op. 25 dar, die zu Lebzeiten Weberns nicht im Druck vorlagen. Die autographe Niederschrift der vollständigen Sammlung von op. 25 bietet jedoch alle Merkmale einer für den Druck bestimmten Stichvorlage, so dass eine Werkedition auch hier naheliegt und in textkritischer Hinsicht unproblematisch ist. Überlieferte Bleistiftskizzen werden innerhalb der Online-Edition der AWG als Skizzeneditionen präsentiert.

", + "

Die George-Lieder Weberns werden in der vorliegenden Abteilung als ein zusammenhängender Editionskomplex behandelt. Dessen spätester Überlieferung – den beiden gedruckten Sammlungen von Opus 3 und Opus 4 – geht eine gemeinsame Entstehungsgeschichte voraus, die durch mehrere unterscheidbare Textfassungen sowie vier in die späteren Drucke nicht aufgenommene Lieder charakterisiert ist. Die in den Korrekturschichten der überlieferten Tintenniederschriften unterscheidbaren und vor den – als Werkeditionen vorgelegten – Drucken entstandenen Textfassungen werden mit Blick auf ihren Schreibstoff als Texteditionen präsentiert – darunter auch einige der zeitlich frühesten, mitunter skizzenhaft wirkenden Textfassungen. (Eine Skizzenedition würde in diesen Fällen im Vergleich zu den bei Webern in der Regel üblichen Bleistiftskizzen weniger Informationen zum Schreibprozess bereitstellen, da gegebenenfalls ante correcturam vorhandene Schichten durch spätere Rasuren selten sicher, meistens gar nicht zu entziffern sind.)

", + "

Da insbesondere für die verschiedenen von Webern zwischen 1909 und 1919 konzipierten Zusammenstellungen von George-Liedern nicht immer eindeutig rekonstruiert werden kann, welche Textfassungen welcher Lieder in welcher Anordnung vorgesehen waren, werden die in den Quellen gleichwohl erkennbaren Textfassungen in der Print-Edition der vorliegenden Abteilung in zeitlicher Folge der Textfassungen jedes Liedes, die Lieder ihrerseits in alphabetischer Reihenfolge der Titel präsentiert.

", + "

Die Rechtschreibung (insbesondere Groß-/Kleinschreibung) und mitunter spärliche Interpunktion des Gesangstexts zahlreicher Textfassungen der George-Lieder übernahm Webern in der Regel aus den Gedichtvorlagen. Diese Eigenarten wurden in den entsprechenden Texteditionen beibehalten. Ergänzungen oder Korrekturen der Gesangstexte orientieren sich ebenfalls an den George-Vorlagen und werden in den Textkritischen Anmerkungen aufgeführt. Abweichungen von den Gedichtvorlagen werden in den Textkritischen Anmerkungen durch einen Sic-Vermerk erläutert.

", + "

Bei den im Vergleich zu den George-Liedern zahlenmäßig wenigen frühen Textfassungen einzelner Lieder der Editionskomplexe Vier Lieder op. 12 und Drei Lieder op. 25 wurde hinsichtlich der Anordnung ihrer Texteditionen entsprechend verfahren. Auch wenn die Eigenarten der jeweiligen Textvorlagen dieser Texteditionen nicht so charakteristisch wie im Falle der George-Gedichte sind, gelten die gleichen Grundsätze beim editorischen Umgang mit dem Gesangstext.

" + ], + "blockNotes": [] + }, + { + "blockId": "acknowledgements", + "blockHeader": "Dank", + "blockContent": [ + "

Der Herausgeber dankt zahlreichen Personen und Institutionen, die ihn bei der Arbeit auf vielfältige Weise unterstützt haben. Dieser Dank gilt vor allem den Mitarbeitenden der Archive und Bibliotheken, die digitale Reproduktionen ihrer Quellen für die Editionsarbeiten zur Verfügung gestellt bzw. Zugang zu den Originalen gewährt haben: Das Arnold Schönberg Center in Wien, die Music Division der Library of Congress in Washington D.C., die Morgan Library & Museum in New York City, die Musiksammlung der Österreichischen Nationalbibliothek in Wien, die Musiksammlung der Wienbibliothek im Rathaus in Wien sowie das Historische Archiv der Universal Edition in Wien. Besonderer Dank gilt der Paul Sacher Stiftung in Basel, die den größten Teil der erhaltenen Webern-Quellen aufbewahrt: Insbesondere Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert und Andrietta Wahl waren hier immer wieder hilfsbereite und kenntnisreiche Ansprechpartner.

", + "

Für die kollegiale und fruchtbare Zusammenarbeit sei auch allen aktuellen Mitarbeitenden des Projekt-Teams der AWG Michael Matter, Stefan Münnich, Simon Obert, Barbara Schingnitz und Matthias Schmidt, den ehemaligen Kolleginnen und Kollegen Julia Bungardt, Monika Kröpfl, Nikolaus Urbanek und Manuel Strauß sowie den Praktikantinnen und Praktikanten Tamara Ackermann, Yuta Asai, Daia Aschwanden, Madita Knöpfle und Youchen Yu gedankt.

", + "

Bei der Konzeption und Einrichtung der Online-Edition boten Rita Gautschy (Swiss National Data and Service Center for the Humanities), Lukas Rosenthaler und Tobias Schweizer (Digital Humanities Lab der Universität Basel) sowie zahlreiche andere Mitarbeitende der genannten Institutionen Anregungen und Hilfe.

", + "

Heinz Stolba von der Universal Edition in Wien gilt Dank für seine engagierte Kooperation.

", + "

Für Hinweise, Feedback und Ratschläge aller Art seien schließlich Simone Hohmaier (Staatliches Institut für Musikforschung, Berlin), Juliane Brand (Karl Weigl Foundation, San Rafael, CA), Regina Busch (Wien), Felix Wörner (Basel) sowie Michelle Ziegler (Basel) sehr herzlich bedankt.

", + + "

Basel, den 14. Mai 2024 Thomas Ahrend

" + ], + "blockNotes": [] + } + ], + "notes": [ + "

1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.

", + "

2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).

", + "

4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.

", + "

5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.

", + "

6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“

", + "

7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.

", + "

8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).

", + "

9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.

", + "

10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).

", + "

11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“

", + "

12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).

", + "

13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).

", + "

14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.

", + "

15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.

", + "

16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“

", + "

17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).

", + "

18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.

", + "

19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.

", + "

20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.

", + "

21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.

", + "

22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“

", + "

23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“

", + "

24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.

", + "

25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“

", + "

26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.

", + "

27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.

", + "

28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.

", + "

29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.

", + "

30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.

", + "

32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“

", + "

33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).

", + "

34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“

", + "

35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).

", + "

36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“

", + "

37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“

", + "

38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“

", + "

39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“

", + "

40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“

", + "

42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.

", + "

43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“

", + "

44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.

", + "

45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“

", + "

46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.

", + "

47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“

", + "

48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).

", + "

49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.

", + "

50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.

", + "

51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).

", + "

52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“

", + "

53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.

", + "

54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“

", + "

55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“

", + "

56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.

", + "

57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“

", + "

58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.

", + "

60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“

", + "

61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.

", + "

62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.

", + "

63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.

", + "

64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.

", + "

65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.

", + "

66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.

", + "

67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.

", + "

70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.

", + "

72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.

", + "

73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.

", + "

74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.

", + "

75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).

", + "

76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.

", + "

77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).

", + "

78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“

", + "

79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.

", + "

80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.

", + "

81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].

", + "

83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.

", + "

84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).

", + "

85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.

", + "

86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“

", + "

87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.

", + "

88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.

", + "

89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.

", + "

91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.

", + "

92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.

", + "

93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.

", + "

94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“

", + "

95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.

", + "

96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).

", + "

97 | Vgl. ebd. (Anhang), S. 340 f.

", + "

98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.

", + "

100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.

", + "

102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.

", + "

103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.

", + "

104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.

", + "

105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“

", + "

106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).

", + "

107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.

", + "

110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.

", + "

111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.

", + "

113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“

", + "

114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.

", + "

115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“

", + "

117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.

", + "

119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“

", + "

121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.

", + "

122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“

", + "

123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.

", + "

124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.

", + "

125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.

", + "

126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).

", + "

127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.

", + "

128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.

", + "

131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.

", + "

132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.

", + "

133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.

", + "

134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.

", + "

135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.

", + "

137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).

", + "

138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.

", + "

139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.

", + "

141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.

", + "

142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.

", + "

143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“

", + "

144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).

", + "

146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).

", + "

147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).

", + "

148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.

", + "

149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).

", + "

150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.

", + "

151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.

", + "

152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", + "

156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).

", + "

157 | Ebd.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.

", + "

159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“

", + "

160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“

", + "

161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).

", + "

163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.

", + "

164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“

", + "

165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.

", + "

166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.

", + "

168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“

", + "

169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“

", + "

170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.

", + "

171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“

", + "

172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.

", + "

173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", + "

175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f.

" + ] + }, + { + "id": "en-awg-I-5", + "content": [ + { + "blockId": "preamble", + "blockHeader": "", + "blockContent": [ + "

Series I, Section 5 of the Anton Webern Gesamtausgabe (AWG) presents the songs with piano accompaniment by Anton Webern in the versions (Textfassungen) to which he gave opus numbers and were either published during his lifetime or intended for publication (Opp. 3, 4, 12, 23 and 25), plus various individual songs (such as the George songs M 143–146) that are grouped together in clusters in this edition because the common circumstances of their composition imply that they belong together (such clusters are in the German-language documentation of the AWG referred to throughout as Editionskomplexe). Further clusters of songs that were not published during Webern’s lifetime, including those assigned opus numbers that later became obsolete (e.g. the Dehmel songs M 83, 119, 130–131), will be published in Series II, Section 5.

" + ] + }, + { + "blockId": "op3+4", + "blockHeader": "The George Songs", + "blockContent": [ + "

The earliest versions of Webern’s 14 songs with piano accompaniment to texts by Stefan George (M 133–146) were presumably composed between December 1907 and 1909. Together with the Five Movements for String Quartet M 147–151 and the Six Pieces for Large Orchestra M 152–157, they are among his first so-called atonal compositions. The two collections Five Songs from Der siebente Ring by Stefan George, Op. 3 and Five Songs on Poems of Stefan George, Op. 4 were published in 1919 and 1923 respectively. However, the specific songs collected in these opus numbers were not fixed from the beginning. Determining their content was a lengthy process, the various stages of which can no longer be reconstructed with certainty, and the musical text of most of these songs went through different versions.

", + "

We can trace Webern’s initial reception of George’s work back to circa 1900, when he copied the poem “Indes deine mutter dich stillt” into one of his diaries.1 We have no documentary proof either of any compositional engagement with this poem on his part, nor of his having read more George. He may have had further contact with George’s poetry in the Ansorge Society in Vienna, where Webern and his student friend Karl Horwitz were active from 1904 onwards, and whose evening events included performances of George settings by Conrad Ansorge (Five Songs on Poems of Stefan George, Op. 14).2

", + "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", + "

One incentive for Webern’s compositional engagement with George’s poems presumably came from Arnold Schoenberg’s own settings. Schoenberg had composed the song “Ich darf nicht dankend”, Op. 14, No. 1 on 17 December 1907 and numerous other songs for his growing cycle Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15, from March to May 1908 (we have definite proof that he composed the songs Op. 15 Nos. 3–8 at that time).5 In a letter dated 11 June 1908 from Webern to Schoenberg, there are indications that the former already knew some of the songs that the latter had completed by this time.6 Various features make it seem plausible that “Erwachen aus dem tiefsten Traumesschoße” M 143 represents Webern’s first setting of a poem by George for voice and piano, as it clearly refers to Schoenberg’s Op. 14, No. 1. Unlike most of Webern’s later songs, these two songs still have a key signature (as does his chorus “Entflieht auf leichten Kähnen” M 129, quite possibly written in 1907/08), which indicates a comparatively early date of conception. Given that the proven date of composition of Schoenberg’s Op. 14, No. 1 provides us with an earliest possible date for Webern’s song, the latter could have been composed between December 1907 and June 1908.7 A comparison of the handwriting and the types of music paper used suggests that the initial versions of the following songs (in one case: the sole extant version [einzige Textfassung]) could also have been written by mid-1908, including “Erwachen aus dem tiefsten Traumesschoße” M 143:

", + + "
“Dies ist ein Lied” M 133(version 1 in A, version 2 in B)
“Erwachen aus dem tiefsten Traumesschoße” M 143(sole extant version in A)
“Im Windesweben” M 134(version 1 in A)
Kunfttag I M 144(sole version in A)
", + + "

Webern wrote to Schoenberg from Berlin in December 1908, requesting a letter of recommendation to Richard Strauss. He also discusses establishing contact with the Berlin publisher Max Marschalk of the Dreililien publishing company (which was probably suggested by Schoenberg). Webern goes on to say that he does not have enough material to make up a volume of songs:

", + + "

I don’t know, I’m so stupidly shy. That’s also why I haven’t yet been to Marschalk.

", + "

If only I had a volume of songs ready. But this means he can’t take anything at the moment.

", + "

On the one hand, I’d like to, but on the other hand –8

", + + "

Webern clearly did not consider either his four George songs (which were presumably finished by late 1908) nor his five Dehmel songs M 83, M 119, M 130–132 (which he had also already composed) to be suitable for publication.9

", + "

Webern’s letter to Heinrich Jalowetz of 25 May 1909, written in Vienna, provides an explicit, dated reference to the composition of a George song: “I have – thank God – written something again. A song after George, ‘Trauer I’ (VII Ring).”10 Webern went to his family’s estate of Preglhof in Carinthia on 29 May and spent the ensuing weeks and months there, during which time he reported to Schoenberg on the completion of a first version of his Five Movements for String Quartet M 147–151 and on further plans for songs and orchestral works (the latter being the Six Pieces for Large Orchestra M 152–157).11 However, his plans were initially delayed by the death and funeral of his maternal grandfather, Anton Geer:

", + + "

Yes, for the reasons given above, I’ve only written one song since the quartet. Stefan George again. That was the day before yesterday and yesterday. Now a few more are on their way. I have so little peace here now. But it’s all still got to come together.12

", + + "

Webern’s visit to Carinthia was also interrupted – presumably from mid-July onwards – by a brief engagement at the theatre in Innsbruck. But by the end of July, Webern was writing to Schoenberg from Preglhof once again, and on 20 August he wrote:

", + + "

Meanwhile, I have written 2 songs and two orchestral pieces. The songs are yet again quite different from before. The orchestral pieces too, of course.13

", + + "

It is unclear precisely to which George songs Webern was referring in his letters to Schoenberg. The only George song by Webern that we can date more precisely thus remains Trauer I M 145, which he had written shortly before 25 May 1909, thus before his visit to Carinthia. Both the manuscript paper that he used and a clear shift in his handwriting style (when compared to the abovementioned songs that were probably composed in 1908) together suggest that, after Trauer I M 145, Webern also wrote the initial versions of the following songs in the course of the summer or autumn of 1909 (in some cases, these are the only versions of the songs in question):

", + + "
“An Bachesranft” M 135(version 1 in E)
“Das lockere Saatgefilde” M 146(sole extant version in A)
Eingang M 138(version 1 in A)
“Im Morgentaun” M 136(version 1 in D [fragment], E and G)
“Ja Heil und Dank dir” M 140(version 1 in B)
“Kahl reckt der Baum” M 137(version 1 in E)
“Noch zwingt mich Treue” M 139(version 1 in B)
“So ich traurig bin” M 141(version 1 in B)
Trauer I M 145(sole extant version in A – before 25 May 1909)
", + + "

On the basis of our assessment of Webern’s handwriting, a further manuscript can also be assigned to this period: “Dies ist ein Lied” M 133 (version 2, which is the basic layer in C). Since the autograph of “Ihr tratet zu dem Herde” M 142 ([C]) has not survived, it is naturally impossible to use these criteria to determine whether it was also written in 1909 or already in 1908.

", + "

In contrast to Webern’s compositions from before 1908 and after 1914, no conceptual sketches in pencil (i. e. continuity drafts, which were often dated) have survived for the George songs (the same applies to most other works composed in the same period). We only find pencil corrections to individual passages in the existing ink manuscripts. Webern commonly made such continuity drafts in pencil during other creative periods of his life, but it is impossible to make any general statement about whether this was also the case here, or whether the manuscripts in ink of the early versions of these songs served the function of a sketch during the compositional process.14

", + "

Six George songs were given their world premiere on 8 February 1910 in Vienna, at a concert of the Verein für Kunst und Kultur (the “Association for Art and Culture” that was the successor of the Ansorge Society). The same concert featured Webern’s Five Movements for String Quartet M 147–151 and songs by Bruno Walter and Karl Weigl.15 Webern’s songs were sung by Martha Winternitz-Dorda, accompanied by the composer. Just a few weeks earlier, on 14 January 1910, she had sung the world premiere of Schoenberg’s Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15 in a concert of his works organized by the same Association for Art and Culture. The programme booklet for the concert of 8 February gave the texts of Webern’s six George settings (listed below) under the collective title “Songs after Stefan George”, arranged in two groups according to the poetry volumes from which they were taken. No opus number was given (in the following schematic summary, we name the version of the song that was presumably performed on this occasion):

", + + "
From Der siebente Ring
Eingang M 138(version 1)
“Dies ist ein Lied” M 133(version 2)
“Im Windesweben” M 134(version 2)
“Kahl reckt der Baum” M 137(version 1)
From Das Jahr der Seele
“Noch zwingt mich Treue” M 139(version 1)
“Ihr tratet zu dem Herde” M 142(unknown version)
", + + "

Manuscript copies in other hands have survived of almost all these songs in F (see the List of Sources [Quellenübersicht] for Op. 3) and D (see the List of Sources for Op. 4) that were most likely made for this specific performance. These songs are numbered in pencil from “I” to “V” in these two sources; the numberings correspond to the order of the texts as given in the programme booklet (while no copy of “Ihr tratet zu dem Herde” M 142 [E] has survived, it no doubt existed and was presumably given the number “VI”). Certain musical and orthographic details in the copyist’s manuscripts seem especially clumsy, while their text underlay reveals similarities with the handwriting of Wilhelmine (Minna) Mörtl, who later became Webern’s wife. These manuscript copies generally contain numerous annotations by Webern himself, some of which (in “Dies ist ein Lied” M 133 most of all) entail a process of revision resulting in later versions of the song. However, some of the annotations in red crayon were probably made in the context of preparations for the first performances in February 1910, when the abovementioned copies were presumably used by the singer. When we consider the versions of the musical text that were most likely performed on that occasion, we can surmise that Webern probably played the piano accompaniment from the following sources:

", + + "
Eingang M 138:A (version 1)
“Dies ist ein Lied” M 133:C (version 2)
“Im Windesweben” M 134:E (version 2)
“Kahl reckt der Baum” M 137:E (version 1)
“Noch zwingt mich Treue” M 139:B (version 1)
“Ihr tratet zu dem Herde” M 142:[C] (unknown version)
", + + "

Webern’s compositions that were performed in this concert in 1910 were given several negative reviews. As an example, we offer here a passage from Julius Korngold’s review in the Neue Freie Presse in which he also makes explicit reference to the previous month’s concert in which Schoenberg’s George songs, Op. 15, were given their first performance:16

", + + "

We were recently occupied with the case of Schoenberg, and now we also have the case of Anton v. Webern, even if both are basically one. For Mr v. Webern is Schoenberg’s pupil, one who not only swears by his master’s words, but in many a respect outdoes him. This is a good thing; one feels less stressed, and experiences an almost comfortable indifference. One was able to engage with [the work of] the teacher, and indeed one was compelled to do so, while that is not the case with his disciple. […] [his] six songs by Stephan [sic] George also tread along Schoenberg’s path, and not just in his choice of poet. Chords from the new theory of harmony are accompanied by a psalmodizing singing voice using the relevant intervals. Even a musically trained, receptive listener here undergoes the psychological experience of thinking he is always hearing the same thing. Here, however, the words provide a certain degree of expression, though admittedly it is an expression throughout of mental dejection, of mental disintegration. If one listens in a spirit of good will, then one is reminded in their best moments of Octave Mirbeau’s painter, who ultimately only wanted to paint “souls”. . . .

", + "

May the reader here forgive our grim merriment. But when performed on Shrove Tuesday, this music involuntarily infects our Ash-Wednesday criticism with a certain carnival mood.17

", + + "

The six songs that were given their first performance in 1910 were merely a selection of what were presumably a total of 14 George songs that Webern had already composed at that time. In two handwritten lists of titles, probably drawn up before the first performances of all the songs, he had already divided them into two groups designated “Op. 2” and “Op. 4”, with seven songs each.18 These two lists read as follows (with angle marks added in pencil, “[p]”, and in red crayon, “[r]”):

", + + "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[p]1. Eingang.(„VII. Ring“)
[p + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[p + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[p + r]6. „Kahl reckt der baum..“
[p]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[p + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[p]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7&ngsp;[p]&ngsp;„Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", + + "

Several elements in these two lists19 prove that they were not written at the same time. Given that the sequence of opus numbers that Webern had begun with his Passacaglia M 127 (his “Op. 1”) was interrupted by his Five Movements for String Quartet M 147–151 (designated “Op. 3”), he probably compiled his Seven Songs (“Sieben Lieder”) “Op. 2” earlier than the songs that his second list designated as “Op. 4” (this would also seem to be confirmed by the fact that his “Op. 2” contains all the songs that he had presumably composed by 1908).20 Despite the differences between them and the presumed chronological distance between the two lists, they both bear traces of having been reworked at the same time; they have the abovementioned angle marks in pencil and red crayon on the left, alongside several lines of text (in the last line of “Op. 4” also between the song number and the opening line). Furthermore, some numbers in the list for “Op. 4” (“1”, “5” and “6”) have been crossed out in pencil. It is possible that the red crayon markings denote the choice of songs for the performance of 8 February 1910 (in which case the angle mark next to “2. ‘Dies ist ein lied...’” in the list for “Op. 2” would also refer to “1. Eingang.” above it).21 All the George songs, plus the two lists themselves, must in this case have been written before the date of this concert, and these two collections of songs would then presumably also have been among the compositions that Webern presented at a meeting that Schoenberg had organized with the director of Universal Edition, Emil Hertzka, on 9 October 1909 (though none of these works was subsequently accepted by the publishing house).22

", + "

However, these two compilations do not simply constitute more extensive versions of the collections later printed as Webern’s Opp. 3 and 4.23 For example, the ordering principle behind his Five Songs from Der siebente Ring by Stefan George, Op. 3, published in 1919, played no role in his selection of songs for “Op. 2”.24 In this Op. 3, Webern brought together all the texts that he had set to music from the poetic cycle Lieder (Songs) that George had included in Der siebente Ring and also kept those songs in the order of the original poems.25 “An Bachesranft” M 135, which features in this opus 3, also appears here in the list for “Op. 4”, while “So ich traurig bin” M 141, which was actually included in the Five Songs on Poems of Stefan George, Op. 4, published in 1923, was deleted from the list for the Seven Songs “Op. 4”.

", + "

In early June 1911, Webern sent “some 10 songs” to the Dreililien publishing company in Berlin, together with his Five Movements for String Quartet M 147–151 and his Four Pieces for Violin and Piano M 161–164.26 It is impossible to determine just which songs he sent. After all these works had been rejected, Webern submitted the same compositions to the publisher Tischer & Jagenberg in Cologne in late September or early October,27 though again without any of them being accepted for publication.28

", + "

In the autumn of 1911, Webern – along with Schoenberg and Alban Berg – received an invitation to contribute a musical supplement to the almanac Der blaue Reiter, published by Wassily Kandinsky and Franz Marc. For this he chose “Ihr tratet zu dem Herde” M 142. A letter that Webern wrote to Paul Königer reveals that he had also included this song in the selection sent to Tischer & Jagenberg:

", + + "

You want this song from me; yes, I have sent the two copies I possessed to the “blauer Reiter” and to the publisher.

", + "

But if it is still possible, I shall copy it out again from the sketch and give it to you as a gift.29

", + + "

Webern had thus presumably sent the sources [C] and [E], neither of which has survived, to the Cologne publisher and to Der blaue Reiter. When the publisher Gerhard Tischer rejected his music in late December 1911 or early January 1912, Webern got his works back and was able to inform Königer that he would send the promised copy of the song: “You’ll get my song soon. By the way, it will appear in the ‘blauer Reiter’.”30 (In late January, Webern was sent “the proofs of my song”,31 i. e. presumably the proofs from the music engraver [F] that were engraved after the copy he had sent). Der blaue Reiter was published in May 1912, and Webern received his copy (with GH) in early June.32

", + "

Already by the beginning of 1912, Webern was making plans for the private publication of a selection of nine songs together with others of his works, as he wrote in a letter to Berg:

", + + "

At Schoenberg’s insistence, I have decided to publish 4 of my works (Passacaglia, 9 songs, Quartet [the first] and the older 6 orchestral pieces) with Straube (just like Schoenberg’s Quartet No. II). So I’ve got a lot to do with regard to revising these scores.33

", + + "

This decision had been preceded by discussions with Schoenberg in February, whose diary records his having looked through several works by Webern, expressly mentioning his songs:

", + + "

Webern came on the afternoon in order to look through his songs with me (which he wants to publish). They again pleased me a lot. Truly an original talent. I can see that he’ll turn into something great.34

", + + "

In his personal copy (GH) of the song that he published in Der blaue Reiter, Webern revised the musical text and added the opus number “2”. In the two abovementioned lists of the two sets of seven songs “Op. 2” and “Op. 4”, however, this song was still classified under “Op. 4”. So “Ihr tratet zu dem Herde” M 142 (version 2) was presumably part of a new collection of “9 songs” designated “Op. 2” that constituted a selection from all 14 of Webern’s George songs and replaced the two previous compilations. Just which other songs also belonged to this new collection remains undocumented. Ultimately, no Straube publication of the four aforementioned opus numbers came about. In fact, only the orchestral pieces M 152–157 were published thus in 1913, as Webern’s “Op. 4”.

", + + "

Instead, in a letter to Schoenberg sent in the summer of 1912, Webern mentions his plan to submit a different selection of his compositions to Simrock, from which he intentionally excluded his songs:

", + + "

I’ll be sending the following to Simrock today already: the “Passacaglia”[,] the quartet and the violin pieces. I still haven’t copied out my songs properly, otherwise I would be sending them too. But I will speak of them in a letter. Perhaps he will then ask for the songs. By then I will have put them in order.35

", + + "

But just a few weeks later, Webern’s works were rejected once again.36 It remains unverifiable whether or not he had indeed subsequently “copied out [his] songs properly”. In early 1913, Webern ultimately sent an unspecified selection of his songs to the publishing house of Gadow in Hildburghausen, though again, clearly, without success.37

", + "

In the summer of 1914, Schoenberg once more approached Universal Edition about Webern.38 After a conversation between Webern and Hertzka that took place on 25 June, it was finally agreed that the latter would publish “the score of Op. 4, the chorus and a booklet of songs or the violin pieces39 by Webern the following year. However, no decision ever had to be made about whether to publish a volume of his songs or the Four Pieces for Violin and Piano M 161–164, because the First World War broke out just a few weeks after their meeting, and economic reasons forced the cancellation of their plans.40

", + "

A few days before the outbreak of war, thanks to the mediation of Alban Berg and Alfred Kalmus, the possibility nevertheless arose for Webern to contribute something to a collective publication being prepared by Universal Edition entitled Das moderne Lied (“The Modern Song”).41 Webern submitted three songs – none of which can be identified today42 – but none was included in the volume.43

", + "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", + + "

Neun Lieder | op[.] 6 [“6” corrected from: “5”; the whole line has been added subsequently in pencil] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", + + "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", + "

In addition to Webern’s efforts to get a selection of his George songs into print, there were also repeated plans for further performances of them, after the abovementioned first performance of six songs in February 1910. An unspecified number of Webern’s songs was initially planned for inclusion in a concert in Vienna on 24 April 1911, for example, though they were dropped for various reasons.46 Webern temporarily considered replacing a performance of his Pieces for Violin M 161–164, planned for 29 June 1912 in Vienna, with “4 songs” instead.47 And when Schoenberg had the idea of a joint “evening of compositions” by Berg and Webern in Berlin in autumn 1913, Webern thought of including several songs alongside his string quartet compositions M 147–151, M 171–174 and M 178–180:

", + + "

And then songs by me. It would be nicest of all if [Marya] Freund sang. Do you think that could be organized? I would like to send her the songs soon. May I ask you for the address of Ms Freund?48

", + + "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", + "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", + + "

I    “Dies ist ein Lied” M 133 (version 4)

", + "

II   “Im Windesweben” M 134 (version 3)

", + "

III  “An Bachesranft” M 135 (version 3)

", + "

IV  “Im Morgentaun” M 136 (version 3)

", + "

V   “Kahl reckt der Baum” M 137 (version 5)

", + + "

Webern finally concluded a contract with Universal Edition in August 1920, signing over the rights to his Op. 1 (Passacaglia M 127), Op. 2 (“Entflieht auf leichten Kähnen” M 129), Op. 3 (George songs M 133–137) and Op. 6 (Pieces for Orchestra M 152–157), and Universal subsequently also took on the remaining copies of the edition of the Five Songs from Der siebente Ring by Stefan George, Op. 3, that had been printed by the Verein in 1919.58

", + "

For the publication of his Five Songs on Poems of Stefan George, Op. 4, Webern had a copy, I, made of the versions of the songs contained in his autograph fair copy H. It is unclear just when he had this done, though it was presumably not long after he signed the contract for the work in April 1923.59 Print J was published in August 1923 and contains the following songs:

", + + "

I     Eingang (“Welt der Gestalten”) M 138 (version 3)

", + "

II   “Noch zwingt mich Treue” M 139 (version 3)

", + "

III  “Ja Heil und Dank dir” M 140 (version 2)

", + "

IV  “So ich traurig bin” M 141 (version 2)

", + "

V   “Ihr tratet zu dem Herde” M 142 (version 3)

", + + "

The world premiere of the Five Songs on Poems of Stefan George, Op. 4, was given by Jenny Jungbauer und Ilse Fromm-Michaels on 23 November 1923 in Hamburg at a cycle of concerts entitled “New Music” that was organized by Josef Rufer und Hans Heinz Stuckenschmidt. Webern was presumably not in attendance, nor had he been involved in preparations for the performance.60 The complete collection of Op. 4 was performed in Webern’s presence only on 10 February 1940 in Basel in a concert of the International Society for Contemporary Music (hereinafter ISCM) featuring Marguerite Gradmann-Lüscher accompanied by Erich Schmid, at which they also performed three of Webern’s Four Songs, Op. 12, alongside songs by Schoenberg and Berg.61   

", + "

As in the latter case, further performances of Webern’s George songs during his lifetime often took place in various combinations comprising selections from the published collections Opp. 3 and 4 and the Four Songs, Op. 12. In addition to the performances already mentioned from the years 1910, 1919 (the world premiere of Op. 3) and 1923 (the world premiere of Op. 4), we currently have documentary evidence of the following:

", + + "

–  20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", + "

–  17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", + "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", + "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", + "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", + "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", + "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", + "

–  17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", + "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", + "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", + "

–  5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", + + "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Five Songs on Poems of Stefan George, Op. 4 (JH), we find various annotations pertaining to performances, and indications of durations. It is impossible to prove whether or not these are connected with one of the abovementioned performances (though perhaps with the first performance of the entire collection in Basel in 1940).

" + ] + }, + { + "blockId": "op12", + "blockHeader": "Four Songs, Op. 12", + "blockContent": [ + "

The dates of composition of the individual continuity drafts for the Four Songs, Op. 12 can be divided into two clearly separate phases. Webern initially composed “Der Tag ist vergangen” M 212 and “Schien mir’s, als ich sah die Sonne” M 213 in early 1915; in the spring of 1917, he wrote Gleich und Gleich M 216 and Die geheimnisvolle Flöte M 217. Both of these phases occurred during a creative period that lasted from ca 1914 to the mid-1920s that was notable for Webern’s having concentrated on vocal composition, especially works for solo voice with ensemble accompaniment, most of which were published from 1924 onwards in his Opp. 13–19 (cf. AWG I/4). The genesis of the Four Songs, Op. 12 should also be seen in this context. Since they were composed for voice and piano, the present edition has assigned them to AWG Section I/5.

", + "

The gap of more than two years that occurred during the composition of the songs of Op. 12 was a result of a radical historical caesura: the First World War. When it broke out in late July 1914, it also forced Webern to change all his hitherto plans. He had been appointed as a conductor to various theatres from 1909 onwards, but had suffered repeated health problems, and so had undergone therapy with the psychoanalyst Alfred Adler from August to October 1913. After this, Webern once more felt in a condition to be able to assume conducting duties. He had accordingly accepted such a position in Stettin (today Szczecin in Poland) for the summer of 1914, but this engagement was cancelled because of the war. Webern was initially enthusiastic about the onset of war, and now sought to enrol in the military instead. However, his age and state of health meant that he was not called up until November 1914. In February 1915, he was stationed first in Klagenfurt and then in Gorizia as part of a “one-year” training course.73 Apart from several brief interruptions, Webern remained in military service until the end of 1916.

", + "

The two songs with piano that Webern composed in January 1915 were the first compositions that he completed after the beginning of the war, and the only works that he completed before being deployed. Webern had written to Heinrich Jalowetz in mid-December 1914, saying that he had “begun something again”,74 and reported to him once more on 10 January about his continuing productivity – a few days before dating his continuity draft for “Der Tag ist vergangen” M 212 in A (13 January 1915): “I am now writing something new again, i. e. I’m really only just getting down to it.”75

", + "

The text for “Der Tag ist vergangen” M 212 was taken from Peter Rosegger’s novel Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 This book is about a historical figure from the so-called Tyrolean freedom struggles after 1805 whose crises of conscience are depicted as akin to the martyrdom of a saint. He is torn between his social and religious longings for peace on the one hand and his efforts to help attain political and national emancipation on the other. Webern had read the book in early 1915, as can be seen from his letter to Arnold Schoenberg of 9 January in which he quotes a lengthy passage from it about a revelatory religious experience.77 However, Rosegger had already been of great importance to Webern since 1912 at the latest, as is especially clear from the numerous times that Webern mentions him in his letters to Alban Berg and Schoenberg.78 Besides Webern’s interest in the religious sphere evoked in the book, its nationalistic tenor might well have corresponded to his own euphoria for the war after its outbreak in mid-1914. In this two-strophe poem (which in older editions of the novel was published as four strophes), Rosegger uses formulae from traditional, popular songs of pilgrimage.79 He situates his poem in an evening scene of an act of military resistance disguised as a mass pilgrimage, in which several pilgrims sing the “melancholy notes of this song” with “bright voices”.

", + "

Webern presumably made the fair copy of version 1 of “Der Tag ist vergangen” M 212 in B shortly after the dated continuity draft. It is impossible to determine precisely when he made the revisions in A and B and the resulting copy of version 2 in C. Nevertheless, the red ink that he used for the text underlay in both B and C as well as the cursive script indicate that they were all made at a similar time, presumably before Webern was stationed in Klagenfurt. In any case, version 2 served as the engraver’s copy for the single print of “Der Tag ist vergangen” M 212 in the Musikblätter des Anbruch in May 1922 (E).80 When it was to be published in the collection Four Songs, Op. 12 (G) in 1925, Webern made his own engraver’s copy (version 3 in F). As with many of his other settings of Rosegger’s texts, Webern refrained here from indicating the author in all the copies and prints of this song. In his Four Songs, Op. 12, he identifies it as a “folk song”.

", + "

In a letter to Schoenberg dated 21 January 1915, Webern tells him he has completed a “song with piano” (presumably “Der Tag ist vergangen” M 212) and mentions that he has “begun” two other songs.81 One of these might have been “Schien mir’s, als ich sah die Sonne” M 213, whose continuity draft in A is dated 31 January 1915 (the second song was presumably the Trakl setting “In der Heimat” M 214, which remained unfinished).

", + "

The text of “Schien mir’s, als ich sah die Sonne” M 213 was taken from August Strindberg’s play Ghost Sonata (whose original Swedish title was Spöksonaten). A copy of the German translation by Emil Schering has been preserved in Webern’s library that bears the autograph date “2. VII[.] 09.” (which was Wilhelmine Mörtl’s 23rd birthday).82 Webern had already discovered Strindberg’s works in 1908, after which this author played a decisive role in his communications with both Schoenberg and Berg.83 The poem in question appears twice as a song in Schering’s edition of the play: at the close of the second act, and shortly before the end of the third and final act, when the (fatal) exchange between the “Student” and the “Young Lady” takes place. The song is sung by the Student, who is accompanied the first time by the Young Lady “on a harp”, while the second time, after the death of the Young Lady, it “whispers in the strings of the harp”.

", + "

Webern had already begun a setting of this poem in a short sketch for women’s and children’s chorus (“Schien mir’s, als ich sah die Sonne” M 198), which he dated “Winter 1913/1914” (though this date was presumably added later). This sketch, however, never proceeded beyond the first line. The copy of the song with piano “Schien mir’s als ich sah die Sonne” M 213 in C was based on the continuity draft in A and bears numerous traces of having been revised. It is not possible, however, to discern the musical text unambiguously as it existed before those corrections. The use of cursive script and of the same red ink for the text underlay that we find in the copies of “Der Tag ist vergangen” M 212 in B and C suggests that the basic layer of “Schien mir’s als ich sah die Sonne” M 213 was written at roughly the same time. It is therefore possible that it was also composed before Webern was stationed in Klagenfurt in February 1915.

", + "

No compositional efforts of Webern’s have survived from his time in the military in 1915 and 1916. He wrote to Jalowetz as follows in January 1917:

", + + "

I’m now recovering gradually from these 2 years – mentally. Only now can I really feel the effect. I’m slowly getting back on track, finding my way. I’m gradually remembering what I’d been thinking before, and where I had reached.84

", + + "

The first composition that Webern completed after his two years in the military was Gleich und Gleich M 216, whose continuity draft in A is dated 31 March 1917. This was only Webern’s second-ever setting of Goethe, after his song with piano Blumengruß M 2085 of 1903. We have no details of Webern’s Goethe reception before 1917, though we do find sporadic mentions of his having read the poet.86 According to the handwritten list of books and scores that Webern began keeping in the 1910s, he owned the following edition of Goethe: Sämtliche Werke. Jubiläumsausgabe in 40 volumes, Stuttgart and Berlin: Cotta, [1902–1912].87 Further traces of his compositional engagement with Goethe’s works during these years can be found in two further sketches/fragments from 1917 (Gegenwart for voice [baritone?] and piano M 220) and 1918 (Cirrus for voice and orchestra M 235).88

", + "

Version 1 of Gleich und Gleich M 216 fully notated in C presumably dates from shortly after the continuity draft. It reveals changes that point to version 2 in F, which was prepared for the song’s publication in 1925. Another, unrevised copy of version 1, found in D, can be confirmed as postdating C, not least because its text underlay is written in Latin script. However, we do not know the precise date when this version was committed to paper, nor why it was made. The designation “Op. 12” in its title suggests that its earliest possible date is some time after April 1920 (see below).

", + "

In one of his later lectures, “Wege zur neuen Musik” (“Paths to New Music”) of early 1932, Webern mentions the introductory measures of Gleich und Gleich M 216 as an example of his having already grasped intuitively the principles of later twelve-tone composition, since they present all twelve pitch classes of the chromatic scale. “The law was not yet known to us back then, but it had long been felt.”89 The next Goethe settings that Webern completed, the Two Songs for Mixed Chorus, Op. 19, only date from 1925/26. They are among his first explicitly twelve-tone compositions and are also the last settings of Goethe that he ever completed.

", + "

The continuity draft of Die geheimnisvolle Flöte M 217 in A is dated 10 April 1917, thus immediately after Webern had completed Gleich und Gleich M 216 (though his letters of this time to Berg, Jalowetz and Schoenberg mention neither of these works). The text he set in Die geheimnisvolle Flöte is a free adaptation of a poem by the Chinese writer Li Tai-po (today more commonly referred to as Li Bai), taken from Hans Bethge’s collection Die chinesische Flöte (The Chinese Flute), which was first published in 1907. The copy of the fourth edition of this book that has survived in Webern’s library bears the handwritten date “3. 12. 12.” (thus 3 December 1912, his 29th birthday) on the reverse of the front cover.90 Webern will have been aware of several poems from this collection at least one year previously, as Gustav Mahler had set them in his Lied von der Erde, whose world premiere Webern had attended on 20 November 1911 in Munich.91 Webern composed Die Einsame M 199 from Die chinesische Flöte for voice and orchestra in February 1914, and followed this in July 1917 with In der Fremde M 223, later including both these songs in his Four Songs for Voice and Orchestra, Op. 13. Two more unfinished sketches by Webern have survived that use texts from Die chinesische Flöte: Nächtliches Bild M 233 (from autumn 1918) and Der Frühlingsregen M 244 (probably from 1920).

", + "

The basic layer of the copy in C of Die geheimnisvolle Flöte M 217 (version “0”) can no longer be deciphered clearly. However, as in the case of Gleich und Gleich M 216, also in C, it was probably written shortly after the continuity draft and contains alterations in ink and pencil. Together with an intermediate stage that also cannot be determined with any clarity, these changes might have been pointing towards version 1 found in F, which was made with a view to publishing the song in 1925.

", + "

It was in 1920 at the latest when Webern brought together these four songs with piano to form a collection with an opus number. It was presumably sometime after April 1920 that Webern drew up a handwritten list of his works for Universal Edition in which he designated these as “4 Songs with Piano” and gave them the number “Op. 10”.92 This is the number that they were originally given on the cover page of source C, though this was later deleted and corrected to “Op. 12”.93 This change was made no earlier than the beginning of 1921, when Webern was busy numbering other works. In an article published by Egon Wellesz in February 1921, these songs are explicitly mentioned as being Webern’s “opus 12”.94 The music examples given in this article were prepared on the basis of version 2 of “Der Tag ist vergangen” M 212 and version 1 of Gleich und Gleich M 216, and thus presumably used C as their source (or possibly D in the case of M 216 in the corresponding stage of corrections). In May 1922, version 2 of “Der Tag ist vergangen” M 212 was published separately (though with a remark that it belonged to Op. 12) as a music supplement to the Musikblätter des Anbruch (E). Webern revised his personal copy of “Der Tag ist vergangen” M 212, EH, resulting in version 3, and he revised Gleich und Gleich M 216 in C, resulting in version 2 of the song. By the turn of the year 1924/25 at the latest, Webern had produced an engraver’s copy, F, of his Four Songs, Op. 12, which he then offered to Universal Edition in a letter of 3 January 1925 to its director, Emil Hertzka, in which he mentioned it as being one of the works he “currently had ‘in stock’”. He clearly submitted the work to them shortly afterwards.95 On 12 June of that year, he sent the second proofs of the engraved music back to his publisher, and on 20 June he returned the proof of the title page.96 Print G of the Four Songs, Op. 12 was published on 30 September 1925 in an edition of 499 copies.97

", + "

Webern received an enthusiastic reaction from Alban Berg, who wrote to him just a few days after these songs were published:

", + + "

What great pleasure you have given me, my dear, with your Op. 12! This is once again – just like everything by you – a real Webern. Even the way you have compiled the wonderful texts and have brought them together into a single whole! Not to mention the music! Yes, it seems to me as if I were to see you in a completely new way. What a tone you strike in the Strindberg song. And overall, what variety there is in these 4 songs. The last one, for example: such gracefulness. One can safely say that we will not find this anywhere else in the whole music repertoire –: such a song by you is for me a veritable fount of joy, a joy that shines out over my whole being. It’s like when the sun suddenly bursts forth on a gloomy day, and you just don’t know why you suddenly feel happy again.98

", + + "

The world premiere of Webern’s Op. 12 in its entirety took place on 8 January 1927 in the small hall of the Vienna Musikverein, sung by the Dutch singer Co van Geuns with Eduard Steuermann at the piano. The same concert saw the world premiere of Alban Berg’s Lyric Suite, performed by the Vienna String Quartet (the Kolisch Quartet), plus a performance under Webern’s baton of Johann Sebastian Bach’s Concerto for Four Pianos BWV 1065.99 Webern wrote to Schoenberg a few days later, offering a succinct commentary on the performance of his songs: “On the same evening as Berg’s quartet, a song opus of mine was also given its first performance. It went very well.”100 The Arbeiter-Zeitung afterwards featured a positive review of the concert in which it placed Berg’s work in the foreground and offered a comparatively brief report of Webern’s Four Songs, Op. 12:

", + + "

New songs by Anton  W e b e r n, which Co van  G e u n s  sang with exceptional musicality, led by Eduard  S t e u e r m a n n  at the piano, were also a great success. Here, brief lyrical poems are pressed into musical forms whose composition cannot be clear to the impartial listener. So he must hold on to the expressive values that can be found here in abundance, even if the strange course of the singing voice makes it difficult to follow all the time. The songs had to be repeated and this made them easier to understand.101

", + + "

According to a diary entry by Webern, Gleich und Gleich M 216 had already been sung by a “Dutch [woman] singer” in October 1926,102 presumably also van Geuns, who also performed songs by Webern (probably also from Op. 12) and by Alexander Zemlinsky in Cologne sometime after the world premiere of the Four Songs, Op. 12 of early January 1927.103 As with the George songs, several performances during Webern’s lifetime (probably with his consent or even at his suggestion) took place at which only a selection of the Four Songs, Op. 12 was sung, or at which selected songs from that opus were combined with individual numbers from the George songs Opp. 3 and 4. Apart from the performances with van Geuns already mentioned above, we have proof of the following concerts having taken place:

", + + "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", + "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", + "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", + "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", + "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", + "

–  9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", + "

–  21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", + "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", + "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", + + "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" + ] + }, + { + "blockId": "op23", + "blockHeader": "Three Songs from Viae inviae by Hildegard Jone, Op. 23", + "blockContent": [ + "

The Three Songs from Viae inviae by Hildegard Jone, Op. 23, which Webern began in early 1933 and completed in March 1934, were his first songs with piano accompaniment to use the method of “composing with twelve tones” – as Webern usually referred to it – and they were also the first vocal work that he had completed since his Two Songs for Mixed Chorus with the Accompaniment of Celeste, Guitar, Violin, Clarinet and Bass Clarinet, Op. 19, composed between late 1925 and the summer of 1926. Webern’s title uses the term “Gesang” for “song”, not “Lied”, which serves as an indication of the extended length of the individual songs when compared to most of his other vocal works. These were also Webern’s first compositions to texts by Hildegard Jone, whose poetry provided him with the basis for all the vocal works that he subsequently completed.

", + "

Webern presumably first met Jone and her husband, the sculptor Josef Humplik, in autumn 1926 at an exhibition of the Hagenbund in Vienna. This acquaintance led to plans for a collaboration between Webern and Jone by 1928 at the latest,113 and resulted in Jone writing “three opera texts”.114 A letter exists from Webern to Jone, written over a year later, in which he wrote that he wanted “to talk about your dramas”,115 though it remains unclear whether he is referring to the aforementioned three libretti or to other texts by Jone. However, it does seem that Jone still intended to “write [...] a ‘libretto’” for Webern.116 We know that Webern wrote to Jone in September 1930 to apologize

", + + "

that your dramas, which are so beautiful, had obviously not found me in the right state of mind for such work, despite the fact that I was very serious at the time about composing such things.117

", + + "

Instead, he goes on to ask her in this letter to write him a cantata text.118 Nevertheless, we do not know of any poems by Jone from this same time that might be connected to this request on the part of the composer (as is well known, Webern did indeed compose “cantatas” to texts by Jone, but only between 1935 and 1943; these were Das Augenlicht, Op. 26, the Cantata No. 1, Op. 29 and the Cantata No. 2, Op. 31). Quite apart from such concrete proposals for a possible collaboration, Jone repeatedly sent Webern manuscripts of her poems.119

", + "

Given this background, it is worthy of note that Webern first set one of Jones’s poems without any prior consultation with the poet, having taken it instead from an already published collection: Viae inviae, which was published in the autumn of 1932 in the journal Der Brenner.120 This cycle of poems was dedicated posthumously to the philosopher Ferdinand Ebner, who had died in October 1931, and whose Fragment von 1916 (together with an “afterword” to it that he wrote shortly before his death) precedes Jone’s collection of poems in that issue of the journal.121 Shortly before Ebner died, Jone had arranged for Webern to meet him in person.122 And even before that, Jone had repeatedly confronted Webern with Ebner’s ideas, and she in fact later remained active as his editor. Webern’s explicit engagement with Ebner’s writings can only be traced sporadically, from 1934 onwards. Nevertheless, we can discern an implicit reception of Ebner’s work on Webern’s part through Jone’s texts.123 The poems of Viae inviae are divided into two sections, each marked with a Roman numeral: Section I begins with a prologue entitled Dem einsamen Wanderer (“To the Lonely Wayfarer”) and contains within it the cycle Heimgang des Lebens (“Life’s Homecoming”), which is subdivided into three further sections, each with an Arabic numeral.124 The texts that Webern set to music in his Op. 23 are the third section of Heimgang des Lebens, which itself is divided into eight groups of verses of varying lengths. Webern’s three songs comprise verse groups 1–4 (“Das dunkle Herz…”), 5–6 (“Es stürzt aus Höhen…”) and 7–8 (“Herr Jesus mein…”). He did not compose them in the same order in which they appear in the source, though when the songs were complete, he kept their original order.

", + "

The initial sketches for Op. 23 in A (Sketchbook 3) are dated “1. II. 33” and are for “Herr Jesus mein” M 312 (M 312 Sk1, M 312 Sk1.1 and M 312 Sk2), i. e. the last two verse groups of the third section of Heimgang des Lebens. Webern sketched out a vocal line for the first words of the poem and then developed a twelve-note row from it. In the sketchbook in question, these and the subsequent sketches for Op. 23 constitute an interruption in his work on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, the first sketches of which already date from early 1931 but which had not progressed beyond 30 measures of the first movement by autumn 1932.125 In fact, since mid-1931, Webern’s health problems and a change of residence, compounded by his numerous conducting responsibilities in 1932, had barely left him either the time or the opportunity to compose. On 3 March 1933, he was able to report to Jone that he had made the first sketches for “Herr Jesus mein” M 312. He furthermore complained about his lack of time, also in connection with this new composition:

", + + "

I am in a considerable state of distress: it is depressing me more than ever that I don’t have the time to compose. I quite spontaneously began setting your beautiful, wonderful poem one day, but I soon had to interrupt my work on it again, and the fact that I allowed myself to sit now and then at our work back in January and February is taking its toll. Now I’m so behind with the other things, with preparing for my concerts, here and in London. How am I supposed to do it? It’s wonderful that your poem is called “Joy”.126

", + + "

Webern had clearly already told Jone about “our work” even before writing this letter, and the title “Die Freude” (“Joy”) that Webern mentions here refers to a subsequent communication from Jone that the verses set to music by Webern (in a manuscript version independent of their publication in Brenner) belonged to a poem of that title.127 However, Webern seems to have been consistent in using published versions of the poems as the basis for his compositions.128 It was not until two months later, when Webern was busy both with a concert in the Great Hall of the Konzerthaus in Vienna on 19 March129 and with his weekly lecture series “Paths to new music”,130 that he began work on the piano introduction (M 312 Sk3) and wrote the opening of his continuity draft up to measure 8 (M 312 Sk4). He then revisited the opening of this continuity draft from measure 4 onwards, dating this version “31. V. 33” (M 312 Sk4, mm. 4B–5C), which means that it was not begun until after his return from his concert tour in London (16–26 April) and a radio concert with Mahler’s Sixth Symphony that he conducted on 23 May.131 At the close of this continuity draft, Webern wrote: “Maria Enzersdorf | 14. VII. 33”.

", + "

After a radio concert on 21 July,132 Webern began sketching another song, this time a setting of a text in Brenner that was printed on the same page, directly above the verses that he had already set (“Es stürzt aus Höhen” M 313). He wrote to Jone on 29 July that he had completed the song he had begun previously, and that he had begun work on a new one:

", + + "

I have already been working well. Your texts fulfil me more and more; one of them is already finished, from “Herz Jesus mein” to “Und, ewig Schlafende, auch euch erwartet Tag”. And now I am linking “Es stürzt aus Höhen Frische” – how wonderful is the substance of these words – to “überglüht noch lange Glut” to form a second song. But the order of the two songs will correspond to that of your poems.

", + "

How deeply they touch me. And I am so glad that I am finally in this position (composing a work to your texts). I had desired this for a long time. After I had finished the first song, I had to interrupt my work for 8 days because I still had to conduct a concert on the radio. I wanted to turn it down. But ultimately – well, you know the reasons why.133

", + + "

Webern presumably interrupted his work on the continuity draft of this second song when he went on holiday “to an alpine pasture at an altitude of some 1600 m near Kitzbühel in the Tyrol”134 in early August. According to the date given in A, he completed it on “18. VIII. 33” (M 313 Sk4 m. 30C). In a letter to Jone of 3 September, he declared the two songs he had written up to now to be complete “for the moment”:

", + + "

For the moment, I have finished composing the texts from your “Viae inviae”. It has proceeded as I had planned: 1st song: “Es stürzt aus Höhen” up to “den Himmel u. die Seele überglüht noch lange Glut.” 2. “Herr Jesus mein” up to “auch euch erwartet Tag.” (i. e. the whole of page 65 from “Brenner”). I say “for the moment”, because I feel that I might soon have to come back to words of yours. But for the time being, at least, I believe that these 2 songs should remain on their own. They form a whole in musical terms, in the sense that they demonstrate a certain contrast. At the moment, I’m busy again with a purely instrumental piece that I began quite some while ago. How happy I was when I was working with your words!135

", + + "

Webern also resumed sketching the first movement of his Concerto, Op. 24 in early September, using the same sketchbook. However, he was able neither to finish it nor to work continually on it. At the end of that same month, he was planning to play Jone both of the songs from Op. 23 that he had completed up to now, during one of her stays in Vienna:

", + + "

You will soon be coming to Vienna, thank God. [...] I wonder what you’ll say to my songs that use your texts? How will it seem to you, when you hear your words as music? If only I could keep working. I hope to be able to start again in October.136

", + + "

It was only in early January 1934 that Webern returned to work on Op. 23, making his initial sketches in A for the song “Das dunkle Herz” M 314 (M 314 Sk1, M 314 Sk2 and M 314 Sk3; these are dated “3. I. 1934” and “5. I. 34”). Its text uses the opening verses that were numbered together as a unit in Brenner, and in this respect it serves as a completion of the two songs that Webern had already composed. In a letter to Jone, Webern emphasised that the order of the verses as printed in the source would continue to determine their order in his cycle, which had now grown to encompass three songs:

", + + "

I’m now finally back at work. It’s: “Das dunkle Herz, das in sich lauscht...”. It’s everything that’s on the page from then on, in other words up to where I was already: “Es stürzt aus Höhen Frische…”. Following the order that you determined, [this new song] shall precede this and the subsequent “Herr Jesus mein…”.

", + "

It seems to me as if my current state of working is something I have never before experienced like this.

", + "

I hope it can last!137

", + + "

Webern’s work on the continuity draft (M 314 Sk3), which he had begun on 5 January 1934, was then interrupted by his radio concert with Felix Mendelssohn Bartholdy’s Violin Concerto and Third Symphony on 28 January.138 Another interruption was occasioned by the street fighting that took place from 12 to 15 February in Vienna and other big cities in Austria between the Republikanischer Schutzbund (the paramilitary organization of the Social Democratic Party in Austria) on the one side, and the army and police under the control of Chancellor Engelbert Dollfuß’s regime on the other. These events had far-reaching consequences for Webern’s career as a conductor (see the details below on the Three Songs, Op. 25) and also had a short-term impact on his state of mind, making it difficult for him to continue work on the song he had begun, as he explained in a letter to Jone of 14 February:

", + + "

Dearest Mrs Jone,

", + "

The commotion of the last few days has been monstrous and is becoming ever more so. It is barely possible to keep hold of a single thought [...].

", + "

[...] And last week, I once again used every free moment to continue working on the poems [sic] “Das dunkle Herz”. I again had a little free time. [...]

", + "

And now once again – Mrs Jone! [I hear] the thunder of big guns and the rattle of machine-guns. –139

", + + "

On 20 February, Webern wrote to Humplik, telling him that he had nevertheless reached the passage “an das Wartende im Dunkel” in his continuity draft, thus measure 15.140 By the beginning of March he had got as far as measure 24: “In my work, I have reached: ... ‘ein goldenes Flattern trägt’ and I’m going to continue tomorrow. I still have some free time ahead of me.”141 He reported completing the sketch for the vocal part on 11 March,142 and he dated the continuity draft “15. III. 34” upon finally completing it. In the letter that he then wrote to Jone, Webern gave a relatively detailed description of this new song, and went on to propose a title for the collection of songs he had now finished:

", + + "

Meanwhile, the third song is finished.

", + "

Because it encompasses the text from “Das dunkle Herz…” to “…ich und du und alle”, it has become rather long and in its musical form it is really a kind of “aria”, comprising a slow section and then a quicker section from “ich bin nicht mein…”, though it nevertheless bears the tempo marking “Very calmly”.

", + "

This 2nd section is kept in an almost whispering tone. Perhaps you can get a rough idea from this description how I have interpreted your words in the 2nd section in particular: after a great upsurge in the first [section] there is utterly abrupt, complete silence, calm, simplicity.

", + "

I thought that the title could be this:

", + "

Three Songs from Viae inviae.

", + "

May I adopt this title from your poems?

", + "

I shall send you the manuscript soon.143

", + + "

In a letter that Webern sent one week later to Alban Berg, he went into greater detail about the work’s formal organization, also regarding the other songs:

", + + "

I have just finished a third song (based on Jone texts). Actually, it’s an aria, comprising a slow section and a quicker section. It will be the first.

", + "

And I’ve realized that the other two, which I composed earlier, are actually something other than songs (in their form): the one is a straightforward recitative with an arioso, the other (which is now the last of the sequence) is a rondo.

", + "

Thus, without having actually wanted it, I’ve come to engage with larger vocal forms in this opus. I’ll end up writing an opera after all.144

", + + "

It is unclear whether Webern here means “finished” to refer retrospectively to the continuity draft whose completion predates this letter by a few days, or whether he is referring to some fair copy that he might already have made. (It is also possible that he had made fair copies of the other two songs shortly after having finished their respective continuity drafts). In any case, the autograph engraver’s copy of all three songs, C, was received by Universal Edition before July, and was accepted for publication on 11 July.145 However, the actual publishing process was delayed considerably. Webern had initially assumed that “U. E. [...] will [print] my last work by the autumn”,146 but by the end of August he learned that his publisher had “regrettably not yet begun” with engraving his songs “due to other, time-critical work”.147 It was not until February 1935 that Webern’s manuscript was finally sent to the engraver – though this order to the engraver was immediately rescinded. The engraver in fact only began work in early January 1936. Webern received the first proofs at the end of that same month, with two further sets of proofs received on 10 and 27 March respectively. The Three Songs, Op. 23 were published on 4 May 1936 in an edition of 302 copies.148

", + "

Already in 1935, Webern had hoped that Julia Nessy might sing his Three Songs, Op. 23, but this was not to be.149 The world premiere did not take place until 5 December 1943 at the Basel Conservatory, without the composer being present. This was a concert of the local section of the ISCM, largely organized by Willi Reich, in celebration of Webern’s 60th birthday.150 The pianist Paul Baumgartner accompanied Marguerite Gradmann-Lüscher, who had already given a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and a selection from the Four Songs, Op. 12, during Webern’s visit to Switzerland in 1940.151

", + "

The reviews of this concert in the Basel newspapers were clearly influenced by the introductory talk given by Reich and focused on offering an overall view of this supposedly “other-worldly” composer, who was thus already being seen as a kind of historical figure:

", + + "

To be sure, the works that were performed (some of which were world premieres) conveyed the impression of being something thoroughly unique, unusual and unworldly. This is a music of the highest spiritual potency, embodying law and power at the same time. One might almost say it is too true to be beautiful, meaning that this music serves only the imperatives of honesty and sincerity, far beyond all notions of aural beauty or discord, and thereby compels its notes unconditionally to submit to the law of the spirit and its power of cognition. [...] But the general development of music cannot reach this point, and nor should it, because only someone who has set himself apart from the world and does not care about its judgements will be able to see these things and to reproduce them in sound: namely Anton Webern.152

", + + "

Another review wrote only as follows about the Three Songs:

", + + "

Three songs Op. 23 from Hildegard Jone’s Viae inviae were given their first performance. Here, the calm, tender vocal line, which is only occasionally fractured by large leaps, is disturbed by fierce, hard interjections from the accompaniment.153

", + + "

For an “evening of contemporary poetry” featuring Jone’s poems, planned for the Archbishop’s palace in Vienna on 29 November 1944, Jone and Webern for a while wanted to arrange a performance of both the Three Songs, Op. 23, and the Three Songs, Op. 25,154 which were rehearsed by an unnamed “Swedish [woman] singer” and Webern’s student Fré Focke.155 Ultimately, however, this performance did not take place, and no further plans for performances during Webern’s lifetime are known to us.

" + ] + }, + { + "blockId": "op25", + "blockHeader": "Three Songs on Poems of Hildegard Jone, Op. 25", + "blockContent": [ + "

The Three Songs after Poems of Hildegard Jone, Op. 25, which Webern composed in the course of 1934, mark a continuation of his compositional interest in her poetry that had begun the year before with his Three Songs from Viae inviae, Op. 23. However, Webern’s professional situation changed drastically on account of the political consequences of the battles that took place from 12 to 15 February 1934 in Vienna and other big Austrian cities between the paramilitary Republikanischer Schutzbund of the Social Democratic Party and the army and police authorities of the Dollfuß regime. The latter now banned the Social Democratic Party, which meant that Webern lost his job as conductor with the Vienna Workers’ Symphony Concerts and as the artistic director of the Social Democratic Choral Society (the “Singverein der Sozialdemokratischen Kunststelle”). This in turn meant that the number of his radio engagements dwindled. In a letter to Arnold Schoenberg, who had emigrated to the United States in 1933, Webern described his situation in comparatively drastic terms:

", + + "

It’s becoming increasingly difficult for me here. I am very aware of what’s been taken from me by the events in question, and which will hardly be able to be restored. – And apart from material things, it’s as if their cannon had shot to pieces – no, their cannon really have shot to pieces – what I had built up so painstakingly over 10 years.156

", + + "

All the same, his increasing isolation did have one specific consequence: “I’ve at least now got some time for my work […]”157

", + "

After completing his Three Songs, Op. 23 in March 1934, Webern continued working on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, and in parallel with this he also began composing a song to a text from Jone’s collection entitled Die Freude (“Joy”), which comprises 29 (unnumbered) poems in total, in July of the same year. Jone had published her cycle in the autumn of 1933 in the Catholic bimonthly magazine Die Schildgenossen. It is subdivided into the following:

", + + "

–  5 “Spring” (“Frühling”) poems (from which Webern set “Wie bin ich froh!” M 317 [Op. 25/1]),

", + "

–  8 “Star” (“Stern”) poems (from which Webern set “Sterne, ihr silbernen Biene” M 321 [Op. 25/3]) and

", + "

–  16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", + + "

It is impossible to determine whether Webern might have received a manuscript from Jone of the three poems he chose to set, either before or after she published them. In any case, we do know that the relevant issue of Die Schildgenossen was still unknown to Webern at the close of November 1933.159

", + "

In early January 1934, when Webern had only just begun his continuity draft of M 314 (Op. 23/1), he announced that his next project might involve setting “several ‘Star’ poems”, i. e. poems from the eight “Star” poems in the collection Die Freude.160 In fact, after having completed the continuity draft for M 314 (on 15 March 1934) and the first movement of his Concerto, Op. 24 (on 25 June 1934), Webern did not set any of the “Star” poems, but instead chose the first of the “Spring” group, which is also the very first poem in the whole collection: “Wie bin ich froh!” M 317. (Webern’s sketches for the first movement of his Concerto, Op. 24 reveal that he had also considered interrupting his work to set the poem “Wie kann der Tod so nah der Liebe wohnen?” [M 315] for chorus [on 11 May 1934], though he rejected this idea). According to the dates in his sketches, Webern began composing “Wie bin ich froh!” on 4 July 1934. A few days later, he wrote to Jone and Josef Humplik to tell them about it:

", + + "

Did I tell you already that my first movement [i. e. of Op. 24] is finished? Right now, for reasons that I’ll tell you later, I have interrupted it to write something else: a setting of a brief poem by you, dearest friend [“Freundin”, i. e. Jone]:

", + "

“Wie bin ich froh! Noch einmal

", + "

wird mir Alles grün….” [“How happy I am! Once again, everything is turning green for me…”]161

", + + "

Webern’s “reasons” for writing a song, instead of continuing with the next movements of his Concerto, Op. 24, were probably linked to his wanting to complete a work in time for David Josef Bach’s 60th birthday on 13 August of that year. Bach was a childhood friend of Schoenberg’s who had initiated the Workers’ Symphony Concerts in Vienna in the 1910s. He had also been the director of the Social Democratic Party’s arts office since 1919, and from 1922 onwards had engaged Webern repeatedly to conduct its concerts. Most importantly, he had appointed Webern as the chief conductor of the Singverein in late 1923 and had thereby made a significant contribution to establishing his reputation as a conductor. When the Social Democratic Party was banned after the events of February 1934, this put Bach himself in a precarious situation – a fact to which Webern drew attention in his letters to Schoenberg and others. He also mentioned Bach’s upcoming birthday and the song that he intended to dedicate to him:

", + + "

For Dr Bach’s 60th birthday – on 13 August of this year – the following is being prepared: an address with signatures and a collection of money. His financial situation is still highly onerous […].

", + "

I’m going to dedicate a song to him […].162

", + + "

Webern had finished his continuity draft of 15 measures, M 317 Sk4, in A (Sketchbook 3) a few days before, on 16 July, and thereupon wrote to Jone: “The new song is ready. –”163 There was for the moment no mention of his including it in any collection of songs he might be planning.164 After this continuity draft, the same sketchbook contains sketches for the second movement (M 319) of his Concerto, Op. 24, dated “21 VII[.]” Webern wrote the fair copy of his new song in E either just before making these sketches, or in parallel with them, though its initial layer presumably did not correspond to the later version that lasts 12 measures. Webern made a presentation copy of version 1 of this song (B) as his birthday gift for Bach. This was probably copied just before Webern left for a mountain hike in the Ötztal Alps on 11 August. Bach was spending the summer in Henndorf just outside Salzburg, and Webern stopped off there on his journey to the mountains in order to deliver his gift in person.165 Webern initially revised the autograph of M 317 contained in E (as Op. 25/1) to bring it in line with version 1 as found in B, though he later changed it again – presumably only when he made the fair copies of M 321 (Op. 25/3) and M 322 (Op. 25/2) – which resulted in version 2 of the song that he incorporated into Op. 25 that ultimately comprised three songs.

", + "

A few days after having completed the continuity draft for the third movement (M 320) of his Concerto, Op. 24 on 4 September, Webern reported to Humplik and Jone about his plan for a “song opus” that would also contain “Wie bin ich froh!”, M 317: “I have just finished my instrumental opus and I now want to continue with the song opus that I have already begun – [for which] ‘Wie bin ich froh’ has long been finished.”166 An initial sketch for “Sterne, ihr silbernen Bienen” M 321 in D (Sketchbook 4) can be found among the sketches for the third movement of his Concerto, Op. 24, and was probably already made in late August 1934 (M 321 Sk1). According to the dates in Webern’s own hand, he began making further sketches on 19 September (M 321 Sk2). In early October, he was able to report to Jone on his progress, though the precise number of songs for his “new song book” remained open. He even hinted at the possible inclusion of new songs that were not in her poetry collection Die Freude:

", + + "

Dear, dear friend,

", + "

Many heartfelt thanks for the beautiful songs!

", + "

“How happy I am” to have them [i. e. an allusion to the title of M 317, “Wie bin ich froh”]. I am sure that one or the other of them will be included in the new songbook. Now I am working on “Sterne, Ihr silbernen Bienen...” and have already made much progress.167

", + + "

Webern completed his continuity draft on 8 October and dated it thus (M 321 Sk3 mm. 21B–26B). He wrote to Jone on 17 October to report on its completion, and also on his having begun work on “Des Herzens Purpurvogel” M 322.168 He dated the beginning of an initial continuity draft “24. X[.] 34”, though he later broke off work on it (M 322 Sk3 mm. {1A}, {1B}, {1C-2A}, 1D–2B). He had presumably begun the preceding sketches (M 322 Sk1 and M 322 Sk2) before writing to Jone on 17 October; he might also have begun M 322 Sk3 measures {1A}, {1B}, {1C–2A} before that date. Webern seems to have been working on the final continuity draft in early November,169 which was completed on 15 November according to the date in the sketchbook (M 322 Sk4 m. 21C).

", + "

We have no documentary proof of when Webern made the fair copies of his two new songs, nor when he decided to reverse the order of the second and third songs when concluding this new opus (which was contrary both to their order in Die Freude and to the order in which he had composed them). Webern no longer mentions this project in his letters from December 1934 onwards. Instead, he seems to have been especially preoccupied with his arrangement of the Fuga (Ricercata) a 6 voci from Bach’s Musical Offering (M 323). He probably completed his fair copy of the complete collection of songs that he now numbered Op. 25 (E) by the end of 1934 at the latest.

", + "

In mid-October 1938, Webern wrote to Erwin Stein, a former student of Schoenberg’s who had worked for Universal Edition, had recently emigrated to London, and had now taken up a job as an editor for Boosey & Hawkes. He mentioned his “Three Songs with Piano, Op. 25, on poems of H. Jone” as being “a book of songs not yet printed nor yet accepted by any publisher”.170 We do not know if Webern had already offered them to Universal Edition. It was not until Webern’s 60th birthday in 1943 – presumably in connection with a possible performance (see below) – that Universal held out to Webern the prospect of publishing these songs, though nothing came of it during Webern’s lifetime.171 This opus was only published by Universal Edition in 1956, long after Webern’s death.

", + "

The world premiere of these Three Songs, Op. 25, together with that of the Three Songs, Op. 23, was planned for a concert of the Basel section of the ISCM, held on 5 December 1943, with Marguerite Gradmann-Lüscher accompanied by Paul Baumgartner. In order to facilitate this performance, Universal Edition apparently made two photographic copies of Webern’s autograph (since lost) and presumably sent them to Erich Schmid.172 But the Three Songs, Op. 25 were not performed on that occasion. When readings of Jone’s poetry were being organized at an “Evening of contemporary poetry” to be held at the Archbishop’s Palace in Vienna on 29 November 1944, Jone and Webern for some time harboured the plan of including a performance of both the Three Songs, Op. 23 and the Three Songs, Op. 25.173 They were to have been performed by an unnamed “Swedish singer” accompanied by Webern’s student Fré Focke, who also began rehearsing the works together.174 Ultimately, however, this performance never took place. The world premiere was only given posthumously, on 16 March 1952 in New York, with Bethany Beardslee accompanied by Jacques Monod at the piano.175

" + ] + }, + { + "blockId": "about", + "blockHeader": "About this edition", + "blockContent": [ + "

The songs with piano accompaniment that are collected in this volume are published in different formats depending on the situation in which their respective texts have been transmitted to us. The published song collections are here presented as “work editions” (Werkeditionen). The versions that are extant solely as fair copies in ink, or which – as in the case of the songs to texts by Stefan George – are grouped together in clusters in this edition because the common circumstances of their composition imply that they belong together, are presented here as “text editions” (Texteditionen). The Three Songs, Op. 25 constitute an exception to this rule, for they were not published during Webern’s lifetime. The autograph fair copy of the complete Op. 25 nevertheless offers all the characteristics of an engraver’s copy of a work intended for publication. For this reason, presenting this opus as a work edition here is both the obvious choice and unproblematic from the view of producing a critical edition of the musical text. Extant pencil sketches will be presented as “sketch editions” (Skizzeneditionen) in the online edition of the AWG.

", + "

Webern’s songs to texts by Stefan George are edited here as a coherent cluster. The final form in which Webern left them to us – the two collections published as his Opp. 3 and 4 – was preceded by a common compositional history that featured several individually distinguishable versions of their musical text, plus four songs that were not included in the final publications. The different versions of the musical text that can be identified in the correction layers of the surviving ink manuscripts and that predate the final publications (which are here given as work editions) are presented here as text editions in view of the material used to notate them. These include some of the earliest versions of the musical texts, which at times come across as sketch-like. (In these cases, a sketch edition would provide less information on the writing process than is usually the case with Webern’s pencil sketches, because those layers that predate the correction process have often been subjected to erasure and can rarely be deciphered with any certainty; they are generally impossible to decipher at all).

", + "

In the case of the various collections of George songs in particular that Webern conceived between 1909 and 1919, it is not always possible to reconstruct unambiguously which versions of which songs were intended in what order, so the different versions that are nevertheless decipherable in the sources are presented in chronological order in the printed edition here, while the songs themselves are presented in alphabetical order according to their respective title.

", + "

As a rule, Webern’s numerous versions of his George songs adopted the poet’s spellings (especially his frequent lack of capitalization for nouns) and the occasionally sparse punctuation of his original poems. These idiosyncrasies have been retained in our text editions here. Any additions or corrections made here to the song texts are similarly oriented on George’s original poems, and are listed in the Critical Notes (Textkritische Anmerkungen). Any cases of divergence from the original poem are denoted by “sic” in the Critical Notes.

", + "

In comparison to the George songs, there are comparatively few early versions of the individual songs that make up the Four Songs, Op. 12, and the Three Songs, Op. 25, but they have been dealt with in similar fashion here with regard to the order of their respective text editions. Even though the idiosyncrasies of the respective source texts for these editions are not as characteristic as in the case of George’s poems, we have applied the same principles to our editorial treatment of the vocal text.

" + ] + }, + { + "blockId": "acknowledgements", + "blockHeader": "Acknowledgements", + "blockContent": [ + "

As editor, I should like to thank the numerous people and institutions who have supported me in many ways during my work. My thanks above all go to the staff of the archives and libraries who have made digital reproductions of their sources available to us, or granted us access to the originals: The Arnold Schönberg Center in Vienna, the Music Division of the Library of Congress in Washington D.C., the Morgan Library & Museum in New York City, the Music Collection of the Austrian National Library in Vienna, the Music Collection of the Wienbibliothek im Rathaus in Vienna, and the Historical Archive of Universal Edition, also in Vienna. Special thanks go to the Paul Sacher Foundation in Basel, which holds most of the extant Webern sources, in particular to Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert and Andrietta Wahl for always being ready to help and for providing expert advice.

", + "

I should also like to thank all the current members of the AWG project team for their collegiality and for their fruitful spirit of collaboration, namely Michael Matter, Stefan Münnich, Simon Obert, Barbara Schingnitz and Matthias Schmidt, plus our former colleagues Julia Bungardt, Monika Kröpfl, Nikolaus Urbanek and Manuel Strauß, and our interns Tamara Ackermann, Yuta Asai, Daia Aschwanden, Madita Knöpfle and Youchen Yu.

", + "

Rita Gautschy (Swiss National Data and Service Center for the Humanities), Lukas Rosenthaler and Tobias Schweizer (Digital Humanities Lab of the University of Basel) offered advice and assistance in designing and setting up the online edition, as did numerous colleagues from the abovementioned institutions.

", + "

Heinz Stolba of Universal Edition in Vienna deserves my thanks for his commitment and cooperation.

", + "

Finally, I should like to express my sincere gratitude to Simone Hohmaier (Staatliches Institut für Musikforschung, Berlin), Juliane Brand (Karl Weigl Foundation, San Rafael CA), Regina Busch (Vienna), Felix Wörner (Basel) and Michelle Ziegler (Basel) for suggestions, feedback and advice of all kinds.

", + + "

Basel, 14 May 2024 Thomas Ahrend

", + "

Translation: Chris Walton

" + ] + } + ], + "notes": [ + "

1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.

", + "

2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).

", + "

4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.

", + "

5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.

", + "

6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”

", + "

7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.

", + "

8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).

", + "

9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.

", + "

10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).

", + "

11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”

", + "

12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).

", + "

13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).

", + "

14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.

", + "

15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.

", + "

16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”

", + "

17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).

", + "

18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.

", + "

19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.

", + "

20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.

", + "

21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.

", + "

22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”

", + "

23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.

", + "

24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”

", + "

25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.

", + "

26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.

", + "

27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.

", + "

28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.

", + "

29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.

", + "

30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”

", + "

32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”

", + "

33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).

", + "

34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”

", + "

35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).

", + "

36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”

", + "

37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”

", + "

38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”

", + "

39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”

", + "

40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”

", + "

42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.

", + "

43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”

", + "

44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.

", + "

45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”

", + "

46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.

", + "

47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”

", + "

48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).

", + "

49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.

", + "

50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.

", + "

51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).

", + "

52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”

", + "

53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).

", + "

54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”

", + "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", + "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", + "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", + "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", + "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", + "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", + "

62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.

", + "

63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.

", + "

64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.

", + "

65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.

", + "

66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

68 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.

", + "

70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.

", + "

72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.

", + "

73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.

", + "

74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.

", + "

75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).

", + "

76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.

", + "

77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).

", + "

78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”

", + "

79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.

", + "

80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.

", + "

81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].

", + "

83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.

", + "

84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).

", + "

85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).

", + "

86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”

", + "

87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.

", + "

88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.

", + "

89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.

", + "

91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.

", + "

92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.

", + "

93 | Near this correction, we can also discern “13” in a further layer that has been erased.

", + "

94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”

", + "

95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.

", + "

96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).

", + "

97 | See ibid. (Appendix), pp. 340 f.

", + "

98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.

", + "

100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.

", + "

102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.

", + "

103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.

", + "

104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.

", + "

105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”

", + "

106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

108 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.

", + "

110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.

", + "

111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.

", + "

113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”

", + "

114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.

", + "

115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”

", + "

117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.

", + "

119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”

", + "

121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.

", + "

122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”

", + "

123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.

", + "

124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.

", + "

125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.

", + "

126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).

", + "

127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.

", + "

128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).

", + "

131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.

", + "

132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.

", + "

133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.

", + "

134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.

", + "

135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.

", + "

137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).

", + "

138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.

", + "

139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.

", + "

141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.

", + "

142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.

", + "

143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”

", + "

144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).

", + "

146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).

", + "

147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).

", + "

148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.

", + "

149 | See Webern to Josef Humplik, 8 May 1935 (note 109).

", + "

150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”

", + "

151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.

", + "

152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.

", + "

153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.

", + "

154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”

", + "

155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", + "

156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).

", + "

157 | Ibid.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.

", + "

159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”

", + "

160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.

", + "

161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).

", + "

163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).

", + "

164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”

", + "

165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.

", + "

166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.

", + "

168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”

", + "

169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”

", + "

170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.

", + "

171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”

", + "

172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EF1–F2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.

", + "

173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”

", + "

174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", + "

175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f.

" + ] + } + ] +} diff --git a/src/assets/data/edition/series/1/section/5/m143/intro.json b/src/assets/data/edition/series/1/section/5/m143/intro.json index ce6b8726a3..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/m143/intro.json +++ b/src/assets/data/edition/series/1/section/5/m143/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "m143", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} diff --git a/src/assets/data/edition/series/1/section/5/m144/intro.json b/src/assets/data/edition/series/1/section/5/m144/intro.json index c881edfb6e..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/m144/intro.json +++ b/src/assets/data/edition/series/1/section/5/m144/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "m144", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} diff --git a/src/assets/data/edition/series/1/section/5/m145/intro.json b/src/assets/data/edition/series/1/section/5/m145/intro.json index 3a3631cad4..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/m145/intro.json +++ b/src/assets/data/edition/series/1/section/5/m145/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "m145", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} diff --git a/src/assets/data/edition/series/1/section/5/m146/intro.json b/src/assets/data/edition/series/1/section/5/m146/intro.json index 01aa40b298..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/m146/intro.json +++ b/src/assets/data/edition/series/1/section/5/m146/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "m146", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} diff --git a/src/assets/data/edition/series/1/section/5/op12/intro.json b/src/assets/data/edition/series/1/section/5/op12/intro.json index 5754864fa3..b5332d1c3e 100644 --- a/src/assets/data/edition/series/1/section/5/op12/intro.json +++ b/src/assets/data/edition/series/1/section/5/op12/intro.json @@ -1,983 +1,7 @@ { "intro": [ { - "id": "de-awg-I-5", - "content": [ - { - "blockId": "preamble", - "blockHeader": "", - "blockContent": [ - "

Die in Serie I Abteilung 5 versammelten Klavierlieder beinhalten die erkennbaren Textfassungen der zu Lebzeiten Anton Weberns mit Opuszahlen versehenen und gedruckten oder zum Druck vorgesehenen Klavierlieder (op. 3, 4, 12, 23 und 25) sowie verschiedene dem Entstehungsprozess einiger dieser Editionskomplexe zuzuordnende Einzellieder (George-Lieder M 143–146). Weitere zu Lebzeiten Weberns nicht publizierte Lied-Komplexe, auch wenn sie mit später obsolet gewordenen Opuszahlen versehen wurden (z. B. Dehmel-Lieder M 83, 119, 130–131), werden in Serie II Abteilung 5 ediert.

" - ] - }, - { - "blockId": "op3+4", - "blockHeader": "George-Lieder", - "blockContent": [ - "

Die insgesamt 14 Klavierlieder Weberns auf Texte von Stefan George (M 133–146) wurden in ihren frühesten Textfassungen vermutlich zwischen Dezember 1907 und 1909 komponiert und gehören zusammen mit den Fünf Sätzen für Streichquartett M 147–151 sowie den Sechs Stücken für großes Orchester M 152–157 zu seinen ersten sogenannten atonalen Kompositionen. Die Zusammenstellung der beiden 1919 bzw. 1923 gedruckten Sammlungen Fünf Lieder aus Der siebente Ring von Stefan George op. 3 und Fünf Lieder nach Gedichten von Stefan George op. 4 stand dabei nicht von Anfang an fest, sondern war einem langwierigen und in seinen verschiedenen Stadien nicht mehr eindeutig rekonstruierbaren Prozess unterworfen, während dessen die meisten Lieder in verschiedenen Textfassungen vorlagen.

", - "

Eine erste George-Rezeption Weberns ist bereits um 1900 nachweisbar, als er in eines seiner Tagebücher das Gedicht Indes deine mutter dich stillt abschreibt.1 Eine kompositorische Auseinandersetzung mit diesem Gedicht oder eine weitergehende George-Lektüre ist nicht dokumentiert. Zu weiteren Berührungen mit Georges Lyrik dürfte es im Wiener Ansorge-Verein gekommen sein, in dem Webern zusammen mit seinem Studienfreund Karl Horwitz seit 1904 aktiv war und dessen Vereinsabende auch Aufführungen von George-Vertonungen Conrad Ansorges (Fünf Gesänge nach Dichtungen von Stefan George op. 14) im Programm hatten.2

", - "

Seit Sommer 1907 besaß Webern eine Ausgabe von Georges Das Jahr der Seele und ab Sommer 1908 auch Exemplare von Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten sowie von Der siebente Ring.3 Alle Bücher weisen Kreuz- oder Winkelmarkierungen bei einigen, jedoch nicht bei allen Titeln der von Webern – auch der als Chorstück bzw. Orchesterlied (Entflieht auf leichten kähnen bzw. Kunfttag III) – vertonten Gedichte auf. Nur in einem Fall (Kunfttag II) findet sich eine Markierung bei einem Gedicht, zu dem keine musikalische Umsetzung durch Webern bekannt ist. Über die Kriterien der Textauswahl Weberns aus den ihm vorliegenden Gedichtbänden gibt es keine Dokumente.4

", - "

Ein entscheidender Impuls zur kompositorischen Auseinandersetzung mit Gedichten Georges bestand vermutlich nicht zuletzt in Vertonungen Arnold Schönbergs, der am 17. Dezember 1907 das Lied Ich darf nicht dankend op. 14 Nr. 1 und von März bis Mai 1908 zahlreiche Lieder (nachweislich: Nr. 3–8) des Zyklus Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 komponiert hatte.5 In einem Brief vom 11. Juni 1908 an Schönberg finden sich Hinweise, dass Webern einige der zu diesem Zeitpunkt bereits fertiggestellten Lieder kannte.6 Verschiedene Merkmale lassen es plausibel erscheinen, dass „Erwachen aus dem tiefsten Traumesschoße“ M 143 Weberns erste, und zwar sich deutlich auf Schönbergs op. 14 Nr. 1 beziehende George-Vertonung für Singstimme und Klavier darstellt. Der Umstand, dass diese beiden Lieder im Unterschied zu den meisten später folgenden noch eine Tonartvorzeichnung aufweisen (wie auch Weberns ebenfalls möglicherweise 1907/08 entstandener Chor „Entflieht auf leichten Kähnen“ M 129), deutet auf eine vergleichsweise frühe Konzeption hin, die – mit Blick auf das dokumentierte Entstehungsdatum von Schönbergs op. 14 Nr. 1 als terminus post quem – zwischen Dezember 1907 und Juni 1908 stattgefunden haben könnte.7 Ein Vergleich des Schriftduktus und der verwendeten Notenpapiersorten legt nahe, dass einschließlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 die ersten bzw. einzigen Textfassungen folgender Lieder bereits ebenfalls bis Mitte 1908 entstanden sein könnten:

", - - "
„Dies ist ein Lied“ M 133(Textfassung 1 in A, Textfassung 2 in B)
„Erwachen aus dem tiefsten Traumesschoße“ M 143(einzige Textfassung in A)
„Im Windesweben“ M 134(Textfassung 1 in A)
Kunfttag I M 144(einzige Textfassung in A)
", - - "

In einem Brief an Schönberg vom Dezember 1908 schrieb Webern aus Berlin – im Zusammenhang einer Bitte um ein Empfehlungsschreiben an Richard Strauss und im Hinblick auf den wohl von Schönberg vorgeschlagenen Kontakt zu dem Berliner Verleger Max Marschalk (Dreililien-Verlag) –, dass er nicht ausreichend Material für ein Liederheft habe:

", - - "

Ich weiß nicht, ich habe so eine blöde Scheu. Das ist es auch[,] warum ich noch nicht bei Marschalk war.

", - "

Wenn ich ein Liederheft fertig hätte. Aber so kann er ja nichts nehmen, momentan.

", - "

Einerseits möchte ich, andrerseits –8

", - - "

Offensichtlich schienen Webern also die vermutlich bis Ende 1908 vorliegenden vier George-Lieder sowie die ebenfalls bereits komponierten fünf Dehmel-Lieder M 83, M 119, M 130–132 keine publikationswürdige Option darzustellen.9

", - "

Ein expliziter und datierter Hinweis auf die Komposition eines George-Liedes findet sich erstmals in einem Brief an Heinrich Jalowetz vom 25. Mai 1909 aus Wien: „Ich habe wieder – Gott sei Dank – etwas geschrieben. Ein Lied nach George ‚Trauer I‘ (VII. Ring).“10 In den darauf folgenden Wochen und Monaten, die Webern ab dem 29. Mai zum größten Teil auf dem Familiengut Preglhof in Kärnten verbrachte, berichtete er Schönberg von der Fertigstellung (einer ersten Textfassung) seiner Fünf Sätze für Streichquartett M 147–151 sowie von weiteren Plänen zu Lied- und Orchesterkompositionen (Sechs Stücke für großes Orchester M 152–157),11 die sich jedoch durch den Tod und die Beerdigung seines Großvaters mütterlicherseits, Anton Geer, zunächst verzögerten:

", - - "

Ja, aus den oben angegebenen Gründen, hab’ ich nur ein Lied seit dem Quartett geschrieben. Wieder Stefan George. Vorgestern und Gestern war’s. Jetzt kommen noch ein par [sic]. Ich hab nämlich jetzt so wenig Ruh hier. Aber es muß noch alles werden.12

", - - "

Der Aufenthalt in Kärnten wurde darüber hinaus vermutlich ab Mitte Juli durch ein kurzfristiges Theaterengagement Weberns in Innsbruck unterbrochen. Ab Ende Juli meldete sich Webern wieder vom Preglhof bei Schönberg, und am 20. August hieß es in einem der Briefe:

", - - "

Mittlerweile habe ich 2 Lieder und zwei Orchesterstücke geschrieben. Die Lieder wieder ganz anders als bisher. Natürlich auch die Orchestersachen.“13

", - - "

Um welche George-Lieder es sich bei den in diesen Briefen an Schönberg erwähnten im Einzelnen handelte, ist nicht klar. Das einzige genauer datierbare George-Lied Weberns bleibt somit Trauer I M 145, das noch vor dem Aufenthalt in Kärnten kurz vor dem 25. Mai 1909 geschrieben wurde. Das verwendete Notenpapier sowie ein im Vergleich zu den oben genannten mutmaßlich 1908 komponierten Liedern deutlicher Wechsel des Schriftduktus legen nahe, dass im Laufe des Sommers oder Herbstes 1909 einschließlich Trauer I M 145 auch die ersten bzw. einzigen Textfassungen folgender Lieder entstanden sind:

", - - "
„An Bachesranft“ M 135(Textfassung 1 in E)
„Das lockere Saatgefilde“ M 146(einzige Textfassung in A)
Eingang M 138(Textfassung 1 in A)
„Im Morgentaun“ M 136(Textfassung 1 in D [Fragment], E und G)
„Ja Heil und Dank dir“ M 140(Textfassung 1 in B)
„Kahl reckt der Baum“ M 137(Textfassung 1 in E)
„Noch zwingt mich Treue“ M 139(Textfassung 1 in B)
„So ich traurig bin“ M 141(Textfassung 1 in B)
Trauer I M 145(einzige Textfassung in A – vor dem 25. Mai 1909)
", - - "

Auf der Grundlage der hier vorgeschlagenen schriftbildlichen Einschätzung lässt sich auch eine weitere Niederschrift von „Dies ist ein Lied“ M 133 (Textfassung 2: Grundschicht in C) diesem zeitlichen Umfeld zuordnen. Ob die nicht überlieferte autographe Niederschrift von „Ihr tratet zu dem Herde“ M 142 ([C]) auch 1909 oder bereits 1908 entstanden ist, lässt sich auf dieser Basis freilich nicht entscheiden.

", - "

Im Unterschied zu den Kompositionen Weberns vor 1908 und nach 1914 sind zu den George-Liedern (wie auch zu den meisten anderen im selben Zeitraum entstandenen Werken) keine konzipierenden (und häufig datierten) Bleistift-Skizzen (Verlaufsskizzen) überliefert, lediglich in den vorhandenen Tinten-Niederschriften Korrekturskizzen mit Bleistift zu einzelnen Stellen. Ob es solche in anderen Schaffensphasen Weberns üblichen Verlaufsskizzen mit Bleistift trotzdem gegeben hat oder ob die frühen mit Tinte niedergeschriebenen Textfassungen der Lieder im Kompositionsprozess für Webern hier eine quasi-skizzierende Funktion hatten, lässt sich nicht pauschal beantworten.14

", - "

Die Uraufführung von sechs George-Liedern fand am 8. Februar 1910 in Wien im Rahmen eines Konzerts des Vereins für Kunst und Kultur (der Weiterführung des Ansorge-Vereins) statt. Im gleichen Konzert wurden Weberns Fünf Sätze für Streichquartett M 147–151 sowie Lieder von Bruno Walter und Karl Weigl aufgeführt.15 Weberns Lieder sang, von ihm selbst am Klavier begleitet, Martha Winternitz-Dorda, die bereits einige Wochen zuvor, am 14. Januar, in einem weiteren Konzert des Vereins für Kunst und Kultur mit verschiedenen Schönberg-Aufführungen dessen Fünfzehn Gedichte aus Das Buch der hängenden Gärten von Stefan George op. 15 uraufgeführt hatte. Das Programmheft für den 8. Februar ordnet die Gedichttexte von folgenden sechs George-Vertonungen Weberns unter dem Sammeltitel „Lieder nach Stefan George“ in zwei nach den jeweiligen Gedichtbänden gegliederten Gruppen an, ohne eine Opuszahl zu nennen (in der folgenden schematischen Zusammenfassung mit der bei der Aufführung mutmaßlich zugrundeliegenden Textfassung):

", - - "
Aus dem siebenten Ring
Eingang M 138(Textfassung 1)
„Dies ist ein Lied“ M 133(Textfassung 2)
„Im Windesweben“ M 134(Textfassung 2)
„Kahl reckt der Baum“ M 137(Textfassung 1)
Aus dem Jahr der Seele
„Noch zwingt mich Treue“ M 139(Textfassung 1)
„Ihr tratet zu dem Herde“ M 142(unbekannte Textfassung)
", - - "

Von nahezu allen diesen Liedern sind Abschriften fremder Hand in F (in Quellenübersicht zu op. 3) und D (in Quellenübersicht zu op. 4) überliefert, die sehr wahrscheinlich für diese Aufführung angefertigt worden waren: Nummerierungen der Lieder mit Bleistift von „I“ bis „V“ in den beiden genannten Quellen entsprechen der Reihenfolge der Texte im Programmheft. (Die nicht überlieferte Abschrift von „Ihr tratet zu dem Herde“ M 142 [E] dürfte vermutlich mit der Ziffer „VI“ bezeichnet gewesen sein.) Die Kopisten-Handschrift wirkt in einigen musikalisch-orthographischen Details sehr unbeholfen und weist in der Textunterlegung Ähnlichkeit mit der Schrift von Wilhelmine (Minna) Mörtl, Weberns späterer Ehefrau, auf. Die Abschriften zeigen in der Regel zahlreiche Eintragungen Weberns, die zum Teil (vor allem bei „Dies ist ein Lied“ M 133) Überarbeitungen zu späteren Textfassungen betreffen. Einige der Eintragungen mit rotem Buntstift dürften aber von der Vorbereitung zur Uraufführung im Februar 1910 stammen, wobei die genannten Abschriften vermutlich von der Sängerin benutzt worden waren. Mit Blick auf die mutmaßlich bei der Aufführung zugrundeliegenden Textfassungen hätte Webern die Klavierbegleitung wahrscheinlich aus den folgenden Quellen im Zustand der entsprechenden Korrekturschicht spielen können:

", - - "
Eingang M 138:A (Textfassung 1)
„Dies ist ein Lied“ M 133:C (Textfassung 2)
„Im Windesweben“ M 134:E (Textfassung 2)
„Kahl reckt der Baum“ M 137:E (Textfassung 1)
„Noch zwingt mich Treue“ M 139:B (Textfassung 1)
„Ihr tratet zu dem Herde“ M 142:[C] (unbekannte Textfassung)
", - - "

Die in diesem Konzert von 1910 gespielten Kompositionen Weberns erhielten mehrere negative Kritiken. Angeführt sei hier beispielhaft die Passage einer Besprechung von Julius Korngold in der Neuen Freien Presse, in der auch auf das vorangegangene Schönberg-Konzert mit der Uraufführung von dessen George-Liedern op. 15 explizit Bezug genommen wird:16

", - - "

Kürzlich beschäftigte uns der Fall Schönberg, nun gibt es auch den Fall Anton v. Webern, wenn auch im Grunde beide eins sind. Denn Herr v. Webern ist Schönbergs Schüler, dazu einer, der nicht bloß auf die Worte des Meisters schwört, sondern diesen in manchem Betrachte übertrumpft. Dem ist gut so; die Spannung schwindet, eine fast gemütliche Gleichgiltigkeit stellt sich ein. Mit dem Lehrer konnte und mußte man sich noch auseinandersetzen, nicht mehr mit dem Jünger. […] Auch sechs Lieder nach Stephan [sic] George gehen, und nicht bloß in der Wahl des Dichters, auf Schönbergs Pfaden. Zu Akkorden aus der neuen Harmonielehre tritt eine in den entsprechenden Intervallen psalmodierende Singstimme. Auch der musikalisch geschulte, gut aufnahmsfähige Hörer macht eine psychische Erfahrung: er glaubt immer dasselbe zu hören. Hier schafft aber das Wort einigen Ausdruck, freilich durchgehends den seelischer Geknicktheit, seelischen Zerfalls. Wenn man guten Willens ist, wird man an den besten Stellen an Oktave Mirbeaus Maler gemahnt, der schließlich nur noch „Seelen“ malen wollte. . . .

", - "

Der Leser vergebe unsere grimmige Heiterkeit. Am Faschingdienstag aufgeführt, überträgt diese Musik unwillkürlich etwas von dessen Stimmung auf den Aschermittwoch der Kritik.17

", - - "

Die sechs 1910 uraufgeführten Lieder stellen lediglich eine Auswahl aus den zu diesem Zeitpunkt sehr wahrscheinlich bereits komponierten 14 George-Liedern Weberns dar. In zwei handschriftlichen Titelaufstellungen hatte der Komponist vermutlich bereits vor der Uraufführung alle Lieder in zwei als „op. 2“ und „op. 4“ gezählten Sammlungen mit jeweils sieben Liedern angeordnet.18 Die beiden Listen lauten (mit Winkelmarkierungen in Bleistift „[b]“ und rotem Buntstift „[r]“):

", - - "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[b]1. Eingang.(„VII. Ring“)
[b + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[b + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[b + r]6. „Kahl reckt der baum..“
[b]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[b + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[b]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7 [b] „Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", - - "

Einige Merkmale der beiden Listen zeigen,19 dass ihre Niederschrift nicht gleichzeitig erfolgte. Im Sinne der Opuszahlen-Reihenfolge, die von der Passacaglia M 127 als „op. 1“ begonnen und von den Fünf Sätzen für Streichquartett M 147–151 als „op. 3“ unterbrochen worden sein dürfte, ist die Zusammenstellung der Sieben Lieder „op. 2“ also vermutlich früher als die der in der zweiten Liste mit „op. 4“ bezeichneten Lieder vorgenommen worden. (Hierzu passt auch, dass in „op. 2“ alle mutmaßlich bereits 1908 komponierten Lieder versammelt sind.)20 Trotz ihrer Unterschiede und der zu vermutenden zeitlichen Differenz ihrer Entstehung weisen die beiden Listen Spuren einer gemeinsamen Bearbeitung auf, nämlich die bereits erwähnten Winkel-Markierungen mit Bleistift und rotem Buntstift links neben einigen Zeilen (in der letzten Zeile zu „op. 4“ auch zwischen Liednummer und Anfangszeile). Zusätzlich sind in der Liste von „op. 4“ einige Nummerierungen („1“, „5“ und „6“) mit Bleistift gestrichen. Möglicherweise markiert der rote Buntstift die Auswahl für die Aufführung vom 8. Februar 1910 (wobei der Winkel neben „2. ‚Dies ist ein lied…‘ “ in der Liste zu „op. 2“ sich auch auf das darüberstehende „1. Eingang.“ beziehen würde)21: Alle George-Lieder sowie die beiden Listen selbst wären dann vor diesem Datum entstanden. In diesem Fall wären diese beiden Liedsammlungen vermutlich auch unter den Kompositionen gewesen, die Webern bei einem von Schönberg initiierten Treffen mit dem Direktor der Universal Edition, Emil Hertzka, am 9. Oktober 1909 präsentierte – allerdings ohne dass in der Folge irgendeines der vorgestellten Werke in den Verlag aufgenommen wurde.22

", - "

Die beiden Zusammenstellungen stellen jedoch nicht einfach umfangreichere Formen der später als Opus 3 und Opus 4 gedruckten Sammlungen dar:23 So spielt das Ordnungsprinzip der 1919 publizierten Fünf Lieder aus Der siebente Ring von Stefan George op. 3, nämlich sämtliche von Webern vertonte Texte des Binnenzyklus Lieder aus Der siebente Ring in der Reihenfolge der Vorlage zu bringen,24 in der Liste zu „op. 2“ keine Rolle.25 Das in Opus 3 enthaltene „An Bachesranft“ M 135 erscheint hier in „op. 4“, und das in den 1923 gedruckten Fünf Liedern nach Gedichten von Stefan George op. 4 tatsächlich enthaltene „So ich traurig bin“ M 141 ist auf der Liste zu den Sieben Liedern „op. 4“ gestrichen.

", - "

Anfang Juni 1911 schickte Webern „ungefähr 10 Lieder“ zusammen mit den Fünf Sätzen für Streichquartett M 147–151 und den Vier Stücken für Geige und Klavier M 161–164 an den Dreililien-Verlag in Berlin.26 Um welche Lieder es sich dabei im Einzelnen gehandelt hat, ist nicht zu eruieren. Nachdem alle Werke abgelehnt worden waren, reichte Webern Ende September oder Anfang Oktober vermutlich dieselben Kompositionen beim Kölner Verlag Tischer & Jagenberg ein,27 allerdings wieder ohne eine Publikation zu erreichen.28

", - "

Im Herbst 1911 erhielt Webern ebenso wie Schönberg und Alban Berg die Einladung eine Notenbeilage zum von Wassily Kandinsky und Franz Marc herausgegebenen Almanach Der blaue Reiter beizusteuern. Hierfür wählte er „Ihr tratet zu dem Herde“ M 142. Aus einem Brief an Paul Königer geht hervor, dass Webern dieses Lied auch in die Auswahl der an Tischer & Jagenberg gesandten Lieder aufgenommen hatte:

", - - "

Sie wollen dieses Lied von mir; ja ich habe die zwei Exemplare, die ich hatte, verschickt an den „blauen Reiter“ und an den Verleger.

", - "

Ich würde es aber, wenn das noch möglich ist, aus der Skizze neuerdings abschreiben und Ihnen schenken.29

", - - "

Vermutlich hatte Webern also die nicht überlieferten Quellen [C] und [E] an den Kölner Verlag bzw. an Der blaue Reiter geschickt. Mit der Absage des Verlegers Gerhard Tischer Ende Dezember 1911 / Anfang Januar 1912 erhielt Webern auch seine Noten zurück und konnte Königer das versprochene Exemplar des Liedes in Aussicht stellen: „Mein Lied bekommst Du bald. Es erscheint übrigens im ‚blauen Reiter‘.“30 (Ende Januar erreichte Webern „die Korrektur meines Liedes“,31 also vermutlich eine Korrekturfahne des nach seiner Vorlage erstellten Notenstiches [F].) Der blaue Reiter erschien im Mai 1912, Webern erhielt sein Exemplar (mit GH) Anfang Juni.32

", - "

Bereits Anfang des Jahres 1912 hatte Webern den Plan gefasst, eine Auswahl von neun Liedern zusammen mit anderen Werken im Privatdruck erscheinen zu lassen, wie er in einem Brief an Berg schrieb:

", - - "

Auf Schönbergs Zureden habe ich mich entschlossen 4 meiner Werke (Passacaglia, 9 Lieder, Quartett [das erste] und die älteren 6 Orchesterstücke) im Straube-Druck (so wie Schönbergs II. Quartett) herauszugeben. Ich habe also mit der Revision dieser Noten viel zu thun.33

", - - "

Diesem Entschluss waren im Februar Besprechungen mit Schönberg vorangegangen, der die Durchsicht verschiedener Werke Weberns in seinem Tagebuch erwähnt, darunter auch ausdrücklich Lieder:

", - - "

Nachmittags kam Webern, um seine Lieder (die er drucken lassen will) mit mir durchzugehen. Gefielen mir wieder sehr. Wirklich ein originelles Talent. Ich sehe, er wird etwas Großes werden.34

", - - "

In seinem Handexemplar GH des in Der blaue Reiter erschienenen Liedes überarbeitete Webern die Textfassung und ergänzte die Opuszahl „2“. In den beiden oben genannten Listen der jeweils Sieben Lieder „op. 2“ und „op. 4“ wurde das Lied jedoch noch unter „op. 4“ eingeordnet: Vermutlich war „Ihr tratet zu dem Herde“ M 142 (Textfassung 2) also Teil einer neuen als „op. 2“ gezählten Sammlung von „9 Liedern“, die eine Auswahl aus allen 14 George-Liedern darstellte und die bisherigen beiden Zusammenstellungen ersetzte. Welche anderen Lieder dieser neuen Sammlung angehörten, ist nicht dokumentiert. Zu der Veröffentlichung „im Straube-Druck“ aller vier genannten Opera kam es schließlich nicht. Tatsächlich erschienen in dieser Form 1913 dann nur die Orchesterstücke M 152–157 als „op. 4“.

", - "

Stattdessen erwähnt Webern im Sommer 1912 in einem Brief an Schönberg den Plan, eine wieder andere, die Lieder zunächst bewusst aussparende Auswahl seiner Kompositionen bei Simrock einzureichen:

", - - "

Ich werde noch heute an Simrock folgendes schicken: die „Passacaglia“[,] das Quartett und die Violinstücke. Ich habe meine Lieder noch immer nicht ordentlich abgeschrieben, sonst schickte ich die auch. Ich werde aber in einem Brief davon sprechen. Vielleicht verlangt er dann die Lieder. Bis dahin bringe ich sie in Ordnung.35

", - - "

Wenige Wochen später erhielt Webern jedoch auch hier eine Absage.36 Ob er einige seiner Lieder in der Folge gleichwohl „ordentlich abgeschrieben“ hatte, ist nicht nachweisbar. Anfang 1913 schickte Webern schließlich eine nicht näher bestimmte Lieder-Auswahl an den Gadow-Verlag in Hildburghausen, offensichtlich jedoch wieder ohne Erfolg.37

", - "

Im Sommer 1914 verwendete sich Schönberg erneut bei der Universal Edition für Webern:38 Nach einem Gespräch Weberns mit Hertzka am 25. Juni wurde schließich verabredet, dass im darauffolgenden Jahr von Webern „[d]ie Partitur op. 4, der Chor u. ein Heft Lieder oder die Violinstücke39 aufgenommen werden würden. Eine Entscheidung zwischen einem Liederheft und den Vier Stücken für Geige und Klavier M 161–164 musste jedoch nie gefällt werden: Zu einer Publikation während des Ersten Weltkriegs, der wenige Wochen nach der Verabredung mit Hertzka begann, kam es aus ökonomischen Erwägungen nicht.40

", - "

Wenige Tage vor Kriegsausbruch ergab sich durch die Vermittlung von Alban Berg und Alfred Kalmus gleichwohl noch die vermeintliche Möglichkeit, für eine bei der Universal Edition vorbereitete Sammelpublikation Das moderne Lied etwas beizusteuern:41 Webern schickte drei – nicht zu bestimmende – Lieder ein,42 von denen jedoch keines Berücksichtigung fand.43

", - "

Auf eine Auswahl von neun George-Liedern verweist eine in ihrer Grundschicht mit roter Tinte geschriebene autographe Titelseite (Bl. 8r in H): 44 

", - - "

Neun Lieder | op[.] 6 [„6“ korrigiert aus: „5“; die gesamte Zeile nachträglich mit Bleistift ergänzt] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - - "

Die Änderung der Opuszahl der „Neun Lieder“ von „op. 2“ zu zunächst „op. 5“ erfolgte vermutlich 1914, als der Chor „Entflieht auf leichten Kähnen“ M 129 in die Werkzählung als op. 2 aufgenommen wurde. Die Lieder rückten somit hinter die als „op. 3“ bezeichneten Streichquartett-Kompositionen M 147–151, M 171–174 und M 178–180 sowie die inzwischen tatsächlich im Privatdruck als „op. 4“ erschienenen Orchesterstücke M 152–157. Eine solche Neuordnung der Opuszahlen könnte Webern während der „Revision“ seiner kompositorischen Arbeiten Ende 1914 / Anfang 1915 durchgeführt haben45 – möglicherweise auch noch mit Blick auf die in Aussicht gestellte Publikation einiger seiner Werke in der zweiten Jahreshälfte 1915 bei der Universal Edition. Dieser Sammlung von „Neun Liedern op. 5“ gehörte zu einem bestimmten Zeitpunkt vermutlich „Erwachen aus dem tiefsten Traumesschoße“ M 143 an, das in A die nachträgliche Bezeichnung „op[.] 5 No 2“ erhielt. Wann und warum auf der zitierten Titelseite in H die erneute Modifizierung der Zählung von „op. 5“ zu „op. 6“ vorgenommen wurde, ist unklar. (1914 wurden vermutlich zunächst die Vier Stücke für Geige und Klavier M 161–164 als „op. 6“ gezählt.) Inwieweit sich die Zusammenstellungen der „ungefähr 10 Lieder“ oder „9 Lieder“ bzw. „Neun Lieder“ zwischen 1911 und 1914 darüber hinaus im Einzelnen veränderten, ist nicht dokumentiert.

", - "

Neben Weberns Bestrebungen, eine Auswahl seiner George-Lieder zu drucken, gab es nach der oben genannten Uraufführung von sechs Liedern im Februar 1910 auch immer wieder Pläne zu weiteren Aufführungen. So war für ein Konzert am 24. April 1911 in Wien zunächst auch an nicht näher genannte Lieder Weberns gedacht worden, was aber aus verschiedenen Erwägungen fallen gelassen wurde.46 Im Zusammenhang einer Aufführung der Violinstücke M 161–164 am 29. Juni 1912 in Wien überlegte Webern zeitweise, diese durch „4 Lieder“ zu ersetzen.47 Und für eine von Schönberg im Herbst 1913 aufgeworfene Idee eines gemeinschaftlichen „Kompositionsabends“ von Berg und Webern in Berlin dachte letzterer neben seinen Streichquartettkompositionen M 147–151, M 171–174 und M 178–180 auch an Lieder:

", - - "

Weiters von mir Lieder. Am schönsten wäre es[,] wenn die Freund sänge. Glaubst[,] geht das zu machen? Ich möchte ihr die Lieder demnächst schicken. Darf ich mir von Dir die Adresse der Frau Freund erbitten?48

", - - "

Tatsächlich stammt eine der überlieferten Quellen von „Dies ist ein Lied“ M 133 (C) aus dem Nachlass der Sängerin Marya Freund, die am 23. Februar 1913 bei der Uraufführung der Gurre-Lieder Schönbergs die Waldtaube gesungen hatte49 und auch beim „Skandalkonzert“ am 31. März desselben Jahres (u. a. mit der Uraufführung von Weberns Sechs Stücken für großes Orchester „op. 4“ [M 152–157]) als Interpretin der – aufgrund des Tumultes nicht zur Aufführung gelangten – Kindertotenlieder von Gustav Mahler vorgesehen war.50 Laut einer archivalischen Notiz gelangte das Autograph „um 1914“ in den Besitz von Freund.51 Zu einer Aufführung durch die Sängerin im geplanten Zusammenhang kam es jedoch nicht: Das Programm des Konzerts wurde zunächst gekürzt,52 der Plan des Kompositionsabends offensichtlich schließlich ganz fallengelassen. Ob Freund dieses Lied oder überhaupt George-Lieder von Webern zu anderen Gelegenheiten gesungen hat, ist nicht bekannt.

", - "

Zu tatsächlichen Aufführungen von George-Liedern Weberns – nach der Uraufführung von sechs Liedern 1910 – kam es vermutlich erst nach Kriegsende. Diese standen in einem engen Zusammenhang mit der Publikation der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 im Verlag des Vereins für musikalische Privataufführungen (L): In einem Vereinskonzert sang Felicie Hüni-Mihacsek begleitet von Eduard Steuermann am 6. April 1919 zunächst „Vier Lieder Op. 3“, wobei im Vergleich zu den zwei Monate später gedruckten Fünf Liedern op. 3 das dort dritte Lied „An Bachesranft“ M 135 noch fehlte.53 Am 6. Juni 1919 erfolgte dann durch dieselben Ausführenden die Uraufführung der vollständigen Sammlung, deren Partitur beim Konzert auch zum Verkauf auslag.54 Über die Herstellung dieses Drucks ist kaum etwas bekannt,55 eine Stichvorlage [K], die für einige der Lieder neue, in anderen Quellen nicht dokumentierte Textfassungen geboten haben muss, ist nicht überliefert. Die beiden Vereins-Aufführungen im April und Juni dürften auf der Grundlage von handschriftlichen Quellen mit früheren Textfassungen erfolgt sein, oder das verwendete Material ist ebenfalls nicht erhalten.56 Der Druck L war erst einige Tage vor der zweiten Aufführung im Juni fertiggestellt worden57 und enthält folgende Lieder:

", - - "

I    „Dies ist ein Lied“ M 133 (Textfassung 4)

", - "

II   „Im Windesweben“ M 134 (Textfassung 3)

", - "

III  „An Bachesranft“ M 135 (Textfassung 3)

", - "

IV  „Im Morgentaun“ M 136 (Textfassung 3)

", - "

V   „Kahl reckt der Baum“ M 137 (Textfassung 5)

", - - "

Nachdem Webern im August 1920 schließlich einen Vertrag mit der Universal Edition über die Abtretung des Urheberrechts zunächst von op. 1 (Passacaglia M 127), op. 2 („Entflieht auf leichten Kähnen“ M 129), op. 3 (George-Lieder M 133–137) und op. 6 (Orchesterstücke M 152–157) abgeschlossen hatte, wurden die verbliebenen Exemplare der 1919 vom Verein gedruckten Auflage der Fünf Lieder aus Der siebente Ring von Stefan George op. 3 von der Universal Edition übernommen.58

", - "

Für die Drucklegung der Fünf Lieder nach Gedichten von Stefan George op. 4 ließ Webern eine Abschrift I der in seiner autographen Reinschrift H enthaltenen Textfassungen anfertigen. Wann dies genau geschah, ist unklar, vermutlich in zeitlicher Nähe zum Vertragsabschluss über das Werk im April 1923.59 Der Druck J erschien im August 1923 und enthält folgende Lieder:

", - - "

I     Eingang („Welt der Gestalten“) M 138 (Textfassung 3)

", - "

II   „Noch zwingt mich Treue“ M 139 (Textfassung 3)

", - "

III  „Ja Heil und Dank dir“ M 140 (Textfassung 2)

", - "

IV  „So ich traurig bin“ M 141 (Textfassung 2)

", - "

V   „Ihr tratet zu dem Herde“ M 142 (Textfassung 3)

", - - "

Die Uraufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 erfolgte bereits am 23. November 1923 in Hamburg mit Jenny Jungbauer und Ilse Fromm-Michaels, im Rahmen des von Josef Rufer und Hans Heinz Stuckenschmidt organisierten Konzert-Zyklus „Neue Musik“. Webern war wohl nicht anwesend und auch nicht in die Vorbereitung eingebunden gewesen.60 Eine Aufführung der vollständigen Sammlung von op. 4 in Weberns Anwesenheit fand dagegen erst am 10. Februar 1940 in Basel in einem Konzert der Internationalen Gesellschaft für Neue Musik (im Folgenden: IGNM) mit Maguerite Gradmann-Lüscher und Erich Schmid statt, bei dem diese von Webern auch noch drei aus den Vier Liedern op. 12 sowie Lieder von Schönberg und Berg interpretierten.61

", - "

Wie bei dieser zuletzt genannten fanden weitere Aufführungen von George-Liedern zu Lebzeiten Weberns häufig in verschiedenen Kombinationen statt, in denen aus den Sammlungen der gedruckten Opera 3 und 4 sowie den Vier Liedern op. 12 ausgewählt wurde. Folgende Aufführungen lassen sich neben den bereits erwähnten von 1910, 1919 (Uraufführung op. 3) und 1923 (Uraufführung op. 4) derzeit nachweisen:

", - - "

–  20. November 1922, Prag, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.62

", - "

–  17. Januar 1925, Paris, Revue musicale, Ruzena Herlinger und Ernst Bachrich: op. 3/1, 3/2, 3/3.63

", - "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.64

", - "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.65

", - "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.66

", - "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.67

", - "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.68

", - "

–  17. Dezember 1934, Wien, Ehrbar-Saal, Felicie Hüni-Mihacsek und Eduard Steuermann: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.69

", - "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.70

", - "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.71

", - "

–  5. Dezember 1943, Basel, Konservatorium, Marguerite Gradmann-Lüscher und Paul Baumgartner: Fünf Lieder aus Der siebente Ring von Stefan George op. 3.72

", - - "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" - ] - }, - { - "blockId": "op12", - "blockHeader": "Vier Lieder op. 12", - "blockContent": [ - "

Die Entstehungsdaten der einzelnen Verlaufsskizzen zu den Vier Liedern op. 12 gruppieren sich in zwei deutlich voneinander getrennte Phasen: Anfang 1915 komponierte Webern zuerst „Der Tag ist vergangen“ M 212 und „Schien mir’s, als ich sah die Sonne“ M 213; im Frühjahr 1917 entstanden Gleich und Gleich M 216 und Die geheimnisvolle Flöte M 217. Beide Zeiträume fallen in eine von ca. 1914 bis Mitte der 1920er Jahre anzusetzende Schaffensperiode, die durch eine Konzentration Weberns auf Vokalkompositionen, insbesondere für Solo-Singstimme mit Ensemblebegleitung geprägt war, von denen die meisten ab 1924 in den Opera 13–19 publiziert wurden (vgl. AWG I/4). Die Vier Lieder op. 12 sind entstehungsgeschichtlich auch in diesem Kontext zu sehen. Die vorliegende Edition ordnet sie mit Blick auf ihre Besetzung für Singstimme und Klavier der Abteilung AWG I/5 zu.

", - "

Die zeitliche Lücke von über zwei Jahren bei der Komposition der Lieder aus op. 12 hängt zusammen mit einer einschneidenden historischen Zäsur: Der Ausbruch des Ersten Weltkriegs Ende Juli 1914 bedeutete auch für Webern eine Umstellung aller seiner bisherigen Planungen. Nach wiederholten gesundheitlichen Problemen während seiner Engagements als Dirigent an verschiedenen Theatern seit 1909 hatte Webern von August bis Oktober 1913 Therapiesitzungen bei dem Psychoanalytiker Alfred Adler besucht, in deren Anschluss er sich wieder in der Verfassung fühlte, Kapellmeister-Tätigkeiten zu übernehmen. Eine entsprechende Stelle in Stettin (heute Szczecin in Polen) hatte er für Sommer 1914 angenommen, die Verpflichtung wurde aber kriegsbedingt wieder aufgelöst. Stattdessen bemühte sich Webern nun in seiner ersten Begeisterung für das Kriegsgeschehen um eine militärische Einberufung, wurde jedoch auf Grund seines Alters und Gesundheitszustandes erst im November 1914 gemustert und im Februar 1915 im Rahmen einer „Einjährigen“-Schulung zunächst in Klagenfurt und Görz (Gorizia) stationiert.73 Abgesehen von kürzeren Unterbrechungen leistete Webern in der Folge Militärdienst bis Ende 1916.

", - "

Die beiden im Januar 1915 komponierten Klavierlieder sind Weberns erste nach Kriegsanfang abgeschlossenen Kompositionen und die einzigen, die vor seiner Stationierung entstanden. Nachdem Webern bereits Mitte Dezember 1914 an Heinrich Jalowetz geschrieben hatte, dass er „wieder mit etwas begonnen“ habe,74 berichtete er ihm erneut am 10. Januar – wenige Tage vor der Datierung der Verlaufsskizze von „Der Tag ist vergangen“ M 212 in A (13. Januar 1915) – von der anhaltenden produktiven Phase: „Ich schreibe nun wieder neues, d. h. mach mich eigentlich erst daran.“75

", - "

Der Text zu „Der Tag ist vergangen“ M 212 stammt aus Peter Roseggers Roman Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 Das Buch handelt von einer historischen Figur der sogenannten Tiroler Freiheitskämpfe nach 1805, deren Gewissensnöte zwischen sozial und religiös fundierter Friedenssehnsucht einerseits sowie politisch-nationalen Emanzipationsbestrebungen andererseits als heiligenähnliches Martyrium dargestellt werden. Webern hatte das Buch Anfang 1915 gelesen, wie aus einem Brief an Arnold Schönberg vom 9. Januar hervorgeht, in dem er eine längere Passage über ein darin beschriebenes religiöses Offenbarungserlebnis zitiert.77 Der Autor Rosegger spielte für Webern aber bereits seit spätestens 1912 eine große Rolle, wie insbesondere aus zahlreichen Erwähnungen in Briefen an Alban Berg und Schönberg deutlich wird.78 Neben Weberns Interesse an der religiösen Sphäre des Buches dürfte auch dessen nationalistischer Tenor seiner eigenen Kriegseuphorie in dieser Zeit entsprochen haben. In dem zweistrophigen (in älteren Ausgaben des Romans: auch vierstrophigen) Text verwendet Rosegger Formulierungen volkstümlich überlieferter Kirchenfahrt-Lieder79 und bettet ihn in die abendliche Szene einer als Massenwallfahrt getarnten militärischen Widerstandsaktion ein, in der einige Pilger die „schwermütigen Töne dieses Liedes“ mit „hellen Stimmen“ singen.

", - "

Vermutlich entstand die Reinschrift der Textfassung 1 von „Der Tag ist vergangen“ M 212 in B in zeitlicher Nähe zur datierten Verlaufsskizze. Wann genau die Überarbeitung in A und B sowie die daraus resultierende Niederschrift von Textfassung 2 in C erfolgte, ist nicht zu eruieren. Immerhin deutet die sowohl in B als auch in C für den vertonten Text verwendete rote Tinte sowie die Kurrentschrift auf einen ähnlichen Zeitraum, vermutlich noch vor Weberns Stationierung in Klagenfurt. Textfassung 2 diente jedenfalls als Vorlage für den Einzelabdruck von „Der Tag ist vergangen“ M 212 in den Musikblättern des Anbruch im Mai 1922 (E).80 Für die Publikation in der 1925 erschienenen Sammlung Vier Lieder op. 12 (G) erstellte Webern eine eigene Vorlage (Textfassung 3 in F). Webern verzichtete (wie bei vielen anderen seiner Kompositionen auf Texte Roseggers) in allen Niederschriften und Abdrucken dieses Liedes auf eine Angabe des Textautors. In den Vier Liedern op. 12 weist er es als „Volkslied“ aus.

", - "

In einem Brief an Schönberg vom 21. Januar 1915 berichtet Webern über die Fertigstellung eines „Klavierliedes“ (also vermutlich „Der Tag ist vergangen“ M 212) und erwähnt, dass er zwei weitere Lieder „angefangen“ habe.81 Eines davon dürfte „Schien mir’s, als ich sah die Sonne“ M 213 gewesen sein, dessen Verlaufsskizze in A mit dem 31. Januar 1915 datiert ist. (Bei dem zweiten Lied handelt es sich vermutlich um das nicht vollendete Trakl-Lied „In der Heimat“ M 214.)

", - "

Der Text von „Schien mir’s, als ich sah die Sonne“ M 213 stammt aus August Strindbergs Stück Gespenstersonate (schwedischer Originaltitel: Spöksonaten). In Weberns Bibliothek hat sich ein Exemplar der deutschen Übersetzung durch Emil Schering erhalten, das mit dem autographen Datumseintrag „2. VII[.] 09.“ (Wilhelmine Mörtls 23. Geburtstag) versehen ist.82 Webern hatte Strindbergs Werke für sich bereits 1908 entdeckt, und der schwedische Autor spielte seitdem sowohl in der Kommunikation mit Schönberg als auch mit Berg eine entscheidende Rolle.83 Das Gedicht erscheint im Dramentext der genannten Ausgabe zweimal als Lied, am Ende des zweiten sowie kurz vor dem Ende des dritten und letzten Akts, in dem die (tödliche) Aussprache zwischen dem „Studenten“ und dem „Fräulein“ erfolgt. Das Lied wird vom Studenten vorgetragen, der beim ersten Mal vom Fräulein „auf einer Harfe“ begleitet wird; beim zweiten Mal, nach dem Tod des Fräuleins, „säuselt [es] in den Saiten der Harfe“.

", - "

In einer kurzen Skizze für Frauen- und Kinderchor („Schien mir’s, als ich sah die Sonne“ M 198), die von Webern vermutlich nachträglich mit „Winter 1913/1914“ datiert wurde, hatte der Komponist bereits schon einmal eine Vertonung des Texts begonnen, die allerdings nicht über die erste Zeile hinauskam. Die auf der Grundlage der Verlaufsskizze in A erfolgte Niederschrift des Klavierliedes „Schien mir’s als ich sah die Sonne“ M 213 in C weist zahlreiche Überarbeitungsspuren auf, deren Zustand ante correcturam jedoch nicht eindeutig zu bestimmen ist. Die Verwendung von Kurrentschrift sowie der gleichen roten Tinte für den vertonten Text wie in den Niederschriften von „Der Tag ist vergangen“ M 212 in B und C deutet auf eine gewisse zeitliche Nähe der Grundschicht auch von „Schien mir’s als ich sah die Sonne“ M 213 zu diesen hin: möglicherweise entstand es also ebenfalls vor der Stationierung Weberns in Klagenfurt im Februar 1915.

", - "

Aus Weberns Militärzeit 1915 und 1916 sind keine Kompositionsversuche überliefert. Im Januar 1917 schreibt er an Jalowetz:

", - - "

Ich erhole mich jetzt allmählich von den 2 Jahren – geistig. Jetzt erst spüre ich so recht die Wirkung. Langsam knüpfe ich wieder an, finde mich zu recht. Allmählich fällt mir wieder ein, was ich früher gedacht hatte, wo ich stehn geblieben war.84

", - - "

Weberns erste vollendete Komposition nach der zweijährigen Militärzeit ist Gleich und Gleich M 216, dessen Verlaufsskizze in A mit dem 31. März 1917 datiert ist. Nach dem 1903 komponierten Klavierlied Blumengruß M 2085 handelt es sich hier um die zweite Goethe-Vertonung Weberns überhaupt. Eine eingehendere Rezeption dieses Dichters durch Webern vor 1917 ist nicht dokumentiert, auch wenn sich Erwähnungen zur Lektüre sporadisch finden.86 Laut seinem eigenhändigen in den 1910er Jahren begonnenen Bücher- und Notenverzeichnis besaß Webern die folgende Ausgabe: Sämtliche Werke. Jubiläumsausgabe in 40 Bänden, Stuttgart und Berlin: Cotta, [1902–1912].87 Weitere Spuren einer kompositorischen Auseinandersetzung mit Goethe-Texten in diesem zeitlichen Umfeld finden sich in zwei weiteren Skizzen bzw. Fragmenten von 1917 (Gegenwart für Gesang [Bariton?] und Klavier M 220) und 1918 (Cirrus für Gesang und Orchester M 235).88

", - "

Die Niederschrift der Textfassung 1 von Gleich und Gleich M 216 in C ist vermutlich in zeitlicher Nähe zur Verlaufsskizze entstanden. Sie weist Änderungen im Sinne von Textfassung 2 in F auf, die für die Druckfassung von 1925 erarbeitet wurde. Eine weitere, nicht überarbeitete Niederschrift von Textfassung 1 in D ist u. a. aufgrund der verwendeten lateinischen Schrift für den vertonten Text chronologisch nach C einzuordnen. Über den genauen Zeitpunkt und die Funktion dieser Niederschrift ist nichts bekannt. Die Bezeichnung als „op. 12“ im Titel deutet auf ein Datum frühestens nach April 1920 hin (siehe unten).

", - "

In einem seiner späteren Vorträge „Wege zur neuen Musik“ von Anfang 1932 erwähnt Webern die Einleitungstakte von Gleich und Gleich M 216 als ein Beispiel für die bereits intuitiv erfassten Prinzipien der späteren Zwölftonkomposition, da in jenen alle zwölf Tonhöhenklassen der chromatischen Skala präsentiert werden: „Das Gesetz war uns damals noch nicht bewußt, aber es war längst gefühlt.“89 Seine nächsten vollendeten Goethe-Vertonungen, die Zwei Lieder op. 19, stammen erst von 1925/26. Diese gehören zu seinen ersten ausdrücklichen Zwölftonkompositionen und sind gleichzeitig seine letzten vollendeten auf Texte Goethes.

", - "

Die Verlaufsskizze in A von Die geheimnisvolle Flöte M 217 ist mit dem 10. April 1917 datiert, schließt zeitlich also unmittelbar an die Beendigung von Gleich und Gleich M 216 an. (In Briefen an Berg, Jalowetz oder Schönberg aus dieser Zeit erwähnt Webern keine dieser beiden Arbeiten.) Der vertonte Text von Die geheimnisvolle Flöte ist eine freie Nachdichtung eines Gedichts des chinesischen Autors Li Tai-po (lies: Li Bai) aus Hans Bethges zuerst 1907 erschienener Sammlung Die chinesische Flöte. Das in Weberns Nachlass erhaltene Exemplar der vierten Auflage des Buches weist den autographen Datumseintrag „3. 12. 12.“ (sein 29. Geburtstag) auf der Rückseite des vorderen Einbanddeckels auf.90 Einige Gedichte dieser Sammlung waren Webern spätestens bereits ein Jahr zuvor als Vorlage von Gustav Mahlers&ngsp;Lied von der Erde bekannt geworden, dessen Uraufführung er am 20. November 1911 in München beigewohnt hatte.91 Er selbst hatte aus Die chinesische Flöte bereits im Februar 1914 das Orchesterlied Die Einsame M 199 komponiert; im Juli 1917 folgte In der Fremde M 223. Diese beiden Lieder wurden später in die Vier Lieder für Gesang und Orchester op. 13 eingegliedert. Darüber hinaus sind zwei weitere unvollendete Entwürfe Weberns auf Texte aus Die Chinesische Flöte überliefert: Nächtliches Bild M 233 (Herbst 1918) und Der Frühlingsregen M 244 (vermutlich 1920).

", - "

Die Grundschicht der Niederschrift von Die geheimnisvolle Flöte M 217 in C (Textfassung „0“) lässt sich nicht mehr eindeutig entziffern. Sie dürfte aber, wie im Falle von Gleich und Gleich M 216 in C, in zeitlicher Nähe zur Verlaufsskizze entstanden sein und weist Änderungen mit Tinte und Bleistift auf. Zusammen mit einem ebenfalls nicht mehr eindeutig zu eruierenden Zwischenstadium erfolgten diese möglicherweise bereits im Sinne von Textfassung 1 in F, die für die Druckfassung von 1925 erarbeitet wurde.

", - "

Die Zusammenstellung der vier Klavierlieder zu einer mit Opuszahl versehenen Sammlung erfolgte spätestens 1920, als Webern in einer vermutlich nach April dieses Jahres für die Universal Edition angefertigten Werkliste auch „4 Klavierlieder“ als „op. 10“ anführt.92 Diese Opuszahl entspricht einer getilgten Zählung auf dem Umschlagblatt von Quelle C, wo sie später zu „op. 12“ korrigiert wurde.93 Diese in Abhängigkeit zur Zählung anderer Werke vorgenommene Änderung erfolgte spätestens Anfang 1921: In einem im Februar erschienenen Artikel von Egon Wellesz werden die Lieder explizit als „opus 12“ angesprochen.94 Die in dieser Publikation enthaltenen Notenbeispiele sind auf der Grundlage von Textfassung 2 von „Der Tag ist vergangen“ M 212 bzw. Textfassung 1 von Gleich und Gleich M 216 angefertigt worden, also vermutlich mit C oder (im Falle von M 216:) D im entsprechenden Korrekturstadium als Vorlage. Im Mai 1922 erschien Textfassung 2 von „Der Tag ist vergangen“ M 212 separat (aber mit Hinweis auf die Zugehörigkeit zu op. 12) als Notenbeilage in den Musikblättern des Anbruch (E). Webern überarbeitete „Der Tag ist vergangen“ M 212 in seinem Handexemplar EH zu Textfassung 3 und Gleich und Gleich M 216 in C zu Textfassung 2. Bis spätestens zum Jahreswechsel 1924/25 erstellte er eine Stichvorlage F der Vier Lieder op. 12, die er in einem Brief an den Direktor der Universal Edition, Emil Hertzka, vom 3. Januar 1925 als eine seiner Arbeiten, die er „derzeit im ‚Vorrat‘ habe“, dem Verlag anbot und offensichtlich kurz darauf übergab.95 Am 12. Juni desselben Jahres sandte er die imprimierte zweite Korrektur des Stiches an den Verlag, am 20. Juni das imprimierte Titelblatt.96 Der Druck G der Vier Lieder op. 12 erschien am 30. September 1925 in einer Auflage von 499 Exemplaren.97

", - "

Eine begeisterte Reaktion erhielt Webern von Alban Berg, der ihm wenige Tage nach dem Erscheinen der Lieder schrieb:

", - - "

Was für eine große Freude hast Du mir, mein Lieber, mit Deinem Op. 12 gemacht! Das ist wiederum – so wie ja alles von Dir – ein echter Webern. Schon die Zusammenstellung der wundervollen Texte u. die Zusammenziehung zu einem&ngsp;Ganzen! Und gar erst die Musik! Ja es erscheint mir, als sähe ich Dich auf ganz neue Weise. Welch ein Ton in dem Strindberg-lied. Und überhaupt welch eine Vielfalt in den 4 Liedern. Das letzte z. Bsp[.]: eine solche Anmuth. Man kann ruhig sagen: die findet sich sonst in der ganzen Musikliteratur nicht wieder –; so ein Lied von Dir ist für mich geradezu ein Freudenspender, ein Spender einer mein ganzes Sein überstrahlenden Freude. Wie wenn an trüben Tagen plötzlich die Sonne hervorbricht u. man gar nicht weiß, warum man plötzlich froh wird.98

", - - "

Die Uraufführung des gesamten Opus 12 fand am 8. Januar 1927 im kleinen Saal des Musikvereins Wien mit der niederländischen Sängerin Co van Geuns und Eduard Steuermann am Klavier statt. Im selben Konzert wurde Alban Bergs Lyrische Suite durch das Wiener Streichquartett (Kolisch-Quartett) uraufgeführt sowie Johann Sebastian Bachs Konzert für vier Klaviere BWV 1065 unter Weberns Dirigat gespielt.99 Zur Uraufführung seiner Lieder schrieb Webern an Schönberg einige Tage später lapidar: „Am selben Abend wie das Quartett Bergs wurde auch ein Lieder-Opus von mir uraufgeführt. Das gelang sehr gut.“100 Auch in einer positiven Besprechung des Konzerts der Arbeiter-Zeitung steht die Komposition Bergs im Vordergrund, über die Vier Lieder op. 12 heißt es vergleichsweise kurz:

", - - "

Viel Erfolg hatten auch neue Lieder von Anton  W e b e r n , die Co van  G e u n s , von Eduard  S t e u e r m a n n  am Klavier geleitet, mit hervorragender Musikalität vortrug. Hier sind kurze lyrische Gedichte in Tonformen gepreßt, deren Zusammensetzung dem unbefangenen Hörer nicht klar sein kann. Er muß sich also an die Ausdruckswerte halten, die reichlich zu finden sind, auch wenn es durch die merkwürdige Führung der Gesangstimme schwer ist, ihr immer zu folgen. Die Lieder wurden wiederholt und dadurch leichter verständlich gemacht.101

", - - "

Laut einem Tagebucheintrag Weberns war Gleich und Gleich M 216 bereits im Oktober 1926 von einer holl.[ändischen] Sängerin“ gesungen worden,102 vermutlich ebenfalls von van Geuns, die einige Zeit nach der Uraufführung der Vier Lieder op. 12 Anfang Januar 1927 auch in Köln mit Liedern von Webern (also wahrscheinlich auch aus op. 12) und von Alexander Zemlinsky auftrat.103 Wie bei den George-Liedern wurde bei mehreren Aufführungen zu Weberns Lebzeiten (und wohl mit dessen Einverständnis bzw. auf seine Anregung hin) wiederholt nur eine Auswahl der Vier Lieder op. 12 gesungen bzw. wurden einzelne Lieder mit solchen aus den George-Liedern op. 3 und op. 4 kombiniert. Nachweisbar sind, neben den erwähnten Aufführungen mit van Geuns, Konzerte an folgenden Daten:

", - - "

–  26. Oktober 1928, London, Wigmore Hall, Ruzena Herlinger und Eduard Steuermann: op. 3/1, 3/2, 3/5, 12/1 und 12/4.104

", - "

–  25. Oktober 1929, Brüssel, Palais des Beaux-Arts, Ruzena Herlinger und Stefan Askenase: Lieder aus op. 4 und op. 12.105

", - "

–  13. April 1931, Wien, Kleiner Musikvereins-Saal, Aenne Michalsky und Eduard Steuermann: op. 4/1, 3/1, 3/2, 3/5, 12/1 und 12/4.106

", - "

–  18. November 1931, Amsterdam, Berthe Seroen und Phons Dusch: op. 3/1, 3/3, 12/2.107

", - "

–  2. Dezember 1933, Wien, Kleiner Musikvereins-Saal (Konzert der IGNM zu Weberns 60. Geburtstag), Aenne Michalsky und Eduard Steuermann: Lieder aus op. 3, 4 und 12.108

", - "

–  9. Mai 1935, Wien, Musikverein (Konzert der Hertzka-Gedächtnis-Stiftung), Julia Nessy (Gesang): Vier Lieder op. 12.109

", - "

–  21. November 1935, Wien, Hagenbund (Konzert des Vereins für neue Musik), Julia Nessy (Gesang): Vier Lieder op. 12.110

", - "

–  10. Februar 1940, Basel, Konservatorium (Konzert der IGNM, Ortsgruppe Basel), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf Lieder nach Gedichten von Stefan George op. 4 sowie op. 12/2, 12/4 und 12/1.111

", - "

–  28. März 1941, Zürich, Zunfthaus „Zur Saffran“ (Konzert der IGNM, Pro Musica, Ortsgruppe Zürich), Marguerite Gradmann-Lüscher und Erich Schmid: Fünf George-Lieder sowie drei Lieder aus op. 12.112

", - - "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" - ] - }, - { - "blockId": "op23", - "blockHeader": "Drei Gesänge aus Viae inviae von Hildegard Jone op. 23", - "blockContent": [ - "

Die Anfang 1933 begonnenen und im März 1934 fertiggestellten Drei Gesänge aus Viae inviae von Hildegard Jone op. 23 sind Weberns erste Klavierlieder, die auf der Grundlage der „Komposition mit zwölf Tönen“ – wie Webern in der Regel die Zwölftontechnik bezeichnet – geschrieben wurden, und seine erste vollendete Vokalkomposition seit den Ende 1925 bis Sommer 1926 entstandenen Zwei Liedern für gemischten Chor mit Begleitung von Celesta, Gitarre, Geige, Klarinette und Bassklarinette op. 19. Der von Webern im Titel verwendete Terminus „Gesang“ deutet auf die im Vergleich zu den meisten anderen seiner Vokalkompositionen ausgedehnte Länge der einzelnen Stücke hin. Sie sind zugleich Weberns erste Komposition auf Texte von Hildegard Jone, deren Lyrik die Grundlage für alle weiteren fertiggestellten Vokalkompositionen Weberns bilden sollte.

", - "

Webern lernte Jone und ihren Ehemann, den Bildhauer Josef Humplik, vermutlich im Herbst 1926 bei einer Ausstellung des Hagenbundes in Wien kennen. Aus der Bekanntschaft entwickelten sich spätestens 1928 Pläne für eine Zusammenarbeit zwischen Jone und Webern,113 die zu „drei Operntexte[n]“ Jones führten.114 Ob sich Weberns über ein Jahr später erfolgte briefliche Äußerung an Jone, „[ü]ber ihre Bühnendichtungen“ sprechen zu wollen,115 auf diese oder andere Texte der Dichterin bezieht, ist unklar; Jone hatte aber wohl nach wie vor die Absicht, für Webern „ein ‚Opernbuch‘ […] zu schreiben“.116 Im September 1930 entschuldigte sich Webern jedenfalls dafür,

", - - "

dass Ihre so schönen Bühnendichtungen mich offenbar, trotzdem ich damals sehr ernstlich damit umgegangen war, Derartiges zu komponieren, doch nicht in richtiger Bereitschaft für eine solche Arbeit angetroffen hatten.117

", - - "

Stattdessen bittet er sie im selben Brief darum, einen Kantatentext für ihn zu schreiben.118 Gedichte Jones, die sich zeitnah auf diese Aufforderung beziehen, sind jedoch nicht bekannt. („Kantaten“ auf Texte Jones komponierte Webern dann bekanntlich erst zwischen 1935 und 1943 in Das Augenlicht op. 26 sowie in der Kantate Nr. 1 op. 29 und der Kantate Nr. 2 op. 31.) Unabhängig von derart konkreten Überlegungen zu möglicher Zusammenarbeit schickte die Lyrikerin Webern immer wieder Manuskripte ihrer Gedichte.119

", - "

Es ist vor diesem Hintergrund immerhin bemerkenswert, dass Weberns tatsächliche erste Vertonung von Gedichten Jones nicht in vorgängiger Absprache mit der Dichterin geschah, sondern auf einer bereits publizierten Sammlung beruhte: Viae inviae war im Herbst 1932 in der Zeitschrift Der Brenner veröffentlicht worden.120 Der Gedichtzyklus ist dem im Oktober 1931 verstorbenen Philosophen Ferdinand Ebner gewidmet, dessen Fragment von 1916 (zusammen mit einem kurz vor seinem Tod geschriebenen „Nachwort“ dazu) Jones Gedichtsammlung in der Zeitschrift vorangestellt ist.121 Webern war auf Vermittlung Jones hin Ebner kurz vor dessen Tod noch persönlich begegnet.122 Bereits zuvor hatte Jone Webern immer wieder mit Ideen Ebners, als dessen Herausgeberin sie auch später weiterhin tätig blieb, konfrontiert. Eine explizite Auseinandersetzung Weberns mit den Schriften Ebners lässt sich allerdings nur sporadisch – und erst ab 1934 – nachweisen, eine implizite Rezeption durch die Texte Jones dagegen ist gleichwohl offenkundig.123 Die Gedichte in Viae inviae sind in zwei mit römischen Ziffern bezeichnete Abteilungen gegliedert: Abteilung I beginnt mit einem Dem einsamen Wanderer überschriebenen Prolog und enthält in der Folge den Binnenzyklus Heimgang des Lebens, der sich in drei mit arabischen Ziffern unterteilte Abschnitte gliedert.124 Bei den von Webern in Opus 23 vertonten Texten handelt es sich um den 3. Abschnitt von Heimgang des Lebens, der seinerseits in acht unterschiedlich lange Versgruppen unterteilt ist. Weberns drei Gesänge setzen sich zusammen aus den Versgruppen 1–4 („Das dunkle Herz…“), 5–6 („Es stürzt aus Höhen…“) und 7–8 („Herr Jesus mein…“), die in chronologischer Hinsicht jedoch nicht in der Reihenfolge der Textvorlage komponiert wurden, auch wenn die Anordnung der fertiggestellten Gesänge die originale schließlich nicht veränderte.

", - "

Die ersten Skizzen in A (Skizzenbuch 3) zu op. 23 sind mit „1. II. 33“ datiert und betreffen „Herr Jesus mein“ M 312 (M 312 Sk1, M 312 Sk1.1 und M 312 Sk2), also die beiden letzten Versgruppen des 3. Abschnittes von Heimgang des Lebens. Webern skizzierte eine Gesangslinie zu den ersten Worten des Gedichts und entwickelte daraus eine Zwölftonreihe. Im betreffenden Skizzenbuch unterbrechen diese und die folgenden Skizzen zu op. 23 die Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24, dessen erste Skizzen bereits von Anfang 1931 datieren und bis zum Herbst 1932 nicht über 30 Takte des ersten Satzes hinausgekommen waren.125 Tatsächlich hatte Webern seit Mitte 1931 durch gesundheitliche Probleme, Wohnungswechsel sowie vor allem zahlreiche Dirigierverpflichtungen im Jahr 1932 kaum Zeit und Muße für kompositorische Arbeit gefunden. Am 3. März 1933 berichtete Webern der Dichterin über die ersten Skizzen zu „Herr Jesus mein“ M 312 und klagte über den Zeitmangel auch im Zusammenhang dieser neuen Komposition:

", - - "

Ich bin recht in Bedrängnis: ärger denn je bedrückt es mich, nicht Zeit zum Komponieren zu haben. Ganz spontan hatte ich eines Tages die Komposition Ihres schönen, wundervollen Gedichtes angefangen, mußte aber bald wieder unterbrechen u. es rächt sich schon, dass ich mir erlaubt habe, im Jänner u. Feber so hie u. da bei unserer Arbeit zu sitzen. Nun bin ich so im Rückstand mit den anderen Dingen, der Vorbereitung für meine Konzerte: hier u. in London. Wie soll ich’s mir nur machen? Dass ihr Gedicht die „Freude“ heißt, ist ja wunderbar.126

", - - "

Offensichtlich hatte Webern bereits vor diesem Brief Jone von „unserer Arbeit“ berichtet und der von Webern hier angesprochene Titel Die Freude bezieht sich auf eine daraufhin von Jone erfolgte Mitteilung, dass die von Webern komponierten Verse (in einer von der Publikation im Brenner unabhängigen Manuskriptfassung) Teil eines eben so genannten Gedichtes sind.127 Als Kompositionsgrundlage dürfte Webern aber immer die veröffentlichte Fassung herangezogen haben.128 Erst zwei Monate später, in denen Webern neben einem Konzert im Großen Konzerthaussaal in Wien am 19. März129 auch mit seiner wöchentlich stattfindenden Vortragsreihe „Wege zur neuen Musik“ beschäftigt war,130 begann er Anfang April mit der Arbeit an der Klaviereinleitung (M 312 Sk3) und schrieb den Beginn der Verlaufsskizze bis Takt 8 (M 312 Sk4). Ein Neuansatz dieser Verlaufsskizze ab Takt 4 ist mit „31. V. 33“ datiert (M 312 Sk4 T. 4B–5C), wurde also erst nach Weberns Rückkehr von seiner Konzertreise nach London (16.–26. April) sowie einem Rundfunkkonzert am 23. Mai mit Mahlers Sechster Symphonie begonnen.131 Die Schlussdatierung der Verlaufsskizze lautet „Maria Enzersdorf | 14. VII. 33“.

", - "

Nach einem Rundfunkkonzert am 21. Juli132 fing Webern damit an, einen weiteren Gesang zu skizzieren, diesmal auf der Grundlage des im Brenner auf derselben Druckseite direkt über den bereits vertonten Versen stehenden Texts („Es stürzt aus Höhen“ M 313). In einem Brief vom 29. Juli berichtet er Jone über die Fertigstellung des zuvor begonnenen Gesangs sowie der aufgenommenen Arbeit an dem neuen:

", - - "

Ich habe schon gut gearbeitet. Der eine Ihrer mich immer mehr erfüllenden Texte ist schon fertig. Das ist von „Herz Jesus mein“ bis „Und, ewig Schlafende, auch euch erwartet Tag“. Und nun verbinde ich „Es stürzt aus Höhen Frische“ – wie wundervoll diese Wort-Substanz – bis „überglüht noch lange Glut“ zu einem zweiten Gesang. Doch wird die Reihenfolge der beiden Gesänge der Ihrer Gedichte entsprechen.

", - "

Wie tief berühren sie mich. Und ich bin so froh, endlich in diese Lage (einer Komposition Ihrer Werke) gekommen zu sein. Lange hatte ich es mir schon gewünscht. Nachdem ich mit der Arbeit an dem ersten Gesang fertig war, mußte ich auf 8 Tage unterbrechen, da ich noch ein Radio-Konzert zu dirigieren hatte. Ich wollte es schon ablehnen. Aber schließlich – nun Sie wissen ja die Gründe.133

", - - "

Die vermutlich durch den Ferienaufenthalt „auf eine[r] circa 1600 m hohe[n] Alm bei Kitzbühel in Tirol“134 Anfang August unterbrochene Arbeit an der Verlaufsskizze zu diesem zweiten Gesang wurde laut Datierung in A am „18. VIII. 33“ fertiggestellt (M 313 Sk4 T. 30C). In einem Brief an Jone vom 3. September wurden die beiden bis zu diesem Zeitpunkt vorliegenden Gesänge zunächst als „vorläufig“ beendetes Projekt deklariert:

", - - "

Ich habe vorläufig die Komposition von Texten aus Ihrem „Viae inviae“ beendet. Es ist so gekommen, wie ich es vorhatte: 1. Lied: „Es stürzt aus Höhen“ bis „den Himmel u. die Seele überglüht noch lange Glut.“ 2. „Herr Jesus mein“ bis „auch euch erwartet Tag.“ (also die ganze Seite 65 aus dem „Brenner“). Ich sage „vorläufig“[,] weil ich die Empfindung habe, bald wieder auf Worte von Ihnen zurückkommen zu müssen. Doch glaube ich einstweilen wenigstens, sollen zunächst diese 2 Lieder für sich allein bleiben. Sie schließen sich musikalisch zu einem Ganzen zusammen; im Sinn einer gewissen Gegensätzlichkeit. Zur Zeit bin ich wieder an einer rein instrumentalen, schon vor Längerem begonnenen Arbeit. Wie sehr hatte mich die an ihren Worten glücklich gemacht!135

", - - "

Ebenfalls Anfang September 1933 nahm Webern zunächst die Skizzierung des ersten Satzes vom Konzert op. 24 im selben Skizzenbuch wieder auf, jedoch ohne diese Arbeit zu einem Abschluss zu bringen oder auch nur kontinuierlich weiterzuführen. Ende desselben Monats plante er, der Dichterin beide der bis zu diesem Zeitpunkt vorliegenden Gesänge aus op. 23 bei einem ihrer Aufenthalte in Wien vorzuführen:

", - - "

Nun kommen Sie ja, Gott sei Dank, auch bald nach Wien. […] Was Sie wohl zu meinen Liedern nach Ihren Worten sagen werden? Wie wird Ihnen das vorkommen, wenn Ihr Wort als Musik erscheint? Könnte ich nur weiter arbeiten. Ich hoffe, im Okt. wieder darangehn zu können.136

", - - "

Erst Anfang Januar 1934 arbeitete Webern mit ersten Skizzen in A zu dem Lied „Das dunkle Herz“ M 314 weiter an op. 23 (M 314 Sk1, M 314 Sk2 und M 314 Sk3; Datierungen vom „3. I. 1934“ und „5. I. 34“). Dessen Text stellt den Beginn der im Brenner zu einer nummerierten Einheit zusammengeschlossenen Verse dar und komplettiert in dieser Hinsicht die beiden bereits komponierten Gesänge. In einem Brief an Jone betonte Webern, dass die Reihenfolge der Verse im Druck weiterhin auch die Anordnung des zu drei Gesängen angewachsenen Zyklus bestimmen soll:

", - - "

Jetzt bin ich endlich wieder bei der Arbeit. Es wird: „Das dunkle Herz, das in sich lauscht...“ Alles, was von da ab auf der Seite steht, also bis dahin, wo ich schon war: „Es stürzt aus Höhen Frische…“ und soll, wie in Ihrer Anordnung, diesem u. dem folgenden „Herr Jesus mein…“ vorangehn.

", - "

Mir kommt vor, ich habe den Zustand, zu arbeiten, noch niemals so empfunden, wie jetzt.

", - "

Hoffentlich kann er etwas dauern!137

", - - "

Die Arbeit an der am 5. Januar begonnenen Verlaufsskizze (M 314 Sk3) wurde durch Weberns Rundfunkkonzert mit Felix Mendelssohn Bartholdys Violinkonzert und Dritter Symphonie am 28. Januar 1934 unterbrochen.138 Eine weitere Zäsur bedeuteten die am 12. Februar in Wien und anderen größeren Städten Österreichs ausgebrochenen und bis zum 15. Februar andauernden Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes. Diese Ereignisse sollten weitreichende Folgen für Weberns künstlerische Biographie als Dirigent haben (siehe zu Drei Lieder op. 25) und schränkten auch kurzfristig seine Disposition zur weiteren Komposition des begonnenen Gesangs ein, wie in einem Brief an Jone vom 14. Februar deutlich wird:

", - - "

Liebste Frau Jone,

", - "

die Aufregungen der letzten Tage sind ungeheuer u. werden es immer mehr. Es ist kaum möglich[,] einen Gedanken zu fassen […].

", - "

[…] Und vergangene Woche habe ich doch wieder jeden freien Augenblick benützt, um an den Gedichten [sic] „Das dunkle Herz“ weiterzuschreiben. Ich hatte wieder etwas freie Zeit. […]

", - "

Und jetzt wieder – Frau Jone! Geschützdonner, Maschinengewehrgeknatter. –139

", - - "

Am 20. Februar berichtete Webern dann in einem Brief an Humplik, dass er gleichwohl in der Verlaufsskizze bis zur Textstelle „an das Wartende im Dunkel“, also bis Takt 15 angelangt sei.140 Anfang März hatte er inzwischen bis Takt 24 weitergearbeitet: „Ich bin in meiner Arbeit bis: … ‚ein goldenes Flattern trägt:‘ gekommen u. setze morgen fort. Ich habe noch etwas freie Zeit vor mir.“141 Die komplette Skizzierung der Singstimme vermeldete er am 11. März,142 die fertiggestellte Verlaufsskizze ist schließlich mit „15. III. 34“ datiert. In einem darauffolgenden Brief an Jone beschrieb Webern den neuen Gesang vergleichsweise ausführlich und schlug darüber hinaus den Titel der nun vollständigen Sammlung vor:

", - - "

Inzwischen ist das dritte Lied fertig geworden.

", - "

Da es die Worte von „Das dunkle Herz…“ bis „…ich und du und alle“ umfaßt, ist es recht lang geworden u. stellt der musikalischen Form nach eigentlich eine Art „Arie“ dar: bestehend aus einem langsamen Teil u. ab „ich bin nicht mein…“ einem schnelleren, der aber trotzdem die Tempovorschrift „Ganz ruhig“ trägt.

", - "

Er – dieser 2. Teil – ist fast im Flüsterton gehalten. Vielleicht können Sie doch aus dieser Beschreibung ungefähr entnehmen, wie ich im Besonderen den 2. Teil Ihrer Worte aufgefaßt habe: nach einem großen Aufschwung des ersten[,] ganz unvermittelt völlige Stille, Ruhe, Einfachheit.

", - "

Den Titel habe ich mir so gedacht:

", - "

Drei Gesänge aus Viae inviae.

", - "

Kann ich diesen Titel Ihrer Gedichte übernehmen?

", - "

Bald sende ich Ihnen das Manuscript.143

", - - "

An Alban Berg führte er in einem eine Woche später geschriebenen Brief die formale Disposition auch der anderen Gesänge näher aus:

", - - "

Ich habe gerade ein drittes Lied (nach Jone-Texten) fertig gestellt. Eigentlich ist es eine Arie, bestehend aus einem langsamen Teil u. einem schnelleren. Es wird das erste sein.

", - "

Und ich habe bemerkt, dass auch die beiden früher entstandenen eigentlich was anderes sind als Lieder (der Form nach): das eine ist direkt ein Recitativ mit einem Arioso, das andere (in der Folge jetzt letzte) ein Rondo.

", - "

So bin ich, ohne es direkt gewollt zu haben, in diesem opus eigentlich zur Auseinandersetzung mit größeren vokalen Formen gelangt. Am Ende komme ich doch noch zu einer Oper.144

", - - "

Ob sich Weberns Formulierung „fertig gestellt“ in diesem Brief rückblickend auf die einige Tage zuvor datierte Verlaufsskizze oder auf eine bereits vollendete Reinschrift bezieht, ist nicht klar. (Möglicherweise hatte er die Reinschriften der beiden anderen Gesänge auch schon zeitnah nach Beendigung von deren Verlaufsskizzen angefertigt.) Die autographe Stichvorlage aller drei Gesänge C gelangte auf jeden Fall noch vor Juli an die Universal Edition und wurde von dieser am 11. Juli zum Verlag angenommen.145 Die Herstellung verzögerte sich jedoch erheblich: Nachdem Webern zunächst noch davon ausgegangen war, dass „die U. E. […] bis zum Herbst meine letzte Arbeit [druckt]“,146 erfuhr er Ende August, dass der Stich der Lieder „wegen anderer termingebundener Arbeiten leider noch nicht begonnen“ hatte.147 Erst im Februar 1935 wurde Weberns Manuskript zum Stich geschickt, dieser Auftrag jedoch gleich wieder storniert. Tatsächlich wurde mit dem Stich erst Anfang Januar 1936 angefangen. Eine erste Korrektur erhielt Webern dann bereits Ende desselben Monats, zwei weitere folgten am 10. und 27. März. Die Drei Gesänge op. 23 erschienen am 4. Mai 1936 in einer Auflage von 302 Exemplaren.148

", - "

Bereits 1935 hatte Webern auf eine Aufführung der Drei Gesänge op. 23 durch die Sängerin Julia Nessy gehofft, die jedoch nicht zustande kam.149 Die Uraufführung erfolgte erst am 5. Dezember 1943 in Basel (Konservatorium) und in Abwesenheit des Komponisten, bei einem maßgeblich von Willi Reich initiierten Konzert der dortigen Ortsgruppe der IGNM zum 60. Geburtstag Weberns:150 Marguerite Gradmann-Lüscher, die bereits bei Weberns Schweiz-Aufenthalt 1940 in Basel die Fünf Lieder nach Gedichten von Stefan George op. 4 aufgeführt sowie eine Auswahl der Vier Lieder op. 12 gesungen hatte, wurde begleitet von Paul Baumgartner.151

", - "

Die Rezensionen dieses Konzertes in den Basler Zeitungen sind – offensichtlich geprägt durch einen Einführungsvortrag von Reich – auf eine Gesamtschau des „weltfernen“ und damit implizit bereits als quasi historisch verstandenen Komponisten konzentriert:

", - - "

In der Tat vermittelten die zum Teil in Uraufführung dargebrachten Werke den Eindruck von etwas durchaus Einmaligem, Eigenartigem und Weltfernem. Eine Musik höchster geistiger Potenz, Gesetz und Kraft zugleich – man möchte fast sagen: zu wahr um schön zu sein, und damit meinen, dass diese Musik jenseits von Wohlklang und Missklang einzig dem Gebot der Ehrlichkeit und Aufrichtigkeit dient und so die Töne bedingungslos unter das Gesetz des Geistes und seiner Erkenntniskraft zwingt. […] Dahin aber kann und soll die allgemeine Musikentwicklung nicht gelangen, denn diese Dinge zu schauen und im Klang wiederzugeben, vermag nur einer, der sich abseits der Welt begeben hat und der sich nicht um ihr Urteil kümmert – nämlich Anton Webern.152

", - - "

Über die Drei Gesänge heißt es in einer weiteren Besprechung lediglich:

", - - "

Drei Gesänge aus den „Viae inviae“ von Hildegard Jone, op. 23, erklangen in Uraufführung. Hier wird die ruhige, nur gelegentlich durch große Sprünge zerrissene, zarte Gesangslinie durch heftige, harte Einwürfe der Begleitung gestört.153

", - - "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" - ] - }, - { - "blockId": "op25", - "blockHeader": "Drei Lieder nach Gedichten von Hildegard Jone op. 25", - "blockContent": [ - "

Die im Laufe des Jahres 1934 entstandenen Drei Lieder nach Gedichten von Hildegard Jone op. 25 knüpfen an die im Jahr zuvor in den Drei Gesängen aus Viae inviae von Hildegard Jone op. 23 begonnene kompositorische Auseinandersetzung Weberns mit der Lyrik Hildegard Jones an. Die politischen Konsequenzen der Kämpfe zwischen dem paramilitärischen Republikanischen Schutzbund der Sozialdemokratischen Partei und der militärischen und polizeilichen Exekutive des Dollfuß-Regimes in Wien und anderen größeren Städten Österreichs vom 12. bis zum 15. Februar 1934 veränderten Weberns berufliche Situation gegenüber den Vorjahren jedoch einschneidend. Das Verbot der Sozialdemokratischen Partei bedeutete den Verlust seiner Tätigkeit als Dirigent bei den Wiener Arbeiter-Symphonie-Konzerten und als künstlerischer Direktor des Singvereins der Sozialdemokratischen Kunststelle. In der Folge wurden auch seine Engagements beim Rundfunk immer weniger. In einem Brief an Arnold Schönberg, der 1933 in die Vereinigten Staaten emigriert war, beschreibt Webern dies selbst mit vergleichsweise drastischen Worten:

", - - "

[H]ier wird es immer schwerer für mich. Ich spüre doch sehr, was mir durch die bewußten Ereignisse genommen worden ist – u. wohl kaum wird wiederhergestellt werden können. – Und abgesehn vom Materiellen: mit Kanonen hat man mir gleichsam, nein wirklich, zerschossen, was ich mühevoll durch 10 Jahre aufgebaut hatte.156

", - - "

Immerhin bedeutete die zunehmende Isolation auch: „Ich habe jetzt doch etwas Zeit zur Arbeit […].“157

", - "

Nach dem Abschluss der Drei Gesänge op. 23 im März 1934 und parallel zur weiteren Arbeit am Konzert für Flöte, Oboe, Klarinette, Horn, Trompete, Posaune, Geige, Bratsche und Klavier op. 24 begann Webern im Juli desselben Jahres mit der Komposition zunächst eines Liedes aus Jones insgesamt 29 (nicht nummerierte) Gedichte umfassenden Sammlung Die Freude. Dieser im Herbst 1933 in der katholischen Zweimonatsschrift Die Schildgenossen publizierte Zyklus ist untergliedert in

", - - "

–  5 ‚Frühlings‘-Gedichte (hieraus der Text zu „Wie bin ich froh!“ M 317 [op. 25/1]),

", - "

–  8 ‚Stern‘-Gedichte (hieraus „Sterne, ihr silbernen Bienen“ M 321 [op. 25/3]) und

", - "

–  16 ‚Todes‘-Gedichte (hieraus „Des Herzens Purpurvogel“ M 322 [op. 25/2]).158

", - - "

Ob Webern die später insgesamt drei von ihm zur Komposition herangezogenen Gedichte auch unabhängig von (vor oder nach) dieser Veröffentlichung von Jone als Manuskript erhalten hatte, ist nicht nachweisbar. Die genannte Ausgabe von Die Schildgenossen war Webern jedenfalls noch Ende November 1933 nicht bekannt.159

", - "

Anfang Januar 1934 – zu einem Zeitpunkt als Webern die Verlaufsskizze zu M 314 (op. 23/1) gerade erst begonnen hatte – kündigte er als mögliches Folge-Projekt die Vertonung „etliche[r] ‚Stern‘-Gedichte“ an, also wohl von Gedichten aus der zweiten Gruppe innerhalb der Sammlung Die Freude.160 Tatsächlich komponierte er nach Abschluss der Verlaufsskizzen von M 314 (15. März 1934) und des ersten Satzes vom Konzert op. 24 (25. Juni 1934) kein ‚Stern‘-Gedicht, sondern mit dem ersten Gedicht der kompletten Sammlung ein ‚Frühlings‘-Gedicht: „Wie bin ich froh!“ M 317. (Zuvor hatte Webern in den Skizzen zum ersten Satz des Konzerts op. 24 eine Interpolation des ebenfalls aus Die Freude stammenden Gedichtes Wie kann der Tod so nah der Liebe wohnen? [M 315] für Chor erwogen [11. Mai 1934], diese Idee aber wieder verworfen.) Laut Datierung in den Skizzen begann Webern die Komposition des Liedes am 4. Juli 1934, und einige Tage später berichtete er Jone und Josef Humplik davon:

", - - "

Erzählte ich schon, dass mein erster Satz [lies: von op. 24] fertig ist? Momentan habe ich aus Gründen, die ich noch erzählen werde, eine andere Arbeit eingeschoben: die Komposition eines kurzen Gedichtes von Ihnen, liebste Freundin:

", - "

‚Wie bin ich froh! Noch einmal

", - "

wird mir Alles grün….‘161

", - - "

Die im Brief erwähnten „Gründe“ für die Unterbrechung der Arbeit an weiteren Sätzen des Konzertes op. 24 wegen eines Liedes bestanden sehr wahrscheinlich darin, eine Komposition rechtzeitig zum 60. Geburtstag von David Josef Bach am 13. August desselben Jahres fertigstellen zu wollen. Bach, ein Jugendfreund Schönbergs, war in den 1910er Jahren Initiator der Arbeiter-Symphonie-Konzerte in Wien sowie seit 1919 Leiter der Sozialdemokratischen Kunststelle gewesen. Seit 1922 hatte er Webern immer wieder als Dirigent der Konzerte sowie vor allem seit Ende 1923 als Leiter des Singvereins engagiert, was maßgeblich zu Weberns Reputation als Dirigent beigetragen hatte. Durch das Verbot der Sozialdemokratischen Partei nach den Februarereignissen 1934 war Bach selbst in eine prekäre Situation geraten, auf die Webern in Briefen u. a. an Schönberg aufmerksam machte – und dabei auch den bevorstehenden Geburtstag sowie seine geplante Lied-Widmung ansprach:

", - - "

Für Dr. Bachs 60. Geburtstag – 13. August d. J. – wird Folgendes vorbereitet: eine Adresse mit Unterschriften u. eine Geldsammlung.

", - "

Seine finanzielle Lage ist noch immer sehr drückend […].

", - "

Ich widme ihm ein Lied […].162

", - - "

Die 15 Takte umfassende Verlaufsskizze M 317 Sk4 in A (Skizzenbuch 3) hatte Webern einige Tage zuvor, am 16. Juli, beendet und daraufhin Jone mitgeteilt: „Das neue Lied ist fertig. –“163 Von der Einbindung in eine möglicherweise geplante Liedersammlung ist zunächst noch keine Rede.164 Im Anschluss an diese Verlaufsskizze finden sich im selben Skizzenbuch die laut Datierung am „21. VII[.]“ begonnen Skizzen zum zweiten Satz (M 319) des Konzertes op. 24. Davor oder zeitgleich schrieb Webern die Reinschrift des Klavierliedes in E, die aber vermutlich in ihrer ersten Schicht noch nicht der späteren zwölftaktigen Textfassung entsprach. Wohl spätestens vor seiner Abreise zu einer Bergtour in die Ötztaler Alpen am 11. August fertigte Webern eine Niederschrift von Textfassung 1 als Widmungsexemplar an (B), das er Bach zum Geburtstag an dessen Sommeraufenthalt in Henndorf bei Salzburg auf seinem Weg persönlich überbrachte.165 Auch das in E enthaltene Autograph von M 317 (als op. 25/1) wurde zunächst im Sinne von Textfassung 1 in B überarbeitet, bevor es später – vermutlich erst im Zusammenhang mit der Entstehung der Reinschriften zu M 321 (op. 25/3) und M 322 (op. 25/2) – wieder verändert und als Textfassung 2 Teil der späteren Sammlung aller drei Lieder wurde.

", - "

Nach Fertigstellung der Verlaufsskizze zum dritten Satz (M 320) des Konzertes op. 24 am 4. September berichtete Webern Humplik und Jone einige Tage später über den Plan eines auch „Wie bin ich froh!“ M 317 beinhaltenden „Lieder-opus“: „Ich habe das instrumentale opus gerade fertig gestellt u. will nun das bereits begonnene Lieder-opus – fertig ist ja schon längst: ‚Wie bin ich froh‘ – fortsetzen.“166 Eine erste Skizze zu „Sterne, ihr silbernen Bienen“ M 321 in D (Skizzenbuch 4) findet sich innerhalb der Skizzen zum dritten Satz des Konzertes op. 24 und stammt vermutlich bereits von Ende August 1934 (M 321 Sk1). Laut den eigenhändigen Datierungen begann Webern dann am 19. September mit weiteren Skizzen (M 321 Sk2). Über den Fortschritt berichtete Webern Jone Anfang Oktober, wobei der genaue Umfang des „neuen Liederheftes“ nach wie vor offenblieb und sogar die Aufnahme neuer zugesandter, nicht in Die Freude enthaltener „Lieder“ angedeutet wurde:

", - - "

Liebe, sehr verehrte Freundin,

", - "

vielen, innigsten Dank für die schönen Lieder!

", - "

„Wie bin ich froh“, sie zu besitzen. Ich denke, sicher wird das eine oder andere in das neue Liederheft kommen. Jetzt ist „Sterne, Ihr silbernen Bienen…“ in Arbeit u. schon weit geworden.167

", - - "

Die Verlaufsskizze beendete Webern laut Datierung am 8. Oktober (M 321 Sk3 T. 21B–26B). Am 17. Oktober berichtete er Jone sowohl davon als auch bereits vom Beginn der Arbeit an „Des Herzens Purpurvogel“ M 322.168 Der Beginn einer ersten, später abgebrochenen Verlaufsskizze ist mit „24. X[.] 34“ datiert (M 322 Sk3 T. {1A}, {1B}, {1C–2A}, 1D–2B). Die vorangegangenen Skizzen (M 322 Sk1 und M 322 Sk2) sowie möglicherweise M 322 Sk3 Takt {1A}, {1B}, {1C–2A} waren also vermutlich vor der Nachricht an Jone vom 17. Oktober begonnen worden. Anfang November scheint Webern bereits an der endgültigen Verlaufsskizze gearbeitet zu haben,169 die laut Datierung im Skizzenbuch am 15. November fertiggestellt wurde (M 322 Sk4 T. 21C).

", - "

Wann Webern die Reinschriften der beiden neuen Lieder anfertigte und sich entschied, die Reihenfolge des zweiten und dritten Liedes sowohl entgegen der Anordnung in Die Freude als auch der Chronologie ihrer Komposition zu vertauschen und die Sammlung damit abzuschließen, ist nicht dokumentiert. Da Webern das Projekt in seinen Briefen ab Dezember 1934 nicht mehr erwähnt, sondern stattdessen insbesondere mit seiner Bearbeitung der Fuga (Ricercata) a 6 voci aus Bachs Musikalischem Opfer (M 323) beschäftigt gewesen zu sein scheint, dürfte die Reinschrift der vollständigen und als op. 25 gezählten Lieder-Sammlung (E) spätestens vor Ende 1934 beendet worden sein.

", - "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", - "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" - ] - }, - { - "blockId": "about", - "blockHeader": "Zur Edition", - "blockContent": [ - "

Die in der vorliegenden Abteilung versammelten Klavierlieder erscheinen in unterschiedlichen Editionsformen, die sich an der Überlieferungssituation ihrer Textfassungen orientieren: Die gedruckten Sammlungen werden als Werkeditionen vorgelegt. Die lediglich in Tintenniederschriften überlieferten Textfassungen dieser oder – wie im Fall der George-Lieder – im Entstehungsprozess gleichen Editionskomplexen zugeordneter Lieder werden als Texteditionen präsentiert. Eine Ausnahme von dieser Regel stellen die Drei Lieder op. 25 dar, die zu Lebzeiten Weberns nicht im Druck vorlagen. Die autographe Niederschrift der vollständigen Sammlung von op. 25 bietet jedoch alle Merkmale einer für den Druck bestimmten Stichvorlage, so dass eine Werkedition auch hier naheliegt und in textkritischer Hinsicht unproblematisch ist. Überlieferte Bleistiftskizzen werden innerhalb der Online-Edition der AWG als Skizzeneditionen präsentiert.

", - "

Die George-Lieder Weberns werden in der vorliegenden Abteilung als ein zusammenhängender Editionskomplex behandelt. Dessen spätester Überlieferung – den beiden gedruckten Sammlungen von Opus 3 und Opus 4 – geht eine gemeinsame Entstehungsgeschichte voraus, die durch mehrere unterscheidbare Textfassungen sowie vier in die späteren Drucke nicht aufgenommene Lieder charakterisiert ist. Die in den Korrekturschichten der überlieferten Tintenniederschriften unterscheidbaren und vor den – als Werkeditionen vorgelegten – Drucken entstandenen Textfassungen werden mit Blick auf ihren Schreibstoff als Texteditionen präsentiert – darunter auch einige der zeitlich frühesten, mitunter skizzenhaft wirkenden Textfassungen. (Eine Skizzenedition würde in diesen Fällen im Vergleich zu den bei Webern in der Regel üblichen Bleistiftskizzen weniger Informationen zum Schreibprozess bereitstellen, da gegebenenfalls ante correcturam vorhandene Schichten durch spätere Rasuren selten sicher, meistens gar nicht zu entziffern sind.)

", - "

Da insbesondere für die verschiedenen von Webern zwischen 1909 und 1919 konzipierten Zusammenstellungen von George-Liedern nicht immer eindeutig rekonstruiert werden kann, welche Textfassungen welcher Lieder in welcher Anordnung vorgesehen waren, werden die in den Quellen gleichwohl erkennbaren Textfassungen in der Print-Edition der vorliegenden Abteilung in zeitlicher Folge der Textfassungen jedes Liedes, die Lieder ihrerseits in alphabetischer Reihenfolge der Titel präsentiert.

", - "

Die Rechtschreibung (insbesondere Groß-/Kleinschreibung) und mitunter spärliche Interpunktion des Gesangstexts zahlreicher Textfassungen der George-Lieder übernahm Webern in der Regel aus den Gedichtvorlagen. Diese Eigenarten wurden in den entsprechenden Texteditionen beibehalten. Ergänzungen oder Korrekturen der Gesangstexte orientieren sich ebenfalls an den George-Vorlagen und werden in den Textkritischen Anmerkungen aufgeführt. Abweichungen von den Gedichtvorlagen werden in den Textkritischen Anmerkungen durch einen Sic-Vermerk erläutert.

", - "

Bei den im Vergleich zu den George-Liedern zahlenmäßig wenigen frühen Textfassungen einzelner Lieder der Editionskomplexe Vier Lieder op. 12 und Drei Lieder op. 25 wurde hinsichtlich der Anordnung ihrer Texteditionen entsprechend verfahren. Auch wenn die Eigenarten der jeweiligen Textvorlagen dieser Texteditionen nicht so charakteristisch wie im Falle der George-Gedichte sind, gelten die gleichen Grundsätze beim editorischen Umgang mit dem Gesangstext.

" - ] - }, - { - "blockId": "acknowledgements", - "blockHeader": "Dank", - "blockContent": [ - "

Der Herausgeber dankt zahlreichen Personen und Institutionen, die ihn bei der Arbeit auf vielfältige Weise unterstützt haben. Dieser Dank gilt vor allem den Mitarbeitenden der Archive und Bibliotheken, die digitale Reproduktionen ihrer Quellen für die Editionsarbeiten zur Verfügung gestellt bzw. Zugang zu den Originalen gewährt haben: Das Arnold Schönberg Center in Wien, die Music Division der Library of Congress in Washington D.C., die Morgan Library & Museum in New York City, die Musiksammlung der Österreichischen Nationalbibliothek in Wien, die Musiksammlung der Wienbibliothek im Rathaus in Wien sowie das Historische Archiv der Universal Edition in Wien. Besonderer Dank gilt der Paul Sacher Stiftung in Basel, die den größten Teil der erhaltenen Webern-Quellen aufbewahrt: Insbesondere Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert und Andrietta Wahl waren hier immer wieder hilfsbereite und kenntnisreiche Ansprechpartner.

", - "

Für die kollegiale und fruchtbare Zusammenarbeit sei auch allen aktuellen Mitarbeitenden des Projekt-Teams der AWG Michael Matter, Stefan Münnich, Simon Obert, Barbara Schingnitz und Matthias Schmidt, den ehemaligen Kolleginnen und Kollegen Julia Bungardt, Monika Kröpfl, Nikolaus Urbanek und Manuel Strauß sowie den Praktikantinnen und Praktikanten Tamara Ackermann, Yuta Asai, Daia Aschwanden, Madita Knöpfle und Youchen Yu gedankt.

", - "

Bei der Konzeption und Einrichtung der Online-Edition boten Rita Gautschy (Swiss National Data and Service Center for the Humanities), Lukas Rosenthaler und Tobias Schweizer (Digital Humanities Lab der Universität Basel) sowie zahlreiche andere Mitarbeitende der genannten Institutionen Anregungen und Hilfe.

", - "

Heinz Stolba von der Universal Edition in Wien gilt Dank für seine engagierte Kooperation.

", - "

Für Hinweise, Feedback und Ratschläge aller Art seien schließlich Simone Hohmaier (Staatliches Institut für Musikforschung, Berlin), Juliane Brand (Karl Weigl Foundation, San Rafael, CA), Regina Busch (Wien), Felix Wörner (Basel) sowie Michelle Ziegler (Basel) sehr herzlich bedankt.

", - - "

Basel, den 14. Mai 2024 Thomas Ahrend

" - ] - } - ], - "notes": [ - "

1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.

", - "

2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.

", - "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).

", - "

4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.

", - "

5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.

", - "

6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“

", - "

7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.

", - "

8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).

", - "

9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.

", - "

10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).

", - "

11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“

", - "

12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).

", - "

13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).

", - "

14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.

", - "

15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.

", - "

16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“

", - "

17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).

", - "

18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.

", - "

19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.

", - "

20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.

", - "

21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.

", - "

22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“

", - "

23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“

", - "

24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.

", - "

25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“

", - "

26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.

", - "

27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.

", - "

28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.

", - "

29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.

", - "

30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).

", - "

31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.

", - "

32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“

", - "

33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).

", - "

34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“

", - "

35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).

", - "

36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“

", - "

37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“

", - "

38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“

", - "

39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“

", - "

40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“

", - "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“

", - "

42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.

", - "

43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“

", - "

44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.

", - "

45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“

", - "

46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.

", - "

47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“

", - "

48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).

", - "

49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.

", - "

50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.

", - "

51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).

", - "

52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“

", - "

53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.

", - "

54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“

", - "

55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“

", - "

56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.

", - "

57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“

", - "

58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.

", - "

59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.

", - "

60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“

", - "

61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.

", - "

62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.

", - "

63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.

", - "

64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.

", - "

65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.

", - "

66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.

", - "

67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", - "

68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", - "

69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.

", - "

70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", - "

71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.

", - "

72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.

", - "

73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.

", - "

74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.

", - "

75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).

", - "

76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.

", - "

77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).

", - "

78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“

", - "

79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.

", - "

80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.

", - "

81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).

", - "

82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].

", - "

83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.

", - "

84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).

", - "

85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.

", - "

86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“

", - "

87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.

", - "

88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.

", - "

89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).

", - "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.

", - "

91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.

", - "

92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.

", - "

93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.

", - "

94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“

", - "

95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.

", - "

96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).

", - "

97 | Vgl. ebd. (Anhang), S. 340 f.

", - "

98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", - "

99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.

", - "

100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).

", - "

101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.

", - "

102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.

", - "

103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.

", - "

104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.

", - "

105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“

", - "

106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).

", - "

107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", - "

108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", - "

109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.

", - "

110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.

", - "

111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", - "

112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.

", - "

113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“

", - "

114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.

", - "

115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).

", - "

116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“

", - "

117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).

", - "

118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.

", - "

119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“

", - "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“

", - "

121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.

", - "

122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“

", - "

123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.

", - "

124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.

", - "

125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.

", - "

126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).

", - "

127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.

", - "

128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.

", - "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.

", - "

130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.

", - "

131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.

", - "

132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.

", - "

133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.

", - "

134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.

", - "

135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).

", - "

136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.

", - "

137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).

", - "

138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.

", - "

139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).

", - "

140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.

", - "

141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.

", - "

142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.

", - "

143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“

", - "

144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", - "

145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).

", - "

146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).

", - "

147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).

", - "

148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.

", - "

149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).

", - "

150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.

", - "

151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.

", - "

152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", - "

153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", - "

154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", - "

155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", - "

156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).

", - "

157 | Ebd.

", - "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.

", - "

159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“

", - "

160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“

", - "

161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).

", - "

162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).

", - "

163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.

", - "

164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“

", - "

165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.

", - "

166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).

", - "

167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.

", - "

168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“

", - "

169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“

", - "

170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.

", - "

171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“

", - "

172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.

", - "

173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", - "

174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", - "

175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f.

" - ] - }, - { - "id": "en-awg-I-5", - "content": [ - { - "blockId": "preamble", - "blockHeader": "", - "blockContent": [ - "

Series I, Section 5 of the Anton Webern Gesamtausgabe (AWG) presents the songs with piano accompaniment by Anton Webern in the versions (Textfassungen) to which he gave opus numbers and were either published during his lifetime or intended for publication (Opp. 3, 4, 12, 23 and 25), plus various individual songs (such as the George songs M 143–146) that are grouped together in clusters in this edition because the common circumstances of their composition imply that they belong together (such clusters are in the German-language documentation of the AWG referred to throughout as Editionskomplexe). Further clusters of songs that were not published during Webern’s lifetime, including those assigned opus numbers that later became obsolete (e.g. the Dehmel songs M 83, 119, 130–131), will be published in Series II, Section 5.

" - ] - }, - { - "blockId": "op3+4", - "blockHeader": "The George Songs", - "blockContent": [ - "

The earliest versions of Webern’s 14 songs with piano accompaniment to texts by Stefan George (M 133–146) were presumably composed between December 1907 and 1909. Together with the Five Movements for String Quartet M 147–151 and the Six Pieces for Large Orchestra M 152–157, they are among his first so-called atonal compositions. The two collections Five Songs from Der siebente Ring by Stefan George, Op. 3 and Five Songs on Poems of Stefan George, Op. 4 were published in 1919 and 1923 respectively. However, the specific songs collected in these opus numbers were not fixed from the beginning. Determining their content was a lengthy process, the various stages of which can no longer be reconstructed with certainty, and the musical text of most of these songs went through different versions.

", - "

We can trace Webern’s initial reception of George’s work back to circa 1900, when he copied the poem “Indes deine mutter dich stillt” into one of his diaries.1 We have no documentary proof either of any compositional engagement with this poem on his part, nor of his having read more George. He may have had further contact with George’s poetry in the Ansorge Society in Vienna, where Webern and his student friend Karl Horwitz were active from 1904 onwards, and whose evening events included performances of George settings by Conrad Ansorge (Five Songs on Poems of Stefan George, Op. 14).2

", - "

In the summer of 1907, Webern acquired an edition of George’s Das Jahr der Seele and, in the summer of 1908, copies of Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten and Der siebente Ring.3 Webern marked all these books with crosses and angle marks, some of them alongside the titles of poems that he set (though not next to all the ones he later composed); these also include the poems he used for choral works or orchestral songs (Entflieht auf leichten kähnen and Kunfttag III). Only in one case (Kunfttag II) do we find a mark next to a poem for which no musical setting is known by Webern. There are no documents to help us identify the criteria that Webern used when choosing texts from the volumes of poetry that were available to him.4

", - "

One incentive for Webern’s compositional engagement with George’s poems presumably came from Arnold Schoenberg’s own settings. Schoenberg had composed the song “Ich darf nicht dankend”, Op. 14, No. 1 on 17 December 1907 and numerous other songs for his growing cycle Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15, from March to May 1908 (we have definite proof that he composed the songs Op. 15 Nos. 3–8 at that time).5 In a letter dated 11 June 1908 from Webern to Schoenberg, there are indications that the former already knew some of the songs that the latter had completed by this time.6 Various features make it seem plausible that “Erwachen aus dem tiefsten Traumesschoße” M 143 represents Webern’s first setting of a poem by George for voice and piano, as it clearly refers to Schoenberg’s Op. 14, No. 1. Unlike most of Webern’s later songs, these two songs still have a key signature (as does his chorus “Entflieht auf leichten Kähnen” M 129, quite possibly written in 1907/08), which indicates a comparatively early date of conception. Given that the proven date of composition of Schoenberg’s Op. 14, No. 1 provides us with an earliest possible date for Webern’s song, the latter could have been composed between December 1907 and June 1908.7 A comparison of the handwriting and the types of music paper used suggests that the initial versions of the following songs (in one case: the sole extant version [einzige Textfassung]) could also have been written by mid-1908, including “Erwachen aus dem tiefsten Traumesschoße” M 143:

", - - "
“Dies ist ein Lied” M 133(version 1 in A, version 2 in B)
“Erwachen aus dem tiefsten Traumesschoße” M 143(sole extant version in A)
“Im Windesweben” M 134(version 1 in A)
Kunfttag I M 144(sole version in A)
", - - "

Webern wrote to Schoenberg from Berlin in December 1908, requesting a letter of recommendation to Richard Strauss. He also discusses establishing contact with the Berlin publisher Max Marschalk of the Dreililien publishing company (which was probably suggested by Schoenberg). Webern goes on to say that he does not have enough material to make up a volume of songs:

", - - "

I don’t know, I’m so stupidly shy. That’s also why I haven’t yet been to Marschalk.

", - "

If only I had a volume of songs ready. But this means he can’t take anything at the moment.

", - "

On the one hand, I’d like to, but on the other hand –8

", - - "

Webern clearly did not consider either his four George songs (which were presumably finished by late 1908) nor his five Dehmel songs M 83, M 119, M 130–132 (which he had also already composed) to be suitable for publication.9

", - "

Webern’s letter to Heinrich Jalowetz of 25 May 1909, written in Vienna, provides an explicit, dated reference to the composition of a George song: “I have – thank God – written something again. A song after George, ‘Trauer I’ (VII Ring).”10 Webern went to his family’s estate of Preglhof in Carinthia on 29 May and spent the ensuing weeks and months there, during which time he reported to Schoenberg on the completion of a first version of his Five Movements for String Quartet M 147–151 and on further plans for songs and orchestral works (the latter being the Six Pieces for Large Orchestra M 152–157).11 However, his plans were initially delayed by the death and funeral of his maternal grandfather, Anton Geer:

", - - "

Yes, for the reasons given above, I’ve only written one song since the quartet. Stefan George again. That was the day before yesterday and yesterday. Now a few more are on their way. I have so little peace here now. But it’s all still got to come together.12

", - - "

Webern’s visit to Carinthia was also interrupted – presumably from mid-July onwards – by a brief engagement at the theatre in Innsbruck. But by the end of July, Webern was writing to Schoenberg from Preglhof once again, and on 20 August he wrote:

", - - "

Meanwhile, I have written 2 songs and two orchestral pieces. The songs are yet again quite different from before. The orchestral pieces too, of course.13

", - - "

It is unclear precisely to which George songs Webern was referring in his letters to Schoenberg. The only George song by Webern that we can date more precisely thus remains Trauer I M 145, which he had written shortly before 25 May 1909, thus before his visit to Carinthia. Both the manuscript paper that he used and a clear shift in his handwriting style (when compared to the abovementioned songs that were probably composed in 1908) together suggest that, after Trauer I M 145, Webern also wrote the initial versions of the following songs in the course of the summer or autumn of 1909 (in some cases, these are the only versions of the songs in question):

", - - "
“An Bachesranft” M 135(version 1 in E)
“Das lockere Saatgefilde” M 146(sole extant version in A)
Eingang M 138(version 1 in A)
“Im Morgentaun” M 136(version 1 in D [fragment], E and G)
“Ja Heil und Dank dir” M 140(version 1 in B)
“Kahl reckt der Baum” M 137(version 1 in E)
“Noch zwingt mich Treue” M 139(version 1 in B)
“So ich traurig bin” M 141(version 1 in B)
Trauer I M 145(sole extant version in A – before 25 May 1909)
", - - "

On the basis of our assessment of Webern’s handwriting, a further manuscript can also be assigned to this period: “Dies ist ein Lied” M 133 (version 2, which is the basic layer in C). Since the autograph of “Ihr tratet zu dem Herde” M 142 ([C]) has not survived, it is naturally impossible to use these criteria to determine whether it was also written in 1909 or already in 1908.

", - "

In contrast to Webern’s compositions from before 1908 and after 1914, no conceptual sketches in pencil (i. e. continuity drafts, which were often dated) have survived for the George songs (the same applies to most other works composed in the same period). We only find pencil corrections to individual passages in the existing ink manuscripts. Webern commonly made such continuity drafts in pencil during other creative periods of his life, but it is impossible to make any general statement about whether this was also the case here, or whether the manuscripts in ink of the early versions of these songs served the function of a sketch during the compositional process.14

", - "

Six George songs were given their world premiere on 8 February 1910 in Vienna, at a concert of the Verein für Kunst und Kultur (the “Association for Art and Culture” that was the successor of the Ansorge Society). The same concert featured Webern’s Five Movements for String Quartet M 147–151 and songs by Bruno Walter and Karl Weigl.15 Webern’s songs were sung by Martha Winternitz-Dorda, accompanied by the composer. Just a few weeks earlier, on 14 January 1910, she had sung the world premiere of Schoenberg’s Fifteen Poems from The Book of Hanging Gardens by Stefan George, Op. 15 in a concert of his works organized by the same Association for Art and Culture. The programme booklet for the concert of 8 February gave the texts of Webern’s six George settings (listed below) under the collective title “Songs after Stefan George”, arranged in two groups according to the poetry volumes from which they were taken. No opus number was given (in the following schematic summary, we name the version of the song that was presumably performed on this occasion):

", - - "
From Der siebente Ring
Eingang M 138(version 1)
“Dies ist ein Lied” M 133(version 2)
“Im Windesweben” M 134(version 2)
“Kahl reckt der Baum” M 137(version 1)
From Das Jahr der Seele
“Noch zwingt mich Treue” M 139(version 1)
“Ihr tratet zu dem Herde” M 142(unknown version)
", - - "

Manuscript copies in other hands have survived of almost all these songs in F (see the List of Sources [Quellenübersicht] for Op. 3) and D (see the List of Sources for Op. 4) that were most likely made for this specific performance. These songs are numbered in pencil from “I” to “V” in these two sources; the numberings correspond to the order of the texts as given in the programme booklet (while no copy of “Ihr tratet zu dem Herde” M 142 [E] has survived, it no doubt existed and was presumably given the number “VI”). Certain musical and orthographic details in the copyist’s manuscripts seem especially clumsy, while their text underlay reveals similarities with the handwriting of Wilhelmine (Minna) Mörtl, who later became Webern’s wife. These manuscript copies generally contain numerous annotations by Webern himself, some of which (in “Dies ist ein Lied” M 133 most of all) entail a process of revision resulting in later versions of the song. However, some of the annotations in red crayon were probably made in the context of preparations for the first performances in February 1910, when the abovementioned copies were presumably used by the singer. When we consider the versions of the musical text that were most likely performed on that occasion, we can surmise that Webern probably played the piano accompaniment from the following sources:

", - - "
Eingang M 138:A (version 1)
“Dies ist ein Lied” M 133:C (version 2)
“Im Windesweben” M 134:E (version 2)
“Kahl reckt der Baum” M 137:E (version 1)
“Noch zwingt mich Treue” M 139:B (version 1)
“Ihr tratet zu dem Herde” M 142:[C] (unknown version)
", - - "

Webern’s compositions that were performed in this concert in 1910 were given several negative reviews. As an example, we offer here a passage from Julius Korngold’s review in the Neue Freie Presse in which he also makes explicit reference to the previous month’s concert in which Schoenberg’s George songs, Op. 15, were given their first performance:16

", - - "

We were recently occupied with the case of Schoenberg, and now we also have the case of Anton v. Webern, even if both are basically one. For Mr v. Webern is Schoenberg’s pupil, one who not only swears by his master’s words, but in many a respect outdoes him. This is a good thing; one feels less stressed, and experiences an almost comfortable indifference. One was able to engage with [the work of] the teacher, and indeed one was compelled to do so, while that is not the case with his disciple. […] [his] six songs by Stephan [sic] George also tread along Schoenberg’s path, and not just in his choice of poet. Chords from the new theory of harmony are accompanied by a psalmodizing singing voice using the relevant intervals. Even a musically trained, receptive listener here undergoes the psychological experience of thinking he is always hearing the same thing. Here, however, the words provide a certain degree of expression, though admittedly it is an expression throughout of mental dejection, of mental disintegration. If one listens in a spirit of good will, then one is reminded in their best moments of Octave Mirbeau’s painter, who ultimately only wanted to paint “souls”. . . .

", - "

May the reader here forgive our grim merriment. But when performed on Shrove Tuesday, this music involuntarily infects our Ash-Wednesday criticism with a certain carnival mood.17

", - - "

The six songs that were given their first performance in 1910 were merely a selection of what were presumably a total of 14 George songs that Webern had already composed at that time. In two handwritten lists of titles, probably drawn up before the first performances of all the songs, he had already divided them into two groups designated “Op. 2” and “Op. 4”, with seven songs each.18 These two lists read as follows (with angle marks added in pencil, “[p]”, and in red crayon, “[r]”):

", - - "
Sieben Lieder
nach Gedichten von Stefan George
op. 2
[p]1. Eingang.(„VII. Ring“)
[p + r]2. „Dies ist ein Lied...“(„VII. Ring“)
3. „Erwachen aus dem tiefsten traumesschoße....“ |
(„Jahr der Seele“)
[p + r]4. „Im windes-weben.....“(„VII. Ring“)
5. Kunfttag 1.
[p + r]6. „Kahl reckt der baum..“
[p]7. [„]Im morgentaun....“ 
Anton von Webern
Sieben Lieder        op. 4
nach Gedichten von Stefan George
1. Trauer I („Maximin“)aus dem „VII. Ring“
2. „Ja heil und dank dir....“ („Nach der Lese“) aus „Jahr der Seele“
[p + r]3. „Noch zwingt mich treue....“(„Waller im Schnee“) aus „Jahr der Seele“
[p]4. „An bachesranft....“(„Lieder I–IV [sic]“ aus dem VII. Ring“)
5 „Das lockere saatgefilde....“(„Gezeiten“) aus dem „VII. Ring“
6 „So ich traurig bin.....“(„Sänge eines fahrenden Spielmanns“
aus „Die Bücher der Hirten- und Preisgedichte, der Sagen u. Sänge u[.] d. hängenden | Gärten“
[r]7&ngsp;[p]&ngsp;„Ihr tratet zu dem herde....“(„Traurige Tänze“) aus „Jahr der Seele“
", - - "

Several elements in these two lists19 prove that they were not written at the same time. Given that the sequence of opus numbers that Webern had begun with his Passacaglia M 127 (his “Op. 1”) was interrupted by his Five Movements for String Quartet M 147–151 (designated “Op. 3”), he probably compiled his Seven Songs (“Sieben Lieder”) “Op. 2” earlier than the songs that his second list designated as “Op. 4” (this would also seem to be confirmed by the fact that his “Op. 2” contains all the songs that he had presumably composed by 1908).20 Despite the differences between them and the presumed chronological distance between the two lists, they both bear traces of having been reworked at the same time; they have the abovementioned angle marks in pencil and red crayon on the left, alongside several lines of text (in the last line of “Op. 4” also between the song number and the opening line). Furthermore, some numbers in the list for “Op. 4” (“1”, “5” and “6”) have been crossed out in pencil. It is possible that the red crayon markings denote the choice of songs for the performance of 8 February 1910 (in which case the angle mark next to “2. ‘Dies ist ein lied...’” in the list for “Op. 2” would also refer to “1. Eingang.” above it).21 All the George songs, plus the two lists themselves, must in this case have been written before the date of this concert, and these two collections of songs would then presumably also have been among the compositions that Webern presented at a meeting that Schoenberg had organized with the director of Universal Edition, Emil Hertzka, on 9 October 1909 (though none of these works was subsequently accepted by the publishing house).22

", - "

However, these two compilations do not simply constitute more extensive versions of the collections later printed as Webern’s Opp. 3 and 4.23 For example, the ordering principle behind his Five Songs from Der siebente Ring by Stefan George, Op. 3, published in 1919, played no role in his selection of songs for “Op. 2”.24 In this Op. 3, Webern brought together all the texts that he had set to music from the poetic cycle Lieder (Songs) that George had included in Der siebente Ring and also kept those songs in the order of the original poems.25 “An Bachesranft” M 135, which features in this opus 3, also appears here in the list for “Op. 4”, while “So ich traurig bin” M 141, which was actually included in the Five Songs on Poems of Stefan George, Op. 4, published in 1923, was deleted from the list for the Seven Songs “Op. 4”.

", - "

In early June 1911, Webern sent “some 10 songs” to the Dreililien publishing company in Berlin, together with his Five Movements for String Quartet M 147–151 and his Four Pieces for Violin and Piano M 161–164.26 It is impossible to determine just which songs he sent. After all these works had been rejected, Webern submitted the same compositions to the publisher Tischer & Jagenberg in Cologne in late September or early October,27 though again without any of them being accepted for publication.28

", - "

In the autumn of 1911, Webern – along with Schoenberg and Alban Berg – received an invitation to contribute a musical supplement to the almanac Der blaue Reiter, published by Wassily Kandinsky and Franz Marc. For this he chose “Ihr tratet zu dem Herde” M 142. A letter that Webern wrote to Paul Königer reveals that he had also included this song in the selection sent to Tischer & Jagenberg:

", - - "

You want this song from me; yes, I have sent the two copies I possessed to the “blauer Reiter” and to the publisher.

", - "

But if it is still possible, I shall copy it out again from the sketch and give it to you as a gift.29

", - - "

Webern had thus presumably sent the sources [C] and [E], neither of which has survived, to the Cologne publisher and to Der blaue Reiter. When the publisher Gerhard Tischer rejected his music in late December 1911 or early January 1912, Webern got his works back and was able to inform Königer that he would send the promised copy of the song: “You’ll get my song soon. By the way, it will appear in the ‘blauer Reiter’.”30 (In late January, Webern was sent “the proofs of my song”,31 i. e. presumably the proofs from the music engraver [F] that were engraved after the copy he had sent). Der blaue Reiter was published in May 1912, and Webern received his copy (with GH) in early June.32

", - "

Already by the beginning of 1912, Webern was making plans for the private publication of a selection of nine songs together with others of his works, as he wrote in a letter to Berg:

", - - "

At Schoenberg’s insistence, I have decided to publish 4 of my works (Passacaglia, 9 songs, Quartet [the first] and the older 6 orchestral pieces) with Straube (just like Schoenberg’s Quartet No. II). So I’ve got a lot to do with regard to revising these scores.33

", - - "

This decision had been preceded by discussions with Schoenberg in February, whose diary records his having looked through several works by Webern, expressly mentioning his songs:

", - - "

Webern came on the afternoon in order to look through his songs with me (which he wants to publish). They again pleased me a lot. Truly an original talent. I can see that he’ll turn into something great.34

", - - "

In his personal copy (GH) of the song that he published in Der blaue Reiter, Webern revised the musical text and added the opus number “2”. In the two abovementioned lists of the two sets of seven songs “Op. 2” and “Op. 4”, however, this song was still classified under “Op. 4”. So “Ihr tratet zu dem Herde” M 142 (version 2) was presumably part of a new collection of “9 songs” designated “Op. 2” that constituted a selection from all 14 of Webern’s George songs and replaced the two previous compilations. Just which other songs also belonged to this new collection remains undocumented. Ultimately, no Straube publication of the four aforementioned opus numbers came about. In fact, only the orchestral pieces M 152–157 were published thus in 1913, as Webern’s “Op. 4”.

", - - "

Instead, in a letter to Schoenberg sent in the summer of 1912, Webern mentions his plan to submit a different selection of his compositions to Simrock, from which he intentionally excluded his songs:

", - - "

I’ll be sending the following to Simrock today already: the “Passacaglia”[,] the quartet and the violin pieces. I still haven’t copied out my songs properly, otherwise I would be sending them too. But I will speak of them in a letter. Perhaps he will then ask for the songs. By then I will have put them in order.35

", - - "

But just a few weeks later, Webern’s works were rejected once again.36 It remains unverifiable whether or not he had indeed subsequently “copied out [his] songs properly”. In early 1913, Webern ultimately sent an unspecified selection of his songs to the publishing house of Gadow in Hildburghausen, though again, clearly, without success.37

", - "

In the summer of 1914, Schoenberg once more approached Universal Edition about Webern.38 After a conversation between Webern and Hertzka that took place on 25 June, it was finally agreed that the latter would publish “the score of Op. 4, the chorus and a booklet of songs or the violin pieces39 by Webern the following year. However, no decision ever had to be made about whether to publish a volume of his songs or the Four Pieces for Violin and Piano M 161–164, because the First World War broke out just a few weeks after their meeting, and economic reasons forced the cancellation of their plans.40

", - "

A few days before the outbreak of war, thanks to the mediation of Alban Berg and Alfred Kalmus, the possibility nevertheless arose for Webern to contribute something to a collective publication being prepared by Universal Edition entitled Das moderne Lied (“The Modern Song”).41 Webern submitted three songs – none of which can be identified today42 – but none was included in the volume.43

", - "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", - - "

Neun Lieder | op[.] 6 [“6” corrected from: “5”; the whole line has been added subsequently in pencil] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - - "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", - "

In addition to Webern’s efforts to get a selection of his George songs into print, there were also repeated plans for further performances of them, after the abovementioned first performance of six songs in February 1910. An unspecified number of Webern’s songs was initially planned for inclusion in a concert in Vienna on 24 April 1911, for example, though they were dropped for various reasons.46 Webern temporarily considered replacing a performance of his Pieces for Violin M 161–164, planned for 29 June 1912 in Vienna, with “4 songs” instead.47 And when Schoenberg had the idea of a joint “evening of compositions” by Berg and Webern in Berlin in autumn 1913, Webern thought of including several songs alongside his string quartet compositions M 147–151, M 171–174 and M 178–180:

", - - "

And then songs by me. It would be nicest of all if [Marya] Freund sang. Do you think that could be organized? I would like to send her the songs soon. May I ask you for the address of Ms Freund?48

", - - "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", - "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", - - "

I    “Dies ist ein Lied” M 133 (version 4)

", - "

II   “Im Windesweben” M 134 (version 3)

", - "

III  “An Bachesranft” M 135 (version 3)

", - "

IV  “Im Morgentaun” M 136 (version 3)

", - "

V   “Kahl reckt der Baum” M 137 (version 5)

", - - "

Webern finally concluded a contract with Universal Edition in August 1920, signing over the rights to his Op. 1 (Passacaglia M 127), Op. 2 (“Entflieht auf leichten Kähnen” M 129), Op. 3 (George songs M 133–137) and Op. 6 (Pieces for Orchestra M 152–157), and Universal subsequently also took on the remaining copies of the edition of the Five Songs from Der siebente Ring by Stefan George, Op. 3, that had been printed by the Verein in 1919.58

", - "

For the publication of his Five Songs on Poems of Stefan George, Op. 4, Webern had a copy, I, made of the versions of the songs contained in his autograph fair copy H. It is unclear just when he had this done, though it was presumably not long after he signed the contract for the work in April 1923.59 Print J was published in August 1923 and contains the following songs:

", - - "

I     Eingang (“Welt der Gestalten”) M 138 (version 3)

", - "

II   “Noch zwingt mich Treue” M 139 (version 3)

", - "

III  “Ja Heil und Dank dir” M 140 (version 2)

", - "

IV  “So ich traurig bin” M 141 (version 2)

", - "

V   “Ihr tratet zu dem Herde” M 142 (version 3)

", - - "

The world premiere of the Five Songs on Poems of Stefan George, Op. 4, was given by Jenny Jungbauer und Ilse Fromm-Michaels on 23 November 1923 in Hamburg at a cycle of concerts entitled “New Music” that was organized by Josef Rufer und Hans Heinz Stuckenschmidt. Webern was presumably not in attendance, nor had he been involved in preparations for the performance.60 The complete collection of Op. 4 was performed in Webern’s presence only on 10 February 1940 in Basel in a concert of the International Society for Contemporary Music (hereinafter ISCM) featuring Marguerite Gradmann-Lüscher accompanied by Erich Schmid, at which they also performed three of Webern’s Four Songs, Op. 12, alongside songs by Schoenberg and Berg.61   

", - "

As in the latter case, further performances of Webern’s George songs during his lifetime often took place in various combinations comprising selections from the published collections Opp. 3 and 4 and the Four Songs, Op. 12. In addition to the performances already mentioned from the years 1910, 1919 (the world premiere of Op. 3) and 1923 (the world premiere of Op. 4), we currently have documentary evidence of the following:

", - - "

–  20 November 1922, Prague, Verein für musikalische Privataufführungen, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.62

", - "

–  17 January 1925, Paris, Revue musicale, Ruzena Herlinger and Ernst Bachrich: Op. 3/1, 3/2, 3/3.63

", - "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.64

", - "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.65

", - "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.66

", - "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.67

", - "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.68

", - "

–  17 December 1934, Vienna, Ehrbar Hall, Felicie Hüni-Mihacsek and Eduard Steuermann: Five Songs from Der siebente Ring by Stefan George, Op. 3.69

", - "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.70

", - "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.71

", - "

–  5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", - - "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Five Songs on Poems of Stefan George, Op. 4 (JH), we find various annotations pertaining to performances, and indications of durations. It is impossible to prove whether or not these are connected with one of the abovementioned performances (though perhaps with the first performance of the entire collection in Basel in 1940).

" - ] - }, - { - "blockId": "op12", - "blockHeader": "Four Songs, Op. 12", - "blockContent": [ - "

The dates of composition of the individual continuity drafts for the Four Songs, Op. 12 can be divided into two clearly separate phases. Webern initially composed “Der Tag ist vergangen” M 212 and “Schien mir’s, als ich sah die Sonne” M 213 in early 1915; in the spring of 1917, he wrote Gleich und Gleich M 216 and Die geheimnisvolle Flöte M 217. Both of these phases occurred during a creative period that lasted from ca 1914 to the mid-1920s that was notable for Webern’s having concentrated on vocal composition, especially works for solo voice with ensemble accompaniment, most of which were published from 1924 onwards in his Opp. 13–19 (cf. AWG I/4). The genesis of the Four Songs, Op. 12 should also be seen in this context. Since they were composed for voice and piano, the present edition has assigned them to AWG Section I/5.

", - "

The gap of more than two years that occurred during the composition of the songs of Op. 12 was a result of a radical historical caesura: the First World War. When it broke out in late July 1914, it also forced Webern to change all his hitherto plans. He had been appointed as a conductor to various theatres from 1909 onwards, but had suffered repeated health problems, and so had undergone therapy with the psychoanalyst Alfred Adler from August to October 1913. After this, Webern once more felt in a condition to be able to assume conducting duties. He had accordingly accepted such a position in Stettin (today Szczecin in Poland) for the summer of 1914, but this engagement was cancelled because of the war. Webern was initially enthusiastic about the onset of war, and now sought to enrol in the military instead. However, his age and state of health meant that he was not called up until November 1914. In February 1915, he was stationed first in Klagenfurt and then in Gorizia as part of a “one-year” training course.73 Apart from several brief interruptions, Webern remained in military service until the end of 1916.

", - "

The two songs with piano that Webern composed in January 1915 were the first compositions that he completed after the beginning of the war, and the only works that he completed before being deployed. Webern had written to Heinrich Jalowetz in mid-December 1914, saying that he had “begun something again”,74 and reported to him once more on 10 January about his continuing productivity – a few days before dating his continuity draft for “Der Tag ist vergangen” M 212 in A (13 January 1915): “I am now writing something new again, i. e. I’m really only just getting down to it.”75

", - "

The text for “Der Tag ist vergangen” M 212 was taken from Peter Rosegger’s novel Peter Mayr, der Wirt an der Mahr. Eine Geschichte aus deutscher Heldenzeit.76 This book is about a historical figure from the so-called Tyrolean freedom struggles after 1805 whose crises of conscience are depicted as akin to the martyrdom of a saint. He is torn between his social and religious longings for peace on the one hand and his efforts to help attain political and national emancipation on the other. Webern had read the book in early 1915, as can be seen from his letter to Arnold Schoenberg of 9 January in which he quotes a lengthy passage from it about a revelatory religious experience.77 However, Rosegger had already been of great importance to Webern since 1912 at the latest, as is especially clear from the numerous times that Webern mentions him in his letters to Alban Berg and Schoenberg.78 Besides Webern’s interest in the religious sphere evoked in the book, its nationalistic tenor might well have corresponded to his own euphoria for the war after its outbreak in mid-1914. In this two-strophe poem (which in older editions of the novel was published as four strophes), Rosegger uses formulae from traditional, popular songs of pilgrimage.79 He situates his poem in an evening scene of an act of military resistance disguised as a mass pilgrimage, in which several pilgrims sing the “melancholy notes of this song” with “bright voices”.

", - "

Webern presumably made the fair copy of version 1 of “Der Tag ist vergangen” M 212 in B shortly after the dated continuity draft. It is impossible to determine precisely when he made the revisions in A and B and the resulting copy of version 2 in C. Nevertheless, the red ink that he used for the text underlay in both B and C as well as the cursive script indicate that they were all made at a similar time, presumably before Webern was stationed in Klagenfurt. In any case, version 2 served as the engraver’s copy for the single print of “Der Tag ist vergangen” M 212 in the Musikblätter des Anbruch in May 1922 (E).80 When it was to be published in the collection Four Songs, Op. 12 (G) in 1925, Webern made his own engraver’s copy (version 3 in F). As with many of his other settings of Rosegger’s texts, Webern refrained here from indicating the author in all the copies and prints of this song. In his Four Songs, Op. 12, he identifies it as a “folk song”.

", - "

In a letter to Schoenberg dated 21 January 1915, Webern tells him he has completed a “song with piano” (presumably “Der Tag ist vergangen” M 212) and mentions that he has “begun” two other songs.81 One of these might have been “Schien mir’s, als ich sah die Sonne” M 213, whose continuity draft in A is dated 31 January 1915 (the second song was presumably the Trakl setting “In der Heimat” M 214, which remained unfinished).

", - "

The text of “Schien mir’s, als ich sah die Sonne” M 213 was taken from August Strindberg’s play Ghost Sonata (whose original Swedish title was Spöksonaten). A copy of the German translation by Emil Schering has been preserved in Webern’s library that bears the autograph date “2. VII[.] 09.” (which was Wilhelmine Mörtl’s 23rd birthday).82 Webern had already discovered Strindberg’s works in 1908, after which this author played a decisive role in his communications with both Schoenberg and Berg.83 The poem in question appears twice as a song in Schering’s edition of the play: at the close of the second act, and shortly before the end of the third and final act, when the (fatal) exchange between the “Student” and the “Young Lady” takes place. The song is sung by the Student, who is accompanied the first time by the Young Lady “on a harp”, while the second time, after the death of the Young Lady, it “whispers in the strings of the harp”.

", - "

Webern had already begun a setting of this poem in a short sketch for women’s and children’s chorus (“Schien mir’s, als ich sah die Sonne” M 198), which he dated “Winter 1913/1914” (though this date was presumably added later). This sketch, however, never proceeded beyond the first line. The copy of the song with piano “Schien mir’s als ich sah die Sonne” M 213 in C was based on the continuity draft in A and bears numerous traces of having been revised. It is not possible, however, to discern the musical text unambiguously as it existed before those corrections. The use of cursive script and of the same red ink for the text underlay that we find in the copies of “Der Tag ist vergangen” M 212 in B and C suggests that the basic layer of “Schien mir’s als ich sah die Sonne” M 213 was written at roughly the same time. It is therefore possible that it was also composed before Webern was stationed in Klagenfurt in February 1915.

", - "

No compositional efforts of Webern’s have survived from his time in the military in 1915 and 1916. He wrote to Jalowetz as follows in January 1917:

", - - "

I’m now recovering gradually from these 2 years – mentally. Only now can I really feel the effect. I’m slowly getting back on track, finding my way. I’m gradually remembering what I’d been thinking before, and where I had reached.84

", - - "

The first composition that Webern completed after his two years in the military was Gleich und Gleich M 216, whose continuity draft in A is dated 31 March 1917. This was only Webern’s second-ever setting of Goethe, after his song with piano Blumengruß M 2085 of 1903. We have no details of Webern’s Goethe reception before 1917, though we do find sporadic mentions of his having read the poet.86 According to the handwritten list of books and scores that Webern began keeping in the 1910s, he owned the following edition of Goethe: Sämtliche Werke. Jubiläumsausgabe in 40 volumes, Stuttgart and Berlin: Cotta, [1902–1912].87 Further traces of his compositional engagement with Goethe’s works during these years can be found in two further sketches/fragments from 1917 (Gegenwart for voice [baritone?] and piano M 220) and 1918 (Cirrus for voice and orchestra M 235).88

", - "

Version 1 of Gleich und Gleich M 216 fully notated in C presumably dates from shortly after the continuity draft. It reveals changes that point to version 2 in F, which was prepared for the song’s publication in 1925. Another, unrevised copy of version 1, found in D, can be confirmed as postdating C, not least because its text underlay is written in Latin script. However, we do not know the precise date when this version was committed to paper, nor why it was made. The designation “Op. 12” in its title suggests that its earliest possible date is some time after April 1920 (see below).

", - "

In one of his later lectures, “Wege zur neuen Musik” (“Paths to New Music”) of early 1932, Webern mentions the introductory measures of Gleich und Gleich M 216 as an example of his having already grasped intuitively the principles of later twelve-tone composition, since they present all twelve pitch classes of the chromatic scale. “The law was not yet known to us back then, but it had long been felt.”89 The next Goethe settings that Webern completed, the Two Songs for Mixed Chorus, Op. 19, only date from 1925/26. They are among his first explicitly twelve-tone compositions and are also the last settings of Goethe that he ever completed.

", - "

The continuity draft of Die geheimnisvolle Flöte M 217 in A is dated 10 April 1917, thus immediately after Webern had completed Gleich und Gleich M 216 (though his letters of this time to Berg, Jalowetz and Schoenberg mention neither of these works). The text he set in Die geheimnisvolle Flöte is a free adaptation of a poem by the Chinese writer Li Tai-po (today more commonly referred to as Li Bai), taken from Hans Bethge’s collection Die chinesische Flöte (The Chinese Flute), which was first published in 1907. The copy of the fourth edition of this book that has survived in Webern’s library bears the handwritten date “3. 12. 12.” (thus 3 December 1912, his 29th birthday) on the reverse of the front cover.90 Webern will have been aware of several poems from this collection at least one year previously, as Gustav Mahler had set them in his Lied von der Erde, whose world premiere Webern had attended on 20 November 1911 in Munich.91 Webern composed Die Einsame M 199 from Die chinesische Flöte for voice and orchestra in February 1914, and followed this in July 1917 with In der Fremde M 223, later including both these songs in his Four Songs for Voice and Orchestra, Op. 13. Two more unfinished sketches by Webern have survived that use texts from Die chinesische Flöte: Nächtliches Bild M 233 (from autumn 1918) and Der Frühlingsregen M 244 (probably from 1920).

", - "

The basic layer of the copy in C of Die geheimnisvolle Flöte M 217 (version “0”) can no longer be deciphered clearly. However, as in the case of Gleich und Gleich M 216, also in C, it was probably written shortly after the continuity draft and contains alterations in ink and pencil. Together with an intermediate stage that also cannot be determined with any clarity, these changes might have been pointing towards version 1 found in F, which was made with a view to publishing the song in 1925.

", - "

It was in 1920 at the latest when Webern brought together these four songs with piano to form a collection with an opus number. It was presumably sometime after April 1920 that Webern drew up a handwritten list of his works for Universal Edition in which he designated these as “4 Songs with Piano” and gave them the number “Op. 10”.92 This is the number that they were originally given on the cover page of source C, though this was later deleted and corrected to “Op. 12”.93 This change was made no earlier than the beginning of 1921, when Webern was busy numbering other works. In an article published by Egon Wellesz in February 1921, these songs are explicitly mentioned as being Webern’s “opus 12”.94 The music examples given in this article were prepared on the basis of version 2 of “Der Tag ist vergangen” M 212 and version 1 of Gleich und Gleich M 216, and thus presumably used C as their source (or possibly D in the case of M 216 in the corresponding stage of corrections). In May 1922, version 2 of “Der Tag ist vergangen” M 212 was published separately (though with a remark that it belonged to Op. 12) as a music supplement to the Musikblätter des Anbruch (E). Webern revised his personal copy of “Der Tag ist vergangen” M 212, EH, resulting in version 3, and he revised Gleich und Gleich M 216 in C, resulting in version 2 of the song. By the turn of the year 1924/25 at the latest, Webern had produced an engraver’s copy, F, of his Four Songs, Op. 12, which he then offered to Universal Edition in a letter of 3 January 1925 to its director, Emil Hertzka, in which he mentioned it as being one of the works he “currently had ‘in stock’”. He clearly submitted the work to them shortly afterwards.95 On 12 June of that year, he sent the second proofs of the engraved music back to his publisher, and on 20 June he returned the proof of the title page.96 Print G of the Four Songs, Op. 12 was published on 30 September 1925 in an edition of 499 copies.97

", - "

Webern received an enthusiastic reaction from Alban Berg, who wrote to him just a few days after these songs were published:

", - - "

What great pleasure you have given me, my dear, with your Op. 12! This is once again – just like everything by you – a real Webern. Even the way you have compiled the wonderful texts and have brought them together into a single whole! Not to mention the music! Yes, it seems to me as if I were to see you in a completely new way. What a tone you strike in the Strindberg song. And overall, what variety there is in these 4 songs. The last one, for example: such gracefulness. One can safely say that we will not find this anywhere else in the whole music repertoire –: such a song by you is for me a veritable fount of joy, a joy that shines out over my whole being. It’s like when the sun suddenly bursts forth on a gloomy day, and you just don’t know why you suddenly feel happy again.98

", - - "

The world premiere of Webern’s Op. 12 in its entirety took place on 8 January 1927 in the small hall of the Vienna Musikverein, sung by the Dutch singer Co van Geuns with Eduard Steuermann at the piano. The same concert saw the world premiere of Alban Berg’s Lyric Suite, performed by the Vienna String Quartet (the Kolisch Quartet), plus a performance under Webern’s baton of Johann Sebastian Bach’s Concerto for Four Pianos BWV 1065.99 Webern wrote to Schoenberg a few days later, offering a succinct commentary on the performance of his songs: “On the same evening as Berg’s quartet, a song opus of mine was also given its first performance. It went very well.”100 The Arbeiter-Zeitung afterwards featured a positive review of the concert in which it placed Berg’s work in the foreground and offered a comparatively brief report of Webern’s Four Songs, Op. 12:

", - - "

New songs by Anton  W e b e r n, which Co van  G e u n s  sang with exceptional musicality, led by Eduard  S t e u e r m a n n  at the piano, were also a great success. Here, brief lyrical poems are pressed into musical forms whose composition cannot be clear to the impartial listener. So he must hold on to the expressive values that can be found here in abundance, even if the strange course of the singing voice makes it difficult to follow all the time. The songs had to be repeated and this made them easier to understand.101

", - - "

According to a diary entry by Webern, Gleich und Gleich M 216 had already been sung by a “Dutch [woman] singer” in October 1926,102 presumably also van Geuns, who also performed songs by Webern (probably also from Op. 12) and by Alexander Zemlinsky in Cologne sometime after the world premiere of the Four Songs, Op. 12 of early January 1927.103 As with the George songs, several performances during Webern’s lifetime (probably with his consent or even at his suggestion) took place at which only a selection of the Four Songs, Op. 12 was sung, or at which selected songs from that opus were combined with individual numbers from the George songs Opp. 3 and 4. Apart from the performances with van Geuns already mentioned above, we have proof of the following concerts having taken place:

", - - "

–  26 October 1928, London, Wigmore Hall, Ruzena Herlinger and Eduard Steuermann: Opp. 3/1, 3/2, 3/5, 12/1 and 12/4.104

", - "

–  25 October 1929, Brussels, Palais des Beaux-Arts, Ruzena Herlinger and Stefan Askenase: songs from Opp. 4 and 12.105

", - "

–  13 April 1931, Vienna, Small Hall of the Musikverein, Aenne Michalsky and Eduard Steuermann: Opp. 4/1, 3/1, 3/2, 3/5, 12/1 and 12/4.106

", - "

–  18 November 1931, Amsterdam, Berthe Seroen and Phons Dusch: Opp. 3/1, 3/3, 12/2.107

", - "

–  2 December 1933, Vienna, Small Hall of the Musikverein (Concert of the ISCM on the occasion of Webern’s 60th birthday), Aenne Michalsky and Eduard Steuermann: songs from Opp. 3, 4 and 12.108

", - "

–  9 May 1935, Vienna, Musikverein (a concert of the Hertzka Memorial Foundation), Julia Nessy (voice): Four Songs, Op. 12.109

", - "

–  21 November 1935, Vienna, Hagenbund (Concert of the Verein für neue Musik), Julia Nessy (voice): Four Songs, Op. 12.110

", - "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", - "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", - - "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" - ] - }, - { - "blockId": "op23", - "blockHeader": "Three Songs from Viae inviae by Hildegard Jone, Op. 23", - "blockContent": [ - "

The Three Songs from Viae inviae by Hildegard Jone, Op. 23, which Webern began in early 1933 and completed in March 1934, were his first songs with piano accompaniment to use the method of “composing with twelve tones” – as Webern usually referred to it – and they were also the first vocal work that he had completed since his Two Songs for Mixed Chorus with the Accompaniment of Celeste, Guitar, Violin, Clarinet and Bass Clarinet, Op. 19, composed between late 1925 and the summer of 1926. Webern’s title uses the term “Gesang” for “song”, not “Lied”, which serves as an indication of the extended length of the individual songs when compared to most of his other vocal works. These were also Webern’s first compositions to texts by Hildegard Jone, whose poetry provided him with the basis for all the vocal works that he subsequently completed.

", - "

Webern presumably first met Jone and her husband, the sculptor Josef Humplik, in autumn 1926 at an exhibition of the Hagenbund in Vienna. This acquaintance led to plans for a collaboration between Webern and Jone by 1928 at the latest,113 and resulted in Jone writing “three opera texts”.114 A letter exists from Webern to Jone, written over a year later, in which he wrote that he wanted “to talk about your dramas”,115 though it remains unclear whether he is referring to the aforementioned three libretti or to other texts by Jone. However, it does seem that Jone still intended to “write [...] a ‘libretto’” for Webern.116 We know that Webern wrote to Jone in September 1930 to apologize

", - - "

that your dramas, which are so beautiful, had obviously not found me in the right state of mind for such work, despite the fact that I was very serious at the time about composing such things.117

", - - "

Instead, he goes on to ask her in this letter to write him a cantata text.118 Nevertheless, we do not know of any poems by Jone from this same time that might be connected to this request on the part of the composer (as is well known, Webern did indeed compose “cantatas” to texts by Jone, but only between 1935 and 1943; these were Das Augenlicht, Op. 26, the Cantata No. 1, Op. 29 and the Cantata No. 2, Op. 31). Quite apart from such concrete proposals for a possible collaboration, Jone repeatedly sent Webern manuscripts of her poems.119

", - "

Given this background, it is worthy of note that Webern first set one of Jones’s poems without any prior consultation with the poet, having taken it instead from an already published collection: Viae inviae, which was published in the autumn of 1932 in the journal Der Brenner.120 This cycle of poems was dedicated posthumously to the philosopher Ferdinand Ebner, who had died in October 1931, and whose Fragment von 1916 (together with an “afterword” to it that he wrote shortly before his death) precedes Jone’s collection of poems in that issue of the journal.121 Shortly before Ebner died, Jone had arranged for Webern to meet him in person.122 And even before that, Jone had repeatedly confronted Webern with Ebner’s ideas, and she in fact later remained active as his editor. Webern’s explicit engagement with Ebner’s writings can only be traced sporadically, from 1934 onwards. Nevertheless, we can discern an implicit reception of Ebner’s work on Webern’s part through Jone’s texts.123 The poems of Viae inviae are divided into two sections, each marked with a Roman numeral: Section I begins with a prologue entitled Dem einsamen Wanderer (“To the Lonely Wayfarer”) and contains within it the cycle Heimgang des Lebens (“Life’s Homecoming”), which is subdivided into three further sections, each with an Arabic numeral.124 The texts that Webern set to music in his Op. 23 are the third section of Heimgang des Lebens, which itself is divided into eight groups of verses of varying lengths. Webern’s three songs comprise verse groups 1–4 (“Das dunkle Herz…”), 5–6 (“Es stürzt aus Höhen…”) and 7–8 (“Herr Jesus mein…”). He did not compose them in the same order in which they appear in the source, though when the songs were complete, he kept their original order.

", - "

The initial sketches for Op. 23 in A (Sketchbook 3) are dated “1. II. 33” and are for “Herr Jesus mein” M 312 (M 312 Sk1, M 312 Sk1.1 and M 312 Sk2), i. e. the last two verse groups of the third section of Heimgang des Lebens. Webern sketched out a vocal line for the first words of the poem and then developed a twelve-note row from it. In the sketchbook in question, these and the subsequent sketches for Op. 23 constitute an interruption in his work on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, the first sketches of which already date from early 1931 but which had not progressed beyond 30 measures of the first movement by autumn 1932.125 In fact, since mid-1931, Webern’s health problems and a change of residence, compounded by his numerous conducting responsibilities in 1932, had barely left him either the time or the opportunity to compose. On 3 March 1933, he was able to report to Jone that he had made the first sketches for “Herr Jesus mein” M 312. He furthermore complained about his lack of time, also in connection with this new composition:

", - - "

I am in a considerable state of distress: it is depressing me more than ever that I don’t have the time to compose. I quite spontaneously began setting your beautiful, wonderful poem one day, but I soon had to interrupt my work on it again, and the fact that I allowed myself to sit now and then at our work back in January and February is taking its toll. Now I’m so behind with the other things, with preparing for my concerts, here and in London. How am I supposed to do it? It’s wonderful that your poem is called “Joy”.126

", - - "

Webern had clearly already told Jone about “our work” even before writing this letter, and the title “Die Freude” (“Joy”) that Webern mentions here refers to a subsequent communication from Jone that the verses set to music by Webern (in a manuscript version independent of their publication in Brenner) belonged to a poem of that title.127 However, Webern seems to have been consistent in using published versions of the poems as the basis for his compositions.128 It was not until two months later, when Webern was busy both with a concert in the Great Hall of the Konzerthaus in Vienna on 19 March129 and with his weekly lecture series “Paths to new music”,130 that he began work on the piano introduction (M 312 Sk3) and wrote the opening of his continuity draft up to measure 8 (M 312 Sk4). He then revisited the opening of this continuity draft from measure 4 onwards, dating this version “31. V. 33” (M 312 Sk4, mm. 4B–5C), which means that it was not begun until after his return from his concert tour in London (16–26 April) and a radio concert with Mahler’s Sixth Symphony that he conducted on 23 May.131 At the close of this continuity draft, Webern wrote: “Maria Enzersdorf | 14. VII. 33”.

", - "

After a radio concert on 21 July,132 Webern began sketching another song, this time a setting of a text in Brenner that was printed on the same page, directly above the verses that he had already set (“Es stürzt aus Höhen” M 313). He wrote to Jone on 29 July that he had completed the song he had begun previously, and that he had begun work on a new one:

", - - "

I have already been working well. Your texts fulfil me more and more; one of them is already finished, from “Herz Jesus mein” to “Und, ewig Schlafende, auch euch erwartet Tag”. And now I am linking “Es stürzt aus Höhen Frische” – how wonderful is the substance of these words – to “überglüht noch lange Glut” to form a second song. But the order of the two songs will correspond to that of your poems.

", - "

How deeply they touch me. And I am so glad that I am finally in this position (composing a work to your texts). I had desired this for a long time. After I had finished the first song, I had to interrupt my work for 8 days because I still had to conduct a concert on the radio. I wanted to turn it down. But ultimately – well, you know the reasons why.133

", - - "

Webern presumably interrupted his work on the continuity draft of this second song when he went on holiday “to an alpine pasture at an altitude of some 1600 m near Kitzbühel in the Tyrol”134 in early August. According to the date given in A, he completed it on “18. VIII. 33” (M 313 Sk4 m. 30C). In a letter to Jone of 3 September, he declared the two songs he had written up to now to be complete “for the moment”:

", - - "

For the moment, I have finished composing the texts from your “Viae inviae”. It has proceeded as I had planned: 1st song: “Es stürzt aus Höhen” up to “den Himmel u. die Seele überglüht noch lange Glut.” 2. “Herr Jesus mein” up to “auch euch erwartet Tag.” (i. e. the whole of page 65 from “Brenner”). I say “for the moment”, because I feel that I might soon have to come back to words of yours. But for the time being, at least, I believe that these 2 songs should remain on their own. They form a whole in musical terms, in the sense that they demonstrate a certain contrast. At the moment, I’m busy again with a purely instrumental piece that I began quite some while ago. How happy I was when I was working with your words!135

", - - "

Webern also resumed sketching the first movement of his Concerto, Op. 24 in early September, using the same sketchbook. However, he was able neither to finish it nor to work continually on it. At the end of that same month, he was planning to play Jone both of the songs from Op. 23 that he had completed up to now, during one of her stays in Vienna:

", - - "

You will soon be coming to Vienna, thank God. [...] I wonder what you’ll say to my songs that use your texts? How will it seem to you, when you hear your words as music? If only I could keep working. I hope to be able to start again in October.136

", - - "

It was only in early January 1934 that Webern returned to work on Op. 23, making his initial sketches in A for the song “Das dunkle Herz” M 314 (M 314 Sk1, M 314 Sk2 and M 314 Sk3; these are dated “3. I. 1934” and “5. I. 34”). Its text uses the opening verses that were numbered together as a unit in Brenner, and in this respect it serves as a completion of the two songs that Webern had already composed. In a letter to Jone, Webern emphasised that the order of the verses as printed in the source would continue to determine their order in his cycle, which had now grown to encompass three songs:

", - - "

I’m now finally back at work. It’s: “Das dunkle Herz, das in sich lauscht...”. It’s everything that’s on the page from then on, in other words up to where I was already: “Es stürzt aus Höhen Frische…”. Following the order that you determined, [this new song] shall precede this and the subsequent “Herr Jesus mein…”.

", - "

It seems to me as if my current state of working is something I have never before experienced like this.

", - "

I hope it can last!137

", - - "

Webern’s work on the continuity draft (M 314 Sk3), which he had begun on 5 January 1934, was then interrupted by his radio concert with Felix Mendelssohn Bartholdy’s Violin Concerto and Third Symphony on 28 January.138 Another interruption was occasioned by the street fighting that took place from 12 to 15 February in Vienna and other big cities in Austria between the Republikanischer Schutzbund (the paramilitary organization of the Social Democratic Party in Austria) on the one side, and the army and police under the control of Chancellor Engelbert Dollfuß’s regime on the other. These events had far-reaching consequences for Webern’s career as a conductor (see the details below on the Three Songs, Op. 25) and also had a short-term impact on his state of mind, making it difficult for him to continue work on the song he had begun, as he explained in a letter to Jone of 14 February:

", - - "

Dearest Mrs Jone,

", - "

The commotion of the last few days has been monstrous and is becoming ever more so. It is barely possible to keep hold of a single thought [...].

", - "

[...] And last week, I once again used every free moment to continue working on the poems [sic] “Das dunkle Herz”. I again had a little free time. [...]

", - "

And now once again – Mrs Jone! [I hear] the thunder of big guns and the rattle of machine-guns. –139

", - - "

On 20 February, Webern wrote to Humplik, telling him that he had nevertheless reached the passage “an das Wartende im Dunkel” in his continuity draft, thus measure 15.140 By the beginning of March he had got as far as measure 24: “In my work, I have reached: ... ‘ein goldenes Flattern trägt’ and I’m going to continue tomorrow. I still have some free time ahead of me.”141 He reported completing the sketch for the vocal part on 11 March,142 and he dated the continuity draft “15. III. 34” upon finally completing it. In the letter that he then wrote to Jone, Webern gave a relatively detailed description of this new song, and went on to propose a title for the collection of songs he had now finished:

", - - "

Meanwhile, the third song is finished.

", - "

Because it encompasses the text from “Das dunkle Herz…” to “…ich und du und alle”, it has become rather long and in its musical form it is really a kind of “aria”, comprising a slow section and then a quicker section from “ich bin nicht mein…”, though it nevertheless bears the tempo marking “Very calmly”.

", - "

This 2nd section is kept in an almost whispering tone. Perhaps you can get a rough idea from this description how I have interpreted your words in the 2nd section in particular: after a great upsurge in the first [section] there is utterly abrupt, complete silence, calm, simplicity.

", - "

I thought that the title could be this:

", - "

Three Songs from Viae inviae.

", - "

May I adopt this title from your poems?

", - "

I shall send you the manuscript soon.143

", - - "

In a letter that Webern sent one week later to Alban Berg, he went into greater detail about the work’s formal organization, also regarding the other songs:

", - - "

I have just finished a third song (based on Jone texts). Actually, it’s an aria, comprising a slow section and a quicker section. It will be the first.

", - "

And I’ve realized that the other two, which I composed earlier, are actually something other than songs (in their form): the one is a straightforward recitative with an arioso, the other (which is now the last of the sequence) is a rondo.

", - "

Thus, without having actually wanted it, I’ve come to engage with larger vocal forms in this opus. I’ll end up writing an opera after all.144

", - - "

It is unclear whether Webern here means “finished” to refer retrospectively to the continuity draft whose completion predates this letter by a few days, or whether he is referring to some fair copy that he might already have made. (It is also possible that he had made fair copies of the other two songs shortly after having finished their respective continuity drafts). In any case, the autograph engraver’s copy of all three songs, C, was received by Universal Edition before July, and was accepted for publication on 11 July.145 However, the actual publishing process was delayed considerably. Webern had initially assumed that “U. E. [...] will [print] my last work by the autumn”,146 but by the end of August he learned that his publisher had “regrettably not yet begun” with engraving his songs “due to other, time-critical work”.147 It was not until February 1935 that Webern’s manuscript was finally sent to the engraver – though this order to the engraver was immediately rescinded. The engraver in fact only began work in early January 1936. Webern received the first proofs at the end of that same month, with two further sets of proofs received on 10 and 27 March respectively. The Three Songs, Op. 23 were published on 4 May 1936 in an edition of 302 copies.148

", - "

Already in 1935, Webern had hoped that Julia Nessy might sing his Three Songs, Op. 23, but this was not to be.149 The world premiere did not take place until 5 December 1943 at the Basel Conservatory, without the composer being present. This was a concert of the local section of the ISCM, largely organized by Willi Reich, in celebration of Webern’s 60th birthday.150 The pianist Paul Baumgartner accompanied Marguerite Gradmann-Lüscher, who had already given a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and a selection from the Four Songs, Op. 12, during Webern’s visit to Switzerland in 1940.151

", - "

The reviews of this concert in the Basel newspapers were clearly influenced by the introductory talk given by Reich and focused on offering an overall view of this supposedly “other-worldly” composer, who was thus already being seen as a kind of historical figure:

", - - "

To be sure, the works that were performed (some of which were world premieres) conveyed the impression of being something thoroughly unique, unusual and unworldly. This is a music of the highest spiritual potency, embodying law and power at the same time. One might almost say it is too true to be beautiful, meaning that this music serves only the imperatives of honesty and sincerity, far beyond all notions of aural beauty or discord, and thereby compels its notes unconditionally to submit to the law of the spirit and its power of cognition. [...] But the general development of music cannot reach this point, and nor should it, because only someone who has set himself apart from the world and does not care about its judgements will be able to see these things and to reproduce them in sound: namely Anton Webern.152

", - - "

Another review wrote only as follows about the Three Songs:

", - - "

Three songs Op. 23 from Hildegard Jone’s Viae inviae were given their first performance. Here, the calm, tender vocal line, which is only occasionally fractured by large leaps, is disturbed by fierce, hard interjections from the accompaniment.153

", - - "

For an “evening of contemporary poetry” featuring Jone’s poems, planned for the Archbishop’s palace in Vienna on 29 November 1944, Jone and Webern for a while wanted to arrange a performance of both the Three Songs, Op. 23, and the Three Songs, Op. 25,154 which were rehearsed by an unnamed “Swedish [woman] singer” and Webern’s student Fré Focke.155 Ultimately, however, this performance did not take place, and no further plans for performances during Webern’s lifetime are known to us.

" - ] - }, - { - "blockId": "op25", - "blockHeader": "Three Songs on Poems of Hildegard Jone, Op. 25", - "blockContent": [ - "

The Three Songs after Poems of Hildegard Jone, Op. 25, which Webern composed in the course of 1934, mark a continuation of his compositional interest in her poetry that had begun the year before with his Three Songs from Viae inviae, Op. 23. However, Webern’s professional situation changed drastically on account of the political consequences of the battles that took place from 12 to 15 February 1934 in Vienna and other big Austrian cities between the paramilitary Republikanischer Schutzbund of the Social Democratic Party and the army and police authorities of the Dollfuß regime. The latter now banned the Social Democratic Party, which meant that Webern lost his job as conductor with the Vienna Workers’ Symphony Concerts and as the artistic director of the Social Democratic Choral Society (the “Singverein der Sozialdemokratischen Kunststelle”). This in turn meant that the number of his radio engagements dwindled. In a letter to Arnold Schoenberg, who had emigrated to the United States in 1933, Webern described his situation in comparatively drastic terms:

", - - "

It’s becoming increasingly difficult for me here. I am very aware of what’s been taken from me by the events in question, and which will hardly be able to be restored. – And apart from material things, it’s as if their cannon had shot to pieces – no, their cannon really have shot to pieces – what I had built up so painstakingly over 10 years.156

", - - "

All the same, his increasing isolation did have one specific consequence: “I’ve at least now got some time for my work […]”157

", - "

After completing his Three Songs, Op. 23 in March 1934, Webern continued working on his Concerto for Flute, Oboe, Clarinet, Horn, Trumpet, Trombone, Violin, Viola and Piano, Op. 24, and in parallel with this he also began composing a song to a text from Jone’s collection entitled Die Freude (“Joy”), which comprises 29 (unnumbered) poems in total, in July of the same year. Jone had published her cycle in the autumn of 1933 in the Catholic bimonthly magazine Die Schildgenossen. It is subdivided into the following:

", - - "

–  5 “Spring” (“Frühling”) poems (from which Webern set “Wie bin ich froh!” M 317 [Op. 25/1]),

", - "

–  8 “Star” (“Stern”) poems (from which Webern set “Sterne, ihr silbernen Biene” M 321 [Op. 25/3]) and

", - "

–  16 “Death” (“Tod”) poems (from which Webern set “Des Herzens Purpurvogel” M 322 [Op. 25/2]).158

", - - "

It is impossible to determine whether Webern might have received a manuscript from Jone of the three poems he chose to set, either before or after she published them. In any case, we do know that the relevant issue of Die Schildgenossen was still unknown to Webern at the close of November 1933.159

", - "

In early January 1934, when Webern had only just begun his continuity draft of M 314 (Op. 23/1), he announced that his next project might involve setting “several ‘Star’ poems”, i. e. poems from the eight “Star” poems in the collection Die Freude.160 In fact, after having completed the continuity draft for M 314 (on 15 March 1934) and the first movement of his Concerto, Op. 24 (on 25 June 1934), Webern did not set any of the “Star” poems, but instead chose the first of the “Spring” group, which is also the very first poem in the whole collection: “Wie bin ich froh!” M 317. (Webern’s sketches for the first movement of his Concerto, Op. 24 reveal that he had also considered interrupting his work to set the poem “Wie kann der Tod so nah der Liebe wohnen?” [M 315] for chorus [on 11 May 1934], though he rejected this idea). According to the dates in his sketches, Webern began composing “Wie bin ich froh!” on 4 July 1934. A few days later, he wrote to Jone and Josef Humplik to tell them about it:

", - - "

Did I tell you already that my first movement [i. e. of Op. 24] is finished? Right now, for reasons that I’ll tell you later, I have interrupted it to write something else: a setting of a brief poem by you, dearest friend [“Freundin”, i. e. Jone]:

", - "

“Wie bin ich froh! Noch einmal

", - "

wird mir Alles grün….” [“How happy I am! Once again, everything is turning green for me…”]161

", - - "

Webern’s “reasons” for writing a song, instead of continuing with the next movements of his Concerto, Op. 24, were probably linked to his wanting to complete a work in time for David Josef Bach’s 60th birthday on 13 August of that year. Bach was a childhood friend of Schoenberg’s who had initiated the Workers’ Symphony Concerts in Vienna in the 1910s. He had also been the director of the Social Democratic Party’s arts office since 1919, and from 1922 onwards had engaged Webern repeatedly to conduct its concerts. Most importantly, he had appointed Webern as the chief conductor of the Singverein in late 1923 and had thereby made a significant contribution to establishing his reputation as a conductor. When the Social Democratic Party was banned after the events of February 1934, this put Bach himself in a precarious situation – a fact to which Webern drew attention in his letters to Schoenberg and others. He also mentioned Bach’s upcoming birthday and the song that he intended to dedicate to him:

", - - "

For Dr Bach’s 60th birthday – on 13 August of this year – the following is being prepared: an address with signatures and a collection of money. His financial situation is still highly onerous […].

", - "

I’m going to dedicate a song to him […].162

", - - "

Webern had finished his continuity draft of 15 measures, M 317 Sk4, in A (Sketchbook 3) a few days before, on 16 July, and thereupon wrote to Jone: “The new song is ready. –”163 There was for the moment no mention of his including it in any collection of songs he might be planning.164 After this continuity draft, the same sketchbook contains sketches for the second movement (M 319) of his Concerto, Op. 24, dated “21 VII[.]” Webern wrote the fair copy of his new song in E either just before making these sketches, or in parallel with them, though its initial layer presumably did not correspond to the later version that lasts 12 measures. Webern made a presentation copy of version 1 of this song (B) as his birthday gift for Bach. This was probably copied just before Webern left for a mountain hike in the Ötztal Alps on 11 August. Bach was spending the summer in Henndorf just outside Salzburg, and Webern stopped off there on his journey to the mountains in order to deliver his gift in person.165 Webern initially revised the autograph of M 317 contained in E (as Op. 25/1) to bring it in line with version 1 as found in B, though he later changed it again – presumably only when he made the fair copies of M 321 (Op. 25/3) and M 322 (Op. 25/2) – which resulted in version 2 of the song that he incorporated into Op. 25 that ultimately comprised three songs.

", - "

A few days after having completed the continuity draft for the third movement (M 320) of his Concerto, Op. 24 on 4 September, Webern reported to Humplik and Jone about his plan for a “song opus” that would also contain “Wie bin ich froh!”, M 317: “I have just finished my instrumental opus and I now want to continue with the song opus that I have already begun – [for which] ‘Wie bin ich froh’ has long been finished.”166 An initial sketch for “Sterne, ihr silbernen Bienen” M 321 in D (Sketchbook 4) can be found among the sketches for the third movement of his Concerto, Op. 24, and was probably already made in late August 1934 (M 321 Sk1). According to the dates in Webern’s own hand, he began making further sketches on 19 September (M 321 Sk2). In early October, he was able to report to Jone on his progress, though the precise number of songs for his “new song book” remained open. He even hinted at the possible inclusion of new songs that were not in her poetry collection Die Freude:

", - - "

Dear, dear friend,

", - "

Many heartfelt thanks for the beautiful songs!

", - "

“How happy I am” to have them [i. e. an allusion to the title of M 317, “Wie bin ich froh”]. I am sure that one or the other of them will be included in the new songbook. Now I am working on “Sterne, Ihr silbernen Bienen...” and have already made much progress.167

", - - "

Webern completed his continuity draft on 8 October and dated it thus (M 321 Sk3 mm. 21B–26B). He wrote to Jone on 17 October to report on its completion, and also on his having begun work on “Des Herzens Purpurvogel” M 322.168 He dated the beginning of an initial continuity draft “24. X[.] 34”, though he later broke off work on it (M 322 Sk3 mm. {1A}, {1B}, {1C-2A}, 1D–2B). He had presumably begun the preceding sketches (M 322 Sk1 and M 322 Sk2) before writing to Jone on 17 October; he might also have begun M 322 Sk3 measures {1A}, {1B}, {1C–2A} before that date. Webern seems to have been working on the final continuity draft in early November,169 which was completed on 15 November according to the date in the sketchbook (M 322 Sk4 m. 21C).

", - "

We have no documentary proof of when Webern made the fair copies of his two new songs, nor when he decided to reverse the order of the second and third songs when concluding this new opus (which was contrary both to their order in Die Freude and to the order in which he had composed them). Webern no longer mentions this project in his letters from December 1934 onwards. Instead, he seems to have been especially preoccupied with his arrangement of the Fuga (Ricercata) a 6 voci from Bach’s Musical Offering (M 323). He probably completed his fair copy of the complete collection of songs that he now numbered Op. 25 (E) by the end of 1934 at the latest.

", - "

In mid-October 1938, Webern wrote to Erwin Stein, a former student of Schoenberg’s who had worked for Universal Edition, had recently emigrated to London, and had now taken up a job as an editor for Boosey & Hawkes. He mentioned his “Three Songs with Piano, Op. 25, on poems of H. Jone” as being “a book of songs not yet printed nor yet accepted by any publisher”.170 We do not know if Webern had already offered them to Universal Edition. It was not until Webern’s 60th birthday in 1943 – presumably in connection with a possible performance (see below) – that Universal held out to Webern the prospect of publishing these songs, though nothing came of it during Webern’s lifetime.171 This opus was only published by Universal Edition in 1956, long after Webern’s death.

", - "

The world premiere of these Three Songs, Op. 25, together with that of the Three Songs, Op. 23, was planned for a concert of the Basel section of the ISCM, held on 5 December 1943, with Marguerite Gradmann-Lüscher accompanied by Paul Baumgartner. In order to facilitate this performance, Universal Edition apparently made two photographic copies of Webern’s autograph (since lost) and presumably sent them to Erich Schmid.172 But the Three Songs, Op. 25 were not performed on that occasion. When readings of Jone’s poetry were being organized at an “Evening of contemporary poetry” to be held at the Archbishop’s Palace in Vienna on 29 November 1944, Jone and Webern for some time harboured the plan of including a performance of both the Three Songs, Op. 23 and the Three Songs, Op. 25.173 They were to have been performed by an unnamed “Swedish singer” accompanied by Webern’s student Fré Focke, who also began rehearsing the works together.174 Ultimately, however, this performance never took place. The world premiere was only given posthumously, on 16 March 1952 in New York, with Bethany Beardslee accompanied by Jacques Monod at the piano.175

" - ] - }, - { - "blockId": "about", - "blockHeader": "About this edition", - "blockContent": [ - "

The songs with piano accompaniment that are collected in this volume are published in different formats depending on the situation in which their respective texts have been transmitted to us. The published song collections are here presented as “work editions” (Werkeditionen). The versions that are extant solely as fair copies in ink, or which – as in the case of the songs to texts by Stefan George – are grouped together in clusters in this edition because the common circumstances of their composition imply that they belong together, are presented here as “text editions” (Texteditionen). The Three Songs, Op. 25 constitute an exception to this rule, for they were not published during Webern’s lifetime. The autograph fair copy of the complete Op. 25 nevertheless offers all the characteristics of an engraver’s copy of a work intended for publication. For this reason, presenting this opus as a work edition here is both the obvious choice and unproblematic from the view of producing a critical edition of the musical text. Extant pencil sketches will be presented as “sketch editions” (Skizzeneditionen) in the online edition of the AWG.

", - "

Webern’s songs to texts by Stefan George are edited here as a coherent cluster. The final form in which Webern left them to us – the two collections published as his Opp. 3 and 4 – was preceded by a common compositional history that featured several individually distinguishable versions of their musical text, plus four songs that were not included in the final publications. The different versions of the musical text that can be identified in the correction layers of the surviving ink manuscripts and that predate the final publications (which are here given as work editions) are presented here as text editions in view of the material used to notate them. These include some of the earliest versions of the musical texts, which at times come across as sketch-like. (In these cases, a sketch edition would provide less information on the writing process than is usually the case with Webern’s pencil sketches, because those layers that predate the correction process have often been subjected to erasure and can rarely be deciphered with any certainty; they are generally impossible to decipher at all).

", - "

In the case of the various collections of George songs in particular that Webern conceived between 1909 and 1919, it is not always possible to reconstruct unambiguously which versions of which songs were intended in what order, so the different versions that are nevertheless decipherable in the sources are presented in chronological order in the printed edition here, while the songs themselves are presented in alphabetical order according to their respective title.

", - "

As a rule, Webern’s numerous versions of his George songs adopted the poet’s spellings (especially his frequent lack of capitalization for nouns) and the occasionally sparse punctuation of his original poems. These idiosyncrasies have been retained in our text editions here. Any additions or corrections made here to the song texts are similarly oriented on George’s original poems, and are listed in the Critical Notes (Textkritische Anmerkungen). Any cases of divergence from the original poem are denoted by “sic” in the Critical Notes.

", - "

In comparison to the George songs, there are comparatively few early versions of the individual songs that make up the Four Songs, Op. 12, and the Three Songs, Op. 25, but they have been dealt with in similar fashion here with regard to the order of their respective text editions. Even though the idiosyncrasies of the respective source texts for these editions are not as characteristic as in the case of George’s poems, we have applied the same principles to our editorial treatment of the vocal text.

" - ] - }, - { - "blockId": "acknowledgements", - "blockHeader": "Acknowledgements", - "blockContent": [ - "

As editor, I should like to thank the numerous people and institutions who have supported me in many ways during my work. My thanks above all go to the staff of the archives and libraries who have made digital reproductions of their sources available to us, or granted us access to the originals: The Arnold Schönberg Center in Vienna, the Music Division of the Library of Congress in Washington D.C., the Morgan Library & Museum in New York City, the Music Collection of the Austrian National Library in Vienna, the Music Collection of the Wienbibliothek im Rathaus in Vienna, and the Historical Archive of Universal Edition, also in Vienna. Special thanks go to the Paul Sacher Foundation in Basel, which holds most of the extant Webern sources, in particular to Sabine Hänggi-Stampfli, Felix Meyer, Simon Obert and Andrietta Wahl for always being ready to help and for providing expert advice.

", - "

I should also like to thank all the current members of the AWG project team for their collegiality and for their fruitful spirit of collaboration, namely Michael Matter, Stefan Münnich, Simon Obert, Barbara Schingnitz and Matthias Schmidt, plus our former colleagues Julia Bungardt, Monika Kröpfl, Nikolaus Urbanek and Manuel Strauß, and our interns Tamara Ackermann, Yuta Asai, Daia Aschwanden, Madita Knöpfle and Youchen Yu.

", - "

Rita Gautschy (Swiss National Data and Service Center for the Humanities), Lukas Rosenthaler and Tobias Schweizer (Digital Humanities Lab of the University of Basel) offered advice and assistance in designing and setting up the online edition, as did numerous colleagues from the abovementioned institutions.

", - "

Heinz Stolba of Universal Edition in Vienna deserves my thanks for his commitment and cooperation.

", - "

Finally, I should like to express my sincere gratitude to Simone Hohmaier (Staatliches Institut für Musikforschung, Berlin), Juliane Brand (Karl Weigl Foundation, San Rafael CA), Regina Busch (Vienna), Felix Wörner (Basel) and Michelle Ziegler (Basel) for suggestions, feedback and advice of all kinds.

", - - "

Basel, 14 May 2024 Thomas Ahrend

", - "

Translation: Chris Walton

" - ] - } - ], - "notes": [ - "

1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.

", - "

2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.

", - "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).

", - "

4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.

", - "

5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.

", - "

6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”

", - "

7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.

", - "

8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).

", - "

9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.

", - "

10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).

", - "

11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”

", - "

12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).

", - "

13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).

", - "

14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.

", - "

15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.

", - "

16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”

", - "

17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).

", - "

18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.

", - "

19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.

", - "

20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.

", - "

21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.

", - "

22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”

", - "

23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.

", - "

24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”

", - "

25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.

", - "

26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.

", - "

27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.

", - "

28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.

", - "

29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.

", - "

30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).

", - "

31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”

", - "

32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”

", - "

33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).

", - "

34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”

", - "

35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).

", - "

36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”

", - "

37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”

", - "

38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”

", - "

39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”

", - "

40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”

", - "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”

", - "

42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.

", - "

43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”

", - "

44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.

", - "

45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”

", - "

46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.

", - "

47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”

", - "

48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).

", - "

49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.

", - "

50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.

", - "

51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).

", - "

52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”

", - "

53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).

", - "

54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”

", - "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", - "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", - "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", - "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", - "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", - "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", - "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", - "

62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.

", - "

63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.

", - "

64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.

", - "

65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.

", - "

66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", - "

67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", - "

68 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", - "

69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.

", - "

70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", - "

71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.

", - "

72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.

", - "

73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.

", - "

74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.

", - "

75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).

", - "

76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.

", - "

77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).

", - "

78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”

", - "

79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.

", - "

80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.

", - "

81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).

", - "

82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].

", - "

83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.

", - "

84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).

", - "

85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).

", - "

86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”

", - "

87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.

", - "

88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.

", - "

89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).

", - "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.

", - "

91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.

", - "

92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.

", - "

93 | Near this correction, we can also discern “13” in a further layer that has been erased.

", - "

94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”

", - "

95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.

", - "

96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).

", - "

97 | See ibid. (Appendix), pp. 340 f.

", - "

98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", - "

99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.

", - "

100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).

", - "

101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.

", - "

102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.

", - "

103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.

", - "

104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.

", - "

105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”

", - "

106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", - "

107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", - "

108 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", - "

109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.

", - "

110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.

", - "

111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", - "

112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.

", - "

113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”

", - "

114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.

", - "

115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).

", - "

116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”

", - "

117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).

", - "

118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.

", - "

119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”

", - "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”

", - "

121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.

", - "

122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”

", - "

123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.

", - "

124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.

", - "

125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.

", - "

126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).

", - "

127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.

", - "

128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.

", - "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.

", - "

130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).

", - "

131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.

", - "

132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.

", - "

133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.

", - "

134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.

", - "

135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).

", - "

136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.

", - "

137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).

", - "

138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.

", - "

139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).

", - "

140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.

", - "

141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.

", - "

142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.

", - "

143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”

", - "

144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", - "

145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).

", - "

146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).

", - "

147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).

", - "

148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.

", - "

149 | See Webern to Josef Humplik, 8 May 1935 (note 109).

", - "

150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”

", - "

151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.

", - "

152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.

", - "

153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.

", - "

154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”

", - "

155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", - "

156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).

", - "

157 | Ibid.

", - "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.

", - "

159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”

", - "

160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.

", - "

161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).

", - "

162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).

", - "

163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).

", - "

164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”

", - "

165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.

", - "

166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).

", - "

167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.

", - "

168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”

", - "

169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”

", - "

170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.

", - "

171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”

", - "

172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EF1–F2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.

", - "

173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”

", - "

174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", - "

175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f.

" - ] + "id": "op12" } ] } diff --git a/src/assets/data/edition/series/1/section/5/op23/intro.json b/src/assets/data/edition/series/1/section/5/op23/intro.json index d576e34537..cd45bfc25c 100644 --- a/src/assets/data/edition/series/1/section/5/op23/intro.json +++ b/src/assets/data/edition/series/1/section/5/op23/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "op23", - "content": [] + "id": "op23" } ] } diff --git a/src/assets/data/edition/series/1/section/5/op25/intro.json b/src/assets/data/edition/series/1/section/5/op25/intro.json index 6810d419dd..39c6d2c4d8 100644 --- a/src/assets/data/edition/series/1/section/5/op25/intro.json +++ b/src/assets/data/edition/series/1/section/5/op25/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "op25", - "content": [] + "id": "op25" } ] } diff --git a/src/assets/data/edition/series/1/section/5/op3/intro.json b/src/assets/data/edition/series/1/section/5/op3/intro.json index a65a92a39e..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/op3/intro.json +++ b/src/assets/data/edition/series/1/section/5/op3/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "op3", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} diff --git a/src/assets/data/edition/series/1/section/5/op4/intro.json b/src/assets/data/edition/series/1/section/5/op4/intro.json index 9153e55e36..1d26375a80 100644 --- a/src/assets/data/edition/series/1/section/5/op4/intro.json +++ b/src/assets/data/edition/series/1/section/5/op4/intro.json @@ -1,8 +1,7 @@ { "intro": [ { - "id": "op4", - "content": [] + "id": "op3+4" } ] -} \ No newline at end of file +} From 3a6e00b88493d1f4f86647940549ccec4b13055b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 9 Oct 2024 16:56:59 +0200 Subject: [PATCH 126/213] refactor(edition): improve naming of intro scroll methods --- .../edition-intro/edition-intro.component.ts | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index ad326acb78..8d37ccf791 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -245,7 +245,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { private _initScrollListener(): void { fromEvent(window, 'scroll') .pipe(throttleTime(200), takeUntilDestroyed()) - .subscribe(event => this._onWindowScroll(event)); + .subscribe(event => this._onIntroScroll(event)); } /** @@ -265,37 +265,37 @@ export class EditionIntroComponent implements OnDestroy, OnInit { } /** - * Private method: _onWindowScroll. + * Private method: _onIntroScroll. * - * It handles the scroll event on the window + * It handles the scroll event on the intro window * and highlights the corresponding section in the intro navigation. * * @param {Event} event The given event. * @returns {void} Highlights the corresponding section in the intro navigation * on window scroll. */ - private _onWindowScroll(event: Event): void { + private _onIntroScroll(event: Event): void { const scrollPosition = window.scrollY || document.documentElement.scrollTop; - const sections: NodeListOf = document.querySelectorAll('.awg-intro-section'); - const navLinks: NodeListOf = document.querySelectorAll('a.awg-intro-nav-link'); + const introSections: NodeListOf = document.querySelectorAll('.awg-intro-section'); + const introNavLinks: NodeListOf = document.querySelectorAll('a.awg-intro-nav-link'); - let activeSectionFound = false; + let activeIntroSectionFound = false; - sections.forEach((section: HTMLElement) => { - const sectionTop = section.offsetTop - 10; - const sectionBottom = section.offsetTop + section.offsetHeight; + introSections.forEach((introSection: HTMLElement) => { + const introSectionTop = introSection.offsetTop - 10; + const introSectionBottom = introSection.offsetTop + introSection.offsetHeight; - if (!activeSectionFound && sectionTop <= scrollPosition && sectionBottom > scrollPosition) { - navLinks.forEach((navLink: HTMLAnchorElement) => { - navLink.classList.toggle('active', navLink.hash.includes(section.id)); + if (!activeIntroSectionFound && introSectionTop <= scrollPosition && introSectionBottom > scrollPosition) { + introNavLinks.forEach((navLink: HTMLAnchorElement) => { + navLink.classList.toggle('active', navLink.hash.includes(introSection.id)); - activeSectionFound = true; + activeIntroSectionFound = true; }); } }); - if (!activeSectionFound) { - navLinks.forEach((navLink: HTMLAnchorElement) => { + if (!activeIntroSectionFound) { + introNavLinks.forEach((navLink: HTMLAnchorElement) => { navLink.classList.remove('active'); }); } From 267aa0f7bac894dc7980e7d6740919a6b870f2f0 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 10 Oct 2024 14:18:51 +0200 Subject: [PATCH 127/213] fix(assets): provide intro notes as blockNotes --- .../views/edition-view/models/intro.model.ts | 12 +- .../edition/series/1/section/5/intro.json | 735 +++++++++--------- .../edition/series/2/section/2a/intro.json | 12 + 3 files changed, 391 insertions(+), 368 deletions(-) create mode 100644 src/assets/data/edition/series/2/section/2a/intro.json diff --git a/src/app/views/edition-view/models/intro.model.ts b/src/app/views/edition-view/models/intro.model.ts index 0eb5302192..a61210f3d3 100644 --- a/src/app/views/edition-view/models/intro.model.ts +++ b/src/app/views/edition-view/models/intro.model.ts @@ -20,6 +20,11 @@ export class IntroBlock { * The content array of an intro block. */ blockContent: string[]; + + /** + * The notes array of an intro block. + */ + blockNotes?: string[]; } /** @@ -38,12 +43,7 @@ export class Intro { /** * The content array of an intro. */ - content: IntroBlock[]; - - /** - * The notes array of an intro. - */ - notes: string[]; + content?: IntroBlock[]; } /** diff --git a/src/assets/data/edition/series/1/section/5/intro.json b/src/assets/data/edition/series/1/section/5/intro.json index 7f11328402..1f39a137f2 100644 --- a/src/assets/data/edition/series/1/section/5/intro.json +++ b/src/assets/data/edition/series/1/section/5/intro.json @@ -129,7 +129,80 @@ "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Fünf Lieder nach Gedichten von Stefan George op. 4 (JH) finden sich verschiedene aufführungsrelevante Eintragungen und Zeitangaben. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen (möglicherweise mit der Aufführung der gesamten Sammlung 1940 in Basel), ist nicht nachweisbar.

" ], - "blockNotes": [] + "blockNotes": [ + "

1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.

", + "

2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).

", + "

4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.

", + "

5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.

", + "

6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“

", + "

7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.

", + "

8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).

", + "

9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.

", + "

10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).

", + "

11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“

", + "

12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).

", + "

13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).

", + "

14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.

", + "

15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.

", + "

16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“

", + "

17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).

", + "

18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.

", + "

19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.

", + "

20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.

", + "

21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.

", + "

22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“

", + "

23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“

", + "

24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.

", + "

25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“

", + "

26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.

", + "

27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.

", + "

28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.

", + "

29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.

", + "

30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.

", + "

32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“

", + "

33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).

", + "

34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“

", + "

35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).

", + "

36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“

", + "

37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“

", + "

38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“

", + "

39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“

", + "

40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“

", + "

42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.

", + "

43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“

", + "

44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.

", + "

45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“

", + "

46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.

", + "

47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“

", + "

48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).

", + "

49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.

", + "

50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.

", + "

51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).

", + "

52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“

", + "

53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.

", + "

54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“

", + "

55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“

", + "

56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.

", + "

57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“

", + "

58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.

", + "

60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“

", + "

61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.

", + "

62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.

", + "

63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.

", + "

64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.

", + "

65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.

", + "

66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.

", + "

67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.

", + "

70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.

", + "

72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.

" + ] }, { "blockId": "op12", @@ -175,7 +248,48 @@ "

Zu den meisten der Ausführenden hatte Webern persönlichen Kontakt und in einigen Fällen bei der Einstudierung mitgewirkt. In seinem Handexemplar der Vier Lieder op. 12 (GH) finden sich verschiedene Zeitangaben zu den einzelnen Liedern. Ob diese im Zusammenhang mit einer der genannten Aufführungen stehen, ist nicht nachweisbar.

" ], - "blockNotes": [] + "blockNotes": [ + "

73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.

", + "

74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.

", + "

75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).

", + "

76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.

", + "

77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).

", + "

78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“

", + "

79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.

", + "

80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.

", + "

81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].

", + "

83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.

", + "

84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).

", + "

85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.

", + "

86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“

", + "

87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.

", + "

88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.

", + "

89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.

", + "

91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.

", + "

92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.

", + "

93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.

", + "

94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“

", + "

95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.

", + "

96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).

", + "

97 | Vgl. ebd. (Anhang), S. 340 f.

", + "

98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.

", + "

100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.

", + "

102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.

", + "

103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.

", + "

104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.

", + "

105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“

", + "

106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).

", + "

107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", + "

108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", + "

109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.

", + "

110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.

", + "

111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", + "

112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.

" + ] }, { "blockId": "op23", @@ -247,7 +361,51 @@ "

Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,154 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.155 Letztendlich kam diese Aufführung aber nicht zustande. Weitere Aufführungspläne zu Lebzeiten Weberns sind nicht bekannt.

" ], - "blockNotes": [] + "blockNotes": [ + "

113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“

", + "

114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.

", + "

115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“

", + "

117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.

", + "

119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“

", + "

121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.

", + "

122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“

", + "

123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.

", + "

124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.

", + "

125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.

", + "

126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).

", + "

127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.

", + "

128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.

", + "

131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.

", + "

132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.

", + "

133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.

", + "

134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.

", + "

135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.

", + "

137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).

", + "

138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.

", + "

139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.

", + "

141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.

", + "

142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.

", + "

143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“

", + "

144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", + "

145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).

", + "

146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).

", + "

147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).

", + "

148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.

", + "

149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).

", + "

150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.

", + "

151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.

", + "

152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", + "

154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

" + ] }, { "blockId": "op25", @@ -289,7 +447,28 @@ "

In einem Brief an Erwin Stein von Mitte Oktober 1938, einem ehemaligen Schönberg-Schüler und UE-Mitarbeiter, der kurz zuvor nach London emigriert und bei Boosey & Hawkes eine Tätigkeit als Lektor aufgenommen hatte, erwähnte Webern die „Drei Lieder mit Klavier op. 25, nach Gedichten von H. Jone“ als „ein noch nicht gedrucktes und auch noch in keinem Verlag aufgenommenes Lieder-Heft“.170 Ob Webern sie gleichwohl bereits zuvor der Universal Edition angeboten hatte, ist nicht bekannt. Erst zu Weberns 60. Geburtstag 1943 – und vermutlich im Zusammenhang einer möglichen Aufführung (siehe unten) – wurde Webern ein Druck der Lieder von der Universal Edition in Aussicht gestellt, zu dem es allerdings zu Lebzeiten Weberns nicht mehr kam.171 Publiziert wurden die Lieder von der Universal Edition erst postum 1956.

", "

Die Uraufführung der Drei Lieder op. 25 war – zusammen mit der der Drei Gesänge op. 23 durch Marguerite Gradmann-Lüscher und Paul Baumgartner – im Rahmen eines Konzertes der Basler Sektion der IGNM am 5. Dezember 1943 geplant. Hierzu hatte die Universal Edition offensichtlich zwei heute verschollene fotographische Reproduktionen von Weberns Autograph hergestellt und vermutlich an Erich Schmid gesendet.172 Im Konzert wurden die Drei Lieder op. 25 jedoch nicht gebracht. Für einen die lyrischen Werke Jones präsentierenden „Abend zeitgenössischer Dichtung“ am 29. November 1944 im Erzbischöflichen Palais in Wien projektierten Jone und Webern eine Zeit lang eine Aufführung sowohl der Drei Gesänge op. 23 als auch der Drei Lieder op. 25,173 die dann von einer namentlich nicht bekannten „schwedischen Sängerin“ und Weberns Schüler Fré Focke auch schon geprobt wurden.174 Letztendlich kam diese Aufführung aber nicht zustande. Die Uraufführung fand erst nach Weberns Tod am 16. März 1952 in New York durch Bethany Beardslee (Gesang) und Jacques Monod (Klavier) statt.175

" ], - "blockNotes": [] + "blockNotes": [ + "

156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).

", + "

157 | Ebd.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.

", + "

159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“

", + "

160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“

", + "

161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).

", + "

163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.

", + "

164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“

", + "

165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.

", + "

166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.

", + "

168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“

", + "

169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“

", + "

170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.

", + "

171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“

", + "

172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.

", + "

173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", + "

174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", + "

175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f.

" + ] }, { "blockId": "about", @@ -317,183 +496,6 @@ ], "blockNotes": [] } - ], - "notes": [ - "

1 | Anton Webern, „Drei frühe Tagebücher“, transkribiert und kommentiert von Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2015 (Webern-Studien 2b), S. 215–324, hier S. 265 (Tagebuch II Bl. 19r–19v). Weberns Vorlage war allerdings nicht Georges Sammlung Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, S. [21 f.]), sondern ein Zitat aus Ernst von Wolzogens Roman Das dritte Geschlecht (Berlin: Eckstein, [1899], S. 103), wo das Gedicht auf subtile Weise abgeändert erscheint. Vgl. den Kommentar zu Webern, „Drei frühe Tagebücher“, a. a. O., S. 305, sowie Cornelia Bartsch, „‚Bis endlich das Weib vor Weh vergeht…‘ Geschlechtererzählungen des jungen Anton Webern“, in: Der junge Webern. Texte und Kontexte, a. a. O., S. 169–197, insbesondere S. 196 f.

", - "

2 | So am 11. Februar 1904 sowie am 3. Dezember desselben Jahres. Vgl. Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, hg. von Eike Rathgeber, Christian Heitler und Manuela Schwartz, Wien: Böhlau, 2017, S. 421 f. und 425. Zu Weberns Engagement im Wiener Ansorge-Verein vgl. ebd. passim.

", - "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, S. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…), 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, S. 74 (So ich traurig bin): George_DBdH; ders., Der siebente Ring, Berlin: Blätter für die Kunst, 1907, S. 126 (Eingang), 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Weberns Exemplare befinden sich in CH-Bps, Sammlung Anton Webern (PSS AW B 1039–1041).

", - "

4 | Biographische Zusammenhänge mit Blick auf den Tod von Weberns Mutter 1906 sowie das die meisten der vertonten George-Gedichte durchziehende Trauer-Motiv skizziert Albrecht Dümling, „‚Dies ist ein Lied für dich allein‘. Zu einigen Motiven von Weberns Textwahl“, in: Anton Webern I, hg. von Heinz Klaus Metzger und Rainer Riehn, München: edition text + kritik, 1983 (Musik-Konzepte Sonderband), S. 251–261.

", - "

5 | Vgl. Arnold Schönberg, Lieder mit Klavierbegleitung, Kritischer Bericht, hg. von Christian Martin Schmidt, Mainz 1989 (Sämtliche Werke Abteilung I Reihe B Band 1/2 Teil 1), S. 171–176 sowie S. 182–217.

", - "

6 | Webern an Schönberg, 11. Juni 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18181]): „Weil Sie mich gestern gefragt haben wie mir Ihre Lieder gefallen haben: ich konnte nicht recht sagen d. h. zum Ausdruck bringen, welchen Eindruck sie auf mich gemacht haben. Es war sehr blöd, wie ich das gesagt habe. Aber möchten Sie mir glauben, dass Ihr Werk und namentlich diese neuen Lieder mein einziges wunderbares Vorbild sind.“

", - "

7 | Vgl. Thomas Ahrend, „Zu Anton Weberns George-Vertonung ‚Erwachen aus dem tiefsten Traumesschoße‘. Eine Spurensuche“, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, hg. von Simone Hohmaier, Mainz: Schott, 2011, S. 53–74, hier S. 66 ff.

", - "

8 | Webern an Schönberg, 13. Dezember 1908 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21729]).

", - "

9 | Die Dehmel-Lieder stellte Webern gleichwohl zu späteren Zeitpunkten zu – allerdings nicht publizierten – Sammlungen zusammen. Vgl. Mathew R. Shaftel, „Anton Webern’s Complete Early Songs (1899–1909)“, in: The Anton Webern Collection. Early Vocal Music, hg. von ders., New York: Carl Fischer, 2004, S. iii–xiii, hier S. xiii.

", - "

10 | Webern an Jalowetz, 25. Mai 1909 (Anton Webern, Briefe an Heinrich Jalowetz, hg. von Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], S. 129).

", - "

11 | Webern an Schönberg, 16. Juni 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21801]): „Ich habe bereits ein ganzes Streichquartett geschrieben. Es hat 5 Sätze. […] Diesen Samstag fahre ich mit meinem Vater nach Klagenfurt, um von dort aus ein par [sic] kleine Ausflüge am Wörtersee und in das Gebirge der Karawanken zu machen. Mitte der nächsten Woche bin ich wieder hier. Dann will ich zunächst ein par Lieder schreiben[.] Und dann für Orchester. Ich kann es kaum erwarten.“

", - "

12 | Webern an Schönberg, 10. Juli 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21731]).

", - "

13 | Webern an Schönberg, 20. August 1909 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21809]).

", - "

14 | Vgl. Thomas Ahrend und Michelle Ziegler, „Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied“, in: Journal of the Arnold Schönberg Center 17 (2020), S. 160–182.

", - "

15 | [Programm:] „Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910“, US-NH, Karl Weigl Papers (MSS 73). Digitalisat: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. Die in diesem Programm ebenfalls genannten Fünf Gesänge für eine tiefe Stimme von Franz Schreker mit Theo Drill-Orridge und Clemens Kraus [sic, i. e. Clemens Krauss?] entfielen aufgrund einer Verfügung gegen die Sängerin; vgl. r. h., „Feuilleton. Von neuen Tonwerken“, in: Wiener Zeitung, 17. Februar 1910 (Wiener Abendpost), S. 1–2, hier S. 2.

", - "

16 | Vgl. auch Julius Korngold, „Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.), in: Neue Freie Presse, 26. Januar 1910 (Morgenblatt), S. 1–3, hier S. 3: „In den George-Liedern [lies: Schönbergs] […] tritt eine psalmodierende Singstimme den Klängen und Folgen der neuen Schönberg-Grammatik hinzu. Nur daß hier das Wort Mitteilung und Ausdruck schafft, allerdings zu beharrlich in der Richtung pretiöser, krankhaft-sensitiver Stimmungen.“

", - "

17 | Julius Korngold, „Feuilleton. Novitäten im Konzertsaale“, in: Neue Freie Presse, 16. Februar 1910 (Morgenblatt), S. 1–3, hier S. 1–2. (Mit „Oktave Mirbeaus Maler“ ist wohl der Protagonist aus Octave Mirbeaus Roman Dans le ciel [L’Écho de Paris 1892–1893] gemeint.) Für weitere Besprechungen vgl. auch Richard Specht, „Konzerte“, in: Der Merker 1 (1909/10), Heft 10, S. 437, sowie r. h., „Feuilleton“ (Anm. 15).

", - "

18 | Beide Blätter befinden sich in CH-Bps, Sammlung Anton Webern. Faksimiles in Ahrend, „Spurensuche“ (Anm. 7), S. 62 f. Die Reihenfolge der Lieder, ohne Rücksicht auf die originale Schreibung der Titel und die Markierungen (siehe unten), wurde bereits von Moldenhauer innerhalb der „Prefatory Note“ zu Anton Webern, Four Stefan George Songs, hg. von Peter Westergaard, New York: Carl Fischer, 1970, S. ii, sowie in Hans und Rosaleen Moldenhauer, Anton von Webern. Chronik seines Lebens und Werkes, Zürich: Atlantis, 1980, S. 104, mitgeteilt. Vgl. auch die Einleitung zu The Anton Webern Collection, hg. von Mathew R. Shaftel, New York: Carl Fischer, 2004, S. xiii, wo auf die Streichungen innerhalb der Liste zu „op. 4“ hingewiesen wird, die Markierungen aber auch nicht erwähnt werden.

", - "

19 | Unterschiedliche Papiersorten; Schreibstoff: rote Tinte bei „op. 2“, schwarze Tinte bei „op. 4“; überwiegend Kurrentschrift bei „op. 2“, abwechselnd Kurrent und lateinische Buchstaben bei „op. 4“; Nennung der Binnenzyklen der George-Vorlage nur bei „op. 4“.

", - "

20 | Möglicherweise stellt die Aufnahme von Eingang M 138, „Im Morgentaun“ M 136 und „Kahl reckt der Baum“ M 137 in „op. 2“ einen Hinweis darauf dar, dass die ersten Textfassungen dieser Lieder – unabhängig von ihrem Schriftduktus und der verwendeten Papiersorte – bereits vor Trauer I M 145, mit der die Liste der Lieder in „op. 4“ beginnt, also vor Ende Mai 1909 entstanden sind. Gegen ein solch rein chronologisches Auswahlprinzip der beiden Sammlungen spricht allerdings u. a. die auffällige gleiche Anzahl von zweimal sieben Liedern.

", - "

21 | Tatsächlich ist der vertikale Schenkel dieses Winkels im Vergleich zu den anderen der längste, also am weitesten über die Zeile hinausreichende: Die Markierung ließe sich ihrer graphischen Form nach durchaus auf beide Zeilen beziehen. Zu möglichen weiteren Interpretationen auch der anderen Markierungen vgl. Ahrend, „Spurensuche“ (Anm. 7), S. 60–66.

", - "

22 | Vgl. Schönberg an Hertzka, 7. Oktober 1909 (zitiert nach Julia Bungardt, „Einleitung“, in: Anton Webern, Briefwechsel mit der Universal-Edition, hg. von Julia Bungardt, Wien: Lafite, 2020 [Webern-Studien 5], S. 12): „Verehrter Herr Direktor, verabredungsgemäß benachrichtige ich Sie, dass ich mit meinem Schüler Dr. Anton von Webern Sonntag vormittag gegen 1/2 12 Uhr bei Ihnen sein werde[,] um Ihnen meine Klavierstücke und Kompositionen Weberns vorzuführen […].“

", - "

23 | Vgl. die im gegenteiligen Sinne zu verstehenden Formulierungen bei Moldenhauer, Anton von Webern (Anm. 18), S. 653, zu „Erwachen aus dem tiefsten Traumesschoße“ und Kunfttag I: „[u]rsprünglich für Op. 3 geplant“, sowie zu Trauer I und „Das lockere Saatgefilde“: „[u]rsprünglich für Op. 4 geplant.“

", - "

24 | Der Zyklus Lieder in Georges Der siebente Ring gliedert sich in einen Vorklang sowie mehrere nummerierte Liedfolgen und Einzelgedichte. Webern ordnet in op. 3 aus der dort ersten Liedfolge „Lieder I–VI“ das erste bis fünfte Lied in der Reihenfolge Georges an. Das sechste Lied, „Kreuz der strasse ..“ wurde von ihm nicht vertont. Die Bezeichnung „(Lieder I–IV)“ nach „An bachesranft….“ in Weberns Liste zu den Sieben Liedern „op. 4“ ist wohl eine Verschreibung für „I–VI“.

", - "

25 | Vgl. dagegen Robert W. Wason, „A Pitch-Class Motive in Webern’s George Lieder, Op. 3“, in: Webern Studies, hg. von Kathryn Bailey, Cambridge: Cambridge University Press, 1996, S. 111–134, hier S. 133: „[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.“

", - "

26 | Webern an Schönberg, 5. Juni 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21863]): „Ich besorge noch schnell selber eine Abschrift meines Quartettes und werde dieses, die Violinstück[e] und ungefähr 10 Lieder einschicken.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 130.

", - "

27 | Vgl. Webern an Schönberg, 30. September 1911 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21900]): „Der ‚Dreililien‘ Verlag hat mir meine Sachen zurückgeschickt. Sie hätten sich ‚leider‘ nicht dazu entschließen können. Ich werde Sie jetzt an D[r.] Tischer schicken. –“ Vgl. auch Webern an Jalowetz, 23. Oktober 1911 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 168–171, hier S. 169: „[…] Dr Tischer habe ich, auf seine Aufforderung hin (von Schönberg veranlaßt) einiges von mir zum Verlage eingeschickt.“ Moldenhauer, Anton von Webern (Anm. 18), S. 140, und der Kommentar zu Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 172 sprechen von „neun George-Liedern“.

", - "

28 | Vgl. Webern an Gerhard Tischer (Tischer & Jagenberg), 2. Januar 1912 (Moldenhauer, Anton von Webern [Anm. 18], S. 140): „Es tut mir sehr leid, daß Sie meine Kompositionen nicht in Ihren Verlag aufnehmen.“, sowie Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8): „Dr Tischer hat mir meine Noten wieder zurückgeschickt. Ich bin also zum 3. Male abgewiesen worden.“ Vermutlich zählt Webern hier also das von Schönberg initiierte Treffen mit Hertzka vom 9. Oktober 1909 (siehe oben, Anm. 22) als den ersten Versuch, bei einem Verlag angenommen zu werden.

", - "

29 | Webern an Königer, 23. November 1911 (A-Wn, HS 975/7–6). Die in der Brief-Passage erwähnte „Skizze“ ist nicht bekannt. Da Webern, soweit ersichtlich, das Lied nicht „neuerdings abgeschrieben“ hat, ist nicht klar, ob die erwähnte Skizze dazu auch tatsächlich existierte. Vgl. auch Stefan Münnich, „Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Weberns George-Lied op. 4 Nr. 5“, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, hg. von Andreas Kuczera, Thorsten Wübbena und Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), Online-Ressource, DOI: 10.17175/sb004_005. Im vorliegenden Kritischen Bericht wurde auf die Hypostasierung dieser möglichen weiteren nicht überlieferten Quelle verzichtet.

", - "

30 | Webern an Königer, 11. Januar 1912 (A-Wn, HS 975/7–8).

", - "

31 | Webern an Berg, 25. Januar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg, hg. von Simone Hohmaier und Rudolf Stephan [Briefwechsel der Wiener Schule 4], Druck in Vorbereitung): „Ich habe vorgestern die Korrektur meines Liedes[,] das im ‚blauen Reiter‘ erscheint[,] bekommen. Du auch die Deines Liedes? Von Schönberg kommt das neue Lied ‚Herzgewächse‘“.

", - "

32 | Webern an Schönberg, 13. Juni 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21913]): „Den ‚blauen Reiter‘ habe ich endlich erhalten.“

", - "

33 | Webern an Berg, 19. Februar 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]). Schönbergs Zweites Streichquartett op. 10 war im Februar 1909 als „Straube-Druck“ erschienen. Mit dem „ersten“ Quartett Weberns sind die Fünf Sätze für Streichquartett M 147–151 gemeint, in Abgrenzung zu den 1911 komponierten Vier Stücken für Streichquartett M 171–174, deren spätere Textfassungen in die Sechs Bagatellen für Streichquartett op. 9 eingegangen sind. Entsprechend grenzen sich die „älteren 6 Orchesterstücke“ M 152–157 von den ebenfalls bereits 1911 komponierten Orchesterstücken M 169170 ab, die später Teil der Fünf Stücke für Orchester op. 10 wurden.
Vgl. auch Webern an Königer, 20. Februar 1912 (A-Wn, HS 975/7–10). Die Reihenfolge der in diesen Briefen genannten Kompositionen ergibt eine Opuszahlenfolge von Passacaglia (op. 1), „9 Lieder“ (op. 2), Streichquartett (op. 3) und Orchesterstücke (op. 4).

", - "

34 | Arnold Schönberg, Berliner Tagebuch, hg. von Josef Rufer, Frankfurt am Main: Propyläen, 1974, S. 25 (15. Februar 1912). Vgl. auch ebd., S. 20 (5. Februar 1912): „Weberns ‚Passacaglia‘ angesehen. Wirklich ausgezeichnet. Sehr gut und höchst originell. Webern wird sicher etwas Außerordentliches.“, sowie ebd., S. 27 (17. Februar 1912): „Abends sind Weberns bei uns. Spielen ein sehr schönes Lied von Webern, das die Winternitz seinerzeit gesungen hat. Sehe jetzt erst, wie schön das ist. Ein echtes Lied; und daß die Winternitz es ebenso sinn- und seelenlos gesungen hat wie meine George-Lieder.“

", - "

35 | Webern an Schönberg, 9. August 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21931]). Zuvor hatte Schönberg Weberns Kompositionen in einem Schreiben an Simrock empfohlen (vgl. Bungardt, „Einleitung“ [Anm. 22], S. 14 f.).

", - "

36 | Webern an Schönberg, 10. September 1912 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21939]): „[…] heute habe ich von Simrock meine Kompositionen zurückbekommen. Er kann sie nicht veröffentlichen, schreibt er.“

", - "

37 | Vgl. Webern an Schönberg, 4. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21970]): „Ich werde demnächst meine Lieder (eine Auswahl) an diesen Verleger schicken. Vielleicht wird doch einmal was draus.“, sowie Webern an Schönberg, 20. Januar 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 21975]): „Heute schicke ich endlich an Gadow in Hildburghausen meine Lieder. Ich bin begierig[,] ob was draus wird.“ Zu dem heute kaum bekannten Gadow-Verlag vgl. Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, Band 6, Eberswalde: N. N., 1908, S. 1072: „Der Verlag pflegt neben der Herausgabe der in 7600 Exemplaren verbreiteten ‚Täglichen Nachrichten‘ bezw. des ‚Hildburghäuser Kreisblattes‘ […] in erster Linie den Betrieb von Schulbüchern, Chor-Liedersammlungen und Kalendern. Die Buchdruckerei dient dem Werk-, Akzidenz- und speziell dem Notendruck.“

", - "

38 | Vgl. Hertzka an Schönberg, 24. Juni 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 24): „Wenn im nächsten Jahre die allgemeinen Verhältnisse besser werden und die Amsterdamer Aufführung der Orchesterstücke (Weberns) oder irgend welche Aufführungen von Webern erfolgt sein werden, so will ich von ihm etwas in die Universal-Edition aufnehmen, weil ich weiss, dass ich Ihnen damit eine Freude mache.“

", - "

39 | Webern an Jalowetz, 28. Juni 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 311). Vgl. auch Webern an Schönberg, 25. Juni 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18255]): „Ach Gott, das ist herrlich. Ich muß also bis zur zweiten Hälfte des nächsten Jahres warten. Hertzka versprach mir um diese Zeit sicher etwas zu bringen; den Chor und ein Heft Lieder oder die Violinstücke.“

", - "

40 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 25 f.: „[A]ufgrund der neuen Situation verschoben sich die Prioritäten des Verlags, wie die vorhandenen Kapazitäten für erfolgversprechende und ‚zeitgemäße‘ Projekte und Produkte zu nutzen seien: Das waren in erster Linie ‚Kriegsmusik‘ und Musiktheater. Dafür schloss man sowohl 1915 als auch in den folgenden Kriegsjahren durchaus mit ‚für unseren Verlag neuen Komponisten‘ erstmals ab. In den genannten Genres waren Beiträge von Webern aber weder vorhanden noch zu erwarten.“

", - "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, hg. von Josef V. v. Wöss, Wien: Universal Edition, 1915. Vgl. auch Berg an Schönberg, 20. Juli 1914 (zitiert nach Briefwechsel Arnold Schönberg – Alban Berg, hg. von Juliane Brand, Christopher Hailey und Andreas Mayer [Briefwechsel der Wiener Schule 3], Band 1, S. 492): „Jedenfalls wird aber dem Webern um ein Lied geschrieben. Ich denke, daß er eins aus seinen Georgeliedern schicken wird.“

", - "

42 | Vgl. Webern an Hertzka, 23. Juli 1914 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 87): „Auf Ihre Zuschrift vom 20. Juli hin schicke ich Ihnen 3 Lieder von mir zur Auswahl. Ich hoffe, dass die Lieder kurz genug sind.“ Vgl. auch Webern an Hertzka, 29. September 1914 (ebd., S. 87 f.): „Ich bitte mich wissen zu lassen, ob die zwei Lieder von mir, die ich der Universal-Edition über deren Aufforderung im Juli zur eventuellen Aufnahme in die Sammlung das „moderne Lied“ einsandte, noch benötigt werden. Wenn nicht, bitte ich mir die Lieder ehestens zurückzuschicken. Ich habe keine anderen Exemplare davon.“ Warum Webern hier nur noch zwei, statt drei Lieder erwähnt, ist nicht klar.

", - "

43 | Vgl. Kalmus an Berg, 27. Juli 1914 (zitiert nach Bungardt, „Einleitung“ [Anm. 22], S. 25): „[…] eine Einschiebung Ihres Liedes (und auch des Liedes von Herrn Dr. v. Webern) [würde] eine Umstellung des ganzen Inhaltes verursachen […], so dass wir die bereits beim Stich befindlichen Sachen ganz anders einteilen müssten […].“

", - "

44 | Diese Seite erwähnen (ohne auf die Korrektur der Opuszahl hinzuweisen) auch Elmar Budde: Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), S. 13, und Moldenhauer, Anton von Webern (Anm. 18), S. 104. Auf derselben Titelseite findet sich auch noch der mit Bleistift geschriebene und eingerahmte Titel „5 Lieder | op. 4 [korrigiert aus „5“]“, der sich vermutlich auf die 1923 tatsächlich als Opus 4 veröffentlichten Fünf Lieder nach Gedichten von Stefan George bezieht. Die gesamte Seite ist mehrfach gestrichen und Teil des hinteren Blatts eines für die in H ausgeführte Reinschrift der Fünf Lieder op. 4 als Umschlag verwendeten Bogens.

", - "

45 | Vgl. Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332–334, hier S. 333): „Ich hatte mich die Zeit her mit einer Revision, stellenweiser Umarbeitung, Instrumentationsänderung, Copierung u. s. w. meiner bisherigen Sachen beschäftigt. Jetzt ist, glaub ich, alles in Ordnung, soweit ich es zu beurteilen im Stande bin.“

", - "

46 | In diesem Konzert wurden schließlich von Webern wieder die Fünf Sätze für Streichquartett M 147–151 gespielt und die Vier Stücke für Geige und Klavier M 161–164 uraufgeführt. Vgl. „Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern“, 24. April 1911, Wien, Ehrbar-Saal. Abdruck des Programms in Alban Berg, Leben und Werk in Daten und Bildern, hg. von Erich Alban Berg, Frankfurt am Main: Insel, 1976, S. 119. Vgl. auch Webern an Berg, 14. April 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Meine Lieder habe ich gar nicht hier; die sind in Berlin bei meiner Frau. Und die ist jetzt im Sanatorium und außer einer Hausmeisterin ist niemand da, der in die Wohnung kann. Und wenn ich nach Wien komme[,] wird es zu spät sein. In 3 Tagen wird dieses Fräulein die Lieder wohl nicht erlernen. So wird es nicht gehn.“ Wer im Vorfeld als mögliche Sängerin vorgeschlagen worden war, ist nicht bekannt.

", - "

47 | Webern an Berg, 2. Juni 1912 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich glaube es gienge ganz gut, an Stelle meiner Violinstücke (falls sie eben nicht möglich sind) 4 Lieder von mir zu machen. […] Ich glaube, das kann ja der Winternitz nur recht sein, wenn sie noch was singt an dem Abend. […] Aber hoffentlich ist das alles hinfällig und Rosé spielt.“

", - "

48 | Webern an Schönberg, 7. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22024]).

", - "

49 | Vgl. z. B. Neue Freie Presse, 20. Februar 1913, S. 13.

", - "

50 | Vgl. z. B. „Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert“, in: Neue Freie Presse, 1. April 1913, S. 13.

", - "

51 | Vgl. das vor Bl. 1 eingelegte Blatt in C: „Le manuscript fut venus à Marya Freund vers 1914.“ Falls diese Datierung stimmt, wäre sie auch ein Terminus ante quem für die Erarbeitung von Textfassung 3 des Liedes in C und der entsprechenden Korrekturschicht von F. Die Notiz stammt vermutlich von Freunds Sohn, Dodo Conrad („D. C.“).

", - "

52 | Vgl. Webern an Schönberg, 12. Oktober 1913 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22025]): „Das Programm werden wir kürzen. Etwa ohne Gesangssachen.“

", - "

53 | Verein für musikalische Privataufführungen in Wien, „Mitteilungen Nr. 5“, 16. März 1919 (A-Was, Resource ID 4957), S. 2 und 7 (Programm-Nummer 45): „Vier Lieder Op. 3 aus ‚Der siebente Ring‘ von Stefan George“. Über den Grund der Auslassung des späteren dritten Liedes ist nichts bekannt: Möglicherweise umfasste Weberns Konzeption der Sammlung zu diesem Zeitpunkt tatsächlich nur vier Lieder, die er dann für die wiederholte Aufführung und den – erst zu diesem Zeitpunkt anvisierten? – Druck änderte.

", - "

54 | Vgl. Gottfried Kassowitz an Berg, 7. Juni 1919 (A-Wn, F21.Berg.920/15 Mus Mag): „Die Aufführung der Webern-Lieder war wieder ganz wundervoll […]. […] Hätte ich Ihnen die Webern-Lieder senden sollen? […] Dieselben lagen gestern pünktlich zur Aufführung zum Verkauf aus u. sind dieselben sowohl was den überaus deutlichen u. schönen Stich, als auch die sonstige sehr schöne äußere Ausstattung betrifft sehr gut herausgegeben.“ Vgl. auch Berg an Webern, 18. Juni 1919 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Die gestochenen Lieder hab’ ich nun endlich auch! Sie sind sehr schön ausgefallen. Ich freu mich sehr darüber. Diese Lieder u. Pierrot sind nun die einzigen Noten, die ich hier habe.“

", - "

55 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26: „[D]ie Lieder […] waren auf Initiative Schönbergs und auf Kosten des Vereins bei Waldheim-Eberle gestochen und gedruckt worden.“

", - "

56 | Auf eine Aufnahme dieser möglicherweise nicht überlieferten Quellen in die Quellenübersicht des vorliegenden Kritischen Berichts wurde verzichtet.

", - "

57 | Das Widmungsexemplar der Publikation an Schönberg (A-Was, PM_Lg14) ist mit „4. VI. 1919 Mödling“, also zwei Tage vor der vollständigen Aufführung im Verein datiert. Die Widmung lautet: „Liebster Freund, daß ich diese Lieder geschrieben habe, daß sie gesungen wurden und schließlich auch gestochen: Das alles verdanke ich Dir. Meinen Dank dafür auszudrücken[,] vermag ich nur so: nimm wieder die Versicherung meiner immerwährenden Treue und Ergebenheit entgegen. Dein Webern“

", - "

58 | Vgl. Bungardt, „Einleitung“ (Anm. 22), S. 26 und 30, sowie Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f. Für diese von der Universal Edition übernommenen 137 Exemplare wurde die Verlagsangabe durch eine aktualisierte überklebt. Eine zweite im Sommer 1923 erschienene Auflage der Universal Edition (M) weist (wie auch alle späteren postumen Auflagen) dasselbe Stichbild der Notenseiten auf.

", - "

59 | Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 336 f.

", - "

60 | Vgl. ein überliefertes Konzertprogramm in A-Was: CP 5580. Vgl. auch den Brief Rufers an Schönberg vom 2. Dezember 1923 (US-Wc [ztitiert nach Digitalisat in A-Was: ID 15189]): „[L]eider hatte Frl. Jungbauer bei den Webernliedern solches Lampenfieber, daß die ersten 3 Lieder ganz mißlangen, obzwar wir sie 1 Stunde vor der Aufführung nochmals durchsangen u. Alles ganz tadellos war!!“

", - "

61 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3: Konzertprogramme und Radioaufnahmen, hg. von Lukas Näf unter Mitarbeit von Othmar Wüthrich, Bern: Peter Lang, 2014, S. 48.

", - "

62 | Vgl. Ivan Vojtěch, „Die Konzerte des Prager Vereins“, in: Schönbergs Verein für musikalische Privataufführungen, hg. von Horst Weber, München: edition text + kritik, 1984, S. 115–118, hier S. 115.

", - "

63 | Vgl. Webern an Hertzka, 21. März 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 106 f., hier S. 107): „[…] Frau Herlinger sang Lieder von mir“, sowie den Kommentar der Herausgeberin.

", - "

64 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), S. 345.

", - "

65 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240.

", - "

66 | Vgl. das Faksimile des Programms in Moldenhauer, Anton von Webern (Anm. 18), S. 325.

", - "

67 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", - "

68 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", - "

69 | Vgl. Webern an Hildegard Jone, 10. Dezember 1934 (A-Wn, HS 431/1–143): „Montag, d. 17. singt in einem Konzert des Vereines f. neue Musik […] Fr. Mihascek [sic] […] meine Lieder op. 3; (es sind fünf); Steuermann begleitet. Fr. Mihascek [sic] hat seinerzeit als erste das erwähnte Lieder-opus vollständig gesungen. Ich denke, sie wird’s wieder schön machen.“ Vgl. auch [Paul Stefan], „Konzert-Tagebuch“, in: Die Stunde, 19. Dezember 1934, S. 4. Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 379.

", - "

70 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", - "

71 | Vgl. Erich Schmid, Lebenserinnerungen, Band 1: Autobiographie, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel mit denselben Ausführenden.

", - "

72 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f. Im selben Konzert fand auch die Uraufführung der Drei Gesänge op. 23 durch die beiden genannten Ausführenden statt.

", - "

73 | Zu diesen und den im weiteren Kriegsverlauf folgenden biographischen Stationen vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 157–170 und 189–201.

", - "

74 | Webern an Jalowetz, 18. Dezember 1914 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 329 f., hier S. 329). Möglicherweise bezieht sich Weberns Bemerkung auf einige Fragmente, die in Moldenhauers „Werkverzeichnis“ numerisch unmittelbar vor „Der Tag ist vergangen“ M 212 eingeordnet und dort auf „1914“ bzw. „1914 oder später“ datiert wurden, d. h. M 207–211. Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 642 und 660.

", - "

75 | Webern an Jalowetz, 10. Januar 1915 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 332 f., hier S. 333).

", - "

76 | Erstdruck Wien: A. Hartleben, 1891. Webern benutzte vermutlich die überarbeitete Fassung des Romans in den „Gesammelten Werken“ Roseggers, Bd. 19, Leipzig: Staackmann, 1914, S. 214 („Der Tag ist vergangen …“): Rosegger_PM. Vgl. Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, S. 77.

", - "

77 | Webern an Schönberg, 9. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18237]).

", - "

78 | Für eine Übersicht der nachgewiesenen Rosegger-Lektüren Weberns vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 38–41. Am 3. September 1914 schrieb Webern begeistert an Berg, dass er den Schriftsteller auf einer Zugfahrt von Klagenfurt nach Wien gesehen habe (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Ich habe in Krieglach den Rosegger gesehn (auf der Rückfahrt)[.] Wunderbar. Er fuhr eine Station im selben Zug: nach Langenwang.“

", - "

79 | Vgl. Kaiser, Rosegger-Rezeption (Anm. 76), S. 76 f.

", - "

80 | Zu dem Lied heißt es im Textteil der Zeitschrift (N. N., „Anton v. Webern“, in: Musikblätter des Anbruch 4/9–10 [Mai 1922], S. 150): „Unsere Notenbeilage vermittelt einen Einblick in das Wesen seiner neuen Kompositionen.“ Die Notenbeilage datiert das Lied gleichwohl richtig auf 1915, also immerhin sieben Jahre zuvor.

", - "

81 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).

", - "

82 | August Strindberg, Gespenstersonate, in: ders., Kammerspiele, verdeutscht von Emil Schering, München und Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [Band 9]), [Heft 3], S. 46[c] („Schien mirs, als ich sah die Sonne!“): Strindberg_Gs. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1129. Der handschriftliche Datumseintrag findet sich auf S. [6].

", - "

83 | Zum „Einfluß Strindbergs“ auf Webern vgl. Ernst Lichtenhahn, „Einleitung“, in: Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 9–108, hier S. 80–88.

", - "

84 | Webern an Jalowetz, 28. Januar 1917 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 355).

", - "

85 | In Hans und Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, New York: Alfred A. Knopf, 1979, S. 700 und 720, wird Blumengruß als „M 21“ gezählt.

", - "

86 | Vgl. z. B. Webern an Berg, 21. Dezember 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]: „Ich lese „Wilhelm Meister“ und bin aufs höchste beglückt über dieses Buch.“

", - "

87 | Gleich und Gleich findet sich in Bd. 1, Gedichte. Erster Teil, S. 19: Goethe_JA. Exemplare Weberns dieser Ausgabe sind nicht überliefert. Das Verzeichnis findet sich in CH-Bps, Sammlung Anton Webern.

", - "

88 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 250. Die Zusammenstellung der beiden Kompositionen zu „Zwei Goethe-Lieder“ (ebd. S. 661) ist eine Setzung Moldenhauers und nicht durch die Quellen selbst dokumentiert.

", - "

89 | Anton Webern, Wege zur neuen Musik, hg. von Willi Reich, Wien: Universal Edition, 1960, S. 55 (Vortrag vom 12. Februar 1932).

", - "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] S. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Weberns Exemplar in CH-Bps, Sammlung Anton Webern, trägt die Signatur AW B 1027.

", - "

91 | Tatsächlich kannte Webern die von Mahler für Das Lied von der Erde eingerichteten Texte bereits vor der Uraufführung. Vgl. Webern an Berg, 30. Oktober 1911 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]): „Wenn Du in beiliegendem Blatt den Schluß der Dichtung vom ‚Lied der Erde‘ gelesen hast, mein Lieber, erwartest Du Dir dann nicht das Wunderbarste von der Musik, das es gibt; etwas so Herrliches, wie es nie existiert hat. ‚Du mein Freund, mir war auf dieser Welt das Glück nicht hold! Wohin ich geh’ und wandere in die Berge, ich suche Ruhe, Ruhe für mein einsam Herz!...‘ Um Himmels willen, welche Musik muß das sein! Ich bilde mir ein, ich muß schon jetzt darauf kommen, bevor ich sie noch hörte. Mensch, kannst Du das aushalten. Ich nicht.“ Zu dem eminenten Eindruck von Mahlers Komposition auch im Zusammenhang der vermeintlich ‚chinesischen‘ Texte auf Webern vgl. Matthias Schmidt, „Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai“, in: Der doppelte Po und die Musik. Chinesisch-rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, hg. von Mathias Gredig, Marc Winter, Rico Valär und Roman Brotbeck unter redaktioneller Mitarbeit von Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, S. 281–299.

", - "

92 | A-Wst, Depositum Universal Edition, Anton Webern. Abbildung und Transkription dieser Liste in Julia Bungardt, „Einleitung“ (Anm. 22), S. 28 f. Die Werkliste reicht bis zu den hier als „op. 12“ gezählten Trakl-Liedern op. 14.

", - "

93 | Im Umfeld dieser Korrektur lässt sich auch eine „13“ in einer weiteren radierten Schicht entziffern.

", - "

94 | Egon Wellesz, „Anton von Webern: Lieder opus 12, 13, 14“, in: Melos 2/2 (Februar 1921), S. 38–40. Vgl. auch Webern an Jalowetz, 13. März 1921 (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 481): „In Scherchens Zeitschrift ‚Melos‘ war ein Aufsatz des Wellesz über Lieder op. 12, 13. u. 14. von mir. Das hat mich sehr gefreut.“

", - "

95 | Webern an Hertzka, 3. Januar 1925 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 101–104, hier S. 101). Vgl. auch Webern an Hertzka, 21. März 1925 (ebd., S. 106 f., hier S. 106): „Schon Anfang Jänner brachte ich Ihnen ein Heft von 4 Klavier-Liedern, op. 12, u. Sie stellten mir damals deren baldiges Erscheinen in Aussicht.“ Ein erster Vertrag datiert vom 5. Februar 1925, ein revidierter Vertrag vom 3. April 1925.

", - "

96 | Vgl. Webern an die Universal Edition, 12. Juni und 20. Juni 1925 (ebd., S. 110 f.).

", - "

97 | Vgl. ebd. (Anhang), S. 340 f.

", - "

98 | Berg an Webern, 12. Oktober 1925 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", - "

99 | Vgl. Ankündigung des Konzerts in: Neue Freie Presse, 5. Januar 1927, S. 9. Laut einer Besprechung der Uraufführung der Lyrischen Suite Bergs, ging dieser noch eine Wiedergabe von Ludwig van Beethovens Klaviertrio in Es-Dur op. 70/2 voraus (vgl. Neues Wiener Journal, 12. Januar 1927, S. 11: ohne Erwähnung der Lieder Weberns und des Bach-Konzerts). Laut einer Ankündigung in: Die Stunde, 9. Januar 1927, S. 1, sang Co van Geuns am folgenden Tag noch einmal „Lieder von Anton Webern“ im kleinen Saal des Musikvereins. Über Einzelheiten dieses Konzerts ist nichts bekannt. In einem Brief an Jalowetz von 20. Dezember 1926 schreibt Webern von insgesamt sechs Liedern, die im Januar aufgeführt werden sollten: „Im Jänner singt eine holländische Sängerin 6 Lieder von mir hier in Wien.“ (Webern, Briefe an Heinrich Jalowetz [Anm. 10], S. 570). Möglicherweise hatte van Geuns eine Kombination der Lieder aus op. 12 mit George-Liedern Weberns vorbereitet.

", - "

100 | Webern an Schönberg, 17. Januar 1927 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22230]).

", - "

101 | pp. [Paul Pisk], „Neue Musik im Konzertsaal“, in: Arbeiter-Zeitung [Wien], 11. Januar 1927, S. 7.

", - "

102 | Anton Webern, Notizbuch (CH-Bps, Sammlung Anton Webern). Zitiert nach Moldenhauer, Anton von Webern (Anm. 18), S. 240. Über die Einzelheiten dieses Konzertes ist nichts bekannt.

", - "

103 | N. N., „Konzertierende Künstler und neue Musik“, in: Musikblätter des Anbruch 9/3 (März 1927), S. 153: „Co van  G e u n s  sang in Köln Lieder von Webern und Zemlinsky mit Erfolg.“ Vgl. auch Webern, Briefe an Heinrich Jalowetz (Anm. 10), S. 572.

", - "

104 | Vgl. Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (Anm. 64), S. 345.

", - "

105 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 240. Vgl. auch ebd.: „Im gleichen Jahr waren drei der Vier Lieder in Frankfurt zu hören.“

", - "

106 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 325 (Abbildung des vollständigen Programms).

", - "

107 | Vgl. Universal Edition (Erwin Stein) an Webern, 18. November 1931 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 171 f., hier S. 171): „[…] Amsterdam führte Deine 4 Lieder op. 12 und 2 Lieder aus op. 3 (welche konnte ich bis jetzt nicht erfahren) am 18. ds. auf“, sowie den Kommentar der Herausgeberin.

", - "

108 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 364.

", - "

109 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (A-Wn, HS 431/1–157): „Morgen abend, um ½ 7 werden in einer Veranstaltung der Hertzka-Gedächtnis-Stiftung Lieder von Schönberg, Berg u. mir [4 Lieder op. 12] gesungen […].“ Dass es sich bei der Sängerin um Nessy handelte, ergibt sich aus dem Zusammenhang mit der Aufführung der Vier Lieder op. 12 am 21. November 1935 (siehe unten Anm. 110). Wer die Klavier-Begleitung übernahm, ist nicht nachweisbar.

", - "

110 | Vgl. H. E. H., „Neue Musik im Hagenbund“, in: Wiener Zeitung, 23. November 1935, S. 9. Als Pianistin bzw. Pianist waren Olga Novacovic bzw. Eduard Steuermann an diesem Konzert beteiligt. Wer von diesen beiden Weberns Lieder begleitet hat, ist nicht nachweisbar. Moldenhauer, Anton von Webern (Anm. 18), S. 409, gibt irrtümlich an, dass an diesem Konzert Weberns Konzert op. 24 unter seiner Leitung aufgeführt worden wäre. Webern hatte diese angekündigte Aufführung jedoch zurückgezogen, die Vier Lieder op. 12 dienten als Ersatz. Vgl. Webern an Jone und Humplik, 20. November 1935 (A-Wn, HS 431/1–169): „Nun muß ich Euch mitteilen, dass ich mein ‚Konzert‘ für morgen zurückgezogen habe […]. […] Es ist möglich, dass statt des „Konzertes“ die Lieder gesungen werden, die Ihr den Mai dieses Jahres gehört habt. [Da dieselbe Sängerin sowieso mitwirkt.]“ Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, hg. von Barbara Schingnitz, Dissertation, Universität Basel, 2019.

", - "

111 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 476 f. Vgl. auch Erich Schmid, Lebenserinnerungen, Band 3 (Anm. 61), S. 48.

", - "

112 | Erich Schmid, Lebenserinnerungen, Band 1 (Anm. 71), S. 327, sowie ebd., Band 3 (Anm. 61), S. 53 f. Sehr wahrscheinlich handelte es sich um die gleiche Auswahl an Webern-Liedern wie am 10. Februar 1940 in Basel.

", - "

113 | Vgl. Webern an Jone, 6. August 1928 (A-Wn, HS 431/1–11): „Nun lassen Sie uns hoffen, dass aus unserer gemeinsamen Arbeit etwas wird. Dass ich die Anregung dazu gegeben habe, daraus mögen Sie entnehmen, wie sehr lieb, ja wesensverwandt mir Ihre Denkungsart ist. –“

", - "

114 | Vgl. Jone an Ludwig von Ficker, 28. November 1928 (Brenner-Archiv, Innsbruck [zitiert nach Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, S. 51]): „Ich habe im Herbst drei Operntexte für Anton Webern, der mich im Frühling innig darum gebeten hat, geschrieben: Die Verwandlung der Liebe, Die letzte Begegnung, Die Räume des Innern und seine Gäste.“ Ein Manuskript Jones mit dem Titel Die letzte Begegnung (mit einer Widmung an Ferdinand Ebner) befindet sich in CH-Bps, Sammlung Hildegard Jone (TM 26). Vgl. auch Barbara Schingnitz, [„Einleitung“], in: Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110), S. LXVII ff.

", - "

115 | Webern an Jone, 17. Januar 1930 (A-Wn, HS 431/1–35).

", - "

116 | Ebd.: „Dass Sie immer wieder daran denken, ein ‚Opernbuch‘ für mich zu schreiben, macht mich sehr froh.“

", - "

117 | Webern an Jone, 8. September 1930 (A-Wn, HS 431/1–48).

", - "

118 | Ebd.: „Nun beschäftigt mich sehr die Idee, eine Kantate zu schreiben. Und meine Bitte: würden Sie so einen Text für mich verfassen wollen? Wer sollte es denn sein, als Sie, liebe Frau Jone! Diese Idee läßt mich nicht mehr los u. so mußte ich es sagen.“ Die „Idee, eine Kantate zu schreiben“, dürfte in dieser Zeit auch durch Weberns Proben zu Johann Sebastian Bachs Actus tragicus motiviert worden sein. Vgl. Regina Busch, „Webern, Bach und Kantaten“, in: webern_21, hg. von Dominik Schweiger und Nikolaus Urbanek, Wien: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), S. 221–244.

", - "

119 | Vgl. die verstreuten Nachweise der Herausgeberin im Kommentar zu Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110). Zu den Schwierigkeiten der Identifizierung einzelner Gedichte und ihrer Fassungen (sowie den daraus resultierenden Ungenauigkeiten eines großen Teiles der betreffenden Forschungsliteratur) vgl. ebd. („Exkurs: Problematik der Quellenlage in Jones Nachlass“), S. XXI: „[I]n den meisten Fällen [sind] die an Webern gesendeten Abschriften von Gedichten bzw. Gedichtsammlungen, soweit sie aus der Korrespondenz erschlossen werden können, nicht eindeutig zu identifizieren, da bis auf wenige Ausnahmen […] in Weberns Nachlass keine autographen (vom Vertonungskontext losgelösten) Jone-Dichtungen mehr befindlich sind. Dass Webern regelmäßig Abschriften von Jone-Texten erhielt und nach einiger Zeit wieder zurücksandte (und sich oft auch Teile daraus abschrieb), wird ebenfalls aus der Korrespondenz deutlich, diese Abschriften lassen sich ebenfalls weder in Weberns noch Jones Nachlass nachweisen.“ Eine Abschrift Weberns aller von ihm vertonten Gedichte Jones (US-Wc, Moldenhauer Archives 59/2) war vom Komponisten nachträglich für die Vorbereitung eines für den 29. November 1944 geplanten „Abends zeitgenössischer Dichtung“ im Frühsommer desselben Jahres angefertigt worden. Vgl. Webern an Jone, 30. April 1944 (A-Wn, HS 431/1–285): „Die von mir komponierten Gedichte habe ich bereits, so wie Du es wünschtest, abgeschrieben […] u. bringe Dir das Heftchen mit […].“

", - "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), S. 60–74, hier S. 64 („Das dunkle Herz“) und 65 („Du stürzt aus Höhen“ und „Herr Jesus mein“): Jone_Vi. Vgl. Webern an Jone, 3. November 1932 (A-Wn, HS 431/1–85): „Auf Ihre Gedichte im ‚Brenner‘ freue ich mich schon sehr.“

", - "

121 | Zum Aufbau dieser gesamten Brenner-Ausgabe als Gedenkheft für Ferdinand Ebner, der in der Zeitschrift wiederholt als Autor tätig gewesen war, sowie den inhaltlichen Bezügen zu dessen Philosophie in Jones Gedichten vgl. Reinecke, Hildegard Jone (Anm. 114), S. 175–187.

", - "

122 | Vgl. Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, hg. von Franz Seyr, München: Kösel, 1963 (Ferdinand Ebner Schriften 2), S. 1033: „Im Atelier [lies: Humpliks und Jones] Dr. Webern – die Fr. Jone wünscht es.“

", - "

123 | Vgl. Schingnitz, [„Einleitung“] (Anm. 110), S. LI f.

", - "

124 | Abteilung II versammelt nach einem titellosen einleitenden Gedicht vier durch arabische Ziffern abgetrennte Abschnitte, die alle in sich abgeschlossene Einzelgedichte enthalten: 1. Das Augenlicht (die spätere Vorlage für Weberns op. 26), 2. Christophorus, 3. Der Berg und 4. Zwischen Tag und Nacht. Im 3. und 4. Abschnitt folgen jeweils durch mit Asterisken abgetrennte Versgruppen, von denen nicht klar ist, ob sie die in den beiden Titeln angesprochenen Texte fortführen oder eigenständige Gedichte darstellen.

", - "

125 | Zur langwierigen Arbeit am ersten Satz von op. 24 vgl. Kathryn Bailey, „Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24“, in: Journal of Music Theory 40/2 (Autumn 1996), S. 245–310.

", - "

126 | Webern an Jone, 3. März 1933 (A-Wn, HS 431/1–89).

", - "

127 | Vgl. Lauriejean Reinhardt, „Webern’s Literary Encounter with Hildegard Jone“, in: Mitteilungen der Paul Sacher Stiftung 5 (Januar 1992), S. 36–40. Ebd., S. 37, das Faksimile eines Jone-Manuskripts mit dem Titel Die Freude, das die meisten der von Webern in Opus 23 vertonten Verszeilen enthält. Es ist allerdings unwahrscheinlich, dass dieses Manuskript vor 1933 entstanden ist und Webern vorgelegen hat.

", - "

128 | Vgl. Reinecke, Hildegard Jone (Anm. 114), S. 297 f.

", - "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik op. 70A; Paul A. Pisk, Kantate Campanella op. 28; Hanns Eisler, Das Lied vom Kampf.

", - "

130 | Vgl. Webern, Wege zur neuen Musik (Anm. 89), S. 9–44. Der Vortragszyklus begann am 20. Februar und endete am 10. April. Die insgesamt acht Vorträge fanden in Regel am Montagabend, zweimal auch dienstags (am 7. und 14. März) statt.

", - "

131 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 359, sowie Radio Wien, 19. Mai 1933, S. 42.

", - "

132 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 360, sowie Radio Wien, 14. Juli 1933, S. 52.

", - "

133 | Webern an Jone, 29. Juli 1933 (A-Wn, HS 431/1–99). Tatsächlich ist der Beginn der ersten Skizze zu „Es stürzt aus Höhen“ M 313 mit „26. VII. 33“ datiert, mithin zwölf und nicht, wie von Webern angegeben, acht Tage nach der Abschlussdatierung der Verlaufsskizze zu „Herr Jesu mein“ M 312.

", - "

134 | Ebd.: „Also, ab 4. – ungefähr 10. [August] sind wir nicht da.“ Vgl. auch Moldenhauer, Anton von Webern (Anm. 18), S. 360 f., wo der Aufenthalt in Tirol auf „6.–12. August“ datiert wird.

", - "

135 | Webern an Jone, 3. September 1933 (A-Wn, HS 431/1–101).

", - "

136 | Webern an Jone, 24. September 1933 (A-Wn, HS 431/1–104). Eine Reaktion Jones auf die beiden Gesänge ist nicht überliefert.

", - "

137 | Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116).

", - "

138 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 369, sowie Radio Wien, 26. Januar 1934, S. 16.

", - "

139 | Webern an Jone, 14. Februar 1934 (A-Wn, HS 431/1–119).

", - "

140 | Webern an Humplik, 20. Februar 1934 (A-Wn, HS 431/1–120): „Ich arbeite doch wieder: ‚was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…‘ Je schrecklicher es wird[,] umso verantwortungsvoller unsere Aufgaben.“ Die Verlaufsskizze M 314 Sk3 artikuliert die Textstelle in mehreren Varianten: T. {12A, 12B, 13A–15A, 12C}, T. {12D, 13B–15B, 16A–17A}, T. {23A–24A}, {13C–15C} und T. {13D–15D}. Siehe auch M 314 Sk3.2.

", - "

141 | Webern an Jone, 4./5. März 1934 (A-Wn, HS 431/1–121). Siehe M 314 Sk3 T. 22B–24B, {25B–27B}.

", - "

142 | Webern an an Jone, 11. März 1934 (A-Wn, HS 431/1–122): „‚Wir sind nicht unser, ich und du u. Alle‘. Gerade habe ich die Melodie zu Ende skizziert. Sie sehn also, bald wird das Lied zu Ende komponiert sein.“ Vermutlich bezieht sich Webern hier auf M 314 Sk3.4.

", - "

143 | Webern an Jone, 20. März 1934 (A-Wn, HS 431/1–123). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110): „Ob Webern letztlich […] überhaupt eine Reinschrift der Drei Lieder op. 23 an Jone sandte oder sie ihr überreichte, ist nicht festzustellen; die Korrespondenz suggeriert es nicht. Den Druck des Werks erhielten Jone und Humplik nach dessen Erscheinen bei der Universal Edition […].“

", - "

144 | Webern an Berg, 27. März 1934 (zitiert nach Briefwechsel Anton Webern – Alban Berg [Anm. 31]).

", - "

145 | Vgl. Universal Edition (Hugo Winter) an Webern, 11. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 188). Der Verlagsvertrag datiert vom 12. Juli (vgl. den Kommentar der Herausgeberin, ebd., sowie Anhang, S. 344 f.).

", - "

146 | Webern an Universal Edition (Yella Hertzka), 12. Juli 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 189).

", - "

147 | Universal Edition (Erwin Stein) an Webern, 29. August 1934 (Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 196).

", - "

148 | Vgl. Webern, Briefwechsel mit der Universal-Edition (Anm. 22), Anhang, S. 344 f.

", - "

149 | Vgl. Webern an Josef Humplik, 8. Mai 1935 (Anm. 109).

", - "

150 | Reich an Webern, 30. August 1943 (CH-END [Durchschlag]): „Ihr ‚Sechziger‘, auf den Sie so diskret hinweisen, ist mir natürlich schon vorher bewußt gewesen, und ich habe schon allerlei Pläne zur Feier dieses Tages geschmiedet. […] Eine Basler Kammermusikaufführung (das ganze Konzert ausschließlich mit Werken von Webern) ist für Dezember bereits im Rahmen der IGNM gesichert“.

", - "

151 | Zum Konzert und seinem vollständigen Programm, u. a. mit den Fünf Liedern op. 3 ebenfalls durch die genannten Ausführenden, vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 502 f.

", - "

152 | Bg., in: National-Zeitung, 7. Dezember 1943 (Morgenblatt), S. 4. Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern –Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", - "

153 | ay, „Anton Webern in der I. G. N. M.“, in: Basler Nachrichten, 7. Dezember 1943 (2. Beilage). Vgl. auch den Kommentar der Herausgeberin in Briefwechsel Webern und Webern – Jone und Humplik (Anm. 110) zu Webern an Jone, 4. Dezember 1943.

", - "

154 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", - "

155 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", - "

156 | Webern an Schönberg, 21. März 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18155]).

", - "

157 | Ebd.

", - "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/Oktober 1933), S. 16–26, hier S. 16 („Wie bin ich froh!“), 18 („Sterne, Ihr silbernen Bienen der Nacht“) und 24 („Des Herzens Purpurvogel“): Jone_DF. Dieser Zyklus Die Freude ist nicht zu verwechseln mit Jones gleichnamigem Gedicht, das auch – ohne expliziten Titel – in den bereits 1932 publizierten Zyklus Viae inviae aufgenommen wurde und die Textvorlage für Weberns Drei Gesänge op. 23 war.

", - "

159 | Vgl. Webern an Jone, 21. November 1933 (A-Wn, HS 431/1–112): „Und wie freu ich mich auf Ihre Gedichte im ‚Schildgenossen[‘]!“

", - "

160 | Vgl. Webern an Jone, 6. Januar 1934 (A-Wn, HS 431/1–116): „Das Lieder-Manuskript [lies: von op. 23] möchte ich Ihnen doch erst als vollständiges (mit dem 3. Gesang) überreichen. Dann kommen wohl etliche ‚Stern‘-Gedichte!“

", - "

161 | Webern an Humplik und Jone, 9. Juli 1934 (A-Wn, HS 431/1–131).

", - "

162 | Webern an Schönberg, 18. Juli 1934 (US-Wc [zitiert nach Digitalisat in A-Was: ID 22352]).

", - "

163 | Webern an Jone, 18. Juli 1934 (A-Wn, HS 431/1–132). Im selben Brief, in dem ebenfalls Bachs bevorstehender Geburtstag angesprochen wird, deutet eine Bemerkung Weberns („Sie wissen ja, was ich ihm zugedenke“) an, dass er Jone inzwischen die „Gründe“ für die Komposition des Liedes mitgeteilt hatte.

", - "

164 | Auch in einer Postkarte vom 8. August steht das Lied für sich allein (A-Wn, HS 431/1–134): „Ich hoffe, Ihnen u. Pepo [lies: Humplik] das alles bald nach meiner Rückkehr zeigen zu können! und freue mich darauf schon sehr. Das Lied ‚Wie bin ich froh‘[.]“

", - "

165 | Vgl. Moldenhauer, Anton von Webern (Anm. 18), S. 378, der allerdings irrtümlich schreibt, dass Webern Bach zu diesem Anlass eine Reinschrift der Zwei Lieder op. 19 gewidmet und überreicht hätte. (Moldenhauer lag vermutlich B nicht vor.) Webern hatte die Zwei Lieder op. 19 Bach bereits zur Drucklegung des Werkes 1928 gewidmet.

", - "

166 | Webern an Humplik und Jone, 12. September 1934 (A-Wn, HS 431/1–137).

", - "

167 | Webern an Jone, 1. Oktober 1934 (A-Wn, HS 431/1–138). Welche „Lieder“ Jones Webern hier anspricht, ist nicht bekannt.

", - "

168 | Webern an Jone, 17. Oktober 1934 (A-Wn, HS 431/1–139): „‚Sterne, Ihr silbernen Bienen‘ ist fertig. Jetzt bin ich bei: [‚]Des Herzens Purpurvogel fliegt durch Nacht‘[.]“

", - "

169 | Webern an Jone, 9. November 1934 (A-Wn HS 431/1–140): „‚Des Herzens Purpurvogel‘ wird bald beendet sein. Ich war nur in der letzten Zeit etwas aufgehalten.“

", - "

170 | Webern an Boosey & Hawkes (Erwin Stein), 17. Oktober 1938 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 223 f.). Aus dem Kontakt zu Boosey & Hawkes resultierte die Publikation von Weberns Streichquartett op. 28. Vgl. dazu auch Regina Busch, „Weberns Streichquartett op. 28 und das Schriftbild seiner Partituren“, in: Webern-Philologien, hg. von Thomas Ahrend und Matthias Schmidt, Wien: Lafite, 2016 (Webern-Studien 3), S. 41–76.

", - "

171 | Vgl. Universal Edition (Alfred Schlee) an Webern, 1. Dezember 1943 (zitiert nach Webern, Briefwechsel mit der Universal-Edition [Anm. 22], S. 284): „Es ist auch nicht richtig, wenn ich Ihnen die Mitteilung, dass die Lieder nun zum Stich gehen sozusagen als Geburtstagsgeschenk mache, denn es gehört sich natürlich schon längst, sie auch ohne den 60. Geburtstag herauszubringen.“ Vgl. den Kommentar der Herausgeberin ebd.: „Dass die Drei Lieder op. 25 nach diesem Brief ‚zum Stich‘ gegangen wären, ist nicht dokumentiert, ebensowenig ein Vertragsabschluss.“

", - "

172 | Vgl. Webern an Erich Schmid, 9. November 1943 (zitiert nach Erich Schmid, Lebenserinnerungen, Band 2: Briefe, hg. von Lukas Näf, Bern: Peter Lang, 2014, S. 812): „Was die Photokopie meiner Lieder op. 25 betrifft, […] so hoffe ich, dass die nun endlich in 2 Exemplaren bereits in Ihrer Hand sind. Trotzdem ich es immer wieder betrieb, hat sich doch die Herstellung (zeitbedingt) sehr verzögert.“ Schmid, der bei Weberns Aufenthalt 1940 in Basel Gradmann-Lüscher bei der Aufführung der Fünf Lieder nach Gedichten von Stefan George op. 4 sowie einer Auswahl der Vier Lieder op. 12 am Klavier begleitet hatte, war durch seinen Militärdienst für die im Dezember 1943 geplante Aufführung verhindert. Die beiden heute verschollenen Exemplare ([EF1–F2]) dürften Gradmann-Lüscher und Paul Baumgartner vermutlich vor dem Aufführungstermin gleichwohl zugekommen sein, die Zeit für die Einstudierung der Lieder hat dann aber wohl nicht mehr ausgereicht.

", - "

173 | Vgl. z. B. Webern an Jone, 22. April 1944 (A-Wn, HS 431/1–284): „Am günstigsten wäre es ja, eine Sängerin zu finden, die einige von den sechs Klavier-Liedern – nach Texten von Dir – singen könnte.“

", - "

174 | Webern an Jone, 10. August 1944 (A-Wn, HS 431/1–292): „Ich bekam Nachricht, dass die erwähnte schwedische Sängerin zugesagt hat u. bereits studiert.“

", - "

175 | Moldenhauer, Anton von Webern (Anm. 18), S. 649 f.

" ] }, { @@ -504,7 +506,8 @@ "blockHeader": "", "blockContent": [ "

Series I, Section 5 of the Anton Webern Gesamtausgabe (AWG) presents the songs with piano accompaniment by Anton Webern in the versions (Textfassungen) to which he gave opus numbers and were either published during his lifetime or intended for publication (Opp. 3, 4, 12, 23 and 25), plus various individual songs (such as the George songs M 143–146) that are grouped together in clusters in this edition because the common circumstances of their composition imply that they belong together (such clusters are in the German-language documentation of the AWG referred to throughout as Editionskomplexe). Further clusters of songs that were not published during Webern’s lifetime, including those assigned opus numbers that later became obsolete (e.g. the Dehmel songs M 83, 119, 130–131), will be published in Series II, Section 5.

" - ] + ], + "blockNotes": [] }, { "blockId": "op3+4", @@ -624,6 +627,80 @@ "

–  5 December 1943, Basel, Conservatory, Marguerite Gradmann-Lüscher and Paul Baumgartner: Five Songs from Der siebente Ring by Stefan George, Op. 3.72

", "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Five Songs on Poems of Stefan George, Op. 4 (JH), we find various annotations pertaining to performances, and indications of durations. It is impossible to prove whether or not these are connected with one of the abovementioned performances (though perhaps with the first performance of the entire collection in Basel in 1940).

" + ], + "blockNotes": [ + "

1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.

", + "

2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.

", + "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).

", + "

4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.

", + "

5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.

", + "

6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”

", + "

7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.

", + "

8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).

", + "

9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.

", + "

10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).

", + "

11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”

", + "

12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).

", + "

13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).

", + "

14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.

", + "

15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.

", + "

16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”

", + "

17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).

", + "

18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.

", + "

19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.

", + "

20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.

", + "

21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.

", + "

22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”

", + "

23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.

", + "

24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”

", + "

25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.

", + "

26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.

", + "

27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.

", + "

28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.

", + "

29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.

", + "

30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).

", + "

31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”

", + "

32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”

", + "

33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).

", + "

34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”

", + "

35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).

", + "

36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”

", + "

37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”

", + "

38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”

", + "

39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”

", + "

40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”

", + "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”

", + "

42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.

", + "

43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”

", + "

44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.

", + "

45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”

", + "

46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.

", + "

47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”

", + "

48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).

", + "

49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.

", + "

50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.

", + "

51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).

", + "

52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”

", + "

53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).

", + "

54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”

", + "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", + "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", + "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", + "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", + "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", + "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", + "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", + "

62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.

", + "

63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.

", + "

64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.

", + "

65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.

", + "

66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

68 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.

", + "

70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.

", + "

72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.

" ] }, { @@ -668,7 +745,49 @@ "

–  10 February 1940, Basel, Conservatory (Concert of the ISCM, Basel Section), Marguerite Gradmann-Lüscher and Erich Schmid: Five Songs on Poems of Stefan George, Op. 4 and Op. 12/2, 12/4 and 12/1.111

", "

–  28 March 1941, Zurich, guild house “Zur Saffran” (concert of the ISCM, Zurich Section “Pro Musica”), Marguerite Gradmann-Lüscher and Erich Schmid: Five George songs plus three songs from Op. 12.112

", - "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" + "

Webern had personal contact with most of these performers, and in some cases he also assisted when they rehearsed his songs. In his personal copy of the Four Songs, Op. 12 (GH), we find indications of the durations of the individual songs. We do not know if these were made in connection with any of the performances listed above.

" + ], + "blockNotes": [ + "

73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.

", + "

74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.

", + "

75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).

", + "

76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.

", + "

77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).

", + "

78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”

", + "

79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.

", + "

80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.

", + "

81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).

", + "

82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].

", + "

83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.

", + "

84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).

", + "

85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).

", + "

86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”

", + "

87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.

", + "

88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.

", + "

89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).

", + "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.

", + "

91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.

", + "

92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.

", + "

93 | Near this correction, we can also discern “13” in a further layer that has been erased.

", + "

94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”

", + "

95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.

", + "

96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).

", + "

97 | See ibid. (Appendix), pp. 340 f.

", + "

98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.

", + "

100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).

", + "

101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.

", + "

102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.

", + "

103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.

", + "

104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.

", + "

105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”

", + "

106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", + "

107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", + "

108 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", + "

109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.

", + "

110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.

", + "

111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", + "

112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.

" ] }, { @@ -740,6 +859,51 @@ "

Three songs Op. 23 from Hildegard Jone’s Viae inviae were given their first performance. Here, the calm, tender vocal line, which is only occasionally fractured by large leaps, is disturbed by fierce, hard interjections from the accompaniment.153

", "

For an “evening of contemporary poetry” featuring Jone’s poems, planned for the Archbishop’s palace in Vienna on 29 November 1944, Jone and Webern for a while wanted to arrange a performance of both the Three Songs, Op. 23, and the Three Songs, Op. 25,154 which were rehearsed by an unnamed “Swedish [woman] singer” and Webern’s student Fré Focke.155 Ultimately, however, this performance did not take place, and no further plans for performances during Webern’s lifetime are known to us.

" + ], + "blockNotes": [ + "

113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”

", + "

114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.

", + "

115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).

", + "

116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”

", + "

117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).

", + "

118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.

", + "

119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”

", + "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”

", + "

121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.

", + "

122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”

", + "

123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.

", + "

124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.

", + "

125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.

", + "

126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).

", + "

127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.

", + "

128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.

", + "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.

", + "

130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).

", + "

131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.

", + "

132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.

", + "

133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.

", + "

134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.

", + "

135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).

", + "

136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.

", + "

137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).

", + "

138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.

", + "

139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).

", + "

140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.

", + "

141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.

", + "

142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.

", + "

143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”

", + "

144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", + "

145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).

", + "

146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).

", + "

147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).

", + "

148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.

", + "

149 | See Webern to Josef Humplik, 8 May 1935 (note 109).

", + "

150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”

", + "

151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.

", + "

152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.

", + "

153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.

", + "

154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”

", + "

155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

" ] }, { @@ -780,6 +944,28 @@ "

We have no documentary proof of when Webern made the fair copies of his two new songs, nor when he decided to reverse the order of the second and third songs when concluding this new opus (which was contrary both to their order in Die Freude and to the order in which he had composed them). Webern no longer mentions this project in his letters from December 1934 onwards. Instead, he seems to have been especially preoccupied with his arrangement of the Fuga (Ricercata) a 6 voci from Bach’s Musical Offering (M 323). He probably completed his fair copy of the complete collection of songs that he now numbered Op. 25 (E) by the end of 1934 at the latest.

", "

In mid-October 1938, Webern wrote to Erwin Stein, a former student of Schoenberg’s who had worked for Universal Edition, had recently emigrated to London, and had now taken up a job as an editor for Boosey & Hawkes. He mentioned his “Three Songs with Piano, Op. 25, on poems of H. Jone” as being “a book of songs not yet printed nor yet accepted by any publisher”.170 We do not know if Webern had already offered them to Universal Edition. It was not until Webern’s 60th birthday in 1943 – presumably in connection with a possible performance (see below) – that Universal held out to Webern the prospect of publishing these songs, though nothing came of it during Webern’s lifetime.171 This opus was only published by Universal Edition in 1956, long after Webern’s death.

", "

The world premiere of these Three Songs, Op. 25, together with that of the Three Songs, Op. 23, was planned for a concert of the Basel section of the ISCM, held on 5 December 1943, with Marguerite Gradmann-Lüscher accompanied by Paul Baumgartner. In order to facilitate this performance, Universal Edition apparently made two photographic copies of Webern’s autograph (since lost) and presumably sent them to Erich Schmid.172 But the Three Songs, Op. 25 were not performed on that occasion. When readings of Jone’s poetry were being organized at an “Evening of contemporary poetry” to be held at the Archbishop’s Palace in Vienna on 29 November 1944, Jone and Webern for some time harboured the plan of including a performance of both the Three Songs, Op. 23 and the Three Songs, Op. 25.173 They were to have been performed by an unnamed “Swedish singer” accompanied by Webern’s student Fré Focke, who also began rehearsing the works together.174 Ultimately, however, this performance never took place. The world premiere was only given posthumously, on 16 March 1952 in New York, with Bethany Beardslee accompanied by Jacques Monod at the piano.175

" + ], + "blockNotes": [ + "

156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).

", + "

157 | Ibid.

", + "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.

", + "

159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”

", + "

160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.

", + "

161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).

", + "

162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).

", + "

163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).

", + "

164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”

", + "

165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.

", + "

166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).

", + "

167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.

", + "

168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”

", + "

169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”

", + "

170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.

", + "

171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”

", + "

172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EF1–F2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.

", + "

173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”

", + "

174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", + "

175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f.

" ] }, { @@ -791,7 +977,8 @@ "

In the case of the various collections of George songs in particular that Webern conceived between 1909 and 1919, it is not always possible to reconstruct unambiguously which versions of which songs were intended in what order, so the different versions that are nevertheless decipherable in the sources are presented in chronological order in the printed edition here, while the songs themselves are presented in alphabetical order according to their respective title.

", "

As a rule, Webern’s numerous versions of his George songs adopted the poet’s spellings (especially his frequent lack of capitalization for nouns) and the occasionally sparse punctuation of his original poems. These idiosyncrasies have been retained in our text editions here. Any additions or corrections made here to the song texts are similarly oriented on George’s original poems, and are listed in the Critical Notes (Textkritische Anmerkungen). Any cases of divergence from the original poem are denoted by “sic” in the Critical Notes.

", "

In comparison to the George songs, there are comparatively few early versions of the individual songs that make up the Four Songs, Op. 12, and the Three Songs, Op. 25, but they have been dealt with in similar fashion here with regard to the order of their respective text editions. Even though the idiosyncrasies of the respective source texts for these editions are not as characteristic as in the case of George’s poems, we have applied the same principles to our editorial treatment of the vocal text.

" - ] + ], + "blockNotes": [] }, { "blockId": "acknowledgements", @@ -805,185 +992,9 @@ "

Basel, 14 May 2024 Thomas Ahrend

", "

Translation: Chris Walton

" - ] + ], + "blockNotes": [] } - ], - "notes": [ - "

1 | Anton Webern, “Drei frühe Tagebücher”, transcribed and with commentary by Barbara Schingnitz, in: Der junge Webern. Texte und Kontexte, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2015 (Webern-Studien 2b), pp. 215–324, here 265 (Tagebuch II, fol. 19r–19v). Webern did not, however, copy this poem from George’s collection Das Jahr der Seele (Berlin: Blätter für die Kunst, 1897, pp. [21 f.]), but rather from Ernst von Wolzogen’s novel Das dritte Geschlecht (Berlin: Eckstein, [1899], p. 103), where it is quoted in a subtly altered version. See the commentary on Webern, “Drei frühe Tagebücher”, p. 305, and Cornelia Bartsch, “‘Bis endlich das Weib vor Weh vergeht…’ Geschlechtererzählungen des jungen Anton Webern”, in: Der junge Webern. Texte und Kontexte, pp. 169–197, especially pp. 196 f.

", - "

2 | For example, on 11 February and 3 December 1904. See Conrad Ansorge 1862–1930. Ein Pianist des Fin de siècle in Berlin und Wien, ed. Eike Rathgeber, Christian Heitler and Manuela Schwartz, Vienna: Böhlau, 2017, pp. 421 f. and 425. See this book also for further information on Webern’s activities in the Viennese Ansorge Society.

", - "

3 | Stefan George, Das Jahr der Seele, Berlin: Bondi, 31904, pp. 14 (Ja heil und dank dir…), 30 (Noch zwingt mich treue…) and 118 (Ihr tratet zu dem herde): George_DJdS; Stefan George, Die Bücher der Hirten- und Preisgedichte der Sagen und Sänge und der hängenden Gärten, Berlin: Bondi, 31907, p. 74 (So ich traurig bin): George_DBdH; Stefan George, Der siebente Ring, Berlin: Blätter für die Kunst, 1907, pp. 126 (Eingang) and 157–161 (Dies ist ein lied, Im windes-weben, An baches ranft, Im morgen-taun, Kahl reckt der baum): George_DsR. Webern’s copies are held by CH-Bps, Anton Webern Collection (PSS AW B 1039–1041).

", - "

4 | Albrecht Dümling has discerned biographical connections with the death of Webern’s mother in 1906 and the mourning motif that runs through most of the George poems that he set to music. See “‘Dies ist ein Lied für dich allein’. Zu einigen Motiven von Weberns Textwahl”, in: Anton Webern I, ed. Heinz Klaus Metzger and Rainer Riehn, Munich: edition text + kritik, 1983 (Musik-Konzepte Sonderband), pp. 251–261.

", - "

5 | See Arnold Schoenberg, Lieder mit Klavierbegleitung, critical report, ed. Christian Martin Schmidt, Mainz 1989 (Complete Works Section I Series B 1/2 Part 1), pp. 171–176 and pp. 182–217.

", - "

6 | Webern to Schoenberg, 11 June 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 18181]): “Since you asked me yesterday how I liked your songs: I couldn’t quite say, i. e. express the impression that they made on me. It was very stupid the way I said it. But please believe me that your work and especially these new songs are my only, wonderful role models.”

", - "

7 | See Thomas Ahrend, “Zu Anton Weberns George-Vertonung ‘Erwachen aus dem tiefsten Traumesschoße’. Eine Spurensuche”, in: Jahrbuch des Staatlichen Instituts für Musikforschung Preußischer Kulturbesitz 2011, ed. Simone Hohmaier, Mainz: Schott, 2011, pp. 53–74, here pp. 66 ff.

", - "

8 | Webern to Schoenberg, 13 December 1908 (US-Wc [cited as in the digitized copy in A-Was: ID 21729]).

", - "

9 | All the same, Webern later compiled song collections using these Dehmel songs, though he did not publish them. See Mathew R. Shaftel, “Anton Webern’s Complete Early Songs (1899–1909)”, in: The Anton Webern Collection. Early Vocal Music, ed. Shaftel, New York: Carl Fischer, 2004, pp. iii–xiii, here p. xiii.

", - "

10 | Webern to Jalowetz, 25 May 1909 (Anton Webern, Briefe an Heinrich Jalowetz, ed. Ernst Lichtenhahn, Mainz: Schott, 1999 [Veröffentlichungen der Paul Sacher Stiftung 7], p. 129).

", - "

11 | Webern to Schoenberg, 16 June 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21801]): “I have already written a whole string quartet. It has 5 movements. [...] This Saturday I’m going to Klagenfurt with my father, which we’ll use as our base for a few small excursions along the Wörtersee [sic] and into the Karawank Mountains. I’ll be back here by the middle of next week. Then I first want to write a few songs[.] Then [something] for orchestra. I can hardly wait.”

", - "

12 | Webern to Schoenberg, 10 July 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21731]).

", - "

13 | Webern to Schoenberg, 20 August 1909 (US-Wc [cited as in the digitized copy in A-Was: ID 21809]).

", - "

14 | See Thomas Ahrend and Michelle Ziegler, “Anton Webern: Dies ist ein Lied M 133. Impuls [Ahrend]: Flüchtige Reinschrift oder sorgfältige Skizze? Überlegungen zu Anton Weberns frühester Niederschrift von Dies ist ein Lied M 133. Respondenz [Ziegler]: Bleistiftglück und Tintenbestimmtheit. Gedanken zu den Schreibstoffen im Kompositionsprozess von Anton Weberns Dies ist ein Lied”, in: Journal of the Arnold Schönberg Center 17 (2020), pp. 160–182.

", - "

15 | [Programme:] “Verein für Kunst und Kultur. Kammermusik- und Liederabend moderner Komponisten, Wien, 8. Februar 1910”, US-NH, Karl Weigl Papers (MSS 73). Digital copy at: https://ark.dasch.swiss/ark:/72163/1/0806/EILT3bp7Sc2m9_8wWrVvsgb.20161121T080801Z. The Fünf Gesänge für eine tiefe Stimme by Franz Schreker that are also mentioned on this programme, to be performed by Theo Drill-Orridge and Clemens Kraus [sic, i. e. Clemens Krauss?] were left out because of an injunction against the singer; see r. h., “Feuilleton. Von neuen Tonwerken”, in: Wiener Zeitung, 17 February 1910 (Wiener Abendpost), pp. 1–2, here p. 2.

", - "

16 | See also Julius Korngold, “Feuilleton. Musik. (Philharmonisches Konzert. – Konzertverein. – Arnold[-]Schönberg-Abend.)”, in: Neue Freie Presse, 26 January 1910 (morning edition), pp. 1–3, here p. 3: “In [Schoenberg’s] George songs[...] a psalmodizing singing voice joins in the sounds and sequences of the new Schoenbergian grammar. Except that here, the words communicate and provide expression, albeit too insistently in the manner of pretentious, morbidly sensitive moods.”

", - "

17 | Julius Korngold, “Feuilleton. Novitäten im Konzertsaale”, in: Neue Freie Presse, 16 February 1910 (morning edition), pp. 1–3, here pp. 1–2. (“Oktave Mirbeau’s painter” is presumably the protagonist from Octave Mirbeau’s novel Dans le ciel [L’Écho de Paris 1892–1893].) For further reviews, see also Richard Specht, “Konzerte”, in: Der Merker 1 (1909/10), No. 10, p. 437, and r. h., “Feuilleton” (see note 15).

", - "

18 | Both these leaves are held by CH-Bps, Anton Webern Collection. Facsimiles have been published in Ahrend, “Spurensuche” (see note 7), pp. 62 f. The order of these songs, without regard to the original spelling of the titles or to the annotations in them (see below), was already established by Moldenhauer in his “Prefatory Note” to Anton Webern, Four Stefan George Songs, ed. Peter Westergaard, New York: Carl Fischer, 1970, p. ii, and in Hans and Rosaleen Moldenhauer, Anton von Webern. A Chronicle of His Life and Work, London: Victor Gollancz, 1978, p. 118 f. See also the introduction to The Anton Webern Collection, ed. Mathew R. Shaftel, New York: Carl Fischer, 2004, p. xiii, who refers to the deletions made in the list for “Op. 4”, though he does not mention the annotations.

", - "

19 | The lists were written on different types of paper; red ink was used for “Op. 2”, black ink for “Op. 4”; “Op. 2” was written mostly in German cursive script, whereas “Op. 4” uses cursive and Latin letters alternately; and the titles of the poetic cycles in George are only given in the case of “Op. 4”.

", - "

20 | It is possible that the inclusion of Eingang M 138, “Im Morgentaun” M 136 and “Kahl reckt der Baum” M 137 in “Op. 2” indicates that the first versions of these songs – regardless of their writing style and the type of paper used – were in fact written before Trauer I M 145, which is at the head of the list of songs for “Op. 4”; in other words, they were written before the end of May 1909. However, it is notable that both collections contain an equal number of songs (seven each), which would seem to be a counterargument against Webern having made a purely chronological selection for these two collections.

", - "

21 | In fact, the vertical stroke of this angle mark is the longest when compared with the others, i. e. it extends the farthest beyond the line in question. The form of this marking could well be understood as referring to both lines. For further possible interpretations, also of the other markings, see Ahrend, “Spurensuche” (see note 7), pp. 60–66.

", - "

22 | See Schoenberg to Hertzka, 7 October 1909 (cited as in Julia Bungardt, “Einleitung”, in: Anton Webern, Briefwechsel mit der Universal-Edition, ed. Julia Bungardt, Vienna: Lafite, 2020 [Webern-Studien 5], p. 12): “Dear Director, as arranged, I hereby inform you that I shall visit you on Sunday morning at about 11:30 a.m., together with my pupil Dr Anton von Webern, in order to play you my piano pieces and compositions by Webern. […].”

", - "

23 | See the explanations in Moldenhauer, Anton von Webern (note 18), p. 722 f., who tends to a contrary opinion. Regarding “Erwachen aus dem tiefsten Traumesschoße” and Kunfttag I, he writes: “originally planned for Op. 3”, and for Trauer I and “Das lockere Saatgefilde”, “originally planned for Op. 4”.

", - "

24 | For a contrary opinion, however, see Robert W. Wason, “A Pitch-Class Motive in Webern’s George Lieder, Op. 3”, in: Webern Studies, ed. Kathryn Bailey, Cambridge: Cambridge University Press, 1996, pp. 111–134, here p. 133: “[A]fter all, it seems likely that Webern would have set George’s lieder in continuity; moreover, Webern may well have experimented with various orderings later on, after having composed all fourteen songs, only to return to his initial conception for publication.”

", - "

25 | The cycle Lieder in George’s Der siebente Ring is divided into a “Vorklang” (“prelude”) and several numbered sequences of poems plus individual poems. In his Op. 3, Webern arranged his first to fifth songs in the same order as in their source; they were all taken from the first sequence of George’s Lieder, namely “Lieder I–VI”. He did not set the sixth song of the sequence, “Kreuz der strasse ...”. The designation “(Lieder I–IV)” after “An bachesranft....” in Webern’s list for his Seven Songs “Op. 4” is probably a mistake, the intended designation being “I–VI”.

", - "

26 | Webern to Schoenberg, 5 June 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21863]): “I’m quickly organizing a copy of my quartet myself and will send it, the violin piece[s] and some 10 songs.” See also Moldenhauer, Anton von Webern (note 18), p. 145.

", - "

27 | See Webern to Schoenberg, 30 September 1911 (US-Wc [cited as in the digitized copy in A-Was: ID 21900]): “The ‘Dreililien’ publishing house has sent my things back. They ‘unfortunately’ could not decide to [publish them]. I will now send them to D[r] Tischer.”. – See also Webern to Jalowetz, 23 October 1911 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 168–171, here p. 169: “[…] I have sent Dr Tischer several things for his publishing house (prompted by Schoenberg).” Moldenhauer, Anton von Webern (note 18), p. 155, and the commentary to Webern, Briefe an Heinrich Jalowetz [note 10], p. 172, write of “nine George songs”.

", - "

28 | See Webern to Gerhard Tischer (Tischer & Jagenberg), 2 January 1912 (Moldenhauer, Anton von Webern [note 18], p. 140): “I regret very much that you are not accepting my compositions for publication”, and Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8): “Dr Tischer has sent my music back to me. So I’ve been rejected for the third time.” Webern is presumably counting the meeting that Schoenberg organized with Hertzka on 9 October 1909 (see above, note 22) as the first of these attempts to get a publisher.

", - "

29 | Webern to Königer, 23 November 1911 (A-Wn, HS 975/7–6). The “sketch” mentioned in this passage from the letter remains unidentified. As far as we can determine, Webern did not copy out the song again, and it is unclear as to whether the sketch he mentions actually existed. See also Stefan Münnich, “Quellenverluste (Deperdita) als methodologischer Unsicherheitsbereich für Editorik und Datenmodellierung am Beispiel von Anton Webern’s George-Lied op. 4 Nr. 5”, in: Die Modellierung des Zweifels – Schlüsselideen und -konzepte zur graphbasierten Modellierung von Unsicherheiten, ed. Andreas Kuczera, Thorsten Wübbena and Thomas Kollatz, Wolfenbüttel: Forschungsverbund Marbach Weimar Wolfenbüttel, 2019 (Zeitschrift für digitale Geisteswissenschaften / Sonderbände 4), online resource, DOI: 10.17175/sb004_005. In our Critical Report, we refrain from hypostatizing the possible existence of this further, inextant source.

", - "

30 | Webern to Königer, 11 January 1912 (A-Wn, HS 975/7–8).

", - "

31 | Webern to Berg, 25 January 1912 (cited as in Briefwechsel Anton Webern – Alban Berg, ed. Simone Hohmaier and Rudolf Stephan [Briefwechsel der Wiener Schule 4], publication in preparation): “The day before yesterday I got the proofs of my song that will appear in the ‘blauer Reiter’. Did you also get [the proofs of] your song? Schoenberg is bringing his new song ‘Herzgewächse’.”

", - "

32 | Webern to Schoenberg, 13 June 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21913]): “I have finally received the ‘blauer Reiter’.”

", - "

33 | Webern to Berg, 19 February 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]). Schoenberg’s Second String Quartet, Op. 10, had been published using the Straube lithographic press in February 1909. The “first” Quartet refers to Webern’s Five Movements for String Quartet M 147–151, to distinguish these from his Four Pieces for String Quartet M 171–174, composed in 1911, which in their later versions became four of his Six Bagatelles for String Quartet, Op. 9. His “older 6 orchestral pieces” M 152–157 are similarly to be differentiated from his orchestral pieces M 169170, also composed in 1911, which were later subsumed into his Five Pieces for Orchestra, Op. 10.
See also Webern to Königer, 20 February 1912 (A-Wn, HS 975/7–10). The sequence of the compositions mentioned in these letters provides us with the following series of opus numbers: Passacaglia (Op. 1), “9 Songs” (Op. 2), String Quartet (Op. 3) and Pieces for Orchestra (Op. 4).

", - "

34 | Arnold Schoenberg, Berliner Tagebuch, ed. Josef Rufer, Frankfurt am Main: Propyläen, 1974, p. 25 (15 February 1912). See also ibid., p. 20 (5 February 1912): “Looked at Webern’s ‘Passacaglia’. Truly excellent. Very good and highly original. Webern will surely become something extraordinary”, and ibid., p. 27 (17 February 1912): “The Weberns visit us on the evening. They play a very beautiful song by Webern that Winternitz sang back then. I only see now how beautiful it is. A true song; and [I see how] Winternitz sang it equally without meaning and soul, just as she sang my George songs.”

", - "

35 | Webern to Schoenberg, 9 August 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21931]). Schoenberg had already written to Simrock, recommending Webern’s compositions to them (see Bungardt, “Einleitung” [note 22], pp. 14 f.).

", - "

36 | Webern to Schoenberg, 10 September 1912 (US-Wc [cited as in the digitized copy in A-Was: ID 21939]): “[…] I got my compositions back from Simrock today. He writes that he can’t publish them.”

", - "

37 | See Webern to Schoenberg, 4 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21970]): “I will soon send my songs (a selection of them) to this publisher. Perhaps something will come of it after all”, and Webern to Schoenberg, 20 January 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 21975]): “Today I am finally sending my songs to Gadow in Hildburghausen. I am eager [to know] if something will come of it.” For information on the publishing house Gadow, which is barely known today, see Rudolf Schmidt, Deutsche Buchhändler. Deutsche Buchdrucker, vol. 6, Eberswalde: n. n., 1908, p. 1072: “Besides publishing 7,600 copies of the ‘Tägliche Nachrichten’ and the ‘Hildburghäuser Kreisblatt’ [...], this company is primarily engaged in publishing schoolbooks, collections of songs for choir, and calendars. This printing company prints books, commercial materials and especially music.”

", - "

38 | See Hertzka to Schoenberg, 24 June 1914 (cited as in Bungardt, “Einleitung” [note 22], p. 24): “If general conditions have improved by next year and the Amsterdam performance of the orchestral pieces (Webern’s) or any other performances of Webern will have taken place, then I shall accept something of his for Universal Edition, because I know that this will make you happy.”

", - "

39 | Webern to Jalowetz, 28 June 1914 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 311). See also Webern to Schoenberg, 25 June 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18255]): “Oh, God, this is wonderful. So I’ll have to wait until the second half of next year. Hertzka promised me that he will definitely publish something around that time; the chorus and a volume of songs or the violin pieces.”

", - "

40 | See Bungardt, “Einleitung” [note 22), pp. 25 f.: “Given the new situation, the company’s priorities shifted with regard to how they might utilize their available capacity for promising and ‘contemporary’ projects and products, which now primarily comprised ‘war music’ and works of music theatre. In 1915 and in the subsequent war years, they accordingly signed initial contracts with composers who were ‘new to our publishing house’. However, contributions by Webern to those genres were neither forthcoming, nor to be expected.”

", - "

41 | Das moderne Lied. Eine Sammlung von 50 Gesängen für mittlere Stimme, ed. Josef V. v. Wöss, Vienna: Universal Edition, 1915. See also Berg to Schoenberg, 20 July 1914 (cited as in Briefwechsel Arnold Schönberg – Alban Berg, ed. Juliane Brand, Christopher Hailey and Andreas Mayer [Briefwechsel der Wiener Schule 3], vol. 1, p. 492): “Anyway, we’ll be writing to Webern for a song. I think he’ll send one of his George songs.”

", - "

42 | See Webern to Hertzka, 23 July 1914 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 87): “In response to your letter of 20 July, I am sending you 3 songs of mine to choose from. I hope that these songs are short enough.” See also Webern to Hertzka, 29 September 1914 (ibid., pp. 87 f.): “Please let me know whether the two songs of mine that I sent to Universal-Edition in July at their request for possible inclusion in their collection ‘Das moderne Lied’ are still needed. If not, please send the songs back to me as soon as possible. I have no other copies of them.” It is unclear why Webern only mentions two songs here, not three.

", - "

43 | See Kalmus to Berg, 27 July 1914 (cited as in Bungardt, “Einleitung” (note 22), p. 25): “[…] including your song (and also the song by Dr v. Webern) [would] entail rearranging the content of the whole volume [...], meaning that we would have to organize a very different order for the songs that are already being engraved […].”

", - "

44 | This title page is also mentioned by Elmar Budde (though without any reference to the corrected opus number): Anton Weberns Lieder op. 3. Untersuchungen zur frühen Atonalität bei Webern, Wiesbaden: Steiner, 1971 (Beihefte zum Archiv für Musikwissenschaft 9), p. 13, and Moldenhauer, Anton von Webern (note 18), p. 119. The same title page also bears the title – written and framed in pencil – “5 Lieder | op. 4 [corrected from ‘5’]”, which presumably refers to the Five Songs on Poems of Stefan George that were published as Op. 4 in 1923. The entire page has been crossed out several times, and it is part of the back page of a sheet of paper used as a cover for the fair copy of the Five Songs, Op. 4, in H.

", - "

45 | See Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332–334, here p. 333: “I had been busy with revising, partially reworking, re-orchestrating and copying my previous things etc. Now, I think, everything is in order, as far as I’m able to judge it myself.”

", - "

46 | This concert ultimately featured again Webern’s Five Movements for String Quartet M 147–151 and the first performance of his Four Pieces for Violin and Piano M 161–164. See “Neue Kompositionen von Alban Berg, Karl Horwitz und Anton von Webern”, 24 April 1911, Vienna, Ehrbar Hall. Reprint of the programme in Alban Berg, ed. Erich Alban Berg, Leben und Werk in Daten und Bildern, Frankfurt am Main: Insel, 1976, p. 119. See also Webern to Berg, 14 April 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I don’t have my songs here at all; they are in Berlin with my wife. And she is at present in a sanatorium; apart from a woman caretaker, no one is there who could get into the apartment. And it will be too late by the time I come to Vienna. This young lady will hardly be able to learn these songs in 3 days. It won’t be possible like that.” We do not know who had been proposed to sing these songs.

", - "

47 | Webern to Berg, 2 June 1912 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I think it would work quite well to do 4 of my songs instead of my violin pieces (if they are not possible). [...] I think that it’ll be OK with Winternitz if she sings something else that evening. [...] But hopefully it will all be unnecessary, and Rosé will play.”

", - "

48 | Webern to Schoenberg, 7 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22024]).

", - "

49 | See e. g. Neue Freie Presse, 20 February 1913, p. 13.

", - "

50 | See e. g. “Große Lärmszenen im Musikvereinssaale. Bei einem Arnold[-]Schönberg-Konzert”, in: Neue Freie Presse, 1 April 1913, p. 13.

", - "

51 | See the leaf inserted before fol. 1 in C: “Le manuscript fut venus à Marya Freund vers 1914.” If this date is correct, this would also be a terminus ante quem for the composition of version 3 of the song in C and the corresponding layer of corrections in F. This note was presumably made by Freund’s son, Dodo Conrad (“D. C.”).

", - "

52 | See Webern to Schoenberg, 12 October 1913 (US-Wc [cited as in the digitized copy in A-Was: ID 22025]): “We will shorten the programme. Perhaps without the vocal stuff.”

", - "

53 | Verein für musikalische Privataufführungen in Wien, “Mitteilungen Nr. 5”, 16 March 1919 (A-Was, Resource ID 4957), pp. 2 and 7 (programme No. 45): “Four Songs, Op. 3, from Der siebente Ring by Stefan George”. We know nothing about why the song was omitted that was later made No. 3. It is possible that Webern’s idea for this collection at that time indeed only encompassed four songs, and that he changed the number for the repeat performance and for the work’s publication (which he might well have only begun to plan at this time).

", - "

54 | See Gottfried Kassowitz to Berg, 7 June 1919 (A-Wn, F21.Berg.920/15 Mus Mag): “The performance of the Webern songs was again quite wonderful [...]. [...] Should I have sent you the Webern songs? [...] They were available for sale punctually yesterday, in time for the performance, and they have come out very well, both in their extremely clear, beautiful engraving and in their very beautiful external appearance.” See also Berg to Webern, 18 June 1919 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I finally have the engraved songs too! They have turned out very beautiful. I am really happy about them. These songs and Pierrot are now the only scores that I have here.”

", - "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", - "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", - "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", - "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", - "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", - "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", - "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", - "

62 | See Ivan Vojtěch, “Die Konzerte des Prager Vereins”, in: Schönbergs Verein für musikalische Privataufführungen, ed. Horst Weber, Munich: edition text + kritik, 1984, pp. 115–118, here p. 115.

", - "

63 | See Webern to Hertzka, 21 March 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 106 f., here p. 107): “[…] Mrs Herlinger sang songs by me”, and the commentary by the editor.

", - "

64 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936. Shaping a Nation’s Tastes, Cambridge: Cambridge University Press, 1999 (Music in the Twentieth Century 10), p. 345.

", - "

65 | See Moldenhauer, Anton von Webern (note 18), pp. 265 f.

", - "

66 | See the facsimile of the programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", - "

67 | See Universal Edition (Erwin Stein) to Webern, 18 November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", - "

68 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", - "

69 | See Webern to Hildegard Jone, 10 December 1934 (A-Wn, HS 431/1–143): “On Monday, the 17th, in a concert of the Verein f. neue Musik [...] Ms. Mihascek [sic] [...] will sing my Songs Op. 3; (there are five); Steuermann will be accompanying. Ms. Mihascek [sic] was the first to sing the complete opus of these songs back then. I think she will do it beautifully again.” See also [Paul Stefan], “Konzert-Tagebuch”, in: Die Stunde, 19 December 1934, p. 4. See also Moldenhauer, Anton von Webern (note 18), p. 419.

", - "

70 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", - "

71 | See Erich Schmid, Lebenserinnerungen, vol. 1: “Autobiographie”, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection of Webern’s songs that the same performers had included in their concert of 10 February 1940 in Basel.

", - "

72 | See Moldenhauer, Anton von Webern (note 18), pp. 553 f. This concert included the world premiere of the Three Songs Op. 23 by the same two performers.

", - "

73 | Regarding these stations in Webern’s biography during the war, see Moldenhauer, Anton von Webern (note 18), pp. 174–189 and 209–222.

", - "

74 | Webern to Jalowetz, 18 December 1914, in Webern, Briefe an Heinrich Jalowetz [note 10], pp. 329 f., here p. 329). It is possible that Webern is here referring to several fragments that were placed immediately before “Der Tag ist vergangen” M 212 in Moldenhauer’s work catalogue and dated by him “1914” or “1914 or later”, i. e. M 207–211. See Moldenhauer, Anton von Webern (note 18), pp. 702 and 736–739.

", - "

75 | Webern to Jalowetz, 10 January 1915 (Webern, Briefe an Heinrich Jalowetz [note 10], pp. 332 f., here p. 333).

", - "

76 | First published in Vienna: A. Hartleben, 1891. Webern presumably used the revised version of the novel as published in vol. 19 of Rosegger’s “Collected Works”, Leipzig: Staackmann, 1914, p. 214 (“Der Tag ist vergangen …”): Rosegger_PM. See Elisabeth Kaiser, Rosegger-Rezeption bei Anton Webern, Frankfurt am Main: Peter Lang, 2013, p. 77.

", - "

77 | Webern to Schoenberg, 9 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18237]).

", - "

78 | For an overview of the works by Rosegger that Webern is proven to have read, see Kaiser, Rosegger-Rezeption, (note 76), pp. 38–41. On 3 September 1914, Webern wrote enthusiastically to Berg that he had seen the writer on a train journey from Klagenfurt to Vienna (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “I saw Rosegger in Krieglach (on the return journey)[.] Wonderful. He travelled for one stop on the same train: to Langenwang.”

", - "

79 | See Kaiser, Rosegger-Rezeption (note 76), pp. 76 f.

", - "

80 | The text section of this journal writes the following about this song (N. N., “Anton v. Webern”, in: Musikblätter des Anbruch 4/9–10 [May 1922], p. 150): “Our music supplement provides an insight into the essence of his new compositions.” This music supplement correctly dates the song to 1915, thus seven years earlier.

", - "

81 | Webern to Schoenberg, 21 January 1915 (US-Wc [cited as in the digitized copy in A-Was: ID 18240]).

", - "

82 | August Strindberg, Gespenstersonate, in Strindberg, Kammerspiele, translated into German by Emil Schering, Munich and Leipzig: Georg Müller, 1908 (Strindbergs Werke. Deutsche Gesamtausgabe unter Mitwirkung von Emil Schering als Übersetzer, vom Dichter selbst veranstaltet. I. Abteilung: Dramen. Kammerspiele [9]), [No. 3], p. 46[c] (“Schien mirs, als ich sah die Sonne!”): Strindberg_Gs. Webern’s copy is held by CH-Bps, Anton Webern Collection, and bears the shelfmark AW B 1129. The manuscript date is given on p. [6].

", - "

83 | Regarding the “influence of Strindberg” on Webern, see Ernst Lichtenhahn, “Einleitung”, in: Webern, Briefe an Heinrich Jalowetz (note 10), pp. 9–108, here pp. 80–88.

", - "

84 | Webern to Jalowetz, 28 January 1917 (Webern, Briefe an Heinrich Jalowetz [note 10], p. 355).

", - "

85 | In Moldenhauer, Anton von Webern (note 18), pp. 700 and 720, Blumengruß is designated “M 21”. This was corrected in the German edition (Anton von Webern. Chronik seines Lebens und Werkes, Zurich: Atlantis, 1980, pp. 640 and 651).

", - "

86 | See e. g. Webern to Berg, 21 December 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]: “I’m reading ‘Wilhelm Meister’ and am absolutely delighted by this book.”

", - "

87 | Gleich und Gleich is found in vol. 1, Gedichte. Erster Teil, p. 19: Goethe_JA. No copies of this edition are known to be extant that might have been in Webern’s possession. The list is held by CH-Bps, Anton Webern Collection.

", - "

88 | See Moldenhauer, Anton von Webern (note 18), p. 276. It was Moldenhauer who brought together these two compositions as “Two Goethe Songs” (ibid. p. 661); there is no documentary evidence in the sources to justify his having done so.

", - "

89 | Anton Webern, Wege zur neuen Musik, ed. Willi Reich, Vienna: Universal Edition, 1960, p. 55 (lecture of 12 February 1932).

", - "

90 | Hans Bethge, Die chinesische Flöte, Leipzig: Inselverlag, 4[1914] p. 35 (Die geheimnisvolle Flöte): Bethge_DchF. Webern’s copy is held in CH-Bps, Anton Webern Collection, shelfmark AW B 1027.

", - "

91 | Webern in fact already knew the texts that Mahler had set in Das Lied von der Erde before that work was given its first performance. See Webern to Berg, 30 October 1911 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]): “When you’ve read the close of the texts of the ‘Lied von der Erde’ on the enclosed sheet, my dear, don’t you then expect the most wonderful music in existence; something so magnificent that it has never existed before. ‘Oh, my friend, fortune was not fair to me in this world! Wherever I go and wander in the mountains, I seek rest, rest for my lonely heart!...’ For heaven’s sake, what music this must be! I imagine I ought to be able to think of it already, before even having heard it. Goodness, can you stand it? I can’t.” Regarding the intense impression that Mahler’s composition made on Webern, also in the context of its supposedly ‘Chinese’ texts, see Matthias Schmidt, “Übersetzung ohne Original? Gustav Mahler, Anton Webern und Li Bai”, in: Der doppelte Po und die Musik. Chinesisch-Rätoromanische Studien, besonders zu Li Po, Harry Partch und Chasper Po, ed. Mathias Gredig, Marc Winter, Rico Valär and Roman Brotbeck, with editorial assistance from Daniel Allenbach, Würzburg: Königshausen & Neumann, 2021, pp. 281–299.

", - "

92 | A-Wst, on deposit from Universal Edition, Anton Webern. The list is given as an illustration and transcribed in Julia Bungardt, “Einleitung” (note 22), pp. 28 f. This worklist extends as far as the Trakl songs Op. 14, here given as “Op. 12”.

", - "

93 | Near this correction, we can also discern “13” in a further layer that has been erased.

", - "

94 | Egon Wellesz, “Anton von Webern: Lieder opus 12, 13, 14”, in: Melos 2/2 (February 1921), pp. 38–40. See also Webern to Jalowetz, 13 March 1921 (Webern, Briefe an Heinrich Jalowetz [note 10, p. 481): “There was an article by Wellesz in Scherchen’s journal about my songs Opp. 12, 13 and 14. That really pleased me.”

", - "

95 | Webern to Hertzka, 3 January 1925 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 101–104, here p. 101). See also Webern to Hertzka, 21 March 1925 (ibid., pp. 106 f., here p. 106): “Already in early January, I brought you a booklet of 4 songs with piano, Op. 12, and you held out the prospect to me that they would appear soon.” An initial contract dates from 5 February 1925 and a revised contract from 3 April 1925.

", - "

96 | See Webern to Universal Edition, 12 June and 20 June 1925 (ibid., pp. 110 f.).

", - "

97 | See ibid. (Appendix), pp. 340 f.

", - "

98 | Berg to Webern, 12 October 1925 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", - "

99 | See the announcement of the concert in: Neue Freie Presse, 5 January 1927, p. 9. According to a review of the world premiere of Berg’s Lyric Suite, it was preceded by Ludwig van Beethoven’s Piano Trio in E-flat Major, Op. 70, No. 2 (see Neues Wiener Journal, 12 January 1927, p. 11; there is no mention here of either Webern’s songs or Bach’s concerto). According to an announcement in: Die Stunde, 9 January 1927, p. 1, Co van Geuns sang “songs by Anton Webern” again the next day in the small hall of the Musikverein. We have no details of this concert. In a letter to Jalowetz of 20 December 1926, Webern wrote of a total of six songs that were to be performed the following January: “In January, a Dutch singer will sing 6 songs by me here in Vienna.” (Webern, Briefe an Heinrich Jalowetz [note 10], p. 570). It is possible that van Geuns had prepared Op. 12 and a selection of Webern’s George songs.

", - "

100 | Webern to Schoenberg, 17 January 1927 (US-Wc [cited as in the digitized copy in A-Was: ID 22230]).

", - "

101 | pp. [Paul Pisk], “Neue Musik im Konzertsaal”, in: Arbeiter-Zeitung [Vienna], 11 January 1927, p. 7.

", - "

102 | Anton Webern, notebook (CH-Bps, Anton Webern Collection). Cited as in Moldenhauer, Anton von Webern (note 18), p. 265. We have no details about this concert.

", - "

103 | N. N., “Konzertierende Künstler und neue Musik”, in: Musikblätter des Anbruch 9/3 (March 1927), p. 153: “Co van  G e u n s  sang songs by Webern and Zemlinsky with success in Cologne.” See also Webern, Briefe an Heinrich Jalowetz (note 10), p. 572.

", - "

104 | See Jennifer Doctor, The BBC and Ultra-Modern Music, 1922–1936 (note 64), p. 345.

", - "

105 | See Moldenhauer, Anton von Webern (note 18), p. 265. See also ibid., p. 266: “The same year, three of the Four Songs were heard in Frankfurt.”

", - "

106 | See the facsimile of the complete programme in Moldenhauer, Anton von Webern (note 18), p. 358.

", - "

107 | See Universal Edition (Erwin Stein) to Webern, 18. November 1931 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 171 f., here p. 171): “[…] Amsterdam performed your 4 Songs Op. 12 and 2 songs from Op. 3 (I haven’t yet been able to find out which) on the 18th of this month”, plus the commentary of the editor.

", - "

108 | See Moldenhauer, Anton von Webern (note 18), p. 403.

", - "

109 | See Webern to Josef Humplik, 8 May 1935 (A-Wn, HS 431/1–157): “Tomorrow evening, at 6:30, songs by Schoenberg, Berg and myself [the Four Songs, Op. 12] will be sung [...] at an event of the Hertzka Memorial Foundation.” We know that the singer was Nessy, given the connection with the performance of the Four Songs, Op. 12, on 21 November 1935 (see note 110 below). We can no longer determine who played the piano accompaniment.

", - "

110 | See H. E. H., “Neue Musik im Hagenbund”, in: Wiener Zeitung, 23 November 1935, p. 9. The pianists for this concert were Olga Novacovic and Eduard Steuermann, though we are unable to determine which of them accompanied Webern’s songs. In Anton von Webern (note 18), p. 451, Moldenhauer erroneously states that Webern’s Concerto, Op. 24, was also performed at this concert, under the baton of the composer. In fact, Webern had announced this work for the concert programme but had then withdrawn it, and the Four Songs, Op. 12, served as its substitute. See Webern to Jone and Humplik, 20 November 1935 (A-Wn, HS 431/1–169): “Now I have to inform you that I have withdrawn my Concerto tomorrow [...]. [...] It is possible that the songs that you heard in May this year will be performed instead of the Concerto [since the same singer will be performing anyway].” See also the commentary of the editor in Briefwechsel Anton Webern und Minna Webern – Hildegard Jone und Josef Humplik. Korrespondenz 1926–1949, ed. Barbara Schingnitz, doctoral thesis, University of Basel, 2019.

", - "

111 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Schmid, Lebenserinnerungen, vol. 3 (note 61), p. 48.

", - "

112 | See Erich Schmid, Lebenserinnerungen, vol. 1 (note 71), p. 327, and ibid., vol. 3 (note 61), pp. 53 f. The songs performed on this occasion most likely comprised the same selection that the same performers had included in their concert of 10 February 1940 in Basel.

", - "

113 | See Webern to Jone, 6 August 1928 (A-Wn, HS 431/1–11): “Now let’s hope that something will come of our joint work. The fact that the suggestion came from me might let you realize just how dear to me is your way of thinking, indeed how congenial it is. –”

", - "

114 | See Jone to Ludwig von Ficker, 28 November 1928 (Brenner Archive, Innsbruck [cited as in Thomas Reinecke, Hildegard Jone (1891–1963). Untersuchungen zu Leben, Werk und Veröffentlichungskontexten. Zugleich eine Studie zu einigen Figuren im Denken Anton Weberns und den von ihm vertonten Texten, Frankfurt am Main: Peter Lang, 1999, p. 51]): “In the autumn, I wrote three opera texts for Anton Webern, who urgently wrote to me last spring, asking me for something: The Transformation of Love, The Last Encounter, The Spaces of the Interior and its Guests.” A manuscript by Jone entitled Die letzte Begegnung (“The Last Encounter”, with a dedication to Ferdinand Ebner) is held in CH-Bps, Hildegard Jone Collection (TM 26). See also Barbara Schingnitz, [“Einleitung”], in: Briefwechsel Webern und Webern – Jone und Humplik (note 110), pp. LXVII ff.

", - "

115 | Webern to Jone, 17 January 1930 (A-Wn, HS 431/1–35).

", - "

116 | Ibid.: “The fact that you’re repeatedly thinking about writing me a ‘libretto’ makes me very happy.”

", - "

117 | Webern to Jone, 8 September 1930 (A-Wn, HS 431/1–48).

", - "

118 | Ibid.: “Now I am very occupied with the idea of writing a cantata. My request is this: might you want to write such a text for me? Who else could it be, but you, dear Mrs Jone! This idea won’t let go of me, and so I had to say it.” The “idea of writing a cantata” was perhaps also motivated by the fact that Webern was at this time rehearsing Johann Sebastian Bach’s Actus tragicus. See Regina Busch, “Webern, Bach und Kantaten”, in: webern_21, ed. Dominik Schweiger and Nikolaus Urbanek, Vienna: Böhlau, 2009 (Wiener Veröffentlichungen zur Musikgeschichte 8), pp. 221–244.

", - "

119 | See the editor’s occasional references in her commentary to Briefwechsel Webern und Webern – Jone und Humplik (note 110). Regarding the difficulties in identifying individual poems and their different versions (as well as the resulting inaccuracies in much of the relevant research literature), see ibid. (“Exkurs: Problematik der Quellenlage in Jones Nachlass”), p. XXI: “[I]n most cases, the copies of poems and poem collections that were sent to Webern cannot be identified unambiguously, inasmuch as their existence may be deduced from their correspondence. This is because, with a few exceptions, [...] Webern’s archives no longer hold any autograph poems by Jone that are not connected to the context of their composition. Their correspondence also makes it clear that Webern regularly received copies of texts by Jone, and that he returned them after some time (often copying out passages from them for himself); nor can these copies be found, neither in Webern’s archives nor in Jone’s archives.” Webern himself subsequently made a manuscript copy of all the poems by Jone that he had set to music (US-Wc, Moldenhauer Archives 59/2) in preparation for an “Evening of Contemporary Poetry” that he began planning in the early summer of 1944, to be held on 29 November of that year. See Webern to Jone, 30 April 1944 (A-Wn, HS 431/1–285): “I have already copied the poems I have composed, as you wished [...] and I shall bring the booklet with me […].”

", - "

120 | Hildegard Jone, Viae inviae, in: Der Brenner 13 (1932), pp. 60–74, here pp. 64 (“Das dunkle Herz”) and 65 (“Du stürzt aus Höhen” and “Herr Jesus mein”): Jone_Vi. See Webern to Jone, 3 November 1932 (A-Wn, HS 431/1–85): “I am very much looking forward to your poems in ‘Brenner’.”

", - "

121 | For information both on the organization of this Brenner edition as a memorial volume for Ferdinand Ebner, who had often written for the journal, and on the connection between Jone’s poetry and Ebner’s philosophy, see Reinecke, Hildegard Jone (note 114), pp. 175–187.

", - "

122 | See Ferdinand Ebner, Notizen Tagebücher Lebenserinnerungen, ed. Franz Seyr, Munich: Kösel, 1963 (Ferdinand Ebner Schriften 2), p. 1033: “Dr Webern in the studio [i. e. in the studio of Humplik and Jone] – at the request of Mrs Jone.”

", - "

123 | See Schingnitz, [“Einleitung”] (note 110), pp. LI f.

", - "

124 | After an untitled, introductory poem, Section II comprises contains four sections, each numbered with an Arabic numeral, all of which present self-contained, individual poems: 1. “Das Augenlicht” (later the text for Webern’s Op. 26), 2. “Christophorus”, 3. “Der Berg” and 4. “Zwischen Tag und Nacht”. The 3rd and 4th sections are each followed by groups of verses separated by asterisks. It is not clear whether these verse groups comprise a continuation in each case of the texts given under the aforementioned two titles, or whether they constitute independent poems.

", - "

125 | Regarding his protracted work on the first movement of Op. 24, see Kathryn Bailey, “Symmetry as Nemesis: Webern and the First Movement of the Concerto, Opus 24”, in: Journal of Music Theory 40/2 (Autumn 1996), pp. 245–310.

", - "

126 | Webern to Jone, 3 March 1933 (A-Wn, HS 431/1–89).

", - "

127 | See Lauriejean Reinhardt, “Webern’s Literary Encounter with Hildegard Jone”, in: Mitteilungen der Paul Sacher Stiftung 5 (January 1992), pp. 36–40. Ibid., p. 37 contains a facsimile of a Jone manuscript entitled Die Freude, which contains most of the lines that Webern set to music in his Op. 23. However, it is unlikely that this manuscript dates from before 1933, or that Webern had it in front of him.

", - "

128 | See Reinecke, Hildegard Jone (note 114), pp. 297 f.

", - "

129 | Arbeiter-Symphonie-Konzert: Ernst Krenek, Kleine Blasmusik, Op. 70A; Paul A. Pisk, Kantate Campanella, Op. 28; Hanns Eisler, Das Lied vom Kampf.

", - "

130 | See Webern, Wege zur neuen Musik (note 89), pp. 9–44. His lecture series began on 20 February and ended on 10 April. He gave a total of eight lectures, which as a rule took place on Monday evenings, though on two occasions he gave them on a Tuesday (on 7 and 14 March).

", - "

131 | See Moldenhauer, Anton von Webern (note 18), p. 397, and Radio Wien, 19 May 1933, p. 42.

", - "

132 | See Moldenhauer, Anton von Webern (note 18), p. 398, and Radio Wien, 14 July 1933, p. 52.

", - "

133 | Webern to Jone, 29 July 1933 (A-Wn, HS 431/1–99). The beginning of the first sketch for “Es stürzt aus Höhen” M 313 is indeed dated “26. VII. 33”, thus 12 days after the final date on the continuity draft of “Herr Jesu mein” M 312, not eight days as Webern claims.

", - "

134 | Ibid.: “So from 4 (roughly) to 10 [August] we’re not here.” See also Moldenhauer, Anton von Webern (note 18), pp. 398 f., where the dates of Webern’s stay in the Tyrol are given as “6–12 August”.

", - "

135 | Webern to Jone, 3 September 1933 (A-Wn, HS 431/1–101).

", - "

136 | Webern to Jone, 24 September 1933 (A-Wn, HS 431/1–104). We do not know of any reaction on Jone’s part to these two songs.

", - "

137 | Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116).

", - "

138 | See Moldenhauer, Anton von Webern (note 18), p. 407, and Radio Wien, 26 January 1934, p. 16.

", - "

139 | Webern to Jone, 14 February 1934 (A-Wn, HS 431/1–119).

", - "

140 | Webern to Humplik, 20 February 1934 (A-Wn, HS 431/1–120): “I’m working again: ‘was wird legt sich mit zarten Wurzeln an das Wartende im Dunkel…’ [‘what is becoming lies with its tender roots against what waits in the darkness’] The more terrible it becomes, the greater the responsibility that our tasks assume.” The continuity draft M 314 Sk3 articulates these thoughts in several variants: mm. {12A, 12B, 13A–15A, 12C}, mm. {12D, 13B–15B, 16A–17A}, mm. {23A–24A}, {13C–15C} and mm. {13D–15D}. See also M 314 Sk3.2.

", - "

141 | Webern to Jone, 4/5 March 1934 (A-Wn, HS 431/1–121). See M 314 Sk3 mm. 22B–24B, {25B–27B}.

", - "

142 | Webern to Jone, 11 March 1934 (A-Wn, HS 431/1–122): “‘Wir sind nicht unser, ich und du u. Alle’. I have just finished sketching the melody. So you see, soon the song will have been composed to the end.” Webern presumably refers here to M 314 Sk3.4.

", - "

143 | Webern to Jone, 20 March 1934 (A-Wn, HS 431/1–123). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110): “It cannot be determined whether or not Webern ultimately [...] sent a fair copy of the Three Songs, Op. 23, to Jone at all, or perhaps handed such a copy over in person; their correspondence offers no hint of this. Jone and Humplik received a copy of the printed work after its publication by Universal Edition […].”

", - "

144 | Webern to Berg, 27 March 1934 (cited as in Briefwechsel Anton Webern – Alban Berg [note 31]).

", - "

145 | See Universal Edition (Hugo Winter) to Webern, 11 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 188). The publishing contract is dated 12 July (see the commentary of the editor, ibid., plus Appendix, pp. 344 f.).

", - "

146 | Webern to Universal Edition (Yella Hertzka), 12 July 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 189).

", - "

147 | Universal Edition (Erwin Stein) to Webern, 29 August 1934 (Webern, Briefwechsel mit der Universal-Edition [note 22], p. 196).

", - "

148 | See Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 344 f.

", - "

149 | See Webern to Josef Humplik, 8 May 1935 (note 109).

", - "

150 | Reich to Webern, 30 August 1943 (CH-END [carbon copy]): “Your ‘sixtieth’, to which you so discreetly refer, was something of which I was naturally already aware, and I have already made all kinds of plans to celebrate the day. [...] A performance of chamber music in Basel (the entire concert exclusively featuring works by Webern) has already been secured for December, within the framework of the ISCM.”

", - "

151 | Regarding this concert and its complete programme, which included the Five Songs, Op. 3, also with the performers mentioned here, see Moldenhauer, Anton von Webern (note 18), pp. 553 f.

", - "

152 | Bg., in: National-Zeitung, 7 December 1943 (morning edition), p. 4. See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) on Webern’s letter to Jone of 4 December 1943.

", - "

153 | ay, “Anton Webern in der I. G. N. M.”, in: Basler Nachrichten, 7 December 1943 (2nd supplement). See also the commentary of the editor in Briefwechsel Webern und Webern – Jone und Humplik (note 110) regarding Webern’s letter to Jone of 4 December 1943.

", - "

154 | See e. g. Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “It would of course be best to find a singer who might be able to sing some of the six songs with piano accompaniment to your texts.”

", - "

155 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", - "

156 | Webern to Schoenberg, 21 March 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 18155]).

", - "

157 | Ibid.

", - "

158 | Hildegard Jone, Die Freude, in: Die Schildgenossen 13/1 (September/October 1933), pp. 16–26, here pp. 16 (“Wie bin ich froh!”), 18 (“Sterne, Ihr silbernen Bienen der Nacht”) and 24 (“Des Herzens Purpurvogel”): Jone_DF. We must not confuse this cycle Die Freude with Jone’s individual poem with the same title, which she had included (without explicitly providing a title) in her cycle Viae inviae, which she had published back in 1932, and which had provided the text for Webern’s Three Songs, Op. 23.

", - "

159 | See Webern to Jone, 21 November 1933 (A-Wn, HS 431/1–112): “And how I’m looking forward to your poems in the ‘Schildgenossen[’]!”

", - "

160 | See Webern to Jone, 6 January 1934 (A-Wn, HS 431/1–116): “I would only like to give you the song manuscript [of Op. 23] once it is complete (with the 3rd song). Several ‘Stern’ poems are probably going to be next!”, i. e. poems from the eight “Star” poems in the collection Die Freude.

", - "

161 | Webern to Humplik and Jone, 9 July 1934 (A-Wn, HS 431/1–131).

", - "

162 | Webern to Schoenberg, 18 July 1934 (US-Wc [cited as in the digitized copy in A-Was: ID 22352]).

", - "

163 | Webern to Jone, 18 July 1934 (A-Wn, HS 431/1–132). In this same letter, which also mentions Bach’s forthcoming birthday, Webern makes a remark that indicates he had meanwhile told Jone the “reasons” for composing this song. (“You know what I owe to him”).

", - "

164 | This song is also mentioned on its own on a postcard of 8 August (A-Wn, HS 431/1–134): “I hope to be able to show you and Pepo [i. e. Humplik] everything soon after my return! and I am already looking forward to it a lot. The song ‘Wie bin ich froh’[.]”

", - "

165 | See Moldenhauer, Anton von Webern (note 18), p. 418, though he erroneously writes that Webern had dedicated a fair copy of the Two Songs, Op. 19, to Bach and had given it to him on this occasion (Moldenhauer presumably did not have B available for consultation). Webern had already dedicated the Two Songs, Op. 19, to Bach in 1928 when the work was published.

", - "

166 | Webern to Humplik and Jone, 12 September 1934 (A-Wn, HS 431/1–137).

", - "

167 | Webern to Jone, 1 October 1934 (A-Wn, HS 431/1–138). We do not know to which “songs” by Jone Webern is here referring.

", - "

168 | Webern to Jone, 17 October 1934 (A-Wn, HS 431/1–139): “‘Sterne, Ihr silbernen Bienen’ is finished. Now I am busy with [‘]Des Herzens Purpurvogel fliegt durch Nacht’[.]”

", - "

169 | Webern to Jone, 9 November 1934 (A-Wn HS 431/1–140): “‘Des Herzens Purpurvogel’ will soon be finished. I was just held up a little recently.”

", - "

170 | Webern to Boosey & Hawkes (Erwin Stein), 17 October 1938 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], pp. 223 f.). This contact with Boosey & Hawkes resulted in the publication of Webern’s String Quartet, Op. 28. See also in this regard Regina Busch, “Weberns Streichquartett Op. 28 und das Schriftbild seiner Partituren”, in: Webern-Philologien, ed. Thomas Ahrend and Matthias Schmidt, Vienna: Lafite, 2016 (Webern-Studien 3), pp. 41–76.

", - "

171 | See Universal Edition (Alfred Schlee) to Webern, 1 December 1943 (cited as in Webern, Briefwechsel mit der Universal-Edition [note 22], p. 284): “It’s also not correct if I inform you that the songs are now going to the engraver’s as a kind of birthday present, because it would naturally have been the proper thing to publish them even regardless of your 60th birthday.” See the editor’s commentary in ibid.: “There is no documentary evidence that the Three Songs, Op. 25 were indeed sent ‘to the engraver’s’ after this letter, nor that any contract was concluded.”

", - "

172 | See Webern to Erich Schmid, 9 November 1943 (cited as in Erich Schmid, Lebenserinnerungen, vol. 2: Letters, ed. Lukas Näf, Bern: Peter Lang, 2014, p. 812): “With regard to the photocopy of my songs Op. 25 [...] I hope that 2 copies of them are now finally in your hands. Despite my having repeatedly pursued the matter, their publication has been very much delayed (due to current circumstances).” Schmid had accompanied Gradmann-Lüscher in a performance of Webern’s Five Songs on Poems of Stefan George, Op. 4, and of his Four Songs, Op. 12, when Webern had visited Basel in 1940. However, Schmid’s military service prevented him from participating in the concert planned for December 1943. These two copies of the songs ([EF1–F2]), today no longer extant, were presumably sent to Gradmann-Lüscher and Paul Baumgartner before their planned performance, though it seems that they had insufficient time to rehearse them adequately.

", - "

173 | See, e. g., Webern to Jone, 22 April 1944 (A-Wn, HS 431/1–284): “The best solution would be to find a woman singer [“Sängerin”] who could sing some of the six songs with piano accompaniment that are settings of your texts.”

", - "

174 | Webern to Jone, 10 August 1944 (A-Wn, HS 431/1–292): “I have been notified that the Swedish singer I mentioned previously has agreed and already studied [the songs].”

", - "

175 | Moldenhauer, Anton von Webern (note 18), pp. 716 f.

" ] } ] diff --git a/src/assets/data/edition/series/2/section/2a/intro.json b/src/assets/data/edition/series/2/section/2a/intro.json new file mode 100644 index 0000000000..9f9ed9cd9a --- /dev/null +++ b/src/assets/data/edition/series/2/section/2a/intro.json @@ -0,0 +1,12 @@ +{ + "intro": [ + { + "id": "de-awg-II-2a", + "content": [] + }, + { + "id": "en-awg-II-2a", + "content": [] + } + ] +} From 5ee951b4dab6c2770cd5878fc3b5e514c95b5cfc Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 10 Oct 2024 16:14:36 +0200 Subject: [PATCH 128/213] feat(edition): add breadcrumb for section intro --- .../edition-info.component.spec.ts | 2 +- .../edition-view/edition-route-constants.ts | 2 +- .../edition-view/edition-view.component.html | 24 +- .../edition-view.component.spec.ts | 281 ++++++++++++++---- 4 files changed, 242 insertions(+), 67 deletions(-) diff --git a/src/app/side-info/edition-info/edition-info.component.spec.ts b/src/app/side-info/edition-info/edition-info.component.spec.ts index b28db1b958..8d37fe7f69 100644 --- a/src/app/side-info/edition-info/edition-info.component.spec.ts +++ b/src/app/side-info/edition-info/edition-info.component.spec.ts @@ -352,7 +352,7 @@ describe('EditionInfoComponent (DONE)', () => { if (index === 0) { // The first title should be the intro title - expectToBe(titleEl.innerHTML, EDITION_ROUTE_CONSTANTS.EDITION_INTRO.full); + expectToBe(titleEl.innerText, EDITION_ROUTE_CONSTANTS.EDITION_INTRO.full); } else { // Subsequent titles should be the edition complex titles expectToBe(titleEl.innerHTML, expectedEditionComplexes[index - 1].complexId.full); diff --git a/src/app/views/edition-view/edition-route-constants.ts b/src/app/views/edition-view/edition-route-constants.ts index e52cc735a1..a5f384850c 100644 --- a/src/app/views/edition-view/edition-route-constants.ts +++ b/src/app/views/edition-view/edition-route-constants.ts @@ -244,7 +244,7 @@ export class EDITION_ROUTE_CONSTANTS { static readonly EDITION_INTRO: EditionRouteConstant = { route: 'intro', short: 'Einleitung', - full: 'Einleitung / Introduction', + full: 'Einleitung / Introduction', }; /** diff --git a/src/app/views/edition-view/edition-view.component.html b/src/app/views/edition-view/edition-view.component.html index d2ff82dfdb..d0454526b8 100644 --- a/src/app/views/edition-view/edition-view.component.html +++ b/src/app/views/edition-view/edition-view.component.html @@ -103,13 +103,31 @@
/ @if (selectedEditionSection$ | async; as selectedSection) { + + {{ selectedSection?.section.full }} + + / - - {{ selectedSection?.section.full }} - + @if (isIntroView$ | async) { + + + + / + {{ editionRouteConstants.EDITION_INTRO.full }} + } @else { + + + + } } @else { / diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index f1aa1ae95c..24802b77c6 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -542,73 +542,230 @@ describe('EditionViewComponent (DONE)', () => { }); describe('... breadcrumb header (h6)', () => { - it('... should display edition base root (AWG) if no series and section is given', () => { - component.selectedEditionSeries$ = observableOf(null); - component.selectedEditionSection$ = observableOf(null); - - // Trigger data binding - fixture.detectChanges(); - - const hDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', - 1, - 1 - ); - const hEl = hDes[0].nativeElement; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const expectedBreadCrumb = `${awg} /`; - - expectToBe(hEl.innerText, expectedBreadCrumb); + describe('... if no series and section is given', () => { + it('... should display edition base root (AWG)', () => { + component.selectedEditionSeries$ = observableOf(null); + component.selectedEditionSection$ = observableOf(null); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + const hEl = hDes[0].nativeElement; + + const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; + const expectedBreadCrumb = `${awg} /`; + + expectToBe(hEl.innerText, expectedBreadCrumb); + }); + + it('... should have no back link to edition series overview', () => { + const expectedLinkLength = 0; + + component.selectedEditionSeries$ = observableOf(null); + component.selectedEditionSection$ = observableOf(null); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + getAndExpectDebugElementByCss(hDes[0], 'a', expectedLinkLength, expectedLinkLength); + }); }); - it('... should display edition series if series, but no section is given', () => { - component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); - component.selectedEditionSection$ = observableOf(null); - - // Trigger data binding - fixture.detectChanges(); - - // Trigger data binding - fixture.detectChanges(); - - const hDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', - 1, - 1 - ); - const hEl = hDes[0].nativeElement; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const series = expectedSelectedEditionComplex.pubStatement.series.full; - const expectedBreadCrumb = `${awg} / ${series} /`; - - expectToBe(hEl.innerText, expectedBreadCrumb); + describe('... if series, but no section is given', () => { + it('... should display edition series', () => { + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(null); + + // Trigger data binding + fixture.detectChanges(); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + const hEl = hDes[0].nativeElement; + + const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; + const series = expectedSelectedEditionComplex.pubStatement.series.full; + const expectedBreadCrumb = `${awg} / ${series} /`; + + expectToBe(hEl.innerText, expectedBreadCrumb); + }); + + it('... should have a back link to edition series overview', () => { + const expectedLinkLength = 1; + + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(null); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + getAndExpectDebugElementByCss(hDes[0], 'a', expectedLinkLength, expectedLinkLength); + const linkDes = getAndExpectDebugElementByDirective( + hDes[0], + RouterLinkStubDirective, + expectedLinkLength, + expectedLinkLength + ); + const routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + const expectedRoute = EDITION_ROUTE_CONSTANTS.SERIES.route; + + expectToBe(routerLinks.length, expectedLinkLength); + expectToEqual(routerLinks[0].linkParams, [expectedRoute]); + }); }); - it('... should display edition series and section if both are given', () => { - component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); - component.selectedEditionSection$ = observableOf(expectedSelectedEditionSection); - - // Trigger data binding - fixture.detectChanges(); - - const hDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', - 1, - 1 - ); - const hEl = hDes[0].nativeElement; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const series = expectedSelectedEditionComplex.pubStatement.series.full; - const section = expectedSelectedEditionComplex.pubStatement.section.full; - const expectedBreadCrumb = `${awg} / ${series} / ${section}`; + describe('... if series and section are given', () => { + it('... should display edition series and section', () => { + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(expectedSelectedEditionSection); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + const hEl = hDes[0].nativeElement; + + const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; + const series = expectedSelectedEditionComplex.pubStatement.series.full; + const section = expectedSelectedEditionComplex.pubStatement.section.full; + const expectedBreadCrumb = `${awg} / ${series} / ${section}`; + + expectToBe(hEl.innerText, expectedBreadCrumb); + }); + + it('... should have two back links to series overview and current edition series', () => { + const expectedLinkLength = 2; + + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(expectedSelectedEditionSection); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + getAndExpectDebugElementByCss(hDes[0], 'a', expectedLinkLength, expectedLinkLength); + const linkDes = getAndExpectDebugElementByDirective( + hDes[0], + RouterLinkStubDirective, + expectedLinkLength, + expectedLinkLength + ); + const routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + const expectedSeriesRoute = EDITION_ROUTE_CONSTANTS.SERIES.route; + const expectedSeriesNumberRoute = expectedSelectedEditionSeries.series.route; + + expectToBe(routerLinks.length, expectedLinkLength); + expectToEqual(routerLinks[0].linkParams, [expectedSeriesRoute]); + expectToEqual(routerLinks[1].linkParams, [ + './' + expectedSeriesRoute, + expectedSeriesNumberRoute, + ]); + }); + }); - expectToBe(hEl.innerText, expectedBreadCrumb); + describe('... if series, section, and isIntroView$ is given', () => { + it('... should display edition series, section and intro heading', () => { + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(expectedSelectedEditionSection); + component.isIntroView$ = observableOf(true); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + const hEl = hDes[0].nativeElement; + + const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; + const series = expectedSelectedEditionComplex.pubStatement.series.full; + const section = expectedSelectedEditionComplex.pubStatement.section.full; + const intro = EDITION_ROUTE_CONSTANTS.EDITION_INTRO.full; + const expectedBreadCrumb = `${awg} / ${series} / ${section} / ${intro}`; + + expectToBe(hEl.innerText, expectedBreadCrumb); + }); + + it('... should have three back links to series overview, current edition series and section overview', () => { + const expectedLinkLength = 3; + + component.selectedEditionSeries$ = observableOf(expectedSelectedEditionSeries); + component.selectedEditionSection$ = observableOf(expectedSelectedEditionSection); + component.isIntroView$ = observableOf(true); + + // Trigger data binding + fixture.detectChanges(); + + const hDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series > h6.awg-edition-info-breadcrumb', + 1, + 1 + ); + getAndExpectDebugElementByCss(hDes[0], 'a', expectedLinkLength, expectedLinkLength); + const linkDes = getAndExpectDebugElementByDirective( + hDes[0], + RouterLinkStubDirective, + expectedLinkLength, + expectedLinkLength + ); + const routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + const expectedSeriesRoute = EDITION_ROUTE_CONSTANTS.SERIES.route; + const expectedSeriesNumberRoute = expectedSelectedEditionSeries.series.route; + const expectedSectionRoute = EDITION_ROUTE_CONSTANTS.SECTION.route; + const expectedSectionNumberRoute = expectedSelectedEditionSection.section.route; + + expectToBe(routerLinks.length, expectedLinkLength); + expectToEqual(routerLinks[0].linkParams, [expectedSeriesRoute]); + expectToEqual(routerLinks[1].linkParams, [ + './' + expectedSeriesRoute, + expectedSeriesNumberRoute, + ]); + expectToEqual(routerLinks[2].linkParams, [ + './' + expectedSeriesRoute, + expectedSeriesNumberRoute, + expectedSectionRoute, + expectedSectionNumberRoute, + ]); + }); }); }); }); From 490313dc6e56c8ac37cad515e8769cf20239a96f Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Thu, 10 Oct 2024 16:23:50 +0200 Subject: [PATCH 129/213] feat(assets): add corrections for Op3: I + J MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections for Op3: I + J * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op3/source-description.json Co-authored-by: Stefan Münnich * Delete .vscode/settings.json --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op3/source-description.json | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op3/source-description.json b/src/assets/data/edition/series/1/section/5/op3/source-description.json index 94d8afaf57..6c2a1595f5 100644 --- a/src/assets/data/edition/series/1/section/5/op3/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op3/source-description.json @@ -4935,6 +4935,194 @@ } ] } + ], + "corrections": [ + { + "id": "source_I_corr1", + "label": "Korrekturen 1 in I (mit schwarzer Tinte [Text: rote Tinte] ggf. auf Rasur)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "2", + "system": "Ges.", + "position": "3. Note", + "comment": "Text: Großschreibung Kir-(schen[-]flor) überschrieben zu kir-(schen[-]flor) mit roter Tinte." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "5–6/8", + "comment": "Auf Rasur. Ante correcruram: vermutlich cis–Cis (siehe Textfassung 1)." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1.–3. Note", + "comment": "Oberstimmenschicht: Auf Rasur. Ante correcruram: vermutlich zwei Achtelnoten es1/ges1–d/f (siehe Textfassung 1)" + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "6.–9. Note", + "comment": "Decrescendogabel nachgezogen." + }, + { + "measure": "7", + "system": "", + "position": "Taktanfang", + "comment": "Fließend über Ges. auf Rasur. (Über Klav.: ohne Rasur. Siehe TkA zu T. 6 bis 7.)" + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "4.–5. Note", + "comment": "Bogen auf Rasur. Ante correcturam: Staccatopunkte." + }, + { + "measure": "9", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "ges1 auf Rasur. Ante correcturam: vermutlich fis1 (siehe Textfassung 1)." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "Auf Rasur. Ante correcturam: vermutlich H/gis (siehe Textfassung 1)." + }, + { + "measure": "10", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[ppp]')}} geändert zu {{ref.getGlyph('[pp]')}}." + }, + { + "measure": "10", + "system": "Klav.", + "position": "5/8", + "comment": "Auf Rasur." + } + ] + } + ] + }, + { + "id": "source_I_corr2", + "label": "Korrekturen 2 in I (mit Bleistift und Buntstift)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Im Morgentaun“ M 136: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "Klav.", + "position": "", + "comment": "Pedal-Aufhebung hinzugefügt mit Bleistift." + }, + { + "measure": "vor 1
bis 1", + "system": "Ges.", + "position": "2/8", + "comment": "Crescendogabel hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "2.–4. Note", + "comment": "Decrescendogabel hinzugefügt mit rotem Buntstift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "5.–6. Note", + "comment": "Crescendogabel hinzugefügt mit rotem Buntstift." + }, + { + "measure": "2", + "system": "Ges.", + "position": "1. Note", + "comment": "Decrescendogabel hinzugefügt mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit grünem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "nach 2. Note", + "comment": "Vertikaler Strich hinzugefügt mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "nach 5. Note", + "comment": "Vertikaler Strich hinzugefügt mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} überschrieben zu {{ref.getGlyph('[b]')}} mit grünem Buntstift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "nach 1/4", + "comment": "Zäsurzeichen hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2. Note", + "comment": "Strich zu Klav. hinzugefügt mit rotem Buntstift (zur Verdeutlichung des Untersatzes)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "8. Note", + "comment": "Strich zu Klav. u. hinzugefügt mit Bleistift (zur Verdeutlichung des Untersatzes)." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "8. Note", + "comment": "rechte Hand hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "3. Note", + "comment": "Strich zu Klav. hinzugefügt mit rotem Buntstift (zur Verdeutlichung des Untersatzes)." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "8. Note", + "comment": "l. H. hinzugefügt mit Bleistift." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "6/16", + "comment": "Pedal-Aufhebung hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Klav.", + "position": "5/8", + "comment": "Fermatenzeichen hinzugefügt mit Bleistift." + } + ] + } + ] + } ] } }, @@ -5018,6 +5206,40 @@ } ] } + ], + "corrections": [ + { + "id": "source_J_corr", + "label": "Korrekturen in J", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Kahl reckt der Baum“ M 137: Textfassung 4." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "10", + "system": "Ges.", + "position": "3/8", + "comment": "+ über dem System hinzugefügt mit Bleistift." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} geändert zu {{ref.getGlyph('[p]')}} mit rotem Buntstift." + }, + { + "measure": "12", + "system": "Ges.", + "position": "5. Note bis Taktende", + "comment": "Decrescendogabel hinzugefügt mit rotem Buntstift." + } + ] + } + ] + } ] } }, From 42102f36b32ec2f6fddf6b581cc06be45b1ef850 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:47:58 +0000 Subject: [PATCH 130/213] build(deps): bump actions/upload-artifact from 4.4.2 to 4.4.3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.2 to 4.4.3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/84480863f228bb9747b473957fcc9e309aa96097...b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 2 +- .github/workflows/scorecards.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 5f8a5cea90..89557680c3 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -109,7 +109,7 @@ jobs: - name: Upload build artifacts (main && develop) # upload build artifacts for current node version and main or develop branch only if: matrix.node-version == 20.13 && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') - uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: dist path: ${{ github.workspace }}/${{ env.DIST_DIR }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 9f6aabc4e6..6e2676543d 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: SARIF file path: results.sarif From 4b87cc6520a078612e034bb45e26b46cf9c3b056 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 10 Oct 2024 17:49:57 +0200 Subject: [PATCH 131/213] fix(edition): update series and section from edition complex too --- .../edition-complex.component.spec.ts | 598 ++++++++++++------ .../edition-complex.component.ts | 16 +- 2 files changed, 414 insertions(+), 200 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts index 57f742f373..81f49e01f3 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts @@ -2,15 +2,20 @@ import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ActivatedRoute, RouterModule } from '@angular/router'; -import { Observable, ReplaySubject } from 'rxjs'; +import { EMPTY, Observable, ReplaySubject } from 'rxjs'; import Spy = jasmine.Spy; import { expectSpyCall, expectToEqual } from '@testing/expect-helper'; import { ActivatedRouteStub } from '@testing/router-stubs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionComplex, EditionComplexesList } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; +import { + EditionComplex, + EditionComplexesList, + EditionOutlineSection, + EditionOutlineSeries, +} from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; import { EditionComplexComponent } from './edition-complex.component'; @@ -23,11 +28,17 @@ describe('EditionComplexComponent (DONE)', () => { let mockEditionService: Partial; let mockEditionComplexSubject: ReplaySubject; + let mockEditionSeriesSubject: ReplaySubject; + let mockEditionSectionSubject: ReplaySubject; let updateEditionComplexFromRouteSpy: Spy; let editionServiceGetSelectedEditionComplexSpy: Spy; let editionServiceUpdateSelectedEditionComplexSpy: Spy; + let editionServiceUpdateSelectedEditionSeriesSpy: Spy; + let editionServiceUpdateSelectedEditionSectionSpy: Spy; let editionServiceClearSelectedEditionComplexSpy: Spy; + let editionServiceClearSelectedEditionSeriesSpy: Spy; + let editionServiceClearSelectedEditionSectionSpy: Spy; let expectedEditionComplexes: EditionComplexesList; let expectedSelectedEditionComplex: EditionComplex; @@ -36,10 +47,13 @@ describe('EditionComplexComponent (DONE)', () => { beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); }); beforeEach(async () => { mockEditionComplexSubject = new ReplaySubject(1); + mockEditionSeriesSubject = new ReplaySubject(1); + mockEditionSectionSubject = new ReplaySubject(1); // Mock edition service mockEditionService = { @@ -47,6 +61,16 @@ describe('EditionComplexComponent (DONE)', () => { updateSelectedEditionComplex: (editionComplex: EditionComplex): void => mockEditionComplexSubject.next(editionComplex), clearSelectedEditionComplex: (): void => mockEditionComplexSubject.next(null), + + updateSelectedEditionSeries: (editionSeries: EditionOutlineSeries): void => { + mockEditionSeriesSubject.next(editionSeries); + }, + clearSelectedEditionSeries: (): void => mockEditionSeriesSubject.next(null), + + updateSelectedEditionSection: (editionSection: EditionOutlineSection): void => { + mockEditionSectionSubject.next(editionSection); + }, + clearSelectedEditionSection: (): void => mockEditionSectionSubject.next(null), }; // Mocked activated route @@ -84,10 +108,26 @@ describe('EditionComplexComponent (DONE)', () => { mockEditionService, 'updateSelectedEditionComplex' ).and.callThrough(); + editionServiceUpdateSelectedEditionSeriesSpy = spyOn( + mockEditionService, + 'updateSelectedEditionSeries' + ).and.callThrough(); + editionServiceUpdateSelectedEditionSectionSpy = spyOn( + mockEditionService, + 'updateSelectedEditionSection' + ).and.callThrough(); editionServiceClearSelectedEditionComplexSpy = spyOn( mockEditionService, 'clearSelectedEditionComplex' ).and.callThrough(); + editionServiceClearSelectedEditionSeriesSpy = spyOn( + mockEditionService, + 'clearSelectedEditionSeries' + ).and.callThrough(); + editionServiceClearSelectedEditionSectionSpy = spyOn( + mockEditionService, + 'clearSelectedEditionSection' + ).and.callThrough(); }); it('... should create', () => { @@ -129,18 +169,6 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); }); - it('... should trigger `EditionComplexesService.getEditionComplexById`', () => { - const getEditionComplexByIdSpy = spyOn( - EditionComplexesService, - 'getEditionComplexById' - ).and.callThrough(); - - component.updateEditionComplexFromRoute(); - fixture.detectChanges(); - - expectSpyCall(getEditionComplexByIdSpy, 1); - }); - it('... should get id from router', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( @@ -223,236 +251,412 @@ describe('EditionComplexComponent (DONE)', () => { ); }); - it('... should have updated selectedEditionComplex$ (via EditionService)', () => { - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, - 1, - EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) - ); - }); + it('... should trigger `EditionComplexesService.getEditionComplexById`', () => { + const getEditionComplexByIdSpy = spyOn( + EditionComplexesService, + 'getEditionComplexById' + ).and.callThrough(); - it('... should get edition complex from EditionService and set selectedEditionComplex$', () => { - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, - 1, - EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) - ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - expect(component.selectedEditionComplex$).toBeDefined(); + expectSpyCall(getEditionComplexByIdSpy, 1); }); - it('... should get correct edition complex from EditionService when complex id changes', () => { - // ---------------- - // Check for op. 12 - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, - 1, - EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) - ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + describe('... if edition complex can be found', () => { + it('... should trigger `EditionOutlineService.getEditionSeriesById` (twice via getEditionSectionById)', () => { + const getEditionSeriesByIdSpy = spyOn( + EditionOutlineService, + 'getEditionSeriesById' + ).and.callThrough(); - // ---------------- - // Change to op. 25 - expectedSelectedEditionComplexId = 'op25'; - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - // Apply changes - fixture.detectChanges(); + expectSpyCall(getEditionSeriesByIdSpy, 2); + }); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, - 2, - EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) - ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + it('... should trigger `EditionOutlineService.getEditionSectionById`', () => { + const getEditionSectionByIdSpy = spyOn( + EditionOutlineService, + 'getEditionSectionById' + ).and.callThrough(); - expect(component.selectedEditionComplex$).toBeDefined(); - }); + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - it('... should get an edition complex with opus number from EditionService', () => { - const opusComplex = new EditionComplex( - { - title: 'Test Opus Complex', - catalogueType: 'OPUS', - catalogueNumber: '100', - }, - { - editors: [], - lastModified: '---', - }, - { series: '1', section: '5' } - ); - expectedSelectedEditionComplexId = 'op100'; + expectSpyCall(getEditionSectionByIdSpy, 1); + }); + + it('... should have updated selectedEditionComplex$ (via EditionService)', () => { + const complex = EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId); - spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { - if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { - return opusComplex; - } - return null; + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1, complex); }); - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + it('... should have updated selectedEditionSeries (via EditionService)', () => { + const series = EditionOutlineService.getEditionSeriesById( + expectedSelectedEditionComplex.pubStatement.series.route + ); - // Apply changes - fixture.detectChanges(); + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1, series); + }); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, opusComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + it('... should have updated selectedEditionSection (via EditionService)', () => { + const section = EditionOutlineService.getEditionSectionById( + expectedSelectedEditionComplex.pubStatement.series.route, + expectedSelectedEditionComplex.pubStatement.section.route + ); - expect(component.selectedEditionComplex$).toBeDefined(); - }); + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1, section); + }); - it('... should get an edition complex with M number from EditionService', () => { - const mnrComplex = new EditionComplex( - { - title: 'Test M Complex', - catalogueType: 'MNR', - catalogueNumber: '100', - }, - { - editors: [], - lastModified: '---', - }, - { series: '1', section: '5' } - ); - expectedSelectedEditionComplexId = 'm100'; - - // Spy on the static method and provide a custom implementation - spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { - if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { - return mnrComplex; - } - return null; + it('... should get edition complex from EditionService and set selectedEditionComplex$', () => { + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall( + editionServiceUpdateSelectedEditionComplexSpy, + 1, + EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) + ); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + + expect(component.selectedEditionComplex$).toBeDefined(); }); - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + it('... should get correct edition complex from EditionService when complex id changes', () => { + // ---------------- + // Check for op. 12 + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall( + editionServiceUpdateSelectedEditionComplexSpy, + 1, + EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) + ); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + + // ---------------- + // Change to op. 25 + expectedSelectedEditionComplexId = 'op25'; + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall( + editionServiceUpdateSelectedEditionComplexSpy, + 2, + EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) + ); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + }); - // Apply changes - fixture.detectChanges(); + it('... should get an edition complex with opus number from EditionService', () => { + const opusComplex = new EditionComplex( + { + title: 'Test Opus Complex', + catalogueType: 'OPUS', + catalogueNumber: '100', + }, + { + editors: [], + lastModified: '---', + }, + { series: '1', section: '5' } + ); + expectedSelectedEditionComplexId = 'op100'; + + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return opusComplex; + } + return null; + }); + + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, opusComplex); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + }); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + it('... should get an edition complex with M number from EditionService', () => { + const mnrComplex = new EditionComplex( + { + title: 'Test M Complex', + catalogueType: 'MNR', + catalogueNumber: '100', + }, + { + editors: [], + lastModified: '---', + }, + { series: '1', section: '5' } + ); + expectedSelectedEditionComplexId = 'm100'; + + // Spy on the static method and provide a custom implementation + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return mnrComplex; + } + return null; + }); + + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrComplex); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + }); - expect(component.selectedEditionComplex$).toBeDefined(); + it('... should get an edition complex with M* number from EditionService', () => { + const mnrPlusComplex = new EditionComplex( + { + title: 'Test M* Complex', + catalogueType: 'MNR_PLUS', + catalogueNumber: '100', + }, + { + editors: [], + lastModified: '---', + }, + { series: '1', section: '5' } + ); + expectedSelectedEditionComplexId = 'mPlus100'; + + // Spy on the static method and provide a custom implementation + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return mnrPlusComplex; + } + return null; + }); + + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrPlusComplex); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + }); + + it('... should get an edition complex with missing resp statement from EditionService', () => { + const missingRespComplex = new EditionComplex( + { + title: 'Test Missing Resp Complex', + catalogueType: 'OPUS', + catalogueNumber: '100', + }, + null, + { series: '1', section: '5' } + ); + expectedSelectedEditionComplexId = 'op100'; + + // Spy on the static method and provide a custom implementation + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return missingRespComplex; + } + return null; + }); + + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, missingRespComplex); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + }); }); - it('... should get an edition complex with M* number from EditionService', () => { - const mnrPlusComplex = new EditionComplex( - { - title: 'Test M* Complex', - catalogueType: 'MNR_PLUS', - catalogueNumber: '100', - }, - { - editors: [], - lastModified: '---', - }, - { series: '1', section: '5' } - ); - expectedSelectedEditionComplexId = 'mPlus100'; - - // Spy on the static method and provide a custom implementation - spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { - if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { - return mnrPlusComplex; - } - return null; + describe('... if edition complex cannot be found', () => { + it('... should not trigger `EditionOutlineService.getEditionSeriesById`', () => { + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); + + const getEditionSeriesByIdSpy = spyOn( + EditionOutlineService, + 'getEditionSeriesById' + ).and.callThrough(); + + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); + + expectSpyCall(getEditionSeriesByIdSpy, 0); }); - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + it('... should not trigger `EditionOutlineService.getEditionSectionById`', () => { + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); - // Apply changes - fixture.detectChanges(); + const getEditionSectionByIdSpy = spyOn( + EditionOutlineService, + 'getEditionSectionById' + ).and.callThrough(); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrPlusComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - expect(component.selectedEditionComplex$).toBeDefined(); - }); + expectSpyCall(getEditionSectionByIdSpy, 0); + }); - it('... should get an edition complex with missing values from EditionService', () => { - const incompleteComplex = new EditionComplex( - { - title: 'Test Incomplete Complex', - catalogueType: 'OPUS', - catalogueNumber: '100', - }, - null, - null - ); - expectedSelectedEditionComplexId = 'op100'; - - // Spy on the static method and provide a custom implementation - spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { - if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { - return incompleteComplex; - } - return null; + it('... should not have updated selectedEditionComplex$ (via EditionService)', () => { + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1); + + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); + + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 2); + expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1); }); - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + it('... should not have updated selectedEditionSeries (via EditionService)', () => { + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1); - // Apply changes - fixture.detectChanges(); + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, incompleteComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - expect(component.selectedEditionComplex$).toBeDefined(); - }); + expectSpyCall(updateEditionComplexFromRouteSpy, 2); + expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1); + }); - it('... should get an edition complex with missing titleStatement from EditionService', () => { - const incompleteComplex = new EditionComplex( - null, - { - editors: [], - lastModified: '---', - }, - { series: '1', section: '5' } - ); - expectedSelectedEditionComplexId = 'op100'; - - // Spy on the static method and provide a custom implementation - spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { - if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { - return incompleteComplex; - } - return null; + it('... should not have updated selectedEditionSection (via EditionService)', () => { + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1); + + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); + + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 2); + expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1); }); - mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + it('... should set selectedEditionComplex$ to EMPTY', () => { + expectSpyCall(updateEditionComplexFromRouteSpy, 1); - // Apply changes - fixture.detectChanges(); + spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); - expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, incompleteComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + component.updateEditionComplexFromRoute(); + fixture.detectChanges(); - expect(component.selectedEditionComplex$).toBeDefined(); + expectSpyCall(updateEditionComplexFromRouteSpy, 2); + + expect(component.selectedEditionComplex$).toBeDefined(); + expectToEqual(component.selectedEditionComplex$, EMPTY); + }); + + it('... should not get an edition complex with missing title statement from EditionService', () => { + const missingTitleComplex = new EditionComplex( + null, + { + editors: [], + lastModified: '---', + }, + { series: '1', section: '5' } + ); + expectedSelectedEditionComplexId = 'op100'; + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + + // Spy on the static method and provide a custom implementation + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return missingTitleComplex; + } + return null; + }); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectToEqual(component.selectedEditionComplex$, EMPTY); + }); + + it('... should not get an edition complex with missing pub statement from EditionService', () => { + const missingPubComplex = new EditionComplex( + { + title: 'Test Missing Pub Complex', + catalogueType: 'OPUS', + catalogueNumber: '100', + }, + { + editors: [], + lastModified: '---', + }, + null + ); + expectedSelectedEditionComplexId = 'op100'; + mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; + + // Spy on the static method and provide a custom implementation + spyOn(EditionComplexesService, 'getEditionComplexById').and.callFake((id: string) => { + if (id.toUpperCase() === expectedSelectedEditionComplexId.toUpperCase()) { + return missingPubComplex; + } + return null; + }); + + // Apply changes + fixture.detectChanges(); + + expectSpyCall(updateEditionComplexFromRouteSpy, 1); + expectToEqual(component.selectedEditionComplex$, EMPTY); + }); }); }); describe('#ngOnDestroy()', () => { - it('... should have cleared selectedEditionComplex$ on destroy (via EditionService)', () => { + it('... should have cleared selected edition complex on destroy (via EditionService)', () => { component.ngOnDestroy(); expectSpyCall(editionServiceClearSelectedEditionComplexSpy, 1); }); + + it('... should have cleared selected edition series on destroy (via EditionService)', () => { + component.ngOnDestroy(); + + expectSpyCall(editionServiceClearSelectedEditionSeriesSpy, 1); + }); + + it('... should have cleared selected edition section on destroy (via EditionService)', () => { + component.ngOnDestroy(); + + expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 1); + }); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts index c539be565b..8d2c5cce2b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts @@ -6,7 +6,7 @@ import { delay, EMPTY, Observable } from 'rxjs'; import { UtilityService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; /** * The EditionComplex component. @@ -75,8 +75,17 @@ export class EditionComplexComponent implements OnDestroy, OnInit { const id: string = params.get('complexId') || ''; const complex = EditionComplexesService.getEditionComplexById(id.toUpperCase()); - if (complex) { + if (this.utils.isNotEmptyObject(complex)) { + const series = EditionOutlineService.getEditionSeriesById(complex.pubStatement.series.route); + const section = EditionOutlineService.getEditionSectionById( + complex.pubStatement.series.route, + complex.pubStatement.section.route + ); + + this.editionService.updateSelectedEditionSeries(series); + this.editionService.updateSelectedEditionSection(section); this.editionService.updateSelectedEditionComplex(complex); + this.selectedEditionComplex$ = this.editionService.getSelectedEditionComplex().pipe(delay(0)); } else { this.selectedEditionComplex$ = EMPTY; @@ -93,7 +102,8 @@ export class EditionComplexComponent implements OnDestroy, OnInit { * Destroys subscriptions. */ ngOnDestroy() { - // Remove selected edition complex this.editionService.clearSelectedEditionComplex(); + this.editionService.clearSelectedEditionSeries(); + this.editionService.clearSelectedEditionSection(); } } From 9f2abfc05d93f1a7a2d0b8ddacdc860d5cec1c16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:38:37 +0000 Subject: [PATCH 132/213] build(deps-dev): bump commit-and-tag-version from 12.4.4 to 12.5.0 Bumps [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from 12.4.4 to 12.5.0. - [Release notes](https://github.com/absolute-version/commit-and-tag-version/releases) - [Changelog](https://github.com/absolute-version/commit-and-tag-version/blob/master/CHANGELOG.md) - [Commits](https://github.com/absolute-version/commit-and-tag-version/compare/v12.4.4...v12.5.0) --- updated-dependencies: - dependency-name: commit-and-tag-version dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 22d202a732..4f52a54046 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "@typescript-eslint/eslint-plugin": "^8.8.1", "@typescript-eslint/parser": "^8.8.1", "angular-cli-ghpages": "^2.0.1", - "commit-and-tag-version": "^12.4.4", + "commit-and-tag-version": "^12.5.0", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", diff --git a/yarn.lock b/yarn.lock index 6be02e08df..73b4cc3e13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5960,7 +5960,7 @@ __metadata: angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" - commit-and-tag-version: "npm:^12.4.4" + commit-and-tag-version: "npm:^12.5.0" conventional-recommended-bump: "npm:^10.0.0" d3-drag: "npm:^3.0.0" d3-fetch: "npm:^3.0.1" @@ -6767,9 +6767,9 @@ __metadata: languageName: node linkType: hard -"commit-and-tag-version@npm:^12.4.4": - version: 12.4.4 - resolution: "commit-and-tag-version@npm:12.4.4" +"commit-and-tag-version@npm:^12.5.0": + version: 12.5.0 + resolution: "commit-and-tag-version@npm:12.5.0" dependencies: chalk: "npm:^2.4.2" conventional-changelog: "npm:4.0.0" @@ -6789,7 +6789,7 @@ __metadata: yargs: "npm:^17.7.2" bin: commit-and-tag-version: bin/cli.js - checksum: 10c0/f5c888d341594780aa0c08d2f5e64fa39ebbc0580d925a281b08b69e607cf54a2c9322e822c1b9835f9551ed08eb4b166b9cbb0e9376995474910b561779795d + checksum: 10c0/47b0e99a64e9a92913e58bfa39b83db0f810278dd8e9a26fa823d7a75d1b030cdf5587d9f6ba8f8bcd709302f7a1c0443aafa0555168471b77798e39156bad57 languageName: node linkType: hard From 5622c9cd5eebe1f3083a0ddbc75cb63e019bd240 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:32:39 +0000 Subject: [PATCH 133/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.7...18.2.8) Updates `@angular/cli` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.7...18.2.8) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 106 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 4f52a54046..10ac11b3af 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.7", + "@angular-devkit/build-angular": "^18.2.8", "@angular-eslint/builder": "^18.3.1", "@angular-eslint/eslint-plugin": "^18.3.1", "@angular-eslint/eslint-plugin-template": "^18.3.1", "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", - "@angular/cli": "^18.2.7", + "@angular/cli": "^18.2.8", "@angular/compiler-cli": "^18.2.7", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 73b4cc3e13..590fc22859 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.7": - version: 0.1802.7 - resolution: "@angular-devkit/architect@npm:0.1802.7" +"@angular-devkit/architect@npm:0.1802.8": + version: 0.1802.8 + resolution: "@angular-devkit/architect@npm:0.1802.8" dependencies: - "@angular-devkit/core": "npm:18.2.7" + "@angular-devkit/core": "npm:18.2.8" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/98d3b5c218d501bedd1ad1e41c2c9c26d7b3079f5e0f55f048e662483c023e0a40988cf46c14e9ed29a72b0cbfbee82e4b0461a7a9f0437daf9eb75d68209a62 + checksum: 10c0/3c4606b99bc119fa31546d6093c7077fc65255c169c168670c6c7b45d6898255f891027a664d5479c63cfe085c2ca9c4f232cc6c66b157c93fe2de7da37d06fb languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular-devkit/build-angular@npm:18.2.7" +"@angular-devkit/build-angular@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular-devkit/build-angular@npm:18.2.8" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.7" - "@angular-devkit/build-webpack": "npm:0.1802.7" - "@angular-devkit/core": "npm:18.2.7" - "@angular/build": "npm:18.2.7" + "@angular-devkit/architect": "npm:0.1802.8" + "@angular-devkit/build-webpack": "npm:0.1802.8" + "@angular-devkit/core": "npm:18.2.8" + "@angular/build": "npm:18.2.8" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.7" + "@ngtools/webpack": "npm:18.2.8" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/b532ab663b05da2a6117414263e9f4a660c20fd287d7873ec3c4c3eef870aefa442b048f7e372a4f2132291e05df2ddebbcf72de8ca3de673c9547d53fc9c179 + checksum: 10c0/4e7329347ca402723e70b6034322c3c966335b8edf9e8c9d573042c23fcde140f0008c99e49cf0a7613fd0f07c744dd38b2b7c6cf68b2e7c70d49693cafc6d8f languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.7": - version: 0.1802.7 - resolution: "@angular-devkit/build-webpack@npm:0.1802.7" +"@angular-devkit/build-webpack@npm:0.1802.8": + version: 0.1802.8 + resolution: "@angular-devkit/build-webpack@npm:0.1802.8" dependencies: - "@angular-devkit/architect": "npm:0.1802.7" + "@angular-devkit/architect": "npm:0.1802.8" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/845ca754f09185a0f9beb30b6ffe9223bbf301b8d9e8213fb22040bc0decd3f79053caa6080546154c1ab454fdf6c5cd974e2f0bc4c3f1a2e633545b8177813c + checksum: 10c0/07dc829b6024d4e72154bf16ed095a03a87b0b1c1f30eb81cb2073c84850459ed7a2cfda3e9754b54c68ca936bced9df2e81b558ce393818b9bed835ac7d5b5d languageName: node linkType: hard @@ -217,9 +217,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.7": - version: 18.2.7 - resolution: "@angular-devkit/core@npm:18.2.7" +"@angular-devkit/core@npm:18.2.8": + version: 18.2.8 + resolution: "@angular-devkit/core@npm:18.2.8" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -237,7 +237,7 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/50ac4f06bef5a5bd955864e16eda9bd61dee6f91746390bf3a78a0e39309a1b9a72619150c1a8ed0169dc3b1db275f67cf10a746c3d7dea4e2e19a02dcb93867 + checksum: 10c0/c75d01857c21b6db80c92254b8651322d2a185119074761b00ae24e68f1ac4ba137861951de44233e54ea894c3f640324064b061d23c6ce0321f142f33b6b062 languageName: node linkType: hard @@ -254,11 +254,11 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.7": - version: 18.2.7 - resolution: "@angular-devkit/schematics@npm:18.2.7" +"@angular-devkit/schematics@npm:18.2.8": + version: 18.2.8 + resolution: "@angular-devkit/schematics@npm:18.2.8" dependencies: - "@angular-devkit/core": "npm:18.2.7" + "@angular-devkit/core": "npm:18.2.8" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -268,7 +268,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/d7706bf58b4eafe43811ff20c4af77ba01a8327a610ec2da8713ec28a5a7e14ce3612d0f93ab5139f6e9c135c39c0cffaefbb5a3d0dc251d9831803dde3f8c65 + checksum: 10c0/d24cde9f63b79bba98fab7505fdaa8ab3c04fd3c52bdf8afadf8daaeae794a76ee8f43a24cb5aeee20ab6137a242420df34c78ffe7346dcc3a5208dd5624ec84 languageName: node linkType: hard @@ -385,12 +385,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.7": - version: 18.2.7 - resolution: "@angular/build@npm:18.2.7" +"@angular/build@npm:18.2.8": + version: 18.2.8 + resolution: "@angular/build@npm:18.2.8" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.7" + "@angular-devkit/architect": "npm:0.1802.8" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -441,20 +441,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/f893374519d65c3d6fa4fd3dee87d8f6dbcf64a422b2978c9222f0fa0796e18b00160071a40d3b149df70e5496893c97694a2b127ea4b5dfc1fc49da6afd4556 + checksum: 10c0/a7eba735e0ca514043dfe15e2cfa726aed6d6e1b5b69506d8f05ac94cef9975f528d56fe4a56087cfd2596348746e483f193d9f8f39864b0d96fd4b9cc8cc07f languageName: node linkType: hard -"@angular/cli@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/cli@npm:18.2.7" +"@angular/cli@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/cli@npm:18.2.8" dependencies: - "@angular-devkit/architect": "npm:0.1802.7" - "@angular-devkit/core": "npm:18.2.7" - "@angular-devkit/schematics": "npm:18.2.7" + "@angular-devkit/architect": "npm:0.1802.8" + "@angular-devkit/core": "npm:18.2.8" + "@angular-devkit/schematics": "npm:18.2.8" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.7" + "@schematics/angular": "npm:18.2.8" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -473,7 +473,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/9ae21274d4a9951086aacb88c9b02dff45d7a119ae3ef1c88c03016f8f91019d130bb8c06d445bb2c3f04eb87e37e2d317dffc1fc511ee5375e400d1ac63a5bf + checksum: 10c0/aeb29dcb4b9504497fa53228e8fd9162e5dcc17c197b80e430ba73e3408aef8d30bfb01c278fa71979758265cd81d17598dff506a725f4e698e0803739919aca languageName: node linkType: hard @@ -3934,9 +3934,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.7": - version: 18.2.7 - resolution: "@ngtools/webpack@npm:18.2.7" +"@ngtools/webpack@npm:18.2.8": + version: 18.2.8 + resolution: "@ngtools/webpack@npm:18.2.8" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -3946,7 +3946,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/9f7e365857210664eda857a269bc1517c37f96a6d53d32c2fb09a65ad92852b2b6806e7689db7ba14e4634b70d15f93c6aa9f1e4938a1132992fac9ab2cbff20 + checksum: 10c0/256969e65c1b13d0ab66b09eb2d9d6a3aaf3396b2f59ad4e590c87dfe19c81308cd7f302f978098cea2c9c20c75207f75955b76e80900115163ce9d7cd35c2a2 languageName: node linkType: hard @@ -4246,19 +4246,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.7": - version: 18.2.7 - resolution: "@schematics/angular@npm:18.2.7" +"@schematics/angular@npm:18.2.8": + version: 18.2.8 + resolution: "@schematics/angular@npm:18.2.8" dependencies: - "@angular-devkit/core": "npm:18.2.7" - "@angular-devkit/schematics": "npm:18.2.7" + "@angular-devkit/core": "npm:18.2.8" + "@angular-devkit/schematics": "npm:18.2.8" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/eb0cde6347031228478c5a3e6cfa8c442291c1283e58d7b2435eb549ec5c8b679338eba50a650e236debdb6f1e89c88f80f259c4b59eaf8d234bbdb273742998 + checksum: 10c0/a868ea99c62d890adb83ce7be26eb871c28e518c897fc3eccfe2646b64dbdeb5de2d2c590ffc2e564bd22851731b546e2a8c18b90a697b6e34ee6b569ae91afc languageName: node linkType: hard @@ -5925,14 +5925,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.7" + "@angular-devkit/build-angular": "npm:^18.2.8" "@angular-eslint/builder": "npm:^18.3.1" "@angular-eslint/eslint-plugin": "npm:^18.3.1" "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.7" - "@angular/cli": "npm:^18.2.7" + "@angular/cli": "npm:^18.2.8" "@angular/common": "npm:^18.2.7" "@angular/compiler": "npm:^18.2.7" "@angular/compiler-cli": "npm:^18.2.7" From f6447e3d2a325dec1079518981816d89907bede1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 09:46:18 +0000 Subject: [PATCH 134/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.7` | `18.2.8` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.7` | `18.2.8` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.7` | `18.2.8` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.7` | `18.2.8` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.7` | `18.2.8` | | [@angular/localize](https://github.com/angular/angular) | `18.2.7` | `18.2.8` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.7` | `18.2.8` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.7` | `18.2.8` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.7` | `18.2.8` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.7` | `18.2.8` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.7` | `18.2.8` | Updates `@angular/animations` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/animations) Updates `@angular/common` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/common) Updates `@angular/compiler` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/compiler) Updates `@angular/core` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/core) Updates `@angular/forms` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/forms) Updates `@angular/localize` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.7...18.2.8) Updates `@angular/platform-browser` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/platform-server) Updates `@angular/router` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/router) Updates `@angular/compiler-cli` from 18.2.7 to 18.2.8 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.8/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 178 ++++++++++++++++++++++++++++----------------------- 2 files changed, 108 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 10ac11b3af..00ec76d90c 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.7", - "@angular/common": "^18.2.7", - "@angular/compiler": "^18.2.7", - "@angular/core": "^18.2.7", - "@angular/forms": "^18.2.7", - "@angular/localize": "^18.2.7", - "@angular/platform-browser": "^18.2.7", - "@angular/platform-browser-dynamic": "^18.2.7", - "@angular/platform-server": "^18.2.7", - "@angular/router": "^18.2.7", + "@angular/animations": "^18.2.8", + "@angular/common": "^18.2.8", + "@angular/compiler": "^18.2.8", + "@angular/core": "^18.2.8", + "@angular/forms": "^18.2.8", + "@angular/localize": "^18.2.8", + "@angular/platform-browser": "^18.2.8", + "@angular/platform-browser-dynamic": "^18.2.8", + "@angular/platform-server": "^18.2.8", + "@angular/router": "^18.2.8", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", @@ -125,7 +125,7 @@ "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", "@angular/cli": "^18.2.8", - "@angular/compiler-cli": "^18.2.7", + "@angular/compiler-cli": "^18.2.8", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.25", diff --git a/yarn.lock b/yarn.lock index 590fc22859..d7985aefea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -374,14 +374,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/animations@npm:18.2.7" +"@angular/animations@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/animations@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.7 - checksum: 10c0/d36b955bc507c344f2b6e01000950a85c2c9160fe15cdb02f72e742da6a7510bb0d5730bbc14cefe76420a4a31845b2e4aaa54a9340221b8ca731368751f259c + "@angular/core": 18.2.8 + checksum: 10c0/7cd56f1c7a9c3c6d7c700422da31a150af03af27c26ed0616e4d04ba5a6ecc03d3f7180ebd242cbd49da2957e33064d83cbdd9ecb162f34132180382573a0f01 languageName: node linkType: hard @@ -477,157 +477,157 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/common@npm:18.2.7" +"@angular/common@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/common@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.7 + "@angular/core": 18.2.8 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/e552a7680ff59612f7e0fa7e307fbf8f7674cdf0f83d5a325c15f90ee0c4075ded6676003ed89ac8be94804d9d776fb4e97953a8f10aefedf3746a84baf5245b + checksum: 10c0/0d6e9b5313fae935e372f83b12e08ff25b1807cf863dd9885d94255ae44a72a24cd8a549f6f0bdb7b8971903e44ebaf97163499637c0688a02b9cced884b1705 languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/compiler-cli@npm:18.2.7" +"@angular/compiler-cli@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/compiler-cli@npm:18.2.8" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" - chokidar: "npm:^3.0.0" + chokidar: "npm:^4.0.0" convert-source-map: "npm:^1.5.1" reflect-metadata: "npm:^0.2.0" semver: "npm:^7.0.0" tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.7 + "@angular/compiler": 18.2.8 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/494a7fab7a9c0f9ecb57efb93b6c781bfd6454a7b478b3b8f8cc75dfbefc63a3739d325caf21f21fe3b8372d0d2bc392e8c7857787890aaa6cbf6ef3e7f254a6 + checksum: 10c0/d1b9d4fdf1d3638561f30d9741782a76ced8a7b0050d2b6917bb067d24111ff4d12bd7583ad0f977a6c6821f8d1770629f59aef52263fe29c56e3e036518eaa0 languageName: node linkType: hard -"@angular/compiler@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/compiler@npm:18.2.7" +"@angular/compiler@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/compiler@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.7 + "@angular/core": 18.2.8 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/87312d07cd8f0506903bc5e98ce64cbecb6a158b0e9799343aa44e6dc2d3f92498d65571863412dde4a83c5e1eae150346992dfb050b8b6348910634a16ba46a + checksum: 10c0/106084277ea4b31cc217c349d71af66edfae6c8d526406383f6c390854db01f89012ffd619b67af3a63b6d9808d5d2c19546797def59742c6c80ddf7ad4600d1 languageName: node linkType: hard -"@angular/core@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/core@npm:18.2.7" +"@angular/core@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/core@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/e51fc5d52e345706da9ba10f54269a347dd52cbea72847d45f1221c9da93aecc05e21bc19ef71d45f1ab6f662f8f66ccff8309976b86d986c06fbe1a8999827a + checksum: 10c0/2ace1083ff4095689f6b1e2e200ebf60a36242fad6c6ec90bd5a0d57fed20f3cb0422467758a7b77597c74e5294ff4941e16ecfd1f9972f514069d56415bcdd0 languageName: node linkType: hard -"@angular/forms@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/forms@npm:18.2.7" +"@angular/forms@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/forms@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.7 - "@angular/core": 18.2.7 - "@angular/platform-browser": 18.2.7 + "@angular/common": 18.2.8 + "@angular/core": 18.2.8 + "@angular/platform-browser": 18.2.8 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/466ee2a4a49540c909d712f6c01897adb261289327708aeaa85bb0e7a3fdc0838986a525248a5fb3426713e7bd7acc1db202b6178188861c4ac96dae0f94b31b + checksum: 10c0/fb104f7b1e6b07af25b188acba9e4d705ffb3422f66044a9b4f310faf747239f957c1ab41ce9a739b1d74ea438da29af10e3ba62dfd06db137374913e2edb9c4 languageName: node linkType: hard -"@angular/localize@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/localize@npm:18.2.7" +"@angular/localize@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/localize@npm:18.2.8" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.7 - "@angular/compiler-cli": 18.2.7 + "@angular/compiler": 18.2.8 + "@angular/compiler-cli": 18.2.8 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/3da3eeb1a2ddb799b51789d15667863d0e6d09de82d61ca82d22ae0cf8ef14311e01575b0fee1723d7bfa7462bb384fad35366c745bc0acb9a9bad8e502ad639 + checksum: 10c0/38d3b7f4148b431669cf07b85e2d1e841f126580a6f79b0cc10fa9e845e9906dafb99dd07f3f73eda513caea4a9fad9814f4fb992be12d368a09ca0e1d22100b languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/platform-browser-dynamic@npm:18.2.7" +"@angular/platform-browser-dynamic@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/platform-browser-dynamic@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.7 - "@angular/compiler": 18.2.7 - "@angular/core": 18.2.7 - "@angular/platform-browser": 18.2.7 - checksum: 10c0/a2d57aceedc6ca0846fb2d8595b3d2e2645215a38d8520768ddf8a461b1183ac0597c57fd3b2968fcc87ec61a5a52fb50e415a08259063a8d9b596d8fe2a999a + "@angular/common": 18.2.8 + "@angular/compiler": 18.2.8 + "@angular/core": 18.2.8 + "@angular/platform-browser": 18.2.8 + checksum: 10c0/5f34348a3ce2c2e0c7f41109c92e2fae8ec645a733a4e55484b5575ca0994ef776e44622acfb1cb06d50487d6a960086ffb73cd678c9cbfb48dd49b9f517418a languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/platform-browser@npm:18.2.7" +"@angular/platform-browser@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/platform-browser@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.7 - "@angular/common": 18.2.7 - "@angular/core": 18.2.7 + "@angular/animations": 18.2.8 + "@angular/common": 18.2.8 + "@angular/core": 18.2.8 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/59faa493fc3faddc9bf0743f0ac1da4d4105cf2ca2e9f37a706595237d41164ee5aa133523f1e6c86f926dad31fa346635c1d01e3f9a607a927a56b8512b0b93 + checksum: 10c0/78ff208bd662990ac7754b2c7881e96460ec0a30b16049fc020387ac51c57ab004f44482ea77a8fb73d8d2776bfca8d3351df7ed02bf1ef207bfec1bc55f0a7f languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/platform-server@npm:18.2.7" +"@angular/platform-server@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/platform-server@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.7 - "@angular/common": 18.2.7 - "@angular/compiler": 18.2.7 - "@angular/core": 18.2.7 - "@angular/platform-browser": 18.2.7 - checksum: 10c0/cad2d1db929cec641d9d14ac8cc029ee6e63de5477c8f83656ddda2d9ae528c1e4c2c0bb3afa57d317d395ca790551a907805853cf1a8c9019149fe9eefb6e7c + "@angular/animations": 18.2.8 + "@angular/common": 18.2.8 + "@angular/compiler": 18.2.8 + "@angular/core": 18.2.8 + "@angular/platform-browser": 18.2.8 + checksum: 10c0/459a2d8fc425756f7171f6d4f9dc5f99b678d1359c487464c0e970ce521e9a126e4f0a67400b941166466796f5d97a258e41329b7daf200e7217da6faa6ffb83 languageName: node linkType: hard -"@angular/router@npm:^18.2.7": - version: 18.2.7 - resolution: "@angular/router@npm:18.2.7" +"@angular/router@npm:^18.2.8": + version: 18.2.8 + resolution: "@angular/router@npm:18.2.8" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.7 - "@angular/core": 18.2.7 - "@angular/platform-browser": 18.2.7 + "@angular/common": 18.2.8 + "@angular/core": 18.2.8 + "@angular/platform-browser": 18.2.8 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/85ea724bbaa3580213dc6683c2c7747ca2f446b36f2a48f375e432e5960021be86492f537248a0bf2c968ac2174d7736b167cc8bc77f55bf46720bf51f6f2041 + checksum: 10c0/f4565a4c263d1ebe7f5dff80597dfcad1361da8cd3b8932651ef47c6273effcc991b2ce735fe65ae8902647cd3727515eb782cf5af21d884ac0ca9730f7a9d5d languageName: node linkType: hard @@ -5931,18 +5931,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" - "@angular/animations": "npm:^18.2.7" + "@angular/animations": "npm:^18.2.8" "@angular/cli": "npm:^18.2.8" - "@angular/common": "npm:^18.2.7" - "@angular/compiler": "npm:^18.2.7" - "@angular/compiler-cli": "npm:^18.2.7" - "@angular/core": "npm:^18.2.7" - "@angular/forms": "npm:^18.2.7" - "@angular/localize": "npm:^18.2.7" - "@angular/platform-browser": "npm:^18.2.7" - "@angular/platform-browser-dynamic": "npm:^18.2.7" - "@angular/platform-server": "npm:^18.2.7" - "@angular/router": "npm:^18.2.7" + "@angular/common": "npm:^18.2.8" + "@angular/compiler": "npm:^18.2.8" + "@angular/compiler-cli": "npm:^18.2.8" + "@angular/core": "npm:^18.2.8" + "@angular/forms": "npm:^18.2.8" + "@angular/localize": "npm:^18.2.8" + "@angular/platform-browser": "npm:^18.2.8" + "@angular/platform-browser-dynamic": "npm:^18.2.8" + "@angular/platform-server": "npm:^18.2.8" + "@angular/router": "npm:^18.2.8" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" @@ -6517,7 +6517,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.0.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.6.0": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -6536,6 +6536,15 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^4.0.0": + version: 4.0.1 + resolution: "chokidar@npm:4.0.1" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10c0/4bb7a3adc304059810bb6c420c43261a15bb44f610d77c35547addc84faa0374265c3adc67f25d06f363d9a4571962b02679268c40de07676d260de1986efea9 + languageName: node + linkType: hard + "chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -14129,6 +14138,13 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:^4.0.1": + version: 4.0.2 + resolution: "readdirp@npm:4.0.2" + checksum: 10c0/a16ecd8ef3286dcd90648c3b103e3826db2b766cdb4a988752c43a83f683d01c7059158d623cbcd8bdfb39e65d302d285be2d208e7d9f34d022d912b929217dd + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" From 7bc1a87231060e43aaa867e52f228cee5037ca4e Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 11 Oct 2024 11:49:38 +0200 Subject: [PATCH 135/213] feat(edition): add service method to load section intro data --- .../services/edition-data.service.spec.ts | 2781 +++++++++-------- .../services/edition-data.service.ts | 85 +- 2 files changed, 1557 insertions(+), 1309 deletions(-) diff --git a/src/app/views/edition-view/services/edition-data.service.spec.ts b/src/app/views/edition-view/services/edition-data.service.spec.ts index e450366506..c88b89715d 100644 --- a/src/app/views/edition-view/services/edition-data.service.spec.ts +++ b/src/app/views/edition-view/services/edition-data.service.spec.ts @@ -49,6 +49,18 @@ describe('EditionDataService (DONE)', () => { let editionDataService: EditionDataService; let consoleSpy: Spy; + let generateAssetPathSpy: Spy; + let getFolioConvoluteDataSpy: Spy; + let getGraphDataSpy: Spy; + let getIntroDataSpy: Spy; + let getJsonDataSpy: Spy; + let getPrefaceDataSpy: Spy; + let getRowTablesDataSpy: Spy; + let getSourceListDataSpy: Spy; + let getSourceDescriptionListDataSpy: Spy; + let getSourceEvaluationListDataSpy: Spy; + let getSvgSheetsDataSpy: Spy; + let getTextcriticsListDataSpy: Spy; let httpClient: HttpClient; let httpTestingController: HttpTestingController; @@ -58,6 +70,9 @@ describe('EditionDataService (DONE)', () => { let expectedEditionComplex: EditionComplex; let expectedComplexRoute: string; + let expectedIntroRoute: string; + let expectedSeriesRoute: string; + let expectedSectionRoute: string; let expectedAssetPath: string; let regexBase: RegExp; @@ -93,16 +108,18 @@ describe('EditionDataService (DONE)', () => { // Test data expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); - expectedComplexRoute = + expectedSeriesRoute = expectedEditionComplex.pubStatement.series.route; + expectedSectionRoute = expectedEditionComplex.pubStatement.section.route; + expectedIntroRoute = delimiter + EDITION_ROUTE_CONSTANTS.SERIES.route + delimiter + - expectedEditionComplex.pubStatement.series.route + + expectedSeriesRoute + delimiter + EDITION_ROUTE_CONSTANTS.SECTION.route + delimiter + - expectedEditionComplex.pubStatement.section.route + - expectedEditionComplex.complexId.route; + expectedSectionRoute; + expectedComplexRoute = expectedIntroRoute + expectedEditionComplex.complexId.route; expectedAssetPath = expectedAssetPathBaseRoute + expectedComplexRoute; regexBase = new RegExp(expectedAssetPath); @@ -122,6 +139,25 @@ describe('EditionDataService (DONE)', () => { // Spies on console logs consoleSpy = spyOn(console, 'error').and.callFake(mockConsole.log); + + generateAssetPathSpy = spyOn(editionDataService as any, '_generateAssetPath').and.callThrough(); + getFolioConvoluteDataSpy = spyOn(editionDataService as any, '_getFolioConvoluteData').and.callThrough(); + getGraphDataSpy = spyOn(editionDataService as any, '_getGraphData').and.callThrough(); + getIntroDataSpy = spyOn(editionDataService as any, '_getIntroData').and.callThrough(); + getJsonDataSpy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); + getPrefaceDataSpy = spyOn(editionDataService as any, '_getPrefaceData').and.callThrough(); + getRowTablesDataSpy = spyOn(editionDataService as any, '_getRowTablesData').and.callThrough(); + getSourceListDataSpy = spyOn(editionDataService as any, '_getSourceListData').and.callThrough(); + getSourceDescriptionListDataSpy = spyOn( + editionDataService as any, + '_getSourceDescriptionListData' + ).and.callThrough(); + getSourceEvaluationListDataSpy = spyOn( + editionDataService as any, + '_getSourceEvaluationListData' + ).and.callThrough(); + getSvgSheetsDataSpy = spyOn(editionDataService as any, '_getSvgSheetsData').and.callThrough(); + getTextcriticsListDataSpy = spyOn(editionDataService as any, '_getTextcriticsListData').and.callThrough(); }); // After every test, assert that there are no more pending requests @@ -165,15 +201,15 @@ describe('EditionDataService (DONE)', () => { })); }); - describe('#getEditionSheetsData()', () => { - it('... should have a method `getEditionSheetsData`', () => { - expect(editionDataService.getEditionSheetsData).toBeDefined(); + describe('#getEditionGraphData()', () => { + it('... should have a method `getEditionGraphData`', () => { + expect(editionDataService.getEditionGraphData).toBeDefined(); }); describe('request', () => { it('... should set assetPath', waitForAsync(() => { // Call service function - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -185,23 +221,9 @@ describe('EditionDataService (DONE)', () => { expectToBe((editionDataService as any)._assetPath, expectedAssetPath); })); - it('... should call #getFolioConvoluteData, #getSvgSheetsData, #getTextcriticsListData', waitForAsync(() => { - // Set spy on private method - const getFolioConvoluteDataSpy: Spy = spyOn( - editionDataService as any, - '_getFolioConvoluteData' - ).and.callThrough(); - const getSvgSheetsDataSpy: Spy = spyOn( - editionDataService as any, - '_getSvgSheetsData' - ).and.callThrough(); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.callThrough(); - + it('... should call #getGraphData', waitForAsync(() => { // Call service function - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -210,17 +232,12 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getFolioConvoluteDataSpy, 1); - expectSpyCall(getSvgSheetsDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getGraphDataSpy, 1); })); - it('... should trigger #getJsonData with correct urls', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - + it('... should trigger #getJsonData with correct url', waitForAsync(() => { // Call service function - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -229,18 +246,13 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getJsonDataSpy, 3); - expectToBe(getJsonDataSpy.calls.allArgs()[0][0], expectedFolioConvoluteFilePath); - expectToBe(getJsonDataSpy.calls.allArgs()[1][0], expectedSheetsFilePath); - expectToBe(getJsonDataSpy.calls.allArgs()[2][0], expectedTextcriticsFilePath); + expectSpyCall(getGraphDataSpy, 1); + expectSpyCall(getJsonDataSpy, 1, expectedGraphFilePath); })); - it('... should perform an HTTP GET request to convolute, sheets & textcritics file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - + it('... should perform an HTTP GET request to graph file', waitForAsync(() => { // Call service function - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -255,20 +267,12 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectSpyCall(getJsonDataSpy, 3); - - expectToBe(call.length, 3); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[1].request.method, 'GET'); - expectToBe(call[2].request.method, 'GET'); - - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[1].request.responseType, 'json'); - expectToBe(call[2].request.responseType, 'json'); + expectSpyCall(getJsonDataSpy, 1, expectedGraphFilePath); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call.length, 1); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[0]?.request.url, expectedGraphFilePath); // Assert that there are no more pending requests httpTestingController.verify(); @@ -277,123 +281,57 @@ describe('EditionDataService (DONE)', () => { describe('response', () => { describe('success', () => { - it('... should return a forkJoined Observable(FolioConvoluteList, EditionSvgSheetList, TextcriticsList)', waitForAsync(() => { - const fcl = new FolioConvoluteList(); - fcl.convolutes = []; - fcl.convolutes.push(new FolioConvolute()); - fcl.convolutes[0].convoluteId = 'test-convolute-id'; - - const esl = new EditionSvgSheetList(); - esl.sheets = { workEditions: [], textEditions: [], sketchEditions: [] }; - esl.sheets.workEditions.push(new EditionSvgSheet()); - esl.sheets.textEditions.push(new EditionSvgSheet()); - esl.sheets.sketchEditions.push(new EditionSvgSheet()); - esl.sheets.workEditions[0].id = 'test-svg-work-sheets-id'; - esl.sheets.textEditions[0].id = 'test-svg-text-sheets-id'; - esl.sheets.sketchEditions[0].id = 'test-svg-sketch-sheets-id'; - - const tcl = new TextcriticsList(); - tcl.textcritics = []; - tcl.textcritics.push(new Textcritics()); - tcl.textcritics[0].id = 'test-textcritics-id'; + it('... should return an Observable(GraphList)', waitForAsync(() => { + const gl = new GraphList(); + gl.graph = []; + gl.graph.push(new Graph()); + gl.graph[0].id = 'test-graph-id'; - const expectedResult = [fcl, esl, tcl]; + const expectedResult = gl; - // Set spy on private method - const getFolioConvoluteDataSpy: Spy = spyOn( - editionDataService as any, - '_getFolioConvoluteData' - ).and.returnValue(observableOf(fcl)); - const getSvgSheetsDataSpy: Spy = spyOn( - editionDataService as any, - '_getSvgSheetsData' - ).and.returnValue(observableOf(esl)); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.returnValue(observableOf(tcl)); + getGraphDataSpy.and.returnValue(observableOf(expectedResult)); // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { - const resFcl = res[0] as FolioConvoluteList; - const resEsl = res[1] as EditionSvgSheetList; - const resTcl = res[2] as TextcriticsList; - - expectToBe(res.length as number, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(resFcl, expectedResult[0] as FolioConvoluteList); - expectToEqual(resEsl, expectedResult[1] as EditionSvgSheetList); - expectToEqual(resTcl, expectedResult[2] as TextcriticsList); - - expectToBe(resFcl.convolutes[0].convoluteId, 'test-convolute-id'); - expectToBe(resEsl.sheets.workEditions[0].id, 'test-svg-work-sheets-id'); - expectToBe(resEsl.sheets.textEditions[0].id, 'test-svg-text-sheets-id'); - expectToBe(resEsl.sheets.sketchEditions[0].id, 'test-svg-sketch-sheets-id'); - expectToBe(resTcl.textcritics[0].id, 'test-textcritics-id'); + expectToBe(res.graph[0].id, 'test-graph-id'); }, error: () => { fail('should not call error'); }, }); - expectSpyCall(getFolioConvoluteDataSpy, 1); - expectSpyCall(getSvgSheetsDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getGraphDataSpy, 1); })); - it('... should return an empty forkJoined Observable per default', waitForAsync(() => { - const expectedResult = [new FolioConvoluteList(), new EditionSvgSheetList(), new TextcriticsList()]; + it('... should return an empty GraphList Observable per default', waitForAsync(() => { + const expectedResult = new GraphList(); - // Set spy on private method - const getFolioConvoluteDataSpy: Spy = spyOn( - editionDataService as any, - '_getFolioConvoluteData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new FolioConvoluteList()))); - const getSvgSheetsDataSpy: Spy = spyOn( - editionDataService as any, - '_getSvgSheetsData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new EditionSvgSheetList()))); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new TextcriticsList()))); + getGraphDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(expectedResult))); // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: res => { - expectToBe(res.length as number, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], expectedResult[0] as FolioConvoluteList); - expectToEqual(res[1], expectedResult[1] as EditionSvgSheetList); - expectToEqual(res[2], expectedResult[2] as TextcriticsList); }, error: () => { fail('should not call error'); }, }); - expectSpyCall(getFolioConvoluteDataSpy, 1); - expectSpyCall(getSvgSheetsDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getGraphDataSpy, 1); })); }); describe('fail', () => { it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = [[], [], []]; + const expectedResult = []; // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -406,54 +344,29 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedGraphFilePath); // Resolve request with mocked error - call[0].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) - ); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) - ); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_GRAPHLIST' })); - expectSpyCall(consoleSpy, 3); - expectToBe( - consoleSpy.calls.allArgs()[0][0], - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_FOLIOCONVOLUTELIST` - ); - expectToBe( - consoleSpy.calls.allArgs()[1][0], - `_getJsonData failed: Http failure response for ${call[1].request.url}: 400 ERROR_LOADING_EDITIONSVGSHEETLIST` - ); - expectToBe( - consoleSpy.calls.allArgs()[2][0], - `_getJsonData failed: Http failure response for ${call[2].request.url}: 400 ERROR_LOADING_TEXTCRITICSLIST` + // Check for console output + expectSpyCall( + consoleSpy, + 1, + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_GRAPHLIST` ); // Assert that there are no more pending requests httpTestingController.verify(); })); - it('... should return [[], [], []] if all requests failed', waitForAsync(() => { - const expectedResult = [[], [], []]; + it('... should return [] if request failed', waitForAsync(() => { + const expectedResult = []; // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -466,224 +379,152 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedGraphFilePath); // Resolve request with mocked error - call[0].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) - ); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) - ); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_GRAPHLIST' })); // Check for console output - expectSpyCall(consoleSpy, 3); + expectSpyCall(consoleSpy, 1); // Assert that there are no more pending requests httpTestingController.verify(); })); + }); + }); + }); - it('... should return [folioConvoluteList, [], []] if all but folioConvoluteList request failed', waitForAsync(() => { - const expectedResult = [new FolioConvoluteList(), [], []]; + describe('#getEditionComplexIntroData', () => { + it('... should have a method `getEditionComplexIntroData`', () => { + expect(editionDataService.getEditionComplexIntroData).toBeDefined(); + }); - // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); - expectToEqual(res, expectedResult); + describe('request', () => { + it('... should set assetPath', waitForAsync(() => { + // Call service function + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - expectToEqual(res[0], expectedResult[0]); - expectToEqual(res[1], []); - expectToEqual(res[2], []); - }, - error: () => { - fail('should not call error'); - }, - }); + expectToBe((editionDataService as any)._assetPath, expectedAssetPath); + })); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + it('... should call #getIntroData', waitForAsync(() => { + // Call service function + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectSpyCall(getIntroDataSpy, 1); + })); - // Resolve request with mocked error - call[0].flush(expectedResult[0]); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) - ); + it('... should trigger #getJsonData with correct url', waitForAsync(() => { + // Call service function + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - // Check for console output - expectSpyCall(consoleSpy, 2); + expectSpyCall(getIntroDataSpy, 1); + expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); + })); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + it('... should perform an HTTP GET request to intro file', waitForAsync(() => { + // Call service function + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - it('... should return [[], editionSvgSheetList, []] if all but editionSvgSheetList request failed', waitForAsync(() => { - const expectedResult = [[], new EditionSvgSheetList(), []]; + // Expect one request to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); - expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], expectedResult[1]); - expectToEqual(res[2], []); - }, - error: () => { - fail('should not call error'); - }, - }); - - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call.length, 1); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[0]?.request.url, expectedIntroFilePath); - // Resolve request with mocked error - call[0].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) - ); - call[1].flush(expectedResult[1]); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) - ); + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); - // Check for console output - expectSpyCall(consoleSpy, 2); + describe('response', () => { + describe('success', () => { + it('... should return an Observable(IntroList)', waitForAsync(() => { + const il = new IntroList(); + il.intro = []; + il.intro.push(new Intro()); + il.intro[0].id = 'test-intro-id'; - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + const expectedResult = il; - it('... should return [[], [], textcriticsList] if all but textcriticsList request failed', waitForAsync(() => { - const expectedResult = [[], [], new TextcriticsList()]; + getIntroDataSpy.and.returnValue(observableOf(expectedResult)); // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], expectedResult[2]); + expectToBe(res.intro[0].id, 'test-intro-id'); }, error: () => { fail('should not call error'); }, }); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); - - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); - - // Resolve request with mocked error - call[0].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) - ); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) - ); - call[2].flush(expectedResult[2]); - - // Check for console output - expectSpyCall(consoleSpy, 2); - - // Assert that there are no more pending requests - httpTestingController.verify(); + expectSpyCall(getIntroDataSpy, 1); })); - it('... should return [folioConvoluteList, editionSvgSheetList, []] if textcriticsList request failed', waitForAsync(() => { - const expectedResult = [new FolioConvoluteList(), new EditionSvgSheetList(), []]; + it('... should return an empty IntroList Observable per default', waitForAsync(() => { + const expectedResult = new IntroList(); + + getIntroDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(expectedResult))); // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ + next: res => { expectToEqual(res, expectedResult); - - expectToEqual(res[0], expectedResult[0]); - expectToEqual(res[1], expectedResult[1]); - expectToEqual(res[2], []); }, error: () => { fail('should not call error'); }, }); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); - - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); - - // Resolve request with mocked error - call[0].flush(expectedResult[0]); - call[1].flush(expectedResult[1]); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) - ); - - // Check for console output - expectSpyCall(consoleSpy, 1); - - // Assert that there are no more pending requests - httpTestingController.verify(); + expectSpyCall(getIntroDataSpy, 1); })); + }); - it('... should return [folioConvoluteList, [], textcriticsList] if middle request failed', waitForAsync(() => { - const expectedResult = [new FolioConvoluteList(), [], new TextcriticsList()]; + describe('fail', () => { + it('... should log an error for every failed request', waitForAsync(() => { + const expectedResult = []; // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], expectedResult[0]); - expectToEqual(res[1], []); - expectToEqual(res[2], expectedResult[2]); }, error: () => { fail('should not call error'); @@ -696,37 +537,29 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedIntroFilePath); // Resolve request with mocked error - call[0].flush(expectedResult[0]); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) - ); - call[2].flush(expectedResult[2]); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); // Check for console output - expectSpyCall(consoleSpy, 1); + expectSpyCall( + consoleSpy, + 1, + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_INTROLIST` + ); // Assert that there are no more pending requests httpTestingController.verify(); })); - it('... should return [[], editionSvgSheetList, textcriticsList] if folioConvoluteList request failed', waitForAsync(() => { - const expectedResult = [[], new EditionSvgSheetList(), new TextcriticsList()]; + it('... should return [] if request failed', waitForAsync(() => { + const expectedResult = []; // Call service function (success) - editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + editionDataService.getEditionComplexIntroData(expectedEditionComplex).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], expectedResult[1]); - expectToEqual(res[2], expectedResult[2]); }, error: () => { fail('should not call error'); @@ -739,17 +572,10 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedFolioConvoluteFilePath); - expectToBe(call[1].request.url, expectedSheetsFilePath); - expectToBe(call[2].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedIntroFilePath); // Resolve request with mocked error - call[0].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) - ); - call[1].flush(expectedResult[1]); - call[2].flush(expectedResult[2]); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); // Check for console output expectSpyCall(consoleSpy, 1); @@ -761,15 +587,21 @@ describe('EditionDataService (DONE)', () => { }); }); - describe('#getEditionReportData()', () => { - it('... should have a method `getEditionReportData`', () => { - expect(editionDataService.getEditionReportData).toBeDefined(); + describe('#getEditionSectionIntroData', () => { + beforeEach(() => { + expectedAssetPath = expectedAssetPathBaseRoute + expectedIntroRoute; + expectedIntroFilePath = `${expectedAssetPath}/${files.introFile}`; + regexBase = new RegExp(expectedAssetPath); + }); + + it('... should have a method `getEditionSectionIntroData`', () => { + expect(editionDataService.getEditionSectionIntroData).toBeDefined(); }); describe('request', () => { it('... should set assetPath', waitForAsync(() => { // Call service function - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -781,27 +613,9 @@ describe('EditionDataService (DONE)', () => { expectToBe((editionDataService as any)._assetPath, expectedAssetPath); })); - it('... should call #getSourceListData, #getSourceDescriptionListData, #getSourceEvaluationListData, #getTextcriticsListData', waitForAsync(() => { - // Set spy on private method - const getSourceListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceListData' - ).and.callThrough(); - const getSourceDescriptionListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceDescriptionListData' - ).and.callThrough(); - const getSourceEvaluationListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceEvaluationListData' - ).and.callThrough(); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.callThrough(); - + it('... should call #getIntroData', waitForAsync(() => { // Call service function - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -810,18 +624,12 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getSourceListDataSpy, 1); - expectSpyCall(getSourceDescriptionListDataSpy, 1); - expectSpyCall(getSourceEvaluationListDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getIntroDataSpy, 1); })); - it('... should trigger #getJsonData with correct urls', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - + it('... should trigger #getJsonData with correct url', waitForAsync(() => { // Call service function - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -830,50 +638,34 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getJsonDataSpy, 4); - expectToBe(getJsonDataSpy.calls.allArgs()[0][0], expectedSourceListFilePath); - expectToBe(getJsonDataSpy.calls.allArgs()[1][0], expectedSourceDescriptionFilePath); - expectToBe(getJsonDataSpy.calls.allArgs()[2][0], expectedSourceEvaluationFilePath); - expectToBe(getJsonDataSpy.calls.allArgs()[3][0], expectedTextcriticsFilePath); + expectSpyCall(getIntroDataSpy, 1); + expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); })); - it('... should perform an HTTP GET request to sourceList, sourceDescription, sourceEvaluation & textcritics file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - + it('... should perform an HTTP GET request to intro file', waitForAsync(() => { // Call service function - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { expect(res).toBeTruthy(); + console.log('res', res); }, error: () => { fail('should not call error'); }, }); - // Expect one request to to every file with given settings + // Expect one request to every file with given settings const call = httpTestingController.match( (req: HttpRequest) => req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectSpyCall(getJsonDataSpy, 4); - - expectToBe(call.length, 4); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[1].request.method, 'GET'); - expectToBe(call[2].request.method, 'GET'); - expectToBe(call[3].request.method, 'GET'); - - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[1].request.responseType, 'json'); - expectToBe(call[2].request.responseType, 'json'); - expectToBe(call[3].request.responseType, 'json'); + expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call.length, 1); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[0]?.request.url, expectedIntroFilePath); // Assert that there are no more pending requests httpTestingController.verify(); @@ -882,109 +674,38 @@ describe('EditionDataService (DONE)', () => { describe('response', () => { describe('success', () => { - it('... should return a forkJoined Observable(SourceList, SourceDescriptionList, SourceEvaluationList, TextcriticsList)', waitForAsync(() => { - const sl = new SourceList(); - sl.sources = []; - sl.sources.push(new Source()); - sl.sources[0].siglum = 'test-sources-id'; - - const sdl = new SourceDescriptionList(); - sdl.sources = []; - sdl.sources.push(new SourceDescription()); - sdl.sources[0].id = 'test-source-description-id'; - - const sel = new SourceEvaluationList(); - sel.sources = []; - sel.sources.push(new SourceEvaluation()); - sel.sources[0].id = 'test-source-evaluation-id'; - - const tcl = new TextcriticsList(); - tcl.textcritics = []; - tcl.textcritics.push(new Textcritics()); - tcl.textcritics[0].id = 'test-textcritics-id'; + it('... should return an Observable(IntroList)', waitForAsync(() => { + const il = new IntroList(); + il.intro = []; + il.intro.push(new Intro()); + il.intro[0].id = 'test-intro-id'; - const expectedResult = [sl, sdl, sel, tcl]; + const expectedResult = il; - // Set spy on private method - const getSourceListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceListData' - ).and.returnValue(observableOf(sl)); - const getSourceDescriptionListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceDescriptionListData' - ).and.returnValue(observableOf(sdl)); - const getSourceEvaluationListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceEvaluationListData' - ).and.returnValue(observableOf(sel)); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.returnValue(observableOf(tcl)); + getIntroDataSpy.and.returnValue(observableOf(expectedResult)); // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { - const resSl = res[0] as SourceList; - const resSdl = res[1] as SourceDescriptionList; - const resSel = res[2] as SourceEvaluationList; - const resTcl = res[3] as TextcriticsList; - - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(resSl, expectedResult[0] as SourceList); - expectToEqual(resSdl, expectedResult[1] as SourceDescriptionList); - expectToEqual(resSel, expectedResult[2] as SourceEvaluationList); - expectToEqual(resTcl, expectedResult[3] as TextcriticsList); - - expectToBe(resSl.sources[0].siglum, 'test-sources-id'); - expectToBe(resSdl.sources[0].id, 'test-source-description-id'); - expectToBe(resSel.sources[0].id, 'test-source-evaluation-id'); - expectToBe(resTcl.textcritics[0].id, 'test-textcritics-id'); + expectToBe(res.intro[0].id, 'test-intro-id'); }, error: () => { fail('should not call error'); }, }); - expectSpyCall(getSourceListDataSpy, 1); - expectSpyCall(getSourceDescriptionListDataSpy, 1); - expectSpyCall(getSourceEvaluationListDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getIntroDataSpy, 1); })); - it('... should return an empty forkJoined Observable per default', waitForAsync(() => { - const expectedResult = [ - new SourceList(), - new SourceDescriptionList(), - new SourceEvaluationList(), - new TextcriticsList(), - ]; + it('... should return an empty IntroList Observable per default', waitForAsync(() => { + const expectedResult = new IntroList(); - // Set spy on private method - const getSourceListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceListData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new SourceList()))); - const getSourceDescriptionListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceDescriptionListData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new SourceDescriptionList()))); - const getSourceEvaluationListDataSpy: Spy = spyOn( - editionDataService as any, - '_getSourceEvaluationListData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new SourceEvaluationList()))); - const getTextcriticsListDataSpy: Spy = spyOn( - editionDataService as any, - '_getTextcriticsListData' - ).and.returnValue(EMPTY.pipe(defaultIfEmpty(new TextcriticsList()))); + getIntroDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(expectedResult))); // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); }, error: () => { @@ -992,27 +713,18 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getSourceListDataSpy, 1); - expectSpyCall(getSourceDescriptionListDataSpy, 1); - expectSpyCall(getSourceEvaluationListDataSpy, 1); - expectSpyCall(getTextcriticsListDataSpy, 1); + expectSpyCall(getIntroDataSpy, 1); })); }); describe('fail', () => { it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = [[], [], [], []]; + const expectedResult = []; // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], []); - expectToEqual(res[3], []); }, error: () => { fail('should not call error'); @@ -1025,62 +737,29 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedIntroFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) - ); - call[3].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) - ); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); // Check for console output - expectSpyCall(consoleSpy, 4); - expectToBe( - consoleSpy.calls.allArgs()[0][0], - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_SOURCELIST` - ); - expectToBe( - consoleSpy.calls.allArgs()[1][0], - `_getJsonData failed: Http failure response for ${call[1].request.url}: 400 ERROR_LOADING_SOURCELISTDESCRIPTION` - ); - expectToBe( - consoleSpy.calls.allArgs()[2][0], - `_getJsonData failed: Http failure response for ${call[2].request.url}: 400 ERROR_LOADING_SOURCELISTEVALUATION` - ); - expectToBe( - consoleSpy.calls.allArgs()[3][0], - `_getJsonData failed: Http failure response for ${call[3].request.url}: 400 ERROR_LOADING_TEXTCRITICS` + expectSpyCall( + consoleSpy, + 1, + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_INTROLIST` ); // Assert that there are no more pending requests httpTestingController.verify(); })); - it('... should return [[], [], [], []] if all requests failed', waitForAsync(() => { - const expectedResult = [[], [], [], []]; + it('... should return [] if request failed', waitForAsync(() => { + const expectedResult = []; // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: (res: any) => { - expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); - - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], []); - expectToEqual(res[3], []); }, error: () => { fail('should not call error'); @@ -1093,163 +772,656 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedIntroFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) - ); - call[3].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) - ); + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); // Check for console output - expectSpyCall(consoleSpy, 4); + expectSpyCall(consoleSpy, 1); // Assert that there are no more pending requests httpTestingController.verify(); })); + }); + }); + }); - it('... should return [sourceList, [], [], []] if all but sourceList request failed', waitForAsync(() => { - const expectedResult = [new SourceList(), [], [], []]; - - // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); - expectToEqual(res, expectedResult); - - expectToEqual(res[0], expectedResult[0]); - expectToEqual(res[1], []); - expectToEqual(res[2], []); - expectToEqual(res[3], []); - }, - error: () => { - fail('should not call error'); - }, - }); + describe('#getEditionPrefaceData()', () => { + it('... should have a method `getEditionPrefaceData`', () => { + expect(editionDataService.getEditionPrefaceData).toBeDefined(); + }); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + describe('request', () => { + it('... should set assetPath', waitForAsync(() => { + // Call service function + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe((editionDataService as any)._assetPath, expectedAssetPathBaseRoute); + })); - // Resolve request with mocked error - call[0].flush(expectedResult[0]); - call[1].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) - ); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) - ); - call[3].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) - ); + it('... should call #_getPrefaceData', waitForAsync(() => { + // Call service function + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - // Check for console output - expectSpyCall(consoleSpy, 3); + expectSpyCall(getPrefaceDataSpy, 1); + })); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + it('... should trigger #getJsonData with correct url', waitForAsync(() => { + // Call service function + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); - it('... should return [[], sourceDescriptionList, [], []] if all but sourceDescriptionList request failed', waitForAsync(() => { - const expectedResult = [[], new SourceDescriptionList(), [], []]; + expectSpyCall(getPrefaceDataSpy, 1); + expectSpyCall(getJsonDataSpy, 1, expectedPrefaceFilePath); + })); - // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); - expectToEqual(res, expectedResult); + it('... should perform an HTTP GET request to preface file', waitForAsync(() => { + // Call service function + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expectToEqual(res, new PrefaceList()); + }, + error: () => { + fail('should not call error'); + }, + }); - expectToEqual(res[0], []); - expectToEqual(res[1], expectedResult[1]); - expectToEqual(res[2], []); - expectToEqual(res[3], []); - }, - error: () => { - fail('should not call error'); - }, - }); + // Expect one request to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + expectSpyCall(getJsonDataSpy, 1, expectedPrefaceFilePath); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call.length, 1); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[0]?.request.url, expectedPrefaceFilePath); - // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); - call[1].flush(expectedResult[1]); - call[2].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) - ); - call[3].flush( - null, - new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) - ); + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); - // Check for console output - expectSpyCall(consoleSpy, 3); + describe('success', () => { + it('... should return an Observable(PrefaceList)', waitForAsync(() => { + const rt = expectedPrefaceData; - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + const expectedResult = rt; - it('... should return [[], [], sourceEvaluationList, []] if all but sourceEvaluationList request failed', waitForAsync(() => { - const expectedResult = [[], [], new SourceEvaluationList(), []]; + getPrefaceDataSpy.and.returnValue(observableOf(expectedResult)); - // Call service function (success) - editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ - next: (res: any) => { - expectToBe(res.length, expectedResult.length); - expectToEqual(res, expectedResult); + // Call service function (success) + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expectToEqual(res, expectedResult); + expectToBe(res.preface[0].id, 'de'); + expectToBe(res.preface[1].id, 'en'); + }, + error: () => { + fail('should not call error'); + }, + }); - expectToEqual(res[0], []); - expectToEqual(res[1], []); - expectToEqual(res[2], expectedResult[2]); - expectToEqual(res[3], []); - }, - error: () => { - fail('should not call error'); - }, - }); + expectSpyCall(getPrefaceDataSpy, 1); + })); - // Expect one request to to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + it('... should return an empty PrefaceList Observable per default', waitForAsync(() => { + const expectedResult = new PrefaceList(); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + getPrefaceDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(expectedResult))); + + // Call service function (success) + editionDataService.getEditionPrefaceData().subscribe({ + next: res => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getPrefaceDataSpy, 1); + })); + }); + + describe('fail', () => { + it('... should log an error for every failed request', waitForAsync(() => { + const expectedResult = []; + + // Call service function (success) + editionDataService.getEditionPrefaceData().subscribe({ + next: (res: any) => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedPrefaceFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_PREFACELIST' })); + + // Check for console output + expectSpyCall( + consoleSpy, + 1, + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_PREFACELIST` + ); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [] if request failed', waitForAsync(() => { + const expectedResult = []; + + // Call service function (success) + editionDataService.getEditionPrefaceData().subscribe({ + next: (res: any) => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedPrefaceFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_PREFACELIST' })); + + // Check for console output + expectSpyCall(consoleSpy, 1); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); + }); + + describe('#getEditionReportData()', () => { + it('... should have a method `getEditionReportData`', () => { + expect(editionDataService.getEditionReportData).toBeDefined(); + }); + + describe('request', () => { + it('... should set assetPath', waitForAsync(() => { + // Call service function + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectToBe((editionDataService as any)._assetPath, expectedAssetPath); + })); + + it('... should call #getSourceListData, #getSourceDescriptionListData, #getSourceEvaluationListData, #getTextcriticsListData', waitForAsync(() => { + // Call service function + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getSourceListDataSpy, 1); + expectSpyCall(getSourceDescriptionListDataSpy, 1); + expectSpyCall(getSourceEvaluationListDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); + })); + + it('... should trigger #getJsonData with correct urls', waitForAsync(() => { + // Call service function + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getJsonDataSpy, 4); + expectToBe(getJsonDataSpy.calls.allArgs()[0][0], expectedSourceListFilePath); + expectToBe(getJsonDataSpy.calls.allArgs()[1][0], expectedSourceDescriptionFilePath); + expectToBe(getJsonDataSpy.calls.allArgs()[2][0], expectedSourceEvaluationFilePath); + expectToBe(getJsonDataSpy.calls.allArgs()[3][0], expectedTextcriticsFilePath); + })); + + it('... should perform an HTTP GET request to sourceList, sourceDescription, sourceEvaluation & textcritics file', waitForAsync(() => { + // Call service function + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectSpyCall(getJsonDataSpy, 4); + + expectToBe(call.length, 4); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[1]?.request.method, 'GET'); + expectToBe(call[2]?.request.method, 'GET'); + expectToBe(call[3]?.request.method, 'GET'); + + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[1]?.request.responseType, 'json'); + expectToBe(call[2]?.request.responseType, 'json'); + expectToBe(call[3]?.request.responseType, 'json'); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); + + describe('response', () => { + describe('success', () => { + it('... should return a forkJoined Observable(SourceList, SourceDescriptionList, SourceEvaluationList, TextcriticsList)', waitForAsync(() => { + const sl = new SourceList(); + sl.sources = []; + sl.sources.push(new Source()); + sl.sources[0].siglum = 'test-sources-id'; + + const sdl = new SourceDescriptionList(); + sdl.sources = []; + sdl.sources.push(new SourceDescription()); + sdl.sources[0].id = 'test-source-description-id'; + + const sel = new SourceEvaluationList(); + sel.sources = []; + sel.sources.push(new SourceEvaluation()); + sel.sources[0].id = 'test-source-evaluation-id'; + + const tcl = new TextcriticsList(); + tcl.textcritics = []; + tcl.textcritics.push(new Textcritics()); + tcl.textcritics[0].id = 'test-textcritics-id'; + + const expectedResult = [sl, sdl, sel, tcl]; + + getSourceListDataSpy.and.returnValue(observableOf(sl)); + getSourceDescriptionListDataSpy.and.returnValue(observableOf(sdl)); + getSourceEvaluationListDataSpy.and.returnValue(observableOf(sel)); + getTextcriticsListDataSpy.and.returnValue(observableOf(tcl)); + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + const resSl = res[0] as SourceList; + const resSdl = res[1] as SourceDescriptionList; + const resSel = res[2] as SourceEvaluationList; + const resTcl = res[3] as TextcriticsList; + + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(resSl, expectedResult[0] as SourceList); + expectToEqual(resSdl, expectedResult[1] as SourceDescriptionList); + expectToEqual(resSel, expectedResult[2] as SourceEvaluationList); + expectToEqual(resTcl, expectedResult[3] as TextcriticsList); + + expectToBe(resSl.sources[0].siglum, 'test-sources-id'); + expectToBe(resSdl.sources[0].id, 'test-source-description-id'); + expectToBe(resSel.sources[0].id, 'test-source-evaluation-id'); + expectToBe(resTcl.textcritics[0].id, 'test-textcritics-id'); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getSourceListDataSpy, 1); + expectSpyCall(getSourceDescriptionListDataSpy, 1); + expectSpyCall(getSourceEvaluationListDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); + })); + + it('... should return an empty forkJoined Observable per default', waitForAsync(() => { + const expectedResult = [ + new SourceList(), + new SourceDescriptionList(), + new SourceEvaluationList(), + new TextcriticsList(), + ]; + + getSourceListDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(new SourceList()))); + getSourceDescriptionListDataSpy.and.returnValue( + EMPTY.pipe(defaultIfEmpty(new SourceDescriptionList())) + ); + getSourceEvaluationListDataSpy.and.returnValue( + EMPTY.pipe(defaultIfEmpty(new SourceEvaluationList())) + ); + getTextcriticsListDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(new TextcriticsList()))); + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: res => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getSourceListDataSpy, 1); + expectSpyCall(getSourceDescriptionListDataSpy, 1); + expectSpyCall(getSourceEvaluationListDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); + })); + }); + + describe('fail', () => { + it('... should log an error for every failed request', waitForAsync(() => { + const expectedResult = [[], [], [], []]; + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], []); + expectToEqual(res[3], []); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) + ); + call[3].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) + ); + + // Check for console output + expectSpyCall(consoleSpy, 4); + expectToBe( + consoleSpy.calls.allArgs()[0][0], + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_SOURCELIST` + ); + expectToBe( + consoleSpy.calls.allArgs()[1][0], + `_getJsonData failed: Http failure response for ${call[1]?.request.url}: 400 ERROR_LOADING_SOURCELISTDESCRIPTION` + ); + expectToBe( + consoleSpy.calls.allArgs()[2][0], + `_getJsonData failed: Http failure response for ${call[2]?.request.url}: 400 ERROR_LOADING_SOURCELISTEVALUATION` + ); + expectToBe( + consoleSpy.calls.allArgs()[3][0], + `_getJsonData failed: Http failure response for ${call[3]?.request.url}: 400 ERROR_LOADING_TEXTCRITICS` + ); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [[], [], [], []] if all requests failed', waitForAsync(() => { + const expectedResult = [[], [], [], []]; + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], []); + expectToEqual(res[3], []); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) + ); + call[3].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) + ); + + // Check for console output + expectSpyCall(consoleSpy, 4); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [sourceList, [], [], []] if all but sourceList request failed', waitForAsync(() => { + const expectedResult = [new SourceList(), [], [], []]; + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(res[0], expectedResult[0]); + expectToEqual(res[1], []); + expectToEqual(res[2], []); + expectToEqual(res[3], []); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); + + // Resolve request with mocked error + call[0].flush(expectedResult[0]); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTDESCRIPTION' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) + ); + call[3].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) + ); + + // Check for console output + expectSpyCall(consoleSpy, 3); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [[], sourceDescriptionList, [], []] if all but sourceDescriptionList request failed', waitForAsync(() => { + const expectedResult = [[], new SourceDescriptionList(), [], []]; + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], expectedResult[1]); + expectToEqual(res[2], []); + expectToEqual(res[3], []); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); + call[1].flush(expectedResult[1]); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELISTEVALUATION' }) + ); + call[3].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICS' }) + ); + + // Check for console output + expectSpyCall(consoleSpy, 3); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [[], [], sourceEvaluationList, []] if all but sourceEvaluationList request failed', waitForAsync(() => { + const expectedResult = [[], [], new SourceEvaluationList(), []]; + + // Call service function (success) + editionDataService.getEditionReportData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], expectedResult[2]); + expectToEqual(res[3], []); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); @@ -1295,10 +1467,10 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); @@ -1349,10 +1521,10 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error call[0].flush(expectedResult[0]); @@ -1395,10 +1567,10 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error call[0].flush(expectedResult[0]); @@ -1449,10 +1621,10 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedSourceListFilePath); - expectToBe(call[1].request.url, expectedSourceDescriptionFilePath); - expectToBe(call[2].request.url, expectedSourceEvaluationFilePath); - expectToBe(call[3].request.url, expectedTextcriticsFilePath); + expectToBe(call[0]?.request.url, expectedSourceListFilePath); + expectToBe(call[1]?.request.url, expectedSourceDescriptionFilePath); + expectToBe(call[2]?.request.url, expectedSourceEvaluationFilePath); + expectToBe(call[3]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_SOURCELIST' })); @@ -1470,15 +1642,15 @@ describe('EditionDataService (DONE)', () => { }); }); - describe('#getEditionGraphData()', () => { - it('... should have a method `getEditionGraphData`', () => { - expect(editionDataService.getEditionGraphData).toBeDefined(); + describe('#getEditionRowTablesData()', () => { + it('... should have a method `getEditionRowTablesData`', () => { + expect(editionDataService.getEditionRowTablesData).toBeDefined(); }); describe('request', () => { it('... should set assetPath', waitForAsync(() => { // Call service function - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionRowTablesData().subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -1487,15 +1659,12 @@ describe('EditionDataService (DONE)', () => { }, }); - expectToBe((editionDataService as any)._assetPath, expectedAssetPath); + expectToBe((editionDataService as any)._assetPath, expectedAssetPathBaseRoute); })); - it('... should call #getGraphData', waitForAsync(() => { - // Set spy on private method - const getGraphDataSpy: Spy = spyOn(editionDataService as any, '_getGraphData').and.callThrough(); - + it('... should call #_getRowTablesData', waitForAsync(() => { // Call service function - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionRowTablesData().subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -1504,16 +1673,175 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getGraphDataSpy, 1); + expectSpyCall(getRowTablesDataSpy, 1); })); it('... should trigger #getJsonData with correct url', waitForAsync(() => { - // Set spy on private method - const getGraphDataSpy: Spy = spyOn(editionDataService as any, '_getGraphData').and.callThrough(); - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); + // Call service function + editionDataService.getEditionRowTablesData().subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getRowTablesDataSpy, 1); + expectSpyCall(getJsonDataSpy, 1, expectedRowTablesFilePath); + })); + it('... should perform an HTTP GET request to rowTables file', waitForAsync(() => { // Call service function - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionRowTablesData().subscribe({ + next: res => { + expectToEqual(res, new EditionRowTablesList()); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectSpyCall(getJsonDataSpy, 1, expectedRowTablesFilePath); + + expectToBe(call.length, 1); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[0]?.request.url, expectedRowTablesFilePath); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); + + describe('success', () => { + it('... should return an Observable(EditionRowTablesList)', waitForAsync(() => { + const rt = expectedRowTablesData; + + const expectedResult = rt; + + getRowTablesDataSpy.and.returnValue(observableOf(expectedResult)); + + // Call service function (success) + editionDataService.getEditionRowTablesData().subscribe({ + next: res => { + expectToEqual(res, expectedResult); + expectToBe(res.rowTables[0].id, 'SkRT'); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getRowTablesDataSpy, 1); + })); + + it('... should return an empty EditionRowTablesList Observable per default', waitForAsync(() => { + const expectedResult = new EditionRowTablesList(); + + getRowTablesDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(expectedResult))); + + // Call service function (success) + editionDataService.getEditionRowTablesData().subscribe({ + next: res => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getRowTablesDataSpy, 1); + })); + }); + + describe('fail', () => { + it('... should log an error for every failed request', waitForAsync(() => { + const expectedResult = []; + + // Call service function (success) + editionDataService.getEditionRowTablesData().subscribe({ + next: (res: any) => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedRowTablesFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_ROWTABLESLIST' })); + + // Check for console output + expectSpyCall( + consoleSpy, + 1, + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_ROWTABLESLIST` + ); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + + it('... should return [] if request failed', waitForAsync(() => { + const expectedResult = []; + + // Call service function (success) + editionDataService.getEditionRowTablesData().subscribe({ + next: (res: any) => { + expectToEqual(res, expectedResult); + }, + error: () => { + fail('should not call error'); + }, + }); + + // Expect one request to to every file with given settings + regexBase = new RegExp(expectedAssetPathBaseRoute); + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); + + expectToBe(call[0]?.request.url, expectedRowTablesFilePath); + + // Resolve request with mocked error + call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_ROWTABLESLIST' })); + + // Check for console output + expectSpyCall(consoleSpy, 1); + + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); + }); + + describe('#getEditionSheetsData()', () => { + it('... should have a method `getEditionSheetsData`', () => { + expect(editionDataService.getEditionSheetsData).toBeDefined(); + }); + + describe('request', () => { + it('... should set assetPath', waitForAsync(() => { + // Call service function + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -1522,16 +1850,45 @@ describe('EditionDataService (DONE)', () => { }, }); - expectSpyCall(getGraphDataSpy, 1); - expectSpyCall(getJsonDataSpy, 1, expectedGraphFilePath); + expectToBe((editionDataService as any)._assetPath, expectedAssetPath); })); - it('... should perform an HTTP GET request to graph file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); + it('... should call #getFolioConvoluteData, #getSvgSheetsData, #getTextcriticsListData', waitForAsync(() => { + // Call service function + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getFolioConvoluteDataSpy, 1); + expectSpyCall(getSvgSheetsDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); + })); + + it('... should trigger #getJsonData with correct urls', waitForAsync(() => { + // Call service function + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: res => { + expect(res).toBeTruthy(); + }, + error: () => { + fail('should not call error'); + }, + }); + + expectSpyCall(getJsonDataSpy, 3); + expectToBe(getJsonDataSpy.calls.allArgs()[0][0], expectedFolioConvoluteFilePath); + expectToBe(getJsonDataSpy.calls.allArgs()[1][0], expectedSheetsFilePath); + expectToBe(getJsonDataSpy.calls.allArgs()[2][0], expectedTextcriticsFilePath); + })); + it('... should perform an HTTP GET request to convolute, sheets & textcritics file', waitForAsync(() => { // Call service function - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: res => { expect(res).toBeTruthy(); }, @@ -1546,12 +1903,20 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectSpyCall(getJsonDataSpy, 1, expectedGraphFilePath); + expectSpyCall(getJsonDataSpy, 3); - expectToBe(call.length, 1); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[0].request.url, expectedGraphFilePath); + expectToBe(call.length, 3); + expectToBe(call[0]?.request.method, 'GET'); + expectToBe(call[1]?.request.method, 'GET'); + expectToBe(call[2]?.request.method, 'GET'); + + expectToBe(call[0]?.request.responseType, 'json'); + expectToBe(call[1]?.request.responseType, 'json'); + expectToBe(call[2]?.request.responseType, 'json'); + + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); // Assert that there are no more pending requests httpTestingController.verify(); @@ -1560,63 +1925,103 @@ describe('EditionDataService (DONE)', () => { describe('response', () => { describe('success', () => { - it('... should return an Observable(GraphList)', waitForAsync(() => { - const gl = new GraphList(); - gl.graph = []; - gl.graph.push(new Graph()); - gl.graph[0].id = 'test-graph-id'; + it('... should return a forkJoined Observable(FolioConvoluteList, EditionSvgSheetList, TextcriticsList)', waitForAsync(() => { + const fcl = new FolioConvoluteList(); + fcl.convolutes = []; + fcl.convolutes.push(new FolioConvolute()); + fcl.convolutes[0].convoluteId = 'test-convolute-id'; - const expectedResult = gl; + const esl = new EditionSvgSheetList(); + esl.sheets = { workEditions: [], textEditions: [], sketchEditions: [] }; + esl.sheets.workEditions.push(new EditionSvgSheet()); + esl.sheets.textEditions.push(new EditionSvgSheet()); + esl.sheets.sketchEditions.push(new EditionSvgSheet()); + esl.sheets.workEditions[0].id = 'test-svg-work-sheets-id'; + esl.sheets.textEditions[0].id = 'test-svg-text-sheets-id'; + esl.sheets.sketchEditions[0].id = 'test-svg-sketch-sheets-id'; - // Set spy on private method - const getGraphDataSpy: Spy = spyOn(editionDataService as any, '_getGraphData').and.returnValue( - observableOf(expectedResult) - ); + const tcl = new TextcriticsList(); + tcl.textcritics = []; + tcl.textcritics.push(new Textcritics()); + tcl.textcritics[0].id = 'test-textcritics-id'; + + const expectedResult = [fcl, esl, tcl]; + + getFolioConvoluteDataSpy.and.returnValue(observableOf(fcl)); + getSvgSheetsDataSpy.and.returnValue(observableOf(esl)); + getTextcriticsListDataSpy.and.returnValue(observableOf(tcl)); // Call service function (success) - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: res => { + const resFcl = res[0] as FolioConvoluteList; + const resEsl = res[1] as EditionSvgSheetList; + const resTcl = res[2] as TextcriticsList; + + expectToBe(res.length as number, expectedResult.length); expectToEqual(res, expectedResult); - expectToBe(res.graph[0].id, 'test-graph-id'); + + expectToEqual(resFcl, expectedResult[0] as FolioConvoluteList); + expectToEqual(resEsl, expectedResult[1] as EditionSvgSheetList); + expectToEqual(resTcl, expectedResult[2] as TextcriticsList); + + expectToBe(resFcl.convolutes[0].convoluteId, 'test-convolute-id'); + expectToBe(resEsl.sheets.workEditions[0].id, 'test-svg-work-sheets-id'); + expectToBe(resEsl.sheets.textEditions[0].id, 'test-svg-text-sheets-id'); + expectToBe(resEsl.sheets.sketchEditions[0].id, 'test-svg-sketch-sheets-id'); + expectToBe(resTcl.textcritics[0].id, 'test-textcritics-id'); }, error: () => { fail('should not call error'); }, }); - expectSpyCall(getGraphDataSpy, 1); + expectSpyCall(getFolioConvoluteDataSpy, 1); + expectSpyCall(getSvgSheetsDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); })); - it('... should return an empty GraphList Observable per default', waitForAsync(() => { - const expectedResult = new GraphList(); + it('... should return an empty forkJoined Observable per default', waitForAsync(() => { + const expectedResult = [new FolioConvoluteList(), new EditionSvgSheetList(), new TextcriticsList()]; - // Set spy on private method - const getGraphDataSpy: Spy = spyOn(editionDataService as any, '_getGraphData').and.returnValue( - EMPTY.pipe(defaultIfEmpty(expectedResult)) - ); + getFolioConvoluteDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(new FolioConvoluteList()))); + getSvgSheetsDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(new EditionSvgSheetList()))); + getTextcriticsListDataSpy.and.returnValue(EMPTY.pipe(defaultIfEmpty(new TextcriticsList()))); // Call service function (success) - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: res => { + expectToBe(res.length as number, expectedResult.length); expectToEqual(res, expectedResult); + + expectToEqual(res[0], expectedResult[0] as FolioConvoluteList); + expectToEqual(res[1], expectedResult[1] as EditionSvgSheetList); + expectToEqual(res[2], expectedResult[2] as TextcriticsList); }, error: () => { fail('should not call error'); }, }); - expectSpyCall(getGraphDataSpy, 1); + expectSpyCall(getFolioConvoluteDataSpy, 1); + expectSpyCall(getSvgSheetsDataSpy, 1); + expectSpyCall(getTextcriticsListDataSpy, 1); })); }); describe('fail', () => { it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = []; + const expectedResult = [[], [], []]; // Call service function (success) - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: (res: any) => { + expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -1629,29 +2034,54 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedGraphFilePath); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_GRAPHLIST' })); + call[0].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) + ); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) + ); - // Check for console output - expectSpyCall( - consoleSpy, - 1, - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_GRAPHLIST` + expectSpyCall(consoleSpy, 3); + expectToBe( + consoleSpy.calls.allArgs()[0][0], + `_getJsonData failed: Http failure response for ${call[0]?.request.url}: 400 ERROR_LOADING_FOLIOCONVOLUTELIST` + ); + expectToBe( + consoleSpy.calls.allArgs()[1][0], + `_getJsonData failed: Http failure response for ${call[1]?.request.url}: 400 ERROR_LOADING_EDITIONSVGSHEETLIST` + ); + expectToBe( + consoleSpy.calls.allArgs()[2][0], + `_getJsonData failed: Http failure response for ${call[2]?.request.url}: 400 ERROR_LOADING_TEXTCRITICSLIST` ); // Assert that there are no more pending requests httpTestingController.verify(); })); - it('... should return [] if request failed', waitForAsync(() => { - const expectedResult = []; + it('... should return [[], [], []] if all requests failed', waitForAsync(() => { + const expectedResult = [[], [], []]; // Call service function (success) - editionDataService.getEditionGraphData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: (res: any) => { + expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -1664,168 +2094,43 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedGraphFilePath); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_GRAPHLIST' })); + call[0].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) + ); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) + ); // Check for console output - expectSpyCall(consoleSpy, 1); + expectSpyCall(consoleSpy, 3); // Assert that there are no more pending requests httpTestingController.verify(); })); - }); - }); - }); - - describe('#getEditionIntroData', () => { - it('... should have a method `getEditionIntroData`', () => { - expect(editionDataService.getEditionIntroData).toBeDefined(); - }); - - describe('request', () => { - it('... should set assetPath', waitForAsync(() => { - // Call service function - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectToBe((editionDataService as any)._assetPath, expectedAssetPath); - })); - - it('... should call #getIntroData', waitForAsync(() => { - // Set spy on private method - const getIntroDataSpy: Spy = spyOn(editionDataService as any, '_getIntroData').and.callThrough(); - - // Call service function - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getIntroDataSpy, 1); - })); - - it('... should trigger #getJsonData with correct url', waitForAsync(() => { - // Set spy on private method - const getIntroDataSpy: Spy = spyOn(editionDataService as any, '_getIntroData').and.callThrough(); - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - - // Call service function - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getIntroDataSpy, 1); - expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); - })); - - it('... should perform an HTTP GET request to intro file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - - // Call service function - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - // Expect one request to every file with given settings - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); - - expectSpyCall(getJsonDataSpy, 1, expectedIntroFilePath); - - expectToBe(call.length, 1); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[0].request.url, expectedIntroFilePath); - - // Assert that there are no more pending requests - httpTestingController.verify(); - })); - }); - - describe('response', () => { - describe('success', () => { - it('... should return an Observable(IntroList)', waitForAsync(() => { - const il = new IntroList(); - il.intro = []; - il.intro.push(new Intro()); - il.intro[0].id = 'test-intro-id'; - - const expectedResult = il; - - // Set spy on private method - const getIntroDataSpy: Spy = spyOn(editionDataService as any, '_getIntroData').and.returnValue( - observableOf(expectedResult) - ); - - // Call service function (success) - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expectToEqual(res, expectedResult); - expectToBe(res.intro[0].id, 'test-intro-id'); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getIntroDataSpy, 1); - })); - - it('... should return an empty IntroList Observable per default', waitForAsync(() => { - const expectedResult = new IntroList(); - - // Set spy on private method - const getIntroDataSpy: Spy = spyOn(editionDataService as any, '_getIntroData').and.returnValue( - EMPTY.pipe(defaultIfEmpty(expectedResult)) - ); - - // Call service function (success) - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ - next: res => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getIntroDataSpy, 1); - })); - }); - describe('fail', () => { - it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = []; + it('... should return [folioConvoluteList, [], []] if all but folioConvoluteList request failed', waitForAsync(() => { + const expectedResult = [new FolioConvoluteList(), [], []]; // Call service function (success) - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: (res: any) => { + expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); + + expectToEqual(res[0], expectedResult[0]); + expectToEqual(res[1], []); + expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -1838,29 +2143,40 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedIntroFilePath); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); + call[0].flush(expectedResult[0]); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) + ); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) + ); // Check for console output - expectSpyCall( - consoleSpy, - 1, - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_INTROLIST` - ); + expectSpyCall(consoleSpy, 2); // Assert that there are no more pending requests httpTestingController.verify(); })); - it('... should return [] if request failed', waitForAsync(() => { - const expectedResult = []; + it('... should return [[], editionSvgSheetList, []] if all but editionSvgSheetList request failed', waitForAsync(() => { + const expectedResult = [[], new EditionSvgSheetList(), []]; // Call service function (success) - editionDataService.getEditionIntroData(expectedEditionComplex).subscribe({ + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ next: (res: any) => { + expectToBe(res.length, expectedResult.length); expectToEqual(res, expectedResult); + + expectToEqual(res[0], []); + expectToEqual(res[1], expectedResult[1]); + expectToEqual(res[2], []); }, error: () => { fail('should not call error'); @@ -1873,439 +2189,312 @@ describe('EditionDataService (DONE)', () => { req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) ); - expectToBe(call[0].request.url, expectedIntroFilePath); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_INTROLIST' })); + call[0].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) + ); + call[1].flush(expectedResult[1]); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) + ); // Check for console output - expectSpyCall(consoleSpy, 1); + expectSpyCall(consoleSpy, 2); // Assert that there are no more pending requests httpTestingController.verify(); })); - }); - }); - }); - - describe('#getEditionPrefaceData()', () => { - it('... should have a method `getEditionPrefaceData`', () => { - expect(editionDataService.getEditionPrefaceData).toBeDefined(); - }); - - describe('request', () => { - it('... should set assetPath', waitForAsync(() => { - // Call service function - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectToBe((editionDataService as any)._assetPath, expectedAssetPathBaseRoute); - })); - - it('... should call #_getPrefaceData', waitForAsync(() => { - // Set spy on private method - const getPrefaceDataSpy: Spy = spyOn(editionDataService as any, '_getPrefaceData').and.callThrough(); - - // Call service function - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getPrefaceDataSpy, 1); - })); - - it('... should trigger #getJsonData with correct url', waitForAsync(() => { - // Set spy on private method - const getPrefaceDataSpy: Spy = spyOn(editionDataService as any, '_getPrefaceData').and.callThrough(); - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - - // Call service function - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); - - expectSpyCall(getPrefaceDataSpy, 1); - expectSpyCall(getJsonDataSpy, 1, expectedPrefaceFilePath); - })); - - it('... should perform an HTTP GET request to preface file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); - - // Call service function - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expectToEqual(res, new PrefaceList()); - }, - error: () => { - fail('should not call error'); - }, - }); - - // Expect one request to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); - - expectSpyCall(getJsonDataSpy, 1, expectedPrefaceFilePath); - - expectToBe(call.length, 1); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[0].request.url, expectedPrefaceFilePath); - - // Assert that there are no more pending requests - httpTestingController.verify(); - })); - }); - - describe('success', () => { - it('... should return an Observable(PrefaceList)', waitForAsync(() => { - const rt = expectedPrefaceData; - - const expectedResult = rt; - // Set spy on private method - const getPrefaceDataSpy: Spy = spyOn(editionDataService as any, '_getPrefaceData').and.returnValue( - observableOf(expectedResult) - ); + it('... should return [[], [], textcriticsList] if all but textcriticsList request failed', waitForAsync(() => { + const expectedResult = [[], [], new TextcriticsList()]; - // Call service function (success) - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expectToEqual(res, expectedResult); - expectToBe(res.preface[0].id, 'de'); - expectToBe(res.preface[1].id, 'en'); - }, - error: () => { - fail('should not call error'); - }, - }); + // Call service function (success) + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); - expectSpyCall(getPrefaceDataSpy, 1); - })); + expectToEqual(res[0], []); + expectToEqual(res[1], []); + expectToEqual(res[2], expectedResult[2]); + }, + error: () => { + fail('should not call error'); + }, + }); - it('... should return an empty PrefaceList Observable per default', waitForAsync(() => { - const expectedResult = new PrefaceList(); + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Set spy on private method - const getPrefaceDataSpy: Spy = spyOn(editionDataService as any, '_getPrefaceData').and.returnValue( - EMPTY.pipe(defaultIfEmpty(expectedResult)) - ); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); - // Call service function (success) - editionDataService.getEditionPrefaceData().subscribe({ - next: res => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + // Resolve request with mocked error + call[0].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) + ); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) + ); + call[2].flush(expectedResult[2]); - expectSpyCall(getPrefaceDataSpy, 1); - })); - }); + // Check for console output + expectSpyCall(consoleSpy, 2); - describe('fail', () => { - it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = []; + // Assert that there are no more pending requests + httpTestingController.verify(); + })); - // Call service function (success) - editionDataService.getEditionPrefaceData().subscribe({ - next: (res: any) => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + it('... should return [folioConvoluteList, editionSvgSheetList, []] if textcriticsList request failed', waitForAsync(() => { + const expectedResult = [new FolioConvoluteList(), new EditionSvgSheetList(), []]; - // Expect one request to to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + // Call service function (success) + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); - expectToBe(call[0].request.url, expectedPrefaceFilePath); + expectToEqual(res[0], expectedResult[0]); + expectToEqual(res[1], expectedResult[1]); + expectToEqual(res[2], []); + }, + error: () => { + fail('should not call error'); + }, + }); - // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_PREFACELIST' })); + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Check for console output - expectSpyCall( - consoleSpy, - 1, - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_PREFACELIST` - ); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + // Resolve request with mocked error + call[0].flush(expectedResult[0]); + call[1].flush(expectedResult[1]); + call[2].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_TEXTCRITICSLIST' }) + ); - it('... should return [] if request failed', waitForAsync(() => { - const expectedResult = []; + // Check for console output + expectSpyCall(consoleSpy, 1); - // Call service function (success) - editionDataService.getEditionPrefaceData().subscribe({ - next: (res: any) => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + // Assert that there are no more pending requests + httpTestingController.verify(); + })); - // Expect one request to to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + it('... should return [folioConvoluteList, [], textcriticsList] if middle request failed', waitForAsync(() => { + const expectedResult = [new FolioConvoluteList(), [], new TextcriticsList()]; - expectToBe(call[0].request.url, expectedPrefaceFilePath); + // Call service function (success) + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); - // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_PREFACELIST' })); + expectToEqual(res[0], expectedResult[0]); + expectToEqual(res[1], []); + expectToEqual(res[2], expectedResult[2]); + }, + error: () => { + fail('should not call error'); + }, + }); - // Check for console output - expectSpyCall(consoleSpy, 1); + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); - }); - }); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); - describe('#getRowTablesData()', () => { - it('... should have a method `getRowTablesData`', () => { - expect(editionDataService.getEditionRowTablesData).toBeDefined(); - }); + // Resolve request with mocked error + call[0].flush(expectedResult[0]); + call[1].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_EDITIONSVGSHEETLIST' }) + ); + call[2].flush(expectedResult[2]); - describe('request', () => { - it('... should set assetPath', waitForAsync(() => { - // Call service function - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); + // Check for console output + expectSpyCall(consoleSpy, 1); - expectToBe((editionDataService as any)._assetPath, expectedAssetPathBaseRoute); - })); + // Assert that there are no more pending requests + httpTestingController.verify(); + })); - it('... should call #_getRowTablesData', waitForAsync(() => { - // Set spy on private method - const getRowTablesDataSpy: Spy = spyOn( - editionDataService as any, - '_getRowTablesData' - ).and.callThrough(); + it('... should return [[], editionSvgSheetList, textcriticsList] if folioConvoluteList request failed', waitForAsync(() => { + const expectedResult = [[], new EditionSvgSheetList(), new TextcriticsList()]; - // Call service function - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); + // Call service function (success) + editionDataService.getEditionSheetsData(expectedEditionComplex).subscribe({ + next: (res: any) => { + expectToBe(res.length, expectedResult.length); + expectToEqual(res, expectedResult); - expectSpyCall(getRowTablesDataSpy, 1); - })); + expectToEqual(res[0], []); + expectToEqual(res[1], expectedResult[1]); + expectToEqual(res[2], expectedResult[2]); + }, + error: () => { + fail('should not call error'); + }, + }); - it('... should trigger #getJsonData with correct url', waitForAsync(() => { - // Set spy on private method - const getRowTablesDataSpy: Spy = spyOn( - editionDataService as any, - '_getRowTablesData' - ).and.callThrough(); - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); + // Expect one request to to every file with given settings + const call = httpTestingController.match( + (req: HttpRequest) => + req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) + ); - // Call service function - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expect(res).toBeTruthy(); - }, - error: () => { - fail('should not call error'); - }, - }); + expectToBe(call[0]?.request.url, expectedFolioConvoluteFilePath); + expectToBe(call[1]?.request.url, expectedSheetsFilePath); + expectToBe(call[2]?.request.url, expectedTextcriticsFilePath); - expectSpyCall(getRowTablesDataSpy, 1); - expectSpyCall(getJsonDataSpy, 1, expectedRowTablesFilePath); - })); + // Resolve request with mocked error + call[0].flush( + null, + new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_FOLIOCONVOLUTELIST' }) + ); + call[1].flush(expectedResult[1]); + call[2].flush(expectedResult[2]); - it('... should perform an HTTP GET request to rowTables file', waitForAsync(() => { - // Set spy on private method - const getJsonDataSpy: Spy = spyOn(editionDataService as any, '_getJsonData').and.callThrough(); + // Check for console output + expectSpyCall(consoleSpy, 1); - // Call service function - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expectToEqual(res, new EditionRowTablesList()); - }, - error: () => { - fail('should not call error'); - }, - }); + // Assert that there are no more pending requests + httpTestingController.verify(); + })); + }); + }); + }); - // Expect one request to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + describe('#_generateAssetPath()', () => { + it('... should have a method `_generateAssetPath`', () => { + expect((editionDataService as any)._generateAssetPath).toBeDefined(); + }); - expectSpyCall(getJsonDataSpy, 1, expectedRowTablesFilePath); + it('... should generate the correct path without complexIdRoute', () => { + const seriesRoute = '1'; + const sectionRoute = '5'; + const expectedPath = `${expectedAssetPathBaseRoute}/series/${seriesRoute}/section/${sectionRoute}`; - expectToBe(call.length, 1); - expectToBe(call[0].request.method, 'GET'); - expectToBe(call[0].request.responseType, 'json'); - expectToBe(call[0].request.url, expectedRowTablesFilePath); + const result = (editionDataService as any)._generateAssetPath(seriesRoute, sectionRoute); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + expect(result).toBe(expectedPath); }); - describe('success', () => { - it('... should return an Observable(EditionRowTablesList)', waitForAsync(() => { - const rt = expectedRowTablesData; + it('... should generate the correct path with complexIdRoute', () => { + const seriesRoute = '2'; + const sectionRoute = '3'; + const complexIdRoute = '/complex1'; + const expectedPath = `${expectedAssetPathBaseRoute}/series/${seriesRoute}/section/${sectionRoute}/complex1`; - const expectedResult = rt; + const result = (editionDataService as any)._generateAssetPath(seriesRoute, sectionRoute, complexIdRoute); - // Set spy on private method - const getRowTablesDataSpy: Spy = spyOn(editionDataService as any, '_getRowTablesData').and.returnValue( - observableOf(expectedResult) - ); + expect(result).toBe(expectedPath); + }); + }); - // Call service function (success) - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expectToEqual(res, expectedResult); - expectToBe(res.rowTables[0].id, 'SkRT'); - }, - error: () => { - fail('should not call error'); - }, - }); + describe('#_setAssetPathForEditionComplex()', () => { + it('... should have a method `_setAssetPathForEditionComplex`', () => { + expect((editionDataService as any)._setAssetPathForEditionComplex).toBeDefined(); + }); - expectSpyCall(getRowTablesDataSpy, 1); - })); + it('... should call `_generateAssetPath` with the correct parameters', () => { + const seriesRoute = expectedEditionComplex.pubStatement.series.route; + const sectionRoute = expectedEditionComplex.pubStatement.section.route; + const complexIdRoute = expectedEditionComplex.complexId.route; - it('... should return an empty EditionRowTablesList Observable per default', waitForAsync(() => { - const expectedResult = new EditionRowTablesList(); + (editionDataService as any)._setAssetPathForEditionComplex(expectedEditionComplex); - // Set spy on private method - const getRowTablesDataSpy: Spy = spyOn(editionDataService as any, '_getRowTablesData').and.returnValue( - EMPTY.pipe(defaultIfEmpty(expectedResult)) - ); + expectSpyCall(generateAssetPathSpy, 1, [seriesRoute, sectionRoute, complexIdRoute]); + }); - // Call service function (success) - editionDataService.getEditionRowTablesData().subscribe({ - next: res => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + it('... should return the generated assetPath', () => { + const seriesRoute = expectedEditionComplex.pubStatement.series.route; + const sectionRoute = expectedEditionComplex.pubStatement.section.route; + const complexIdRoute = expectedEditionComplex.complexId.route; - expectSpyCall(getRowTablesDataSpy, 1); - })); + const expectedPath = `${expectedAssetPathBaseRoute}/series/${seriesRoute}/section/${sectionRoute}${complexIdRoute}`; + + const result = (editionDataService as any)._setAssetPathForEditionComplex(expectedEditionComplex); + + expectToBe(result, expectedPath); }); + }); - describe('fail', () => { - it('... should log an error for every failed request', waitForAsync(() => { - const expectedResult = []; + describe('#_setAssetPathForSectionIntro()', () => { + it('... should have a method `_setAssetPathForSectionIntro`', () => { + expect((editionDataService as any)._setAssetPathForSectionIntro).toBeDefined(); + }); - // Call service function (success) - editionDataService.getEditionRowTablesData().subscribe({ - next: (res: any) => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + it('... should call `_generateAssetPath` with the correct parameters', () => { + const seriesRoute = '1'; + const sectionRoute = '5'; - // Expect one request to to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + (editionDataService as any)._setAssetPathForSectionIntro(seriesRoute, sectionRoute); - expectToBe(call[0].request.url, expectedRowTablesFilePath); + expectSpyCall(generateAssetPathSpy, 1, [seriesRoute, sectionRoute]); + }); - // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_ROWTABLESLIST' })); + it('... should return the generated assetPath', () => { + const seriesRoute = '1'; + const sectionRoute = '5'; + const expectedPath = `${expectedAssetPathBaseRoute}/series/${seriesRoute}/section/${sectionRoute}`; - // Check for console output - expectSpyCall( - consoleSpy, - 1, - `_getJsonData failed: Http failure response for ${call[0].request.url}: 400 ERROR_LOADING_ROWTABLESLIST` - ); + const result = (editionDataService as any)._setAssetPathForSectionIntro(seriesRoute, sectionRoute); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); + expectToBe(result, expectedPath); + }); + }); - it('... should return [] if request failed', waitForAsync(() => { - const expectedResult = []; + describe('#_getJsonData()', () => { + it('... should have a method `_getJsonData`', () => { + expect((editionDataService as any)._getJsonData).toBeDefined(); + }); - // Call service function (success) - editionDataService.getEditionRowTablesData().subscribe({ - next: (res: any) => { - expectToEqual(res, expectedResult); - }, - error: () => { - fail('should not call error'); - }, - }); + it('... should return an Observable', waitForAsync(() => { + const expectedPath = 'test-url'; + const expectedData = { test: 'data' }; - // Expect one request to to every file with given settings - regexBase = new RegExp(expectedAssetPathBaseRoute); - const call = httpTestingController.match( - (req: HttpRequest) => - req.method === 'GET' && req.responseType === 'json' && regexBase.test(req.url) - ); + const result = (editionDataService as any)._getJsonData(expectedPath); - expectToBe(call[0].request.url, expectedRowTablesFilePath); + result.subscribe({ + next: (res: any) => { + expect(res).toBeTruthy(); + expect(res).toEqual(expectedData); + }, + error: () => { + fail('should not call error'); + }, + }); - // Resolve request with mocked error - call[0].flush(null, new HttpErrorResponse({ status: 400, statusText: 'ERROR_LOADING_ROWTABLESLIST' })); + const call = httpTestingController.expectOne(expectedPath); - // Check for console output - expectSpyCall(consoleSpy, 1); + call.flush(expectedData); - // Assert that there are no more pending requests - httpTestingController.verify(); - })); - }); + httpTestingController.verify(); + })); }); }); diff --git a/src/app/views/edition-view/services/edition-data.service.ts b/src/app/views/edition-view/services/edition-data.service.ts index fef1f6a6ca..c494beb7d6 100644 --- a/src/app/views/edition-view/services/edition-data.service.ts +++ b/src/app/views/edition-view/services/edition-data.service.ts @@ -73,16 +73,16 @@ export class EditionDataService { } /** - * Public method: getEditionIntroData. + * Public method: getEditionComplexIntroData. * * It provides the data from a JSON file - * for the intro of the edition view. + * for the intro of an edition complex of the edition view. * * @param {EditionComplex} editionComplex The current edition complex. * * @returns {Observable} The observable with the IntroList data. */ - getEditionIntroData(editionComplex: EditionComplex): Observable { + getEditionComplexIntroData(editionComplex: EditionComplex): Observable { this._assetPath = this._setAssetPathForEditionComplex(editionComplex); const introData$: Observable = this._getIntroData(); @@ -94,6 +94,29 @@ export class EditionDataService { ); } + /** + * Public method: getEditionSectionIntroData. + * + * It provides the data from a JSON file + * for the intro of an edition section of the edition view. + * + * @param {string} seriesRoute The current series route. + * @param {string} sectionRoute The current section route. + * + * @returns {Observable} The observable with the IntroList data. + */ + getEditionSectionIntroData(seriesRoute: string, sectionRoute: string): Observable { + this._assetPath = this._setAssetPathForSectionIntro(seriesRoute, sectionRoute); + const introData$: Observable = this._getIntroData(); + + return introData$.pipe( + // Default empty value + defaultIfEmpty(new IntroList()), + // Take only first request (JSON fetch) + take(1) + ); + } + /** * Public method: getEditionPrefaceData. * @@ -206,27 +229,63 @@ export class EditionDataService { } /** - * Private method: _setAssetPathForEditionComplex. + * Private method: _generateAssetPath. * - * It sets the path to correct assets folder of a given edition complex. + * It generates the path to the correct assets folder + * of a given edition complex or section. * - * @param {EditionComplex} editionComplex The current edition complex. + * @param {string} seriesRoute The current series route. + * @param {string} sectionRoute The current section route. + * @param {string} [complexIdRoute] The current complex id route. * - * @returns {string} The path to the correct assets folder of a given edition complex. + * @returns {string} The path to the correct assets folder of a given edition complex or section. */ - private _setAssetPathForEditionComplex(editionComplex: EditionComplex): string { + private _generateAssetPath(seriesRoute: string, sectionRoute: string, complexIdRoute?: string): string { const delimiter = '/'; - const complexRoute = + let route = delimiter + EDITION_ROUTE_CONSTANTS.SERIES.route + delimiter + - editionComplex.pubStatement.series.route + + seriesRoute + delimiter + EDITION_ROUTE_CONSTANTS.SECTION.route + delimiter + - editionComplex.pubStatement.section.route + - editionComplex.complexId.route; - return EDITION_ASSETS_DATA.BASE_ROUTE + complexRoute; + sectionRoute; + if (complexIdRoute) { + route += complexIdRoute; + } + return EDITION_ASSETS_DATA.BASE_ROUTE + route; + } + + /** + * Private method: _setAssetPathForEditionComplex. + * + * It sets the path to correct assets folder of a given edition complex. + * + * @param {EditionComplex} editionComplex The current edition complex. + * + * @returns {string} The path to the correct assets folder of a given edition complex. + */ + private _setAssetPathForEditionComplex(editionComplex: EditionComplex): string { + return this._generateAssetPath( + editionComplex.pubStatement.series.route, + editionComplex.pubStatement.section.route, + editionComplex.complexId.route + ); + } + + /** + * Private method: _setAssetPathForSectionIntro. + * + * It sets the path to correct assets folder of an intro of a given edition section. + * + * @param {string} seriesRoute The current series route. + * @param {string} sectionRoute The current section route. + * + * @returns {string} The path to the correct assets folder of an intro of a given edition section. + */ + private _setAssetPathForSectionIntro(seriesRoute: string, sectionRoute: string): string { + return this._generateAssetPath(seriesRoute, sectionRoute); } /** From f6e29acfcbffb7db49a062c8ebbd5b210f111a59 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 11 Oct 2024 12:42:37 +0200 Subject: [PATCH 136/213] feat(edition): add route for section intro --- src/app/views/edition-view/edition-view-routing.module.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/app/views/edition-view/edition-view-routing.module.ts b/src/app/views/edition-view/edition-view-routing.module.ts index 8f8472b84a..4c560ba1ef 100644 --- a/src/app/views/edition-view/edition-view-routing.module.ts +++ b/src/app/views/edition-view/edition-view-routing.module.ts @@ -50,6 +50,13 @@ const EDITION_VIEW_ROUTES: Routes = [ path: 'section/:id', component: EditionSectionDetailComponent, children: [ + { + path: 'intro', + loadChildren: () => + import( + './edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module' + ).then(m => m.EditionIntroModule), + }, { path: '', component: EditionSectionDetailOverviewComponent, From 79654355a70ce97c62145e79ca4013a590500889 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 11 Oct 2024 16:29:13 +0200 Subject: [PATCH 137/213] fix(edition): move intro parts into separate components --- .../edition-intro-content.component.html | 31 +++ .../edition-intro-content.component.scss | 83 ++++++++ .../edition-intro-content.component.spec.ts | 22 ++ .../edition-intro-content.component.ts | 146 +++++++++++++ .../edition-intro-content/index.ts | 1 + .../edition-intro-empty.component.html | 8 + .../edition-intro-empty.component.scss | 0 .../edition-intro-empty.component.spec.ts | 22 ++ .../edition-intro-empty.component.ts | 32 +++ .../edition-intro-empty/index.ts | 1 + .../edition-intro-nav.component.html | 22 ++ .../edition-intro-nav.component.scss | 16 ++ .../edition-intro-nav.component.spec.ts | 22 ++ .../edition-intro-nav.component.ts | 61 ++++++ .../edition-intro/edition-intro-nav/index.ts | 1 + .../edition-intro.component.html | 96 ++------- .../edition-intro.component.scss | 100 --------- .../edition-intro.component.spec.ts | 191 +++++++++++------- .../edition-intro/edition-intro.component.ts | 119 ++++++++--- .../edition-intro/edition-intro.module.ts | 11 +- ...-section-detail-overview.component.spec.ts | 13 +- src/app/views/edition-view/models/index.ts | 3 +- src/assets/themes/scss/main.scss | 2 +- 23 files changed, 716 insertions(+), 287 deletions(-) create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/index.ts diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html new file mode 100644 index 0000000000..84e81142ac --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html @@ -0,0 +1,31 @@ +
+ @for (introBlock of introBlockContent; track $index) { +
+ @if (introBlock.blockHeader) { +
+

+
+ } + @if (introBlock.blockContent.length > 0) { + @for (blockContent of introBlock.blockContent; track $index) { +
+ } + } +
+ } +
+
+
{{ notesLabel }}
+
+ @for (introBlock of introBlockContent; track $index) { + @if (introBlock.blockNotes.length > 0) { + @for (note of introBlock.blockNotes; track $index) { +
+ } + } + } +
+
+
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss new file mode 100644 index 0000000000..d18b8fd021 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss @@ -0,0 +1,83 @@ +.awg-edition-intro-content { + margin-top: 1.5em; + + .awg-edition-intro-note, + .awg-edition-intro-para { + text-align: justify; + text-justify: inter-word; + + &::ng-deep { + .link-todo { + background-color: chartreuse; + } + + .corrigenda { + background-color: burlywood; + } + + .errata { + background-color: red; + } + + .note-1-dig { + margin-left: 1.3em; + text-indent: -1.3em; + } + + .note-2-dig { + margin-left: 1.8em; + text-indent: -1.8em; + } + + .note-3-dig { + margin-left: 2.3em; + text-indent: -2.3em; + } + } + } + + .awg-edition-intro-para { + margin: 0; + text-indent: 1.5em; + + &::ng-deep { + p { + margin-bottom: 0 !important; + } + + table > tbody > tr > td { + padding-right: 10px; + } + + .heading { + display: block; + font-weight: bold; + margin: 1.5em 0; + text-indent: 0; + } + + .small, + .no-indent { + text-indent: 0; + } + + .spacebreak { + display: block; + margin-top: 1em; + + &.list { + text-indent: 0; + } + + &.no-indent { + margin-left: 0; + } + } + + .list { + margin-left: 1em; + text-indent: -1em; + } + } + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts new file mode 100644 index 0000000000..22beb8cd17 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditionIntroContentComponent } from './edition-intro-content.component'; + +describe('EditionIntroContentComponent', () => { + let component: EditionIntroContentComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionIntroContentComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionIntroContentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.ts new file mode 100644 index 0000000000..786b148140 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.ts @@ -0,0 +1,146 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; + +import { IntroBlock } from '@awg-views/edition-view/models'; + +/** + * The EditionIntroContent component. + * + * It contains the content blocks for the intro + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-intro-content', + templateUrl: './edition-intro-content.component.html', + styleUrls: ['./edition-intro-content.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionIntroContentComponent { + /** + * Input variable: introBlockContent. + * + * It keeps the content blocks of the intro. + */ + @Input() + introBlockContent: IntroBlock[]; + + /** + * Input variable: notesLabel. + * + * It keeps the notes label of the intro. + */ + @Input() + notesLabel: string; + + /** + * Output variable: navigateToIntroFragmentRequest. + * + * It keeps an event emitter for the selected ids of an edition complex and intro fragment. + */ + @Output() + navigateToIntroFragmentRequest: EventEmitter<{ complexId: string; fragmentId: string }> = new EventEmitter(); + + /** + * Output variable: navigateToReportFragmentRequest. + * + * It keeps an event emitter for the selected ids of an edition complex and report fragment. + */ + @Output() + navigateToReportFragmentRequest: EventEmitter<{ complexId: string; fragmentId: string }> = new EventEmitter(); + + /** + * Output variable: openModalRequest. + * + * It keeps an event emitter to open the modal + * with the selected modal text snippet. + */ + @Output() + openModalRequest: EventEmitter = new EventEmitter(); + + /** + * Output variable: selectSvgSheetRequest. + * + * It keeps an event emitter for the selected ids of an edition complex and svg sheet. + */ + @Output() + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); + + /** + * Self-referring variable needed for CompileHtml library. + */ + ref: EditionIntroContentComponent; + + /** + * Constructor of the EditionIntroContentComponent. + * + * It initializes the self-referring variable needed for CompileHtml library. + * + * @param {UtilityService} utils Instance of the UtilityService. + */ + constructor() { + this.ref = this; + } + + /** + * Public method: navigateToIntroFragment. + * + * It emits the given ids of a selected edition complex and intro fragment + * to the {@link navigateToIntroFragmentRequest}. + * + * @param {object} introIds The given intro ids as { complexId: string, fragmentId: string }. + * @returns {void} Emits the ids. + */ + navigateToIntroFragment(introIds: { complexId: string; fragmentId: string }): void { + if (!introIds?.fragmentId) { + return; + } + this.navigateToIntroFragmentRequest.emit(introIds); + } + + /** + * Public method: navigateToReportFragment. + * + * It emits the given ids of a selected edition complex and report fragment + * to the {@link navigateToReportFragmentRequest}. + * + * @param {object} reportIds The given report ids as { complexId: string, fragmentId: string }. + * @returns {void} Emits the ids. + */ + navigateToReportFragment(reportIds: { complexId: string; fragmentId: string }): void { + if (!reportIds?.fragmentId) { + return; + } + this.navigateToReportFragmentRequest.emit(reportIds); + } + + /** + * Public method: openModal. + * + * It emits a given id of a modal snippet text + * to the {@link openModalRequest}. + * + * @param {string} id The given modal snippet id. + * @returns {void} Emits the id. + */ + openModal(id: string): void { + if (!id) { + return; + } + this.openModalRequest.emit(id); + } + + /** + * Public method: selectSvgSheet. + * + * It emits the given ids of a selected edition complex + * and svg sheet to the {@link selectSvgSheetRequest}. + * + * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. + * @returns {void} Emits the ids. + */ + selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + if (!sheetIds?.sheetId) { + return; + } + this.selectSvgSheetRequest.emit(sheetIds); + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/index.ts new file mode 100644 index 0000000000..56aefe4095 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/index.ts @@ -0,0 +1 @@ +export * from './edition-intro-content.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html new file mode 100644 index 0000000000..c7eb1bee9c --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html @@ -0,0 +1,8 @@ +
+

+ [Die Einleitung zum Editionskomplex erscheint im + Zusammenhang der vollständigen Edition von in + {{ editionLabel }} + {{ editionComplex?.pubStatement?.series?.short }}/{{ editionComplex?.pubStatement?.section?.short }}.] +

+
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts new file mode 100644 index 0000000000..fbdca5994e --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditionIntroEmptyComponent } from './edition-intro-empty.component'; + +describe('EditionIntroEmptyComponent', () => { + let component: EditionIntroEmptyComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionIntroEmptyComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionIntroEmptyComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts new file mode 100644 index 0000000000..7774fdcb60 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts @@ -0,0 +1,32 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { EditionComplex } from '@awg-app/views/edition-view/models'; + +/** + * The EditionIntroEmpty component. + * + * It contains the placeholder for an empty intro + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-intro-empty', + templateUrl: './edition-intro-empty.component.html', + styleUrls: ['./edition-intro-empty.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionIntroEmptyComponent { + /** + * Input variable: introBlockContent. + * + * It keeps the content blocks of the intro. + */ + @Input() + editionComplex: EditionComplex; + + /** + * Input variable: editionLabel. + * + * It keeps the edition label of the intro. + */ + @Input() + editionLabel: string; +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts new file mode 100644 index 0000000000..da483cc606 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts @@ -0,0 +1 @@ +export * from './edition-intro-empty.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html new file mode 100644 index 0000000000..8091338a4d --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html @@ -0,0 +1,22 @@ +
+ +
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss new file mode 100644 index 0000000000..63a5712a70 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss @@ -0,0 +1,16 @@ +.awg-edition-intro-nav .nav { + position: sticky; + top: 0; + + .nav-item { + text-align: end; + + a.active { + color: #000; + } + + .nav-link { + padding-right: 0; + } + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts new file mode 100644 index 0000000000..45c16d5ad9 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditionIntroNavComponent } from './edition-intro-nav.component'; + +describe('EditionIntroNavComponent', () => { + let component: EditionIntroNavComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionIntroNavComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionIntroNavComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.ts new file mode 100644 index 0000000000..74c82324cd --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.ts @@ -0,0 +1,61 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; + +import { IntroBlock } from '@awg-views/edition-view/models'; + +/** + * The EditionIntroNav component. + * + * It contains the navigation for the intro + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-intro-nav', + templateUrl: './edition-intro-nav.component.html', + styleUrls: ['./edition-intro-nav.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionIntroNavComponent { + /** + * Input variable: introBlockContent. + * + * It keeps the content blocks of the intro. + */ + @Input() + introBlockContent: IntroBlock[]; + + /** + * Input variable: notesLabel. + * + * It keeps the notes label of the intro. + */ + @Input() + notesLabel: string; + /** + * Input variable: currentLanguage. + * + * It keeps the current language: 0 for German, 1 for English. + */ + @Input() + currentLanguage: number; + + /** + * Output variable: languageChangeRequest. + * + * It emits the current language. + */ + @Output() languageChangeRequest = new EventEmitter(); + + /** + * Public method: setLanguage. + * + * It emits the current language. + * + * @param {number} language The given language number. + * @returns {void} Emits the current language. + */ + setLanguage(language: number): void { + if (language === 0 || language === 1) { + this.languageChangeRequest.emit(language); + } + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/index.ts new file mode 100644 index 0000000000..bdc9d233df --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/index.ts @@ -0,0 +1 @@ +export * from './edition-intro-nav.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index b5a55b973e..07ca9b15a7 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -5,87 +5,29 @@ @if (editionIntroData$ | async; as editionIntroData) { -
+
@if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].content)) { -
- @for (introBlock of editionIntroData.intro[currentLanguage].content; track $index) { -
- @if (introBlock.blockHeader) { -
-

-
- } - @if (introBlock.blockContent.length > 0) { - @for (blockContent of introBlock.blockContent; track $index) { -
- } - } -
- } - @if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].notes)) { -
-
-
{{ notesLables.get(currentLanguage) }}
-
- @for (note of editionIntroData.intro[currentLanguage].notes; track $index) { -
- } -
-
- } -
+ -
- -
+ } @else { -
-

- [Die Einleitung zum Editionskomplex - erscheint im Zusammenhang der - vollständigen Edition von in - {{ editionRouteConstants.EDITION.short }} - {{ editionComplex.pubStatement.series.short }}/{{ - editionComplex.pubStatement.section.short - }}.] - -

-
+ }
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss index e5e052f715..e69de29bb2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.scss @@ -1,100 +0,0 @@ -.awg-intro-content { - margin-top: 1.5em; - - .awg-intro-note, - .awg-intro-para { - text-align: justify; - text-justify: inter-word; - - &::ng-deep { - .link-todo { - background-color: chartreuse; - } - - .corrigenda { - background-color: burlywood; - } - - .errata { - background-color: red; - } - - .note-1-dig { - margin-left: 1.3em; - text-indent: -1.3em; - } - - .note-2-dig { - margin-left: 1.8em; - text-indent: -1.8em; - } - - .note-3-dig { - margin-left: 2.3em; - text-indent: -2.3em; - } - } - } - - .awg-intro-para { - margin: 0; - text-indent: 1.5em; - - &::ng-deep { - p { - margin-bottom: 0 !important; - } - - table > tbody > tr > td { - padding-right: 10px; - } - - .heading { - display: block; - font-weight: bold; - margin: 1.5em 0; - text-indent: 0; - } - - .small, - .no-indent { - text-indent: 0; - } - - .spacebreak { - display: block; - margin-top: 1em; - - &.list { - text-indent: 0; - } - - &.no-indent { - margin-left: 0; - } - } - - .list { - margin-left: 1em; - text-indent: -1em; - } - } - } -} - -.awg-intro-nav .nav { - position: sticky; - top: 0; - - .nav-item { - text-align: end; - - a.active { - color: #000; - } - - .nav-link { - padding-right: 0; - } - } -} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index 4c76eafe33..4af0bc48f5 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -11,6 +11,7 @@ import { Observable, of as observableOf, throwError as observableThrowError, + ReplaySubject, } from 'rxjs'; import Spy = jasmine.Spy; @@ -31,8 +32,19 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionComplex, EditionSvgSheet, IntroList } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { + EditionComplex, + EditionOutlineSection, + EditionOutlineSeries, + EditionSvgSheet, + IntroList, +} from '@awg-views/edition-view/models'; +import { + EditionComplexesService, + EditionDataService, + EditionOutlineService, + EditionService, +} from '@awg-views/edition-view/services'; import { EditionIntroComponent } from './edition-intro.component'; @@ -51,7 +63,7 @@ class ModalStubComponent { @Component({ selector: 'awg-twelve-tone-spinner', template: '' }) class TwelveToneSpinnerStubComponent {} -describe('IntroComponent (DONE)', () => { +fdescribe('IntroComponent (DONE)', () => { let component: EditionIntroComponent; let fixture: ComponentFixture; let compDe: DebugElement; @@ -59,10 +71,25 @@ describe('IntroComponent (DONE)', () => { let mockDocument: Document; let mockRouter; + let editionDataServiceGetEditionComplexIntroDataSpy: Spy; + let editionServiceGetSelectedEditionComplexSpy: Spy; + let editionServiceGetSelectedEditionSectionSpy: Spy; + let editionServiceGetSelectedEditionSeriesSpy: Spy; + + let componentOpenModalSpy: Spy; + let getEditionIntroDataSpy: Spy; + let navigateWithComplexIdSpy: Spy; + let navigateToIntroFragmentSpy: Spy; + let navigateToReportFragmentSpy: Spy; + let navigationSpy: Spy; + let modalOpenSpy: Spy; + let selectSvgSheetSpy: Spy; + let mockEditionDataService: Partial; let mockEditionService: Partial; let editionDataService: Partial; let editionService: Partial; + let mockIsIntroViewSubject: ReplaySubject; let expectedEditionComplex: EditionComplex; let expectedEditionComplexBaseRoute: string; @@ -73,25 +100,17 @@ describe('IntroComponent (DONE)', () => { let expectedIntroFragment: string; let expectedReportFragment: string; let expectedModalSnippet: string; + let expectedSelectedEditionSeries: EditionOutlineSeries; + let expectedSelectedEditionSection: EditionOutlineSection; let expectedSvgSheet: EditionSvgSheet; let expectedNextSvgSheet: EditionSvgSheet; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; - let editionDataServiceGetEditionIntroDataSpy: Spy; - let getEditionIntroDataSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; - let navigateWithComplexIdSpy: Spy; - let navigateToIntroFragmentSpy: Spy; - let navigateToReportFragmentSpy: Spy; - let navigationSpy: Spy; - let modalOpenSpy: Spy; - let componentOpenModalSpy: Spy; - let selectSvgSheetSpy: Spy; - const jsonPipe = new JsonPipe(); beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); }); beforeEach(waitForAsync(() => { @@ -99,12 +118,21 @@ describe('IntroComponent (DONE)', () => { mockRouter = jasmine.createSpyObj('Router', ['navigate']); // Mock services - mockEditionDataService = { - getEditionIntroData: (editionComplex: EditionComplex): Observable => - observableOf(expectedEditionIntroData), - }; + mockIsIntroViewSubject = new ReplaySubject(1); + mockEditionService = { getSelectedEditionComplex: (): Observable => observableOf(expectedEditionComplex), + getSelectedEditionSeries: (): Observable => + observableOf(expectedSelectedEditionSeries), + getSelectedEditionSection: (): Observable => + observableOf(expectedSelectedEditionSection), + updateIsIntroView: (isView: boolean): void => mockIsIntroViewSubject.next(isView), + clearIsIntroView: (): void => mockIsIntroViewSubject.next(null), + }; + + mockEditionDataService = { + getEditionComplexIntroData: (editionComplex: EditionComplex): Observable => + observableOf(expectedEditionIntroData), }; TestBed.configureTestingModule({ @@ -141,7 +169,7 @@ describe('IntroComponent (DONE)', () => { expectedEditionComplexBaseRoute = '/edition/complex/op12/'; expectedComplexId = 'testComplex1'; expectedNextComplexId = 'testComplex2'; - expectedIntroFragment = 'footnote-80'; + expectedIntroFragment = 'note-80'; expectedReportFragment = 'source_A'; expectedModalSnippet = JSON.parse(JSON.stringify(mockEditionData.mockModalSnippet)); expectedEditionIntroData = JSON.parse(JSON.stringify(mockEditionData.mockIntroData)); @@ -149,13 +177,15 @@ describe('IntroComponent (DONE)', () => { expectedSvgSheet = JSON.parse(JSON.stringify(mockEditionData.mockSvgSheet_Sk1)); expectedNextSvgSheet = JSON.parse(JSON.stringify(mockEditionData.mockSvgSheet_Sk2)); - // Spies on functions - editionDataServiceGetEditionIntroDataSpy = spyOn(editionDataService, 'getEditionIntroData').and.returnValue( - observableOf(expectedEditionIntroData) + expectedSelectedEditionSeries = EditionOutlineService.getEditionSeriesById( + expectedEditionComplex.pubStatement.series.route ); - editionServiceGetSelectedEditionComplexSpy = spyOn(editionService, 'getSelectedEditionComplex').and.returnValue( - observableOf(expectedEditionComplex) + expectedSelectedEditionSection = EditionOutlineService.getEditionSectionById( + expectedEditionComplex.pubStatement.series.route, + expectedEditionComplex.pubStatement.section.route ); + + // Spies on functions getEditionIntroDataSpy = spyOn(component, 'getEditionIntroData').and.callThrough(); navigateToIntroFragmentSpy = spyOn(component, 'navigateToIntroFragment').and.callThrough(); navigateToReportFragmentSpy = spyOn(component, 'navigateToReportFragment').and.callThrough(); @@ -164,6 +194,20 @@ describe('IntroComponent (DONE)', () => { modalOpenSpy = spyOn(component.modal, 'open').and.callThrough(); componentOpenModalSpy = spyOn(component, 'openModal').and.callThrough(); selectSvgSheetSpy = spyOn(component, 'selectSvgSheet').and.callThrough(); + + editionDataServiceGetEditionComplexIntroDataSpy = spyOn( + editionDataService, + 'getEditionComplexIntroData' + ).and.returnValue(observableOf(expectedEditionIntroData)); + editionServiceGetSelectedEditionComplexSpy = spyOn(editionService, 'getSelectedEditionComplex').and.returnValue( + observableOf(expectedEditionComplex) + ); + editionServiceGetSelectedEditionSeriesSpy = spyOn(editionService, 'getSelectedEditionSeries').and.returnValue( + observableOf(expectedSelectedEditionSeries) + ); + editionServiceGetSelectedEditionSectionSpy = spyOn(editionService, 'getSelectedEditionSection').and.returnValue( + observableOf(expectedSelectedEditionSection) + ); }); afterAll(() => { @@ -196,8 +240,8 @@ describe('IntroComponent (DONE)', () => { getAndExpectDebugElementByDirective(compDe, ModalStubComponent, 1, 1); }); - it('... should contain no div.awg-intro-view yet', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + it('... should contain no div.awg-edition-intro-view yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); }); it('... should not contain an error alert component (stubbed)', () => { @@ -214,7 +258,7 @@ describe('IntroComponent (DONE)', () => { }); }); - describe('AFTER initial data binding', () => { + fdescribe('AFTER initial data binding', () => { beforeEach(() => { // Simulate the parent setting the input properties component.editionIntroData$ = observableOf(expectedEditionIntroData); @@ -242,18 +286,18 @@ describe('IntroComponent (DONE)', () => { })); describe('VIEW', () => { - it('... should contain one div.awg-intro-view', () => { + it('... should contain one div.awg-edition-intro-view', () => { // Div debug element - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); }); - it('... should contain as many intro paragraph elements in div.awg-intro-view as content items in intro data', () => { + it('... should contain as many intro paragraph elements in div.awg-edition-intro-view as content items in intro data', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); @@ -261,11 +305,11 @@ describe('IntroComponent (DONE)', () => { it('... should have one anchor in first paragraph, and 3 in the second one', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); @@ -274,47 +318,47 @@ describe('IntroComponent (DONE)', () => { getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); }); - it('... should contain as many footnote paragraphs in div.awg-intro-view as footnote items in intro data', () => { + it('... should contain as many note paragraphs in div.awg-edition-intro-view as note items in intro data', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-footnote', - expectedEditionIntroData.intro[0].footnotes.length, - expectedEditionIntroData.intro[0].footnotes.length + 'p.awg-edition-intro-note', + 0, // TODO: expectedEditionIntroData.intro[0].notes.length, + 0 // TODO: expectedEditionIntroData.intro[0].notes.length, ); }); - it('... should have each footnote paragraph embedded in small element', () => { + it('... should have each note paragraph embedded in small element', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); getAndExpectDebugElementByCss( divDes[0], - 'small p.awg-intro-footnote', - expectedEditionIntroData.intro[0].footnotes.length, - expectedEditionIntroData.intro[0].footnotes.length + 'small p.awg-edition-intro-note', + 0, // TODO: expectedEditionIntroData.intro[0].notes.length, + 0 // TODO: expectedEditionIntroData.intro[0].notes.length, ); }); - it('... should have one anchor in footnote paragraph', () => { + it('... should have one anchor in note paragraph', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-footnote', - expectedEditionIntroData.intro[0].footnotes.length, - expectedEditionIntroData.intro[0].footnotes.length + 'p.awg-edition-intro-note', + 0, // TODO: expectedEditionIntroData.intro[0].notes.length, + 0 // TODO: expectedEditionIntroData.intro[0].notes.length, ); getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); }); - it('... should contain one horizontal line and header for footnotes ', () => { + it('... should contain one horizontal line and header for notes ', () => { // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); getAndExpectDebugElementByCss(divDes[0], 'hr', 1, 1); const headerDe = getAndExpectDebugElementByCss(divDes[0], 'h5', 1, 1); @@ -328,8 +372,8 @@ describe('IntroComponent (DONE)', () => { component.editionIntroData$ = observableOf(expectedEditionIntroEmptyData); detectChangesOnPush(fixture); - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); - const pDes = getAndExpectDebugElementByCss(divDes[0], 'p.awg-intro-empty', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p.awg-edition-intro-empty', 1, 1); getAndExpectDebugElementByCss(pDes[0], 'small.text-muted', 1, 1); })); @@ -339,7 +383,12 @@ describe('IntroComponent (DONE)', () => { component.editionIntroData$ = observableOf(expectedEditionIntroEmptyData); detectChangesOnPush(fixture); - const pDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view > p.awg-intro-empty', 1, 1); + const pDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-intro-view > p.awg-edition-intro-empty', + 1, + 1 + ); const pEl = pDes[0].nativeElement; // Create intro placeholder @@ -363,14 +412,16 @@ describe('IntroComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Spy on editionDataService to return an error - editionDataServiceGetEditionIntroDataSpy.and.returnValue(observableThrowError(() => expectedError)); + editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( + observableThrowError(() => expectedError) + ); component.getEditionIntroData(); detectChangesOnPush(fixture); })); it('... should not contain intro view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); getAndExpectDebugElementByDirective(divDes[0], ErrorAlertStubComponent, 1, 1); @@ -393,7 +444,7 @@ describe('IntroComponent (DONE)', () => { component.editionIntroData$ = EMPTY; detectChangesOnPush(fixture); - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); }); @@ -403,7 +454,7 @@ describe('IntroComponent (DONE)', () => { component.editionIntroData$ = observableOf(undefined); detectChangesOnPush(fixture); - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); }); @@ -413,7 +464,7 @@ describe('IntroComponent (DONE)', () => { component.editionIntroData$ = observableOf(null); detectChangesOnPush(fixture); - getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 0, 0); + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); getAndExpectDebugElementByDirective(compDe, TwelveToneSpinnerStubComponent, 1, 1); }); @@ -437,13 +488,15 @@ describe('IntroComponent (DONE)', () => { }); it('... should have got editionIntroData from editionDataService', () => { - expectSpyCall(editionDataServiceGetEditionIntroDataSpy, 1); + expectSpyCall(editionDataServiceGetEditionComplexIntroDataSpy, 1); }); it('... should return empty observable and set errorObject if switchMap fails', waitForAsync(() => { const expectedError = { status: 404, statusText: 'error' }; // Spy on editionDataService to return an error - editionDataServiceGetEditionIntroDataSpy.and.returnValue(observableThrowError(() => expectedError)); + editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( + observableThrowError(() => expectedError) + ); // Init new switchMap component.getEditionIntroData(); @@ -462,12 +515,12 @@ describe('IntroComponent (DONE)', () => { }); it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); // Find paragraphs const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); @@ -626,12 +679,12 @@ describe('IntroComponent (DONE)', () => { }); it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); // Find paragraphs const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); @@ -790,12 +843,12 @@ describe('IntroComponent (DONE)', () => { }); it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); // Find paragraphs const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); @@ -854,12 +907,12 @@ describe('IntroComponent (DONE)', () => { }); it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-intro-view', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); // Find paragraphs const pDes = getAndExpectDebugElementByCss( divDes[0], - 'p.awg-intro-para', + 'p.awg-edition-intro-para', expectedEditionIntroData.intro[0].content.length, expectedEditionIntroData.intro[0].content.length ); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index 8d37ccf791..d336b1fead 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { NavigationExtras, Router } from '@angular/router'; -import { EMPTY, fromEvent, Observable } from 'rxjs'; -import { catchError, switchMap, throttleTime } from 'rxjs/operators'; +import { combineLatest, EMPTY, fromEvent, Observable, of as observableOf } from 'rxjs'; +import { catchError, map, startWith, switchMap, throttleTime } from 'rxjs/operators'; import { UtilityService } from '@awg-core/services'; import { ModalComponent } from '@awg-shared/modal/modal.component'; @@ -18,7 +18,7 @@ import { EditionDataService, EditionService } from '@awg-views/edition-view/serv * of the edition view of the app. */ @Component({ - selector: 'awg-intro', + selector: 'awg-edition-intro', templateUrl: './edition-intro.component.html', styleUrls: ['./edition-intro.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -125,6 +125,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { */ ngOnDestroy() { this.editionService.clearIsIntroView(); + this.editionIntroData$ = null; } /** @@ -139,49 +140,49 @@ export class EditionIntroComponent implements OnDestroy, OnInit { getEditionIntroData(): void { this.editionService.updateIsIntroView(true); - this.editionIntroData$ = this.editionService - // Get current editionComplex from editionService - .getSelectedEditionComplex() - .pipe( - switchMap((complex: EditionComplex) => { - // Set current editionComplex - this.editionComplex = complex; - // Get intro data from editionDataService - return this.editionDataService.getEditionIntroData(this.editionComplex); - }), - // Error handling - catchError(err => { - this.errorObject = err; + this.editionIntroData$ = combineLatest([ + this.editionService.getSelectedEditionSeries(), + this.editionService.getSelectedEditionSection(), + this.editionService.getSelectedEditionComplex().pipe(startWith(null)), + ]).pipe( + switchMap(([series, section, complex]) => { + if (series && section) { + return this._fetchAndFilterIntroData(series.series.route, section.section.route, complex); + } else { return EMPTY; - }) - ); + } + }), + catchError(err => { + this.errorObject = err; + return EMPTY; + }) + ); } /** - * Public method: navigateToIntroFragment. + * Public method: onIntroFragmentNavigate. * * It navigates to the '/intro/' route with the given complexId and fragmentId. * * @param {string} fragmentId The given fragment id. * @returns {void} Navigates to the edition intro fragment. */ - navigateToIntroFragment(introIds: { complexId: string; fragmentId: string }): void { - const introRoute = this.editionRouteConstants.EDITION_INTRO.route; + onIntroFragmentNavigate(introIds: { complexId: string; fragmentId: string }): void { const navigationExtras: NavigationExtras = { fragment: introIds?.fragmentId ?? '', }; - this._navigateWithComplexId(introIds?.complexId, introRoute, navigationExtras); + this.router.navigate([], navigationExtras); } /** - * Public method: navigateToReportFragment. + * Public method: onReportFragmentNavigate. * * It navigates to the '/report/' route with the given complexId and fragmentId. * - * @param {string} fragmentId The given fragment id. + * @param {object} reportIds The given report ids as { complexId: string, fragmentId: string }. * @returns {void} Navigates to the edition report fragment. */ - navigateToReportFragment(reportIds: { complexId: string; fragmentId: string }): void { + onReportFragmentNavigate(reportIds: { complexId: string; fragmentId: string }): void { const reportRoute = this.editionRouteConstants.EDITION_REPORT.route; const navigationExtras: NavigationExtras = { fragment: reportIds?.fragmentId ?? '', @@ -190,14 +191,14 @@ export class EditionIntroComponent implements OnDestroy, OnInit { } /** - * Public method: openModal. + * Public method: onModalOpen. * * It opens the {@link ModalComponent} with a given id of a modal snippet text. * * @param {string} id The given modal snippet id. * @returns {void} Opens the modal with the snippet id. */ - openModal(id: string): void { + onModalOpen(id: string): void { if (!id) { return; } @@ -205,7 +206,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { } /** - * Public method: selectSvgSheet. + * Public method: onSvgSheetSelect. * * It navigates to the '/sheet/' route using the provided sheetId * within the context of an edition complex identified by the provided complexId. @@ -213,7 +214,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { * @param {object} sheetIds The given sheet ids as { complexId: string, sheetId: string }. * @returns {void} Navigates to the edition sheets. */ - selectSvgSheet(sheetIds: { complexId: string; sheetId: string }): void { + onSvgSheetSelect(sheetIds: { complexId: string; sheetId: string }): void { const sheetRoute = this.editionRouteConstants.EDITION_SHEETS.route; const navigationExtras: NavigationExtras = { queryParams: { id: sheetIds?.sheetId ?? '' }, @@ -224,17 +225,69 @@ export class EditionIntroComponent implements OnDestroy, OnInit { } /** - * Public method: setLanguage. + * Public method: onLanguageSet. * * It sets the current language of the edition intro. * * @param {number} language The given language number. * @returns {void} Sets the current language. */ - setLanguage(language: number): void { + onLanguageSet(language: number): void { this.currentLanguage = language; } + /** + * Private method: _fetchAndFilterIntroData. + * + * It fetches the intro data and, if needed, + * filters it by a given block id for the edition complex. + * + * @param {string} seriesRoute The given series route. + * @param {string} sectionRoute The given section route. + * @param {EditionComplex} complex The given edition complex. + * @returns {Observable} The filtered intro data. + */ + private _fetchAndFilterIntroData( + seriesRoute: string, + sectionRoute: string, + complex: EditionComplex | null + ): Observable { + return this.editionDataService.getEditionSectionIntroData(seriesRoute, sectionRoute).pipe( + switchMap(sectionIntroData => { + if (complex) { + this.editionComplex = complex; + return this.editionDataService.getEditionComplexIntroData(this.editionComplex).pipe( + map(complexIntroData => { + const blockId = complexIntroData.intro[0].id; + return this._filterSectionIntroDataById(sectionIntroData, blockId); + }) + ); + } else { + return observableOf(sectionIntroData); + } + }) + ); + } + + /** + * Private method: _filterSectionIntroDataById. + * + * It filters the section intro data by a given block id. + * + * @param {IntroList} sectionIntroData The given section intro data. + * @param {string} blockId The given block id. + * @returns {IntroList} The filtered section intro data. + */ + private _filterSectionIntroDataById(sectionIntroData: IntroList, blockId: string): IntroList { + return { + ...sectionIntroData, + intro: sectionIntroData.intro.map(section => ({ + ...section, + content: section.content.filter(contentBlock => contentBlock.blockId === blockId), + })), + }; + } + /** * Private method: _initScrollListener. * @@ -276,8 +329,8 @@ export class EditionIntroComponent implements OnDestroy, OnInit { */ private _onIntroScroll(event: Event): void { const scrollPosition = window.scrollY || document.documentElement.scrollTop; - const introSections: NodeListOf = document.querySelectorAll('.awg-intro-section'); - const introNavLinks: NodeListOf = document.querySelectorAll('a.awg-intro-nav-link'); + const introSections: NodeListOf = document.querySelectorAll('.awg-edition-intro-section'); + const introNavLinks: NodeListOf = document.querySelectorAll('a.awg-edition-intro-nav-link'); let activeIntroSectionFound = false; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts index 4ff8466d40..383c83a915 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts @@ -2,6 +2,10 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '@awg-shared/shared.module'; +import { EditionIntroContentComponent } from './edition-intro-content'; +import { EditionIntroEmptyComponent } from './edition-intro-empty'; +import { EditionIntroNavComponent } from './edition-intro-nav'; + import { EditionIntroRoutingModule, routedEditionIntroComponents } from './edition-intro-routing.module'; /** @@ -13,6 +17,11 @@ import { EditionIntroRoutingModule, routedEditionIntroComponents } from './editi */ @NgModule({ imports: [SharedModule, EditionIntroRoutingModule], - declarations: [routedEditionIntroComponents], + declarations: [ + EditionIntroContentComponent, + EditionIntroEmptyComponent, + EditionIntroNavComponent, + routedEditionIntroComponents, + ], }) export class EditionIntroModule {} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts index 876e9e50d9..e14e573990 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts @@ -13,6 +13,7 @@ import { getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; @@ -53,7 +54,11 @@ describe('EditionSectionDetailOverviewComponent', () => { }; await TestBed.configureTestingModule({ - declarations: [EditionSectionDetailOverviewComponent, EditionComplexCardStubComponent], + declarations: [ + EditionSectionDetailOverviewComponent, + EditionComplexCardStubComponent, + RouterLinkStubDirective, + ], providers: [{ provide: EditionService, useValue: mockEditionService }], }).compileComponents(); @@ -142,16 +147,14 @@ describe('EditionSectionDetailOverviewComponent', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); }); - it('... should contain one div.alert-info', () => { - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + it('... should contain no div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); }); it('... should contain one awg-edition-complex-card', () => { getAndExpectDebugElementByCss(compDe, 'awg-edition-complex-card', 1, 1); }); - }); - describe('VIEW', () => { describe('... with given complexes', () => { describe('... should contain 1 outer div.awg-edition-section-detail, but no div.alert-info ...', () => { it('... if selected section is given and not empty', waitForAsync(() => { diff --git a/src/app/views/edition-view/models/index.ts b/src/app/views/edition-view/models/index.ts index bb023019de..e85f2922bd 100644 --- a/src/app/views/edition-view/models/index.ts +++ b/src/app/views/edition-view/models/index.ts @@ -36,7 +36,7 @@ import { FolioSvgContentSegment, FolioSvgData } from './folio-svg-data.model'; import { Folio, FolioContent, FolioConvolute, FolioConvoluteList, FolioFormat, FolioSection } from './folio.model'; import { Graph, GraphList, GraphRDFData, GraphSparqlQuery } from './graph.model'; -import { Intro, IntroList } from './intro.model'; +import { Intro, IntroBlock, IntroList } from './intro.model'; import { Preface, PrefaceList } from './preface.model'; import { @@ -94,6 +94,7 @@ export { GraphRDFData, GraphSparqlQuery, Intro, + IntroBlock, IntroList, Preface, PrefaceList, diff --git a/src/assets/themes/scss/main.scss b/src/assets/themes/scss/main.scss index 300e06271d..1c7c09b06b 100644 --- a/src/assets/themes/scss/main.scss +++ b/src/assets/themes/scss/main.scss @@ -31,7 +31,7 @@ a.awg-svg-sheet-nav-link:hover, } a.dropdown-item:hover, a.list-group-item:hover, -a.awg-intro-nav-link:hover, +a.awg-edition-intro-nav-link:hover, a.awg-svg-sheet-nav-link, a.awg-svg-sheet-nav-link:hover, .navbar-brand:hover, From 21243a0c29363359fff069174ab553fd49862cda Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:45:27 +0200 Subject: [PATCH 138/213] feat(assets): add corrections for Op4: A --- .../1/section/5/op4/source-description.json | 370 ++++++++++++++++++ 1 file changed, 370 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index 85e15550da..9001f5cd1e 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -163,6 +163,376 @@ } ] } + ], + "corrections": [ + { + "id": "source_A_corr", + "label": "Korrekturen in A", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf Eingang („Welt der Gestalten“) M 138: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1–16", + "system": "", + "position": "", + "comment": "Auf zahlreichen Rasuren mit schwarzer und teilweise roter Tinte. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "1", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "5/4", + "comment": "Unterstimmenschicht: Viertelpause hinzugefügt mit Bleistift." + }, + { + "measure": "2", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "2", + "system": "Ges.", + "position": "5. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "7. Note", + "comment": "{{ref.getGlyph('[a]')}} zu g1/h1 hinzugefügt mit Bleistift, nachgezogen mit roter Tinte." + }, + { + "measure": "2", + "system": "Klav. u.", + "position": "14/8", + "comment": "{{ref.getGlyph('[a]')}} zu d überschreibt {{ref.getGlyph('[b]')}}." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} zu c1/e1 hinzugefügt mit Bleistift, nachgezogen mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[a]')}} zu d1 hinzugefügt mit Bleistift, nachgezogen mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Unterstimmenschicht: Ligaturbogen zu fis (siehe Textfassung 1) gestrichen mit Bleistift." + }, + { + "measure": "3", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1. Pause", + "comment": "Unterstimmenschicht: Halbe Pause hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "4", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Ges.", + "position": "11/8", + "comment": "Achtelpause nachgezogen mit Bleistift." + }, + { + "measure": "4", + "system": "Ges.", + "position": "12/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "Ges.", + "position": "7/8, 8/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "5", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Ges.", + "position": "1., 2. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "", + "position": "4–7/4", + "comment": "Auf Tektur." + }, + { + "measure": "6", + "system": "Ges.", + "position": "8/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "vorletzte bis letzte Note", + "comment": "Bogenanfang zu Bogen bis T. 7 3. Note (siehe Textfassung 1) gestrichen und Staccatopunkte hinzugefügt mit roter Tinte." + }, + { + "measure": "6
bis 7", + "system": "Klav. u.", + "position": "27/16
4/16", + "comment": "Bogen (siehe Textfassung1) gestrichen und geändert zu zwei Bögen T. 6 27–28/16, T. 7 1–2/16 sowie Staccatopunkte zu T. 7 34/16 mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "8.–11. Note", + "comment": "Bogen (siehe Textfassung 1) gestrichen sowie Staccatopunkt zu 9. Note und Bogen 10.–11. Note hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "2. Pause", + "comment": "Ligatur von 6/8 und Achteltriole e/g (siehe Textfassung 1) gestrichen und geändert zu Achteltriolenpause mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "14–17/16", + "comment": "Bogen gestrichen und geändert zu Staccatopunkten mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav.", + "position": "18–23/16", + "comment": "Bogen (siehe Textfassung 1) gestrichen und geändert zu Bogen 18–20/16 und Staccatopunkten zu 21–23/16 mit roter Tinte." + }, + { + "measure": "7
bis 8", + "system": "Klav.", + "position": "24/16
1/8", + "comment": "Bogen (siehe Textfassung 1) geändert zu zwei Bögen T. 7 24–26/16 und T. 7 27/16 bis T. 8 1/8." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang", + "comment": "Zuerst: etwas breiter (siehe Textfassung 1) hinzugefügt mit Bleistift.
Dann: gestrichen und geändert zu noch langsamer mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav.", + "position": "3/8", + "comment": "Zuerst: Pedal-Aufhebung zu 1/8.
Dann: gestrichen und versetzt zu 2/8 mit roter Tinte.
Dann: gestrichen und versetzt zu 3/8 mit Bleistift." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} gestrichen mit Bleistift." + }, + { + "measure": "8", + "system": "Klav.", + "position": "4/8", + "comment": "Ped. hinzugefügt mit roter Tinte. (Siehe Korrektur zu 9/8.)" + }, + { + "measure": "8", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav.", + "position": "9/8", + "comment": "Pedal-Aufhebung hinzugefügt mit roter Tinte. (Siehe Korrektur zu 4/8.)" + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} zu g hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "", + "position": "4/4", + "comment": "wie zu Anfang unterstrichen mit roter Tinte." + }, + { + "measure": "9", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "8/8", + "comment": "{{ref.getGlyph('[a]')}} zu D1 hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "Ges.", + "position": "10/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "Ges.", + "position": "vorletzte Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "9", + "system": "Ges.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[b]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "10", + "system": "Ges.", + "position": "2/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "10", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "10", + "system": "Ges.", + "position": "8. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "Ges.", + "position": "2. Note, 5/8, 6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "", + "position": "6/4 bis Taktende", + "comment": "rit - - - gestrichen mit roter Tinte." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "12, 13", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "13
bis 14", + "system": "Klav. o.", + "position": "4. Note
1. Note", + "comment": "Unterstimmenschicht: Ligaturbogen zu fis hinzugefügt mit roter Tinte." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "vorletzte Note", + "comment": "Oberstimmenschicht: {{ref.getGlyph('[a]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "14–15", + "system": "Ges.", + "position": "", + "comment": "Punktierte Ganze Pause, Viertelpause (T. 14), Halbe Pause, punktierte Halbe Pause, Halbe Pause (T. 15) (siehe Textfassung 1) nach Hinzufügung der gestrichelten Teiltaktstriche (siehe Korrekturen T. 14 nach 3/4, T. 15 nach 4/4) zu Ganze Pause nach Teiltaktstrich in T. 14 und Streichung der letzten Pause in T. 15 (sic: siehe TkA) mit rotem Buntstift." + }, + { + "measure": "14", + "system": "", + "position": "nach 4/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + }, + { + "measure": "15", + "system": "Klav.", + "position": "", + "comment": "Klav. o. Oberstimmenschicht 2. Note: Viertelnote {{ref.getGlyph('[a]')}}f1 mit Ligatur zu 3. Note hinzugefügt mit roter Tinte. Klav. o. Unterstimmenschicht und Klav. u.: Punktierung zu 1. Note hinzugefügt und Punktierung zu 2. Note (siehe Textfassung 1) gestrichen mit roter Tinte." + }, + { + "measure": "15", + "system": "", + "position": "nach 3/4", + "comment": "Gestrichelter Teiltaktstrich hinzugefügt mit roter Tinte." + } + ] + } + ] + } ] } }, From 204ea18761041f291c98318de59f72b17fbd3203 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Mon, 14 Oct 2024 16:28:27 +0200 Subject: [PATCH 139/213] style(edition): fix style for intro components --- .../edition-intro-content.component.scss | 4 ++-- .../edition-intro-nav.component.scss | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss index d18b8fd021..f7615e76ca 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss @@ -2,7 +2,7 @@ margin-top: 1.5em; .awg-edition-intro-note, - .awg-edition-intro-para { + .awg-edition-intro-block { text-align: justify; text-justify: inter-word; @@ -36,7 +36,7 @@ } } - .awg-edition-intro-para { + .awg-edition-intro-block { margin: 0; text-indent: 1.5em; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss index 63a5712a70..93d2cdff70 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.scss @@ -1,16 +1,18 @@ -.awg-edition-intro-nav .nav { +.awg-edition-intro-nav { position: sticky; top: 0; - .nav-item { - text-align: end; + .nav { + .nav-item { + text-align: end; - a.active { - color: #000; - } + a.active { + color: #000; + } - .nav-link { - padding-right: 0; + .nav-link { + padding-right: 0; + } } } } From c99aba19b2646d1959e46acb72e1fd43f4b72246 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:56:16 +0000 Subject: [PATCH 140/213] build(deps-dev): bump @compodoc/compodoc from 1.1.25 to 1.1.26 Bumps [@compodoc/compodoc](https://github.com/compodoc/compodoc) from 1.1.25 to 1.1.26. - [Release notes](https://github.com/compodoc/compodoc/releases) - [Changelog](https://github.com/compodoc/compodoc/blob/develop/CHANGELOG.md) - [Commits](https://github.com/compodoc/compodoc/compare/1.1.25...1.1.26) --- updated-dependencies: - dependency-name: "@compodoc/compodoc" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 1707 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 1237 insertions(+), 472 deletions(-) diff --git a/package.json b/package.json index 00ec76d90c..64f7ac62bb 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "@angular/compiler-cli": "^18.2.8", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", - "@compodoc/compodoc": "^1.1.25", + "@compodoc/compodoc": "^1.1.26", "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", diff --git a/yarn.lock b/yarn.lock index d7985aefea..18adfbdf6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -179,25 +179,6 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.0.1": - version: 18.0.1 - resolution: "@angular-devkit/core@npm:18.0.1" - dependencies: - ajv: "npm:8.13.0" - ajv-formats: "npm:3.0.1" - jsonc-parser: "npm:3.2.1" - picomatch: "npm:4.0.2" - rxjs: "npm:7.8.1" - source-map: "npm:0.7.4" - peerDependencies: - chokidar: ^3.5.2 - peerDependenciesMeta: - chokidar: - optional: true - checksum: 10c0/df2d4f287f24d65beac1cca4ae6443d0a0c97e1cff61942c9e55d7ce6b4aad5984c4a1227637b3ca35b534608d468243f25800642eaff5ed9f2d7c93c5d3a58d - languageName: node - linkType: hard - "@angular-devkit/core@npm:18.0.2, @angular-devkit/core@npm:^18.0.0": version: 18.0.2 resolution: "@angular-devkit/core@npm:18.0.2" @@ -241,19 +222,6 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.0.1": - version: 18.0.1 - resolution: "@angular-devkit/schematics@npm:18.0.1" - dependencies: - "@angular-devkit/core": "npm:18.0.1" - jsonc-parser: "npm:3.2.1" - magic-string: "npm:0.30.10" - ora: "npm:5.4.1" - rxjs: "npm:7.8.1" - checksum: 10c0/f0de6c8839679e605767f28b8cdfc8eea003fbe0f3a43221b868cd4cc5deee5d2ebeb47f6645989e2dc088fbda26a297a623473ea07da4e6a10f0c7a234e42d8 - languageName: node - linkType: hard - "@angular-devkit/schematics@npm:18.2.8": version: 18.2.8 resolution: "@angular-devkit/schematics@npm:18.2.8" @@ -641,6 +609,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" + dependencies: + "@babel/highlight": "npm:^7.25.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.7": version: 7.24.7 resolution: "@babel/compat-data@npm:7.24.7" @@ -662,6 +640,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 + languageName: node + linkType: hard + "@babel/core@npm:7.25.2": version: 7.25.2 resolution: "@babel/core@npm:7.25.2" @@ -685,7 +670,30 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.6": +"@babel/core@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helpers": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + languageName: node + linkType: hard + +"@babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": version: 7.24.7 resolution: "@babel/core@npm:7.24.7" dependencies: @@ -744,6 +752,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.24.7, @babel/helper-annotate-as-pure@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" @@ -753,6 +773,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" @@ -763,6 +792,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-compilation-targets@npm:7.24.7" @@ -802,6 +841,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" + dependencies: + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" @@ -821,6 +873,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" @@ -847,6 +916,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + regexpu-core: "npm:^6.1.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": version: 0.6.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" @@ -910,6 +992,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" @@ -920,6 +1012,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-transforms@npm:7.24.7" @@ -949,6 +1051,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -958,6 +1074,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.7 resolution: "@babel/helper-plugin-utils@npm:7.24.7" @@ -972,6 +1097,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" @@ -998,6 +1130,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-wrap-function": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -1024,6 +1169,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-replace-supers@npm:7.25.7" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -1034,6 +1192,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" @@ -1044,6 +1212,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:7.24.7, @babel/helper-split-export-declaration@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-split-export-declaration@npm:7.24.7" @@ -1067,6 +1245,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" @@ -1074,6 +1259,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-option@npm:7.24.7" @@ -1088,6 +1280,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-wrap-function@npm:7.24.7" @@ -1111,6 +1310,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-wrap-function@npm:7.25.7" + dependencies: + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helpers@npm:7.24.7" @@ -1131,6 +1341,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helpers@npm:7.25.7" + dependencies: + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.24.7": version: 7.24.7 resolution: "@babel/highlight@npm:7.24.7" @@ -1143,6 +1363,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7": version: 7.24.7 resolution: "@babel/parser@npm:7.24.7" @@ -1172,15 +1404,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" +"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/394c30e2b708ad385fa1219528e039066a1f1cb40f47986f283878848fd354c745e6397f588b4e5a046ee8d64bfdf4c208e4c3dfbdcfb2fd34315ec67c64e7af + "@babel/types": "npm:^7.25.8" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 languageName: node linkType: hard @@ -1196,6 +1427,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": version: 7.25.0 resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" @@ -1207,14 +1450,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96 + checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2 languageName: node linkType: hard @@ -1229,6 +1472,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" @@ -1242,15 +1496,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0 + "@babel/core": ^7.13.0 + checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4 languageName: node linkType: hard @@ -1266,6 +1521,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -1341,6 +1608,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-assertions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-attributes@npm:7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" @@ -1352,6 +1630,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-attributes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -1485,6 +1774,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935 + languageName: node + linkType: hard + "@babel/plugin-transform-async-generator-functions@npm:7.25.0, @babel/plugin-transform-async-generator-functions@npm:^7.25.0": version: 7.25.0 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" @@ -1499,17 +1799,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-remap-async-to-generator": "npm:^7.24.7" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742 + checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 languageName: node linkType: hard @@ -1526,6 +1825,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" @@ -1537,14 +1849,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700 + checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb languageName: node linkType: hard @@ -1559,6 +1871,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44 + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" @@ -1571,6 +1894,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47 + languageName: node + linkType: hard + "@babel/plugin-transform-class-static-block@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" @@ -1584,21 +1919,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-classes@npm:7.24.7" +"@babel/plugin-transform-class-static-block@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-environment-visitor": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.24.7" - "@babel/helper-split-export-declaration": "npm:^7.24.7" - globals: "npm:^11.1.0" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e51dba7ce8b770d1eee929e098d5a3be3efc3e8b941e22dda7d0097dc4e7be5feabd2da7b707ac06fcac5661b31223c541941dec08ce76c1faa55544d87d06ec + "@babel/core": ^7.12.0 + checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 languageName: node linkType: hard @@ -1618,6 +1947,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-classes@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" @@ -1630,14 +1975,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" +"@babel/plugin-transform-computed-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/929f07a807fb62230bfbf881cfcedf187ac5daf2f1b01da94a75c7a0f6f72400268cf4bcfee534479e43260af8193e42c31ee03c8b0278ba77d0036ed6709c27 + checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf languageName: node linkType: hard @@ -1652,6 +1998,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" @@ -1664,6 +2021,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dotall-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4 + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-keys@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" @@ -1675,6 +2044,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-keys@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74 + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": version: 7.25.0 resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" @@ -1687,9 +2067,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" dependencies: "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" @@ -1699,6 +2091,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dynamic-import@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" @@ -1711,6 +2114,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e + languageName: node + linkType: hard + "@babel/plugin-transform-export-namespace-from@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" @@ -1723,6 +2138,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-for-of@npm:7.24.7" @@ -1735,16 +2161,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-function-name@npm:7.24.7" +"@babel/plugin-transform-for-of@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-for-of@npm:7.25.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-function-name": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b + checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277 languageName: node linkType: hard @@ -1761,6 +2186,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-function-name@npm:7.25.7" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a + languageName: node + linkType: hard + "@babel/plugin-transform-json-strings@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" @@ -1773,14 +2211,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-literals@npm:7.24.7" +"@babel/plugin-transform-json-strings@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e + checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf languageName: node linkType: hard @@ -1795,6 +2233,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" @@ -1807,6 +2256,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" @@ -1818,6 +2278,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c + languageName: node + linkType: hard + "@babel/plugin-transform-modules-amd@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" @@ -1830,16 +2301,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9442292b3daf6a5076cdc3c4c32bf423bda824ccaeb0dd0dc8b3effaa1fecfcb0130ae6e647fef12a5d5ff25bcc99a0d6bfc6d24a7525345e1bcf46fcdf81752 + checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356 languageName: node linkType: hard @@ -1856,17 +2326,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" dependencies: - "@babel/helper-hoist-variables": "npm:^7.24.7" - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331 + checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c languageName: node linkType: hard @@ -1884,6 +2353,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-systemjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb + languageName: node + linkType: hard + "@babel/plugin-transform-modules-umd@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" @@ -1896,6 +2379,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-umd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769 + languageName: node + linkType: hard + "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" @@ -1908,6 +2403,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52 + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-new-target@npm:7.24.7" @@ -1919,6 +2426,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-new-target@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-new-target@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff + languageName: node + linkType: hard + "@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" @@ -1931,6 +2449,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" @@ -1943,6 +2472,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" @@ -1957,6 +2497,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/plugin-transform-parameters": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-object-super@npm:7.24.7" @@ -1969,6 +2522,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-object-super@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab + languageName: node + linkType: hard + "@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" @@ -1981,6 +2546,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 + languageName: node + linkType: hard + "@babel/plugin-transform-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" @@ -2007,6 +2583,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" @@ -2018,7 +2606,30 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.6, @babel/plugin-transform-private-methods@npm:^7.24.7": +"@babel/plugin-transform-parameters@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-parameters@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:7.25.7, @babel/plugin-transform-private-methods@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" dependencies: @@ -2044,6 +2655,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" @@ -2055,6 +2679,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" @@ -2067,6 +2702,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212 + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" @@ -2078,6 +2725,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-reserved-words@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c + languageName: node + linkType: hard + "@babel/plugin-transform-runtime@npm:7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-runtime@npm:7.24.7" @@ -2105,6 +2763,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4 + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-spread@npm:7.24.7" @@ -2117,6 +2786,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-spread@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7 + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" @@ -2128,6 +2809,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-sticky-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097 + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" @@ -2139,14 +2831,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" +"@babel/plugin-transform-template-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5649e7260a138681e68b296ab5931e2b1f132f287d6b4131d49b24f9dc20d62902b7e9d63c4d2decd5683b41df35ef4b9b03f58c7f9f65e4c25a6d8bbf04e9e9 + checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139 languageName: node linkType: hard @@ -2161,6 +2853,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typeof-symbol@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" @@ -2172,6 +2875,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-escapes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" @@ -2184,6 +2898,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" @@ -2196,6 +2922,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" @@ -2208,6 +2946,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35 + languageName: node + linkType: hard + "@babel/preset-env@npm:7.25.3": version: 7.25.3 resolution: "@babel/preset-env@npm:7.25.3" @@ -2301,94 +3051,81 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.24.6": - version: 7.24.7 - resolution: "@babel/preset-env@npm:7.24.7" +"@babel/preset-env@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/preset-env@npm:7.25.8" dependencies: - "@babel/compat-data": "npm:^7.24.7" - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-option": "npm:^7.24.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.7" + "@babel/compat-data": "npm:^7.25.8" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.24.7" - "@babel/plugin-transform-class-properties": "npm:^7.24.7" - "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.24.7" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.7" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.24.7" - "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.24.7" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" - "@babel/plugin-transform-modules-amd": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7" - "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7" - "@babel/plugin-transform-modules-umd": "npm:^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-new-target": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-object-super": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.24.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-property-literals": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-reserved-words": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-template-literals": "npm:^7.24.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.7" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.7" + "@babel/plugin-transform-class-properties": "npm:^7.25.7" + "@babel/plugin-transform-class-static-block": "npm:^7.25.8" + "@babel/plugin-transform-classes": "npm:^7.25.7" + "@babel/plugin-transform-computed-properties": "npm:^7.25.7" + "@babel/plugin-transform-destructuring": "npm:^7.25.7" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" + "@babel/plugin-transform-for-of": "npm:^7.25.7" + "@babel/plugin-transform-function-name": "npm:^7.25.7" + "@babel/plugin-transform-json-strings": "npm:^7.25.8" + "@babel/plugin-transform-literals": "npm:^7.25.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" + "@babel/plugin-transform-modules-amd": "npm:^7.25.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-umd": "npm:^7.25.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-new-target": "npm:^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" + "@babel/plugin-transform-object-super": "npm:^7.25.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" + "@babel/plugin-transform-parameters": "npm:^7.25.7" + "@babel/plugin-transform-private-methods": "npm:^7.25.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" + "@babel/plugin-transform-property-literals": "npm:^7.25.7" + "@babel/plugin-transform-regenerator": "npm:^7.25.7" + "@babel/plugin-transform-reserved-words": "npm:^7.25.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7" + "@babel/plugin-transform-spread": "npm:^7.25.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.7" + "@babel/plugin-transform-template-literals": "npm:^7.25.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" - babel-plugin-polyfill-corejs3: "npm:^0.10.4" + babel-plugin-polyfill-corejs3: "npm:^0.10.6" babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.31.0" + core-js-compat: "npm:^3.38.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c6714346f3ccc1271eaa90051c75b8bb57b20ef57408ab68740e2f3552693ae0ee5a4bcce3a00211d40e4947af1f7b8ab422066b953f0095461937fb72d11274 + checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 languageName: node linkType: hard @@ -2452,6 +3189,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" + dependencies: + "@babel/code-frame": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.24.7": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" @@ -2499,7 +3247,22 @@ __metadata: "@babel/types": "npm:^7.25.2" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b + checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" + dependencies: + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a languageName: node linkType: hard @@ -2536,6 +3299,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + languageName: node + linkType: hard + "@codemirror/autocomplete@npm:^6.0.0": version: 6.16.2 resolution: "@codemirror/autocomplete@npm:6.16.2" @@ -2832,20 +3606,19 @@ __metadata: languageName: node linkType: hard -"@compodoc/compodoc@npm:^1.1.25": - version: 1.1.25 - resolution: "@compodoc/compodoc@npm:1.1.25" +"@compodoc/compodoc@npm:^1.1.26": + version: 1.1.26 + resolution: "@compodoc/compodoc@npm:1.1.26" dependencies: - "@angular-devkit/schematics": "npm:18.0.1" - "@babel/core": "npm:^7.24.6" - "@babel/plugin-transform-private-methods": "npm:^7.24.6" - "@babel/preset-env": "npm:^7.24.6" + "@angular-devkit/schematics": "npm:18.2.8" + "@babel/core": "npm:7.25.8" + "@babel/plugin-transform-private-methods": "npm:7.25.7" + "@babel/preset-env": "npm:7.25.8" "@compodoc/live-server": "npm:^1.2.3" "@compodoc/ngd-transformer": "npm:^2.1.3" - bootstrap.native: "npm:^5.0.12" - chalk: "npm:4.1.2" - cheerio: "npm:^1.0.0-rc.12" - chokidar: "npm:^3.6.0" + bootstrap.native: "npm:^5.0.13" + cheerio: "npm:1.0.0-rc.12" + chokidar: "npm:^4.0.1" colors: "npm:1.4.0" commander: "npm:^12.1.0" cosmiconfig: "npm:^9.0.0" @@ -2854,32 +3627,31 @@ __metadata: fancy-log: "npm:^2.0.0" fast-glob: "npm:^3.3.2" fs-extra: "npm:^11.2.0" - glob: "npm:^10.4.1" + glob: "npm:^11.0.0" handlebars: "npm:^4.7.8" html-entities: "npm:^2.5.2" - i18next: "npm:^23.11.5" + i18next: "npm:^23.16.0" json5: "npm:^2.2.3" lodash: "npm:^4.17.21" - loglevel: "npm:^1.9.1" + loglevel: "npm:^1.9.2" loglevel-plugin-prefix: "npm:^0.8.4" lunr: "npm:^2.3.9" marked: "npm:7.0.3" minimist: "npm:^1.2.8" + neotraverse: "npm:^0.6.18" opencollective-postinstall: "npm:^2.0.3" os-name: "npm:4.0.1" - pdfmake: "npm:^0.2.10" + picocolors: "npm:^1.1.0" prismjs: "npm:^1.29.0" - semver: "npm:^7.6.2" + semver: "npm:^7.6.3" svg-pan-zoom: "npm:^3.6.1" tablesort: "npm:^5.3.0" - traverse: "npm:^0.6.9" - ts-morph: "npm:^22.0.0" - uuid: "npm:^9.0.1" + ts-morph: "npm:^24.0.0" + uuid: "npm:^10.0.0" vis: "npm:^4.21.0-EOL" - zepto: "npm:^1.2.0" bin: compodoc: bin/index-cli.js - checksum: 10c0/83df4fd97e3e92a66f2b805cbf71a5262aac37092d30f47a48f0d275fd67d1a8b3e1172f306a618edf1b6210fb6e92ecabe645208f8ae2a1fbeb1095576ef226 + checksum: 10c0/8daa7794fe3a2e6066f261c0d8cc959a757a923082f85c4df67e2d22d51f6ba52fce5699d4144e49f242e7a9d7a9ab2a0c4a455e69eb3b9f2800911dad2c8e48 languageName: node linkType: hard @@ -3362,51 +4134,6 @@ __metadata: languageName: node linkType: hard -"@foliojs-fork/fontkit@npm:^1.9.1": - version: 1.9.2 - resolution: "@foliojs-fork/fontkit@npm:1.9.2" - dependencies: - "@foliojs-fork/restructure": "npm:^2.0.2" - brotli: "npm:^1.2.0" - clone: "npm:^1.0.4" - deep-equal: "npm:^1.0.0" - dfa: "npm:^1.2.0" - tiny-inflate: "npm:^1.0.2" - unicode-properties: "npm:^1.2.2" - unicode-trie: "npm:^2.0.0" - checksum: 10c0/0855b621942aeaec3a20261154532b3a4653cc530e5429954b9ec2bd61805a484a450a43229d0e836e78d08674ac729d81193ac03347b0e202646d900446ce84 - languageName: node - linkType: hard - -"@foliojs-fork/linebreak@npm:^1.1.1": - version: 1.1.2 - resolution: "@foliojs-fork/linebreak@npm:1.1.2" - dependencies: - base64-js: "npm:1.3.1" - unicode-trie: "npm:^2.0.0" - checksum: 10c0/5791eab874ae120bbe7bbd5a70675d3f88869376dfba3c76c61487b42275eeaf07026de22f074c5d4b5fdde900b43cac1289c6c142aca6015ccdb0da1166c3e8 - languageName: node - linkType: hard - -"@foliojs-fork/pdfkit@npm:^0.14.0": - version: 0.14.0 - resolution: "@foliojs-fork/pdfkit@npm:0.14.0" - dependencies: - "@foliojs-fork/fontkit": "npm:^1.9.1" - "@foliojs-fork/linebreak": "npm:^1.1.1" - crypto-js: "npm:^4.2.0" - png-js: "npm:^1.0.0" - checksum: 10c0/1fbb4ff3a1b82d431c2c4407f6f3622257ee107c71ef23dd218565083224aaa1c424987cb3d400f28a38c4b9ad8345ba0e4af53ca0b69a493e38a07e75a4fe36 - languageName: node - linkType: hard - -"@foliojs-fork/restructure@npm:^2.0.2": - version: 2.0.2 - resolution: "@foliojs-fork/restructure@npm:2.0.2" - checksum: 10c0/f9e6e94f7377f467a93988ee85cf326f2db3edd3029530791aced6d530fd7862efb27b00212beb8df6f7458cbec4acb6b198b36535d1acee3fb413c1d5ac55ac - languageName: node - linkType: hard - "@fortawesome/angular-fontawesome@npm:^0.15.0": version: 0.15.0 resolution: "@fortawesome/angular-fontawesome@npm:0.15.0" @@ -4355,15 +5082,14 @@ __metadata: languageName: node linkType: hard -"@ts-morph/common@npm:~0.23.0": - version: 0.23.0 - resolution: "@ts-morph/common@npm:0.23.0" +"@ts-morph/common@npm:~0.25.0": + version: 0.25.0 + resolution: "@ts-morph/common@npm:0.25.0" dependencies: - fast-glob: "npm:^3.3.2" - minimatch: "npm:^9.0.3" - mkdirp: "npm:^3.0.1" + minimatch: "npm:^9.0.4" path-browserify: "npm:^1.0.1" - checksum: 10c0/80d8f230618b022537846b515cb928c636004f216821bec7fea289fd37533b4eaa783d276cc5838b4b6be867fec60fdee5795baac3ed98f1ab7cdd6b35a85179 + tinyglobby: "npm:^0.2.9" + checksum: 10c0/c67e66db678e44886e9823e6482834acebfae0ea52ccbfa2af1ca9abfe5a9774dad6e852c8f480909bc196175f17e15454af71d7a41a1c137db09e74f046a830 languageName: node linkType: hard @@ -5946,7 +6672,7 @@ __metadata: "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" - "@compodoc/compodoc": "npm:^1.1.25" + "@compodoc/compodoc": "npm:^1.1.26" "@fortawesome/angular-fontawesome": "npm:^0.15.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" "@kolkov/ngx-gallery": "npm:2.0.1" @@ -6044,6 +6770,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + core-js-compat: "npm:^3.38.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/3a69220471b07722c2ae6537310bf26b772514e12b601398082965459c838be70a0ca70b0662f0737070654ff6207673391221d48599abb4a2b27765206d9f79 + languageName: node + linkType: hard + "babel-plugin-polyfill-regenerator@npm:^0.6.1": version: 0.6.2 resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" @@ -6062,14 +6800,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:1.3.1": - version: 1.3.1 - resolution: "base64-js@npm:1.3.1" - checksum: 10c0/f111a2c2b105eb9ee3818c30154e047fb00370699a03c2130d0944f10914697677ceb5faec64ea851e00710b80539afb03e9aa098e19c183a5e7a1cdc18abb29 - languageName: node - linkType: hard - -"base64-js@npm:^1.1.2, base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": +"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf @@ -6177,13 +6908,13 @@ __metadata: languageName: node linkType: hard -"bootstrap.native@npm:^5.0.12": - version: 5.0.12 - resolution: "bootstrap.native@npm:5.0.12" +"bootstrap.native@npm:^5.0.13": + version: 5.0.13 + resolution: "bootstrap.native@npm:5.0.13" dependencies: "@thednp/event-listener": "npm:^2.0.4" "@thednp/shorty": "npm:^2.0.0" - checksum: 10c0/cd1d819bd8d2db873a4e62a1b66983bd008f449fd4e43605f9676d4cc398412ff943a8670e82a5fa4af315b1563b451eb5e68113ffaa2408130741a80c4666fe + checksum: 10c0/3a366bd2d78af28dd0e45753be67d56fc5aecc5def37a4560aab5d0fe0380d7040f220d98fba53836a2fc00d13fc1e23197b221d40d60756efd20698f9b2f49d languageName: node linkType: hard @@ -6224,15 +6955,6 @@ __metadata: languageName: node linkType: hard -"brotli@npm:^1.2.0": - version: 1.3.3 - resolution: "brotli@npm:1.3.3" - dependencies: - base64-js: "npm:^1.1.2" - checksum: 10c0/9d24e24f8b7eabf44af034ed5f7d5530008b835f09a107a84ac060723e86dd43c6aa68958691fe5df524f59473b35f5ce2e0854aa1152c0a254d1010f51bcf22 - languageName: node - linkType: hard - "browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -6275,6 +6997,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.24.0": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" + dependencies: + caniuse-lite: "npm:^1.0.30001663" + electron-to-chromium: "npm:^1.5.28" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 + languageName: node + linkType: hard + "btoa@npm:^1.2.1": version: 1.2.1 resolution: "btoa@npm:1.2.1" @@ -6446,6 +7182,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001668 + resolution: "caniuse-lite@npm:1.0.30001668" + checksum: 10c0/247b3200aeec55038f3a11f3e6ab66f656c54d30df7b01d8d447efaba9af96ad3e17128da2ddd42ddc9cb6c286bac65b634a20955b3cc6619be7ca4601fddc8e + languageName: node + linkType: hard + "canonicalize@npm:^1.0.1": version: 1.0.8 resolution: "canonicalize@npm:1.0.8" @@ -6453,16 +7196,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -6474,6 +7207,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + "chalk@npm:^5.3.0, chalk@npm:~5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -6502,7 +7245,7 @@ __metadata: languageName: node linkType: hard -"cheerio@npm:^1.0.0-rc.12": +"cheerio@npm:1.0.0-rc.12": version: 1.0.0-rc.12 resolution: "cheerio@npm:1.0.0-rc.12" dependencies: @@ -6536,7 +7279,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^4.0.0": +"chokidar@npm:^4.0.0, chokidar@npm:^4.0.1": version: 4.0.1 resolution: "chokidar@npm:4.0.1" dependencies: @@ -6648,17 +7391,17 @@ __metadata: languageName: node linkType: hard -"clone@npm:^1.0.2, clone@npm:^1.0.4": +"clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b languageName: node linkType: hard -"code-block-writer@npm:^13.0.1": - version: 13.0.1 - resolution: "code-block-writer@npm:13.0.1" - checksum: 10c0/1ca0329032228aab4a8094148bc2b50fd8ff07a0e3f78c11986398951fc51c6bad24bc7236437e639ac95d4c3bb489c2f3c629dc5f21c22a3bca0daa41d64187 +"code-block-writer@npm:^13.0.3": + version: 13.0.3 + resolution: "code-block-writer@npm:13.0.3" + checksum: 10c0/87db97b37583f71cfd7eced8bf3f0a0a0ca53af912751a734372b36c08cd27f3e8a4878ec05591c0cd9ae11bea8add1423e132d660edd86aab952656dd41fd66 languageName: node linkType: hard @@ -7220,7 +7963,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1": +"core-js-compat@npm:^3.36.1": version: 3.37.1 resolution: "core-js-compat@npm:3.37.1" dependencies: @@ -7238,6 +7981,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": + version: 3.38.1 + resolution: "core-js-compat@npm:3.38.1" + dependencies: + browserslist: "npm:^4.23.3" + checksum: 10c0/d8bc8a35591fc5fbf3e376d793f298ec41eb452619c7ef9de4ea59b74be06e9fda799e0dcbf9ba59880dae87e3b41fb191d744ffc988315642a1272bb9442b31 + languageName: node + linkType: hard + "core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -7318,13 +8070,6 @@ __metadata: languageName: node linkType: hard -"crypto-js@npm:^4.2.0": - version: 4.2.0 - resolution: "crypto-js@npm:4.2.0" - checksum: 10c0/8fbdf9d56f47aea0794ab87b0eb9833baf80b01a7c5c1b0edc7faf25f662fb69ab18dc2199e2afcac54670ff0cd9607a9045a3f7a80336cccd18d77a55b9fdf0 - languageName: node - linkType: hard - "css-loader@npm:7.1.2": version: 7.1.2 resolution: "css-loader@npm:7.1.2" @@ -7693,20 +8438,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^1.0.0": - version: 1.1.2 - resolution: "deep-equal@npm:1.1.2" - dependencies: - is-arguments: "npm:^1.1.1" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - regexp.prototype.flags: "npm:^1.5.1" - checksum: 10c0/cd85d822d18e9b3e1532d0f6ba412d229aa9d22881d70da161674428ae96e47925191296f7cda29306bac252889007da40ed8449363bd1c96c708acb82068a00 - languageName: node - linkType: hard - "deep-equal@npm:^2.0.5": version: 2.2.3 resolution: "deep-equal@npm:2.2.3" @@ -7888,13 +8619,6 @@ __metadata: languageName: node linkType: hard -"dfa@npm:^1.2.0": - version: 1.2.0 - resolution: "dfa@npm:1.2.0" - checksum: 10c0/ad12f0bc73b530876672e0a9dfbaa350eeff0c876580042734a004e462eca86d7749b9dedf6b067ba54f346137ab23d16615826bbfa424a3e01ab0e2786fad3c - languageName: node - linkType: hard - "di@npm:^0.0.1": version: 0.0.1 resolution: "di@npm:0.0.1" @@ -8079,6 +8803,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.28": + version: 1.5.36 + resolution: "electron-to-chromium@npm:1.5.36" + checksum: 10c0/cd8d0de7801107f2b2744b5b18641c969a49b0503996cc1a586bb79d893020d0c4e916ac1935603eea65104b4fc1096bc339e0151531dca9e0f0ce0c1882e2d8 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.4": version: 1.5.8 resolution: "electron-to-chromium@npm:1.5.8" @@ -9132,6 +9863,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.4.0": + version: 6.4.0 + resolution: "fdir@npm:6.4.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/9a03efa1335d78ea386b701799b08ad9e7e8da85d88567dc162cd28dd8e9486e8c269b3e95bfeb21dd6a5b14ebf69d230eb6e18f49d33fbda3cd97432f648c48 + languageName: node + linkType: hard + "fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": version: 3.2.0 resolution: "fetch-blob@npm:3.2.0" @@ -9728,7 +10471,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.1": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.4.1 resolution: "glob@npm:10.4.1" dependencies: @@ -9743,6 +10486,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^11.0.0": + version: 11.0.0 + resolution: "glob@npm:11.0.0" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^4.0.1" + minimatch: "npm:^10.0.0" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^2.0.0" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/419866015d8795258a8ac51de5b9d1a99c72634fc3ead93338e4da388e89773ab21681e494eac0fbc4250b003451ca3110bb4f1c9393d15d14466270094fdb4e + languageName: node + linkType: hard + "glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -10265,12 +11024,12 @@ __metadata: languageName: node linkType: hard -"i18next@npm:^23.11.5": - version: 23.11.5 - resolution: "i18next@npm:23.11.5" +"i18next@npm:^23.16.0": + version: 23.16.0 + resolution: "i18next@npm:23.16.0" dependencies: "@babel/runtime": "npm:^7.23.2" - checksum: 10c0/b0bec64250a3e529d4c51e2fc511406a85c5dde3d005d3aabe919551ca31dfc0a8f5490bf6e44649822e895a1fa91a58092d112367669cd11b2eb89e6ba90d1a + checksum: 10c0/17b40d125befec02e2c8069e658ea54d36ee46fab9e05bbeed93bb5ec75fab8bd334139372652d5df491147a124447a8ee1b78ccba726b7d61b1c03e84c7b6c5 languageName: node linkType: hard @@ -11007,6 +11766,15 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^4.0.1": + version: 4.0.2 + resolution: "jackspeak@npm:4.0.2" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + checksum: 10c0/b26039d11c0163a95b1e58851b9ac453cce64ad6d1eb98a00b303ad5eeb761b29d33c9419d1e16c016d3f7151c8edf7df223e6cf93a1907655fd95d6ce85c0de + languageName: node + linkType: hard + "jake@npm:^10.8.5": version: 10.9.1 resolution: "jake@npm:10.9.1" @@ -11130,6 +11898,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -11793,10 +12570,10 @@ __metadata: languageName: node linkType: hard -"loglevel@npm:^1.9.1": - version: 1.9.1 - resolution: "loglevel@npm:1.9.1" - checksum: 10c0/152f0501cea367cf998c844a38b19f0b5af555756ad7d8650214a1f8c6a5b045e31b8cf5dae27d28339a061624ce3f618aadb333aed386cac041d6ddc5101a39 +"loglevel@npm:^1.9.2": + version: 1.9.2 + resolution: "loglevel@npm:1.9.2" + checksum: 10c0/1e317fa4648fe0b4a4cffef6de037340592cee8547b07d4ce97a487abe9153e704b98451100c799b032c72bb89c9366d71c9fb8192ada8703269263ae77acdc7 languageName: node linkType: hard @@ -11807,6 +12584,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^11.0.0": + version: 11.0.1 + resolution: "lru-cache@npm:11.0.1" + checksum: 10c0/8bad6603dc67eb5b03520fba05bce5df6473dbba58ac4c6067ed088d29225a0a04416bb1462acd8c1f819d1fbf37920446a1c36bafd9c384bcc54cee0d3b697a + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -12137,6 +12921,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.0.0": + version: 10.0.1 + resolution: "minimatch@npm:10.0.1" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/e6c29a81fe83e1877ad51348306be2e8aeca18c88fdee7a99df44322314279e15799e41d7cb274e4e8bb0b451a3bc622d6182e157dfa1717d6cda75e9cd8cd5d + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -12155,7 +12948,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": version: 9.0.4 resolution: "minimatch@npm:9.0.4" dependencies: @@ -12327,15 +13120,6 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^3.0.1": - version: 3.0.1 - resolution: "mkdirp@npm:3.0.1" - bin: - mkdirp: dist/cjs/src/bin.js - checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d - languageName: node - linkType: hard - "modify-values@npm:^1.0.1": version: 1.0.1 resolution: "modify-values@npm:1.0.1" @@ -12520,6 +13304,13 @@ __metadata: languageName: node linkType: hard +"neotraverse@npm:^0.6.18": + version: 0.6.18 + resolution: "neotraverse@npm:0.6.18" + checksum: 10c0/46f4c53cbbdc53671150916b544a9f46e27781f8003985237507542190173bec131168d89b846535f9c34c0a2a7debb1ab3a4f7a93d08218e2c194a363708ffa + languageName: node + linkType: hard + "ngx-json-viewer@npm:^3.2.1": version: 3.2.1 resolution: "ngx-json-viewer@npm:3.2.1" @@ -13272,6 +14063,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + "pacote@npm:18.0.6": version: 18.0.6 resolution: "pacote@npm:18.0.6" @@ -13299,13 +14097,6 @@ __metadata: languageName: node linkType: hard -"pako@npm:^0.2.5": - version: 0.2.9 - resolution: "pako@npm:0.2.9" - checksum: 10c0/79c1806ebcf325b60ae599e4d7227c2e346d7b829dc20f5cf24cef07c934079dc3a61c5b3c8278a2f7a190c4a613e343ea11e5302dbe252efd11712df4b6b041 - languageName: node - linkType: hard - "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -13466,6 +14257,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^2.0.0": + version: 2.0.0 + resolution: "path-scurry@npm:2.0.0" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10c0/3da4adedaa8e7ef8d6dc4f35a0ff8f05a9b4d8365f2b28047752b62d4c1ad73eec21e37b1579ef2d075920157856a3b52ae8309c480a6f1a8bbe06ff8e52b33c + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.10": version: 0.1.10 resolution: "path-to-regexp@npm:0.1.10" @@ -13505,18 +14306,6 @@ __metadata: languageName: node linkType: hard -"pdfmake@npm:^0.2.10": - version: 0.2.10 - resolution: "pdfmake@npm:0.2.10" - dependencies: - "@foliojs-fork/linebreak": "npm:^1.1.1" - "@foliojs-fork/pdfkit": "npm:^0.14.0" - iconv-lite: "npm:^0.6.3" - xmldoc: "npm:^1.1.2" - checksum: 10c0/a1c9e3d6211d25b8f8af943fa0469b79a55de5849cf9c2597420e1e21a098ac9c834aaf7b9c1bfd49a1ba3711d48e2f23dd0d70dfaff290afb4704352768d892 - languageName: node - linkType: hard - "peek-stream@npm:^1.1.3": version: 1.1.3 resolution: "peek-stream@npm:1.1.3" @@ -13542,7 +14331,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:4.0.2": +"picomatch@npm:4.0.2, picomatch@npm:^4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc @@ -13632,13 +14421,6 @@ __metadata: languageName: node linkType: hard -"png-js@npm:^1.0.0": - version: 1.0.0 - resolution: "png-js@npm:1.0.0" - checksum: 10c0/b591107bb888c66cb1799327774f73f2865a366b5992ed7335c81610eab0e9cb4f13fb396e3c00e28781ada6ccde170b566209e9df833a2abe71d11da55aea85 - languageName: node - linkType: hard - "possible-typed-array-names@npm:^1.0.0": version: 1.0.0 resolution: "possible-typed-array-names@npm:1.0.0" @@ -14180,6 +14962,15 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 + languageName: node + linkType: hard + "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -14236,6 +15027,38 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" + dependencies: + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.11.0" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd + languageName: node + linkType: hard + +"regjsparser@npm:^0.11.0": + version: 0.11.1 + resolution: "regjsparser@npm:0.11.1" + dependencies: + jsesc: "npm:~3.0.2" + bin: + regjsparser: bin/parser + checksum: 10c0/be4b40981a596b31eacd84ee12cfa474f1d33a6c05f7e995e8ec9d5ad8f1c3fbf7a5b690a05c443e1f312a1c0b16d4ea0b3384596a61d4fda97aa322879bb3cd + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -14684,7 +15507,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": version: 7.6.2 resolution: "semver@npm:7.6.2" bin: @@ -15771,13 +16594,6 @@ __metadata: languageName: node linkType: hard -"tiny-inflate@npm:^1.0.0, tiny-inflate@npm:^1.0.2": - version: 1.0.3 - resolution: "tiny-inflate@npm:1.0.3" - checksum: 10c0/fab687537254f6ec44c9a2e880048fe70da3542aba28f73cda3e74c95cabf342a339372f2a6c032e322324f01accc03ca26c04ba2bad9b3eb8cf3ee99bba7f9b - languageName: node - linkType: hard - "tinyexec@npm:^0.3.0": version: 0.3.0 resolution: "tinyexec@npm:0.3.0" @@ -15785,6 +16601,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.9": + version: 0.2.9 + resolution: "tinyglobby@npm:0.2.9" + dependencies: + fdir: "npm:^6.4.0" + picomatch: "npm:^4.0.2" + checksum: 10c0/f65f847afe70f56de069d4f1f9c3b0c1a76aaf2b0297656754734a83b9bac8e105b5534dfbea8599560476b88f7b747d0855370a957a07246d18b976addb87ec + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -15852,17 +16678,6 @@ __metadata: languageName: node linkType: hard -"traverse@npm:^0.6.9": - version: 0.6.9 - resolution: "traverse@npm:0.6.9" - dependencies: - gopd: "npm:^1.0.1" - typedarray.prototype.slice: "npm:^1.0.3" - which-typed-array: "npm:^1.1.15" - checksum: 10c0/6809ef684b04cd6985a4470f93bf794ad417f04bb1c43a6b1166fe1c94506118c7a7a87c34545fe15918f4e1fe29ced7a5813d8455932042f4ccc5981634139d - languageName: node - linkType: hard - "tree-dump@npm:^1.0.0": version: 1.0.1 resolution: "tree-dump@npm:1.0.1" @@ -15906,13 +16721,13 @@ __metadata: languageName: node linkType: hard -"ts-morph@npm:^22.0.0": - version: 22.0.0 - resolution: "ts-morph@npm:22.0.0" +"ts-morph@npm:^24.0.0": + version: 24.0.0 + resolution: "ts-morph@npm:24.0.0" dependencies: - "@ts-morph/common": "npm:~0.23.0" - code-block-writer: "npm:^13.0.1" - checksum: 10c0/0275606effaa24f6d8ad3ee9df3bb37c0330be002682f9e9157462b38b949e00fb81e0df20f571e08a0bd06107922eb35022bad5e2fb48ca89fda4299140b5de + "@ts-morph/common": "npm:~0.25.0" + code-block-writer: "npm:^13.0.3" + checksum: 10c0/2a0813ba428a154966d4038901f6c32457a60870936b23778f2629433257f87d1881fc4ecae7b791a223a88c2edf96aaac9fb0f88bf34d3c652af8c09c4f43bc languageName: node linkType: hard @@ -16075,20 +16890,6 @@ __metadata: languageName: node linkType: hard -"typedarray.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "typedarray.prototype.slice@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.0" - es-errors: "npm:^1.3.0" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-offset: "npm:^1.0.2" - checksum: 10c0/6ac110a8b58a1ccb086242f09d1ce9c7ba2885924e816364a7879083b983d4096f19aab6f9aa8c0ce5ddd3d8ae3f3ba5581e10fa6838880f296a0c54c26f424b - languageName: node - linkType: hard - "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -16218,16 +17019,6 @@ __metadata: languageName: node linkType: hard -"unicode-properties@npm:^1.2.2": - version: 1.4.1 - resolution: "unicode-properties@npm:1.4.1" - dependencies: - base64-js: "npm:^1.3.0" - unicode-trie: "npm:^2.0.0" - checksum: 10c0/1d140b7945664fb0ef53de955170821e077b949eef377c6e4905902f07e339039271bfa2a005e4f4c6074b080d3420b486c52dc905e11f924949a04d1fb47ffd - languageName: node - linkType: hard - "unicode-property-aliases-ecmascript@npm:^2.0.0": version: 2.1.0 resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" @@ -16235,16 +17026,6 @@ __metadata: languageName: node linkType: hard -"unicode-trie@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-trie@npm:2.0.0" - dependencies: - pako: "npm:^0.2.5" - tiny-inflate: "npm:^1.0.0" - checksum: 10c0/2422368645249f315640a1c9e9506046aa7738fc9c5d59e15c207cdd6ec66101c35b0b9f75dc3ac28fe7be19aaf1efc898bbea074fa1e8e295ef736aeb7904bb - languageName: node - linkType: hard - "unicorn-magic@npm:^0.1.0": version: 0.1.0 resolution: "unicorn-magic@npm:0.1.0" @@ -16384,6 +17165,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" + bin: + uuid: dist/bin/uuid + checksum: 10c0/eab18c27fe4ab9fb9709a5d5f40119b45f2ec8314f8d4cf12ce27e4c6f4ffa4a6321dc7db6c515068fa373c075b49691ba969f0010bf37f44c37ca40cd6bf7fe + languageName: node + linkType: hard + "uuid@npm:^2.0.1": version: 2.0.3 resolution: "uuid@npm:2.0.3" @@ -16400,15 +17190,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -17023,15 +17804,6 @@ __metadata: languageName: node linkType: hard -"xmldoc@npm:^1.1.2": - version: 1.3.0 - resolution: "xmldoc@npm:1.3.0" - dependencies: - sax: "npm:^1.2.4" - checksum: 10c0/7957c57ff77008ced62063560d3e8f80c7fdf31d3fafa12d16c9f1fe676c8255f50889e8f41b61cca4cd473b841eedf2625089dcaf3f6b8717df521b9d0acfcf - languageName: node - linkType: hard - "xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -17143,13 +17915,6 @@ __metadata: languageName: node linkType: hard -"zepto@npm:^1.2.0": - version: 1.2.0 - resolution: "zepto@npm:1.2.0" - checksum: 10c0/e17e4d47ee27e79ea86ccad9d35a67ebeb7715adf5ae6f7c9b92ede8aa4d04a33ae40949c9931c15b95a8aec0d675d510da2b097c866a325771f9d3efbcf658d - languageName: node - linkType: hard - "zone.js@npm:~0.14.10": version: 0.14.10 resolution: "zone.js@npm:0.14.10" From 4a6bccb543d156baf6ae77bc6d06f030f5f9fc90 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 15 Oct 2024 00:03:12 +0200 Subject: [PATCH 141/213] test(edition): fix tests for intro components after changes --- .../edition-intro-content.component.html | 64 +- .../edition-intro-content.component.spec.ts | 670 ++++++++- .../edition-intro-empty.component.spec.ts | 102 +- .../edition-intro-nav.component.html | 46 +- .../edition-intro-nav.component.spec.ts | 288 +++- .../edition-intro.component.html | 4 +- .../edition-intro.component.spec.ts | 1314 +++++++++++------ .../edition-intro/edition-intro.component.ts | 94 +- .../edition-preface.component.spec.ts | 6 +- src/testing/mock-data/mockEditionData.ts | 51 +- 10 files changed, 2097 insertions(+), 542 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html index 84e81142ac..9eba499afa 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.html @@ -1,31 +1,39 @@ -
- @for (introBlock of introBlockContent; track $index) { -
- @if (introBlock.blockHeader) { -
-

-
- } - @if (introBlock.blockContent.length > 0) { - @for (blockContent of introBlock.blockContent; track $index) { -
+@if (introBlockContent) { +
+ @for (introBlock of introBlockContent; track $index) { +
+ @if (introBlock.blockHeader) { +
+

+
} - } -
- } -
-
-
{{ notesLabel }}
-
- @for (introBlock of introBlockContent; track $index) { - @if (introBlock.blockNotes.length > 0) { - @for (note of introBlock.blockNotes; track $index) { -
+ @if (introBlock.blockContent.length > 0) { + @for (blockContent of introBlock.blockContent; track $index) { +
+ } + } +
+ } +
+
+
{{ notesLabel }}
+
+ @for (introBlock of introBlockContent; track $index) { + @if (introBlock.blockNotes.length > 0) { + @for (note of introBlock.blockNotes; track $index) { +
+ } } } - } -
-
-
+
+ +
+} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts index 22beb8cd17..11e4359533 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.spec.ts @@ -1,22 +1,684 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { DebugElement } from '@angular/core'; +import { ComponentFixture, fakeAsync, TestBed } from '@angular/core/testing'; +import Spy = jasmine.Spy; + +import { clickAndAwaitChanges } from '@testing/click-helper'; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; +import { expectSpyCall, expectToBe, expectToEqual, getAndExpectDebugElementByCss } from '@testing/expect-helper'; +import { mockEditionData } from '@testing/mock-data'; + +import { CompileHtmlComponent } from '@awg-shared/compile-html'; +import { IntroBlock } from '@awg-views/edition-view/models'; import { EditionIntroContentComponent } from './edition-intro-content.component'; -describe('EditionIntroContentComponent', () => { +describe('EditionIntroContentComponent (DONE)', () => { let component: EditionIntroContentComponent; let fixture: ComponentFixture; + let compDe: DebugElement; + + let navigateToIntroFragmentSpy: Spy; + let navigateToIntroFragmentRequestEmitSpy: Spy; + let navigateToReportFragmentSpy: Spy; + let navigateToReportFragmentRequestEmitSpy: Spy; + let openModalSpy: Spy; + let openModalRequestEmitSpy: Spy; + let selectSvgSheetSpy: Spy; + let selectSvgSheetRequestEmitSpy: Spy; + + let expectedIntroBlockContent: IntroBlock[]; + let expectedNotesLabel: string; + + let expectedComplexId: string; + let expectedNextComplexId: string; + let expectedIntroFragment: string; + let expectedModalSnippet: string; + let expectedReportFragment: string; + let expectedSheetId: string; + let expectedNextSheetId: string; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [EditionIntroContentComponent], + declarations: [EditionIntroContentComponent, CompileHtmlComponent], }).compileComponents(); fixture = TestBed.createComponent(EditionIntroContentComponent); component = fixture.componentInstance; - fixture.detectChanges(); + compDe = fixture.debugElement; + + // Test data + expectedIntroBlockContent = JSON.parse(JSON.stringify(mockEditionData.mockIntroData.intro[0].content)); + expectedNotesLabel = 'Test notes label'; + + expectedComplexId = 'testComplex1'; + expectedNextComplexId = 'testComplex2'; + expectedIntroFragment = 'note-80'; + expectedModalSnippet = JSON.parse(JSON.stringify(mockEditionData.mockModalSnippet)); + expectedReportFragment = 'source_A'; + expectedSheetId = 'test-1'; + expectedNextSheetId = 'test-2'; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + navigateToIntroFragmentSpy = spyOn(component, 'navigateToIntroFragment').and.callThrough(); + navigateToIntroFragmentRequestEmitSpy = spyOn( + component.navigateToIntroFragmentRequest, + 'emit' + ).and.callThrough(); + navigateToReportFragmentSpy = spyOn(component, 'navigateToReportFragment').and.callThrough(); + navigateToReportFragmentRequestEmitSpy = spyOn( + component.navigateToReportFragmentRequest, + 'emit' + ).and.callThrough(); + openModalSpy = spyOn(component, 'openModal').and.callThrough(); + openModalRequestEmitSpy = spyOn(component.openModalRequest, 'emit').and.callThrough(); + selectSvgSheetSpy = spyOn(component, 'selectSvgSheet').and.callThrough(); + selectSvgSheetRequestEmitSpy = spyOn(component.selectSvgSheetRequest, 'emit').and.callThrough(); }); it('should create', () => { expect(component).toBeTruthy(); }); + + describe('BEFORE initial data binding', () => { + it('... should not have `introBlockContent`', () => { + expect(component.introBlockContent).toBeUndefined(); + }); + + it('... should not have `notesLabel`', () => { + expect(component.notesLabel).toBeUndefined(); + }); + + it('... should have `ref`', () => { + expectToEqual(component.ref, component); + }); + + describe('VIEW', () => { + it('... should contain no `div.awg-edition-intro-content` yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-content', 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.introBlockContent = expectedIntroBlockContent; + component.notesLabel = expectedNotesLabel; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `introBlockContent`', () => { + expectToEqual(component.introBlockContent, expectedIntroBlockContent); + }); + + it('... should have `notesLabel`', () => { + expectToBe(component.notesLabel, expectedNotesLabel); + }); + + describe('VIEW', () => { + it('... should contain one `div.awg-edition-intro-content`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-content', 1, 1); + }); + + it('... should contain as many awg-edition-intro-sections as introBlockContent items (+ 1 for notes)', () => { + getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + }); + + it('... should have correct id for each awg-edition-intro-section', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + expect(sectionDe.attributes['id']).toBe( + index < expectedIntroBlockContent.length ? expectedIntroBlockContent[index].blockId : 'notes' + ); + }); + }); + + describe('... content sections', () => { + it('... should not contain an intro block heading if block header is empty', () => { + expectedIntroBlockContent = [ + { + blockId: 'testId', + blockHeader: '', + blockContent: ['Test content'], + blockNotes: ['Test notes'], + }, + ]; + component.introBlockContent = expectedIntroBlockContent; + detectChangesOnPush(fixture); + + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + if (index < expectedIntroBlockContent.length) { + getAndExpectDebugElementByCss(sectionDe, 'div.awg-edition-intro-block > p.heading', 0, 0); + } + }); + }); + + it('... should contain as many intro block headings as block headers in data', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + // Each section block, except the notes section, should have a heading + getAndExpectDebugElementByCss( + sectionDe, + 'div.awg-edition-intro-block > p.heading', + index < expectedIntroBlockContent.length ? 1 : 0, + index < expectedIntroBlockContent.length ? 1 : 0 + ); + }); + }); + + it('... should display correct header in each heading', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + // Each section block, except the notes section, should have a heading + const expectedLength = index < expectedIntroBlockContent.length ? 1 : 0; + + const pDes = getAndExpectDebugElementByCss( + sectionDe, + 'div.awg-edition-intro-block > p.heading', + expectedLength, + expectedLength + ); + + if (index < expectedIntroBlockContent.length) { + expect(pDes[0].nativeElement.textContent).toBe( + expectedIntroBlockContent[index].blockHeader + ); + } + }); + }); + + it('... should not contain any (additional) intro blocks if block content is empty', () => { + expectedIntroBlockContent = [ + { + blockId: 'testId', + blockHeader: 'Test header', + blockContent: [], + blockNotes: ['Test notes'], + }, + ]; + component.introBlockContent = expectedIntroBlockContent; + detectChangesOnPush(fixture); + + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + if (index < expectedIntroBlockContent.length) { + getAndExpectDebugElementByCss(sectionDe, 'div.awg-edition-intro-block > p.heading', 1, 1); + getAndExpectDebugElementByCss(sectionDe, 'div.awg-edition-intro-block', 1, 1); + } + }); + }); + + it('... should contain as many intro blocks as block content items in data', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + sectionDes.forEach((sectionDe, index) => { + if (index < expectedIntroBlockContent.length) { + const expectedBlockContent = expectedIntroBlockContent[index].blockContent; + const expectedBlockHeader = expectedIntroBlockContent[index].blockHeader; + const expectedLength = expectedBlockHeader + ? expectedBlockContent.length + 1 + : expectedBlockContent.length; + + getAndExpectDebugElementByCss( + sectionDe, + 'div.awg-edition-intro-block', + expectedLength, + expectedLength + ); + } + }); + }); + + it('... should have one anchor in first paragraph, and 3 in the second one in the first section', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const expectedLength = expectedIntroBlockContent[0].blockContent.length + 1; + + const divDes = getAndExpectDebugElementByCss( + sectionDes[0], + 'div.awg-edition-intro-block', + expectedLength, + expectedLength + ); + + // First div has header + getAndExpectDebugElementByCss(divDes[1], 'a', 1, 1); + getAndExpectDebugElementByCss(divDes[2], 'a', 3, 3); + }); + }); + + describe('... notes section', () => { + it('... should be the last section', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const notesSectionDe = sectionDes.at(-1); + expect(notesSectionDe.attributes['id']).toBe('notes'); + }); + + it('... should contain one horizontal line', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + const notesSectionDe = sectionDes.at(-1); + + getAndExpectDebugElementByCss(notesSectionDe, 'hr', 1, 1); + }); + + it('... should contain one notes heading (h5)', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + const notesSectionDe = sectionDes.at(-1); + + getAndExpectDebugElementByCss(notesSectionDe, 'h5', 1, 1); + }); + + it('... should display the notesLabel in the heading (h5)', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + const notesSectionDe = sectionDes.at(-1); + + const h5Des = getAndExpectDebugElementByCss(notesSectionDe, 'h5', 1, 1); + const h5El = h5Des[0].nativeElement; + + expectToBe(h5El.textContent, expectedNotesLabel); + }); + + it('... should contain one div.awg-edition-intro-notes', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + const notesSectionDe = sectionDes.at(-1); + + getAndExpectDebugElementByCss(notesSectionDe, 'div.awg-edition-intro-notes', 1, 1); + }); + + it('... should contain as many (small) div.awg-edition-intro-note as block notes in data', () => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + const notesSectionDe = sectionDes.at(-1); + + // Count total block notes length by reducing block notes arrays + const totalBlockNotesLength = expectedIntroBlockContent.reduce( + (acc, block) => acc + block.blockNotes.length, + 0 + ); + + getAndExpectDebugElementByCss( + notesSectionDe, + 'small > div.awg-edition-intro-note', + totalBlockNotesLength, + totalBlockNotesLength + ); + }); + }); + }); + + describe('#navigateToIntroFragment()', () => { + it('... should have a method `navigateToIntroFragment`', () => { + expect(component.navigateToIntroFragment).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const divDes = getAndExpectDebugElementByCss( + sectionDes[0], + 'div.awg-edition-intro-block', + expectedIntroBlockContent[0].blockContent.length + 1, + expectedIntroBlockContent[0].blockContent.length + 1 + ); + + // Find 3 anchors in last block content + const anchorDes = getAndExpectDebugElementByCss(divDes[2], 'a', 3, 3); + + // CLick on last anchor (with navigateToIntroFragment call) + clickAndAwaitChanges(anchorDes[2], fixture); + + expectSpyCall(navigateToIntroFragmentSpy, 1, { + complexId: expectedComplexId, + fragmentId: expectedIntroFragment, + }); + })); + + describe('... should not emit anything if', () => { + it('... paraemeter is undefined', () => { + component.navigateToIntroFragment(undefined); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 0); + }); + it('... parameter is null', () => { + component.navigateToIntroFragment(null); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 0); + }); + it('... fragment id is undefined', () => { + component.navigateToIntroFragment({ complexId: 'testComplex', fragmentId: undefined }); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 0); + }); + it('... fragment id is null', () => { + component.navigateToIntroFragment({ complexId: 'testComplex', fragmentId: null }); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 0); + }); + it('... fragment id is empty string', () => { + component.navigateToIntroFragment({ complexId: 'testComplex', fragmentId: '' }); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 0); + }); + }); + + it('... should emit id of selected report fragment within same complex', () => { + const expectedIntroIds = { complexId: expectedComplexId, fragmentId: expectedIntroFragment }; + component.navigateToIntroFragment(expectedIntroIds); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 1, expectedIntroIds); + + const otherFragment = 'note-ref-81'; + const expectedNextIntroIds = { complexId: expectedComplexId, fragmentId: otherFragment }; + component.navigateToIntroFragment(expectedNextIntroIds); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 2, expectedNextIntroIds); + }); + + it('... should emit id of selected report fragment for another complex', () => { + const expectedIntroIds = { complexId: expectedComplexId, fragmentId: expectedIntroFragment }; + component.navigateToIntroFragment(expectedIntroIds); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 1, expectedIntroIds); + + const otherFragment = 'note-ref-81'; + const expectedNextIntroIds = { complexId: expectedNextComplexId, fragmentId: otherFragment }; + component.navigateToIntroFragment(expectedNextIntroIds); + + expectSpyCall(navigateToIntroFragmentRequestEmitSpy, 2, expectedNextIntroIds); + }); + }); + + describe('#navigateToReportFragment()', () => { + it('... should have a method `navigateToReportFragment`', () => { + expect(component.navigateToReportFragment).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const divDes = getAndExpectDebugElementByCss( + sectionDes[0], + 'div.awg-edition-intro-block', + expectedIntroBlockContent[0].blockContent.length + 1, + expectedIntroBlockContent[0].blockContent.length + 1 + ); + + // Find 3 anchors in first block content (after heading) + const anchorDes = getAndExpectDebugElementByCss(divDes[1], 'a', 1, 1); + + // CLick on first anchor (with navigateToReportFragment call) + clickAndAwaitChanges(anchorDes[0], fixture); + + expectSpyCall(navigateToReportFragmentSpy, 1, { + complexId: expectedComplexId, + fragmentId: expectedReportFragment, + }); + })); + + describe('... should not emit anything if', () => { + it('... paraemeter is undefined', () => { + component.navigateToReportFragment(undefined); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... parameter is null', () => { + component.navigateToReportFragment(null); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... fragment id is undefined', () => { + component.navigateToReportFragment({ complexId: 'testComplex', fragmentId: undefined }); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... fragment id is null', () => { + component.navigateToReportFragment({ complexId: 'testComplex', fragmentId: null }); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + it('... fragment id is empty string', () => { + component.navigateToReportFragment({ complexId: 'testComplex', fragmentId: '' }); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 0); + }); + }); + + it('... should emit id of selected report fragment within same complex', () => { + const expectedReportIds = { complexId: expectedComplexId, fragmentId: expectedReportFragment }; + component.navigateToReportFragment(expectedReportIds); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 1, expectedReportIds); + + const otherFragment = 'source_B'; + const expectedNextReportIds = { complexId: expectedComplexId, fragmentId: otherFragment }; + component.navigateToReportFragment(expectedNextReportIds); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 2, expectedNextReportIds); + }); + + it('... should emit id of selected report fragment for another complex', () => { + const expectedReportIds = { complexId: expectedComplexId, fragmentId: expectedReportFragment }; + component.navigateToReportFragment(expectedReportIds); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 1, expectedReportIds); + + const otherFragment = 'source_B'; + const expectedNextReportIds = { complexId: expectedNextComplexId, fragmentId: otherFragment }; + component.navigateToReportFragment(expectedNextReportIds); + + expectSpyCall(navigateToReportFragmentRequestEmitSpy, 2, expectedNextReportIds); + }); + }); + + describe('#openModal()', () => { + it('... should have a method `openModal`', () => { + expect(component.openModal).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const divDes = getAndExpectDebugElementByCss( + sectionDes[0], + 'div.awg-edition-intro-block', + expectedIntroBlockContent[0].blockContent.length + 1, + expectedIntroBlockContent[0].blockContent.length + 1 + ); + + // Find 3 anchors in last block content + const anchorDes = getAndExpectDebugElementByCss(divDes[2], 'a', 3, 3); + + // CLick on second anchor (with openModal call) + clickAndAwaitChanges(anchorDes[1], fixture); + + expectSpyCall(openModalSpy, 1, expectedModalSnippet); + })); + + describe('... should not emit anything if ', () => { + it('... id is undefined', () => { + component.openModal(undefined); + + expectSpyCall(openModalRequestEmitSpy, 0); + }); + + it('... id is null', () => { + component.openModal(undefined); + + expectSpyCall(openModalRequestEmitSpy, 0, null); + }); + it('... id is empty string', () => { + component.openModal(''); + + expectSpyCall(openModalRequestEmitSpy, 0); + }); + }); + + it('... should emit id of given modal snippet', () => { + component.openModal(expectedModalSnippet); + + expectSpyCall(openModalRequestEmitSpy, 1, expectedModalSnippet); + }); + }); + + describe('#selectSvgSheet()', () => { + it('... should have a method `selectSvgSheet`', () => { + expect(component.selectSvgSheet).toBeDefined(); + }); + + it('... should trigger on click', fakeAsync(() => { + const sectionDes = getAndExpectDebugElementByCss( + compDe, + 'section.awg-edition-intro-section', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + const divDes = getAndExpectDebugElementByCss( + sectionDes[0], + 'div.awg-edition-intro-block', + expectedIntroBlockContent[0].blockContent.length + 1, + expectedIntroBlockContent[0].blockContent.length + 1 + ); + + // Find 3 anchors in last block content + const anchorDes = getAndExpectDebugElementByCss(divDes[2], 'a', 3, 3); + + // CLick on first anchor (with selectSvgSheet call) + clickAndAwaitChanges(anchorDes[0], fixture); + + expectSpyCall(selectSvgSheetSpy, 1, { complexId: expectedComplexId, sheetId: expectedSheetId }); + })); + + it('... should not emit anything if no id is provided', () => { + const expectedSheetIds = undefined; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + + const expectedNextSheetIds = { complexId: undefined, sheetId: undefined }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 0, undefined); + }); + + it('... should emit id of selected svg sheet within same complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + + it('... should emit id of selected svg sheet for another complex', () => { + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSheetId }; + component.selectSvgSheet(expectedSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 1, expectedSheetIds); + + const expectedNextSheetIds = { complexId: expectedNextComplexId, sheetId: expectedNextSheetId }; + component.selectSvgSheet(expectedNextSheetIds); + + expectSpyCall(selectSvgSheetRequestEmitSpy, 2, expectedNextSheetIds); + }); + }); + }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts index fbdca5994e..0a2831bece 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts @@ -1,10 +1,28 @@ +import { DOCUMENT } from '@angular/common'; +import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectToBe, expectToEqual, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; + import { EditionIntroEmptyComponent } from './edition-intro-empty.component'; -describe('EditionIntroEmptyComponent', () => { +describe('EditionIntroEmptyComponent (DONE)', () => { let component: EditionIntroEmptyComponent; let fixture: ComponentFixture; + let compDe: DebugElement; + + let mockDocument: Document; + + let expectedEditionComplex: EditionComplex; + let expectedEditionLabel: string; + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); beforeEach(async () => { await TestBed.configureTestingModule({ @@ -13,10 +31,90 @@ describe('EditionIntroEmptyComponent', () => { fixture = TestBed.createComponent(EditionIntroEmptyComponent); component = fixture.componentInstance; - fixture.detectChanges(); + compDe = fixture.debugElement; + + mockDocument = TestBed.inject(DOCUMENT); + + // Test data + expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); + expectedEditionLabel = 'AWG'; + }); + + afterAll(() => { + cleanStylesFromDOM(); }); it('should create', () => { expect(component).toBeTruthy(); }); + + describe('BEFORE initial data binding', () => { + it('... should not have `editionComplex`', () => { + expect(component.editionComplex).toBeUndefined(); + }); + + it('... should not have `editionLabel`', () => { + expect(component.editionLabel).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain a `div.awg-edition-intro-empty`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + }); + + it('... should contain a small, text-muted paragraph in div', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl).toHaveClass('text-muted'); + expect(pEl).toHaveClass('small'); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.editionComplex = expectedEditionComplex; + component.editionLabel = expectedEditionLabel; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `editionComplex`', () => { + expectToEqual(component.editionComplex, expectedEditionComplex); + }); + + it('... should have `editionLabel`', () => { + expectToBe(component.editionLabel, expectedEditionLabel); + }); + + describe('VIEW', () => { + it('... should display small, text-muted placeholder in paragraph', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl).toHaveClass('text-muted'); + expect(pEl).toHaveClass('small'); + + // Create intro placeholder + const fullComplexSpan = mockDocument.createElement('span'); + fullComplexSpan.innerHTML = expectedEditionComplex.complexId.full; + + const shortComplexSpan = mockDocument.createElement('span'); + shortComplexSpan.innerHTML = expectedEditionComplex.complexId.short; + + const awg = expectedEditionLabel; + const series = expectedEditionComplex.pubStatement.series.short; + const section = expectedEditionComplex.pubStatement.section.short; + + const introPlaceholder = `[Die Einleitung zum Editionskomplex ${fullComplexSpan.textContent} erscheint im Zusammenhang der vollständigen Edition von ${shortComplexSpan.textContent} in ${awg} ${series}/${section}.]`; + + expectToBe(pEl.textContent.trim(), introPlaceholder); + }); + }); + }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html index 8091338a4d..36ae490c1a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.html @@ -1,22 +1,26 @@ -
- +
+} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts index 45c16d5ad9..a9521d6f31 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-nav/edition-intro-nav.component.spec.ts @@ -1,22 +1,304 @@ +import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; +import Spy = jasmine.Spy; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { click } from '@testing/click-helper'; +import { + expectSpyCall, + expectToBe, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { mockEditionData } from '@testing/mock-data'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { IntroBlock } from '@awg-views/edition-view/models'; + import { EditionIntroNavComponent } from './edition-intro-nav.component'; -describe('EditionIntroNavComponent', () => { +// Mock components +@Component({ selector: 'awg-language-switcher', template: '' }) +class LanguageSwitcherStubComponent { + @Input() + currentLanguage: number; + @Output() languageChangeRequest = new EventEmitter(); +} + +describe('EditionIntroNavComponent (DONE)', () => { let component: EditionIntroNavComponent; let fixture: ComponentFixture; + let compDe: DebugElement; + + let linkDes: DebugElement[]; + let routerLinks; + + let setLanguageSpy: Spy; + let emitLanguageChangeRequestSpy: Spy; + + let expectedIntroBlockContent: IntroBlock[]; + let expectedNotesLabel: string; + let expectedCurrentLanguage: number; + + let expectedLinkParam: string; + let expectedNotesFragment: string; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [EditionIntroNavComponent], + declarations: [EditionIntroNavComponent, LanguageSwitcherStubComponent, RouterLinkStubDirective], }).compileComponents(); fixture = TestBed.createComponent(EditionIntroNavComponent); component = fixture.componentInstance; - fixture.detectChanges(); + compDe = fixture.debugElement; + + // Test data + expectedIntroBlockContent = JSON.parse(JSON.stringify(mockEditionData.mockIntroData.intro[0].content)); + expectedNotesLabel = 'Test notes label'; + expectedCurrentLanguage = 0; + + expectedLinkParam = '.'; + expectedNotesFragment = 'notes'; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + setLanguageSpy = spyOn(component, 'setLanguage').and.callThrough(); + emitLanguageChangeRequestSpy = spyOn(component.languageChangeRequest, 'emit').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); }); it('should create', () => { expect(component).toBeTruthy(); }); + + describe('BEFORE initial data binding', () => { + it('... should not have `introBlockContent`', () => { + expect(component.introBlockContent).toBeUndefined(); + }); + + it('... should not have `notesLabel`', () => { + expect(component.notesLabel).toBeUndefined(); + }); + + it('... should not have `currentLanguage`', () => { + expect(component.currentLanguage).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain no `div.awg-edition-intro-nav` yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-nav', 0, 0); + }); + + it('... should not contain language switcher component (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.introBlockContent = expectedIntroBlockContent; + component.notesLabel = expectedNotesLabel; + component.currentLanguage = expectedCurrentLanguage; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `introBlockContent`', () => { + expectToEqual(component.introBlockContent, expectedIntroBlockContent); + }); + + it('... should have `notesLabel`', () => { + expectToBe(component.notesLabel, expectedNotesLabel); + }); + + it('... should have `currentLanguage`', () => { + expectToEqual(component.currentLanguage, expectedCurrentLanguage); + }); + + describe('VIEW', () => { + it('... should contain one `div.awg-edition-intro-nav`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-nav', 1, 1); + }); + + it('... should contain a ul.nav in div', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-nav', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'ul.nav', 1, 1); + }); + + it('... should contain a language switcher component (stubbed) in ul.nav', () => { + const ulDes = getAndExpectDebugElementByCss(compDe, 'ul.nav', 1, 1); + + getAndExpectDebugElementByDirective(ulDes[0], LanguageSwitcherStubComponent, 1, 1); + }); + + it('... should pass down `currentLanguage` to language switcher component', () => { + const switcherDes = getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 1, 1); + const switcherCmp = switcherDes[0].injector.get( + LanguageSwitcherStubComponent + ) as LanguageSwitcherStubComponent; + + expectToEqual(switcherCmp.currentLanguage, expectedCurrentLanguage); + }); + + it('... should contain a horizontal line after language switcher in ul.nav', () => { + const ulDes = getAndExpectDebugElementByCss(compDe, 'ul.nav', 1, 1); + getAndExpectDebugElementByCss(ulDes[0], 'hr.mt-0', 1, 1); + }); + + it('... should contain as many li.nav-items in ul.nav as block items in introBlockContent (+ 1 for notes', () => { + const ulDes = getAndExpectDebugElementByCss(compDe, 'ul.nav', 1, 1); + + getAndExpectDebugElementByCss( + ulDes[0], + 'li.nav-item', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + }); + + it('... should contain a nav-link in each li.nav-item', () => { + const ulDes = getAndExpectDebugElementByCss(compDe, 'ul.nav', 1, 1); + const liDes = getAndExpectDebugElementByCss( + ulDes[0], + 'li.nav-item', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + liDes.forEach((liDe, _index) => { + getAndExpectDebugElementByCss(liDe, 'a.awg-edition-intro-nav-link', 1, 1); + }); + }); + + it('... should display correct block header in each nav-link', () => { + const ulDes = getAndExpectDebugElementByCss(compDe, 'ul.nav', 1, 1); + const liDes = getAndExpectDebugElementByCss( + ulDes[0], + 'li.nav-item', + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + liDes.forEach((liDe, index) => { + const aDes = getAndExpectDebugElementByCss(liDe, 'a.awg-edition-intro-nav-link', 1, 1); + const aEl = aDes[0].nativeElement; + + const expectedText = + index === expectedIntroBlockContent.length + ? expectedNotesLabel + : expectedIntroBlockContent[index].blockHeader; + + expect(aEl.textContent).toEqual(expectedText); + }); + }); + }); + + describe('#setLanguage()', () => { + it('... should have a method `setLanguage`', () => { + expect(component.setLanguage).toBeDefined(); + }); + + it('... should trigger on event from LanguageSwitcherComponent', () => { + const switcherDes = getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 1, 1); + const switcherCmp = switcherDes[0].injector.get( + LanguageSwitcherStubComponent + ) as LanguageSwitcherStubComponent; + + // Language = 0 + switcherCmp.languageChangeRequest.emit(0); + + expectSpyCall(setLanguageSpy, 1, 0); + + // Language = 1 + switcherCmp.languageChangeRequest.emit(1); + + expectSpyCall(setLanguageSpy, 2, 1); + }); + + it('... should emit 0 when called with 0', () => { + component.setLanguage(0); + + expectSpyCall(setLanguageSpy, 1); + expectSpyCall(emitLanguageChangeRequestSpy, 1, 0); + }); + + it('... should emit 1 when called with 1', () => { + component.setLanguage(1); + + expectSpyCall(setLanguageSpy, 1); + expectSpyCall(emitLanguageChangeRequestSpy, 1, 1); + }); + + it('... should not emit when called with any other number than 0 or 1', () => { + const invalidLanguageNumbers = [-987654321, -2, -1, 2, 3, 987654321]; + + invalidLanguageNumbers.forEach((languageNumber, index) => { + component.setLanguage(languageNumber); + + expectSpyCall(setLanguageSpy, index + 1); + expectSpyCall(emitLanguageChangeRequestSpy, 0); + }); + }); + }); + + describe('[routerLink]', () => { + beforeEach(() => { + // Find DebugElements with an attached RouterLinkStubDirective + linkDes = getAndExpectDebugElementByDirective( + compDe, + RouterLinkStubDirective, + expectedIntroBlockContent.length + 1, + expectedIntroBlockContent.length + 1 + ); + + // Get attached link directive instances using each DebugElement's injector + routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + }); + + it('... can get correct number of routerLinks from template', () => { + expectToBe(routerLinks.length, expectedIntroBlockContent.length + 1); + }); + + it('... can get correct linkParams from template', () => { + routerLinks.forEach((link: RouterLinkStubDirective, _index: any) => { + expectToBe(link.linkParams, expectedLinkParam); + }); + }); + + it('... can get correct fragments from template', () => { + routerLinks.forEach((link: RouterLinkStubDirective, index: number) => { + const blockFragment = expectedIntroBlockContent[index]?.blockId; + const expectedFragment = index === routerLinks.length - 1 ? expectedNotesFragment : blockFragment; + + expectToBe(link.fragment, expectedFragment); + }); + }); + + it('... can click any router links in template', () => { + routerLinks.forEach((link: RouterLinkStubDirective, index: number) => { + const linkDe = linkDes[index]; // Link DebugElement + + expectToBe(link.navigatedTo, null); + + click(linkDe); + fixture.detectChanges(); + + const blockFragment = expectedIntroBlockContent[index]?.blockId; + const expectedFragment = index === routerLinks.length - 1 ? expectedNotesFragment : blockFragment; + + expectToBe(link.navigatedTo, expectedLinkParam); + expectToBe(link.navigatedToFragment, expectedFragment); + }); + }); + }); + }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 07ca9b15a7..901e3c1e2d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -11,7 +11,7 @@ } @else { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index 4af0bc48f5..df9176e744 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -1,12 +1,13 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { DOCUMENT, JsonPipe } from '@angular/common'; -import { Component, DebugElement, Input } from '@angular/core'; -import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; +import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; +import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { Router, RouterModule } from '@angular/router'; import { EMPTY, EmptyError, + isEmpty, lastValueFrom, Observable, of as observableOf, @@ -18,8 +19,6 @@ import Spy = jasmine.Spy; import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; -import { clickAndAwaitChanges } from '@testing/click-helper'; -import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { expectSpyCall, expectToBe, @@ -28,15 +27,14 @@ import { getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; import { mockEditionData } from '@testing/mock-data'; -import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries, EditionSvgSheet, + IntroBlock, IntroList, } from '@awg-views/edition-view/models'; import { @@ -49,6 +47,41 @@ import { import { EditionIntroComponent } from './edition-intro.component'; // Mock components +@Component({ selector: 'awg-edition-intro-content', template: '' }) +class EditionIntroContentStubComponent { + @Input() + introBlockContent: IntroBlock[]; + @Input() + notesLabel: string; + @Output() + navigateToIntroFragmentRequest: EventEmitter<{ complexId: string; fragmentId: string }> = new EventEmitter(); + @Output() + navigateToReportFragmentRequest: EventEmitter<{ complexId: string; fragmentId: string }> = new EventEmitter(); + @Output() + openModalRequest: EventEmitter = new EventEmitter(); + @Output() + selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); +} + +@Component({ selector: 'awg-edition-intro-empty', template: '' }) +class EditionIntroEmptyStubComponent { + @Input() + editionComplex: EditionComplex; + @Input() + editionLabel: string; +} + +@Component({ selector: 'awg-edition-intro-nav', template: '' }) +class EditionIntroNavStubComponent { + @Input() + introBlockContent: IntroBlock[]; + @Input() + notesLabel: string; + @Input() + currentLanguage: number; + @Output() languageChangeRequest = new EventEmitter(); +} + @Component({ selector: 'awg-error-alert', template: '' }) class ErrorAlertStubComponent { @Input() @@ -63,7 +96,7 @@ class ModalStubComponent { @Component({ selector: 'awg-twelve-tone-spinner', template: '' }) class TwelveToneSpinnerStubComponent {} -fdescribe('IntroComponent (DONE)', () => { +describe('IntroComponent (DONE)', () => { let component: EditionIntroComponent; let fixture: ComponentFixture; let compDe: DebugElement; @@ -71,19 +104,25 @@ fdescribe('IntroComponent (DONE)', () => { let mockDocument: Document; let mockRouter; + let editionDataServiceGetEditionSectionIntroDataSpy: Spy; let editionDataServiceGetEditionComplexIntroDataSpy: Spy; let editionServiceGetSelectedEditionComplexSpy: Spy; let editionServiceGetSelectedEditionSectionSpy: Spy; let editionServiceGetSelectedEditionSeriesSpy: Spy; + let editionServiceUpdateIsIntroViewSpy: Spy; + let editionServiceClearIsIntroViewSpy: Spy; - let componentOpenModalSpy: Spy; let getEditionIntroDataSpy: Spy; let navigateWithComplexIdSpy: Spy; - let navigateToIntroFragmentSpy: Spy; - let navigateToReportFragmentSpy: Spy; let navigationSpy: Spy; - let modalOpenSpy: Spy; - let selectSvgSheetSpy: Spy; + let openModalSpy: Spy; + let onIntroFragmentNavigateSpy: Spy; + let onLanguageSetSpy: Spy; + let onModalOpenSpy: Spy; + let onReportFragmentNavigateSpy: Spy; + let onSvgSheetSelectSpy: Spy; + + let fetchAndFilterIntroDataSpy: Spy; let mockEditionDataService: Partial; let mockEditionService: Partial; @@ -91,12 +130,17 @@ fdescribe('IntroComponent (DONE)', () => { let editionService: Partial; let mockIsIntroViewSubject: ReplaySubject; + let expectedCurrentLaguage: number; + let expectedNotesLabels: Map; let expectedEditionComplex: EditionComplex; + let expectedEditionIntroData: IntroList; + let expectedErrorObject: any; + let expectedEditionComplexBaseRoute: string; let expectedComplexId: string; let expectedNextComplexId: string; - let expectedEditionIntroData: IntroList; - let expectedEditionIntroEmptyData: IntroList; + let expectedEditionIntroComplexData: IntroList; + let expectedEditionIntroFilteredData: IntroList; let expectedIntroFragment: string; let expectedReportFragment: string; let expectedModalSnippet: string; @@ -121,28 +165,28 @@ fdescribe('IntroComponent (DONE)', () => { mockIsIntroViewSubject = new ReplaySubject(1); mockEditionService = { - getSelectedEditionComplex: (): Observable => observableOf(expectedEditionComplex), - getSelectedEditionSeries: (): Observable => - observableOf(expectedSelectedEditionSeries), - getSelectedEditionSection: (): Observable => - observableOf(expectedSelectedEditionSection), + getSelectedEditionComplex: (): Observable => observableOf(null), + getSelectedEditionSeries: (): Observable => observableOf(null), + getSelectedEditionSection: (): Observable => observableOf(null), updateIsIntroView: (isView: boolean): void => mockIsIntroViewSubject.next(isView), clearIsIntroView: (): void => mockIsIntroViewSubject.next(null), }; mockEditionDataService = { - getEditionComplexIntroData: (editionComplex: EditionComplex): Observable => - observableOf(expectedEditionIntroData), + getEditionComplexIntroData: (editionComplex: EditionComplex): Observable => observableOf(null), + getEditionSectionIntroData: (seriesRoute: string, sectionRoute: string): Observable => + observableOf(null), }; TestBed.configureTestingModule({ imports: [NgbModalModule, RouterModule], declarations: [ - CompileHtmlComponent, EditionIntroComponent, + EditionIntroContentStubComponent, + EditionIntroEmptyStubComponent, + EditionIntroNavStubComponent, ErrorAlertStubComponent, ModalStubComponent, - RouterLinkStubDirective, TwelveToneSpinnerStubComponent, ], providers: [ @@ -165,15 +209,23 @@ fdescribe('IntroComponent (DONE)', () => { editionService = TestBed.inject(EditionService); // Test data + expectedCurrentLaguage = 0; + expectedNotesLabels = new Map([ + [0, 'Anmerkungen'], + [1, 'Notes'], + ]); + expectedEditionIntroData = JSON.parse(JSON.stringify(mockEditionData.mockIntroData)); + expectedEditionIntroComplexData = JSON.parse(JSON.stringify(mockEditionData.mockIntroComplexData)); + expectedEditionIntroFilteredData = JSON.parse(JSON.stringify(mockEditionData.mockIntroFilteredData)); expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); + expectedErrorObject = null; + expectedEditionComplexBaseRoute = '/edition/complex/op12/'; expectedComplexId = 'testComplex1'; expectedNextComplexId = 'testComplex2'; expectedIntroFragment = 'note-80'; expectedReportFragment = 'source_A'; expectedModalSnippet = JSON.parse(JSON.stringify(mockEditionData.mockModalSnippet)); - expectedEditionIntroData = JSON.parse(JSON.stringify(mockEditionData.mockIntroData)); - expectedEditionIntroEmptyData = JSON.parse(JSON.stringify(mockEditionData.mockIntroEmptyData)); expectedSvgSheet = JSON.parse(JSON.stringify(mockEditionData.mockSvgSheet_Sk1)); expectedNextSvgSheet = JSON.parse(JSON.stringify(mockEditionData.mockSvgSheet_Sk2)); @@ -186,28 +238,36 @@ fdescribe('IntroComponent (DONE)', () => { ); // Spies on functions + fetchAndFilterIntroDataSpy = spyOn(component as any, '_fetchAndFilterIntroData').and.callThrough(); getEditionIntroDataSpy = spyOn(component, 'getEditionIntroData').and.callThrough(); - navigateToIntroFragmentSpy = spyOn(component, 'navigateToIntroFragment').and.callThrough(); - navigateToReportFragmentSpy = spyOn(component, 'navigateToReportFragment').and.callThrough(); navigateWithComplexIdSpy = spyOn(component as any, '_navigateWithComplexId').and.callThrough(); navigationSpy = mockRouter.navigate as jasmine.Spy; - modalOpenSpy = spyOn(component.modal, 'open').and.callThrough(); - componentOpenModalSpy = spyOn(component, 'openModal').and.callThrough(); - selectSvgSheetSpy = spyOn(component, 'selectSvgSheet').and.callThrough(); + openModalSpy = spyOn(component.modal, 'open').and.callThrough(); + onIntroFragmentNavigateSpy = spyOn(component, 'onIntroFragmentNavigate').and.callThrough(); + onLanguageSetSpy = spyOn(component, 'onLanguageSet').and.callThrough(); + onModalOpenSpy = spyOn(component, 'onModalOpen').and.callThrough(); + onReportFragmentNavigateSpy = spyOn(component, 'onReportFragmentNavigate').and.callThrough(); + onSvgSheetSelectSpy = spyOn(component, 'onSvgSheetSelect').and.callThrough(); editionDataServiceGetEditionComplexIntroDataSpy = spyOn( editionDataService, 'getEditionComplexIntroData' - ).and.returnValue(observableOf(expectedEditionIntroData)); - editionServiceGetSelectedEditionComplexSpy = spyOn(editionService, 'getSelectedEditionComplex').and.returnValue( - observableOf(expectedEditionComplex) - ); - editionServiceGetSelectedEditionSeriesSpy = spyOn(editionService, 'getSelectedEditionSeries').and.returnValue( - observableOf(expectedSelectedEditionSeries) - ); - editionServiceGetSelectedEditionSectionSpy = spyOn(editionService, 'getSelectedEditionSection').and.returnValue( - observableOf(expectedSelectedEditionSection) - ); + ).and.callThrough(); + editionDataServiceGetEditionSectionIntroDataSpy = spyOn( + editionDataService, + 'getEditionSectionIntroData' + ).and.callThrough(); + editionServiceGetSelectedEditionComplexSpy = spyOn( + editionService, + 'getSelectedEditionComplex' + ).and.callThrough(); + editionServiceGetSelectedEditionSeriesSpy = spyOn(editionService, 'getSelectedEditionSeries').and.callThrough(); + editionServiceGetSelectedEditionSectionSpy = spyOn( + editionService, + 'getSelectedEditionSection' + ).and.callThrough(); + editionServiceUpdateIsIntroViewSpy = spyOn(editionService, 'updateIsIntroView').and.callThrough(); + editionServiceClearIsIntroViewSpy = spyOn(editionService, 'clearIsIntroView').and.callThrough(); }); afterAll(() => { @@ -219,6 +279,14 @@ fdescribe('IntroComponent (DONE)', () => { }); describe('BEFORE initial data binding', () => { + it('... should have `currentLanguage`', () => { + expectToBe(component.currentLanguage, expectedCurrentLaguage); + }); + + it('... should have `notesLabels`', () => { + expectToEqual(component.notesLabels, expectedNotesLabels); + }); + it('... should not have `editionIntroData$`', () => { expect(component.editionIntroData$).toBeUndefined(); }); @@ -227,12 +295,16 @@ fdescribe('IntroComponent (DONE)', () => { expect(component.editionComplex).toBeUndefined(); }); + it('... should have `errorObject = null`', () => { + expectToBe(component.errorObject, null); + }); + it('... should have `editionRouteConstants`', () => { expectToEqual(component.editionRouteConstants, expectedEditionRouteConstants); }); describe('VIEW', () => { - it('... should contain a `div`', () => { + it('... should contain an outer `div`', () => { getAndExpectDebugElementByCss(compDe, 'div', 1, 1); }); @@ -240,10 +312,28 @@ fdescribe('IntroComponent (DONE)', () => { getAndExpectDebugElementByDirective(compDe, ModalStubComponent, 1, 1); }); - it('... should contain no div.awg-edition-intro-view yet', () => { + it('... should not contain a div.awg-edition-intro-view yet', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); }); + it('... should not contain an edition intro content component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], EditionIntroContentStubComponent, 0, 0); + }); + + it('... should not contain an edition intro nav component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], EditionIntroNavStubComponent, 0, 0); + }); + + it('... should not contain an edition intro empty component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], EditionIntroEmptyStubComponent, 0, 0); + }); + it('... should not contain an error alert component (stubbed)', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); @@ -258,11 +348,16 @@ fdescribe('IntroComponent (DONE)', () => { }); }); - fdescribe('AFTER initial data binding', () => { + describe('AFTER initial data binding', () => { beforeEach(() => { - // Simulate the parent setting the input properties - component.editionIntroData$ = observableOf(expectedEditionIntroData); - component.editionComplex = expectedEditionComplex; + // Simulate the services returning the observable properties + editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(expectedSelectedEditionSeries)); + editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(expectedSelectedEditionSection)); + editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(expectedEditionComplex)); + editionDataServiceGetEditionSectionIntroDataSpy.and.returnValue(observableOf(expectedEditionIntroData)); + editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( + observableOf(expectedEditionIntroComplexData) + ); // Trigger initial data binding fixture.detectChanges(); @@ -272,152 +367,107 @@ fdescribe('IntroComponent (DONE)', () => { expectSpyCall(getEditionIntroDataSpy, 1); }); - it('... should have triggered `getSelectedEditionComplex()` method from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); - }); - - it('... should have editionComplex', () => { - expectToEqual(component.editionComplex, expectedEditionComplex); - }); - - it('... should have editionIntroData$', waitForAsync(() => { - expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolved(); - expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolvedTo(expectedEditionIntroData); - })); - describe('VIEW', () => { it('... should contain one div.awg-edition-intro-view', () => { // Div debug element getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); }); - it('... should contain as many intro paragraph elements in div.awg-edition-intro-view as content items in intro data', () => { + it('... should contain one div.row in div.awg-edition-intro-view', () => { // Div debug element const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length - ); + getAndExpectDebugElementByCss(divDes[0], 'div.row', 1, 1); }); - it('... should have one anchor in first paragraph, and 3 in the second one', () => { - // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length - ); + describe('... if intro data is given', () => { + it('... should contain one EditionIntroContentComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroContentStubComponent, 1, 1); + })); - getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); - getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); - }); + it('... should pass down `introBlockContent` and `notesLabel` to EditionIntroContentComponent', waitForAsync(() => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 + ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; - it('... should contain as many note paragraphs in div.awg-edition-intro-view as note items in intro data', () => { - // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + expectToEqual( + editionIntroContentCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual(editionIntroContentCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); + })); - getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-note', - 0, // TODO: expectedEditionIntroData.intro[0].notes.length, - 0 // TODO: expectedEditionIntroData.intro[0].notes.length, - ); - }); + it('... should contain one EditionIntroNavComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroNavStubComponent, 1, 1); + })); - it('... should have each note paragraph embedded in small element', () => { - // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + it('... should pass down `introBlockContent`, `notesLabel` and `currentLanguage` to EditionIntroNavComponent', waitForAsync(() => { + const editionIntroNavDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroNavStubComponent, + 1, + 1 + ); + const editionIntroNavCmp = editionIntroNavDes[0].injector.get( + EditionIntroNavStubComponent + ) as EditionIntroNavStubComponent; - getAndExpectDebugElementByCss( - divDes[0], - 'small p.awg-edition-intro-note', - 0, // TODO: expectedEditionIntroData.intro[0].notes.length, - 0 // TODO: expectedEditionIntroData.intro[0].notes.length, - ); + expectToEqual( + editionIntroNavCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual(editionIntroNavCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); + expectToEqual(editionIntroNavCmp.currentLanguage, expectedCurrentLaguage); + })); }); - it('... should have one anchor in note paragraph', () => { - // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + describe('... if intro data is empty', () => { + it('... should contain one EditionIntroEmptyComponent (stubbed)', waitForAsync(() => { + // Simulate the parent setting an empty content array + component.editionIntroData$ = observableOf(expectedEditionIntroComplexData); + fixture.detectChanges(); - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-note', - 0, // TODO: expectedEditionIntroData.intro[0].notes.length, - 0 // TODO: expectedEditionIntroData.intro[0].notes.length, - ); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroEmptyStubComponent, 1, 1); + })); - getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); - }); + it('... should pass down `editionComplex` and `editionLabel` to EditionIntroEmptyComponent', waitForAsync(() => { + // Simulate the parent setting an empty content array + component.editionIntroData$ = observableOf(expectedEditionIntroComplexData); + fixture.detectChanges(); - it('... should contain one horizontal line and header for notes ', () => { - // Div debug element - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - - getAndExpectDebugElementByCss(divDes[0], 'hr', 1, 1); - const headerDe = getAndExpectDebugElementByCss(divDes[0], 'h5', 1, 1); - const headerEl = headerDe[0].nativeElement; + const editionIntroEmptyDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroEmptyStubComponent, + 1, + 1 + ); + const editionIntroEmptyCmp = editionIntroEmptyDes[0].injector.get( + EditionIntroEmptyStubComponent + ) as EditionIntroEmptyStubComponent; - expectToBe(headerEl.textContent.trim(), 'Anmerkungen'); + expectToEqual(editionIntroEmptyCmp.editionComplex, expectedEditionComplex); + expectToEqual(editionIntroEmptyCmp.editionLabel, expectedEditionRouteConstants.EDITION.short); + })); }); - it('... should contain a placeholder if content of intro data is empty', waitForAsync(() => { - // Simulate the parent setting an empty content array - component.editionIntroData$ = observableOf(expectedEditionIntroEmptyData); - detectChangesOnPush(fixture); - - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - const pDes = getAndExpectDebugElementByCss(divDes[0], 'p.awg-edition-intro-empty', 1, 1); - - getAndExpectDebugElementByCss(pDes[0], 'small.text-muted', 1, 1); - })); - - it('... should display placeholder in paragraph', waitForAsync(() => { - // Simulate the parent setting an empty content array - component.editionIntroData$ = observableOf(expectedEditionIntroEmptyData); - detectChangesOnPush(fixture); - - const pDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-intro-view > p.awg-edition-intro-empty', - 1, - 1 - ); - const pEl = pDes[0].nativeElement; - - // Create intro placeholder - const fullComplexSpan = mockDocument.createElement('span'); - fullComplexSpan.innerHTML = expectedEditionComplex.complexId.full; - - const shortComplexSpan = mockDocument.createElement('span'); - shortComplexSpan.innerHTML = expectedEditionComplex.complexId.short; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const series = expectedEditionComplex.pubStatement.series.short; - const section = expectedEditionComplex.pubStatement.section.short; - - const introPlaceholder = `[Die Einleitung zum Editionskomplex ${fullComplexSpan.textContent} erscheint im Zusammenhang der vollständigen Edition von ${shortComplexSpan.textContent} in ${awg} ${series}/${section}.]`; - - expectToBe(pEl.textContent.trim(), introPlaceholder); - })); - describe('on error', () => { const expectedError = { status: 404, statusText: 'got Error' }; beforeEach(waitForAsync(() => { // Spy on editionDataService to return an error - editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( - observableThrowError(() => expectedError) - ); + fetchAndFilterIntroDataSpy.and.returnValue(observableThrowError(() => expectedError)); component.getEditionIntroData(); - detectChangesOnPush(fixture); + fixture.detectChanges(); })); it('... should not contain intro view, but one ErrorAlertComponent (stubbed)', waitForAsync(() => { @@ -442,7 +492,7 @@ fdescribe('IntroComponent (DONE)', () => { it('... editionIntroData$ is EMPTY', () => { // Mock empty observable component.editionIntroData$ = EMPTY; - detectChangesOnPush(fixture); + fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); @@ -452,7 +502,7 @@ fdescribe('IntroComponent (DONE)', () => { it('... editionIntroData$ is undefined', () => { // Mock undefined response component.editionIntroData$ = observableOf(undefined); - detectChangesOnPush(fixture); + fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); @@ -462,7 +512,7 @@ fdescribe('IntroComponent (DONE)', () => { it('... editionIntroData$ is null', () => { // Mock null response component.editionIntroData$ = observableOf(null); - detectChangesOnPush(fixture); + fixture.detectChanges(); getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); getAndExpectDebugElementByDirective(compDe, ErrorAlertStubComponent, 0, 0); @@ -477,229 +527,421 @@ fdescribe('IntroComponent (DONE)', () => { expect(component.getEditionIntroData).toBeDefined(); }); - it('... should have been called', () => { - expectSpyCall(getEditionIntroDataSpy, 1); + it('... should trigger and update `isIntroView = true` in EditionService', () => { + expectSpyCall(editionServiceUpdateIsIntroViewSpy, 1, true); }); - it('... should have got `editionComplex` from editionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should trigger `getSelectedEditionSeries()` method from EditionService', () => { + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); - expectToEqual(component.editionComplex, expectedEditionComplex); + component.getEditionIntroData(); + + expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 2); }); - it('... should have got editionIntroData from editionDataService', () => { - expectSpyCall(editionDataServiceGetEditionComplexIntroDataSpy, 1); + it('... should trigger `getSelectedEditionSection()` method from EditionService', () => { + expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + + component.getEditionIntroData(); + + expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 2); }); - it('... should return empty observable and set errorObject if switchMap fails', waitForAsync(() => { - const expectedError = { status: 404, statusText: 'error' }; - // Spy on editionDataService to return an error - editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( - observableThrowError(() => expectedError) - ); + it('... should trigger `getSelectedEditionComplex()` method from EditionService', () => { + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); - // Init new switchMap component.getEditionIntroData(); - detectChangesOnPush(fixture); - expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejected(); - expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejectedWithError(EmptyError); + expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + }); - expectToEqual(component.errorObject, expectedError); - })); - }); + describe('... without given complex', () => { + beforeEach(fakeAsync(() => { + // Simulate the services returning the observable properties + editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + + tick(); + + component.getEditionIntroData(); + fixture.detectChanges(); + })); + + it('... should have full editionIntroData$', waitForAsync(() => { + expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolved(); + expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolvedTo(expectedEditionIntroData); + })); + + it('... should not have editionComplex', () => { + expect(component.editionComplex).toBeUndefined(); + }); - describe('#navigateToIntroFragment()', () => { - it('... should have a method `navigateToIntroFragment`', () => { - expect(component.navigateToIntroFragment).toBeDefined(); + it('... should have triggered `_fetchAndFilterIntroData()` method with series, section and complex=null', () => { + expectSpyCall(fetchAndFilterIntroDataSpy, 4, [ + expectedSelectedEditionSeries.series.route, + expectedSelectedEditionSection.section.route, + null, + ]); + }); }); - it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + describe('... with given complex', () => { + it('... should have filtered editionIntroData$', waitForAsync(() => { + expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolved(); + expectAsync(lastValueFrom(component.editionIntroData$)).toBeResolvedTo( + expectedEditionIntroFilteredData + ); + })); - // Find paragraphs - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length - ); + it('... should have set editionComplex', () => { + expectToEqual(component.editionComplex, expectedEditionComplex); + }); - // Find anchor in second paragraph - const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); + it('... should have triggered `_fetchAndFilterIntroData()` method with series, section, and complex', () => { + expectSpyCall(fetchAndFilterIntroDataSpy, 2, [ + expectedSelectedEditionSeries.series.route, + expectedSelectedEditionSection.section.route, + expectedEditionComplex, + ]); + }); + }); - // CLick on anchor (with navigateToIntroFragment call) - clickAndAwaitChanges(anchorDes[2], fixture); + describe('... without series or section (EMPTY)', () => { + describe('... should have editionIntroData$ = EMPTY if', () => { + it('... no series is given', fakeAsync(() => { + // Simulate the services returning the observable properties + editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); + editionServiceGetSelectedEditionSectionSpy.and.returnValue( + observableOf(expectedSelectedEditionSection) + ); + editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + + component.getEditionIntroData(); + tick(); + + component.editionIntroData$.pipe(isEmpty()).subscribe({ + next: isEmptyData => { + expectToBe(isEmptyData, true); + }, + error: err => { + fail(`Observable emitted an error: ${err}`); + }, + }); + })); + + it('... no section is given', fakeAsync(() => { + // Simulate the services returning the observable properties + editionServiceGetSelectedEditionSeriesSpy.and.returnValue( + observableOf(expectedSelectedEditionSeries) + ); + editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); + editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + + component.getEditionIntroData(); + tick(); + + component.editionIntroData$.pipe(isEmpty()).subscribe({ + next: isEmptyData => { + expectToBe(isEmptyData, true); + }, + error: err => { + fail(`Observable emitted an error: ${err}`); + }, + }); + })); + + it('... no series and no section are given', fakeAsync(() => { + // Simulate the services returning the observable properties + editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); + editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); + editionServiceGetSelectedEditionComplexSpy.and.returnValue( + observableOf(expectedEditionComplex) + ); - expectSpyCall(navigateToIntroFragmentSpy, 1, { - complexId: expectedComplexId, - fragmentId: expectedIntroFragment, + component.getEditionIntroData(); + tick(); + + component.editionIntroData$.pipe(isEmpty()).subscribe({ + next: isEmptyData => { + expectToBe(isEmptyData, true); + }, + error: err => { + fail(`Observable emitted an error: ${err}`); + }, + }); + })); }); - })); + }); + + describe('... on error', () => { + it('... should return empty observable and set errorObject if switchMap fails', fakeAsync(() => { + const expectedError = { status: 404, statusText: 'error' }; + // Spy on switchMap method to return an error + fetchAndFilterIntroDataSpy.and.returnValue(observableThrowError(() => expectedError)); + + component.getEditionIntroData(); + tick(); + + expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejected(); + expectAsync(lastValueFrom(component.editionIntroData$)).toBeRejectedWithError(EmptyError); + + expectToEqual(component.errorObject, expectedError); + })); + }); + }); + + describe('#onIntroFragmentNavigate()', () => { + it('... should have a method `onIntroFragmentNavigate`', () => { + expect(component.onIntroFragmentNavigate).toBeDefined(); + }); + + it('... should trigger on event from EditionIntroContentComponent', () => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 + ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; - it('... should call `_navigateWithComplexId()` method with correct parameters', () => { - expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedIntroIds = { complexId: expectedComplexId, fragmentId: expectedIntroFragment }; - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; + editionIntroContentCmp.navigateToIntroFragmentRequest.emit(expectedIntroIds); + + expectSpyCall(onIntroFragmentNavigateSpy, 1, expectedIntroIds); + }); + + it('... should navigate (to same page) with correct parameters', () => { + expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); + const expectedIntroIds = { complexId: expectedComplexId, fragmentId: expectedIntroFragment }; const expectedNavigationExtras = { fragment: expectedIntroIds.fragmentId, }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - expectedIntroIds.complexId, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); - describe('... should call `_navigateWithComplexId()` method with empty fragment id if', () => { + describe('... should navigate (to same page) with empty fragment id if', () => { it('... fragment id is undefined', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedIntroIds = { complexId: expectedComplexId, fragmentId: undefined }; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - expectedIntroIds.complexId, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); it('... fragment id is null', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedIntroIds = { complexId: expectedComplexId, fragmentId: null }; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - expectedIntroIds.complexId, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); it('... fragment id is empty string', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedIntroIds = { complexId: expectedComplexId, fragmentId: '' }; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - expectedIntroIds.complexId, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); }); - describe('... should call `_navigateWithComplexId()` method with undefined complex id if', () => { + describe('... should navigate (to same page) with undefined complex id if', () => { it('... introIds are undefined', () => { const expectedIntroIds = undefined; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - undefined, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); it('... introIds are null', () => { const expectedIntroIds = null; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - undefined, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); it('... fragment id is empty string', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedIntroIds = { complexId: expectedComplexId, fragmentId: '' }; - - const expectedIntroRoute = expectedEditionRouteConstants.EDITION_INTRO.route; const expectedNavigationExtras = { fragment: '', }; - component.navigateToIntroFragment(expectedIntroIds); - detectChangesOnPush(fixture); + component.onIntroFragmentNavigate(expectedIntroIds); + fixture.detectChanges(); - expectSpyCall(navigateWithComplexIdSpy, 1, [ - expectedIntroIds.complexId, - expectedIntroRoute, - expectedNavigationExtras, - ]); + expectSpyCall(navigationSpy, 1, [[], expectedNavigationExtras]); }); }); }); - describe('#navigateToReportFragment()', () => { - it('... should have a method `navigateToReportFragment`', () => { - expect(component.navigateToReportFragment).toBeDefined(); + describe('#onLanguageSet()', () => { + it('... should have a method `onLanguageSet`', () => { + expect(component.onLanguageSet).toBeDefined(); }); - it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + it('... should trigger on event from EditionIntroNavComponent', () => { + const editionIntroNavDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroNavStubComponent, + 1, + 1 + ); + const editionIntroNavCmp = editionIntroNavDes[0].injector.get( + EditionIntroNavStubComponent + ) as EditionIntroNavStubComponent; + + editionIntroNavCmp.languageChangeRequest.emit(expectedCurrentLaguage); + + expectSpyCall(onLanguageSetSpy, 1, expectedCurrentLaguage); + }); + + it('... should set `currentLanguage` to the given language', () => { + component.onLanguageSet(expectedCurrentLaguage); + fixture.detectChanges(); + + expectToBe(component.currentLanguage, expectedCurrentLaguage); + + const newLanguage = 1; - // Find paragraphs - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length + component.onLanguageSet(newLanguage); + + expect(component.currentLanguage).toBe(newLanguage); + }); + + it('... should not change `currentLanguage` if the same language is passed', () => { + const initialLanguage = component.currentLanguage; + + component.onLanguageSet(initialLanguage); + + expect(component.currentLanguage).toBe(initialLanguage); + }); + + it('... should change `currentLanguage` if a different language is passed', () => { + const initialLanguage = component.currentLanguage; + const newLanguage = initialLanguage === 0 ? 1 : 0; + + component.onLanguageSet(newLanguage); + + expect(component.currentLanguage).not.toBe(initialLanguage); + + expect(component.currentLanguage).toBe(newLanguage); + }); + }); + + describe('#onModalOpen()', () => { + it('... should have a method `onModalOpen`', () => { + expect(component.onModalOpen).toBeDefined(); + }); + + it('... should trigger on event from EditionIntroContentComponent', () => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; + + editionIntroContentCmp.openModalRequest.emit(expectedModalSnippet); + + expectSpyCall(onModalOpenSpy, 1, expectedModalSnippet); + }); + + it('... should open modal with given id', () => { + component.onModalOpen(expectedModalSnippet); + fixture.detectChanges(); + + expectSpyCall(onModalOpenSpy, 1, expectedModalSnippet); + expectSpyCall(openModalSpy, 1, expectedModalSnippet); + + const otherSnippet = 'otherSnippet'; + component.onModalOpen(otherSnippet); + fixture.detectChanges(); - // Find anchor in first paragraph - const anchorDes = getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); + expectSpyCall(onModalOpenSpy, 2, otherSnippet); + expectSpyCall(openModalSpy, 2, otherSnippet); + }); - // CLick on anchor (with navigateToReportFragment call) - clickAndAwaitChanges(anchorDes[0], fixture); + describe('... should not do anything if ', () => { + it('... id is undefined', () => { + component.onModalOpen(undefined); + + expectSpyCall(onModalOpenSpy, 1); + expectSpyCall(openModalSpy, 0); + }); + + it('... id is null', () => { + component.onModalOpen(null); - expectSpyCall(navigateToReportFragmentSpy, 1, { - complexId: expectedComplexId, - fragmentId: expectedReportFragment, + expectSpyCall(onModalOpenSpy, 1); + expectSpyCall(openModalSpy, 0); }); - })); + + it('... id is empty string', () => { + component.onModalOpen(''); + + expectSpyCall(onModalOpenSpy, 1); + expectSpyCall(openModalSpy, 0); + }); + }); + }); + + describe('#onReportFragmentNavigate()', () => { + it('... should have a method `onReportFragmentNavigate`', () => { + expect(component.onReportFragmentNavigate).toBeDefined(); + }); + + it('... should trigger on event from EditionIntroContentComponent', () => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 + ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; + + const expectedReportIds = { complexId: expectedComplexId, fragmentId: expectedReportFragment }; + + editionIntroContentCmp.navigateToReportFragmentRequest.emit(expectedReportIds); + + expectSpyCall(onReportFragmentNavigateSpy, 1, expectedReportIds); + }); it('... should call `_navigateWithComplexId()` method with correct parameters', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); @@ -710,8 +952,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: expectedReportIds.fragmentId, }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -730,8 +972,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -749,8 +991,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -768,8 +1010,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -788,8 +1030,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -806,8 +1048,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -825,8 +1067,8 @@ fdescribe('IntroComponent (DONE)', () => { fragment: '', }; - component.navigateToReportFragment(expectedReportIds); - detectChangesOnPush(fixture); + component.onReportFragmentNavigate(expectedReportIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedReportIds.complexId, @@ -837,95 +1079,29 @@ fdescribe('IntroComponent (DONE)', () => { }); }); - describe('#openModal()', () => { - it('... should have a method `openModal`', () => { - expect(component.openModal).toBeDefined(); + describe('#onSvgSheetSelect()', () => { + it('... should have a method `onSvgSheetSelect`', () => { + expect(component.onSvgSheetSelect).toBeDefined(); }); - it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - - // Find paragraphs - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length + it('... should trigger on event from EditionIntroContentComponent', () => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; - // Find anchors in second paragraph - const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); - - // CLick on anchor (with openModal call) - clickAndAwaitChanges(anchorDes[1], fixture); - - expectSpyCall(componentOpenModalSpy, 1, expectedModalSnippet); - })); - - it('... should open modal with given id', () => { - component.openModal(expectedModalSnippet); - detectChangesOnPush(fixture); - - expectSpyCall(componentOpenModalSpy, 1, expectedModalSnippet); - expectSpyCall(modalOpenSpy, 1, expectedModalSnippet); - - const otherSnippet = 'otherSnippet'; - component.openModal(otherSnippet); - detectChangesOnPush(fixture); - - expectSpyCall(componentOpenModalSpy, 2, otherSnippet); - expectSpyCall(modalOpenSpy, 2, otherSnippet); - }); - - describe('... should not do anything if ', () => { - it('... id is undefined', () => { - component.openModal(undefined); - - expectSpyCall(componentOpenModalSpy, 1); - expectSpyCall(modalOpenSpy, 0); - }); - - it('... id is null', () => { - component.openModal(null); + const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }; - expectSpyCall(componentOpenModalSpy, 1); - expectSpyCall(modalOpenSpy, 0); - }); - - it('... id is empty string', () => { - component.openModal(''); - - expectSpyCall(componentOpenModalSpy, 1); - expectSpyCall(modalOpenSpy, 0); - }); - }); - }); + editionIntroContentCmp.selectSvgSheetRequest.emit(expectedSheetIds); - describe('#selectSvgSheet()', () => { - it('... should have a method `selectSvgSheet`', () => { - expect(component.selectSvgSheet).toBeDefined(); + expectSpyCall(onSvgSheetSelectSpy, 1, expectedSheetIds); }); - it('... should trigger on click', fakeAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - - // Find paragraphs - const pDes = getAndExpectDebugElementByCss( - divDes[0], - 'p.awg-edition-intro-para', - expectedEditionIntroData.intro[0].content.length, - expectedEditionIntroData.intro[0].content.length - ); - - // Find anchors in second paragraph - const anchorDes = getAndExpectDebugElementByCss(pDes[1], 'a', 3, 3); - - // CLick on anchor (with selectSvgSheet call) - clickAndAwaitChanges(anchorDes[0], fixture); - - expectSpyCall(selectSvgSheetSpy, 1, { complexId: expectedComplexId, sheetId: expectedSvgSheet.id }); - })); - it('... should call `_navigateWithComplexId()` method with correct parameters', () => { expectedComplexId = expectedEditionComplex.complexId.route.replace('/', ''); const expectedSheetIds = { complexId: expectedComplexId, sheetId: expectedReportFragment }; @@ -935,8 +1111,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: expectedSheetIds.sheetId }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -955,8 +1131,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -974,8 +1150,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -993,8 +1169,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1013,8 +1189,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1031,8 +1207,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1050,8 +1226,8 @@ fdescribe('IntroComponent (DONE)', () => { queryParams: { id: '' }, }; - component.selectSvgSheet(expectedSheetIds); - detectChangesOnPush(fixture); + component.onSvgSheetSelect(expectedSheetIds); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedSheetIds.complexId, @@ -1062,6 +1238,302 @@ fdescribe('IntroComponent (DONE)', () => { }); }); + describe('#_fetchAndFilterIntroData()', () => { + it('... should have a method `_fetchAndFilterIntroData`', () => { + expect((component as any)._fetchAndFilterIntroData).toBeDefined(); + }); + + describe('... without given complex', () => { + it('... should trigger `getEditionSectionIntroData()` method from EditionDataService with correct parameters', () => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + + expectSpyCall(editionDataServiceGetEditionSectionIntroDataSpy, 2); + + (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, null); + + expectSpyCall(editionDataServiceGetEditionSectionIntroDataSpy, 3, [seriesRoute, sectionRoute]); + }); + + it('... should return the correct edition intro data for a given series and section', done => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + + const result$ = (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, null); + + result$.subscribe({ + next: (data: Observable) => { + expectToEqual(data, expectedEditionIntroData); + done(); + }, + error: (err: any) => { + fail(`Observable emitted an error: ${err}`); + done(); + }, + }); + }); + }); + + describe('... with given complex', () => { + beforeEach(() => { + editionDataServiceGetEditionSectionIntroDataSpy.and.returnValue( + observableOf(expectedEditionIntroData) + ); + editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( + observableOf(expectedEditionIntroComplexData) + ); + }); + + it('... should trigger `getEditionSectionIntroData()` method from EditionDataService with correct parameters', () => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + const complex = expectedEditionComplex; + + expectSpyCall(editionDataServiceGetEditionSectionIntroDataSpy, 2); + + (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, complex); + + expectSpyCall(editionDataServiceGetEditionSectionIntroDataSpy, 3, [seriesRoute, sectionRoute]); + }); + + it('... should set `editionComplex`', done => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + const complex = expectedEditionComplex; + + const result$ = (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, complex); + + result$.subscribe({ + next: (_data: Observable) => { + expectToEqual(component.editionComplex, complex); + done(); + }, + error: (err: any) => { + fail(`Observable emitted an error: ${err}`); + done(); + }, + }); + }); + + it('... should trigger `getEditionComplexIntroData()` method from EditionDataService with complex', done => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + const complex = expectedEditionComplex; + + expectSpyCall(editionDataServiceGetEditionComplexIntroDataSpy, 1, complex); + + const result$ = (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, complex); + + result$.subscribe({ + next: (_data: Observable) => { + expectSpyCall(editionDataServiceGetEditionComplexIntroDataSpy, 2, complex); + done(); + }, + error: (err: any) => { + fail(`Observable emitted an error: ${err}`); + done(); + }, + }); + }); + + it('... should trigger `_filterSectionIntroDataById()` method with correct parameters', done => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + const complex = expectedEditionComplex; + const expectedBlockId = expectedEditionIntroComplexData.intro[0].id; + + const filterSectionIntroDataByIdSpy = spyOn( + component as any, + '_filterSectionIntroDataById' + ).and.callThrough(); + + const result$ = (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, complex); + + result$.subscribe({ + next: (_data: Observable) => { + expectSpyCall(filterSectionIntroDataByIdSpy, 1, [ + expectedEditionIntroData, + expectedBlockId, + ]); + done(); + }, + error: (err: any) => { + fail(`Observable emitted an error: ${err}`); + done(); + }, + }); + }); + + it('... should return the correct fltered edition intro data for a given series, section and complex', done => { + const seriesRoute = expectedSelectedEditionSeries.series.route; + const sectionRoute = expectedSelectedEditionSection.section.route; + const complex = expectedEditionComplex; + + const result$ = (component as any)._fetchAndFilterIntroData(seriesRoute, sectionRoute, complex); + + result$.subscribe({ + next: (data: Observable) => { + expectToEqual(data, expectedEditionIntroFilteredData); + done(); + }, + error: (err: any) => { + fail(`Observable emitted an error: ${err}`); + done(); + }, + }); + }); + }); + }); + + describe('#_filterSectionIntroDataById()', () => { + it('... should have a method `_filterSectionIntroDataById`', () => { + expect((component as any)._filterSectionIntroDataById).toBeDefined(); + }); + + it('... should return the correct section intro data for a given block id', () => { + const blockId = 'test_block_id_2'; + const expectedBlock = expectedEditionIntroData.intro[0].content.find( + block => block.blockId === blockId + ); + + const result = (component as any)._filterSectionIntroDataById(expectedEditionIntroData, blockId); + + expect(result).toBeDefined(); + expect(result.intro[0]).toBeDefined(); + expectToBe(result.intro[0].id, expectedEditionIntroData.intro[0].id); + expectToEqual(result.intro[0].content, [expectedBlock]); + }); + + describe('... should return an empty content array if', () => { + it('... no block id is given', () => { + const result = (component as any)._filterSectionIntroDataById(expectedEditionIntroData, undefined); + + expect(result).toBeDefined(); + expect(result.intro[0]).toBeDefined(); + expectToBe(result.intro[0].id, expectedEditionIntroData.intro[0].id); + expectToEqual(result.intro[0].content, []); + }); + + it('... no intro data section is found for given block id', () => { + const blockId = 'notExistingId'; + const result = (component as any)._filterSectionIntroDataById(expectedEditionIntroData, blockId); + + expect(result).toBeDefined(); + expect(result.intro[0]).toBeDefined(); + expectToBe(result.intro[0].id, expectedEditionIntroData.intro[0].id); + expectToEqual(result.intro[0].content, []); + }); + }); + }); + + describe('#__initScrollListener()', () => { + it('... should have a method `_initScrollListener`', () => { + expect((component as any)._initScrollListener).toBeDefined(); + }); + + it('.... should trigger `_onIntroScroll` method when window is scrolled', () => { + const onIntroScrollSpy = spyOn(component as any, '_onIntroScroll'); + + (component as any)._initScrollListener(); + + window.dispatchEvent(new Event('scroll')); + + expect(onIntroScrollSpy).toHaveBeenCalled(); + }); + }); + + describe('#_onIntroScroll()', () => { + let intro: HTMLDivElement; + let navLink1: HTMLAnchorElement; + let navLink2: HTMLAnchorElement; + + beforeEach(() => { + // Set up the DOM + intro = mockDocument.createElement('div'); + intro.classList.add('awg-edition-intro'); + mockDocument.body.appendChild(intro); + + const introSection1 = mockDocument.createElement('div'); + introSection1.classList.add('awg-edition-intro-section'); + introSection1.id = 'section1'; + introSection1.style.position = 'absolute'; // Needed to get a fixed scroll target + introSection1.style.top = '100px'; + introSection1.style.height = '100px'; + intro.appendChild(introSection1); + + const introSection2 = mockDocument.createElement('div'); + introSection2.classList.add('awg-edition-intro-section'); + introSection2.id = 'section2'; + introSection2.style.position = 'absolute'; // Needed to get a fixed scroll target + introSection2.style.top = '300px'; + introSection2.style.height = '100px'; + intro.appendChild(introSection2); + + navLink1 = mockDocument.createElement('a'); + navLink1.classList.add('awg-edition-intro-nav-link'); + navLink1.href = '#section1'; + intro.appendChild(navLink1); + + navLink2 = mockDocument.createElement('a'); + navLink2.classList.add('awg-edition-intro-nav-link'); + navLink2.href = '#section2'; + intro.appendChild(navLink2); + + const screenSizeBy2 = mockDocument.documentElement.clientHeight * 2; + mockDocument.body.style.minHeight = screenSizeBy2 + 'px'; + }); + + it('... should have a method `_onIntroScroll`', () => { + expect((component as any)._onIntroScroll).toBeDefined(); + }); + + it('... should update nav link classes based on scroll position (document.documentElement.scrollTop)', () => { + // Spy on window.scrollTo + spyOn(window, 'scrollTo').and.callFake((...args: any[]) => { + const y: number = args.length === 1 && typeof args[0] === 'object' ? args[0].top : args[1]; + // Mock the scroll position + Object.defineProperty(mockDocument.documentElement, 'scrollTop', { value: y, writable: true }); + }); + + // Scroll to a specific position + window.scrollTo(0, 150); + window.dispatchEvent(new Event('scroll')); + fixture.detectChanges(); + + (component as any)._onIntroScroll(new Event('scroll')); + + expectToBe(navLink1.classList.contains('active'), true); + expectToBe(navLink2.classList.contains('active'), false); + }); + + it('... should update nav link classes based on scroll position (window.scrollY)', () => { + // Spy on window.scrollTo + spyOn(window, 'scrollTo').and.callFake((...args: any[]) => { + const y: number = args.length === 1 && typeof args[0] === 'object' ? args[0].top : args[1]; + // Mock the scroll position + Object.defineProperty(window, 'scrollY', { value: y, writable: true }); + }); + + // Scroll to a specific position + window.scrollTo(0, 150); + window.dispatchEvent(new Event('scroll')); + fixture.detectChanges(); + + (component as any)._onIntroScroll(new Event('scroll')); + + expectToBe(navLink1.classList.contains('active'), true); + expectToBe(navLink2.classList.contains('active'), false); + }); + + afterEach(() => { + // Clean up the DOM + while (intro.firstChild) { + intro.removeChild(intro.firstChild); + } + mockDocument.body.removeChild(intro); + }); + }); + describe('#_navigateWithComplexId()', () => { it('... should have a method `_navigateWithComplexId`', () => { expect((component as any)._navigateWithComplexId).toBeDefined(); @@ -1074,7 +1546,7 @@ fdescribe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(undefined, expectedTargetRoute, expectedNavigationExtras); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1093,7 +1565,7 @@ fdescribe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId(null, expectedTargetRoute, expectedNavigationExtras); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [null, expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -1108,7 +1580,7 @@ fdescribe('IntroComponent (DONE)', () => { const expectedNavigationExtras = { fragment: '' }; (component as any)._navigateWithComplexId('', expectedTargetRoute, expectedNavigationExtras); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, ['', expectedTargetRoute, expectedNavigationExtras]); expectSpyCall(navigationSpy, 1, [ @@ -1127,7 +1599,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedEditionComplex.complexId.route.replace('/', ''), @@ -1152,7 +1624,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1178,7 +1650,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1201,7 +1673,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1226,7 +1698,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1249,7 +1721,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1274,7 +1746,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1297,7 +1769,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ undefined, @@ -1325,7 +1797,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1349,7 +1821,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1375,7 +1847,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1399,7 +1871,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1425,7 +1897,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1449,7 +1921,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedComplexId, @@ -1476,7 +1948,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1499,7 +1971,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1524,7 +1996,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1547,7 +2019,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1572,7 +2044,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, @@ -1595,7 +2067,7 @@ fdescribe('IntroComponent (DONE)', () => { expectedTargetRoute, expectedNavigationExtras ); - detectChangesOnPush(fixture); + fixture.detectChanges(); expectSpyCall(navigateWithComplexIdSpy, 1, [ expectedNextComplexId, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index d336b1fead..5772907195 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -1,9 +1,8 @@ -import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { NavigationExtras, Router } from '@angular/router'; -import { combineLatest, EMPTY, fromEvent, Observable, of as observableOf } from 'rxjs'; -import { catchError, map, startWith, switchMap, throttleTime } from 'rxjs/operators'; +import { combineLatest, EMPTY, fromEvent, Observable, of as observableOf, Subject } from 'rxjs'; +import { catchError, map, startWith, switchMap, takeUntil, throttleTime } from 'rxjs/operators'; import { UtilityService } from '@awg-core/services'; import { ModalComponent } from '@awg-shared/modal/modal.component'; @@ -21,7 +20,6 @@ import { EditionDataService, EditionService } from '@awg-views/edition-view/serv selector: 'awg-edition-intro', templateUrl: './edition-intro.component.html', styleUrls: ['./edition-intro.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, }) export class EditionIntroComponent implements OnDestroy, OnInit { /** @@ -39,11 +37,11 @@ export class EditionIntroComponent implements OnDestroy, OnInit { currentLanguage = 0; /** - * Public variable: notesLables. + * Public variable: notesLabels. * * It keeps the labels for the notes in the edition intro. */ - notesLables: Map = new Map([ + notesLabels: Map = new Map([ [0, 'Anmerkungen'], [1, 'Notes'], ]); @@ -70,9 +68,11 @@ export class EditionIntroComponent implements OnDestroy, OnInit { errorObject = null; /** - * Self-referring variable needed for CompileHtml library. + * Private variable: _destroyed$. + * + * Subject to emit a truthy value in the ngOnDestroy lifecycle hook. */ - ref: EditionIntroComponent; + private _destroyed$: Subject = new Subject(); /** * Constructor of the EditionIntroComponent. @@ -91,8 +91,6 @@ export class EditionIntroComponent implements OnDestroy, OnInit { private router: Router, public utils: UtilityService ) { - this.ref = this; - this._initScrollListener(); } @@ -126,6 +124,9 @@ export class EditionIntroComponent implements OnDestroy, OnInit { ngOnDestroy() { this.editionService.clearIsIntroView(); this.editionIntroData$ = null; + + this._destroyed$.next(true); + this._destroyed$.complete(); } /** @@ -164,7 +165,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { * * It navigates to the '/intro/' route with the given complexId and fragmentId. * - * @param {string} fragmentId The given fragment id. + * @param {object} introIds The given intro ids as { complexId: string, fragmentId: string }. * @returns {void} Navigates to the edition intro fragment. */ onIntroFragmentNavigate(introIds: { complexId: string; fragmentId: string }): void { @@ -175,19 +176,15 @@ export class EditionIntroComponent implements OnDestroy, OnInit { } /** - * Public method: onReportFragmentNavigate. + * Public method: onLanguageSet. * - * It navigates to the '/report/' route with the given complexId and fragmentId. + * It sets the current language of the edition intro. * - * @param {object} reportIds The given report ids as { complexId: string, fragmentId: string }. - * @returns {void} Navigates to the edition report fragment. + * @param {number} language The given language number. + * @returns {void} Sets the current language. */ - onReportFragmentNavigate(reportIds: { complexId: string; fragmentId: string }): void { - const reportRoute = this.editionRouteConstants.EDITION_REPORT.route; - const navigationExtras: NavigationExtras = { - fragment: reportIds?.fragmentId ?? '', - }; - this._navigateWithComplexId(reportIds?.complexId, reportRoute, navigationExtras); + onLanguageSet(language: number): void { + this.currentLanguage = language; } /** @@ -205,6 +202,22 @@ export class EditionIntroComponent implements OnDestroy, OnInit { this.modal.open(id); } + /** + * Public method: onReportFragmentNavigate. + * + * It navigates to the '/report/' route with the given complexId and fragmentId. + * + * @param {object} reportIds The given report ids as { complexId: string, fragmentId: string }. + * @returns {void} Navigates to the edition report fragment. + */ + onReportFragmentNavigate(reportIds: { complexId: string; fragmentId: string }): void { + const reportRoute = this.editionRouteConstants.EDITION_REPORT.route; + const navigationExtras: NavigationExtras = { + fragment: reportIds?.fragmentId ?? '', + }; + this._navigateWithComplexId(reportIds?.complexId, reportRoute, navigationExtras); + } + /** * Public method: onSvgSheetSelect. * @@ -224,18 +237,6 @@ export class EditionIntroComponent implements OnDestroy, OnInit { this._navigateWithComplexId(sheetIds?.complexId, sheetRoute, navigationExtras); } - /** - * Public method: onLanguageSet. - * - * It sets the current language of the edition intro. - * - * @param {number} language The given language number. - * @returns {void} Sets the current language. - */ - onLanguageSet(language: number): void { - this.currentLanguage = language; - } - /** * Private method: _fetchAndFilterIntroData. * @@ -263,6 +264,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { }) ); } else { + this.editionComplex = undefined; return observableOf(sectionIntroData); } }) @@ -297,7 +299,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { */ private _initScrollListener(): void { fromEvent(window, 'scroll') - .pipe(throttleTime(200), takeUntilDestroyed()) + .pipe(throttleTime(200), takeUntil(this._destroyed$)) .subscribe(event => this._onIntroScroll(event)); } @@ -323,34 +325,28 @@ export class EditionIntroComponent implements OnDestroy, OnInit { * It handles the scroll event on the intro window * and highlights the corresponding section in the intro navigation. * - * @param {Event} event The given event. + * @param {Event} _event The given scroll event (not used). * @returns {void} Highlights the corresponding section in the intro navigation * on window scroll. */ - private _onIntroScroll(event: Event): void { + private _onIntroScroll(_event: Event): void { const scrollPosition = window.scrollY || document.documentElement.scrollTop; const introSections: NodeListOf = document.querySelectorAll('.awg-edition-intro-section'); const introNavLinks: NodeListOf = document.querySelectorAll('a.awg-edition-intro-nav-link'); - let activeIntroSectionFound = false; + let activeIntroSectionId: string | null = null; introSections.forEach((introSection: HTMLElement) => { const introSectionTop = introSection.offsetTop - 10; const introSectionBottom = introSection.offsetTop + introSection.offsetHeight; - if (!activeIntroSectionFound && introSectionTop <= scrollPosition && introSectionBottom > scrollPosition) { - introNavLinks.forEach((navLink: HTMLAnchorElement) => { - navLink.classList.toggle('active', navLink.hash.includes(introSection.id)); - - activeIntroSectionFound = true; - }); + if (introSectionTop <= scrollPosition && introSectionBottom > scrollPosition) { + activeIntroSectionId = introSection.id; } }); - if (!activeIntroSectionFound) { - introNavLinks.forEach((navLink: HTMLAnchorElement) => { - navLink.classList.remove('active'); - }); - } + introNavLinks.forEach((navLink: HTMLAnchorElement) => { + navLink.classList.toggle('active', navLink.hash.includes(activeIntroSectionId)); + }); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts index fe00710003..1e926b6ebe 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts @@ -1,5 +1,5 @@ import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/core'; -import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { lastValueFrom, Observable, of as observableOf, ReplaySubject } from 'rxjs'; import Spy = jasmine.Spy; @@ -229,7 +229,7 @@ describe('EditionPrefaceComponent (DONE)', () => { expect(component.setLanguage).toBeDefined(); }); - it('... should trigger on event from LanguageSwitcherComponent', fakeAsync(() => { + it('... should trigger on event from LanguageSwitcherComponent', () => { const switcherDes = getAndExpectDebugElementByDirective(compDe, LanguageSwitcherStubComponent, 1, 1); const switcherCmp = switcherDes[0].injector.get( LanguageSwitcherStubComponent @@ -244,7 +244,7 @@ describe('EditionPrefaceComponent (DONE)', () => { switcherCmp.languageChangeRequest.emit(1); expectSpyCall(setLanguageSpy, 2, 1); - })); + }); it('... should set the currentLanguage to 0 when called with 0', () => { component.setLanguage(0); diff --git a/src/testing/mock-data/mockEditionData.ts b/src/testing/mock-data/mockEditionData.ts index 890d2d22bf..bb30b6b5a0 100644 --- a/src/testing/mock-data/mockEditionData.ts +++ b/src/testing/mock-data/mockEditionData.ts @@ -237,27 +237,60 @@ export const mockEditionData = { mockIntroData: { intro: [ { - id: 'op12', + id: 'test_intro', content: [ - "Die Skizzen in A enthalten datierte Verlaufsskizzen zu allen vier Liedern.", - "In Test Sk1 werden T. [11]–[12] aus Test Sk1 neu skizziert.80", + { + blockId: 'test_block_id_1', + blockHeader: 'Test block header 1', + blockContent: [ + "Die Skizzen in A enthalten datierte Verlaufsskizzen zu allen vier Liedern.", + "In Test Sk1 werden T. [11]–[12] aus Test Sk1 neu skizziert.80", + ], + blockNotes: [ + "80 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", + ], + }, + { + blockId: 'test_block_id_2', + blockHeader: 'Test block header 2', + blockContent: ['Test block content 2'], + blockNotes: ['Test block notes 2'], + }, ], - footnotes: [ - "80 | Webern an Schönberg, 21. Januar 1915 (US-Wc [zitiert nach Digitalisat in A-Was: ID 18240]).", + }, + ], + }, + + /** + * Test helper data constant: mockIntroFilteredData. + * + * It provides a mocked intro data object with filtered content. + */ + mockIntroFilteredData: { + intro: [ + { + id: 'test_intro', + content: [ + { + blockId: 'test_block_id_2', + blockHeader: 'Test block header 2', + blockContent: ['Test block content 2'], + blockNotes: ['Test block notes 2'], + }, ], }, ], }, /** - * Test helper data constant: mockIntroEmptyData. + * Test helper data constant: mockIntroComplexData. * - * It provides a mocked intro data object with empty content. + * It provides a mocked intro data object of an edition complex. */ - mockIntroEmptyData: { + mockIntroComplexData: { intro: [ { - id: 'op12', + id: 'test_block_id_2', content: [], }, ], From 1de101f3371c41cda476af2dcfab3f2047d4bd17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:57:40 +0000 Subject: [PATCH 142/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.3.1 to 50.4.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.3.1 to 50.4.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.1...v50.4.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 64f7ac62bb..fdf7b30237 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsdoc": "^50.3.1", + "eslint-plugin-jsdoc": "^50.4.0", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 18adfbdf6f..5af4b97469 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3745,14 +3745,14 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.48.0": - version: 0.48.0 - resolution: "@es-joy/jsdoccomment@npm:0.48.0" +"@es-joy/jsdoccomment@npm:~0.49.0": + version: 0.49.0 + resolution: "@es-joy/jsdoccomment@npm:0.49.0" dependencies: comment-parser: "npm:1.4.1" esquery: "npm:^1.6.0" jsdoc-type-pratt-parser: "npm:~4.1.0" - checksum: 10c0/8d87c7c0426fade009c30ab429d4ede53fd253d40b55079c02bdacdaa4c0fe904aaea5e3084cd98052f2bed6b3030c381d84f4a3251b343a71fee6f681a08bee + checksum: 10c0/16717507d557d37e7b59456fedeefbe0a3bc93aa2d9c043d5db91e24e076509b6fcb10ee6fd1dafcb0c5bbe50ae329b45de5b83541cb5994a98c9e862a45641e languageName: node linkType: hard @@ -6698,7 +6698,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.31.0" - eslint-plugin-jsdoc: "npm:^50.3.1" + eslint-plugin-jsdoc: "npm:^50.4.0" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -9413,11 +9413,11 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.3.1": - version: 50.3.1 - resolution: "eslint-plugin-jsdoc@npm:50.3.1" +"eslint-plugin-jsdoc@npm:^50.4.0": + version: 50.4.0 + resolution: "eslint-plugin-jsdoc@npm:50.4.0" dependencies: - "@es-joy/jsdoccomment": "npm:~0.48.0" + "@es-joy/jsdoccomment": "npm:~0.49.0" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" debug: "npm:^4.3.6" @@ -9430,7 +9430,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/b4e8d58f02794917581d74936e2af947aea3b518c4ad670866caa0b3f1f25cfec08414567c19d580a77d84431b2477f0a4075be500bb27b715013c59679f307e + checksum: 10c0/93a1eb93885ef4b15f867d92faa231b9f8ac40915ed09b4212c31aa196f61d762d30bd916151f46aca9a794555895259aa8cc6a07b953d005a40b6ab28fc6046 languageName: node linkType: hard From cb7cdd84ac24a3d3754467adc3f82408ea19643d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:34:36 +0000 Subject: [PATCH 143/213] build(deps-dev): bump jasmine-core from 5.3.0 to 5.4.0 Bumps [jasmine-core](https://github.com/jasmine/jasmine) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/jasmine/jasmine/releases) - [Changelog](https://github.com/jasmine/jasmine/blob/main/RELEASE.md) - [Commits](https://github.com/jasmine/jasmine/compare/v5.3.0...v5.4.0) --- updated-dependencies: - dependency-name: jasmine-core dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fdf7b30237..dc3b144fdb 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", - "jasmine-core": "~5.3.0", + "jasmine-core": "~5.4.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index 5af4b97469..90a7c3a5b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6703,7 +6703,7 @@ __metadata: font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" husky: "npm:^9.1.6" - jasmine-core: "npm:~5.3.0" + jasmine-core: "npm:~5.4.0" json2typescript: "npm:^1.5.1" karma: "npm:~6.4.4" karma-chrome-launcher: "npm:~3.2.0" @@ -11796,10 +11796,10 @@ __metadata: languageName: node linkType: hard -"jasmine-core@npm:~5.3.0": - version: 5.3.0 - resolution: "jasmine-core@npm:5.3.0" - checksum: 10c0/231c8a43bcf8d4bd5cd9bab9ed5b7a895c7febc3ccc8b7e0629e6f78535826d01434b94c6edda312287752b164108bbafb0e69edba40f6905da9e37907eb6cbd +"jasmine-core@npm:~5.4.0": + version: 5.4.0 + resolution: "jasmine-core@npm:5.4.0" + checksum: 10c0/d936de0df50a69bb269c734d5efc73d124c3051037d55609c30fcc146736ae281b1c2d658e7da583eee96a4eb2c240a3b672b70375e51d6c28c5626639eda292 languageName: node linkType: hard From c51506c32a00a7db87b0c62d2cb30a5e4bf22ee6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:24:16 +0000 Subject: [PATCH 144/213] build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.12 to 3.26.13. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/c36620d31ac7c881962c3d9dd939c40ec9434f2b...f779452ac5af1c261dce0346a8f964149f49322b) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 75f59c8b1f..0ea0917315 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 + uses: github/codeql-action/init@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 + uses: github/codeql-action/autobuild@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 + uses: github/codeql-action/analyze@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 6e2676543d..31a2ab9181 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12 + uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 with: sarif_file: results.sarif From 2087eadcbd4f5040e3d21f62c6842076ae384821 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:49:35 +0200 Subject: [PATCH 145/213] feat(assets): add corrections Op4: GH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections Op4: source_GH_corr * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op4/source-description.json | 336 +++++++++++++++++- 1 file changed, 335 insertions(+), 1 deletion(-) diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index 9001f5cd1e..682f699fac 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -1260,7 +1260,341 @@ "measureNumbers": [], "instrumentations": [], "annotations": [], - "contents": [] + "contents": [], + "corrections": [ + { + "id": "source_GH_corr", + "label": "Korrekturen in GH", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Ihr tratet zu dem Herde“ M 142: Textfassung 2." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "Taktanfang", + "comment": "Sehr hinzugefügt vor Langsam ({{ref.getGlyph('[Viertelnote]')}}) mit schwarzer Tinte." + }, + { + "measure": "vor 1", + "system": "Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 2/4 hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "vor 1", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "Crescendogabel hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "1", + "system": "Klav.", + "position": "1.–2. Note", + "comment": "Decrescendogabel hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "2", + "system": "Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 3/4 hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "2
bis 3", + "system": "Klav. u", + "position": "letzte Note
2/8", + "comment": "Unterstimmenschicht: Bogen hinzugefügt mit roter Tinte." + }, + { + "measure": "3
bis 5", + "system": "Klav. u.", + "position": "1/4
6. Note", + "comment": "Oberstimmenschicht: Bogen (siehe Textfassung 1) gestrichen mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav.", + "position": "3.–5. Note", + "comment": "Bögen über und unter dem System hinzugefügt mit roter Tinte." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[a]')}} zu A/c hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "4", + "system": "Ges., Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 2/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[mf]')}} hinzugefügt mit roter Tinte." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "2.–3. Note", + "comment": "Bögen über und unter dem System hinzugefügt mit roter Tinte.
Decrescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "4
bis 5", + "system": "Klav. u.", + "position": "2/4
2/8", + "comment": "Notation wie Textfassung 1 geändert zu Textfassung 2 mit roter Tinte." + }, + { + "measure": "4
bis 5", + "system": "Ges.", + "position": "4/8
1/8", + "comment": "Crescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Ges., Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 4/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "1.–4. Note", + "comment": "Oberstimmenschicht: Decrescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3.–4. Note", + "comment": "Unterstimmenschicht: Crescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "2.–6. Note", + "comment": "Unterstimmenschicht: Bogen hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3/4 bis 6. Note", + "comment": "Oberstimmenschicht: Ligaturbögen zu 6. Note gestrichen,
6. Note gestrichen und korrigiert zu Achtelpause mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "3/4 bis 6. Note", + "comment": "Unterstimmenschicht: Decrescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "6. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} zu A hinzugefügt mit roter Tinte." + }, + { + "measure": "5
bis 8", + "system": "Klav.", + "position": "vorletzte Note
1/4", + "comment": "Bogen (siehe Textfassung 1) in T. 6–8 gestrichen mit roter Tinte." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 2/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "bewegter hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1/4", + "comment": "Arpeggioschlangen hinzugefügt mit roter Tinte." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 3/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu c2 hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "2/4", + "comment": "{{ref.getGlyph('[a]')}} zu G/c hinzugefügt mit roter Tinte." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} zu c2 hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 2/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu G/c hinzugefügt mit roter Tinte." + }, + { + "measure": "8
bis 12", + "system": "Klav. o.", + "position": "2/4
1/8", + "comment": "Bogen (siehe Textfassung 1) gestrichen in T. 9–11." + }, + { + "measure": "10", + "system": "Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 3/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "2/4", + "comment": "express. hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1/4", + "comment": "express. hinzugefügt mit roter Tinte.
Arpeggioschlange hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "1–2/4", + "comment": "Crescendogabel hinzugefügt mit roter Tinte." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "2/4", + "comment": "Arpeggioschlange hinzugefügt mit roter Tinte." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang", + "comment": "Tempo I. über Akkolade hinzugefügt mit roter Tinte. Über Klav. o. I. nach tempo hinzugefügt mit roter Tinte." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "1/8–4/16", + "comment": "Fähnchen (siehe Textfassung 1) überschrieben zu Balken mit roter Tinte." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "3–4/8", + "comment": "Oberstimmenschicht: Ligatur aus zwei zusammengebalkten Achtelnoten a1 (siehe Textfassung 1) geändert zu Viertelnote a1. Unterstimmenschicht: Achtelpause zu 3/8 hinzugefügt mit roter Tinte." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "(4–5/8)", + "comment": "Oberstimmenschicht: Decrescendogabel hinzugefügt mit roter Tinte. Unterstimmenschicht: Ligatur aus 2 Achtelnoten h/d1 (siehe Textfassung 1) geändert zu Viertelnote h/d1 mit roter Tinte." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "6/8", + "comment": "Unterstimmenschicht: Achtelpause hinzugefügt mit roter Tinte." + }, + { + "measure": "12
bis 13", + "system": "Ges.", + "position": "letzte Note
3/8", + "comment": "Bogen von T. 12 1. Note (siehe Textfassung 1) geändert zu Bogen von T. 12 letzte Note mit roter Tinte." + }, + { + "measure": "13", + "system": "", + "position": "Taktanfang", + "comment": "sehr langsam geändert zu sehr ruhig mit roter Tinte." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "", + "comment": "Notation wie Textfassung 1 geändert zu Textfassung 2 mit roter Tinte." + }, + { + "measure": "14
bis 15", + "system": "", + "position": "Taktanfang
Taktende", + "comment": "rit. - - - hinzugefügt mit roter Tinte." + }, + { + "measure": "14", + "system": "Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 2/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "14", + "system": "Klav. o", + "position": "1. Note", + "comment": "{{ref.getGlyph('[b]')}} zu b1, {{ref.getGlyph('[a]')}} zu h/f1 hinzugefügt mit roter Tinte." + }, + { + "measure": "14", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[a]')}} zu g1 hinzugefügt mit roter Tinte." + }, + { + "measure": "14", + "system": "Klav.", + "position": "(3/8)", + "comment": "Ped. hinzugefügt mit roter Tinte." + }, + { + "measure": "15", + "system": "Klav.", + "position": "Taktanfang", + "comment": "Taktartvorzeichnung 3/4 hinzugefügt mit roter Tinte." + }, + { + "measure": "15", + "system": "Klav. u.", + "position": "1.–4. Note", + "comment": "1.–2. Note auf Rasur. 3.–4. Note: D1 gestrichen und geändert zu H mit roter Tinte. Ante correcturam: wie Textfassung 1." + } + ] + } + ] + } + ] } }, { From e638f3585cfdedaa17ba68e5b764240d804cedc1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 15 Oct 2024 15:02:10 +0200 Subject: [PATCH 146/213] refactor(edition): rename EditionIntroEmptyComponent --- .../edition-intro-empty.component.ts | 32 --------------- .../edition-intro-empty/index.ts | 1 - .../edition-intro-placeholder.component.html} | 2 +- .../edition-intro-placeholder.component.scss} | 0 ...ition-intro-placeholder.component.spec.ts} | 20 +++++----- .../edition-intro-placeholder.component.ts | 33 ++++++++++++++++ .../edition-intro-placeholder/index.ts | 1 + .../edition-intro.component.html | 4 +- .../edition-intro.component.spec.ts | 39 +++++++++---------- .../edition-intro/edition-intro.module.ts | 4 +- 10 files changed, 68 insertions(+), 68 deletions(-) delete mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts delete mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts rename src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/{edition-intro-empty/edition-intro-empty.component.html => edition-intro-placeholder/edition-intro-placeholder.component.html} (90%) rename src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/{edition-intro-empty/edition-intro-empty.component.scss => edition-intro-placeholder/edition-intro-placeholder.component.scss} (100%) rename src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/{edition-intro-empty/edition-intro-empty.component.spec.ts => edition-intro-placeholder/edition-intro-placeholder.component.spec.ts} (86%) create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/index.ts diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts deleted file mode 100644 index 7774fdcb60..0000000000 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { EditionComplex } from '@awg-app/views/edition-view/models'; - -/** - * The EditionIntroEmpty component. - * - * It contains the placeholder for an empty intro - * of the edition view of the app. - */ -@Component({ - selector: 'awg-edition-intro-empty', - templateUrl: './edition-intro-empty.component.html', - styleUrls: ['./edition-intro-empty.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, -}) -export class EditionIntroEmptyComponent { - /** - * Input variable: introBlockContent. - * - * It keeps the content blocks of the intro. - */ - @Input() - editionComplex: EditionComplex; - - /** - * Input variable: editionLabel. - * - * It keeps the edition label of the intro. - */ - @Input() - editionLabel: string; -} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts deleted file mode 100644 index da483cc606..0000000000 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './edition-intro-empty.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.html similarity index 90% rename from src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html rename to src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.html index c7eb1bee9c..a405e135cf 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.html @@ -1,4 +1,4 @@ -
+

[Die Einleitung zum Editionskomplex erscheint im Zusammenhang der vollständigen Edition von in diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.scss similarity index 100% rename from src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.scss rename to src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.scss diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.spec.ts similarity index 86% rename from src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts rename to src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.spec.ts index 0a2831bece..8b0d66ddde 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-empty/edition-intro-empty.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.spec.ts @@ -8,11 +8,11 @@ import { expectToBe, expectToEqual, getAndExpectDebugElementByCss } from '@testi import { EditionComplex } from '@awg-views/edition-view/models'; import { EditionComplexesService } from '@awg-views/edition-view/services'; -import { EditionIntroEmptyComponent } from './edition-intro-empty.component'; +import { EditionIntroPlaceholderComponent } from './edition-intro-placeholder.component'; -describe('EditionIntroEmptyComponent (DONE)', () => { - let component: EditionIntroEmptyComponent; - let fixture: ComponentFixture; +describe('EditionIntroPlaceholderComponent (DONE)', () => { + let component: EditionIntroPlaceholderComponent; + let fixture: ComponentFixture; let compDe: DebugElement; let mockDocument: Document; @@ -26,10 +26,10 @@ describe('EditionIntroEmptyComponent (DONE)', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [EditionIntroEmptyComponent], + declarations: [EditionIntroPlaceholderComponent], }).compileComponents(); - fixture = TestBed.createComponent(EditionIntroEmptyComponent); + fixture = TestBed.createComponent(EditionIntroPlaceholderComponent); component = fixture.componentInstance; compDe = fixture.debugElement; @@ -58,12 +58,12 @@ describe('EditionIntroEmptyComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain a `div.awg-edition-intro-empty`', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + it('... should contain a `div.awg-edition-intro-placeholder`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-placeholder', 1, 1); }); it('... should contain a small, text-muted paragraph in div', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-placeholder', 1, 1); const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); const pEl = pDes[0].nativeElement; @@ -93,7 +93,7 @@ describe('EditionIntroEmptyComponent (DONE)', () => { describe('VIEW', () => { it('... should display small, text-muted placeholder in paragraph', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-empty', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-placeholder', 1, 1); const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); const pEl = pDes[0].nativeElement; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.ts new file mode 100644 index 0000000000..a1014b01a7 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/edition-intro-placeholder.component.ts @@ -0,0 +1,33 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { EditionComplex } from '@awg-views/edition-view/models'; + +/** + * The EditionIntroPlaceholder component. + * + * It contains the placeholder for an empty intro + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-intro-placeholder', + templateUrl: './edition-intro-placeholder.component.html', + styleUrls: ['./edition-intro-placeholder.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionIntroPlaceholderComponent { + /** + * Input variable: editionComplex. + * + * It keeps the editionComplex for the intro placeholder. + */ + @Input() + editionComplex: EditionComplex; + + /** + * Input variable: editionLabel. + * + * It keeps the edition label for the intro placeholder. + */ + @Input() + editionLabel: string; +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/index.ts new file mode 100644 index 0000000000..74e7908ba7 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-placeholder/index.ts @@ -0,0 +1 @@ +export * from './edition-intro-placeholder.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 901e3c1e2d..011736ee74 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -24,10 +24,10 @@ [currentLanguage]="currentLanguage" (languageChangeRequest)="onLanguageSet($event)"> } @else { - + [editionLabel]="editionRouteConstants.EDITION.short"> }

diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index df9176e744..1d0867d5b2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -63,14 +63,6 @@ class EditionIntroContentStubComponent { selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); } -@Component({ selector: 'awg-edition-intro-empty', template: '' }) -class EditionIntroEmptyStubComponent { - @Input() - editionComplex: EditionComplex; - @Input() - editionLabel: string; -} - @Component({ selector: 'awg-edition-intro-nav', template: '' }) class EditionIntroNavStubComponent { @Input() @@ -81,6 +73,13 @@ class EditionIntroNavStubComponent { currentLanguage: number; @Output() languageChangeRequest = new EventEmitter(); } +@Component({ selector: 'awg-edition-intro-placeholder', template: '' }) +class EditionIntroPlaceholderStubComponent { + @Input() + editionComplex: EditionComplex; + @Input() + editionLabel: string; +} @Component({ selector: 'awg-error-alert', template: '' }) class ErrorAlertStubComponent { @@ -183,7 +182,7 @@ describe('IntroComponent (DONE)', () => { declarations: [ EditionIntroComponent, EditionIntroContentStubComponent, - EditionIntroEmptyStubComponent, + EditionIntroPlaceholderStubComponent, EditionIntroNavStubComponent, ErrorAlertStubComponent, ModalStubComponent, @@ -331,7 +330,7 @@ describe('IntroComponent (DONE)', () => { it('... should not contain an edition intro empty component (stubbed)', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], EditionIntroEmptyStubComponent, 0, 0); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroPlaceholderStubComponent, 0, 0); }); it('... should not contain an error alert component (stubbed)', () => { @@ -430,32 +429,32 @@ describe('IntroComponent (DONE)', () => { }); describe('... if intro data is empty', () => { - it('... should contain one EditionIntroEmptyComponent (stubbed)', waitForAsync(() => { + it('... should contain one EditionIntroPlaceholderComponent (stubbed)', waitForAsync(() => { // Simulate the parent setting an empty content array component.editionIntroData$ = observableOf(expectedEditionIntroComplexData); fixture.detectChanges(); const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], EditionIntroEmptyStubComponent, 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroPlaceholderStubComponent, 1, 1); })); - it('... should pass down `editionComplex` and `editionLabel` to EditionIntroEmptyComponent', waitForAsync(() => { + it('... should pass down `editionComplex` and `editionLabel` to EditionIntroPlaceholderComponent', waitForAsync(() => { // Simulate the parent setting an empty content array component.editionIntroData$ = observableOf(expectedEditionIntroComplexData); fixture.detectChanges(); - const editionIntroEmptyDes = getAndExpectDebugElementByDirective( + const editionIntroPlaceholderDes = getAndExpectDebugElementByDirective( compDe, - EditionIntroEmptyStubComponent, + EditionIntroPlaceholderStubComponent, 1, 1 ); - const editionIntroEmptyCmp = editionIntroEmptyDes[0].injector.get( - EditionIntroEmptyStubComponent - ) as EditionIntroEmptyStubComponent; + const editionIntroPlaceholderCmp = editionIntroPlaceholderDes[0].injector.get( + EditionIntroPlaceholderStubComponent + ) as EditionIntroPlaceholderStubComponent; - expectToEqual(editionIntroEmptyCmp.editionComplex, expectedEditionComplex); - expectToEqual(editionIntroEmptyCmp.editionLabel, expectedEditionRouteConstants.EDITION.short); + expectToEqual(editionIntroPlaceholderCmp.editionComplex, expectedEditionComplex); + expectToEqual(editionIntroPlaceholderCmp.editionLabel, expectedEditionRouteConstants.EDITION.short); })); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts index 383c83a915..329aee6a2d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts @@ -3,8 +3,8 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '@awg-shared/shared.module'; import { EditionIntroContentComponent } from './edition-intro-content'; -import { EditionIntroEmptyComponent } from './edition-intro-empty'; import { EditionIntroNavComponent } from './edition-intro-nav'; +import { EditionIntroPlaceholderComponent } from './edition-intro-placeholder'; import { EditionIntroRoutingModule, routedEditionIntroComponents } from './edition-intro-routing.module'; @@ -19,8 +19,8 @@ import { EditionIntroRoutingModule, routedEditionIntroComponents } from './editi imports: [SharedModule, EditionIntroRoutingModule], declarations: [ EditionIntroContentComponent, - EditionIntroEmptyComponent, EditionIntroNavComponent, + EditionIntroPlaceholderComponent, routedEditionIntroComponents, ], }) From 4800f27927180acae9aa206ea2ce4b441990a8a4 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 15 Oct 2024 15:44:05 +0200 Subject: [PATCH 147/213] refactor(edition): rename EditionService -> EditionStateService --- .../edition-complex.component.spec.ts | 160 ++++++------ .../edition-complex.component.ts | 25 +- .../edition-detail-nav.component.spec.ts | 8 +- .../edition-detail-nav.component.ts | 12 +- .../edition-graph.component.spec.ts | 54 ++--- .../edition-graph/edition-graph.component.ts | 38 ++- .../edition-intro.component.spec.ts | 89 +++---- .../edition-intro/edition-intro.component.ts | 20 +- .../edition-report.component.spec.ts | 29 +-- .../edition-report.component.ts | 32 +-- .../edition-sheets.component.spec.ts | 14 +- .../edition-sheets.component.ts | 10 +- .../edition-preface.component.spec.ts | 36 +-- .../edition-preface.component.ts | 12 +- .../edition-row-tables.component.spec.ts | 38 +-- .../edition-row-tables.component.ts | 12 +- ...-section-detail-overview.component.spec.ts | 38 +-- ...ition-section-detail-overview.component.ts | 12 +- .../edition-section-detail.component.spec.ts | 38 +-- .../edition-section-detail.component.ts | 15 +- .../edition-sections.component.spec.ts | 34 +-- .../edition-sections.component.ts | 14 +- .../edition-series-detail.component.spec.ts | 10 +- .../edition-series-detail.component.ts | 13 +- .../edition-series.component.spec.ts | 24 +- .../edition-series.component.ts | 16 +- .../edition-view.component.spec.ts | 74 +++--- .../edition-view/edition-view.component.ts | 22 +- ....spec.ts => edition-state.service.spec.ts} | 228 +++++++++--------- ...on.service.ts => edition-state.service.ts} | 8 +- src/app/views/edition-view/services/index.ts | 4 +- 31 files changed, 574 insertions(+), 565 deletions(-) rename src/app/views/edition-view/services/{edition.service.spec.ts => edition-state.service.spec.ts} (67%) rename src/app/views/edition-view/services/{edition.service.ts => edition-state.service.ts} (98%) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts index 81f49e01f3..a8c3c83d60 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.spec.ts @@ -15,7 +15,7 @@ import { EditionOutlineSection, EditionOutlineSeries, } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionComplexComponent } from './edition-complex.component'; @@ -25,20 +25,20 @@ describe('EditionComplexComponent (DONE)', () => { let compDe: DebugElement; let mockActivatedRoute: ActivatedRouteStub; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let mockEditionComplexSubject: ReplaySubject; let mockEditionSeriesSubject: ReplaySubject; let mockEditionSectionSubject: ReplaySubject; let updateEditionComplexFromRouteSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; - let editionServiceUpdateSelectedEditionComplexSpy: Spy; - let editionServiceUpdateSelectedEditionSeriesSpy: Spy; - let editionServiceUpdateSelectedEditionSectionSpy: Spy; - let editionServiceClearSelectedEditionComplexSpy: Spy; - let editionServiceClearSelectedEditionSeriesSpy: Spy; - let editionServiceClearSelectedEditionSectionSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; + let editionStateServiceUpdateSelectedEditionComplexSpy: Spy; + let editionStateServiceUpdateSelectedEditionSeriesSpy: Spy; + let editionStateServiceUpdateSelectedEditionSectionSpy: Spy; + let editionStateServiceClearSelectedEditionComplexSpy: Spy; + let editionStateServiceClearSelectedEditionSeriesSpy: Spy; + let editionStateServiceClearSelectedEditionSectionSpy: Spy; let expectedEditionComplexes: EditionComplexesList; let expectedSelectedEditionComplex: EditionComplex; @@ -55,8 +55,8 @@ describe('EditionComplexComponent (DONE)', () => { mockEditionSeriesSubject = new ReplaySubject(1); mockEditionSectionSubject = new ReplaySubject(1); - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { getSelectedEditionComplex: (): Observable => mockEditionComplexSubject.asObservable(), updateSelectedEditionComplex: (editionComplex: EditionComplex): void => mockEditionComplexSubject.next(editionComplex), @@ -81,7 +81,7 @@ describe('EditionComplexComponent (DONE)', () => { declarations: [EditionComplexComponent], providers: [ { provide: ActivatedRoute, useValue: mockActivatedRoute }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); }); @@ -100,32 +100,32 @@ describe('EditionComplexComponent (DONE)', () => { // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E updateEditionComplexFromRouteSpy = spyOn(component, 'updateEditionComplexFromRoute').and.callThrough(); - editionServiceGetSelectedEditionComplexSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + mockEditionStateService, 'getSelectedEditionComplex' ).and.callThrough(); - editionServiceUpdateSelectedEditionComplexSpy = spyOn( - mockEditionService, + editionStateServiceUpdateSelectedEditionComplexSpy = spyOn( + mockEditionStateService, 'updateSelectedEditionComplex' ).and.callThrough(); - editionServiceUpdateSelectedEditionSeriesSpy = spyOn( - mockEditionService, + editionStateServiceUpdateSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, 'updateSelectedEditionSeries' ).and.callThrough(); - editionServiceUpdateSelectedEditionSectionSpy = spyOn( - mockEditionService, + editionStateServiceUpdateSelectedEditionSectionSpy = spyOn( + mockEditionStateService, 'updateSelectedEditionSection' ).and.callThrough(); - editionServiceClearSelectedEditionComplexSpy = spyOn( - mockEditionService, + editionStateServiceClearSelectedEditionComplexSpy = spyOn( + mockEditionStateService, 'clearSelectedEditionComplex' ).and.callThrough(); - editionServiceClearSelectedEditionSeriesSpy = spyOn( - mockEditionService, + editionStateServiceClearSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, 'clearSelectedEditionSeries' ).and.callThrough(); - editionServiceClearSelectedEditionSectionSpy = spyOn( - mockEditionService, + editionStateServiceClearSelectedEditionSectionSpy = spyOn( + mockEditionStateService, 'clearSelectedEditionSection' ).and.callThrough(); }); @@ -172,7 +172,7 @@ describe('EditionComplexComponent (DONE)', () => { it('... should get id from router', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) ); @@ -182,7 +182,7 @@ describe('EditionComplexComponent (DONE)', () => { // Call with op. 12 (default) expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById('OP12') ); @@ -196,7 +196,7 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 2, EditionComplexesService.getEditionComplexById('OP25') ); @@ -204,7 +204,7 @@ describe('EditionComplexComponent (DONE)', () => { it('... should only get complex from valid router id', () => { expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById('OP12') ); @@ -217,7 +217,7 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById('OP12') ); @@ -231,7 +231,7 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById('OP12') ); @@ -245,7 +245,7 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById('OP12') ); @@ -288,54 +288,54 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(getEditionSectionByIdSpy, 1); }); - it('... should have updated selectedEditionComplex$ (via EditionService)', () => { + it('... should have updated selectedEditionComplex$ (via EditionStateService)', () => { const complex = EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1, complex); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 1, complex); }); - it('... should have updated selectedEditionSeries (via EditionService)', () => { + it('... should have updated selectedEditionSeries (via EditionStateService)', () => { const series = EditionOutlineService.getEditionSeriesById( expectedSelectedEditionComplex.pubStatement.series.route ); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1, series); + expectSpyCall(editionStateServiceUpdateSelectedEditionSeriesSpy, 1, series); }); - it('... should have updated selectedEditionSection (via EditionService)', () => { + it('... should have updated selectedEditionSection (via EditionStateService)', () => { const section = EditionOutlineService.getEditionSectionById( expectedSelectedEditionComplex.pubStatement.series.route, expectedSelectedEditionComplex.pubStatement.section.route ); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1, section); + expectSpyCall(editionStateServiceUpdateSelectedEditionSectionSpy, 1, section); }); - it('... should get edition complex from EditionService and set selectedEditionComplex$', () => { + it('... should get edition complex from EditionStateService and set selectedEditionComplex$', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); expect(component.selectedEditionComplex$).toBeDefined(); }); - it('... should get correct edition complex from EditionService when complex id changes', () => { + it('... should get correct edition complex from EditionStateService when complex id changes', () => { // ---------------- // Check for op. 12 expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 1, EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); // ---------------- // Change to op. 25 @@ -347,16 +347,16 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); expectSpyCall( - editionServiceUpdateSelectedEditionComplexSpy, + editionStateServiceUpdateSelectedEditionComplexSpy, 2, EditionComplexesService.getEditionComplexById(expectedSelectedEditionComplexId) ); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expect(component.selectedEditionComplex$).toBeDefined(); }); - it('... should get an edition complex with opus number from EditionService', () => { + it('... should get an edition complex with opus number from EditionStateService', () => { const opusComplex = new EditionComplex( { title: 'Test Opus Complex', @@ -379,19 +379,19 @@ describe('EditionComplexComponent (DONE)', () => { }); mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + editionStateServiceUpdateSelectedEditionComplexSpy.and.callThrough(); // Apply changes fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, opusComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 2, opusComplex); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expect(component.selectedEditionComplex$).toBeDefined(); }); - it('... should get an edition complex with M number from EditionService', () => { + it('... should get an edition complex with M number from EditionStateService', () => { const mnrComplex = new EditionComplex( { title: 'Test M Complex', @@ -415,19 +415,19 @@ describe('EditionComplexComponent (DONE)', () => { }); mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + editionStateServiceUpdateSelectedEditionComplexSpy.and.callThrough(); // Apply changes fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 2, mnrComplex); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expect(component.selectedEditionComplex$).toBeDefined(); }); - it('... should get an edition complex with M* number from EditionService', () => { + it('... should get an edition complex with M* number from EditionStateService', () => { const mnrPlusComplex = new EditionComplex( { title: 'Test M* Complex', @@ -451,19 +451,19 @@ describe('EditionComplexComponent (DONE)', () => { }); mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + editionStateServiceUpdateSelectedEditionComplexSpy.and.callThrough(); // Apply changes fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, mnrPlusComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 2, mnrPlusComplex); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expect(component.selectedEditionComplex$).toBeDefined(); }); - it('... should get an edition complex with missing resp statement from EditionService', () => { + it('... should get an edition complex with missing resp statement from EditionStateService', () => { const missingRespComplex = new EditionComplex( { title: 'Test Missing Resp Complex', @@ -484,14 +484,14 @@ describe('EditionComplexComponent (DONE)', () => { }); mockActivatedRoute.testParamMap = { complexId: expectedSelectedEditionComplexId }; - editionServiceUpdateSelectedEditionComplexSpy.and.callThrough(); + editionStateServiceUpdateSelectedEditionComplexSpy.and.callThrough(); // Apply changes fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 2, missingRespComplex); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 2, missingRespComplex); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expect(component.selectedEditionComplex$).toBeDefined(); }); @@ -526,9 +526,9 @@ describe('EditionComplexComponent (DONE)', () => { expectSpyCall(getEditionSectionByIdSpy, 0); }); - it('... should not have updated selectedEditionComplex$ (via EditionService)', () => { + it('... should not have updated selectedEditionComplex$ (via EditionStateService)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 1); spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); @@ -536,12 +536,12 @@ describe('EditionComplexComponent (DONE)', () => { fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 2); - expectSpyCall(editionServiceUpdateSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionComplexSpy, 1); }); - it('... should not have updated selectedEditionSeries (via EditionService)', () => { + it('... should not have updated selectedEditionSeries (via EditionStateService)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionSeriesSpy, 1); spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); @@ -549,12 +549,12 @@ describe('EditionComplexComponent (DONE)', () => { fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 2); - expectSpyCall(editionServiceUpdateSelectedEditionSeriesSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionSeriesSpy, 1); }); - it('... should not have updated selectedEditionSection (via EditionService)', () => { + it('... should not have updated selectedEditionSection (via EditionStateService)', () => { expectSpyCall(updateEditionComplexFromRouteSpy, 1); - expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionSectionSpy, 1); spyOn(EditionComplexesService, 'getEditionComplexById').and.returnValue(null); @@ -562,7 +562,7 @@ describe('EditionComplexComponent (DONE)', () => { fixture.detectChanges(); expectSpyCall(updateEditionComplexFromRouteSpy, 2); - expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1); + expectSpyCall(editionStateServiceUpdateSelectedEditionSectionSpy, 1); }); it('... should set selectedEditionComplex$ to EMPTY', () => { @@ -579,7 +579,7 @@ describe('EditionComplexComponent (DONE)', () => { expectToEqual(component.selectedEditionComplex$, EMPTY); }); - it('... should not get an edition complex with missing title statement from EditionService', () => { + it('... should not get an edition complex with missing title statement from EditionStateService', () => { const missingTitleComplex = new EditionComplex( null, { @@ -606,7 +606,7 @@ describe('EditionComplexComponent (DONE)', () => { expectToEqual(component.selectedEditionComplex$, EMPTY); }); - it('... should not get an edition complex with missing pub statement from EditionService', () => { + it('... should not get an edition complex with missing pub statement from EditionStateService', () => { const missingPubComplex = new EditionComplex( { title: 'Test Missing Pub Complex', @@ -640,22 +640,22 @@ describe('EditionComplexComponent (DONE)', () => { }); describe('#ngOnDestroy()', () => { - it('... should have cleared selected edition complex on destroy (via EditionService)', () => { + it('... should have cleared selected edition complex on destroy (via EditionStateService)', () => { component.ngOnDestroy(); - expectSpyCall(editionServiceClearSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceClearSelectedEditionComplexSpy, 1); }); - it('... should have cleared selected edition series on destroy (via EditionService)', () => { + it('... should have cleared selected edition series on destroy (via EditionStateService)', () => { component.ngOnDestroy(); - expectSpyCall(editionServiceClearSelectedEditionSeriesSpy, 1); + expectSpyCall(editionStateServiceClearSelectedEditionSeriesSpy, 1); }); - it('... should have cleared selected edition section on destroy (via EditionService)', () => { + it('... should have cleared selected edition section on destroy (via EditionStateService)', () => { component.ngOnDestroy(); - expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 1); + expectSpyCall(editionStateServiceClearSelectedEditionSectionSpy, 1); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts index 8d2c5cce2b..9fd793d6e1 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-complex.component.ts @@ -6,7 +6,7 @@ import { delay, EMPTY, Observable } from 'rxjs'; import { UtilityService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionComplex component. @@ -31,16 +31,16 @@ export class EditionComplexComponent implements OnDestroy, OnInit { /** * Constructor of the EditionComplexComponent. * - * It declares private instances of ActivatedRoute and EditionService, + * It declares private instances of ActivatedRoute and EditionStateService, * and a public instance of the UtilityService. * * @param {ActivatedRoute} route Instance of the Angular ActivatedRoute. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {UtilityService} utils Instance of the UtilityService. */ constructor( private route: ActivatedRoute, - private editionService: EditionService, + private editionStateService: EditionStateService, public utils: UtilityService ) {} @@ -66,7 +66,8 @@ export class EditionComplexComponent implements OnDestroy, OnInit { /** * Public method: updateEditionComplexFromRoute. * - * It fetches the route params to get the id of the current edition complex and updates the edition service. + * It fetches the route params to get the id of the current edition complex + * and updates the EditionStateService. * * @returns {void} Updates the current edition complex from the route. */ @@ -82,11 +83,11 @@ export class EditionComplexComponent implements OnDestroy, OnInit { complex.pubStatement.section.route ); - this.editionService.updateSelectedEditionSeries(series); - this.editionService.updateSelectedEditionSection(section); - this.editionService.updateSelectedEditionComplex(complex); + this.editionStateService.updateSelectedEditionSeries(series); + this.editionStateService.updateSelectedEditionSection(section); + this.editionStateService.updateSelectedEditionComplex(complex); - this.selectedEditionComplex$ = this.editionService.getSelectedEditionComplex().pipe(delay(0)); + this.selectedEditionComplex$ = this.editionStateService.getSelectedEditionComplex().pipe(delay(0)); } else { this.selectedEditionComplex$ = EMPTY; } @@ -102,8 +103,8 @@ export class EditionComplexComponent implements OnDestroy, OnInit { * Destroys subscriptions. */ ngOnDestroy() { - this.editionService.clearSelectedEditionComplex(); - this.editionService.clearSelectedEditionSeries(); - this.editionService.clearSelectedEditionSection(); + this.editionStateService.clearSelectedEditionComplex(); + this.editionStateService.clearSelectedEditionSeries(); + this.editionStateService.clearSelectedEditionSection(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts index a24effeac7..ef8e478bb9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.spec.ts @@ -13,7 +13,7 @@ import { RouterOutletStubComponent } from '@testing/router-stubs'; import { RouterLinkButton } from '@awg-shared/router-link-button-group/router-link-button.model'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionDetailNavComponent } from './edition-detail-nav.component'; @@ -40,15 +40,15 @@ describe('EditionDetailNavComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Create a fake service object with a `getData()` spy - const mockEditionService = jasmine.createSpyObj('EditionService', ['getSelectedEditionComplex']); + const mockEditionStateService = jasmine.createSpyObj('EditionStateService', ['getSelectedEditionComplex']); // Make the spy return a synchronous Observable with the test data - getSelectedEditionComplexSpy = mockEditionService.getSelectedEditionComplex.and.returnValue( + getSelectedEditionComplexSpy = mockEditionStateService.getSelectedEditionComplex.and.returnValue( observableOf(EditionComplexesService.getEditionComplexById('OP12')) ); TestBed.configureTestingModule({ declarations: [EditionDetailNavComponent, RouterLinkButtonGroupStubComponent, RouterOutletStubComponent], - providers: [{ provide: EditionService, useValue: mockEditionService }], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], }).compileComponents(); })); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.ts index 4b08a6d983..2952b4f51d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component.ts @@ -5,7 +5,7 @@ import { takeUntil } from 'rxjs/operators'; import { RouterLinkButton } from '@awg-shared/router-link-button-group/router-link-button.model'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionOverview component. @@ -45,11 +45,11 @@ export class EditionDetailNavComponent implements OnInit, OnDestroy { /** * Constructor of the EditionDetailNavComponent. * - * It declares a private instance of EditionService. + * It declares a private instance of EditionStateService. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. */ - constructor(private editionService: EditionService) {} + constructor(private editionStateService: EditionStateService) {} /** * Angular life cycle hook: ngOnInit. @@ -65,12 +65,12 @@ export class EditionDetailNavComponent implements OnInit, OnDestroy { * Public method: getEditionComplex. * * It subscribes to the current edition complex - * of the edition service. + * of the EditionStateService. * * @returns {void} Gets the current edition complex. */ getEditionComplex(): void { - this.editionService + this.editionStateService .getSelectedEditionComplex() .pipe(takeUntil(this._destroyed$)) .subscribe({ diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts index 893a2e8704..b548eee7df 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.spec.ts @@ -31,7 +31,7 @@ import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_GRAPH_IMAGES_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, Graph, GraphList, GraphRDFData, GraphSparqlQuery } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionGraphComponent } from './edition-graph.component'; @@ -68,16 +68,16 @@ describe('EditionGraphComponent (DONE)', () => { let compDe: DebugElement; let mockDocument: Document; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let mockEditionDataService: Partial; - let editionService: Partial; + let editionStateService: Partial; let editionDataService: Partial; let modalOpenSpy: Spy; let compGetEditonGraphDataSpy: Spy; let editionDataServiceGetEditionGraphDataSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; let expectedEditionComplex: EditionComplex; let expectedEditionGraphDataEmpty: GraphList; @@ -98,8 +98,8 @@ describe('EditionGraphComponent (DONE)', () => { getEditionGraphData: (editionComplex: EditionComplex): Observable => observableOf(new GraphList()), }; - // Mocked editionService - mockEditionService = { + // Mocked editionStateService + mockEditionStateService = { getSelectedEditionComplex: (): Observable => observableOf(expectedEditionComplex), }; @@ -115,7 +115,7 @@ describe('EditionGraphComponent (DONE)', () => { ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); })); @@ -129,7 +129,7 @@ describe('EditionGraphComponent (DONE)', () => { // Inject services from root editionDataService = TestBed.inject(EditionDataService); - editionService = TestBed.inject(EditionService); + editionStateService = TestBed.inject(EditionStateService); // TestData (default) expectedIsFullscreen = false; @@ -147,8 +147,8 @@ describe('EditionGraphComponent (DONE)', () => { // Spies on component methods compGetEditonGraphDataSpy = spyOn(component, 'getEditionGraphData').and.callThrough(); - editionServiceGetSelectedEditionComplexSpy = spyOn( - editionService, + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + editionStateService, 'getSelectedEditionComplex' ).and.callThrough(); editionDataServiceGetEditionGraphDataSpy = spyOn(editionDataService, 'getEditionGraphData').and.callFake( @@ -176,14 +176,14 @@ describe('EditionGraphComponent (DONE)', () => { expect(component).toBeTruthy(); }); - it('... injected editionService should use provided mockValue', () => { - expectToBe(mockEditionService === editionService, true); - }); - it('... injected editionDataService should use provided mockValue', () => { expectToBe(mockEditionDataService === editionDataService, true); }); + it('... injected editionStateService should use provided mockValue', () => { + expectToBe(mockEditionStateService === editionStateService, true); + }); + describe('BEFORE initial data binding', () => { it('... should have correct static `GRAPH_IMAGES`', () => { expect(component.GRAPH_IMAGES).toBeTruthy(); @@ -247,7 +247,7 @@ describe('EditionGraphComponent (DONE)', () => { describe('AFTER initial data binding', () => { beforeEach(() => { - editionServiceGetSelectedEditionComplexSpy.and.returnValue( + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue( observableOf(EditionComplexesService.getEditionComplexById('OP12')) ); @@ -642,27 +642,27 @@ describe('EditionGraphComponent (DONE)', () => { expect(component.getEditionGraphData).toBeDefined(); }); - it('... should trigger editionService.getSelectedEditionComplex', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should trigger editionStateService.getSelectedEditionComplex', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); }); - it('... should get current editionComplex from editionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should get current editionComplex from editionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); expectToEqual(component.editionComplex, expectedEditionComplex); }); - it('... should update editionComplex when editionService emits changed value', waitForAsync(() => { + it('... should update editionComplex when editionStateService emits changed value', waitForAsync(() => { // ---------------- // Change to op. 25 - editionServiceGetSelectedEditionComplexSpy.and.returnValue( + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue( observableOf(EditionComplexesService.getEditionComplexById('OP25')) ); component.getEditionGraphData(); detectChangesOnPush(fixture); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expectToEqual(component.editionComplex, EditionComplexesService.getEditionComplexById('OP25')); })); @@ -678,14 +678,14 @@ describe('EditionGraphComponent (DONE)', () => { it('... should re-trigger editionDataService.getEditionGraph with updated editionComplex', waitForAsync(() => { // ---------------- // Change to op. 25 - editionServiceGetSelectedEditionComplexSpy.and.returnValue( + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue( observableOf(EditionComplexesService.getEditionComplexById('OP25')) ); component.getEditionGraphData(); detectChangesOnPush(fixture); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expectSpyCall( editionDataServiceGetEditionGraphDataSpy, 2, @@ -703,19 +703,19 @@ describe('EditionGraphComponent (DONE)', () => { expectAsync(lastValueFrom(component.editionGraphData$)).toBeResolvedTo(expectedEditionGraphDataEmpty); })); - it('... should update editionGraphData$ when editionService emits changed value', waitForAsync(() => { + it('... should update editionGraphData$ when editionStateService emits changed value', waitForAsync(() => { expectSpyCall(editionDataServiceGetEditionGraphDataSpy, 1, expectedEditionComplex); // ---------------- // Change to op. 25 - editionServiceGetSelectedEditionComplexSpy.and.returnValue( + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue( observableOf(EditionComplexesService.getEditionComplexById('OP25')) ); component.getEditionGraphData(); detectChangesOnPush(fixture); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); expectSpyCall( editionDataServiceGetEditionGraphDataSpy, 2, diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.ts index ad9fe9e977..0024bdf1c6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/edition-graph.component.ts @@ -18,7 +18,7 @@ import { UtilityService } from '@awg-core/services'; import { EDITION_GRAPH_IMAGES_DATA } from '@awg-views/edition-view/data'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, GraphList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; import { GraphVisualizerComponent } from './graph-visualizer'; @@ -102,17 +102,17 @@ export class EditionGraphComponent implements OnInit { /** * Constructor of the EditionGraphComponent. * - * It declares a private instances of the EditionDataService and EditionService; + * It declares a private instances of the EditionDataService and EditionStateService; * injects the DOCUMENT; and declares a public instance of the UtilityService. * * @param {EditionDataService} editionDataService Instance of the EditionDataService. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {DOCUMENT} document Instance of DOCUMENT * @param {UtilityService} utils Instance of the UtilityService. */ constructor( private editionDataService: EditionDataService, - private editionService: EditionService, + private editionStateService: EditionStateService, @Inject(DOCUMENT) private document: any, public utils: UtilityService ) { @@ -156,31 +156,23 @@ export class EditionGraphComponent implements OnInit { /** * Public method: getEditionGraphData. * - * It gets the current edition complex of the edition service + * It gets the current edition complex from the EditionStateService * and the observable of the corresponding graph data * from the EditionDataService. * * @returns {void} Gets the current edition complex and the corresponding graph data. */ getEditionGraphData(): void { - this.editionGraphData$ = this.editionService - // Get current editionComplex from editionService - .getSelectedEditionComplex() - .pipe( - switchMap((complex: EditionComplex) => { - // Set current editionComplex - this.editionComplex = complex; - // Get graph data from editionDataService - return this.editionDataService.getEditionGraphData(this.editionComplex); - }), - // Error handling - catchError(err => { - // Set error object - this.errorObject = err; - // Return empty observable to complete observable without data - return EMPTY; - }) - ); + this.editionGraphData$ = this.editionStateService.getSelectedEditionComplex().pipe( + switchMap((complex: EditionComplex) => { + this.editionComplex = complex; + return this.editionDataService.getEditionGraphData(this.editionComplex); + }), + catchError(err => { + this.errorObject = err; + return EMPTY; + }) + ); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts index 1d0867d5b2..48afddecdf 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.spec.ts @@ -41,7 +41,7 @@ import { EditionComplexesService, EditionDataService, EditionOutlineService, - EditionService, + EditionStateService, } from '@awg-views/edition-view/services'; import { EditionIntroComponent } from './edition-intro.component'; @@ -105,11 +105,11 @@ describe('IntroComponent (DONE)', () => { let editionDataServiceGetEditionSectionIntroDataSpy: Spy; let editionDataServiceGetEditionComplexIntroDataSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; - let editionServiceGetSelectedEditionSectionSpy: Spy; - let editionServiceGetSelectedEditionSeriesSpy: Spy; - let editionServiceUpdateIsIntroViewSpy: Spy; - let editionServiceClearIsIntroViewSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; + let editionStateServiceGetSelectedEditionSectionSpy: Spy; + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceUpdateIsIntroViewSpy: Spy; + let editionStateServiceClearIsIntroViewSpy: Spy; let getEditionIntroDataSpy: Spy; let navigateWithComplexIdSpy: Spy; @@ -124,9 +124,9 @@ describe('IntroComponent (DONE)', () => { let fetchAndFilterIntroDataSpy: Spy; let mockEditionDataService: Partial; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let editionDataService: Partial; - let editionService: Partial; + let editionStateService: Partial; let mockIsIntroViewSubject: ReplaySubject; let expectedCurrentLaguage: number; @@ -163,7 +163,7 @@ describe('IntroComponent (DONE)', () => { // Mock services mockIsIntroViewSubject = new ReplaySubject(1); - mockEditionService = { + mockEditionStateService = { getSelectedEditionComplex: (): Observable => observableOf(null), getSelectedEditionSeries: (): Observable => observableOf(null), getSelectedEditionSection: (): Observable => observableOf(null), @@ -190,7 +190,7 @@ describe('IntroComponent (DONE)', () => { ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, { provide: Router, useValue: mockRouter }, ], }).compileComponents(); @@ -205,7 +205,7 @@ describe('IntroComponent (DONE)', () => { // Inject services from root editionDataService = TestBed.inject(EditionDataService); - editionService = TestBed.inject(EditionService); + editionStateService = TestBed.inject(EditionStateService); // Test data expectedCurrentLaguage = 0; @@ -256,17 +256,20 @@ describe('IntroComponent (DONE)', () => { editionDataService, 'getEditionSectionIntroData' ).and.callThrough(); - editionServiceGetSelectedEditionComplexSpy = spyOn( - editionService, + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + editionStateService, 'getSelectedEditionComplex' ).and.callThrough(); - editionServiceGetSelectedEditionSeriesSpy = spyOn(editionService, 'getSelectedEditionSeries').and.callThrough(); - editionServiceGetSelectedEditionSectionSpy = spyOn( - editionService, + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + editionStateService, + 'getSelectedEditionSeries' + ).and.callThrough(); + editionStateServiceGetSelectedEditionSectionSpy = spyOn( + editionStateService, 'getSelectedEditionSection' ).and.callThrough(); - editionServiceUpdateIsIntroViewSpy = spyOn(editionService, 'updateIsIntroView').and.callThrough(); - editionServiceClearIsIntroViewSpy = spyOn(editionService, 'clearIsIntroView').and.callThrough(); + editionStateServiceUpdateIsIntroViewSpy = spyOn(editionStateService, 'updateIsIntroView').and.callThrough(); + editionStateServiceClearIsIntroViewSpy = spyOn(editionStateService, 'clearIsIntroView').and.callThrough(); }); afterAll(() => { @@ -350,9 +353,11 @@ describe('IntroComponent (DONE)', () => { describe('AFTER initial data binding', () => { beforeEach(() => { // Simulate the services returning the observable properties - editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(expectedSelectedEditionSeries)); - editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(expectedSelectedEditionSection)); - editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(expectedEditionComplex)); + editionStateServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(expectedSelectedEditionSeries)); + editionStateServiceGetSelectedEditionSectionSpy.and.returnValue( + observableOf(expectedSelectedEditionSection) + ); + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(expectedEditionComplex)); editionDataServiceGetEditionSectionIntroDataSpy.and.returnValue(observableOf(expectedEditionIntroData)); editionDataServiceGetEditionComplexIntroDataSpy.and.returnValue( observableOf(expectedEditionIntroComplexData) @@ -526,38 +531,38 @@ describe('IntroComponent (DONE)', () => { expect(component.getEditionIntroData).toBeDefined(); }); - it('... should trigger and update `isIntroView = true` in EditionService', () => { - expectSpyCall(editionServiceUpdateIsIntroViewSpy, 1, true); + it('... should trigger and update `isIntroView = true` in EditionStateService', () => { + expectSpyCall(editionStateServiceUpdateIsIntroViewSpy, 1, true); }); - it('... should trigger `getSelectedEditionSeries()` method from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + it('... should trigger `getSelectedEditionSeries()` method from EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); component.getEditionIntroData(); - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 2); }); - it('... should trigger `getSelectedEditionSection()` method from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + it('... should trigger `getSelectedEditionSection()` method from EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); component.getEditionIntroData(); - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 2); }); - it('... should trigger `getSelectedEditionComplex()` method from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should trigger `getSelectedEditionComplex()` method from EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); component.getEditionIntroData(); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 2); }); describe('... without given complex', () => { beforeEach(fakeAsync(() => { // Simulate the services returning the observable properties - editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); tick(); @@ -608,11 +613,11 @@ describe('IntroComponent (DONE)', () => { describe('... should have editionIntroData$ = EMPTY if', () => { it('... no series is given', fakeAsync(() => { // Simulate the services returning the observable properties - editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); - editionServiceGetSelectedEditionSectionSpy.and.returnValue( + editionStateServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionSectionSpy.and.returnValue( observableOf(expectedSelectedEditionSection) ); - editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); component.getEditionIntroData(); tick(); @@ -629,11 +634,11 @@ describe('IntroComponent (DONE)', () => { it('... no section is given', fakeAsync(() => { // Simulate the services returning the observable properties - editionServiceGetSelectedEditionSeriesSpy.and.returnValue( + editionStateServiceGetSelectedEditionSeriesSpy.and.returnValue( observableOf(expectedSelectedEditionSeries) ); - editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); - editionServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue(observableOf(null)); component.getEditionIntroData(); tick(); @@ -650,9 +655,9 @@ describe('IntroComponent (DONE)', () => { it('... no series and no section are given', fakeAsync(() => { // Simulate the services returning the observable properties - editionServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); - editionServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); - editionServiceGetSelectedEditionComplexSpy.and.returnValue( + editionStateServiceGetSelectedEditionSeriesSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionSectionSpy.and.returnValue(observableOf(null)); + editionStateServiceGetSelectedEditionComplexSpy.and.returnValue( observableOf(expectedEditionComplex) ); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts index 5772907195..73c3993d0b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.ts @@ -8,7 +8,7 @@ import { UtilityService } from '@awg-core/services'; import { ModalComponent } from '@awg-shared/modal/modal.component'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, IntroList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionIntro component. @@ -77,17 +77,17 @@ export class EditionIntroComponent implements OnDestroy, OnInit { /** * Constructor of the EditionIntroComponent. * - * It declares private instances of the EditionDataService, EditionService, + * It declares private instances of the EditionDataService, EditionStateService, * and the Angular Router; as well as a public instance of the UtilityService. * * @param {EditionDataService} editionDataService Instance of the EditionDataService. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {Router} router Instance of the Router. * @param {UtilityService} utils Instance of the UtilityService. */ constructor( private editionDataService: EditionDataService, - private editionService: EditionService, + private editionStateService: EditionStateService, private router: Router, public utils: UtilityService ) { @@ -122,7 +122,7 @@ export class EditionIntroComponent implements OnDestroy, OnInit { * Destroys subscriptions. */ ngOnDestroy() { - this.editionService.clearIsIntroView(); + this.editionStateService.clearIsIntroView(); this.editionIntroData$ = null; this._destroyed$.next(true); @@ -132,19 +132,19 @@ export class EditionIntroComponent implements OnDestroy, OnInit { /** * Public method: getEditionIntroData. * - * It gets the current edition complex of the edition service + * It gets the current edition complex from the EditionStateService * and the observable of the corresponding intro data * from the EditionDataService. * * @returns {void} Gets the current edition complex and the corresponding intro data. */ getEditionIntroData(): void { - this.editionService.updateIsIntroView(true); + this.editionStateService.updateIsIntroView(true); this.editionIntroData$ = combineLatest([ - this.editionService.getSelectedEditionSeries(), - this.editionService.getSelectedEditionSection(), - this.editionService.getSelectedEditionComplex().pipe(startWith(null)), + this.editionStateService.getSelectedEditionSeries(), + this.editionStateService.getSelectedEditionSection(), + this.editionStateService.getSelectedEditionComplex().pipe(startWith(null)), ]).pipe( switchMap(([series, section, complex]) => { if (series && section) { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts index f6617758d0..336abecfb2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.spec.ts @@ -38,7 +38,7 @@ import { SourceList, TextcriticsList, } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionReportComponent } from './edition-report.component'; @@ -111,9 +111,9 @@ describe('EditionReportComponent', () => { let mockRouter; let mockEditionDataService: Partial; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let editionDataService: Partial; - let editionService: Partial; + let editionStateService: Partial; let expectedEditionComplex: EditionComplex; let expectedEditionReportData: (SourceList | SourceDescriptionList | SourceEvaluationList | TextcriticsList)[]; @@ -133,7 +133,7 @@ describe('EditionReportComponent', () => { let editionDataServiceGetEditionReportDataSpy: Spy; let getEditionReportDataSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; let navigateToReportFragmentSpy: Spy; let navigateWithComplexIdSpy: Spy; let navigationSpy: Spy; @@ -167,7 +167,7 @@ describe('EditionReportComponent', () => { ): Observable<(SourceList | SourceDescriptionList | SourceEvaluationList | TextcriticsList)[]> => observableOf(expectedEditionReportData), }; - mockEditionService = { + mockEditionStateService = { getSelectedEditionComplex: (): Observable => observableOf(expectedEditionComplex), }; @@ -187,7 +187,7 @@ describe('EditionReportComponent', () => { ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, { provide: Router, useValue: mockRouter }, ], }).compileComponents(); @@ -200,7 +200,7 @@ describe('EditionReportComponent', () => { // Inject services from root editionDataService = TestBed.inject(EditionDataService); - editionService = TestBed.inject(EditionService); + editionStateService = TestBed.inject(EditionStateService); // Test data expectedPanelId = 'awg-sources-panel'; @@ -229,9 +229,10 @@ describe('EditionReportComponent', () => { editionDataServiceGetEditionReportDataSpy = spyOn(editionDataService, 'getEditionReportData').and.returnValue( observableOf(expectedEditionReportData) ); - editionServiceGetSelectedEditionComplexSpy = spyOn(editionService, 'getSelectedEditionComplex').and.returnValue( - observableOf(expectedEditionComplex) - ); + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + editionStateService, + 'getSelectedEditionComplex' + ).and.returnValue(observableOf(expectedEditionComplex)); getEditionReportDataSpy = spyOn(component, 'getEditionReportData').and.callThrough(); navigateToReportFragmentSpy = spyOn(component, 'onReportFragmentNavigate').and.callThrough(); navigateWithComplexIdSpy = spyOn(component as any, '_navigateWithComplexId').and.callThrough(); @@ -322,8 +323,8 @@ describe('EditionReportComponent', () => { expectSpyCall(getEditionReportDataSpy, 1); }); - it('... should have triggered `getSelectedEditionComplex()` method from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should have triggered `getSelectedEditionComplex()` method from EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); }); it('... should have editionComplex', () => { @@ -469,8 +470,8 @@ describe('EditionReportComponent', () => { expectSpyCall(getEditionReportDataSpy, 1); }); - it('... should have got `editionComplex` from editionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + it('... should have got `editionComplex` from editionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); expectToEqual(component.editionComplex, expectedEditionComplex); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts index 17a66a7f42..00838080db 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/edition-report.component.ts @@ -13,7 +13,7 @@ import { SourceList, TextcriticsList, } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionReport component. @@ -76,12 +76,12 @@ export class EditionReportComponent implements OnInit { * to get the report data and a private Router instance. * * @param {EditionDataService} editionDataService Instance of the EditionDataService. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {Router} router Instance of the Router. */ constructor( private editionDataService: EditionDataService, - private editionService: EditionService, + private editionStateService: EditionStateService, private router: Router ) {} @@ -113,22 +113,16 @@ export class EditionReportComponent implements OnInit { * @returns {void} Sets the editionReportData observable. */ getEditionReportData(): void { - this.editionReportData$ = this.editionService - // Get current editionComplex from editionService - .getSelectedEditionComplex() - .pipe( - switchMap((complex: EditionComplex) => { - // Set current editionComplex - this.editionComplex = complex; - // Get intro data from editionDataService - return this.editionDataService.getEditionReportData(this.editionComplex); - }), - // Error handling - catchError(err => { - this.errorObject = err; - return EMPTY; - }) - ); + this.editionReportData$ = this.editionStateService.getSelectedEditionComplex().pipe( + switchMap((complex: EditionComplex) => { + this.editionComplex = complex; + return this.editionDataService.getEditionReportData(this.editionComplex); + }), + catchError(err => { + this.errorObject = err; + return EMPTY; + }) + ); } /** diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts index 2b1957a689..4756aa834d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.spec.ts @@ -33,8 +33,8 @@ import { import { EditionComplexesService, EditionDataService, - EditionService, EditionSheetsService, + EditionStateService, } from '@awg-views/edition-view/services'; import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; @@ -105,13 +105,13 @@ describe('EditionSheetsComponent', () => { const expectedPath = 'sheets'; let mockEditionDataService: Partial; - let mockEditionService: Partial; let mockEditionSheetsService: Partial; + let mockEditionStateService: Partial; let editionDataServiceGetEditionSheetsDataSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; let editionSheetsServiceSelectSvgSheetByIdSpy: Spy; let editionSheetsServiceSelectConvoluteSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; let getEditionSheetsDataSpy: Spy; let navigateToReportFragmentSpy: Spy; let navigateWithComplexIdSpy: Spy; @@ -162,7 +162,7 @@ describe('EditionSheetsComponent', () => { editionComplex: EditionComplex ): Observable<(FolioConvoluteList | EditionSvgSheetList | TextcriticsList)[]> => observableOf([]), }; - mockEditionService = { + mockEditionStateService = { getSelectedEditionComplex: (): Observable => observableOf(), }; mockEditionSheetsService = { @@ -187,7 +187,7 @@ describe('EditionSheetsComponent', () => { ], providers: [ { provide: EditionDataService, useValue: mockEditionDataService }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, { provide: Router, useValue: mockRouter }, { provide: ActivatedRoute, @@ -225,8 +225,8 @@ describe('EditionSheetsComponent', () => { mockEditionDataService, 'getEditionSheetsData' ).and.returnValue(observableOf([expectedFolioConvoluteData, expectedSvgSheetsData, expectedTextcriticsData])); - editionServiceGetSelectedEditionComplexSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + mockEditionStateService, 'getSelectedEditionComplex' ).and.returnValue(observableOf(expectedEditionComplex)); editionSheetsServiceSelectSvgSheetByIdSpy = spyOn( diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts index 8d12768c0a..bed8bd9264 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-sheets.component.ts @@ -18,7 +18,7 @@ import { Textcritics, TextcriticsList, } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService, EditionSheetsService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionSheetsService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSheets component. @@ -144,12 +144,12 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { * Constructor of the EditionSheetsComponent. * * It declares private instances of - * EditionDataService, EditionSheetsService, EditionService, UtilityService, + * EditionDataService, EditionSheetsService, EditionStateService, UtilityService, * ActivatedRoute and Router. * * @param {EditionDataService} editionDataService Instance of the EditionDataService. * @param {EditionSheetsService} editionSheetsService Instance of the EditionSheetsService. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {UtilityService} utils Instance of the UtilityService. * @param {ActivatedRoute} route Instance of the Angular ActivatedRoute. * @param {Router} router Instance of the Angular Router. @@ -157,7 +157,7 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { constructor( private editionDataService: EditionDataService, private editionSheetsService: EditionSheetsService, - private editionService: EditionService, + private editionStateService: EditionStateService, private utils: UtilityService, private route: ActivatedRoute, private router: Router @@ -361,7 +361,7 @@ export class EditionSheetsComponent implements OnInit, OnDestroy { queryParams: ParamMap ): Observable { this.isLoading = true; - return this.editionService.getSelectedEditionComplex().pipe( + return this.editionStateService.getSelectedEditionComplex().pipe( // Set editionComplex tap((complex: EditionComplex) => (this.editionComplex = complex)), // Get editionSheetsData diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts index 1e926b6ebe..b1fb235143 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.spec.ts @@ -17,7 +17,7 @@ import { mockEditionData } from '@testing/mock-data'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_GLYPHS_DATA } from '@awg-views/edition-view/data'; import { PrefaceList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionPrefaceComponent } from './edition-preface.component'; @@ -36,11 +36,11 @@ describe('EditionPrefaceComponent (DONE)', () => { let getGlyphSpy: Spy; let setLanguageSpy: Spy; - let editionServiceUpdateIsPrefaceViewSpy: Spy; - let editionServiceClearIsPrefaceViewSpy: Spy; let editionDataServiceGetPrefaceDataSpy: Spy; + let editionStateServiceUpdateIsPrefaceViewSpy: Spy; + let editionStateServiceClearIsPrefaceViewSpy: Spy; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let mockEditionDataService: Partial; let mockIsPrefaceViewSubject: ReplaySubject; @@ -50,7 +50,7 @@ describe('EditionPrefaceComponent (DONE)', () => { beforeEach(async () => { mockIsPrefaceViewSubject = new ReplaySubject(1); - mockEditionService = { + mockEditionStateService = { updateIsPrefaceView: (isView: boolean): void => mockIsPrefaceViewSubject.next(isView), clearIsPrefaceView: (): void => mockIsPrefaceViewSubject.next(null), }; @@ -62,8 +62,8 @@ describe('EditionPrefaceComponent (DONE)', () => { await TestBed.configureTestingModule({ declarations: [CompileHtmlComponent, EditionPrefaceComponent, LanguageSwitcherStubComponent], providers: [ - { provide: EditionService, useValue: mockEditionService }, { provide: EditionDataService, useValue: mockEditionDataService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); }); @@ -73,7 +73,7 @@ describe('EditionPrefaceComponent (DONE)', () => { component = fixture.componentInstance; compDe = fixture.debugElement; - mockEditionService = TestBed.inject(EditionService); + mockEditionStateService = TestBed.inject(EditionStateService); mockEditionDataService = TestBed.inject(EditionDataService); // Test data @@ -85,9 +85,15 @@ describe('EditionPrefaceComponent (DONE)', () => { // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E getGlyphSpy = spyOn(component, 'getGlyph').and.callThrough(); setLanguageSpy = spyOn(component, 'setLanguage').and.callThrough(); - editionServiceUpdateIsPrefaceViewSpy = spyOn(mockEditionService, 'updateIsPrefaceView').and.callThrough(); - editionServiceClearIsPrefaceViewSpy = spyOn(mockEditionService, 'clearIsPrefaceView').and.callThrough(); editionDataServiceGetPrefaceDataSpy = spyOn(mockEditionDataService, 'getEditionPrefaceData').and.callThrough(); + editionStateServiceUpdateIsPrefaceViewSpy = spyOn( + mockEditionStateService, + 'updateIsPrefaceView' + ).and.callThrough(); + editionStateServiceClearIsPrefaceViewSpy = spyOn( + mockEditionStateService, + 'clearIsPrefaceView' + ).and.callThrough(); }); it('... should create', () => { @@ -111,8 +117,8 @@ describe('EditionPrefaceComponent (DONE)', () => { expectToEqual(component.ref, component); }); - it('... should not have called EditionService', () => { - expectSpyCall(editionServiceUpdateIsPrefaceViewSpy, 0); + it('... should not have called EditionStateService', () => { + expectSpyCall(editionStateServiceUpdateIsPrefaceViewSpy, 0); }); it('... should not have called EditionDataService', () => { @@ -136,8 +142,8 @@ describe('EditionPrefaceComponent (DONE)', () => { fixture.detectChanges(); }); - it('... should have updated IsPrefaceViewFlag (via EditionService)', () => { - expectSpyCall(editionServiceUpdateIsPrefaceViewSpy, 1, true); + it('... should have updated IsPrefaceViewFlag (via EditionStateService)', () => { + expectSpyCall(editionStateServiceUpdateIsPrefaceViewSpy, 1, true); }); it('... should have called EditionDataService', () => { @@ -260,10 +266,10 @@ describe('EditionPrefaceComponent (DONE)', () => { }); describe('#ngOnDestroy()', () => { - it('... should have cleared isPrefaceView$ on destroy (via EditionService)', () => { + it('... should have cleared isPrefaceView$ on destroy (via EditionStateService)', () => { component.ngOnDestroy(); - expectSpyCall(editionServiceClearIsPrefaceViewSpy, 1); + expectSpyCall(editionStateServiceClearIsPrefaceViewSpy, 1); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.ts b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.ts index 21bc53b7b1..3c0548fa3e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-preface/edition-preface.component.ts @@ -3,7 +3,7 @@ import { Observable } from 'rxjs'; import { EDITION_GLYPHS_DATA } from '@awg-views/edition-view/data'; import { PrefaceList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionPreface component. @@ -46,14 +46,14 @@ export class EditionPrefaceComponent implements OnInit, OnDestroy { /** * Constructor of the EditionPrefaceComponent. * - * It declares private instances of the EditionService and EditionDataService + * It declares private instances of the EditionStateService and EditionDataService * and the self-referring ref variable needed for CompileHtml library. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {EditionDataService} editionDataService Instance of the EditionDataService. */ constructor( - private editionService: EditionService, + private editionStateService: EditionStateService, private editionDataService: EditionDataService ) { this.ref = this; @@ -66,7 +66,7 @@ export class EditionPrefaceComponent implements OnInit, OnDestroy { * when initializing the component. */ ngOnInit(): void { - this.editionService.updateIsPrefaceView(true); + this.editionStateService.updateIsPrefaceView(true); this.prefaceData$ = this.editionDataService.getEditionPrefaceData(); } @@ -104,6 +104,6 @@ export class EditionPrefaceComponent implements OnInit, OnDestroy { * Destroys subscriptions. */ ngOnDestroy() { - this.editionService.clearIsPrefaceView(); + this.editionStateService.clearIsPrefaceView(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.spec.ts index 53096cd84d..2d1c3314b7 100644 --- a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.spec.ts @@ -16,7 +16,7 @@ import { import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EditionRowTablesList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; import { mockEditionData } from '@testing/mock-data'; import { EditionRowTablesComponent } from './edition-row-tables.component'; @@ -29,11 +29,11 @@ describe('EditionRowTablesComponent (DONE)', () => { let linkDes: DebugElement[]; let routerLinks; - let editionServiceUpdateIsRowTablesViewSpy: Spy; - let editionServiceClearIsRowTablesViewSpy: Spy; let editionDataServiceGetRowTablesDataSpy: Spy; + let editionStateServiceUpdateIsRowTablesViewSpy: Spy; + let editionStateServiceClearIsRowTablesViewSpy: Spy; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let mockEditionDataService: Partial; let mockIsRowTableViewSubject: ReplaySubject; @@ -42,8 +42,8 @@ describe('EditionRowTablesComponent (DONE)', () => { beforeEach(async () => { mockIsRowTableViewSubject = new ReplaySubject(1); - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { updateIsRowTableView: (isView: boolean): void => mockIsRowTableViewSubject.next(isView), clearIsRowTableView: (): void => mockIsRowTableViewSubject.next(null), }; @@ -56,8 +56,8 @@ describe('EditionRowTablesComponent (DONE)', () => { await TestBed.configureTestingModule({ declarations: [EditionRowTablesComponent, RouterLinkStubDirective], providers: [ - { provide: EditionService, useValue: mockEditionService }, { provide: EditionDataService, useValue: mockEditionDataService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); }); @@ -67,7 +67,7 @@ describe('EditionRowTablesComponent (DONE)', () => { component = fixture.componentInstance; compDe = fixture.debugElement; - mockEditionService = TestBed.inject(EditionService); + mockEditionStateService = TestBed.inject(EditionStateService); mockEditionDataService = TestBed.inject(EditionDataService); // Test data @@ -76,12 +76,18 @@ describe('EditionRowTablesComponent (DONE)', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - editionServiceUpdateIsRowTablesViewSpy = spyOn(mockEditionService, 'updateIsRowTableView').and.callThrough(); - editionServiceClearIsRowTablesViewSpy = spyOn(mockEditionService, 'clearIsRowTableView').and.callThrough(); editionDataServiceGetRowTablesDataSpy = spyOn( mockEditionDataService, 'getEditionRowTablesData' ).and.callThrough(); + editionStateServiceUpdateIsRowTablesViewSpy = spyOn( + mockEditionStateService, + 'updateIsRowTableView' + ).and.callThrough(); + editionStateServiceClearIsRowTablesViewSpy = spyOn( + mockEditionStateService, + 'clearIsRowTableView' + ).and.callThrough(); }); it('... should create', () => { @@ -93,8 +99,8 @@ describe('EditionRowTablesComponent (DONE)', () => { expect(component.rowTablesData$).toBeUndefined(); }); - it('... should not have called EditionService', () => { - expectSpyCall(editionServiceUpdateIsRowTablesViewSpy, 0); + it('... should not have called EditionStateService', () => { + expectSpyCall(editionStateServiceUpdateIsRowTablesViewSpy, 0); }); it('... should not have called EditionDataService', () => { @@ -114,8 +120,8 @@ describe('EditionRowTablesComponent (DONE)', () => { fixture.detectChanges(); }); - it('... should have updated IsRowTableViewFlag (via EditionService)', () => { - expectSpyCall(editionServiceUpdateIsRowTablesViewSpy, 1, true); + it('... should have updated IsRowTableViewFlag (via EditionStateService)', () => { + expectSpyCall(editionStateServiceUpdateIsRowTablesViewSpy, 1, true); }); it('... should have called EditionDataService', () => { @@ -311,10 +317,10 @@ describe('EditionRowTablesComponent (DONE)', () => { }); describe('#ngOnDestroy()', () => { - it('... should have cleared isRowTableView$ on destroy (via EditionService)', () => { + it('... should have cleared isRowTableView$ on destroy (via EditionStateService)', () => { component.ngOnDestroy(); - expectSpyCall(editionServiceClearIsRowTablesViewSpy, 1); + expectSpyCall(editionStateServiceClearIsRowTablesViewSpy, 1); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.ts b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.ts index e54744d0d3..41c2881f75 100644 --- a/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-row-tables/edition-row-tables.component.ts @@ -2,7 +2,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { EditionRowTablesList } from '@awg-views/edition-view/models'; -import { EditionDataService, EditionService } from '@awg-views/edition-view/services'; +import { EditionDataService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionRowTables component. @@ -26,13 +26,13 @@ export class EditionRowTablesComponent implements OnDestroy, OnInit { /** * Constructor of the EditionRowTablesComponent. * - * It declares private instances of the EditionService and EditionDataService. + * It declares private instances of the EditionStateService and EditionDataService. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {EditionDataService} editionDataService Instance of the EditionDataService. */ constructor( - private editionService: EditionService, + private editionStateService: EditionStateService, private editionDataService: EditionDataService ) {} @@ -43,7 +43,7 @@ export class EditionRowTablesComponent implements OnDestroy, OnInit { * when initializing the component. */ ngOnInit(): void { - this.editionService.updateIsRowTableView(true); + this.editionStateService.updateIsRowTableView(true); this.rowTablesData$ = this.editionDataService.getEditionRowTablesData(); } @@ -56,6 +56,6 @@ export class EditionRowTablesComponent implements OnDestroy, OnInit { * Destroys subscriptions. */ ngOnDestroy() { - this.editionService.clearIsRowTableView(); + this.editionStateService.clearIsRowTableView(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts index e14e573990..6bb23eaa4a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts @@ -17,7 +17,7 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionSectionDetailOverviewComponent } from './edition-section-detail-overview.component'; @@ -32,10 +32,10 @@ describe('EditionSectionDetailOverviewComponent', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockEditionService: Partial; + let mockEditionStateService: Partial; - let editionServiceGetSelectedEditionSeriesSpy: Spy; - let editionServiceGetSelectedEditionSectionSpy: Spy; + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceGetSelectedEditionSectionSpy: Spy; let setupSectionDetailOverviewSpy: Spy; let expectedSelectedSeries: EditionOutlineSeries; @@ -47,8 +47,8 @@ describe('EditionSectionDetailOverviewComponent', () => { }); beforeEach(async () => { - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), getSelectedEditionSection: (): Observable => observableOf(expectedSelectedSection), }; @@ -59,7 +59,7 @@ describe('EditionSectionDetailOverviewComponent', () => { EditionComplexCardStubComponent, RouterLinkStubDirective, ], - providers: [{ provide: EditionService, useValue: mockEditionService }], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], }).compileComponents(); fixture = TestBed.createComponent(EditionSectionDetailOverviewComponent); @@ -73,12 +73,12 @@ describe('EditionSectionDetailOverviewComponent', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - editionServiceGetSelectedEditionSeriesSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, 'getSelectedEditionSeries' ).and.callThrough(); - editionServiceGetSelectedEditionSectionSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionSectionSpy = spyOn( + mockEditionStateService, 'getSelectedEditionSection' ).and.callThrough(); setupSectionDetailOverviewSpy = spyOn(component, 'setupSectionDetailOverview').and.callThrough(); @@ -373,21 +373,21 @@ describe('EditionSectionDetailOverviewComponent', () => { expectSpyCall(setupSectionDetailOverviewSpy, 1); }); - it('... should have called `editionService.getSelectedEditionSeries`', () => { - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + it('... should have called `editionStateService.getSelectedEditionSeries`', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); }); - it('... should have set selectedSeries (via EditionService)', () => { - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + it('... should have set selectedSeries (via EditionStateService)', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); expectToEqual(component.selectedSeries, expectedSelectedSeries); }); - it('... should have called `editionService.getSelectedEditionSection`', () => { - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + it('... should have called `editionStateService.getSelectedEditionSection`', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); }); - it('... should have set selectedSection (via EditionService)', () => { - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + it('... should have set selectedSection (via EditionStateService)', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); expectToEqual(component.selectedSection, expectedSelectedSection); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts index 1b054435b8..62f9e8408e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { UtilityService } from '@awg-core/services'; import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSectionDetailOverview component. @@ -34,14 +34,14 @@ export class EditionSectionDetailOverviewComponent implements OnInit { /** * Constructor of the EditionSectionDetailComponent. * - * It declares private instances of the EditionService, + * It declares private instances of the EditionStateService, * and a public instance of the UtilityService. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {UtilityService} utils Instance of the UtilityService. */ constructor( - private editionService: EditionService, + private editionStateService: EditionStateService, public utils: UtilityService ) { // Intentionally left empty until implemented @@ -65,7 +65,7 @@ export class EditionSectionDetailOverviewComponent implements OnInit { * @returns {void} Sets up the section detail overview. */ setupSectionDetailOverview(): void { - this.editionService.getSelectedEditionSeries().subscribe(series => (this.selectedSeries = series)); - this.editionService.getSelectedEditionSection().subscribe(section => (this.selectedSection = section)); + this.editionStateService.getSelectedEditionSeries().subscribe(series => (this.selectedSeries = series)); + this.editionStateService.getSelectedEditionSection().subscribe(section => (this.selectedSection = section)); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts index bde6d1bbd9..000bc6fc86 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.spec.ts @@ -10,7 +10,7 @@ import { expectSpyCall, getAndExpectDebugElementByDirective } from '@testing/exp import { ActivatedRouteStub, RouterOutletStubComponent } from '@testing/router-stubs'; import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionSectionDetailComponent } from './edition-section-detail.component'; @@ -20,12 +20,12 @@ describe('EditionSectionDetailComponent (DONE)', () => { let compDe: DebugElement; let mockActivatedRoute: ActivatedRouteStub; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let updateSectionFromRouteSpy: Spy; - let editionServiceGetSelectedEditionSeriesSpy: Spy; let editionOutlineServiceGetEditionSectionByIdSpy: Spy; - let editionServiceUpdateSelectedEditionSectionSpy: Spy; + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceUpdateSelectedEditionSectionSpy: Spy; let expectedSelectedSeries: EditionOutlineSeries; let expectedSelectedSection: EditionOutlineSection; @@ -38,8 +38,8 @@ describe('EditionSectionDetailComponent (DONE)', () => { }); beforeEach(async () => { - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), updateSelectedEditionSection: (editionSection: EditionOutlineSection): void => {}, }; @@ -51,7 +51,7 @@ describe('EditionSectionDetailComponent (DONE)', () => { declarations: [EditionSectionDetailComponent, RouterOutletStubComponent], providers: [ { provide: ActivatedRoute, useValue: mockActivatedRoute }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); }); @@ -71,18 +71,18 @@ describe('EditionSectionDetailComponent (DONE)', () => { // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E updateSectionFromRouteSpy = spyOn(component, 'updateSectionFromRoute').and.callThrough(); - editionServiceGetSelectedEditionSeriesSpy = spyOn( - mockEditionService, - 'getSelectedEditionSeries' - ).and.callThrough(); - editionServiceUpdateSelectedEditionSectionSpy = spyOn( - mockEditionService, - 'updateSelectedEditionSection' - ).and.callThrough(); editionOutlineServiceGetEditionSectionByIdSpy = spyOn( EditionOutlineService, 'getEditionSectionById' ).and.callThrough(); + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, + 'getSelectedEditionSeries' + ).and.callThrough(); + editionStateServiceUpdateSelectedEditionSectionSpy = spyOn( + mockEditionStateService, + 'updateSelectedEditionSection' + ).and.callThrough(); }); afterAll(() => { @@ -125,16 +125,16 @@ describe('EditionSectionDetailComponent (DONE)', () => { expectSpyCall(updateSectionFromRouteSpy, 1); }); - it('... should have called editionService.getSelectedEditionSeries', () => { - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + it('... should have called editionStateService.getSelectedEditionSeries', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); }); it('... should have called EditionOutlineService.getEditionSectionById', () => { expectSpyCall(editionOutlineServiceGetEditionSectionByIdSpy, 1, [expectedSeriesId, expectedSectionId]); }); - it('... should have called editionService.updateSelectedEditionSection with selectedSection', () => { - expectSpyCall(editionServiceUpdateSelectedEditionSectionSpy, 1, expectedSelectedSection); + it('... should have called editionStateService.updateSelectedEditionSection with selectedSection', () => { + expectSpyCall(editionStateServiceUpdateSelectedEditionSectionSpy, 1, expectedSelectedSection); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts index a1c7953cad..a6c6cc5e18 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.component.ts @@ -4,7 +4,7 @@ import { ActivatedRoute } from '@angular/router'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; -import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSectionDetail component. @@ -28,14 +28,14 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { /** * Constructor of the EditionSectionDetailComponent. * - * It declares private instances of the Angular ActivatedRoute and the EditionService. + * It declares private instances of the Angular ActivatedRoute and the EditionStateService. * * @param {ActivatedRoute} route Instance of the ActivatedRoute. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. */ constructor( private route: ActivatedRoute, - private editionService: EditionService + private editionStateService: EditionStateService ) { // Intentionally left empty until implemented } @@ -53,14 +53,15 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { /** * Public method: updateSectionFromRoute. * - * It fetches the route params to get the id of the current section and updates the edition service. + * It fetches the route params to get the id of the current section + * and updates the EditionStateService. * * @returns {void} Updates the edition section. */ updateSectionFromRoute(): void { const sectionId = this.route.snapshot.paramMap.get('id'); - this.editionService + this.editionStateService .getSelectedEditionSeries() .pipe( takeUntil(this._destroyed$), @@ -69,7 +70,7 @@ export class EditionSectionDetailComponent implements OnInit, OnDestroy { .subscribe(series => { const seriesId = series?.series?.route; const selectedSection = EditionOutlineService.getEditionSectionById(seriesId, sectionId); - this.editionService.updateSelectedEditionSection(selectedSection); + this.editionStateService.updateSelectedEditionSection(selectedSection); }); } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts index fe2be4b1aa..fd49815199 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts @@ -16,7 +16,7 @@ import { import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionSectionsComponent } from './edition-sections.component'; @@ -25,12 +25,12 @@ describe('EditionSectionsComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let clearSelectedSectionSpy: Spy; let getSeriesSpy: Spy; - let editionServiceClearSelectedEditionSectionSpy: Spy; - let editionServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceClearSelectedEditionSectionSpy: Spy; + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; let expectedSelectedSeries: EditionOutlineSeries; let expectedSelectedSection: EditionOutlineSection; @@ -41,15 +41,15 @@ describe('EditionSectionsComponent (DONE)', () => { }); beforeEach(waitForAsync(() => { - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), clearSelectedEditionSection: (): void => {}, }; TestBed.configureTestingModule({ declarations: [EditionSectionsComponent, RouterLinkStubDirective], - providers: [{ provide: EditionService, useValue: mockEditionService }], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], }).compileComponents(); })); @@ -68,12 +68,12 @@ describe('EditionSectionsComponent (DONE)', () => { clearSelectedSectionSpy = spyOn(component, 'clearSelectedSection').and.callThrough(); getSeriesSpy = spyOn(component, 'getSeries').and.callThrough(); - editionServiceClearSelectedEditionSectionSpy = spyOn( - mockEditionService, + editionStateServiceClearSelectedEditionSectionSpy = spyOn( + mockEditionStateService, 'clearSelectedEditionSection' ).and.callThrough(); - editionServiceGetSelectedEditionSeriesSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, 'getSelectedEditionSeries' ).and.callThrough(); }); @@ -330,12 +330,12 @@ describe('EditionSectionsComponent (DONE)', () => { expect(component.clearSelectedSection).toBeDefined(); }); - it('...should call `clearSelectedEditionSeries` from EditionService', () => { - expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 1); + it('...should call `clearSelectedEditionSeries` from EditionStateService', () => { + expectSpyCall(editionStateServiceClearSelectedEditionSectionSpy, 1); component.clearSelectedSection(); - expectSpyCall(editionServiceClearSelectedEditionSectionSpy, 2); + expectSpyCall(editionStateServiceClearSelectedEditionSectionSpy, 2); }); }); @@ -344,12 +344,12 @@ describe('EditionSectionsComponent (DONE)', () => { expect(component.getSeries).toBeDefined(); }); - it('...should call `getSelectedEditionSeries` from EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + it('...should call `getSelectedEditionSeries` from EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); component.getSeries(); - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 2); + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 2); }); it('...should set `selectedSeries$`', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts index 1f819f5c2b..d213113a1b 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.ts @@ -3,7 +3,7 @@ import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSection component. @@ -26,8 +26,10 @@ export class EditionSectionsComponent implements OnInit { /** * Constructor of the EditionSectionsComponent. + * + * It declares a private instance of the EditionStateService. */ - constructor(private editionService: EditionService) { + constructor(private editionStateService: EditionStateService) { // Intentionally left empty until implemented } @@ -45,22 +47,22 @@ export class EditionSectionsComponent implements OnInit { /** * Public method: clearSelectedSection. * - * It clears the selected section from the EditionService. + * It clears the selected section from the EditionStateService. * * @returns {void} Clears the edition section. */ clearSelectedSection(): void { - this.editionService.clearSelectedEditionSection(); + this.editionStateService.clearSelectedEditionSection(); } /** * Public method: getSeries. * - * It gets the selected series from the EditionService. + * It gets the selected series from the EditionStateService. * * @returns {void} Gets the edition series. */ getSeries(): void { - this.selectedSeries$ = this.editionService.getSelectedEditionSeries(); + this.selectedSeries$ = this.editionStateService.getSelectedEditionSeries(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts index 04da1efb5e..f566c697e7 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.spec.ts @@ -5,7 +5,7 @@ import { ActivatedRoute, RouterModule } from '@angular/router'; import { ActivatedRouteStub } from '@testing/router-stubs'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionStateService } from '@awg-views/edition-view/services'; import { EditionSeriesDetailComponent } from './edition-series-detail.component'; @@ -14,13 +14,13 @@ describe('EditionSeriesDetailComponent', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let expectedEditionSeries: EditionOutlineSeries; beforeEach(async () => { - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { updateSelectedEditionSeries: (editionSeries: EditionOutlineSeries): void => {}, }; @@ -32,7 +32,7 @@ describe('EditionSeriesDetailComponent', () => { declarations: [EditionSeriesDetailComponent], providers: [ { provide: ActivatedRoute, useValue: mockActivatedRoute }, - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, ], }).compileComponents(); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts index 9276cc5dc5..d1c2d3937a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-series-detail.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSeriesDetail component. @@ -26,14 +26,14 @@ export class EditionSeriesDetailComponent implements OnInit { /** * Constructor of the EditionSeriesDetailComponent. * - * It declares private instances of the Angular ActivatedRoute and the EditionService. + * It declares private instances of the Angular ActivatedRoute and the EditionStateService. * * @param {ActivatedRoute} route Instance of the ActivatedRoute. - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. */ constructor( private route: ActivatedRoute, - private editionService: EditionService + private editionStateService: EditionStateService ) { // Intentionally left empty until implemented } @@ -51,7 +51,8 @@ export class EditionSeriesDetailComponent implements OnInit { /** * Public method: updateSeriesFromRoute. * - * It fetches the route params to get the id of the current series and updates the edition service. + * It fetches the route params to get the id of the current series + * and updates the EditionStateService. * * @returns {void} Updates the edition series. */ @@ -59,6 +60,6 @@ export class EditionSeriesDetailComponent implements OnInit { const id = this.route.snapshot.paramMap.get('id'); this.selectedSeries = EditionOutlineService.getEditionSeriesById(id); - this.editionService.updateSelectedEditionSeries(this.selectedSeries); + this.editionStateService.updateSelectedEditionSeries(this.selectedSeries); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts index b77cf5fe2c..4b29e34777 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts @@ -16,7 +16,7 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionSeriesComponent } from './edition-series.component'; @@ -25,7 +25,7 @@ describe('EditionSeriesComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let clearSelectionsSpy: Spy; let getEditionOutlineSpy: Spy; @@ -41,15 +41,15 @@ describe('EditionSeriesComponent (DONE)', () => { }); beforeEach(waitForAsync(() => { - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { clearSelectedEditionSeries: () => {}, clearSelectedEditionSection: () => {}, }; TestBed.configureTestingModule({ declarations: [EditionSeriesComponent, RouterLinkStubDirective], - providers: [{ provide: EditionService, useValue: mockEditionService }], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], }).compileComponents(); })); @@ -65,11 +65,11 @@ describe('EditionSeriesComponent (DONE)', () => { clearSelectionsSpy = spyOn(component, 'clearSelections').and.callThrough(); getEditionOutlineSpy = spyOn(component, 'getEditionOutline').and.callThrough(); serviceClearSelectedEditionSeriesSpy = spyOn( - mockEditionService, + mockEditionStateService, 'clearSelectedEditionSeries' ).and.callThrough(); serviceClearSelectedEditionSectionSpy = spyOn( - mockEditionService, + mockEditionStateService, 'clearSelectedEditionSection' ).and.callThrough(); serviceGetEditionOutlineSpy = spyOn(EditionOutlineService, 'getEditionOutline').and.callThrough(); @@ -80,8 +80,8 @@ describe('EditionSeriesComponent (DONE)', () => { }); it('... injected service should use provided mockValue', () => { - const editionService = TestBed.inject(EditionService); - expectToBe(mockEditionService === editionService, true); + const editionStateService = TestBed.inject(EditionStateService); + expectToBe(mockEditionStateService === editionStateService, true); }); describe('BEFORE initial data binding', () => { @@ -494,7 +494,7 @@ describe('EditionSeriesComponent (DONE)', () => { expect(component.clearSelections).toBeDefined(); }); - it('...should call `clearSelectedEditionSeries` from EditionService', () => { + it('...should call `clearSelectedEditionSeries` from EditionStateService', () => { expectSpyCall(serviceClearSelectedEditionSectionSpy, 1); component.clearSelections(); @@ -502,7 +502,7 @@ describe('EditionSeriesComponent (DONE)', () => { expectSpyCall(serviceClearSelectedEditionSeriesSpy, 2); }); - it('...should call `clearSelectedEditionSection` from EditionService', () => { + it('...should call `clearSelectedEditionSection` from EditionStateService', () => { expectSpyCall(serviceClearSelectedEditionSectionSpy, 1); component.clearSelections(); @@ -516,7 +516,7 @@ describe('EditionSeriesComponent (DONE)', () => { expect(component.getEditionOutline).toBeDefined(); }); - it('...should call `getEditionOutline` from EditionService', () => { + it('...should call `getEditionOutline` from EditionStateService', () => { expectSpyCall(serviceGetEditionOutlineSpy, 1); component.getEditionOutline(); diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts index fc98132447..6d4d01ade2 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionSeries component. @@ -25,11 +25,11 @@ export class EditionSeriesComponent implements OnInit { /** * Constructor of the EditionSeriesComponent. * - * It declares a private instance of the EditionService. + * It declares a private instance of the EditionStateService. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. */ - constructor(private editionService: EditionService) { + constructor(private editionStateService: EditionStateService) { // Intentionally left empty until implemented } @@ -47,19 +47,19 @@ export class EditionSeriesComponent implements OnInit { /** * Public method: clearSelectedSeries. * - * It clears the selected series from the EditionService. + * It clears the selected series from the EditionStateService. * * @returns {void} Clears the edition series. */ clearSelections(): void { - this.editionService.clearSelectedEditionSeries(); - this.editionService.clearSelectedEditionSection(); + this.editionStateService.clearSelectedEditionSeries(); + this.editionStateService.clearSelectedEditionSection(); } /** * Public method: getEditionOutline. * - * It gets the outline with array of series from the EditionService. + * It gets the outline with array of series from the EditionStateService. * * @returns {void} Gets the edition outline. */ diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index 24802b77c6..b038598a3c 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -18,7 +18,7 @@ import { ActivatedRouteStub, RouterLinkStubDirective, RouterOutletStubComponent import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionService } from '@awg-views/edition-view/services'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; import { EditionViewComponent } from './edition-view.component'; @@ -41,17 +41,17 @@ describe('EditionViewComponent (DONE)', () => { let mockRouter; let mockActivatedRoute: ActivatedRouteStub; - let mockEditionService: Partial; + let mockEditionStateService: Partial; let setupEditionViewSpy: Spy; let routeToSidenavSpy: Spy; - let editionServiceGetSelectedEditionComplexSpy: Spy; - let editionServiceGetSelectedEditionSeriesSpy: Spy; - let editionServiceGetSelectedEditionSectionSpy: Spy; - let editionServiceGetIsIntroViewSpy: Spy; - let editionServiceGetIsPrefaceViewSpy: Spy; - let editionServiceGetIsRowTableViewSpy: Spy; + let editionStateServiceGetSelectedEditionComplexSpy: Spy; + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceGetSelectedEditionSectionSpy: Spy; + let editionStateServiceGetIsIntroViewSpy: Spy; + let editionStateServiceGetIsPrefaceViewSpy: Spy; + let editionStateServiceGetIsRowTableViewSpy: Spy; let expectedSelectedEditionComplexId: string; let expectedSelectedEditionComplex: EditionComplex; @@ -77,8 +77,8 @@ describe('EditionViewComponent (DONE)', () => { // Mock activated route with stub class mockActivatedRoute = new ActivatedRouteStub(); - // Mock edition service - mockEditionService = { + // Mock edition state service + mockEditionStateService = { getIsIntroView: (): Observable => observableOf(expectedIsIntroView), getIsPrefaceView: (): Observable => observableOf(expectedIsPrefaceView), getIsRowTableView: (): Observable => observableOf(expectedIsRowTableView), @@ -103,7 +103,7 @@ describe('EditionViewComponent (DONE)', () => { ScrollToTopStubComponent, ], providers: [ - { provide: EditionService, useValue: mockEditionService }, + { provide: EditionStateService, useValue: mockEditionStateService }, { provide: ActivatedRoute, useValue: mockActivatedRoute }, { provide: Router, useValue: mockRouter }, ], @@ -115,7 +115,7 @@ describe('EditionViewComponent (DONE)', () => { component = fixture.componentInstance; compDe = fixture.debugElement; - mockEditionService = TestBed.inject(EditionService); + mockEditionStateService = TestBed.inject(EditionStateService); // Test data expectedIsIntroView = false; @@ -135,19 +135,19 @@ describe('EditionViewComponent (DONE)', () => { routeToSidenavSpy = spyOn(component, 'routeToSidenav').and.callThrough(); // Spies for service methods - editionServiceGetSelectedEditionComplexSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionComplexSpy = spyOn( + mockEditionStateService, 'getSelectedEditionComplex' ).and.callThrough(); - editionServiceGetIsIntroViewSpy = spyOn(mockEditionService, 'getIsIntroView').and.callThrough(); - editionServiceGetIsPrefaceViewSpy = spyOn(mockEditionService, 'getIsPrefaceView').and.callThrough(); - editionServiceGetIsRowTableViewSpy = spyOn(mockEditionService, 'getIsRowTableView').and.callThrough(); - editionServiceGetSelectedEditionSeriesSpy = spyOn( - mockEditionService, + editionStateServiceGetIsIntroViewSpy = spyOn(mockEditionStateService, 'getIsIntroView').and.callThrough(); + editionStateServiceGetIsPrefaceViewSpy = spyOn(mockEditionStateService, 'getIsPrefaceView').and.callThrough(); + editionStateServiceGetIsRowTableViewSpy = spyOn(mockEditionStateService, 'getIsRowTableView').and.callThrough(); + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, 'getSelectedEditionSeries' ).and.callThrough(); - editionServiceGetSelectedEditionSectionSpy = spyOn( - mockEditionService, + editionStateServiceGetSelectedEditionSectionSpy = spyOn( + mockEditionStateService, 'getSelectedEditionSection' ).and.callThrough(); }); @@ -229,10 +229,10 @@ describe('EditionViewComponent (DONE)', () => { expectSpyCall(setupEditionViewSpy, 0); }); - it('... should not have called EditionService', () => { - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 0); - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 0); - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 0); + it('... should not have called EditionStateService', () => { + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 0); + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 0); + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 0); }); it('... should not have set isIntroView$', () => { @@ -776,9 +776,9 @@ describe('EditionViewComponent (DONE)', () => { expectSpyCall(setupEditionViewSpy, 1); }); - it('... should get isIntroView$ (via EditionService)', waitForAsync(() => { + it('... should get isIntroView$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetIsIntroViewSpy, 1); + expectSpyCall(editionStateServiceGetIsIntroViewSpy, 1); expect(component.isIntroView$).toBeDefined(); component.isIntroView$.subscribe({ @@ -788,9 +788,9 @@ describe('EditionViewComponent (DONE)', () => { }); })); - it('... should get isPrefaceView$ (via EditionService)', waitForAsync(() => { + it('... should get isPrefaceView$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetIsPrefaceViewSpy, 1); + expectSpyCall(editionStateServiceGetIsPrefaceViewSpy, 1); expect(component.isPrefaceView$).toBeDefined(); component.isPrefaceView$.subscribe({ @@ -800,9 +800,9 @@ describe('EditionViewComponent (DONE)', () => { }); })); - it('... should get isRowTableView$ (via EditionService)', waitForAsync(() => { + it('... should get isRowTableView$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetIsRowTableViewSpy, 1); + expectSpyCall(editionStateServiceGetIsRowTableViewSpy, 1); expect(component.isRowTableView$).toBeDefined(); component.isRowTableView$.subscribe({ @@ -812,9 +812,9 @@ describe('EditionViewComponent (DONE)', () => { }); })); - it('... should get selectedEditionSeries$ (via EditionService)', waitForAsync(() => { + it('... should get selectedEditionSeries$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetSelectedEditionSeriesSpy, 1); + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); expect(component.selectedEditionSeries$).toBeDefined(); component.selectedEditionSeries$.subscribe({ @@ -824,9 +824,9 @@ describe('EditionViewComponent (DONE)', () => { }); })); - it('... should get selectedEditionSection$ (via EditionService)', waitForAsync(() => { + it('... should get selectedEditionSection$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetSelectedEditionSectionSpy, 1); + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); expect(component.selectedEditionSection$).toBeDefined(); component.selectedEditionSection$.subscribe({ @@ -836,9 +836,9 @@ describe('EditionViewComponent (DONE)', () => { }); })); - it('... should get selectedEditionComplex$ (via EditionService)', waitForAsync(() => { + it('... should get selectedEditionComplex$ (via EditionStateService)', waitForAsync(() => { expectSpyCall(setupEditionViewSpy, 1); - expectSpyCall(editionServiceGetSelectedEditionComplexSpy, 1); + expectSpyCall(editionStateServiceGetSelectedEditionComplexSpy, 1); expect(component.selectedEditionComplex$).toBeDefined(); component.selectedEditionComplex$.subscribe({ diff --git a/src/app/views/edition-view/edition-view.component.ts b/src/app/views/edition-view/edition-view.component.ts index 7590c0a5e3..d37700857f 100644 --- a/src/app/views/edition-view/edition-view.component.ts +++ b/src/app/views/edition-view/edition-view.component.ts @@ -5,7 +5,7 @@ import { delay, Observable } from 'rxjs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionService } from '@awg-views/edition-view/services'; +import { EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionView component. @@ -84,13 +84,13 @@ export class EditionViewComponent implements OnInit { * Constructor of the EditionViewComponent. * * It declares private instances of - * EditionService, ActivatedRoute and Router. + * EditionStateService, ActivatedRoute and Router. * - * @param {EditionService} editionService Instance of the EditionService. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. * @param {Router} router Instance of the Angular router. */ constructor( - private editionService: EditionService, + private editionStateService: EditionStateService, private router: Router ) {} @@ -119,17 +119,17 @@ export class EditionViewComponent implements OnInit { * * It sets up the edition view by loading * the selected series, section, and edition complex - * from the edition service. + * from the EditionStateService. * * @returns {void} Sets up the edition view. */ setupEditionView(): void { - this.selectedEditionSeries$ = this.editionService.getSelectedEditionSeries().pipe(delay(0)); - this.selectedEditionSection$ = this.editionService.getSelectedEditionSection().pipe(delay(0)); - this.selectedEditionComplex$ = this.editionService.getSelectedEditionComplex().pipe(delay(0)); - this.isIntroView$ = this.editionService.getIsIntroView().pipe(delay(0)); - this.isPrefaceView$ = this.editionService.getIsPrefaceView().pipe(delay(0)); - this.isRowTableView$ = this.editionService.getIsRowTableView().pipe(delay(0)); + this.selectedEditionSeries$ = this.editionStateService.getSelectedEditionSeries().pipe(delay(0)); + this.selectedEditionSection$ = this.editionStateService.getSelectedEditionSection().pipe(delay(0)); + this.selectedEditionComplex$ = this.editionStateService.getSelectedEditionComplex().pipe(delay(0)); + this.isIntroView$ = this.editionStateService.getIsIntroView().pipe(delay(0)); + this.isPrefaceView$ = this.editionStateService.getIsPrefaceView().pipe(delay(0)); + this.isRowTableView$ = this.editionStateService.getIsRowTableView().pipe(delay(0)); } /** diff --git a/src/app/views/edition-view/services/edition.service.spec.ts b/src/app/views/edition-view/services/edition-state.service.spec.ts similarity index 67% rename from src/app/views/edition-view/services/edition.service.spec.ts rename to src/app/views/edition-view/services/edition-state.service.spec.ts index 8254dc6dd5..3f064e842c 100644 --- a/src/app/views/edition-view/services/edition.service.spec.ts +++ b/src/app/views/edition-view/services/edition-state.service.spec.ts @@ -8,10 +8,10 @@ import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-c import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; -import { EditionService } from './edition.service'; +import { EditionStateService } from './edition-state.service'; -describe('EditionService (DONE)', () => { - let editionService: EditionService; +describe('EditionStateService (DONE)', () => { + let editionStateService: EditionStateService; let expectedEditionComplex: EditionComplex; let expectedEditionOutline: EditionOutlineSeries[]; @@ -29,10 +29,10 @@ describe('EditionService (DONE)', () => { beforeEach(() => { TestBed.configureTestingModule({ - providers: [EditionService], + providers: [EditionStateService], }); // Inject service - editionService = TestBed.inject(EditionService); + editionStateService = TestBed.inject(EditionStateService); // Test data (default) expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); @@ -50,118 +50,118 @@ describe('EditionService (DONE)', () => { }); it('... should create', () => { - expect(editionService).toBeTruthy(); + expect(editionStateService).toBeTruthy(); }); it('... should have bufferSize = 1', () => { - expectToBe((editionService as any)._bufferSize, 1); + expectToBe((editionStateService as any)._bufferSize, 1); }); it('... should have _isIntroViewSubject', () => { - expect((editionService as any)._isIntroViewSubject).toBeTruthy(); + expect((editionStateService as any)._isIntroViewSubject).toBeTruthy(); }); it('... should have _isIntroViewStream$', () => { - expect((editionService as any)._isIntroViewStream$).toBeTruthy(); + expect((editionStateService as any)._isIntroViewStream$).toBeTruthy(); }); it('... should have _isPrefaceViewSubject', () => { - expect((editionService as any)._isPrefaceViewSubject).toBeTruthy(); + expect((editionStateService as any)._isPrefaceViewSubject).toBeTruthy(); }); it('... should have _isPrefaceViewStream$', () => { - expect((editionService as any)._isPrefaceViewStream$).toBeTruthy(); + expect((editionStateService as any)._isPrefaceViewStream$).toBeTruthy(); }); it('... should have _isRowTableViewSubject', () => { - expect((editionService as any)._isRowTableViewSubject).toBeTruthy(); + expect((editionStateService as any)._isRowTableViewSubject).toBeTruthy(); }); it('... should have _isRowTableViewStream$', () => { - expect((editionService as any)._isRowTableViewStream$).toBeTruthy(); + expect((editionStateService as any)._isRowTableViewStream$).toBeTruthy(); }); it('... should have _selectedEditionComplexSubject', () => { - expect((editionService as any)._selectedEditionComplexSubject).toBeTruthy(); + expect((editionStateService as any)._selectedEditionComplexSubject).toBeTruthy(); }); it('... should have _selectedEditionComplexStream$', () => { - expect((editionService as any)._selectedEditionComplexStream$).toBeTruthy(); + expect((editionStateService as any)._selectedEditionComplexStream$).toBeTruthy(); }); it('... should have _selectedEditionSeriesSubject', () => { - expect((editionService as any)._selectedEditionSeriesSubject).toBeTruthy(); + expect((editionStateService as any)._selectedEditionSeriesSubject).toBeTruthy(); }); it('... should have _selectedEditionSeriesStream$', () => { - expect((editionService as any)._selectedEditionSeriesStream$).toBeTruthy(); + expect((editionStateService as any)._selectedEditionSeriesStream$).toBeTruthy(); }); it('... should have _selectedEditionSectionSubject', () => { - expect((editionService as any)._selectedEditionSectionSubject).toBeTruthy(); + expect((editionStateService as any)._selectedEditionSectionSubject).toBeTruthy(); }); describe('EditionComplex', () => { describe('#getSelectedEditionComplex()', () => { it('... should have a method `getSelectedEditionComplex`', () => { - expect(editionService.getSelectedEditionComplex).toBeDefined(); + expect(editionStateService.getSelectedEditionComplex).toBeDefined(); }); it('... should return given editionComplex', waitForAsync(() => { - editionService.getSelectedEditionComplex().subscribe({ + editionStateService.getSelectedEditionComplex().subscribe({ next: (editionComplex: EditionComplex) => { expectToEqual(editionComplex, expectedEditionComplex); }, }); // Set editionComplex (with default value) - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); })); it('... should return updated editionComplex', waitForAsync(() => { - editionService.getSelectedEditionComplex().subscribe({ + editionStateService.getSelectedEditionComplex().subscribe({ next: (editionComplex: EditionComplex) => { expectToEqual(editionComplex, expectedEditionComplex); }, }); // Set editionComplex (with default value) - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); // Update editionComplex expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP25'); - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); })); }); describe('#updateSelectedEditionComplex()', () => { it('... should have a method `updateSelectedEditionComplex`', () => { - expect(editionService.updateSelectedEditionComplex).toBeDefined(); + expect(editionStateService.updateSelectedEditionComplex).toBeDefined(); }); it('... should emit updated editionComplex', waitForAsync(() => { - editionService.getSelectedEditionComplex().subscribe({ + editionStateService.getSelectedEditionComplex().subscribe({ next: (editionComplex: EditionComplex) => { expectToEqual(editionComplex, expectedEditionComplex); }, }); // Set editionComplex - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); // Update editionComplex expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP25'); - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); })); }); describe('#clearSelectedEditionComplex()', () => { it('... should have a method `clearSelectedEditionComplex`', () => { - expect(editionService.clearSelectedEditionComplex).toBeDefined(); + expect(editionStateService.clearSelectedEditionComplex).toBeDefined(); }); it('... should update edition complex with null value', waitForAsync(() => { - editionService.getSelectedEditionComplex().subscribe({ + editionStateService.getSelectedEditionComplex().subscribe({ next: (editionComplex: EditionComplex) => { expectToEqual(editionComplex, expectedEditionComplex); }, @@ -169,22 +169,22 @@ describe('EditionService (DONE)', () => { // Clear editionComplex expectedEditionComplex = null; - editionService.clearSelectedEditionComplex(); + editionStateService.clearSelectedEditionComplex(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getSelectedEditionComplex().subscribe({ + editionStateService.getSelectedEditionComplex().subscribe({ next: (editionComplex: EditionComplex) => { expectToEqual(editionComplex, expectedEditionComplex); }, }); // Update editionComplex - editionService.updateSelectedEditionComplex(expectedEditionComplex); + editionStateService.updateSelectedEditionComplex(expectedEditionComplex); // Clear editionComplex expectedEditionComplex = null; - editionService.clearSelectedEditionComplex(); + editionStateService.clearSelectedEditionComplex(); })); }); }); @@ -192,64 +192,64 @@ describe('EditionService (DONE)', () => { describe('EditionSeries', () => { describe('#getSelectedEditionSeries()', () => { it('... should have a method `getSelectedEditionSeries`', () => { - expect(editionService.getSelectedEditionSeries).toBeDefined(); + expect(editionStateService.getSelectedEditionSeries).toBeDefined(); }); it('... should return selected editionSeries', waitForAsync(() => { - editionService.getSelectedEditionSeries().subscribe({ + editionStateService.getSelectedEditionSeries().subscribe({ next: (editionSeries: EditionOutlineSeries) => { expectToEqual(editionSeries, expectedEditionSeries); }, }); // Set editionSeries (with default value) - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); })); it('... should return updated editionSeries', waitForAsync(() => { - editionService.getSelectedEditionSeries().subscribe({ + editionStateService.getSelectedEditionSeries().subscribe({ next: (editionSeries: EditionOutlineSeries) => { expectToEqual(editionSeries, expectedEditionSeries); }, }); // Set editionSeries (with default value) - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); // Update editionSeries expectedEditionSeries = expectedEditionOutline[1]; - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); })); }); describe('#updateSelectedEditionSeries()', () => { it('... should have a method `updateSelectedEditionSeries`', () => { - expect(editionService.updateSelectedEditionSeries).toBeDefined(); + expect(editionStateService.updateSelectedEditionSeries).toBeDefined(); }); it('... should emit updated editionSeries', waitForAsync(() => { - editionService.getSelectedEditionSeries().subscribe({ + editionStateService.getSelectedEditionSeries().subscribe({ next: (editionSeries: EditionOutlineSeries) => { expectToEqual(editionSeries, expectedEditionSeries); }, }); // Set editionSeries (with default value) - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); // Update editionSeries expectedEditionSeries = expectedEditionOutline[1]; - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); })); }); describe('#clearSelectedEditionSeries()', () => { it('... should have a method `clearSelectedEditionSeries`', () => { - expect(editionService.clearSelectedEditionSeries).toBeDefined(); + expect(editionStateService.clearSelectedEditionSeries).toBeDefined(); }); it('... should update editionSeries with null value', waitForAsync(() => { - editionService.getSelectedEditionSeries().subscribe({ + editionStateService.getSelectedEditionSeries().subscribe({ next: (editionSeries: EditionOutlineSeries) => { expectToEqual(editionSeries, expectedEditionSeries); }, @@ -257,22 +257,22 @@ describe('EditionService (DONE)', () => { // Clear editionSeries expectedEditionSeries = null; - editionService.clearSelectedEditionSeries(); + editionStateService.clearSelectedEditionSeries(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getSelectedEditionSeries().subscribe({ + editionStateService.getSelectedEditionSeries().subscribe({ next: (editionSeries: EditionOutlineSeries) => { expectToEqual(editionSeries, expectedEditionSeries); }, }); // Update editionSeries - editionService.updateSelectedEditionSeries(expectedEditionSeries); + editionStateService.updateSelectedEditionSeries(expectedEditionSeries); // Clear editionSeries expectedEditionSeries = null; - editionService.clearSelectedEditionSeries(); + editionStateService.clearSelectedEditionSeries(); })); }); }); @@ -280,64 +280,64 @@ describe('EditionService (DONE)', () => { describe('EditionSection', () => { describe('#getSelectedEditionSection()', () => { it('... should have a method `getSelectedEditionSection`', () => { - expect(editionService.getSelectedEditionSection).toBeDefined(); + expect(editionStateService.getSelectedEditionSection).toBeDefined(); }); it('... should return selected editionSection', waitForAsync(() => { - editionService.getSelectedEditionSection().subscribe({ + editionStateService.getSelectedEditionSection().subscribe({ next: (editionSection: EditionOutlineSection) => { expectToEqual(editionSection, expectedEditionSection); }, }); // Set editionSection (with default value) - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); })); it('... should return updated editionSection', waitForAsync(() => { - editionService.getSelectedEditionSection().subscribe({ + editionStateService.getSelectedEditionSection().subscribe({ next: (editionSection: EditionOutlineSection) => { expectToEqual(editionSection, expectedEditionSection); }, }); // Set editionSection (with default value) - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); // Update editionSection expectedEditionSection = expectedEditionOutline[0].sections[4]; - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); })); }); describe('#updateSelectedEditionSection()', () => { it('... should have a method `updateSelectedEditionSection`', () => { - expect(editionService.updateSelectedEditionSection).toBeDefined(); + expect(editionStateService.updateSelectedEditionSection).toBeDefined(); }); it('... should emit updated editionSection', waitForAsync(() => { - editionService.getSelectedEditionSection().subscribe({ + editionStateService.getSelectedEditionSection().subscribe({ next: (editionSection: EditionOutlineSection) => { expectToEqual(editionSection, expectedEditionSection); }, }); // Set editionSection (with default value) - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); // Update editionSection expectedEditionSection = expectedEditionOutline[0].sections[4]; - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); })); }); describe('#clearSelectedEditionSection()', () => { it('... should have a method `clearSelectedEditionSection`', () => { - expect(editionService.clearSelectedEditionSection).toBeDefined(); + expect(editionStateService.clearSelectedEditionSection).toBeDefined(); }); it('... should update editionSection with null value', waitForAsync(() => { - editionService.getSelectedEditionSection().subscribe({ + editionStateService.getSelectedEditionSection().subscribe({ next: (editionSection: EditionOutlineSection) => { expectToEqual(editionSection, expectedEditionSection); }, @@ -345,22 +345,22 @@ describe('EditionService (DONE)', () => { // Clear editionSection expectedEditionSection = null; - editionService.clearSelectedEditionSection(); + editionStateService.clearSelectedEditionSection(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getSelectedEditionSection().subscribe({ + editionStateService.getSelectedEditionSection().subscribe({ next: (editionSection: EditionOutlineSection) => { expectToEqual(editionSection, expectedEditionSection); }, }); // Update editionSection - editionService.updateSelectedEditionSection(expectedEditionSection); + editionStateService.updateSelectedEditionSection(expectedEditionSection); // Clear editionSection expectedEditionSection = null; - editionService.clearSelectedEditionSection(); + editionStateService.clearSelectedEditionSection(); })); }); }); @@ -368,64 +368,64 @@ describe('EditionService (DONE)', () => { describe('IntroView', () => { describe('#getIsIntroView()', () => { it('... should have a method `getIsIntroView`', () => { - expect(editionService.getIsIntroView).toBeDefined(); + expect(editionStateService.getIsIntroView).toBeDefined(); }); it('... should return isIntroView', waitForAsync(() => { - editionService.getIsIntroView().subscribe({ + editionStateService.getIsIntroView().subscribe({ next: (isIntroView: boolean) => { expectToBe(isIntroView, expectedIsIntroView); }, }); // Set isIntroView (with default value) - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); })); it('... should return updated isIntroView', waitForAsync(() => { - editionService.getIsIntroView().subscribe({ + editionStateService.getIsIntroView().subscribe({ next: (isIntroView: boolean) => { expectToBe(isIntroView, expectedIsIntroView); }, }); // Set isIntroView (with default value) - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); // Update isIntroView expectedIsIntroView = false; - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); })); }); describe('#updateIsIntroView()', () => { it('... should have a method `updateIsIntroView`', () => { - expect(editionService.updateIsIntroView).toBeDefined(); + expect(editionStateService.updateIsIntroView).toBeDefined(); }); it('... should emit updated isIntroView', waitForAsync(() => { - editionService.getIsIntroView().subscribe({ + editionStateService.getIsIntroView().subscribe({ next: (isIntroView: boolean) => { expectToBe(isIntroView, expectedIsIntroView); }, }); // Set isIntroView (with default value) - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); // Update isIntroView expectedIsIntroView = false; - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); })); }); describe('#clearIsIntroView()', () => { it('... should have a method `clearIsIntroView`', () => { - expect(editionService.clearIsIntroView).toBeDefined(); + expect(editionStateService.clearIsIntroView).toBeDefined(); }); it('... should update isIntroView with null value', waitForAsync(() => { - editionService.getIsIntroView().subscribe({ + editionStateService.getIsIntroView().subscribe({ next: (isIntroView: boolean) => { expectToBe(isIntroView, expectedIsIntroView); }, @@ -433,22 +433,22 @@ describe('EditionService (DONE)', () => { // Clear isIntroView expectedIsIntroView = null; - editionService.clearIsIntroView(); + editionStateService.clearIsIntroView(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getIsIntroView().subscribe({ + editionStateService.getIsIntroView().subscribe({ next: (isIntroView: boolean) => { expectToBe(isIntroView, expectedIsIntroView); }, }); // Update isIntroView - editionService.updateIsIntroView(expectedIsIntroView); + editionStateService.updateIsIntroView(expectedIsIntroView); // Clear isIntroView expectedIsIntroView = null; - editionService.clearIsIntroView(); + editionStateService.clearIsIntroView(); })); }); }); @@ -456,64 +456,64 @@ describe('EditionService (DONE)', () => { describe('PrefaceView', () => { describe('#getIsPrefaceView()', () => { it('... should have a method `getIsPrefaceView`', () => { - expect(editionService.getIsPrefaceView).toBeDefined(); + expect(editionStateService.getIsPrefaceView).toBeDefined(); }); it('... should return isPrefaceView', waitForAsync(() => { - editionService.getIsPrefaceView().subscribe({ + editionStateService.getIsPrefaceView().subscribe({ next: (isPrefaceView: boolean) => { expectToBe(isPrefaceView, expectedIsPrefaceView); }, }); // Set isPrefaceView (with default value) - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); })); it('... should return updated isPrefaceView', waitForAsync(() => { - editionService.getIsPrefaceView().subscribe({ + editionStateService.getIsPrefaceView().subscribe({ next: (isPrefaceView: boolean) => { expectToBe(isPrefaceView, expectedIsPrefaceView); }, }); // Set isPrefaceView (with default value) - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); // Update isPrefaceView expectedIsPrefaceView = false; - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); })); }); describe('#updateIsPrefaceView()', () => { it('... should have a method `updateIsPrefaceView`', () => { - expect(editionService.updateIsPrefaceView).toBeDefined(); + expect(editionStateService.updateIsPrefaceView).toBeDefined(); }); it('... should emit updated isPrefaceView', waitForAsync(() => { - editionService.getIsPrefaceView().subscribe({ + editionStateService.getIsPrefaceView().subscribe({ next: (isPrefaceView: boolean) => { expectToBe(isPrefaceView, expectedIsPrefaceView); }, }); // Set isPrefaceView (with default value) - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); // Update isPrefaceView expectedIsPrefaceView = false; - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); })); }); describe('#clearIsPrefaceView()', () => { it('... should have a method `clearIsPrefaceView`', () => { - expect(editionService.clearIsPrefaceView).toBeDefined(); + expect(editionStateService.clearIsPrefaceView).toBeDefined(); }); it('... should update isPrefaceView with null value', waitForAsync(() => { - editionService.getIsPrefaceView().subscribe({ + editionStateService.getIsPrefaceView().subscribe({ next: (isPrefaceView: boolean) => { expectToBe(isPrefaceView, expectedIsPrefaceView); }, @@ -521,22 +521,22 @@ describe('EditionService (DONE)', () => { // Clear isPrefaceView expectedIsPrefaceView = null; - editionService.clearIsPrefaceView(); + editionStateService.clearIsPrefaceView(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getIsPrefaceView().subscribe({ + editionStateService.getIsPrefaceView().subscribe({ next: (isPrefaceView: boolean) => { expectToBe(isPrefaceView, expectedIsPrefaceView); }, }); // Update isPrefaceView - editionService.updateIsPrefaceView(expectedIsPrefaceView); + editionStateService.updateIsPrefaceView(expectedIsPrefaceView); // Clear isPrefaceView expectedIsPrefaceView = null; - editionService.clearIsPrefaceView(); + editionStateService.clearIsPrefaceView(); })); }); }); @@ -544,64 +544,64 @@ describe('EditionService (DONE)', () => { describe('RowTableView', () => { describe('#getIsRowTableView()', () => { it('... should have a method `getIsRowTableView`', () => { - expect(editionService.getIsRowTableView).toBeDefined(); + expect(editionStateService.getIsRowTableView).toBeDefined(); }); it('... should return isRowTableView', waitForAsync(() => { - editionService.getIsRowTableView().subscribe({ + editionStateService.getIsRowTableView().subscribe({ next: (isRowTableView: boolean) => { expectToBe(isRowTableView, expectedIsRowTableView); }, }); // Set isRowTableView (with default value) - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); })); it('... should return updated isRowTableView', waitForAsync(() => { - editionService.getIsRowTableView().subscribe({ + editionStateService.getIsRowTableView().subscribe({ next: (isRowTableView: boolean) => { expectToBe(isRowTableView, expectedIsRowTableView); }, }); // Set isRowTableView (with default value) - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); // Update isRowTableView expectedIsRowTableView = false; - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); })); }); describe('#updateIsRowTableView()', () => { it('... should have a method `updateIsRowTableView`', () => { - expect(editionService.updateIsRowTableView).toBeDefined(); + expect(editionStateService.updateIsRowTableView).toBeDefined(); }); it('... should emit updated isRowTableView', waitForAsync(() => { - editionService.getIsRowTableView().subscribe({ + editionStateService.getIsRowTableView().subscribe({ next: (isRowTableView: boolean) => { expectToBe(isRowTableView, expectedIsRowTableView); }, }); // Set isRowTableView (with default value) - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); // Update isRowTableView expectedIsRowTableView = false; - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); })); }); describe('#clearIsRowTableView()', () => { it('... should have a method `clearIsRowTableView`', () => { - expect(editionService.clearIsRowTableView).toBeDefined(); + expect(editionStateService.clearIsRowTableView).toBeDefined(); }); it('... should update isRowTableView with null value', waitForAsync(() => { - editionService.getIsRowTableView().subscribe({ + editionStateService.getIsRowTableView().subscribe({ next: (isRowTableView: boolean) => { expectToBe(isRowTableView, expectedIsRowTableView); }, @@ -609,22 +609,22 @@ describe('EditionService (DONE)', () => { // Clear isRowTableView expectedIsRowTableView = null; - editionService.clearIsRowTableView(); + editionStateService.clearIsRowTableView(); })); it('... should overwrite existing values', waitForAsync(() => { - editionService.getIsRowTableView().subscribe({ + editionStateService.getIsRowTableView().subscribe({ next: (isRowTableView: boolean) => { expectToBe(isRowTableView, expectedIsRowTableView); }, }); // Update isRowTableView - editionService.updateIsRowTableView(expectedIsRowTableView); + editionStateService.updateIsRowTableView(expectedIsRowTableView); // Clear isRowTableView expectedIsRowTableView = null; - editionService.clearIsRowTableView(); + editionStateService.clearIsRowTableView(); })); }); }); diff --git a/src/app/views/edition-view/services/edition.service.ts b/src/app/views/edition-view/services/edition-state.service.ts similarity index 98% rename from src/app/views/edition-view/services/edition.service.ts rename to src/app/views/edition-view/services/edition-state.service.ts index fb6e5951d4..03b9e0b50f 100644 --- a/src/app/views/edition-view/services/edition.service.ts +++ b/src/app/views/edition-view/services/edition-state.service.ts @@ -5,10 +5,10 @@ import { Observable, ReplaySubject } from 'rxjs'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; /** - * The Edition service. + * The EditionState service. * - * It handles the provision of the current edition complex and - * other parts of the edition outline. + * It handles the provision of the current state + * of an edition complex and other parts of the edition outline. * * Provided in: `root`. * @used in the {@link EditionSheetsComponent}. @@ -16,7 +16,7 @@ import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@aw @Injectable({ providedIn: 'root', }) -export class EditionService { +export class EditionStateService { /** * Private variable for the replay subject´s buffer size. */ diff --git a/src/app/views/edition-view/services/index.ts b/src/app/views/edition-view/services/index.ts index e78cc0839b..e37a9b08bb 100644 --- a/src/app/views/edition-view/services/index.ts +++ b/src/app/views/edition-view/services/index.ts @@ -11,14 +11,14 @@ import { EditionComplexesService } from './edition-complexes.service'; import { EditionDataService } from './edition-data.service'; import { EditionOutlineService } from './edition-outline.service'; import { EditionSheetsService } from './edition-sheets.service'; +import { EditionStateService } from './edition-state.service'; import { EditionSvgDrawingService } from './edition-svg-drawing.service'; -import { EditionService } from './edition.service'; export { EditionComplexesService, EditionDataService, EditionOutlineService, - EditionService, EditionSheetsService, + EditionStateService, EditionSvgDrawingService, }; From 28243f620f35fb6199520479156a5bc75bf67b0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:10:21 +0000 Subject: [PATCH 148/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.4.0 to 50.4.1 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.4.0 to 50.4.1. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.0...v50.4.1) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index dc3b144fdb..ae5218ee48 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsdoc": "^50.4.0", + "eslint-plugin-jsdoc": "^50.4.1", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 90a7c3a5b7..e3fbbc992a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6698,7 +6698,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.31.0" - eslint-plugin-jsdoc: "npm:^50.4.0" + eslint-plugin-jsdoc: "npm:^50.4.1" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -9413,9 +9413,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.4.0": - version: 50.4.0 - resolution: "eslint-plugin-jsdoc@npm:50.4.0" +"eslint-plugin-jsdoc@npm:^50.4.1": + version: 50.4.1 + resolution: "eslint-plugin-jsdoc@npm:50.4.1" dependencies: "@es-joy/jsdoccomment": "npm:~0.49.0" are-docs-informative: "npm:^0.0.2" @@ -9430,7 +9430,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/93a1eb93885ef4b15f867d92faa231b9f8ac40915ed09b4212c31aa196f61d762d30bd916151f46aca9a794555895259aa8cc6a07b953d005a40b6ab28fc6046 + checksum: 10c0/d3b3947fc71acac2a790774729d96da4bd61dfc783558a998fca0b581b4dec059b5cdb048cd5873a8f188c5da1929307643909dd4f51063d2d6a00487b8b8940 languageName: node linkType: hard From 2865d33e87e886ceef45c55c07b18decd7324871 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:09:52 +0000 Subject: [PATCH 149/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.8.1 to 8.9.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.9.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.8.1 to 8.9.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.9.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index ae5218ee48..75647a9c1f 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.8.1", - "@typescript-eslint/parser": "^8.8.1", + "@typescript-eslint/eslint-plugin": "^8.9.0", + "@typescript-eslint/parser": "^8.9.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.5.0", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index e3fbbc992a..6dfeb4f1b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5710,15 +5710,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.8.1" +"@typescript-eslint/eslint-plugin@npm:^8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.9.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.8.1" - "@typescript-eslint/type-utils": "npm:8.8.1" - "@typescript-eslint/utils": "npm:8.8.1" - "@typescript-eslint/visitor-keys": "npm:8.8.1" + "@typescript-eslint/scope-manager": "npm:8.9.0" + "@typescript-eslint/type-utils": "npm:8.9.0" + "@typescript-eslint/utils": "npm:8.9.0" + "@typescript-eslint/visitor-keys": "npm:8.9.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5729,25 +5729,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/020a0a482202b34c6665a56ec5902e38ae1870b2600ec1b2092de352b23099dde553781ee8323974f63962ebe164a6304f0019e937afb5cf7854b0e0163ad1ca + checksum: 10c0/07f273dc270268980bbf65ea5e0c69d05377e42dbdb2dd3f4a1293a3536c049ddfb548eb9ec6e60394c2361c4a15b62b8246951f83e16a9d16799578a74dc691 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/parser@npm:8.8.1" +"@typescript-eslint/parser@npm:^8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/parser@npm:8.9.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.8.1" - "@typescript-eslint/types": "npm:8.8.1" - "@typescript-eslint/typescript-estree": "npm:8.8.1" - "@typescript-eslint/visitor-keys": "npm:8.8.1" + "@typescript-eslint/scope-manager": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/typescript-estree": "npm:8.9.0" + "@typescript-eslint/visitor-keys": "npm:8.9.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2afd147ccec6754316d6837d6108a5d822eb6071e1a7355073288c232530bc3e49901d3f08755ce02d497110c531f3b3658eb46d0ff875a69d4f360b5f938cb4 + checksum: 10c0/aca7c838de85fb700ecf5682dc6f8f90a0fbfe09a3044a176c0dc3ffd9c5e7105beb0919a30824f46b02223a74119b4f5a9834a0663328987f066cb359b5dbed languageName: node linkType: hard @@ -5761,28 +5761,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/scope-manager@npm:8.8.1" +"@typescript-eslint/scope-manager@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/scope-manager@npm:8.9.0" dependencies: - "@typescript-eslint/types": "npm:8.8.1" - "@typescript-eslint/visitor-keys": "npm:8.8.1" - checksum: 10c0/6f697baf087aedc3f0f228ff964fd108a9dd33fe4e5cc6c914be6367c324cee55629e099832668042bedfec8cdc72c6ef2ca960ee26966dbcc75753059a1352f + "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/visitor-keys": "npm:8.9.0" + checksum: 10c0/1fb77a982e3384d8cabd64678ea8f9de328708080ff9324bf24a44da4e8d7b7692ae4820efc3ef36027bf0fd6a061680d3c30ce63d661fb31e18970fca5e86c5 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/type-utils@npm:8.8.1" +"@typescript-eslint/type-utils@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/type-utils@npm:8.9.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.8.1" - "@typescript-eslint/utils": "npm:8.8.1" + "@typescript-eslint/typescript-estree": "npm:8.9.0" + "@typescript-eslint/utils": "npm:8.9.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/6edfc2b9fca5233dd922141f080377b677db1093ec3e702a3ab52d58f77b91c0fb69479d4d42f125536b8fc0ffa85c07c7de2f17cc4c6fa1df1226ec01e5608c + checksum: 10c0/aff06afda9ac7d12f750e76c8f91ed8b56eefd3f3f4fbaa93a64411ec9e0bd2c2972f3407e439320d98062b16f508dce7604b8bb2b803fded9d3148e5ee721b1 languageName: node linkType: hard @@ -5793,10 +5793,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/types@npm:8.8.1" - checksum: 10c0/4b44857332a0b1bfafbeccb8be157f8266d9e226ac723f6af1272b9b670b49444423ddac733655163eb3b90e8c88393a68ab2d7f326f5775371eaf4b9ca31d7b +"@typescript-eslint/types@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/types@npm:8.9.0" + checksum: 10c0/8d901b7ed2f943624c24f7fa67f7be9d49a92554d54c4f27397c05b329ceff59a9ea246810b53ff36fca08760c14305dd4ce78fbac7ca0474311b0575bf49010 languageName: node linkType: hard @@ -5819,12 +5819,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.8.1" +"@typescript-eslint/typescript-estree@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.9.0" dependencies: - "@typescript-eslint/types": "npm:8.8.1" - "@typescript-eslint/visitor-keys": "npm:8.8.1" + "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/visitor-keys": "npm:8.9.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5834,21 +5834,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/e3b9bc1e925c07833237044271cdc9bd8bdba3e2143dcfc5bf3bf481c89731b666a6fad25333a4b1980ac2f4c6f5e6e42c71206f73f3704e319f6b3b67463a6a + checksum: 10c0/bb5ec70727f07d1575e95f9d117762636209e1ab073a26c4e873e1e5b4617b000d300a23d294ad81693f7e99abe3e519725452c30b235a253edcd85b6ae052b0 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/utils@npm:8.8.1" +"@typescript-eslint/utils@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/utils@npm:8.9.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.8.1" - "@typescript-eslint/types": "npm:8.8.1" - "@typescript-eslint/typescript-estree": "npm:8.8.1" + "@typescript-eslint/scope-manager": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/typescript-estree": "npm:8.9.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/954a2e85ae56a3ebefb6e41fb33c59ffa886963860536e9729a35ecea55eefdc58858c7aa126048c4a61f4fd9997b4f7601e7884ed2b3e4e7a46c9e4617a9f29 + checksum: 10c0/af13e3d501060bdc5fa04b131b3f9a90604e5c1d4845d1f8bd94b703a3c146a76debfc21fe65a7f3a0459ed6c57cf2aa3f0a052469bb23b6f35ff853fe9495b1 languageName: node linkType: hard @@ -5876,13 +5876,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.8.1": - version: 8.8.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.8.1" +"@typescript-eslint/visitor-keys@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.9.0" dependencies: - "@typescript-eslint/types": "npm:8.8.1" + "@typescript-eslint/types": "npm:8.9.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/6f917090b61277bd443aa851c532c4a9cc91ad57aedf185c5dff0c530f158cce84ef815833bd8deffa87f0bbf7a9f1abd1e02e30af2463c4e7f27c0c08f59080 + checksum: 10c0/e33208b946841f1838d87d64f4ee230f798e68bdce8c181d3ac0abb567f758cb9c4bdccc919d493167869f413ca4c400e7db0f7dd7e8fc84ab6a8344076a7458 languageName: node linkType: hard @@ -6681,8 +6681,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.8.1" - "@typescript-eslint/parser": "npm:^8.8.1" + "@typescript-eslint/eslint-plugin": "npm:^8.9.0" + "@typescript-eslint/parser": "npm:^8.9.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From c7723327b972f258ede2aab1c18f064a5b2f4987 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 11:18:57 +0200 Subject: [PATCH 150/213] feat(edition): add disclaimer for partial intros --- .../edition-info.component.spec.ts | 19 +- ...on-intro-partial-disclaimer.component.html | 20 ++ ...on-intro-partial-disclaimer.component.scss | 0 ...intro-partial-disclaimer.component.spec.ts | 216 +++++++++++++++++ ...tion-intro-partial-disclaimer.component.ts | 64 +++++ .../edition-intro-partial-disclaimer/index.ts | 1 + .../edition-intro.component.html | 14 +- .../edition-intro.component.spec.ts | 222 ++++++++++++++---- .../edition-intro/edition-intro.module.ts | 2 + 9 files changed, 507 insertions(+), 51 deletions(-) create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/index.ts diff --git a/src/app/side-info/edition-info/edition-info.component.spec.ts b/src/app/side-info/edition-info/edition-info.component.spec.ts index 8d37fe7f69..1e023bb009 100644 --- a/src/app/side-info/edition-info/edition-info.component.spec.ts +++ b/src/app/side-info/edition-info/edition-info.component.spec.ts @@ -74,7 +74,7 @@ describe('EditionInfoComponent (DONE)', () => { let routerLinks; let expectedEditionComplexes: EditionComplex[]; - let expectedOrderOfRouterlinks: string[][]; + let expectedOrderOfRouterLinks: string[][]; let expectedOrderOfHeaders: string[]; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; @@ -122,7 +122,7 @@ describe('EditionInfoComponent (DONE)', () => { EditionComplexesService.getEditionComplexById('M35_42'), EditionComplexesService.getEditionComplexById('M37'), ]; - expectedOrderOfRouterlinks = generateExpectedOrderOfRouterlinks(expectedEditionComplexes); + expectedOrderOfRouterLinks = generateExpectedOrderOfRouterlinks(expectedEditionComplexes); expectedOrderOfHeaders = generateExpectedOrderOfHeaders(expectedEditionComplexes); }); @@ -367,8 +367,8 @@ describe('EditionInfoComponent (DONE)', () => { linkDes = getAndExpectDebugElementByDirective( compDe, RouterLinkStubDirective, - expectedOrderOfRouterlinks.length, - expectedOrderOfRouterlinks.length + expectedOrderOfRouterLinks.length, + expectedOrderOfRouterLinks.length ); // Get attached link directive instances using each DebugElement's injector @@ -376,19 +376,20 @@ describe('EditionInfoComponent (DONE)', () => { }); it('... can get correct number of routerLinks from template', () => { - expectToBe(routerLinks.length, expectedOrderOfRouterlinks.length); + expectToBe(routerLinks.length, expectedOrderOfRouterLinks.length); }); it('... can get correct linkParams from template', () => { - routerLinks.forEach((routerLink, index) => { - expectToEqual(routerLink.linkParams, expectedOrderOfRouterlinks[index]); + routerLinks.forEach((routerLink: RouterLinkStubDirective, index: number) => { + const expectedRouterLink = expectedOrderOfRouterLinks[index]; + expectToEqual(routerLink.linkParams, expectedRouterLink); }); }); it('... can click all links in template', () => { - routerLinks.forEach((routerLink, index) => { + routerLinks.forEach((routerLink: RouterLinkStubDirective, index: number) => { const linkDe = linkDes[index]; - const expectedRouterLink = expectedOrderOfRouterlinks[index]; + const expectedRouterLink = expectedOrderOfRouterLinks[index]; expectToBe(routerLink.navigatedTo, null); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.html new file mode 100644 index 0000000000..753341875d --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.html @@ -0,0 +1,20 @@ + diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts new file mode 100644 index 0000000000..8fdac2b9bf --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts @@ -0,0 +1,216 @@ +import { DOCUMENT } from '@angular/common'; +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { click } from '@testing/click-helper'; +import { + expectToBe, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionComplex } from '@awg-views/edition-view/models'; +import { EditionComplexesService } from '@awg-views/edition-view/services'; + +import { EditionIntroPartialDisclaimerComponent } from './edition-intro-partial-disclaimer.component'; + +describe('EditionIntroPartialDisclaimerComponent', () => { + let component: EditionIntroPartialDisclaimerComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let linkDes: DebugElement[]; + let routerLinks; + + let mockDocument: Document; + + let expectedEditionComplex: EditionComplex; + let expectedEditionLabel: string; + let expectedEditionRoute: string; + let expectedSeriesRoute: string; + let expectedSectionRoute: string; + let expectedIntroRoute: string; + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + }); + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionIntroPartialDisclaimerComponent, RouterLinkStubDirective], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionIntroPartialDisclaimerComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + mockDocument = TestBed.inject(DOCUMENT); + + // Test data + expectedEditionComplex = EditionComplexesService.getEditionComplexById('OP12'); + expectedEditionLabel = EDITION_ROUTE_CONSTANTS.EDITION.short; + expectedEditionRoute = EDITION_ROUTE_CONSTANTS.EDITION.route; + expectedSeriesRoute = EDITION_ROUTE_CONSTANTS.SERIES.route; + expectedSectionRoute = EDITION_ROUTE_CONSTANTS.SECTION.route; + expectedIntroRoute = EDITION_ROUTE_CONSTANTS.EDITION_INTRO.route; + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `editionComplex`', () => { + expect(component.editionComplex).toBeUndefined(); + }); + + it('... should not have `editionLabel`', () => { + expect(component.editionLabel).toBeUndefined(); + }); + + it('... should not have `editionRoute`', () => { + expect(component.editionRoute).toBeUndefined(); + }); + + it('... should not have `seriesRoute`', () => { + expect(component.seriesRoute).toBeUndefined(); + }); + + it('... should not have `sectionRoute`', () => { + expect(component.sectionRoute).toBeUndefined(); + }); + + it('... should not have `introRoute`', () => { + expect(component.introRoute).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain a `div.awg-edition-intro-placeholder`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-partial-disclaimer', 1, 1); + }); + + it('... should contain a text-muted paragraph (no-para) in div', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-partial-disclaimer', 1, 1); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl).toHaveClass('text-muted'); + expect(pEl).toHaveClass('no-para'); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.editionComplex = expectedEditionComplex; + component.editionLabel = expectedEditionLabel; + component.editionRoute = expectedEditionRoute; + component.seriesRoute = expectedSeriesRoute; + component.sectionRoute = expectedSectionRoute; + component.introRoute = expectedIntroRoute; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `editionComplex`', () => { + expectToEqual(component.editionComplex, expectedEditionComplex); + }); + + it('... should have `editionLabel`', () => { + expectToBe(component.editionLabel, expectedEditionLabel); + }); + + it('... should have `editionRoute`', () => { + expectToBe(component.editionRoute, expectedEditionRoute); + }); + + it('... should have `seriesRoute`', () => { + expectToBe(component.seriesRoute, expectedSeriesRoute); + }); + + it('... should have `sectionRoute`', () => { + expectToBe(component.sectionRoute, expectedSectionRoute); + }); + + it('... should have `introRoute`', () => { + expectToBe(component.introRoute, expectedIntroRoute); + }); + + describe('VIEW', () => { + it('... should display text-muted disclaimer in paragraph', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-partial-disclaimer', 1, 1); + const pDes = getAndExpectDebugElementByCss(divDes[0], 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl).toHaveClass('text-muted'); + expect(pEl).toHaveClass('no-para'); + + const awg = component.editionLabel; + const series = component.editionComplex?.pubStatement?.series?.short; + const section = component.editionComplex?.pubStatement?.section?.short; + + const expectedText = `[Siehe auch die gesamte Einleitung zu ${awg} ${series}/${section}.]`; + expectToBe(pEl.textContent.trim(), expectedText); + }); + }); + + describe('[routerLink]', () => { + beforeEach(() => { + // Find DebugElements with an attached RouterLinkStubDirective + linkDes = getAndExpectDebugElementByDirective(compDe, RouterLinkStubDirective, 1, 1); + + // Get attached link directive instances using each DebugElement's injector + routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + }); + + it('... can get correct number of routerLinks from template', () => { + expectToBe(routerLinks.length, 1); + }); + + it('... can get correct linkParams from template', () => { + routerLinks.forEach((routerLink: RouterLinkStubDirective, _index: number) => { + const expectedRouterLink = [ + expectedEditionRoute, + expectedSeriesRoute, + expectedEditionComplex.pubStatement.series.route, + expectedSectionRoute, + expectedEditionComplex.pubStatement.section.route, + expectedIntroRoute, + ]; + expectToEqual(routerLink.linkParams, expectedRouterLink); + }); + }); + + it('... can click all links in template', () => { + routerLinks.forEach((routerLink: RouterLinkStubDirective, index: number) => { + const linkDe = linkDes[index]; + const expectedRouterLink = [ + expectedEditionRoute, + expectedSeriesRoute, + expectedEditionComplex.pubStatement.series.route, + expectedSectionRoute, + expectedEditionComplex.pubStatement.section.route, + expectedIntroRoute, + ]; + + expectToBe(routerLink.navigatedTo, null); + + click(linkDe); + fixture.detectChanges(); + + expectToEqual(routerLink.navigatedTo, expectedRouterLink); + }); + }); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.ts new file mode 100644 index 0000000000..bcb906f285 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.ts @@ -0,0 +1,64 @@ +import { Component, Input } from '@angular/core'; + +import { EditionComplex } from '@awg-views/edition-view/models'; + +/** + * The EditionIntroPartialDisclaimer component. + * + * It contains the disclaimer for a partial intro + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-intro-partial-disclaimer', + templateUrl: './edition-intro-partial-disclaimer.component.html', + styleUrls: ['./edition-intro-partial-disclaimer.component.scss'], +}) +export class EditionIntroPartialDisclaimerComponent { + /** + * Input variable: editionComplex. + * + * It keeps the editionComplex for the intro partial disclaimer. + */ + @Input() + editionComplex: EditionComplex; + + /** + * Input variable: editionLabel. + * + * It keeps the edition label for the intro partial disclaimer. + */ + @Input() + editionLabel: string; + + /** + * Input variable: editionRoute. + * + * It keeps the edition route for the intro partial disclaimer. + */ + @Input() + editionRoute: string; + + /** + * Input variable: seriesRoute. + * + * It keeps the series route for the intro partial disclaimer. + */ + @Input() + seriesRoute: string; + + /** + * Input variable: sectionRoute. + * + * It keeps the section route for the intro partial disclaimer. + */ + @Input() + sectionRoute: string; + + /** + * Input variable: introRoute. + * + * It keeps the intro route for the intro partial disclaimer. + */ + @Input() + introRoute: string; +} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/index.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/index.ts new file mode 100644 index 0000000000..cf56463f0b --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/index.ts @@ -0,0 +1 @@ +export * from './edition-intro-partial-disclaimer.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html index 011736ee74..449c0fbcb0 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.component.html @@ -6,8 +6,20 @@ @if (editionIntroData$ | async; as editionIntroData) {
-
+
@if (utils.isNotEmptyArray(editionIntroData.intro[currentLanguage].content)) { + @if (editionComplex) { + + } (); } + +@Component({ selector: 'awg-edition-intro-partial-disclaimer', template: '' }) +class EditionIntroPartialDisclaimerStubComponent { + @Input() + editionComplex: EditionComplex; + @Input() + editionLabel: string; + @Input() + editionRoute: string; + @Input() + seriesRoute: string; + @Input() + sectionRoute: string; + @Input() + introRoute: string; +} + @Component({ selector: 'awg-edition-intro-placeholder', template: '' }) class EditionIntroPlaceholderStubComponent { @Input() @@ -182,6 +199,7 @@ describe('IntroComponent (DONE)', () => { declarations: [ EditionIntroComponent, EditionIntroContentStubComponent, + EditionIntroPartialDisclaimerStubComponent, EditionIntroPlaceholderStubComponent, EditionIntroNavStubComponent, ErrorAlertStubComponent, @@ -318,6 +336,12 @@ describe('IntroComponent (DONE)', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 0, 0); }); + it('... should not contain an edition intro partial disclaimer component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); + + getAndExpectDebugElementByDirective(divDes[0], EditionIntroPartialDisclaimerStubComponent, 0, 0); + }); + it('... should not contain an edition intro content component (stubbed)', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div', 1, 1); @@ -385,52 +409,168 @@ describe('IntroComponent (DONE)', () => { }); describe('... if intro data is given', () => { - it('... should contain one EditionIntroContentComponent (stubbed)', waitForAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], EditionIntroContentStubComponent, 1, 1); - })); + describe('... with complex', () => { + it('... should contain one EditionIntroPartialDisclaimerComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective( + divDes[0], + EditionIntroPartialDisclaimerStubComponent, + 1, + 1 + ); + })); - it('... should pass down `introBlockContent` and `notesLabel` to EditionIntroContentComponent', waitForAsync(() => { - const editionIntroContentDes = getAndExpectDebugElementByDirective( - compDe, - EditionIntroContentStubComponent, - 1, - 1 - ); - const editionIntroContentCmp = editionIntroContentDes[0].injector.get( - EditionIntroContentStubComponent - ) as EditionIntroContentStubComponent; + it('... should pass down `editionComplex`, `editionLabel`, and routes to EditionIntroPartialDisclaimerComponent', waitForAsync(() => { + const editionIntroPartialDisclaimerDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroPartialDisclaimerStubComponent, + 1, + 1 + ); + const editionIntroPartialDisclaimerCmp = editionIntroPartialDisclaimerDes[0].injector.get( + EditionIntroPartialDisclaimerStubComponent + ) as EditionIntroPartialDisclaimerStubComponent; + + expectToEqual(editionIntroPartialDisclaimerCmp.editionComplex, expectedEditionComplex); + expectToEqual( + editionIntroPartialDisclaimerCmp.editionLabel, + expectedEditionRouteConstants.EDITION.short + ); + expectToEqual( + editionIntroPartialDisclaimerCmp.editionRoute, + expectedEditionRouteConstants.EDITION.route + ); + expectToEqual( + editionIntroPartialDisclaimerCmp.seriesRoute, + expectedEditionRouteConstants.SERIES.route + ); + expectToEqual( + editionIntroPartialDisclaimerCmp.sectionRoute, + expectedEditionRouteConstants.SECTION.route + ); + expectToEqual( + editionIntroPartialDisclaimerCmp.introRoute, + expectedEditionRouteConstants.EDITION_INTRO.route + ); + })); - expectToEqual( - editionIntroContentCmp.introBlockContent, - expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content - ); - expectToEqual(editionIntroContentCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); - })); + it('... should contain one EditionIntroContentComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroContentStubComponent, 1, 1); + })); - it('... should contain one EditionIntroNavComponent (stubbed)', waitForAsync(() => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], EditionIntroNavStubComponent, 1, 1); - })); + it('... should pass down `introBlockContent` and `notesLabel` to EditionIntroContentComponent', waitForAsync(() => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 + ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; - it('... should pass down `introBlockContent`, `notesLabel` and `currentLanguage` to EditionIntroNavComponent', waitForAsync(() => { - const editionIntroNavDes = getAndExpectDebugElementByDirective( - compDe, - EditionIntroNavStubComponent, - 1, - 1 - ); - const editionIntroNavCmp = editionIntroNavDes[0].injector.get( - EditionIntroNavStubComponent - ) as EditionIntroNavStubComponent; + expectToEqual( + editionIntroContentCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual( + editionIntroContentCmp.notesLabel, + expectedNotesLabels.get(expectedCurrentLaguage) + ); + })); - expectToEqual( - editionIntroNavCmp.introBlockContent, - expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content - ); - expectToEqual(editionIntroNavCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); - expectToEqual(editionIntroNavCmp.currentLanguage, expectedCurrentLaguage); - })); + it('... should contain one EditionIntroNavComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroNavStubComponent, 1, 1); + })); + + it('... should pass down `introBlockContent`, `notesLabel` and `currentLanguage` to EditionIntroNavComponent', waitForAsync(() => { + const editionIntroNavDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroNavStubComponent, + 1, + 1 + ); + const editionIntroNavCmp = editionIntroNavDes[0].injector.get( + EditionIntroNavStubComponent + ) as EditionIntroNavStubComponent; + + expectToEqual( + editionIntroNavCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual(editionIntroNavCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); + expectToEqual(editionIntroNavCmp.currentLanguage, expectedCurrentLaguage); + })); + }); + + describe('... without complex', () => { + beforeEach(() => { + component.editionComplex = undefined; + fixture.detectChanges(); + }); + + it('... should not contain an edition intro partial disclaimer component (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective( + divDes[0], + EditionIntroPartialDisclaimerStubComponent, + 0, + 0 + ); + }); + + it('... should contain one EditionIntroContentComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroContentStubComponent, 1, 1); + })); + + it('... should pass down `introBlockContent` and `notesLabel` to EditionIntroContentComponent', waitForAsync(() => { + const editionIntroContentDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroContentStubComponent, + 1, + 1 + ); + const editionIntroContentCmp = editionIntroContentDes[0].injector.get( + EditionIntroContentStubComponent + ) as EditionIntroContentStubComponent; + + expectToEqual( + editionIntroContentCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual( + editionIntroContentCmp.notesLabel, + expectedNotesLabels.get(expectedCurrentLaguage) + ); + })); + + it('... should contain one EditionIntroNavComponent (stubbed)', waitForAsync(() => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-intro-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionIntroNavStubComponent, 1, 1); + })); + + it('... should pass down `introBlockContent`, `notesLabel` and `currentLanguage` to EditionIntroNavComponent', waitForAsync(() => { + const editionIntroNavDes = getAndExpectDebugElementByDirective( + compDe, + EditionIntroNavStubComponent, + 1, + 1 + ); + const editionIntroNavCmp = editionIntroNavDes[0].injector.get( + EditionIntroNavStubComponent + ) as EditionIntroNavStubComponent; + + expectToEqual( + editionIntroNavCmp.introBlockContent, + expectedEditionIntroFilteredData.intro[expectedCurrentLaguage].content + ); + expectToEqual(editionIntroNavCmp.notesLabel, expectedNotesLabels.get(expectedCurrentLaguage)); + expectToEqual(editionIntroNavCmp.currentLanguage, expectedCurrentLaguage); + })); + }); }); describe('... if intro data is empty', () => { diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts index 329aee6a2d..872b937919 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module.ts @@ -4,6 +4,7 @@ import { SharedModule } from '@awg-shared/shared.module'; import { EditionIntroContentComponent } from './edition-intro-content'; import { EditionIntroNavComponent } from './edition-intro-nav'; +import { EditionIntroPartialDisclaimerComponent } from './edition-intro-partial-disclaimer'; import { EditionIntroPlaceholderComponent } from './edition-intro-placeholder'; import { EditionIntroRoutingModule, routedEditionIntroComponents } from './edition-intro-routing.module'; @@ -20,6 +21,7 @@ import { EditionIntroRoutingModule, routedEditionIntroComponents } from './editi declarations: [ EditionIntroContentComponent, EditionIntroNavComponent, + EditionIntroPartialDisclaimerComponent, EditionIntroPlaceholderComponent, routedEditionIntroComponents, ], From 86857ecd7feff170a0544c74f592a4d902810b48 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 11:22:14 +0200 Subject: [PATCH 151/213] fix(edition): add complex to breadcrumb if given --- .../edition-view/edition-view.component.html | 2 ++ .../edition-view/edition-view.component.spec.ts | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/app/views/edition-view/edition-view.component.html b/src/app/views/edition-view/edition-view.component.html index d0454526b8..aa2ddc6c3e 100644 --- a/src/app/views/edition-view/edition-view.component.html +++ b/src/app/views/edition-view/edition-view.component.html @@ -57,6 +57,8 @@
]"> {{ selectedEditionComplex.pubStatement.section.full }} + / +
{ let fixture: ComponentFixture; let compDe: DebugElement; - let mockRouter; let mockActivatedRoute: ActivatedRouteStub; + let mockDocument: Document; + let mockRouter; + let mockEditionStateService: Partial; let setupEditionViewSpy: Spy; @@ -115,6 +118,7 @@ describe('EditionViewComponent (DONE)', () => { component = fixture.componentInstance; compDe = fixture.debugElement; + mockDocument = TestBed.inject(DOCUMENT); mockEditionStateService = TestBed.inject(EditionStateService); // Test data @@ -414,7 +418,14 @@ describe('EditionViewComponent (DONE)', () => { const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; const series = expectedSelectedEditionComplex.pubStatement.series.full; const section = expectedSelectedEditionComplex.pubStatement.section.full; - const expectedBreadCrumb = `${awg} / ${series} / ${section}`; + + // Handle non-breaking space by converting HTML to text + const complex = expectedSelectedEditionComplex.complexId.short; + const complexHtml = mockDocument.createElement('span'); + complexHtml.innerHTML = complex; + const complexText = complexHtml.innerText; + + const expectedBreadCrumb = `${awg} / ${series} / ${section} / ${complexText}`; expectToBe(hEl.innerText, expectedBreadCrumb); }); From dbf516a075fe92f702baea8ec33fd94b492ab86c Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 16:47:50 +0200 Subject: [PATCH 152/213] feat(assets): add intro preview to section detail --- .../views/edition-view/models/edition-outline.model.ts | 8 +++++++- src/assets/data/edition/edition-outline.json | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/views/edition-view/models/edition-outline.model.ts b/src/app/views/edition-view/models/edition-outline.model.ts index 5fa6d91c17..3448afee64 100644 --- a/src/app/views/edition-view/models/edition-outline.model.ts +++ b/src/app/views/edition-view/models/edition-outline.model.ts @@ -16,6 +16,7 @@ export interface EditionOutlineSectionsContentJsonData { */ intro: { disabled: boolean; + preview?: string; }; /** @@ -133,6 +134,11 @@ export interface EditionOutlineIntroItem { * Boolean flag if an intro is disabled. */ disabled: boolean; + + /** + * The preview of an intro. + */ + preview?: string; } /** @@ -278,7 +284,7 @@ export class EditionOutline { * @returns {EditionOutlineSectionContent} The mapped content. */ private _mapSectionContent = (content: EditionOutlineSectionsContentJsonData): EditionOutlineSectionContent => ({ - intro: { disabled: content.intro.disabled }, + intro: { disabled: content.intro.disabled, preview: content.intro.preview || '' }, complexTypes: { opus: this._mapComplexItems(content.complexTypes.opus), mnr: this._mapComplexItems(content.complexTypes.mnr), diff --git a/src/assets/data/edition/edition-outline.json b/src/assets/data/edition/edition-outline.json index 79cacf514e..078fd220c6 100644 --- a/src/assets/data/edition/edition-outline.json +++ b/src/assets/data/edition/edition-outline.json @@ -39,7 +39,10 @@ "section": "5", "disabled": false, "content": { - "intro": { "disabled": false }, + "intro": { + "disabled": false, + "preview": "Die in Serie I Abteilung 5 versammelten Klavierlieder beinhalten die erkennbaren Textfassungen der zu Lebzeiten Anton Weberns mit Opuszahlen versehenen und gedruckten oder zum Druck vorgesehenen Klavierlieder (op. 3, 4, 12, 23 und 25) sowie verschiedene dem Entstehungsprozess einiger dieser Editionskomplexe zuzuordnende Einzellieder (George-Lieder M 143–146). Weitere zu Lebzeiten Weberns nicht publizierte Lied-Komplexe, auch wenn sie mit später obsolet gewordenen Opuszahlen versehen wurden (z. B. Dehmel-Lieder M 83, 119, 130–131), werden in Serie II Abteilung 5 ediert." + }, "complexTypes": { "opus": [ { "complex": "OP3", "disabled": false }, From b8569b284fc8cd96b59f0209d7a35d268eb35de1 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:50:20 +0200 Subject: [PATCH 153/213] feat(assets): add corrections in Op4: D MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections in Op4: source_Dab_corr * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op4/source-description.json | 594 ++++++++++++++++++ 1 file changed, 594 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index 682f699fac..6610b1ad87 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -1147,6 +1147,600 @@ } ] } + ], + "corrections": [ + { + "id": "source_Da_corr", + "label": "Korrekturen in Da (mit Bleistift; Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf Eingang („Welt der Gestalten“) M 138: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "1
bis 2", + "system": "Ges.", + "position": "4/8
1/8", + "comment": "Bogen gestrichen." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "5. Note (9/8)", + "comment": "{{ref.getGlyph('[a]')}} zu g/c1 hinzugefügt." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "13/8", + "comment": "{{ref.getGlyph('[#]')}} zu fis1 hinzugefügt." + }, + { + "measure": "1", + "system": "", + "position": "15/8", + "comment": "rit[.] über der Akkolade hinzugefügt." + }, + { + "measure": "2", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt und geändert zu {{ref.getGlyph('[p]')}}." + }, + { + "measure": "3", + "system": "Ges.", + "position": "4.–6. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "5/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "4", + "system": "Ges.", + "position": "8.–10. Note", + "comment": "Triolenziffer hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2/8, 7/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "1/4", + "comment": "Verlängerung der 8va-Geltungslinie hinzugefügt. Db: Akkoladenwechsel nach T. 5." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "1/8–2/4", + "comment": "Zwei Achtelnoten, eine Viertelnote Cis2 mit Ligatur 2/8 – 2/4 sowie Ligaturbogen zu T. 6 1/8 hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "8–9/8", + "comment": "Ligaturbögen h/d–h/d hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "21/16", + "comment": "{{ref.getGlyph('[b]')}} zu es1 hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "24/16", + "comment": "{{ref.getGlyph('[a]')}} zu c/e hinzugefügt." + }, + { + "measure": "6", + "system": "Ges.", + "position": "8.–10. Note", + "comment": "Triolenziffer hinzugefügt." + }, + { + "measure": "6", + "system": "Klav. u.", + "position": "28/16", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "vor 7", + "system": "Klav. u.", + "position": "", + "comment": "Violinschlüssel überschreibt Bassschlüssel." + }, + { + "measure": "7", + "system": "Ges.", + "position": "3.–5. Note", + "comment": "Triolenziffer hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "4. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "7", + "system": "Ges.", + "position": "8.–10. Note", + "comment": "Triolenziffer hinzugefügt." + }, + { + "measure": "7", + "system": "", + "position": "10/16", + "comment": "rit. über der Akkolade hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/8, 9/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "8", + "system": "", + "position": "14/16", + "comment": "rit[.] über der Akkolade hinzugefügt." + }, + { + "measure": "8", + "system": "Ges.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "5/4", + "comment": "{{ref.getGlyph('[a]')}} zu f hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "13–14/8", + "comment": "Oberstimmenschicht: Ligaturbögen gestrichen. Siehe TkA." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5–6/8", + "comment": "Ligaturbögen e1/b1–e1/b1 hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "6/8–10/8", + "comment": "Text Dä-m̅er der frü[-]he hinzugefügt (Hs.?)." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "8/8", + "comment": "{{ref.getGlyph('[a]')}} zu a1/d2/g2 hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "12/8", + "comment": "{{ref.getGlyph('[a]')}} zu d2/g2 und {{ref.getGlyph('[#]')}} zu cis2 hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "5/8", + "comment": "{{ref.getGlyph('[b]')}} zu es1 und {{ref.getGlyph('[a]')}} zu h1 hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/8–6/4", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "7/8", + "comment": "fis1 überschreibt ais1." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/4", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "11", + "system": "Ges.", + "position": "13/8", + "comment": "rit[.] über der Akkolade hinzugefügt." + }, + { + "measure": "12", + "system": "Klav.", + "position": "1/4", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "2/4", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Bogen hinzugefügt." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "4/8", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[a]')}} zu g1 überschreibt {{ref.getGlyph('[#]')}} zu gis1." + }, + { + "measure": "13", + "system": "Ges.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[b]')}} überschreibt {{ref.getGlyph('[a]')}}." + }, + { + "measure": "14", + "system": "Klav. o.", + "position": "3. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[#]')}} zu cis1 hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Db_corr", + "label": "Korrekturen in Db (mit Bleistift; Hs. Webern)", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf „Noch zwingt mich Treue“ M 139: Textfassung 1." + ], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "", + "position": "", + "comment": "Langsam hinzugefügt." + }, + { + "measure": "vor 1
bis 2", + "system": "Ges.", + "position": "1. Note
2/8", + "comment": "Bogen gestrichen." + }, + { + "measure": "vor 1", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt.
{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "2/8", + "comment": "zögernd hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "1. Note", + "comment": "zögernd hinzugefügt." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3/4", + "comment": "Zuerst Crescendogabel hinzugefügt, dann gestrichen." + }, + { + "measure": "4", + "system": "Ges.", + "position": "1–2/8, 2–3/8", + "comment": "Bögen hinzugefügt." + }, + { + "measure": "4
bis 5", + "system": "", + "position": "(2/4)
Taktende", + "comment": "Zuerst rit. zu Anfang T. 4 über Klav. hinzugefügt, dann gestrichen und geändert zu rit[.] - - -." + }, + { + "measure": "4
bis 5", + "system": "Ges.", + "position": "4/8
2/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "noch | langsamer hinzugefügt." + }, + { + "measure": "7", + "system": "", + "position": "(2/4)", + "comment": "tempo über Klav. hinzugefügt." + }, + { + "measure": "7", + "system": "Klav. u.", + "position": "", + "comment": "{{ref.getGlyph('[#]')}} zu Cis. {{ref.getGlyph('[a]')}} zu A/c hinzugefügt." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang", + "comment": "Tempo hinzugefügt, dann gestrichen. Siehe Korrektur zu T. 7 2/4." + }, + { + "measure": "9", + "system": "Ges.", + "position": "2–4/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[b]')}} zu As, {{ref.getGlyph('[a]')}} zu d/g hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "2/8", + "comment": "{{ref.getGlyph('[b]')}} zu b, {{ref.getGlyph('[a]')}} zu d1 hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "5. Note", + "comment": "{{ref.getGlyph('[b]')}} zu des1 hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "4. Note", + "comment": "{{ref.getGlyph('[a]')}} zu c1/e1 hinzugefügt." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "6. Note", + "comment": "{{ref.getGlyph('[a]')}} zu c2/e2 hinzugefügt." + }, + { + "measure": "10", + "system": "Ges.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt.
{{ref.getGlyph('[pp]')}} und > hinzugefügt." + }, + { + "measure": "10
bis 11", + "system": "Ges.", + "position": "6/8
2. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt.
[xx] (?) über der Note hinzugefügt." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4–6/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[b]')}} zu as2 hinzugefügt." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[b]')}} zu as2 hinzugefügt." + }, + { + "measure": "13", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[f]')}} und ten. hinzugefügt." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "6/16", + "comment": "{{ref.getGlyph('[a]')}} zu c1/e1 hinzugefügt." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "8/16", + "comment": "{{ref.getGlyph('[#]')}} zu Fis1/Fis hinzugefügt." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[a]')}} zu a hinzugefügt." + }, + { + "measure": "14
bis 15", + "system": "Ges.", + "position": "2/8
4/8", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "15", + "system": "Ges.", + "position": "3. Note", + "comment": "(Zusätzliches) {{ref.getGlyph('[p]')}} und [xx] (?) über dem System hinzugefügt." + }, + { + "measure": "15
bis 17", + "system": "", + "position": "(3/4)
Taktende", + "comment": "rit[.] - - - hinzugefügt." + }, + { + "measure": "16", + "system": "Klav. o.", + "position": "1/4", + "comment": "{{ref.getGlyph('[a]')}} zu h1/h2, {{ref.getGlyph('[b]')}} zu es2 hinzugefügt." + }, + { + "measure": "17", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "17", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Zäsurzeichen hinzugefügt." + }, + { + "measure": "17", + "system": "Ges.", + "position": "4. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt." + }, + { + "measure": "17", + "system": "Ges.", + "position": "4.–6. Note", + "comment": "Crescendogabel hinzugefügt." + }, + { + "measure": "17", + "system": "Klav. u.", + "position": "3/4", + "comment": "Oberstimmenschicht: {{ref.getGlyph('[a]')}} zu d hinzugefügt." + }, + { + "measure": "17", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "Oberstimmenschicht: {{ref.getGlyph('[#]')}} zu gis hinzugefügt." + }, + { + "measure": "18", + "system": "", + "position": "Taktanfang", + "comment": "sehr langsam hinzugefügt." + }, + { + "measure": "18", + "system": "Ges.", + "position": "1.–3. Note", + "comment": "Decrescendogabel hinzugefügt." + }, + { + "measure": "18", + "system": "Klav. o.", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} hinzugefügt." + }, + { + "measure": "18", + "system": "Ges.", + "position": "3. Note", + "comment": "rit[.] unter der Note hinzugefügt." + }, + { + "measure": "18", + "system": "Klav. u.", + "position": "3/8", + "comment": "{{ref.getGlyph('[a]')}} zu d/f hinzugefügt." + }, + { + "measure": "18", + "system": "Ges.", + "position": "letzte Note", + "comment": "{{ref.getGlyph('[ppp]')}} hinzugefügt." + }, + { + "measure": "18", + "system": "Klav. o.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} zu a hinzugefügt." + }, + { + "measure": "20", + "system": "Klav. o.", + "position": "6/8", + "comment": "{{ref.getGlyph('[#]')}} zu gis/cis1 hinzugefügt." + } + ] + } + ] + } ] } }, From 10b517c04b998f11dbedc339d1401b2c9cd84a6b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 19:27:30 +0200 Subject: [PATCH 154/213] feat(edition): include intro and disclaimer in edition section detail --- .../edition-complex-card/index.ts | 1 - ...intro-partial-disclaimer.component.spec.ts | 2 +- ...ion-section-detail-overview.component.html | 58 --- ...-section-detail-overview.component.spec.ts | 395 ---------------- ...ection-detail-complex-card.component.html} | 0 ...ection-detail-complex-card.component.scss} | 0 ...ion-detail-complex-card.component.spec.ts} | 12 +- ...-section-detail-complex-card.component.ts} | 10 +- .../index.ts | 1 + ...n-section-detail-disclaimer.component.html | 5 + ...-section-detail-disclaimer.component.scss} | 0 ...ection-detail-disclaimer.component.spec.ts | 61 +++ ...ion-section-detail-disclaimer.component.ts | 16 + .../index.ts | 1 + ...n-section-detail-intro-card.component.html | 27 ++ ...n-section-detail-intro-card.component.scss | 0 ...ection-detail-intro-card.component.spec.ts | 209 +++++++++ ...ion-section-detail-intro-card.component.ts | 33 ++ .../index.ts | 1 + ...ion-section-detail-overview.component.html | 44 ++ ...ion-section-detail-overview.component.scss | 0 ...-section-detail-overview.component.spec.ts | 439 ++++++++++++++++++ ...ition-section-detail-overview.component.ts | 15 +- .../edition-section-detail-overview/index.ts | 1 + ...-section-detail-placeholder.component.html | 6 + ...-section-detail-placeholder.component.scss | 0 ...ction-detail-placeholder.component.spec.ts | 95 ++++ ...on-section-detail-placeholder.component.ts | 32 ++ .../index.ts | 1 + .../edition-section-detail-routing.module.ts | 46 ++ .../edition-section-detail.module.ts | 29 ++ .../edition-view-routing.module.ts | 22 +- .../views/edition-view/edition-view.module.ts | 3 +- 33 files changed, 1072 insertions(+), 493 deletions(-) delete mode 100644 src/app/views/edition-view/edition-complex-card/index.ts delete mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html delete mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts rename src/app/views/edition-view/{edition-complex-card/edition-complex-card.component.html => edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.html} (100%) rename src/app/views/edition-view/{edition-complex-card/edition-complex-card.component.scss => edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.scss} (100%) rename src/app/views/edition-view/{edition-complex-card/edition-complex-card.component.spec.ts => edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.spec.ts} (96%) rename src/app/views/edition-view/{edition-complex-card/edition-complex-card.component.ts => edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.ts} (61%) create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html rename src/app/views/edition-view/edition-outlets/edition-series-detail/{edition-section-detail-overview/edition-section-detail-overview.component.scss => edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.scss} (100%) create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts rename src/app/views/edition-view/edition-outlets/edition-series-detail/{ => edition-section-detail}/edition-section-detail-overview/edition-section-detail-overview.component.ts (78%) create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.html create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.scss create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.spec.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/index.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-routing.module.ts create mode 100644 src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.module.ts diff --git a/src/app/views/edition-view/edition-complex-card/index.ts b/src/app/views/edition-view/edition-complex-card/index.ts deleted file mode 100644 index 38fcdbe376..0000000000 --- a/src/app/views/edition-view/edition-complex-card/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './edition-complex-card.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts index 8fdac2b9bf..10e1c2589d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-partial-disclaimer/edition-intro-partial-disclaimer.component.spec.ts @@ -18,7 +18,7 @@ import { EditionComplexesService } from '@awg-views/edition-view/services'; import { EditionIntroPartialDisclaimerComponent } from './edition-intro-partial-disclaimer.component'; -describe('EditionIntroPartialDisclaimerComponent', () => { +describe('EditionIntroPartialDisclaimerComponent (DONE)', () => { let component: EditionIntroPartialDisclaimerComponent; let fixture: ComponentFixture; let compDe: DebugElement; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html deleted file mode 100644 index 6baf094d76..0000000000 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.html +++ /dev/null @@ -1,58 +0,0 @@ -@if ( - selectedSection && - (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus) || - utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr)) -) { -
- @if (!selectedSection?.content?.intro.disabled) { -
-
Einleitung:
-
-
-
- -
-
- -
-
- } - @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus)) { -
-
nach Opusnummer:
- -
- } - @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr)) { -
-
nach Moldenhauer-Nummer:
- -
- } -
-} @else { - -} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts deleted file mode 100644 index 6bb23eaa4a..0000000000 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts +++ /dev/null @@ -1,395 +0,0 @@ -import { Component, DebugElement, Input } from '@angular/core'; -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { Observable, of as observableOf } from 'rxjs'; -import Spy = jasmine.Spy; - -import { cleanStylesFromDOM } from '@testing/clean-up-helper'; -import { - expectSpyCall, - expectToBe, - expectToContain, - expectToEqual, - getAndExpectDebugElementByCss, - getAndExpectDebugElementByDirective, -} from '@testing/expect-helper'; -import { RouterLinkStubDirective } from '@testing/router-stubs'; - -import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; -import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; - -import { EditionSectionDetailOverviewComponent } from './edition-section-detail-overview.component'; - -@Component({ selector: 'awg-edition-complex-card', template: '' }) -class EditionComplexCardStubComponent { - @Input() - complexes: EditionOutlineComplexItem[]; -} - -describe('EditionSectionDetailOverviewComponent', () => { - let component: EditionSectionDetailOverviewComponent; - let fixture: ComponentFixture; - let compDe: DebugElement; - - let mockEditionStateService: Partial; - - let editionStateServiceGetSelectedEditionSeriesSpy: Spy; - let editionStateServiceGetSelectedEditionSectionSpy: Spy; - let setupSectionDetailOverviewSpy: Spy; - - let expectedSelectedSeries: EditionOutlineSeries; - let expectedSelectedSection: EditionOutlineSection; - - beforeAll(() => { - EditionComplexesService.initializeEditionComplexesList(); - EditionOutlineService.initializeEditionOutline(); - }); - - beforeEach(async () => { - // Mock edition state service - mockEditionStateService = { - getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), - getSelectedEditionSection: (): Observable => observableOf(expectedSelectedSection), - }; - - await TestBed.configureTestingModule({ - declarations: [ - EditionSectionDetailOverviewComponent, - EditionComplexCardStubComponent, - RouterLinkStubDirective, - ], - providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], - }).compileComponents(); - - fixture = TestBed.createComponent(EditionSectionDetailOverviewComponent); - component = fixture.componentInstance; - compDe = fixture.debugElement; - - // TestData - expectedSelectedSeries = EditionOutlineService.getEditionOutline()[0]; - expectedSelectedSection = expectedSelectedSeries.sections[4]; - - // Spies on component functions - // `.and.callThrough` will track the spy down the nested describes, see - // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - editionStateServiceGetSelectedEditionSeriesSpy = spyOn( - mockEditionStateService, - 'getSelectedEditionSeries' - ).and.callThrough(); - editionStateServiceGetSelectedEditionSectionSpy = spyOn( - mockEditionStateService, - 'getSelectedEditionSection' - ).and.callThrough(); - setupSectionDetailOverviewSpy = spyOn(component, 'setupSectionDetailOverview').and.callThrough(); - }); - - afterAll(() => { - cleanStylesFromDOM(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - describe('BEFORE initial data binding', () => { - it('... should not have `selectedSeries`', () => { - expect(component.selectedSeries).toBeUndefined(); - }); - - it('... should not have `selectedSection`', () => { - expect(component.selectedSection).toBeUndefined(); - }); - - describe('VIEW', () => { - it('... should contain no outer div.awg-edition-section-detail yet', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - }); - - it('... should contain no div.alert-info', () => { - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - }); - }); - - describe('#setupSectionDetailOverview()', () => { - it('... should have a method `setupSectionDetailOverview`', () => { - expect(component.setupSectionDetailOverview).toBeDefined(); - }); - - it('... should not have been called', () => { - expectSpyCall(setupSectionDetailOverviewSpy, 0); - }); - }); - }); - - describe('AFTER initial data binding', () => { - beforeEach(() => { - // Mock the parent component input - component.selectedSeries = expectedSelectedSeries; - component.selectedSection = expectedSelectedSection; - - // Trigger initial data binding - fixture.detectChanges(); - }); - - it('should have `selectedSeries`', () => { - expect(component.selectedSeries).toBeDefined(); - expect(component.selectedSeries).toEqual(expectedSelectedSeries); - }); - - it('should have `selectedSection`', () => { - expect(component.selectedSection).toBeDefined(); - expect(component.selectedSection).toEqual(expectedSelectedSection); - }); - - describe('VIEW', () => { - it('... should contain one outer div.awg-edition-section-detail', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - }); - - it('... should contain no div.alert-info', () => { - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - }); - - it('... should contain one awg-edition-complex-card', () => { - getAndExpectDebugElementByCss(compDe, 'awg-edition-complex-card', 1, 1); - }); - - describe('... with given complexes', () => { - describe('... should contain 1 outer div.awg-edition-section-detail, but no div.alert-info ...', () => { - it('... if selected section is given and not empty', waitForAsync(() => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - - it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { - const shallowCopy = { ...component?.selectedSection }; - shallowCopy.content.complexTypes = { - ...component.selectedSection?.content?.complexTypes, - opus: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - - it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { - const shallowCopy = { ...component?.selectedSection }; - shallowCopy.content.complexTypes = { - ...component?.selectedSection?.content?.complexTypes, - mnr: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); - })); - }); - - describe('... opus complexes', () => { - it('... should contain 1 inner div.awg-edition-section-detail-opus if opus complexes are given', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 1, 1); - }); - - it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', () => { - const shallowCopy = { ...component?.selectedSection }; - shallowCopy.content.complexTypes = { - ...component?.selectedSection?.content?.complexTypes, - opus: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 0, 0); - }); - - it('... should display header (h5) in div.awg-edition-section-detail-opus', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); - const headerEl = headerDe[0].nativeElement; - - const expectedHeaderText = 'nach Opusnummer:'; - - expectToBe(headerEl.textContent, expectedHeaderText); - }); - - it('... should contain 1 edition complex card component (stubbed)', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - - getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); - }); - - it('... should pass down complexes to edition complex card component', () => { - const divDe = getAndExpectDebugElementByCss( - compDe, - 'div.awg-edition-section-detail-opus', - 1, - 1 - ); - const complexCardDes = getAndExpectDebugElementByDirective( - divDe[0], - EditionComplexCardStubComponent, - 1, - 1 - ); - const complexCardCmp = complexCardDes[0].injector.get( - EditionComplexCardStubComponent - ) as EditionComplexCardStubComponent; - - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.opus); - }); - }); - - describe('... mnr complexes', () => { - it('... should contain 1 inner div.awg-edition-section-detail-mnr if mnr complexes are given', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 1, 1); - }); - - it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', () => { - const shallowCopy = { ...component?.selectedSection }; - shallowCopy.content.complexTypes = { - ...component?.selectedSection?.content?.complexTypes, - mnr: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); - getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 0, 0); - }); - - it('... should display header (h5) in div.awg-edition-section-detail-mnr', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); - const headerEl = headerDe[0].nativeElement; - - const expectedHeaderText = 'nach Moldenhauer-Nummer:'; - - expectToBe(headerEl.textContent, expectedHeaderText); - }); - - it('... should contain 1 edition complex card component (stubbed)', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - - getAndExpectDebugElementByDirective(divDe[0], EditionComplexCardStubComponent, 1, 1); - }); - - it('... should pass down complexes to edition complex card component', () => { - const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); - const complexCardDes = getAndExpectDebugElementByDirective( - divDe[0], - EditionComplexCardStubComponent, - 1, - 1 - ); - const complexCardCmp = complexCardDes[0].injector.get( - EditionComplexCardStubComponent - ) as EditionComplexCardStubComponent; - - expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.mnr); - }); - }); - }); - - describe('... with no complexes', () => { - describe('... should contain no outer div.awg-edition-section-detail, but 1 div.alert-info ...', () => { - it('... if selectedSection has no complexes...', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.content.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - })); - - it('... if selectedSection has empty opus and mnr complexes', waitForAsync(() => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.content.complexTypes = { - ...component.selectedSection.content.complexTypes, - opus: undefined, - mnr: undefined, - }; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); - getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - })); - }); - - it('... should contain 1 p.text-muted in div.alert-info', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.content.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); - const pEl = pDe[0].nativeElement; - - expectToContain(pEl.classList, 'text-muted'); - }); - - it('... should display info message in p.text-muted', () => { - const shallowCopy = { ...component.selectedSection }; - shallowCopy.content.complexTypes = undefined; - component.selectedSection = shallowCopy; - fixture.detectChanges(); - - const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); - const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); - const pEl = pDe[0].nativeElement; - - const awg = EDITION_ROUTE_CONSTANTS.EDITION.short; - const series = expectedSelectedSeries.series.short; - const section = expectedSelectedSection.section.short; - - const expectedNoComplexesMsg = `[Diese Inhalte erscheinen im Zusammenhang der vollständigen Edition von ${awg} ${series}/${section}.]`; - - expectToBe(pEl.textContent.trim(), expectedNoComplexesMsg.trim()); - }); - }); - }); - - describe('#setupSectionDetailOverview()', () => { - it('... should have been called', () => { - expectSpyCall(setupSectionDetailOverviewSpy, 1); - }); - - it('... should have called `editionStateService.getSelectedEditionSeries`', () => { - expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); - }); - - it('... should have set selectedSeries (via EditionStateService)', () => { - expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); - expectToEqual(component.selectedSeries, expectedSelectedSeries); - }); - - it('... should have called `editionStateService.getSelectedEditionSection`', () => { - expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); - }); - - it('... should have set selectedSection (via EditionStateService)', () => { - expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); - expectToEqual(component.selectedSection, expectedSelectedSection); - }); - }); - }); -}); diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.html similarity index 100% rename from src/app/views/edition-view/edition-complex-card/edition-complex-card.component.html rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.html diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.scss similarity index 100% rename from src/app/views/edition-view/edition-complex-card/edition-complex-card.component.scss rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.scss diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.spec.ts similarity index 96% rename from src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.spec.ts index 340b9bcd51..65df74d884 100644 --- a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.spec.ts @@ -13,11 +13,11 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { EditionOutlineComplexItem } from '@awg-views/edition-view/models'; import { EditionComplexesService } from '@awg-views/edition-view/services'; -import { EditionComplexCardComponent } from './edition-complex-card.component'; +import { EditionSectionDetailComplexCardComponent } from './edition-section-detail-complex-card.component'; -describe('EditionComplexCardComponent (DONE)', () => { - let component: EditionComplexCardComponent; - let fixture: ComponentFixture; +describe('EditionSectionDetailComplexCardComponent (DONE)', () => { + let component: EditionSectionDetailComplexCardComponent; + let fixture: ComponentFixture; let compDe: DebugElement; let linkDes: DebugElement[]; @@ -31,12 +31,12 @@ describe('EditionComplexCardComponent (DONE)', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [EditionComplexCardComponent, RouterLinkStubDirective], + declarations: [EditionSectionDetailComplexCardComponent, RouterLinkStubDirective], }).compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(EditionComplexCardComponent); + fixture = TestBed.createComponent(EditionSectionDetailComplexCardComponent); component = fixture.componentInstance; compDe = fixture.debugElement; diff --git a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.ts similarity index 61% rename from src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.ts index 7b56a002d1..fdd6c6f183 100644 --- a/src/app/views/edition-view/edition-complex-card/edition-complex-card.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/edition-section-detail-complex-card.component.ts @@ -3,18 +3,18 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { EditionOutlineComplexItem } from '@awg-views/edition-view/models'; /** - * The EditionComplexCard component. + * The EditionSectionDetailComplexCard component. * * It contains the card style view of an edition complex * for the edition view of the app. */ @Component({ - selector: 'awg-edition-complex-card', - templateUrl: './edition-complex-card.component.html', - styleUrls: ['./edition-complex-card.component.scss'], + selector: 'awg-edition-section-detail-complex-card', + templateUrl: './edition-section-detail-complex-card.component.html', + styleUrls: ['./edition-section-detail-complex-card.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class EditionComplexCardComponent { +export class EditionSectionDetailComplexCardComponent { /** * Input variable: complexes. * diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/index.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/index.ts new file mode 100644 index 0000000000..5864d44acf --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-complex-card/index.ts @@ -0,0 +1 @@ +export * from './edition-section-detail-complex-card.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html new file mode 100644 index 0000000000..ec83138c44 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html @@ -0,0 +1,5 @@ + diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.scss similarity index 100% rename from src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.scss diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts new file mode 100644 index 0000000000..bd948ba181 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts @@ -0,0 +1,61 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectToBe, expectToContain, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { EditionSectionDetailDisclaimerComponent } from './edition-section-detail-disclaimer.component'; + +describe('EditionSectionDetailDisclaimerComponent (DONE)', () => { + let component: EditionSectionDetailDisclaimerComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionSectionDetailDisclaimerComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionSectionDetailDisclaimerComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + describe('VIEW', () => { + it('... should contain one div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + }); + + it('... should contain one centered, muted, small paragraph in div.alert-info', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + expectToContain(pEl.classList, 'small'); + expectToContain(pEl.classList, 'text-muted'); + expectToContain(pEl.classList, 'text-center'); + }); + + it('... should display disclaimer in paragraph', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + const expectedDisclaimer = `[Die online verfügbaren Inhalte werden sukzessive erweitert und ergänzt.]`; + + expectToBe(pEl.textContent.trim(), expectedDisclaimer.trim()); + }); + }); + }); + + // No tests for the 'AFTER initial data binding' phase needed +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.ts new file mode 100644 index 0000000000..48d3a67954 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.ts @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; + +/** + * The EditionSectionDetailDisclaimer component. + * + * It contains a disclaimer for the section detail + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-section-detail-disclaimer', + templateUrl: './edition-section-detail-disclaimer.component.html', + styleUrls: ['./edition-section-detail-disclaimer.component.scss'], +}) +export class EditionSectionDetailDisclaimerComponent { + // Intentionally left empty +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/index.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/index.ts new file mode 100644 index 0000000000..3aef79d175 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/index.ts @@ -0,0 +1 @@ +export * from './edition-section-detail-disclaimer.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.html new file mode 100644 index 0000000000..d3e50da578 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.html @@ -0,0 +1,27 @@ +@if (selectedSeries && selectedSection) { +
+
+ +
+
+

{{ selectedSection?.content?.intro.preview }} …

+
+ +
+} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts new file mode 100644 index 0000000000..e5501aa585 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts @@ -0,0 +1,209 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { + expectToBe, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionOutlineService } from '@awg-views/edition-view/services'; + +import { click } from '@testing/click-helper'; +import { EditionSectionDetailIntroCardComponent } from './edition-section-detail-intro-card.component'; + +describe('EditionSectionDetailIntroCardComponent (DONE)', () => { + let component: EditionSectionDetailIntroCardComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let linkDes: DebugElement[]; + let routerLinks; + + let expectedSelectedSeries: EditionOutlineSeries; + let expectedSelectedSection: EditionOutlineSection; + + beforeAll(() => { + EditionOutlineService.initializeEditionOutline(); + }); + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionSectionDetailIntroCardComponent, RouterLinkStubDirective], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionSectionDetailIntroCardComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedSelectedSeries = JSON.parse(JSON.stringify(EditionOutlineService.getEditionOutline()[0])); + expectedSelectedSection = JSON.parse(JSON.stringify(expectedSelectedSeries.sections[4])); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `selectedSeries`', () => { + expect(component.selectedSeries).toBeUndefined(); + }); + + it('... should not have `selectedSection`', () => { + expect(component.selectedSection).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain no div.card.awg-edition-card yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + component.selectedSeries = expectedSelectedSeries; + component.selectedSection = expectedSelectedSection; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have `selectedSeries`', () => { + expectToEqual(component.selectedSeries, expectedSelectedSeries); + }); + + it('... should have `selectedSection`', () => { + expectToEqual(component.selectedSection, expectedSelectedSection); + }); + + describe('VIEW', () => { + it('... should contain one div.card.awg-edition-card', () => { + getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + }); + + it('... should contain one h5.card-header in div.card', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + getAndExpectDebugElementByCss(cardDes[0], 'h5.card-header', 1, 1); + }); + + it('... should render intro title in h5.card-header', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + const h5Des = getAndExpectDebugElementByCss(cardDes[0], 'h5.card-header', 1, 1); + const h5El = h5Des[0].nativeElement; + + expectToBe(h5El.textContent.trim(), 'Einleitung'); + }); + + it('... should contain one div.card-body in div.card', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + getAndExpectDebugElementByCss(cardDes[0], 'div.card-body', 1, 1); + }); + + it('... should contain one p.card-text in div.card-body', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(cardDes[0], 'div.card-body', 1, 1); + + getAndExpectDebugElementByCss(bodyDes[0], 'p.card-text', 1, 1); + }); + + it('... should render intro preview in p.card-text', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(cardDes[0], 'div.card-body', 1, 1); + const pDes = getAndExpectDebugElementByCss(bodyDes[0], 'p.card-text', 1, 1); + const pEl = pDes[0].nativeElement; + + expectToBe(pEl.textContent.trim(), expectedSelectedSection.content.intro.preview + ' …'); + }); + + it('... should contain one div.card-footer in div.card', () => { + const cardDes = getAndExpectDebugElementByCss(compDe, 'div.card.awg-edition-card', 1, 1); + + getAndExpectDebugElementByCss(cardDes[0], 'div.card-footer', 1, 1); + }); + it('... should have text-end paragraph in div.card-footer', () => { + const cardFooterDes = getAndExpectDebugElementByCss(compDe, 'div.card-footer', 1, 1); + + getAndExpectDebugElementByCss(cardFooterDes[0], 'p.text-end', 1, 1); + }); + + it('... should have a link to intro in text-end paragraph', () => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.text-end', 1, 1); + + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); + const aEl = aDes[0].nativeElement; + + const expectedLinkText = 'Mehr ...'; + + expectToBe(aEl.textContent.trim(), expectedLinkText); + }); + + it('... should disable links only for disabled intros', () => { + const pDes = getAndExpectDebugElementByCss(compDe, 'p.text-end', 1, 1); + + const aDes = getAndExpectDebugElementByCss(pDes[0], 'a', 1, 1); + const aEl = aDes[0].nativeElement; + + expectToBe(aEl.classList.contains('disabled'), expectedSelectedSection.content.intro.disabled); + }); + }); + + describe('[routerLink]', () => { + beforeEach(() => { + // Find DebugElements with an attached RouterLinkStubDirective + linkDes = getAndExpectDebugElementByDirective(compDe, RouterLinkStubDirective, 1, 1); + + // Get attached link directive instances using each DebugElement's injector + routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + }); + + it('... can get correct number of routerLinks from template', () => { + expectToBe(routerLinks.length, 1); + }); + + it('... can get correct linkParams from template', () => { + routerLinks.forEach((routerLink: RouterLinkStubDirective, _index: number) => { + const expectedRouterLink = [ + '/edition', + 'series', + expectedSelectedSeries.series.route, + 'section', + expectedSelectedSection.section.route, + 'intro', + ]; + expectToEqual(routerLink.linkParams, expectedRouterLink); + }); + }); + + it('... can click all links in template', () => { + routerLinks.forEach((routerLink: RouterLinkStubDirective, index: number) => { + const linkDe = linkDes[index]; + const expectedRouterLink = [ + '/edition', + 'series', + expectedSelectedSeries.series.route, + 'section', + expectedSelectedSection.section.route, + 'intro', + ]; + + expectToBe(routerLink.navigatedTo, null); + + click(linkDe); + fixture.detectChanges(); + + expectToEqual(routerLink.navigatedTo, expectedRouterLink); + }); + }); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.ts new file mode 100644 index 0000000000..29071e18f0 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.ts @@ -0,0 +1,33 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-app/views/edition-view/models'; + +/** + * The EditionSectionDetailIntroCard component. + * + * It contains the intro card for the section detail + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-section-detail-intro-card', + templateUrl: './edition-section-detail-intro-card.component.html', + styleUrls: ['./edition-section-detail-intro-card.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EditionSectionDetailIntroCardComponent { + /** + * Input variable: selectedSeries. + * + * It keeps the selected series of the edition. + */ + @Input() + selectedSeries: EditionOutlineSeries; + + /** + * Input variable: selectedSection. + * + * It keeps the selected section of the edition. + */ + @Input() + selectedSection: EditionOutlineSection; +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/index.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/index.ts new file mode 100644 index 0000000000..5a211e0c58 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/index.ts @@ -0,0 +1 @@ +export * from './edition-section-detail-intro-card.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.html new file mode 100644 index 0000000000..3c75706f9d --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.html @@ -0,0 +1,44 @@ +@if (selectedSection$ | async; as selectedSection) { + @if ( + utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus) || + utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr) + ) { +
+ + + @if (!selectedSection?.content?.intro.disabled) { +
+
+
+ +
+
+
+ } + @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.opus)) { +
+
nach Opusnummer:
+ +
+ } + @if (utils.isNotEmptyArray(selectedSection?.content?.complexTypes?.mnr)) { +
+
nach Moldenhauer-Nummer:
+ +
+ } +
+ } @else { + + } +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts new file mode 100644 index 0000000000..e8001e5152 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.spec.ts @@ -0,0 +1,439 @@ +import { Component, DebugElement, Input } from '@angular/core'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { lastValueFrom, Observable, of as observableOf } from 'rxjs'; +import Spy = jasmine.Spy; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; +import { + expectSpyCall, + expectToBe, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { EditionOutlineComplexItem, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; + +import { EditionSectionDetailOverviewComponent } from './edition-section-detail-overview.component'; + +// Mock components +@Component({ selector: 'awg-edition-section-detail-complex-card', template: '' }) +class EditionSectionDetailComplexCardStubComponent { + @Input() + complexes: EditionOutlineComplexItem[]; +} + +@Component({ selector: 'awg-edition-section-detail-disclaimer', template: '' }) +class EditionSectionDetailDisclaimerStubComponent {} + +@Component({ selector: 'awg-edition-section-detail-intro-card', template: '' }) +class EditionSectionDetailIntroCardStubComponent { + @Input() + selectedSeries: EditionOutlineSeries; + @Input() + selectedSection: EditionOutlineSection; +} + +@Component({ selector: 'awg-edition-section-detail-placeholder', template: '' }) +class EditionSectionDetailPlaceholderStubComponent { + @Input() + selectedSeries: EditionOutlineSeries; + @Input() + selectedSection: EditionOutlineSection; +} + +describe('EditionSectionDetailOverviewComponent', () => { + let component: EditionSectionDetailOverviewComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let mockEditionStateService: Partial; + + let editionStateServiceGetSelectedEditionSeriesSpy: Spy; + let editionStateServiceGetSelectedEditionSectionSpy: Spy; + let setupSectionDetailOverviewSpy: Spy; + + let expectedSelectedSeries: EditionOutlineSeries; + let expectedSelectedSection: EditionOutlineSection; + + beforeAll(() => { + EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); + }); + + beforeEach(async () => { + // Mock edition state service + mockEditionStateService = { + getSelectedEditionSeries: (): Observable => observableOf(expectedSelectedSeries), + getSelectedEditionSection: (): Observable => observableOf(expectedSelectedSection), + }; + + await TestBed.configureTestingModule({ + declarations: [ + EditionSectionDetailOverviewComponent, + EditionSectionDetailComplexCardStubComponent, + EditionSectionDetailDisclaimerStubComponent, + EditionSectionDetailIntroCardStubComponent, + EditionSectionDetailPlaceholderStubComponent, + RouterLinkStubDirective, + ], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionSectionDetailOverviewComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // TestData + expectedSelectedSeries = JSON.parse(JSON.stringify(EditionOutlineService.getEditionOutline()[0])); + expectedSelectedSection = JSON.parse(JSON.stringify(expectedSelectedSeries.sections[4])); + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + editionStateServiceGetSelectedEditionSeriesSpy = spyOn( + mockEditionStateService, + 'getSelectedEditionSeries' + ).and.callThrough(); + editionStateServiceGetSelectedEditionSectionSpy = spyOn( + mockEditionStateService, + 'getSelectedEditionSection' + ).and.callThrough(); + setupSectionDetailOverviewSpy = spyOn(component, 'setupSectionDetailOverview').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `selectedSeries$`', () => { + expect(component.selectedSeries$).toBeUndefined(); + }); + + it('... should not have `selectedSection$`', () => { + expect(component.selectedSection$).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain no outer div.awg-edition-section-detail yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + }); + + it('... should contain no div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 0, 0); + }); + + it('... should contain no EditionSectionDisclaimer (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailDisclaimerStubComponent, 0, 0); + }); + + it('... should contain no EditionSectionDetailIntroCard (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailIntroCardStubComponent, 0, 0); + }); + + it('... should contain no EditionSectionDetailComplexCard (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailComplexCardStubComponent, 0, 0); + }); + + it('... should contain no EditionSectionDetailPlaceholder (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 0, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Mock the parent component input + component.selectedSeries$ = observableOf(expectedSelectedSeries); + component.selectedSection$ = observableOf(expectedSelectedSection); + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('should have `selectedSeries$`', waitForAsync(() => { + expectAsync(lastValueFrom(component.selectedSeries$)).toBeResolvedTo(expectedSelectedSeries); + })); + + it('should have `selectedSection$`', waitForAsync(() => { + expectAsync(lastValueFrom(component.selectedSection$)).toBeResolvedTo(expectedSelectedSection); + })); + + describe('VIEW', () => { + it('... should contain one outer div.awg-edition-section-detail', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + }); + + it('... should contain one EditionSectionDisclaimer (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailDisclaimerStubComponent, 1, 1); + }); + + it('... should contain no EditionSectionDetailPlaceholder (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 0, 0); + }); + + describe('... with given intro', () => { + it('... should contain one div.awg-edition-section-detail-intro', waitForAsync(() => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-intro', 1, 1); + })); + + it('... should contain one EditionSectionDetailIntroCardComponent (stubbed)', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-intro', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], EditionSectionDetailIntroCardStubComponent, 1, 1); + }); + + it('... should pass down selectedSeries and selectedSection to EditionSectionDetailIntroCardComponent', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-intro', 1, 1); + const introCardDes = getAndExpectDebugElementByDirective( + divDes[0], + EditionSectionDetailIntroCardStubComponent, + 1, + 1 + ); + const introCardCmp = introCardDes[0].injector.get( + EditionSectionDetailIntroCardStubComponent + ) as EditionSectionDetailIntroCardStubComponent; + + expectToEqual(introCardCmp.selectedSeries, expectedSelectedSeries); + expectToEqual(introCardCmp.selectedSection, expectedSelectedSection); + }); + }); + + describe('... with intro disabled', () => { + it('... should contain no div.awg-edition-section-detail-intro', waitForAsync(() => { + expectedSelectedSection.content.intro.disabled = true; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-intro', 0, 0); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailIntroCardStubComponent, 0, 0); + })); + }); + + describe('... with given complexes', () => { + describe('... should contain one outer div.awg-edition-section-detail, but no EditionSectionDetailPlaceholder ...', () => { + it('... if selected section is given and not empty', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 0, 0); + }); + + it('... if selected section has empty opus complexes, but given mnr complexes', waitForAsync(() => { + expectedSelectedSection.content.complexTypes.opus = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 0, 0); + })); + + it('... if selected section has empty mnr complexes, but given opus complexes', waitForAsync(() => { + expectedSelectedSection.content.complexTypes.mnr = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 0, 0); + })); + }); + + describe('... opus complexes', () => { + it('... should contain one inner div.awg-edition-section-detail-opus if opus complexes are given', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 1, 1); + }); + + it('... should contain no inner div.awg-edition-section-detail-opus if no opus complexes are given', waitForAsync(() => { + expectedSelectedSection.content.complexTypes.opus = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-opus', 0, 0); + })); + + it('... should display header (h5) in div.awg-edition-section-detail-opus', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); + const headerEl = headerDe[0].nativeElement; + + const expectedHeaderText = 'nach Opusnummer:'; + + expectToBe(headerEl.textContent, expectedHeaderText); + }); + + it('... should contain one EditionSectionDetailComplexCardComponent (stubbed)', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + + getAndExpectDebugElementByDirective( + divDe[0], + EditionSectionDetailComplexCardStubComponent, + 1, + 1 + ); + }); + + it('... should pass down opus complexes to EditionSectionDetailComplexCardComponent', () => { + const divDe = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-detail-opus', + 1, + 1 + ); + const complexCardDes = getAndExpectDebugElementByDirective( + divDe[0], + EditionSectionDetailComplexCardStubComponent, + 1, + 1 + ); + const complexCardCmp = complexCardDes[0].injector.get( + EditionSectionDetailComplexCardStubComponent + ) as EditionSectionDetailComplexCardStubComponent; + + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.opus); + }); + }); + + describe('... mnr complexes', () => { + it('... should contain one inner div.awg-edition-section-detail-mnr if mnr complexes are given', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 1, 1); + }); + + it('... should contain no inner div.awg-edition-section-detail-mnr if no mnr complexes are given', waitForAsync(() => { + expectedSelectedSection.content.complexTypes.mnr = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 1, 1); + getAndExpectDebugElementByCss(divDe[0], 'div.awg-edition-section-detail-mnr', 0, 0); + })); + + it('... should display header (h5) in div.awg-edition-section-detail-mnr', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + const headerDe = getAndExpectDebugElementByCss(divDe[0], 'h5', 1, 1); + const headerEl = headerDe[0].nativeElement; + + const expectedHeaderText = 'nach Moldenhauer-Nummer:'; + + expectToBe(headerEl.textContent, expectedHeaderText); + }); + + it('... should contain one EditionSectionDetailComplexCardComponent (stubbed)', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + + getAndExpectDebugElementByDirective( + divDe[0], + EditionSectionDetailComplexCardStubComponent, + 1, + 1 + ); + }); + + it('... should pass down mnr complexes to EditionSectionDetailComplexCardComponent', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail-mnr', 1, 1); + const complexCardDes = getAndExpectDebugElementByDirective( + divDe[0], + EditionSectionDetailComplexCardStubComponent, + 1, + 1 + ); + const complexCardCmp = complexCardDes[0].injector.get( + EditionSectionDetailComplexCardStubComponent + ) as EditionSectionDetailComplexCardStubComponent; + + expectToEqual(complexCardCmp.complexes, expectedSelectedSection.content.complexTypes.mnr); + }); + }); + }); + + describe('... with no complexes', () => { + describe('... should contain no outer div.awg-edition-section-detail, but one EditionSectionDetailPlaceholder ...', () => { + it('... if selectedSection has no complexTypes...', waitForAsync(() => { + expectedSelectedSection.content.complexTypes = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 1, 1); + })); + + it('... if selectedSection has empty opus and mnr complexTypes', waitForAsync(() => { + expectedSelectedSection.content.complexTypes.opus = undefined; + expectedSelectedSection.content.complexTypes.mnr = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-section-detail', 0, 0); + getAndExpectDebugElementByDirective(compDe, EditionSectionDetailPlaceholderStubComponent, 1, 1); + })); + }); + + it('... should pass down selectedSeries and selectedSection to EditionSectionDetailPlaceholder', waitForAsync(() => { + expectedSelectedSection.content.complexTypes = undefined; + component.selectedSection$ = observableOf(expectedSelectedSection); + detectChangesOnPush(fixture); + + const placeholderDes = getAndExpectDebugElementByDirective( + compDe, + EditionSectionDetailPlaceholderStubComponent, + 1, + 1 + ); + const placeholderCmp = placeholderDes[0].injector.get( + EditionSectionDetailPlaceholderStubComponent + ) as EditionSectionDetailPlaceholderStubComponent; + + expectToEqual(placeholderCmp.selectedSeries, expectedSelectedSeries); + expectToEqual(placeholderCmp.selectedSection, expectedSelectedSection); + })); + }); + }); + + describe('#setupSectionDetailOverview()', () => { + it('... should have a method `setupSectionDetailOverview`', () => { + expect(component.setupSectionDetailOverview).toBeDefined(); + }); + + it('... should have been called', () => { + expectSpyCall(setupSectionDetailOverviewSpy, 1); + }); + + it('... should have triggered `editionStateService.getSelectedEditionSeries`', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); + }); + + it('... should have set selectedSeries (via EditionStateService)', waitForAsync(() => { + expectSpyCall(editionStateServiceGetSelectedEditionSeriesSpy, 1); + expectAsync(lastValueFrom(component.selectedSeries$)).toBeResolvedTo(expectedSelectedSeries); + })); + + it('... should have triggered `editionStateService.getSelectedEditionSection`', () => { + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); + }); + + it('... should have set selectedSection (via EditionStateService)', waitForAsync(() => { + expectSpyCall(editionStateServiceGetSelectedEditionSectionSpy, 1); + expectAsync(lastValueFrom(component.selectedSection$)).toBeResolvedTo(expectedSelectedSection); + })); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts similarity index 78% rename from src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts rename to src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts index 62f9e8408e..696fcffb86 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/edition-section-detail-overview.component.ts @@ -3,6 +3,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { UtilityService } from '@awg-core/services'; import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; import { EditionStateService } from '@awg-views/edition-view/services'; +import { Observable } from 'rxjs'; /** * The EditionSectionDetailOverview component. @@ -20,16 +21,16 @@ export class EditionSectionDetailOverviewComponent implements OnInit { /** * Public variable: selectedSeries. * - * It keeps the selected series of the edition. + * It keeps the observable of the selected series of the edition. */ - selectedSeries: EditionOutlineSeries; + selectedSeries$: Observable; /** - * Public variable: selectedSection. + * Public variable: selectedSection$. * - * It keeps the selected section of the edition. + * It keeps the observable of the selected section of the edition. */ - selectedSection: EditionOutlineSection; + selectedSection$: Observable; /** * Constructor of the EditionSectionDetailComponent. @@ -65,7 +66,7 @@ export class EditionSectionDetailOverviewComponent implements OnInit { * @returns {void} Sets up the section detail overview. */ setupSectionDetailOverview(): void { - this.editionStateService.getSelectedEditionSeries().subscribe(series => (this.selectedSeries = series)); - this.editionStateService.getSelectedEditionSection().subscribe(section => (this.selectedSection = section)); + this.selectedSeries$ = this.editionStateService.getSelectedEditionSeries(); + this.selectedSection$ = this.editionStateService.getSelectedEditionSection(); } } diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/index.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/index.ts new file mode 100644 index 0000000000..f39ccb1699 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-overview/index.ts @@ -0,0 +1 @@ +export * from './edition-section-detail-overview.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.html new file mode 100644 index 0000000000..28ac1e02bb --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.html @@ -0,0 +1,6 @@ + diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.spec.ts new file mode 100644 index 0000000000..1c25fb8ca7 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.spec.ts @@ -0,0 +1,95 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectToBe, expectToContain, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; +import { EditionOutlineService } from '@awg-views/edition-view/services'; + +import { EditionSectionDetailPlaceholderComponent } from './edition-section-detail-placeholder.component'; + +describe('EditionSectionDetailPlaceholderComponent', () => { + let component: EditionSectionDetailPlaceholderComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let expectedSelectedSeries: EditionOutlineSeries; + let expectedSelectedSection: EditionOutlineSection; + + beforeAll(() => { + EditionOutlineService.initializeEditionOutline(); + }); + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [EditionSectionDetailPlaceholderComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(EditionSectionDetailPlaceholderComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedSelectedSeries = JSON.parse(JSON.stringify(EditionOutlineService.getEditionOutline()[0])); + expectedSelectedSection = JSON.parse(JSON.stringify(expectedSelectedSeries.sections[4])); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have `selectedSeries`', () => { + expect(component.selectedSeries).toBeUndefined(); + }); + + it('... should not have `selectedSection`', () => { + expect(component.selectedSection).toBeUndefined(); + }); + + describe('VIEW', () => { + it('... should contain one div.alert-info', () => { + getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + }); + + it('... should contain one centered, muted paragraph in div.alert-info', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + expectToContain(pEl.classList, 'text-muted'); + expectToContain(pEl.classList, 'text-center'); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + component.selectedSeries = expectedSelectedSeries; + component.selectedSection = expectedSelectedSection; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + describe('VIEW', () => { + it('... should display placeholder in paragraph', () => { + const divDe = getAndExpectDebugElementByCss(compDe, 'div.alert-info', 1, 1); + const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); + const pEl = pDe[0].nativeElement; + + const series = expectedSelectedSeries.series.short; + const section = expectedSelectedSection.section.short; + + const expectedPlaceholder = `[Diese Inhalte erscheinen im Zusammenhang der vollständigen Edition von AWG ${series}/${section}.]`; + + expectToBe(pEl.textContent.trim(), expectedPlaceholder.trim()); + }); + }); + }); +}); diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.ts new file mode 100644 index 0000000000..dfd8ade62c --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/edition-section-detail-placeholder.component.ts @@ -0,0 +1,32 @@ +import { Component, Input } from '@angular/core'; + +import { EditionOutlineSection, EditionOutlineSeries } from '@awg-app/views/edition-view/models'; + +/** + * The EditionSectionDetailPlaceholder component. + * + * It contains a placeholder for the section detail + * of the edition view of the app. + */ +@Component({ + selector: 'awg-edition-section-detail-placeholder', + templateUrl: './edition-section-detail-placeholder.component.html', + styleUrls: ['./edition-section-detail-placeholder.component.scss'], +}) +export class EditionSectionDetailPlaceholderComponent { + /** + * Input variable: selectedSeries. + * + * It keeps the selected series of the edition. + */ + @Input() + selectedSeries: EditionOutlineSeries; + + /** + * Input variable: selectedSection. + * + * It keeps the selected section of the edition. + */ + @Input() + selectedSection: EditionOutlineSection; +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/index.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/index.ts new file mode 100644 index 0000000000..c327c09274 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-placeholder/index.ts @@ -0,0 +1 @@ +export * from './edition-section-detail-placeholder.component'; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-routing.module.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-routing.module.ts new file mode 100644 index 0000000000..58329ba591 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-routing.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { EditionSectionDetailOverviewComponent } from './edition-section-detail-overview/edition-section-detail-overview.component'; +import { EditionSectionDetailComponent } from './edition-section-detail.component'; + +/* Routes of the EditionSectionDetailModule */ +const EDITION_SECTION_DETAIL_ROUTES: Routes = [ + { + path: '', + component: EditionSectionDetailComponent, + children: [ + { + path: 'intro', + loadChildren: () => + import( + '../../../edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module' + ).then(m => m.EditionIntroModule), + }, + { + path: '', + component: EditionSectionDetailOverviewComponent, + }, + ], + }, +]; + +/** + * Routed components of the {@link EditionSectionDetailModule}: + * {@link EditionSectionDetailComponent} and {@link EditionSectionDetailOverviewComponent}. + */ +export const routedEditionSectionDetailComponents = [ + EditionSectionDetailComponent, + EditionSectionDetailOverviewComponent, +]; + +/** + * EditionSectionDetail module routing. + * + * It activates the EDITION_SECTION_DETAIL_ROUTES. + */ +@NgModule({ + imports: [RouterModule.forChild(EDITION_SECTION_DETAIL_ROUTES)], + exports: [RouterModule], +}) +export class EditionSectionDetailRoutingModule {} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.module.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.module.ts new file mode 100644 index 0000000000..46daa26c28 --- /dev/null +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.module.ts @@ -0,0 +1,29 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '@awg-shared/shared.module'; + +import { EditionSectionDetailComplexCardComponent } from './edition-section-detail-complex-card'; +import { EditionSectionDetailDisclaimerComponent } from './edition-section-detail-disclaimer'; +import { EditionSectionDetailIntroCardComponent } from './edition-section-detail-intro-card'; +import { EditionSectionDetailPlaceholderComponent } from './edition-section-detail-placeholder'; + +import { + EditionSectionDetailRoutingModule, + routedEditionSectionDetailComponents, +} from './edition-section-detail-routing.module'; + +/** + * The edition section detail module. + * + * It embeds the edition section detail components. + */ +@NgModule({ + imports: [SharedModule, EditionSectionDetailRoutingModule], + declarations: [ + EditionSectionDetailComplexCardComponent, + EditionSectionDetailDisclaimerComponent, + EditionSectionDetailIntroCardComponent, + EditionSectionDetailPlaceholderComponent, + routedEditionSectionDetailComponents, + ], +}) +export class EditionSectionDetailModule {} diff --git a/src/app/views/edition-view/edition-view-routing.module.ts b/src/app/views/edition-view/edition-view-routing.module.ts index 4c560ba1ef..37ec16e2a6 100644 --- a/src/app/views/edition-view/edition-view-routing.module.ts +++ b/src/app/views/edition-view/edition-view-routing.module.ts @@ -5,8 +5,6 @@ import { EditionComplexComponent } from './edition-outlets/edition-complex'; import { EditionDetailNavComponent } from './edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component'; import { EditionSeriesComponent } from './edition-outlets/edition-series'; import { EditionSeriesDetailComponent } from './edition-outlets/edition-series-detail'; -import { EditionSectionDetailComponent } from './edition-outlets/edition-series-detail/edition-section-detail'; -import { EditionSectionDetailOverviewComponent } from './edition-outlets/edition-series-detail/edition-section-detail-overview/edition-section-detail-overview.component'; import { EditionSectionsComponent } from './edition-outlets/edition-series-detail/edition-sections'; import { EditionViewComponent } from './edition-view.component'; @@ -48,20 +46,10 @@ const EDITION_VIEW_ROUTES: Routes = [ { // Section by id (1, 2, 3, 4, 5). path: 'section/:id', - component: EditionSectionDetailComponent, - children: [ - { - path: 'intro', - loadChildren: () => - import( - './edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro.module' - ).then(m => m.EditionIntroModule), - }, - { - path: '', - component: EditionSectionDetailOverviewComponent, - }, - ], + loadChildren: () => + import( + './edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail.module' + ).then(m => m.EditionSectionDetailModule), }, { path: 'sections/:id', @@ -140,8 +128,6 @@ export const routedEditionViewComponents = [ EditionComplexComponent, EditionDetailNavComponent, EditionSectionsComponent, - EditionSectionDetailComponent, - EditionSectionDetailOverviewComponent, EditionSeriesComponent, EditionSeriesDetailComponent, ]; diff --git a/src/app/views/edition-view/edition-view.module.ts b/src/app/views/edition-view/edition-view.module.ts index 454765747a..fd2a99fdfd 100644 --- a/src/app/views/edition-view/edition-view.module.ts +++ b/src/app/views/edition-view/edition-view.module.ts @@ -4,7 +4,6 @@ import { SharedModule } from '@awg-shared/shared.module'; import { EditionViewRoutingModule, routedEditionViewComponents } from './edition-view-routing.module'; -import { EditionComplexCardComponent } from './edition-complex-card'; import { EditionJumbotronComponent } from './edition-jumbotron'; /** * The editionView module. @@ -15,6 +14,6 @@ import { EditionJumbotronComponent } from './edition-jumbotron'; */ @NgModule({ imports: [SharedModule, EditionViewRoutingModule], - declarations: [routedEditionViewComponents, EditionComplexCardComponent, EditionJumbotronComponent], + declarations: [routedEditionViewComponents, EditionJumbotronComponent], }) export class EditionViewModule {} From 4343fb787bf7477ea9034abb5a9a76d857d6f1e4 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 19:37:24 +0200 Subject: [PATCH 155/213] style(edition): remove bg-colors from intro helper classes --- .../edition-intro-content.component.scss | 12 ------------ ...ition-section-detail-intro-card.component.spec.ts | 1 + 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss index f7615e76ca..bfec5b515c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-intro/edition-intro-content/edition-intro-content.component.scss @@ -7,18 +7,6 @@ text-justify: inter-word; &::ng-deep { - .link-todo { - background-color: chartreuse; - } - - .corrigenda { - background-color: burlywood; - } - - .errata { - background-color: red; - } - .note-1-dig { margin-left: 1.3em; text-indent: -1.3em; diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts index e5501aa585..d8a027756e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-intro-card/edition-section-detail-intro-card.component.spec.ts @@ -130,6 +130,7 @@ describe('EditionSectionDetailIntroCardComponent (DONE)', () => { getAndExpectDebugElementByCss(cardDes[0], 'div.card-footer', 1, 1); }); + it('... should have text-end paragraph in div.card-footer', () => { const cardFooterDes = getAndExpectDebugElementByCss(compDe, 'div.card-footer', 1, 1); From dc3ec0986d431d868ff770493700785bd3f0d150 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 20:03:24 +0200 Subject: [PATCH 156/213] fix(edition): improve wording in section detail disclaimer --- .../edition-section-detail-disclaimer.component.html | 2 +- .../edition-section-detail-disclaimer.component.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html index ec83138c44..f9ea04dcca 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html @@ -1,5 +1,5 @@ diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts index bd948ba181..d7d9344e9f 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts @@ -50,7 +50,7 @@ describe('EditionSectionDetailDisclaimerComponent (DONE)', () => { const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); const pEl = pDe[0].nativeElement; - const expectedDisclaimer = `[Die online verfügbaren Inhalte werden sukzessive erweitert und ergänzt.]`; + const expectedDisclaimer = `[Die online verfügbaren Inhalte werden sukzessive ergänzt und erweitert.]`; expectToBe(pEl.textContent.trim(), expectedDisclaimer.trim()); }); From 9024e7681bb85d044414dd9fd28990a295d68473 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Wed, 16 Oct 2024 20:25:37 +0200 Subject: [PATCH 157/213] feat(edition): add cover images to section overview --- .../edition-sections.component.html | 13 +++ .../edition-sections.component.spec.ts | 106 ++++++++++++++++++ .../img/edition/series/1/section/5/cover.jpg | Bin 0 -> 26422 bytes 3 files changed, 119 insertions(+) create mode 100644 src/assets/img/edition/series/1/section/5/cover.jpg diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html index 6fc8db9fbc..44ec929812 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html @@ -3,6 +3,19 @@ @for (section of selectedSeries.sections; track $index) {
+ @if (!section.disabled) { + In Vorbereitung + }
{{ section.section.full }} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts index fd49815199..2da5cfc993 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts @@ -129,6 +129,112 @@ describe('EditionSectionsComponent (DONE)', () => { ); }); + describe('... cover image', () => { + it('... should contain one img.card-img-top in each div.card for non-disabled sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + if (!expectedSection.disabled) { + getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + } else { + getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); + } + }); + }); + + it('... should have correct src in img.card-img-top for non-disabled sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + if (!expectedSection.disabled) { + const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const imgEl = imgDes[0].nativeElement; + + const expectedSrc = + 'assets/img/edition/series/' + + expectedSelectedSeries.series.route + + '/section/' + + expectedSection.section.route + + '/cover.jpg'; + + expectToContain(imgEl.src, expectedSrc); + } else { + getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); + } + }); + }); + + it('... should have correct alt in img.card-img-top for non-disabled sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + if (!expectedSection.disabled) { + const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const imgEl = imgDes[0].nativeElement; + + const expectedAlt = 'In Vorbereitung'; + + expectToBe(imgEl.alt, expectedAlt); + } else { + getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); + } + }); + }); + + it('... should have correct title in img.card-img-top for non-disabled sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + if (!expectedSection.disabled) { + const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const imgEl = imgDes[0].nativeElement; + + const expectedTitle = `AWG ${expectedSelectedSeries.series.short}/${expectedSection.section.short}`; + + expectToBe(imgEl.title, expectedTitle); + } else { + getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); + } + }); + }); + }); + describe('... div.card-body', () => { it('... should contain one div.card-body in each div.card', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; diff --git a/src/assets/img/edition/series/1/section/5/cover.jpg b/src/assets/img/edition/series/1/section/5/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e6c15b09a6ee3ab985d4a3ea5047ef4d35f85a4 GIT binary patch literal 26422 zcmeIa2~bm6*ER}Gw{|-r(4c^zfPfMPAq>i-uQI4iEtrG=0SOQYkRVf-9X@2<)|`{bNFS?4)x zuf6tK`<&0ipGO4l3+&swcklOm_kI8UKH+`4AJK#R_8k=c@$g~M!-szqIq+-w_vW{q z|Fss}f8c<)n7I7Wqw+r0dH2H8a0_<*MCv5Ex<)b#Qa{ zKzMo~y#oS+f-xbXVd4LE?|yX5gIMgt$H^(FY3UjG%qRH;g++worzJ!Rl~zG#Fe|I7 zU)I$(G&VK2w6^v1_Vo`84h?g-uO}v_rr*rGot=BPyt2BszOlLWep_Vsa=sMjOTTUZ zd_5wfVn2#Y9NCpoPF~^PVrpsu|1IgiF8(g-HQV2%b%p;fum2wc-~B`4q<==_&s>26 zySGMA6+I5N`i}2zTHw;0iX|cm>vMgtkq; zLz8*;Ew^*UHF?(N6|axfy>4G>4%_(Im*t9y(!ZtgWGK`ahOg`&@?E#j@_k59bwQN5 zZUnDGLRa{EjIE!eZ9M6jWbn(ucQ==O-hwmSy-MD&vwakh;m&X=5;z3Pad4e{>M=8+ z8{#=fp;EmVrJ>cT%~i7qFVby4*{Yb(@zQ$BhHmKG9^HGI1PmxRYeg$y?43_XOMG1J zBFW~qyB)86^QTocw#F4s$auWqR^6-BbwhpHx{RY%X-A49ywo5f6Zs(4gIJv=iCUa+ zg)S{cv|^D7KO;6G^mMxq_R;st^T%}G7OjZ8MsRr*wQxO~V%%8TGBmwbC9JRUhSohE2y+d+fn(Prusv^-4w)Ri)pz z>?tN~BFWmo6xrtaUzdQ|DtwA+A7k}|=UgSzW46kEc%w#AqQBj0prSyb!v@nff2N(b zP}?Wnv^;mW*~jST{?#3wA_D&ScafD@i!LWiXFrX5XxN-&fKFd+SdK}54Ltk;wJ_ia z=?}7uGM*`m^TFAvk&w_uu$<=GFeq-2AE!<5Go;nZ0_oM;W<7AuUKKO1`hEtWp+yF#@=zy{!{(y2QNuw&NgLxKg&}&f{A0zy4N|1BSMEN*s4rt1OCXKJ~~wP zAZHKjxXPSQ;Y)+thX)INOUN%35D5q_2DrI|b26Ou}Ci3S6pYd`qF znjBkAlUTlquXMLDR)d%ajJ6Ec> z=4i9#XWPY+J~Zv)KTFtXB4+A$f*nz6b{yX!5f5@;CqS)ECDv*fSfSbxk-zOVP%_{{ zgnNhcSn4Jj+#_3Tg$weR^wEMwCh76D7O?0l~`$_BJD zh!ZNcBPw8rIny|C`PSGRZrJk^byk;DBCbdkpIeh3DK@{pey%*B%6Tu54fsYv7LSbAbXBVg1ec2Hh%G_N+YscB;wE>@XI zc$;m-YN0jd6aoW-CHmIBZ_gj@Vn`6*))a+~cywf}4KG~3c+&@E7FH&Ic8S6JNmJ{Y z<{2+boDJ;x@zYrZ54@(S(?;5BXN8U%ZDzggj(tAwaQJZ~{$SdkV4ET(kE$T|BBUC| z*|4F{i1%@_T!JdE5WixNoYd5u^W76i!-q$QXLE8p$9&#$DpQ%wg!0DtC}s}+nW020 zcBGlOm?N;`GX#43N!A!t758vBOt^keKvf6{p;eTSiP_MWH%b!orfaGl<^feNd%Qiz zoW}TTsa2z@C5D%j(Gd#z1LGGPZni$mul8K#0n^ zxqGHU&;Vc?Tmpd^A?&;eyu}%e)`#4!a6AWe?n@pYUo;-svI*pE8nVXyLN_Br)&+*A zXTu4Ybb{UE^-zquwUU`5NpH`)5J&Y)f~}N83p5368jGA%6FGKgm7CBBDRZp=xlhai z9EZ$o->0b-Rlt~#W;()ksI-(nJ84qCr%qEXNB+#VX|3?+5^!SWb$z=CusNM10%Shj zivwCMYO7iS)FpWHqHL#F*t9gx$LbO74EfZEZr>R)zzDAVvlKh(JUtV&|8DX4gXHMz z7u{fZ9(iC$Mnu&?-lt`8$OAlmN!uh~Zcn>uucu`*L#;Z1rsbQps^uUTHr%tny3kL2 zF!o{Ukk}a_We|aI*IcU+1iVr<@9$+lDW0m_RS5`>;T%~p|N3H2hb(VUZa8ypBDy~h~Dud z14$LGLvs)bn<#umm_kiUEILVyx<0zsgQfRYG4mcUFm5rUasK%MP#X228~38oke^6J zxO2`4;c!A;S@=0KQjrZ9#}QeX2#K|rc}24Ih$a%?y`txMN8zbJ@Bv&CB zBWdI$TTgeBxgDVPvi+Uqq~eXZ<4&FZ+Ku&$Z0_4DPFZSZ(1MzI5s+?aeMldFWUKaq z)_RQ|5cKN9zKFs$OmhU>gFv3ECM|-{T6~&#^-x=78s7OQ3h>PF9BGTz-i6jia#BSM zdUapT44dHWQPw=!e1EdOTVLt;;{fkz4_AcHDgmj1)2B{1V)~wX)Xe2L7!(sTJ=7rf z33fW?6%%}#+?sOUoY0Io&tdfF$e6V)X59?1lko?HrG=-JeHI8mr@Jx$;gtshwO%EU zbr;6m7{6OsycgR0nzGitr{%?1=EDG)+3>IqcK!$`OeFYJr_lfkW{o|Q9C-1mqyr-7 zmJvs?ib3YaK)$DwpbkBN>9K3J6|8qxs7>jJX*ZTO(fr4s>iaZ<$BdTpHJ4G1EcFku z)d9X1@~p*(jYUI|USCrh+E}D9(@4KzNiZijvw9514IF?sTphtC0UdN#MHvLs;4u_N zy_ZUZrB*YG%o1#mA5b$mFD#^Q+csj?5uv3wSE1Gw2lJ+!SsGIgabjI}|>v)C~>*cDoU6q+tZz8{v- z8BR3{%<5KYlSM>S`Yf{K69StYJ>qOtInv0O=xJ%o7_tA6_*qYpoT{K-rW8{Lh&R~I zv@@L+hJ$M^*SF0VOD&uwTI_?CT@tTc5k6Zfh2!RXhvx-4_Sp5{a0#98^6&xrV9kc& z0sdH{cgc^${G|bI$erzJr5b0e#Qz%Joa9pWTbs}WElg1AiB_1-_2*`prN6uytsLKf z=HYR}s6ElIYWB8-1%-xD8sPUw6~ZOPtoDd0F7j;Aw^rY>paLS>a7 zk}=OE$3X6eZ#EpQ9?n0%QrB45@6WfOES43L!mcdOQD&{91_mtpmk*CzT8T}w7n*`WDqv9LmTrNhijlqK5~h&!k~(SeTGSaCe(Pgjy7M%y2iy z#+JrN`id&4E6dX$6)P@WaXf3;+3AL{gSgb2L$ZhR(s6M=!h2xCNnopl)iH=Ti7bq@ z-QrWKJD2N}5Q@{78>4r=3^V6H5B-Hv=GTGge^h;)@BT)U;OGB8&v*Yvs_^Scf`7@I z`75|z_4f-~f}g*}YkuS5uf%Kqik|%yZ~U*|e%0UK?%P-W{i?tJcfa}SKm5kUU-ln_ z)4*0|GX|&K^`uUjQ3qqwIAF!h&_W=iN6bK_-KIqBL|`)i3jexwUkOTcI$=^_D^^nK zHabGB#A7HrI!Dia%mAEZ)y`f34&)Y@&Wah(Od>L*C~){nsWrTer;6lUBj?r{}5 zdD=c>U2pV|9)s7Q=3>?wbzaQcHza4GbTm=YSw6Hg1+?`hE})JT3j4f-xt>fNm9QvlT%?6~EE)r9S@ouO>%C zyWMnk_HBc&7MgB^w0b1TKq1vBF?p(W7UyL?WM^^j_C*}y0YiH{1FLsM{NY#&}43dVG>sb7-k9i5tA-#DoE?Dhn{Z99jyns!zux2PEI zouPLFp&W(_U#5g`BcHYPXbws`h^IxF#XdR{VZgy@&?*P76_a)%Uk!460x%hGDZs;| zeH37mI9$J@YZZ6`{pGI?LcGD!G<~*>{X13cW=6>yBV_EOvxzsl8`MebqIn(m-<|nQ z^e^@8&wtg25j*a7zS7}*ALn>R;ek&bn7F;PPxWL24drGEVZEu@#l~mLbVS}f-HWF< zj=YaucL3Sz8sYhGP#hW;-Ltjb*z-;eXPhiiGLG}6O)Hy9T$I0?t_J zzHm0@(r`s3{xBtfDimmg4PF|hnG@Tu54c-~Qx+CirTrQXF=;tPeG#V7=j^q5P8<3a zO?sN;QVxm$Maj}_`W++_%ODSrpZa}d8&Dc%9g&tF&l@wr9u`W(*Q(KY=at>q7Msi% zbCB1!^b;`>;9w%?_S>HYaB+9D%nS>wJ>2_CEcmY;(}&Zbhju#FVn;ksGoix=V7Hm} zQhO|}<=oBDX=qRa1)qGi3Xt$84l!yiDOzM{lX`$zp9nj~Ift9AI;Qf`p~JUSRpm%_ zEy&3u84X(i*uiv%m^AfI)9hd&JHn1=P!7bou~+*;1S~*tBA}EbaaLhOG<9q7UGJmX z^TC>Jj>r+@p@u^)dW?b4s7y5W9-5Y8Ub$>pXXmuUl-81xbY)_(9FGvJvr|4;NIWXm z`MVtFBVKE)iV)VQ0e)hxxK#`YS1~_|k40RjiXzS}CmuaS{m|j$i)gQ%Di=SJ<*N5ck&QDr4n5~}KtAXX4_0ZP0wd2Koys4^Lz}$%HK^5|18YpyXo^B`FId-vO z1?!dYgxI~IF>C*R)l6L+Z~t)AMMYLD6w7tU#5=NGKw%t9W<~7Wo>e9Ua@%!vsVt<7 z>l1{ZouCc28`#*-YWDRD+3}BW5dvz9eLqYm>^0@855E1FX6B~_RQVcbz9SxZ_WZdD* z=_g3wA0W`d?PfaHSgi0@BoQ`EdktithMYaTS1X4;NK<)Nqf84s=MdR^vbNneCU})d z05?&U+t`S(FnPV)yE&X%E;9UM8a%&NslfW!;4wGe+Uxm1K@oA%cd7d)|C+>I8H(D2!y{rtn=m? z+9+&)!04k51@I$&Y;28VRMkobHWj)eh~rCcMGxG{w|gHa@WlIn(?tMb3&wFj4+%e= zx@h0iR(+(2KG|A5B!d|*)=jmVfIH|4Sz!5>d(~c1bxJd{WQi-%(#Mad7%{IFVH$|d z;!y6mtRi0YNEp>4O<RD9P`0!PYgS2~@587DUtczCBd@A?M zOU|7y_Uim!p4JkcefX#p4fQ^P{Eiu!RK+83V$~2)~7A*iqPx zfq3%IEsQ@<3|As~zL+x`#ve4EC=F8y%S&vRO)VY;;fhCEcy*_K7QpXF*2)EyKTW>{ ze`av2{ezwU`TjJ$nUg}*e~gnj1tewk97kz!T1Y)K-(xtG3))LH=2LO$s? zbhN(+G9orKb@1O5SzjfcbQ_*m6ETE|WHMnN;uA#x#zV!#z5Dq`-pfQi{?u`|Cqhiy z#bgJFS}#|{8Ar+~54@JqfPLUCMJO3TOD??J5S4XKtt39>(q3ac4a5b})%Q9s>jFF%f-)|$V z3GpuQ@!+eb!Rl6{*LKIm99`>nk&25eNUlPm`DG#Y#))}7q)bLDOQuLmBel6?vapo% zTo=1iZ))LQ+SE&?nXCz=@YP+A+MVB2_C=g~oiYV39Qp2PBf4u#wZ}6;!put7a*O&ni9OV$oMO42GY#Pi4sBRibrw@A!!b-t ztMvj1O2VId_7XDyS5bo!frN-icbJ%%tYc$;KubJ$kj%eKGq=xt<_VBfs=<lTehm zG0>R%RC=Z-68lS^^j+IFzMlIE0Z+3iLgZA2T+=aGn1lYC!MLP)4FjiTzEb>}-9@6xkc$StT$YG-Tp{m5(&v;5iEH_5z{mVj+9a7>2Bc>L0!UTnr8pJ5PZ40ztEwIBG_ zvZ`!@@DLpv-q%pVr+7!rXQ{=IJ&HW?RqU||tOtQb8+Np9YmchxTcSP5L04%F6%8g` zD|8Z2(E=#K29u;s%!^|0=zTFs0>XbeuKoY8Ny)=#;#h27YQ7>u1B;y(6N~E6)HG63 zGJLl8hmlY9oP3wJO^<0(KH5N{U#(Hrt_LpzC!kmiERV6Q?Dbkp#_!o@0p@A)t7>%q zyK1_{1baaw+$1=7B_fg{%}tVV8)@X7tJ{0?|JAoT)&xNZ%Q!lrgsA;Pyuu3DQ+K~p z&vI0$yLmU_hze_ENitu)5*zcVWxzlx4GG1E^9quQ)1X9DEW>ahq3mf#xwD!Uk#QOZ#Pe{rtLOn|@ZLVMw!Ai==Z!~`%TOw?H8dXhS ze1{*AZT3?RMhv<+@a%EL)oFen*wFE|z5c`c{C?H`9lJ*~32)}riTW^z6n=3&b~7yD z;G9hWS@tJ`!wLi18kBIvEqJC;I6-0cM6hvVwJMW3Fq~A~lL||-sen2nv3buHE^mej zE%4R)iS2x{{WIS94b}jBn+4PvVDNlNZ4K|0t`+n@GB{yK0+`L8>0vi58?0kfy=Lb~ zCZ)}3N=nM5f^t2z>L2s$ptrOAzIn0t9RFWi1$3LI$oIX^v}<2}7I^3hn8S2;+5h6V z5u+&kR_yxx<&W-nJ28VZy){@siKEyUIipH*F?f(ZxDx?; zlXYZlThN2pwm?=Zc`{FNO`0sdT7f2u%{A3H8XsjJKW$T`+G1mPTE1{}gcZ&(niFi43N3D*p=X>TvFYZ)0m>U>UuPIl^7i z9H|-u5pX|wLi?-OS#fe3nFRob>PP0k};ZP}d=Z?q& zAtu@|CE9I5ShiSNrdQ#V%ChPd3HWLZF)vw)ka&GuwD z@R3Gtc(?jp7T+l9S2{>zk)n(+r43If{=J2?!53*e&XfK%UYAZdcO=ezk(XU*`Zg{knHjY24|s>AJ2t zsWx9&dYA`S^>W6NDCWj|4$G4p@2JUdOz1{#oFr2hch$_zY~$#%`UE)t&Og5Jis)ttQ;c$sxQN91ChvGXE|u8uuO)oDB~Jvr8RS zQK@hMHt&SYM$SF!yt|3_OiUIpPM&l4CIyM z{3jZS2qg@DNsXfrAG~{yAM4-MNa)(&8NimP;Xg=ku7=zTwUWJ(aLj*b9NCT)0?;PI9^JTw(jo+_yw5psy$zcK(|LBFThH=JC_C5cQu z(vzWW4%2oKb9NDlRAO{?YYVXwiXTg_qNj4f3WbX#mdTQVTTd6sckYOebK<`=8~?729DaHcO@2!$KCTAS#0d~TJ~vaNVT$)Py$T%_+FXUrbVdM zqX)FNp7plv=CgmA(l&w&CvoN`EpbYGcF?S?qg9%UpYhd|(;3#%+wqGe+4Ok9L8QK( z*LpTF*mzJ2w7bYNBh%Cf5T`(dB^~bWOfDS6c|4}gR))5`e72D1;k}@a|M5~Iw8FAh zt#eS0pzA%3t{F=bIjAY7(w2C5H1wI(+QXXIoTOH2yp{2M31)2eVU~PM-bs71*#{}O zykcq(K@Q%MtGQ3c+F|3fK!udL--Bz;>DZ$i74Tjv=iI^XJ5u~TDI^P7IVoKW2PIqa zC!2SMc7!X?qez*}kb9;_s{$SEIi+pOKeQ>ch$UHaMb6<4abjm`zf;#o2=h2+ zvy(*c42q_UdK}yaT9m~>NMlNh8)MSI+~bcQ$UT{>ZAj>bNVy~RJSK~;KIZyT?7~(c zNtSgt$NN2l?bp~h4$-dku*^%R?MgN%kBRKfGcqz(I#6?WFEmj{H0P+>thgNUQi6ljHG;fDRnW5Y zH3H=E7MZc!dqeo?m%%{j^VfCeUw9Dw+)oX((KotztgkE4X|MKb!H{65;oJ2WU%&i6 zgOKx|2Z)cpXu>~TcGr9Ur+|n4Q^2qOIbb0OR|X!0Gu9H9TV!zG5@a!#BOK$6$TIK> zXUmb`oF^f$_ZOnh)JQwA0Nt7DO^XA>+WX#w<6#fT^He@IW3n-65U$)56Pt5qSa7xF zUE*Hm%gRujJ&O^YTY=n&+SLcR`n1ul-QfSo)8p|jKfLpf)VS|))A_SN^*C!uH(`}E zGr1YL`MSMnlJW7v_T4T5iEQJOWt!gf&b0X*&)+I%CWL3IY4%CvG|$AwvCHGD{w?Y_IGwiFn>y`@UX{{#nEr;~ygKGro zWMv_(QNAVWe4Rf(Yz7Uq*o5`j*P1!N+fxw|aw0Gh`0+=Gw_Nm(Be+x?(apc5A$*~! zo?OCMcTdX-aMmiP)twHT;)s&q9IeOiIw*n<3cM=!4?E%9e3XA;TDL-~QPgl%PJoFj z^SkKqUbqNY89B|SwF{PdI=3U=OY~UhptBj}F%aEJP9($yi;7y*qJfj!$}m?+)%?f& z$4>?@E+RMA2AeFW`c=w?7Ww4Rd{sVA*m=XH+775v%VQqRUBsk3(rIa5D1=HkeY(HE ztlGNR#am*+YKni-|Fx&>{oMNxvOAp|7ngp$FZHU6<$E8x>mX(YT`o#vmb}_sa(LE0 zcsF^v?lu5q580}ycI?ice?T? z+Glh_P3&C4x;#@jJpY+42alr7X`sPUrR2|F^icS7-``+Luw;<+FL1(|=~kG;z@u4E z$iV2kC1-?aaaLIo2|vkZmD-7DF1-2h2)# z>p?%^gNJF)uau*=!HffJtJ`&fvoCYbtHhy;>%tsIFOnUXV`!`v$^ib2DB!iOpAlGG zHRa$lsfF8+HR-F*uPsW;pNhqk9gei0VbS!G;0V2mva#@!O{;>>%%&dltR|HGLgw~P z2?%J?kBtk~Gu6FV%GKP6_@E^<)SDv><-yZTb*n*Ld&IgxtH7RuaaSU5{n^cxz_&$3 zsx8e9JGB-)gC*5m7lrtShAw@_WBFhu$Dbvu(Z$h3xDrA<38lgIn@aUsYneCD((g`n zkdI8B%D^A^Laz{%dk_%>J6|6uLp{R2$^kubjc9#+sAHsC)|NCuVl2qW>t!5Fwj{P+ zY_~M&P(`tKQUX$8Gp)xm6>h6G1Pi(RJhxmrn>y17G%>KR>95dk#w>tWdPJnV557?d z#cjl(n2(0KxG~#jFcMS&U zmQnwzuyStWwflRUE_~^4k|kSK|nK8Cgzj0svi(e_XggNk?QLP%7W>dZyU3gwP*?ws5m<^ z-O65gOiSN{ZryrJx?nR&FZ*$Da0O&l7CNIzx|nkEi<7HP<4_zbDEtsKkgCn%4tN^sVVjE`{?l z#r;G3?V9rk8(Ld(x6|I)H#s?@oND}dp%Lx_hs#FuMR+pcGQ+UFm$<6grB=e{0irD= z`G?M29#~f1_FRWQI=M{(5;l%{k1{~Xb@k!7(0=WB#DI7*q|wLOQ?_Q#yGIRAP(X2> zybht0FXvi~p&G9nONM`{iR0v;KMU-C(A7)xlwy~Z$U9egKRyT9KX$1(3fLy*C!vs- zS_ll@7i_VEOvG6iA+$n;xNK2E^u|gx-`?@sU_`5F7zXMwxsSG=ec8|8(re>8bH+bB zzaOeo!y8$8{=*t8c!u#ocLQ~&fp78ZV``rguF~`jnVBc1iT*UBTi>x$DJ7#xr3A}z z9E%Mhrgjqje0G|aoNW6OyHIGZWBvN9(P)RIxuo#!1S4E;(t?<~ zN<;n1w5lvUD$uT>zE=xX&5t^-AbVWzr)DAxs_uTJ3|-d7H_7+N$zz#fa*`x5+)K-4 zb5aalCAF>0EKbhTq911~hg&TNJgDrl*09TpUEes?Cq)ANiD>i%l zK-2R>0g&*=CFH@DGLTZ`v`$;a8l}{0cCxEaRp#)Q-Y@j`yi6h69DJ{BjcsKaLMO(v z1D`RD!9wrnub&e%q#!*$euUB63bN76=GR%>@g5_C}iZ@wqfTgyxgCyZ5sdFJH z-yz^^Qo+yCGIlmr7T@rt)u@@}Pz$NDV?|QBL0Gz)eGE1OA3ZG#^2q)9hBCt2l57B| zr+Tcl?UaV*PR1AV%NQnZ4a_hHGD@Z86-o4QnuTGEPEA}ROIUB;*d@)U{p#`Ym0L%! zKJp+Y*2ya+#+_Vb7w_j}f)aiA5}(Xz(+czt{rI}*V6J!9GAqiqi7;c~@m2*JJQsOjpiuq(R{%WmhMbWD7NuL_>( zfu-tRw12iy#IV{hT^Q@Iq?dKJJuTVwhLjY+*Np>*JA^NeU$JCY)I~%r9$v3#SY1k^ z?=Dnul^8#M+g~=Sfin5Ch4=h*Rh&IFZi zFd+A^Ccdx0vfSD?JMF4^cD&+YXLh5z?{wlmmdM$V{JZWeQin1xVF6&^+CZt*$qnmspgOs(t)! zE(PG{5yxXG6xMf;BUQMS2mc)!`G+QMvZ}QYdDVQ%wFSIGQl>mCU$Mwm2@ZP#c5n^J zu*a{M++FV1IVPhgzOq{8pxKAE9(nKCx{oB<(Kn~kP_do#>OgFU7dG+a`knJ9!l-R? zKw1b!Rvk1KVq+D@un>w<#(~ zda~EDv@IEZ0*Ehm=(n<)O#2(o$nPk-+hcpt!BTDpb;NceyGHOSBOXivEkrm-%gI;e z`j(iubuEkaknLkfnhp;6QdQdc)@Ts0E$eMr+YFaPN7I%7nkT{&df!aEnfPU9HW?>b z0=O3vSuX5dHgEbWj(*^ygp}0uSOGFMCiMVJfsS8&GUcORs{*-a6WJb&3BY(&dy^!+ z7JC(txw9yr;uIpyBoP18=2GRPi}RC2w2q{jnKVMjp7TSpU2m=8+KA`3CUgn6948dS zY#CaBs-G+w2U{O;5Ac5CPhtYa=bvD>bnl!rddB?(6_$zbZUQotG9~0Dli!hN_V~iR3Rhn;(=y_BqV!JY=;Es+r#RDzD9) z&XsVCx3oC_V}f+sCAO)hEO7xo^nf`2bV65c+oaUpHu1=%z*z4H*4Y6z2Pi_5uUirW zGIsW|oqG_qC189qq0J>2kWy~d4p-Caaio*IC$)`Gng?N5g1VLgs;r7VlX`XRL!SkN zCSOO5gq}B!E2=s!6=y(?!YOhk$VJ|GQ9#YC*oe^hS8L0YQ|UfumPlF9_S$$NcR1Aaatsz? zvV?H`07;NN>j{hImX0X^#dMyr=9kB1=>!xAL62b6jyN;i7YCtfnX_J)3@lxt<>-)C z_&kz(NDC6jLke4^S&q8{Hh<727B&GaLr8{PXcQ|?RK8{T#qQFne5VEE+Gc$=40g?< z+y~w^?Y$`NPF9qTdIR>@4#I=E;7eV`_sWNi^4?@5OKDM|no+sD0GqvI^8Re7!)xE= ztfsJ(Ww_jwW^k#Ixpm!w`Ym@if^i|eQ46Q1Rb2<~PXh((fSPztnXS}_7_O`DNcLW` zTrf=f`ila9u+(6;eQ|BE{LWGtanKhxqvevIWdn79A|GUoG^Jn4)DM`FAVHxz=EIcxN50)p}w!8^!|WWaQxyTPz!KXl!$-=N(@n~W{1q7 z5IiD`SQ#4)a(>()edCL@*!xe0Q+DxWeTgg|Z?Y+siOZ3aOM^!~Yd2_U*rsScJGvE) z$hxO?);a|UnKb=%Rd-=_zm*6`u5+NtN$74e`(+TTT{pX z1?9{=Xrmy@zp>6 z6BS?W@gF_!t3CdMivLgAV?k0+S@md+t1l*$q;LBaiI29~+jQ#(u~|qm%^z2gtoLP4vI_2*(&6hnwa$*-lOM9_pPYwLk{p{JLXhq zV!&1j;2=ZSs5XC!uv!<1|KV8rNK3Ggfm!u@KyWmLGf_Hw^$7tXZg^aB>!eMQvvp^a zZh~dsG+t=$ck9P$8{uPC-TI05AOVhQhPiE9Bl{KxGSyQS`Pk`B*pqxX;-r>Zf6d|N zmr46t9jFEMWvO`VBEUY?EHyU?VOmkp(A7cmMj7kAjLyOUF>$)tLtU9Z%}w5b`fMIR zog*`^KU*W77ad_mVO{J#xW#yx$^|4JH*3nM?TAFSG+3a0REaG`WHM^W4`F#9PjpZV z38oq%F)_Rg>zti89r065wH;)Ys`8gwsu*TS2C}7${a|Xd&w1dgeYa=)BE`)l=zu-d z&X%EL*b%SV)Ry-R6654}if2FsK*vS+)XHcIDzT5tw;ah!BUwogU;gDfp==3+$CN{!mFWmKL9fdH?XpPdU`7ufL{ zf}yRSF$@erIj65{chnW%n>_z5c8%1^schnjye7Z*E=6( zZ4g$~1A6xSxQqd%uJ%*Oi8w>=;M8!2Ck9JS194#psSu$fW_6bbbuMSEX6qGXd2;`FbcWR(NO(n;ZU)KftAkWgidfrw|IJXnJ;Myd+Ucb zxE>ntya;#ixF{)@!Bqc{MSAH-E|!*-Z7K*Y8j)G7<|5cJo{VDm%M=m7)zgvcI+E9igQ)i&PzM zSR8BxI1&__+7LkS zl7(uYo@G}nF8M(Dk*2;@graBR;@%NZ-%|fg3Ne)IYZ>pebOj&8CE3oCz`Jk9P6c02 zBg<_E+{fnJu2XR&-w#_9zF&u&8SHPv1+99R=`~HnAU;=ZI1*xhx}%8 zgfJc~d@qR432Y6JuR_B{e~PWxB+1IVo09fdoDWppV|^>px!~zFgg59`9?tQqoBgwQ zL+rZEG=pvhoY#sIIHRd!Xk@M*QGI+rP$|HGw>~j|B@#nJWa`0vZMe;MsmqR0Ojx1r3uF)< z<|nvBIMv9M8f7iTdCE72S}a5`79+(6Vd5K;5KC-s*7E# zZS9Wn>^c*96%)ZFtCvjC1+#WZ2d$N2`C5ae{W^Bm-E6bYwzS;rg80%UcE^P?H&M;q z{nXtzXY0=K%M_v}L?2S#91o4frk4=Twwp^r@mSu8qg%QIrHC1z>Oiu!kr(CpsZ7NC zFs~65LBrZWyMsT{fRc_mf7d(XoJ1{tbSy5(4Teyfqo!#w^0^WPi)!6Yc> F{{lH}0H*)| literal 0 HcmV?d00001 From 57f67c7ee97877d3d43dc2fabaaea138d56b95bf Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 17 Oct 2024 12:45:51 +0200 Subject: [PATCH 158/213] style(edition): improve responsivity of cover images --- .../edition-sections.component.html | 62 +-- .../edition-sections.component.scss | 15 + .../edition-sections.component.spec.ts | 395 ++++++++++++------ .../edition-series.component.html | 4 +- .../edition-series.component.spec.ts | 338 +++++++-------- 5 files changed, 486 insertions(+), 328 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html index 44ec929812..f88c159689 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.html @@ -1,33 +1,41 @@ @if (selectedSeries$ | async; as selectedSeries) { -
+
@for (section of selectedSeries.sections; track $index) {
-
- @if (!section.disabled) { - In Vorbereitung - } -
-
- {{ section.section.full }} -
-
- diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.scss b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.scss index e69de29bb2..49ce80a74e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.scss +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.scss @@ -0,0 +1,15 @@ +@media (max-width: 768px) { + .awg-img-container { + max-height: 150px; + overflow: hidden; + border-right: 1px solid var(--bs-card-border-color); + } + img { + object-fit: contain; + height: 100%; + } +} + +.awg-card-border-top { + border-top: 1px solid var(--bs-card-border-color); +} diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts index 2da5cfc993..dc7b1f3356 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-sections/edition-sections.component.spec.ts @@ -88,8 +88,8 @@ describe('EditionSectionsComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should not contain one div.row', () => { - getAndExpectDebugElementByCss(compDe, 'div.row', 0, 0); + it('... should not contain one div.awg-edition-sections-grid yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-sections-grid', 0, 0); }); }); }); @@ -115,27 +115,42 @@ describe('EditionSectionsComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain one div.row', () => { - getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + it('... should contain one div.awg-edition-sections-grid', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-sections-grid', 1, 1); }); - it('... should contain as many div.cols with div.card as sections', () => { + it('... should contain as many div.cols with div.awg-edition-section-card as sections', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; getAndExpectDebugElementByCss( compDe, - 'div.col > div.card', + 'div.col > div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); }); + it('... should contain one div.row in each div.awg-edition-section-card', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach(cardDe => { + getAndExpectDebugElementByCss(cardDe, 'div.row', 1, 1); + }); + }); + describe('... cover image', () => { - it('... should contain one img.card-img-top in each div.card for non-disabled sections', () => { + it('... should contain one div.awg-img-container in each div.awg-edition-section-card for non-disabled sections', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); @@ -144,8 +159,31 @@ describe('EditionSectionsComponent (DONE)', () => { const expectedSection = expectedSelectedSeries.sections[index]; if (!expectedSection.disabled) { - getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 1, 1); } else { + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 0, 0); + } + }); + }); + + it('... should contain one img.card-img-top in each div.awg-img-container for non-disabled sections', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + if (!expectedSection.disabled) { + const containerDes = getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 1, 1); + getAndExpectDebugElementByCss(containerDes[0], 'img.card-img-top', 1, 1); + } else { + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 0, 0); getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); } }); @@ -156,7 +194,7 @@ describe('EditionSectionsComponent (DONE)', () => { const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); @@ -165,7 +203,8 @@ describe('EditionSectionsComponent (DONE)', () => { const expectedSection = expectedSelectedSeries.sections[index]; if (!expectedSection.disabled) { - const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const containerDes = getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 1, 1); + const imgDes = getAndExpectDebugElementByCss(containerDes[0], 'img.card-img-top', 1, 1); const imgEl = imgDes[0].nativeElement; const expectedSrc = @@ -177,6 +216,7 @@ describe('EditionSectionsComponent (DONE)', () => { expectToContain(imgEl.src, expectedSrc); } else { + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 0, 0); getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); } }); @@ -187,7 +227,7 @@ describe('EditionSectionsComponent (DONE)', () => { const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); @@ -196,13 +236,15 @@ describe('EditionSectionsComponent (DONE)', () => { const expectedSection = expectedSelectedSeries.sections[index]; if (!expectedSection.disabled) { - const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const containerDes = getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 1, 1); + const imgDes = getAndExpectDebugElementByCss(containerDes[0], 'img.card-img-top', 1, 1); const imgEl = imgDes[0].nativeElement; const expectedAlt = 'In Vorbereitung'; expectToBe(imgEl.alt, expectedAlt); } else { + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 0, 0); getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); } }); @@ -213,7 +255,7 @@ describe('EditionSectionsComponent (DONE)', () => { const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); @@ -222,210 +264,299 @@ describe('EditionSectionsComponent (DONE)', () => { const expectedSection = expectedSelectedSeries.sections[index]; if (!expectedSection.disabled) { - const imgDes = getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 1, 1); + const containerDes = getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 1, 1); + const imgDes = getAndExpectDebugElementByCss(containerDes[0], 'img.card-img-top', 1, 1); const imgEl = imgDes[0].nativeElement; const expectedTitle = `AWG ${expectedSelectedSeries.series.short}/${expectedSection.section.short}`; expectToBe(imgEl.title, expectedTitle); } else { + getAndExpectDebugElementByCss(cardDe, 'div.awg-img-container', 0, 0); getAndExpectDebugElementByCss(cardDe, 'img.card-img-top', 0, 0); } }); }); }); - describe('... div.card-body', () => { - it('... should contain one div.card-body in each div.card', () => { - const expectedSectionsLength = expectedSelectedSeries.sections.length; - - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSectionsLength, - expectedSectionsLength - ); - - cardDes.forEach(cardDe => { - getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); - }); - }); - - it('... should contain one h5.card-title per section in div.card-body', () => { + describe('... div.awg-edition-section-card-content', () => { + it('... should contain one div.awg-edition-section-card-content in each div.awg-edition-section-card', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); cardDes.forEach(cardDe => { - const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); - const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); - const headerEl = headerDes[0].nativeElement; - - expect(headerEl.textContent).toBeDefined(); + getAndExpectDebugElementByCss(cardDe, 'div.awg-edition-section-card-content', 1, 1); }); }); - it('... should display the section title in h5.card-title', () => { + it('... should have class `col-8 col-sm-10` on div.awg-edition-section-card-content if section is not disabled', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); cardDes.forEach((cardDe, index) => { - const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); - const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); - const headerEl = headerDes[0].nativeElement; + const expectedSection = expectedSelectedSeries.sections[index]; + + const contentDes = getAndExpectDebugElementByCss( + cardDe, + 'div.awg-edition-section-card-content', + 1, + 1 + ); + const contentEl = contentDes[0].nativeElement; - expectToBe(headerEl.textContent.trim(), expectedSelectedSeries.sections[index].section.full); + if (!expectedSection.disabled) { + expectToContain(contentEl.classList, 'col-8'); + expectToContain(contentEl.classList, 'col-sm-10'); + } else { + expect(contentEl.classList).not.toContain('col-8'); + expect(contentEl.classList).not.toContain('col-sm-10'); + } }); }); - it('... should mute the section title only if the section is disabled', () => { + it('... should contain one div.card-body in each div.card', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); - cardDes.forEach((cardDe, index) => { - const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); - const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); - const headerEl = headerDes[0].nativeElement; - - if (expectedSelectedSeries.sections[index].disabled) { - expectToContain(headerEl.classList, 'text-muted'); - } else { - expect(headerEl.classList).not.toContain('text-muted'); - } + cardDes.forEach(cardDe => { + const contentDes = getAndExpectDebugElementByCss( + cardDe, + 'div.awg-edition-section-card-content', + 1, + 1 + ); + getAndExpectDebugElementByCss(contentDes[0], 'div.card-body', 1, 1); }); }); - }); - describe('... div.card-footer', () => { it('... should contain one div.card-footer in each div.card', () => { const expectedSectionsLength = expectedSelectedSeries.sections.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-section-card', expectedSectionsLength, expectedSectionsLength ); cardDes.forEach(cardDe => { - getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const contentDes = getAndExpectDebugElementByCss( + cardDe, + 'div.awg-edition-section-card-content', + 1, + 1 + ); + getAndExpectDebugElementByCss(contentDes[0], 'div.card-footer', 1, 1); }); }); - it('... should contain one routerLink per section in div.card-footer', () => { - const expectedSectionsLength = expectedSelectedSeries.sections.length; + describe('... div.card-body', () => { + it('... should add a top border if section is not disabled', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSectionsLength, - expectedSectionsLength - ); + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); - cardDes.forEach(cardDe => { - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const bodyEl = bodyDes[0].nativeElement; + + if (!expectedSection.disabled) { + expectToContain(bodyEl.classList, 'awg-card-border-top'); + } else { + expect(bodyEl.classList).not.toContain('awg-card-border-top'); + } + }); }); - }); - it('... should have correct routerLink in each div.card-footer', () => { - const expectedSectionsLength = expectedSelectedSeries.sections.length; + it('... should contain one h5.card-title per section in div.card-body', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSectionsLength, - expectedSectionsLength - ); + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); - cardDes.forEach((cardDe, index) => { - const expectedSection = expectedSelectedSeries.sections[index].section; + cardDes.forEach(cardDe => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - const footerLinkDes = getAndExpectDebugElementByDirective( - footerDes[0], - RouterLinkStubDirective, - 1, - 1 + expect(headerEl.textContent).toBeDefined(); + }); + }); + + it('... should display the section title in h5.card-title', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength ); - const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); - const expectedLinkParams = [expectedSection.route]; + cardDes.forEach((cardDe, index) => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; - expectToEqual(footerLink.linkParams, expectedLinkParams); + expectToBe( + headerEl.textContent.trim(), + expectedSelectedSeries.sections[index].section.full + ); + }); + }); + + it('... should mute the section title only if the section is disabled', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); + + cardDes.forEach((cardDe, index) => { + const bodyDes = getAndExpectDebugElementByCss(cardDe, 'div.card-body', 1, 1); + const headerDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const headerEl = headerDes[0].nativeElement; + + if (expectedSelectedSeries.sections[index].disabled) { + expectToContain(headerEl.classList, 'text-muted'); + } else { + expect(headerEl.classList).not.toContain('text-muted'); + } + }); }); }); - it('... should display correct text in each routerLink in div.card-footer', () => { - const expectedSectionsLength = expectedSelectedSeries.sections.length; + describe('... div.card-footer', () => { + it('... should contain one routerLink per section in div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSectionsLength, - expectedSectionsLength - ); + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); - cardDes.forEach(cardDe => { - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - const footerLinkDes = getAndExpectDebugElementByDirective( - footerDes[0], - RouterLinkStubDirective, - 1, - 1 + cardDes.forEach(cardDe => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); + }); + }); + + it('... should have correct routerLink in each div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength ); - const footerLinkEl = footerLinkDes[0].nativeElement; - const expectedLinkText = 'Mehr ...'; + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index].section; + + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); - expectToEqual(footerLinkEl.textContent.trim(), expectedLinkText); + const expectedLinkParams = [expectedSection.route]; + + expectToEqual(footerLink.linkParams, expectedLinkParams); + }); }); - }); - it('... should disable routerLink only if section is disabled', () => { - const expectedSectionsLength = expectedSelectedSeries.sections.length; + it('... should display correct text in each routerLink in div.card-footer', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSectionsLength, - expectedSectionsLength - ); + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength + ); - cardDes.forEach((cardDe, index) => { - const expectedSection = expectedSelectedSeries.sections[index]; + cardDes.forEach(cardDe => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLinkEl = footerLinkDes[0].nativeElement; - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - const footerLinkDes = getAndExpectDebugElementByDirective( - footerDes[0], - RouterLinkStubDirective, - 1, - 1 + const expectedLinkText = 'Mehr ...'; + + expectToEqual(footerLinkEl.textContent.trim(), expectedLinkText); + }); + }); + + it('... should disable routerLink only if section is disabled', () => { + const expectedSectionsLength = expectedSelectedSeries.sections.length; + + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-section-card', + expectedSectionsLength, + expectedSectionsLength ); - const footerLinkEl = footerLinkDes[0].nativeElement; - if (expectedSection.disabled) { - expectToContain(footerLinkEl.classList, 'disabled'); - } else { - expect(footerLinkEl.classList).not.toContain('disabled'); - } + cardDes.forEach((cardDe, index) => { + const expectedSection = expectedSelectedSeries.sections[index]; + + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLinkEl = footerLinkDes[0].nativeElement; + + if (expectedSection.disabled) { + expectToContain(footerLinkEl.classList, 'disabled'); + } else { + expect(footerLinkEl.classList).not.toContain('disabled'); + } + }); }); }); }); diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html index ef930c38d4..8926ed31a6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html @@ -1,8 +1,8 @@ @if (editionOutline) { -
+
@for (series of editionOutline; track $index) {
-
+
{{ series.series.full }}
diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts index 4b29e34777..ed357713c9 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts @@ -90,8 +90,8 @@ describe('EditionSeriesComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should not contain one div.row', () => { - getAndExpectDebugElementByCss(compDe, 'div.row', 0, 0); + it('... should not contain one div.awg-edition-series-grid yet', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-grid', 0, 0); }); }); }); @@ -117,19 +117,19 @@ describe('EditionSeriesComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain one div.row', () => { - getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + it('... should contain one div.awg-edition-series-grid', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-grid', 1, 1); }); - it('... should contain as many div.col in div.row as there are series', () => { + it('... should contain as many div.col in div.awg-edition-series-grid as there are series', () => { const expectedSeriesLength = expectedEditionOutline.length; - const rowDes = getAndExpectDebugElementByCss(compDe, 'div.row', 1, 1); + const gridDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-grid', 1, 1); - getAndExpectDebugElementByCss(rowDes[0], 'div.col', expectedSeriesLength, expectedSeriesLength); + getAndExpectDebugElementByCss(gridDes[0], 'div.col', expectedSeriesLength, expectedSeriesLength); }); - it('... should contain a div.card in each div.col', () => { + it('... should contain a div.awg-edition-series-card in each div.col', () => { const expectedSeriesLength = expectedEditionOutline.length; const colDes = getAndExpectDebugElementByCss( @@ -140,16 +140,16 @@ describe('EditionSeriesComponent (DONE)', () => { ); colDes.forEach(colDe => { - getAndExpectDebugElementByCss(colDe, 'div.card', 1, 1); + getAndExpectDebugElementByCss(colDe, 'div.awg-edition-series-card', 1, 1); }); }); - it('... should contain a h5.card-header in each div.card', () => { + it('... should contain a h5.card-header in each div.awg-edition-series-card', () => { const expectedSeriesLength = expectedEditionOutline.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-series-card', expectedSeriesLength, expectedSeriesLength ); @@ -164,7 +164,7 @@ describe('EditionSeriesComponent (DONE)', () => { const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-series-card', expectedSeriesLength, expectedSeriesLength ); @@ -178,12 +178,12 @@ describe('EditionSeriesComponent (DONE)', () => { }); }); - it('... should contain a div.card-body in each div.card', () => { + it('... should contain a div.card-body in each div.awg-edition-series-card', () => { const expectedSeriesLength = expectedEditionOutline.length; const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card', + 'div.awg-edition-series-card', expectedSeriesLength, expectedSeriesLength ); @@ -193,218 +193,222 @@ describe('EditionSeriesComponent (DONE)', () => { }); }); - it('... should contain a ul.list-group in each div.card-body', () => { + it('... should contain a div.card-footer in each div.awg-edition-series-card', () => { const expectedSeriesLength = expectedEditionOutline.length; - const cardBodyDes = getAndExpectDebugElementByCss( + const cardDes = getAndExpectDebugElementByCss( compDe, - 'div.card-body', + 'div.awg-edition-series-card', expectedSeriesLength, expectedSeriesLength ); - cardBodyDes.forEach(cardBodyDe => { - getAndExpectDebugElementByCss(cardBodyDe, 'ul.list-group', 1, 1); + cardDes.forEach((cardDe, _index) => { + getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); }); }); - it('... should contain as many li.list-group-item in ul.list-group as there are sections in a series', () => { - const expectedSeriesLength = expectedEditionOutline.length; + describe('... div.card-body', () => { + it('... should contain a ul.list-group in each div.card-body', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const ulDes = getAndExpectDebugElementByCss( - compDe, - 'ul.list-group', - expectedSeriesLength, - expectedSeriesLength - ); - - ulDes.forEach((ulDe, index) => { - const expectedSectionsLength = expectedEditionOutline[index].sections.length; - - getAndExpectDebugElementByCss( - ulDe, - 'li.list-group-item', - expectedSectionsLength, - expectedSectionsLength + const cardBodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.card-body', + expectedSeriesLength, + expectedSeriesLength ); - }); - }); - - it('... should display section name in each li.list-group-item', () => { - const expectedSeriesLength = expectedEditionOutline.length; - const ulDes = getAndExpectDebugElementByCss( - compDe, - 'ul.list-group', - expectedSeriesLength, - expectedSeriesLength - ); + cardBodyDes.forEach(cardBodyDe => { + getAndExpectDebugElementByCss(cardBodyDe, 'ul.list-group', 1, 1); + }); + }); - ulDes.forEach((ulDe, index) => { - const expectedSections = expectedEditionOutline[index].sections; + it('... should contain as many li.list-group-item in ul.list-group as there are sections in a series', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const liDes = getAndExpectDebugElementByCss( - ulDe, - 'li.list-group-item', - expectedSections.length, - expectedSections.length + const ulDes = getAndExpectDebugElementByCss( + compDe, + 'ul.list-group', + expectedSeriesLength, + expectedSeriesLength ); - liDes.forEach((liDe, liIndex) => { - const expectedSection = expectedSections[liIndex].section; - const liEl = liDe.nativeElement; + ulDes.forEach((ulDe, index) => { + const expectedSectionsLength = expectedEditionOutline[index].sections.length; - expectToBe(liEl.textContent.trim(), expectedSection.full); + getAndExpectDebugElementByCss( + ulDe, + 'li.list-group-item', + expectedSectionsLength, + expectedSectionsLength + ); }); }); - }); - it('... should contain a routerLink and no span.text-muted in li.list-group-item if section is not disabled', () => { - const expectedSeriesLength = expectedEditionOutline.length; + it('... should display section name in each li.list-group-item', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const ulDes = getAndExpectDebugElementByCss( - compDe, - 'ul.list-group', - expectedSeriesLength, - expectedSeriesLength - ); + const ulDes = getAndExpectDebugElementByCss( + compDe, + 'ul.list-group', + expectedSeriesLength, + expectedSeriesLength + ); - ulDes.forEach((ulDe, index) => { - const expectedSections = expectedEditionOutline[index].sections; + ulDes.forEach((ulDe, index) => { + const expectedSections = expectedEditionOutline[index].sections; - const liDes = getAndExpectDebugElementByCss( - ulDe, - 'li.list-group-item', - expectedSections.length, - expectedSections.length - ); + const liDes = getAndExpectDebugElementByCss( + ulDe, + 'li.list-group-item', + expectedSections.length, + expectedSections.length + ); - liDes.forEach((liDe, liIndex) => { - const expectedSection = expectedSections[liIndex]; + liDes.forEach((liDe, liIndex) => { + const expectedSection = expectedSections[liIndex].section; + const liEl = liDe.nativeElement; - if (!expectedSection.disabled) { - getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 1, 1); - getAndExpectDebugElementByCss(liDe, 'span.text-muted', 0, 0); - } + expectToBe(liEl.textContent.trim(), expectedSection.full); + }); }); }); - }); - it('... should contain no router link, but a span.text-muted in li.list-group-item if section is disabled', () => { - const expectedSeriesLength = expectedEditionOutline.length; + it('... should contain a routerLink and no span.text-muted in li.list-group-item if section is not disabled', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const ulDes = getAndExpectDebugElementByCss( - compDe, - 'ul.list-group', - expectedSeriesLength, - expectedSeriesLength - ); + const ulDes = getAndExpectDebugElementByCss( + compDe, + 'ul.list-group', + expectedSeriesLength, + expectedSeriesLength + ); - ulDes.forEach((ulDe, index) => { - const expectedSections = expectedEditionOutline[index].sections; + ulDes.forEach((ulDe, index) => { + const expectedSections = expectedEditionOutline[index].sections; - const liDes = getAndExpectDebugElementByCss( - ulDe, - 'li.list-group-item', - expectedSections.length, - expectedSections.length - ); + const liDes = getAndExpectDebugElementByCss( + ulDe, + 'li.list-group-item', + expectedSections.length, + expectedSections.length + ); - liDes.forEach((liDe, liIndex) => { - const expectedSection = expectedSections[liIndex]; + liDes.forEach((liDe, liIndex) => { + const expectedSection = expectedSections[liIndex]; - if (expectedSection.disabled) { - getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 0, 0); - getAndExpectDebugElementByCss(liDe, 'span.text-muted', 1, 1); - } + if (!expectedSection.disabled) { + getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 1, 1); + getAndExpectDebugElementByCss(liDe, 'span.text-muted', 0, 0); + } + }); }); }); - }); - it('... should contain a div.card-footer in each div.card', () => { - const expectedSeriesLength = expectedEditionOutline.length; + it('... should contain no router link, but a span.text-muted in li.list-group-item if section is disabled', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSeriesLength, - expectedSeriesLength - ); + const ulDes = getAndExpectDebugElementByCss( + compDe, + 'ul.list-group', + expectedSeriesLength, + expectedSeriesLength + ); - cardDes.forEach((cardDe, _index) => { - getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - }); - }); + ulDes.forEach((ulDe, index) => { + const expectedSections = expectedEditionOutline[index].sections; - it('... should contain a routerLink in each div.card-footer', () => { - const expectedSeriesLength = expectedEditionOutline.length; + const liDes = getAndExpectDebugElementByCss( + ulDe, + 'li.list-group-item', + expectedSections.length, + expectedSections.length + ); - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSeriesLength, - expectedSeriesLength - ); + liDes.forEach((liDe, liIndex) => { + const expectedSection = expectedSections[liIndex]; - cardDes.forEach((cardDe, _index) => { - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); + if (expectedSection.disabled) { + getAndExpectDebugElementByDirective(liDe, RouterLinkStubDirective, 0, 0); + getAndExpectDebugElementByCss(liDe, 'span.text-muted', 1, 1); + } + }); + }); }); }); - it('... should have correct routerLink in each div.card-footer', () => { - const expectedSeriesLength = expectedEditionOutline.length; + describe('... div.card-footer', () => { + it('... should contain a routerLink in each div.card-footer', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSeriesLength, - expectedSeriesLength - ); + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series-card', + expectedSeriesLength, + expectedSeriesLength + ); - cardDes.forEach((cardDe, index) => { - const expectedSeries = expectedEditionOutline[index].series; + cardDes.forEach((cardDe, _index) => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + getAndExpectDebugElementByDirective(footerDes[0], RouterLinkStubDirective, 1, 1); + }); + }); - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + it('... should have correct routerLink in each div.card-footer', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const footerLinkDes = getAndExpectDebugElementByDirective( - footerDes[0], - RouterLinkStubDirective, - 1, - 1 + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-edition-series-card', + expectedSeriesLength, + expectedSeriesLength ); - const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); - const expectedLinkParams = [expectedSeries.route]; + cardDes.forEach((cardDe, index) => { + const expectedSeries = expectedEditionOutline[index].series; - expectToEqual(footerLink.linkParams, expectedLinkParams); - }); - }); + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); - it('... should display correct text in each routerLink in div.card-footer', () => { - const expectedSeriesLength = expectedEditionOutline.length; + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLink = footerLinkDes[0].injector.get(RouterLinkStubDirective); - const cardDes = getAndExpectDebugElementByCss( - compDe, - 'div.card', - expectedSeriesLength, - expectedSeriesLength - ); + const expectedLinkParams = [expectedSeries.route]; - cardDes.forEach((cardDe, _index) => { - const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + expectToEqual(footerLink.linkParams, expectedLinkParams); + }); + }); + + it('... should display correct text in each routerLink in div.card-footer', () => { + const expectedSeriesLength = expectedEditionOutline.length; - const footerLinkDes = getAndExpectDebugElementByDirective( - footerDes[0], - RouterLinkStubDirective, - 1, - 1 + const cardDes = getAndExpectDebugElementByCss( + compDe, + 'div.card', + expectedSeriesLength, + expectedSeriesLength ); - const footerLinkEl = footerLinkDes[0].nativeElement; - const expectedLinkText = 'Mehr ...'; + cardDes.forEach((cardDe, _index) => { + const footerDes = getAndExpectDebugElementByCss(cardDe, 'div.card-footer', 1, 1); + + const footerLinkDes = getAndExpectDebugElementByDirective( + footerDes[0], + RouterLinkStubDirective, + 1, + 1 + ); + const footerLinkEl = footerLinkDes[0].nativeElement; - expectToBe(footerLinkEl.textContent.trim(), expectedLinkText); + const expectedLinkText = 'Mehr ...'; + + expectToBe(footerLinkEl.textContent.trim(), expectedLinkText); + }); }); }); }); From c9d75d81e401f834d6afda8a6d4eac04e24f2530 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 17 Oct 2024 17:33:12 +0200 Subject: [PATCH 159/213] feat(shared): add abbreviation directive --- src/app/shared/abbr/abbr.directive.spec.ts | 112 ++++++++++++++++++ src/app/shared/abbr/abbr.directive.ts | 93 +++++++++++++++ .../external-link.directive.spec.ts | 1 + src/app/shared/shared.module.ts | 3 + .../source-description.component.html | 13 +- .../source-description.component.spec.ts | 2 + .../source-list/source-list.component.html | 2 +- .../source-list/source-list.component.spec.ts | 3 +- .../edition-tka-table.component.html | 4 +- .../edition-tka-table.component.spec.ts | 3 +- 10 files changed, 224 insertions(+), 12 deletions(-) create mode 100644 src/app/shared/abbr/abbr.directive.spec.ts create mode 100644 src/app/shared/abbr/abbr.directive.ts diff --git a/src/app/shared/abbr/abbr.directive.spec.ts b/src/app/shared/abbr/abbr.directive.spec.ts new file mode 100644 index 0000000000..e3945b0974 --- /dev/null +++ b/src/app/shared/abbr/abbr.directive.spec.ts @@ -0,0 +1,112 @@ +import { Component, DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectToContain, getAndExpectDebugElementByCss } from '@testing/expect-helper'; + +import { AbbrDirective } from './abbr.directive'; + +// Test abbr component +@Component({ + template: `

`, +}) +class TestAbbrComponent { + text = 'This is a test with Klav. and Klav. o. and Ges. It is located in CH-Bps.'; +} + +describe('AbbrDirective (DONE)', () => { + let fixture: ComponentFixture; + let component: TestAbbrComponent; + let compDe: DebugElement; + + let expectedAbbreviations: Map; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestAbbrComponent, AbbrDirective], + }); + + fixture = TestBed.createComponent(TestAbbrComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedAbbreviations = new Map([ + // General + ['Bl.', 'Blatt (r - recto, v - verso)'], + ['S.', 'Seite'], + ['T.', 'Takt'], + // Instrumentations + ['Ges.', 'Gesang'], + ['Klav. o.', 'Klavier oben'], + ['Klav. u.', 'Klavier unten'], + ['Klav.', 'Klavier'], + // RISM-IDs + ['A-Was', 'Arnold Schönberg Center, Wien'], + ['A-Wn', 'Österreichische Nationalbibliothek, Musiksammlung, Wien'], + ['A-Wst', 'Wienbibliothek im Rathaus, Musiksammlung, Wien'], + ['A-Wue', 'Universal Edition, Historisches Archiv, Wien'], + ['CH-Bps', 'Paul Sacher Stiftung, Basel'], + ['CH-END', 'Dokumentationsbibliothek Walter Labhart, Endingen'], + ['GB-Lbl', 'The Britisch Library, London'], + ['US-NH', 'Yale University, Irving S. Gilmore Music Library, New Haven, CT'], + ['US-NYpm', 'The Morgan Library & Museum, New York City, NY'], + ['US-Wc', 'The Library of Congress, Music Division, Washington, D.C.'], + ]); + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('... should replace abbreviations with elements', () => { + fixture.detectChanges(); // Trigger initial data binding + + const pDes = getAndExpectDebugElementByCss(compDe, 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expectToContain(pEl.innerHTML, 'Klav.'); + expectToContain(pEl.innerHTML, 'Klav. o.'); + expectToContain(pEl.innerHTML, 'Ges.'); + expectToContain(pEl.innerHTML, 'CH-Bps'); + }); + + it('... should replace all given abbreviations with elements', () => { + component.text = Array.from(expectedAbbreviations.keys()).join(' '); + fixture.detectChanges(); // Trigger initial data binding + + const pDes = getAndExpectDebugElementByCss(compDe, 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + getAndExpectDebugElementByCss(pDes[0], `abbr`, expectedAbbreviations.size, expectedAbbreviations.size); + + for (const [abbr, full] of expectedAbbreviations.entries()) { + // HTML escape special characters + const fullEscaped = full.replace(/&/g, '&'); + + expectToContain(pEl.innerHTML, `${abbr}`); + } + }); + + it('... should not replace parts of words', () => { + component.text = 'This is a test with Klaviert and Klav. o. and Ges.'; + fixture.detectChanges(); // Trigger data binding + + const pDes = getAndExpectDebugElementByCss(compDe, 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl.innerHTML).not.toContain('Klaviert'); + expect(pEl.innerHTML).toContain('Klav. o.'); + expect(pEl.innerHTML).toContain('Ges.'); + }); + + it('... should handle empty text', () => { + component.text = ''; + fixture.detectChanges(); // Trigger data binding + + const pDes = getAndExpectDebugElementByCss(compDe, 'p', 1, 1); + const pEl = pDes[0].nativeElement; + + expect(pEl.innerHTML).toBe(''); + }); +}); diff --git a/src/app/shared/abbr/abbr.directive.ts b/src/app/shared/abbr/abbr.directive.ts new file mode 100644 index 0000000000..517cd5c459 --- /dev/null +++ b/src/app/shared/abbr/abbr.directive.ts @@ -0,0 +1,93 @@ +import { Directive, ElementRef, Input, OnInit } from '@angular/core'; + +/** + * The abbr directive. + * + * It is used to create an abbreviation element. + */ +@Directive({ + selector: '[awgAbbr]', +}) +export class AbbrDirective implements OnInit { + /** + * Input variable: text. + * + * It keeps the text value with a possible abbreviation. + */ + @Input('awgAbbr') text: string; + + /** + * Private variable: _abbreviations. + * + * It keeps a list of abbreviations and their full forms. + */ + private _abbreviations = new Map([ + // General + ['Bl.', 'Blatt (r - recto, v - verso)'], + ['S.', 'Seite'], + ['T.', 'Takt'], + // Instrumentations + ['Ges.', 'Gesang'], + ['Klav. o.', 'Klavier oben'], + ['Klav. u.', 'Klavier unten'], + ['Klav.', 'Klavier'], + // RISM-IDs + ['A-Was', 'Arnold Schönberg Center, Wien'], + ['A-Wn', 'Österreichische Nationalbibliothek, Musiksammlung, Wien'], + ['A-Wst', 'Wienbibliothek im Rathaus, Musiksammlung, Wien'], + ['A-Wue', 'Universal Edition, Historisches Archiv, Wien'], + ['CH-Bps', 'Paul Sacher Stiftung, Basel'], + ['CH-END', 'Dokumentationsbibliothek Walter Labhart, Endingen'], + ['GB-Lbl', 'The Britisch Library, London'], + ['US-NH', 'Yale University, Irving S. Gilmore Music Library, New Haven, CT'], + ['US-NYpm', 'The Morgan Library & Museum, New York City, NY'], + ['US-Wc', 'The Library of Congress, Music Division, Washington, D.C.'], + ]); + + /** + * Constructor of the AbbrDirective. + * + * It declares a private instance of ElementRef. + * + * @param {ElementRef} el Instance of ElementRef. + */ + constructor(private el: ElementRef) {} + + /** + * Angular life cycle hook: ngOnInit. + * + * It calls the containing methods + * when initializing the directive. + */ + ngOnInit(): void { + this._replaceAbbreviations(); + } + + /** + * Private method: _replaceAbbreviations. + * + * It replaces abbreviations in the text with abbreviation elements + * containing the full form as title. + * + * @returns {void} Replaces abbreviations in the text. + */ + private _replaceAbbreviations(): void { + let innerHTML = this.text; + + if (!innerHTML) { + return; + } + + // Construct a single regular expression to match any abbreviation + const abbreviationsPattern = Array.from(this._abbreviations.keys()).join('|'); + const regex = new RegExp(`(? elements + innerHTML = innerHTML.replace(regex, match => { + const full = this._abbreviations.get(match); + return `${match}`; + }); + + this.el.nativeElement.innerHTML = innerHTML; + } +} diff --git a/src/app/shared/external-link/external-link.directive.spec.ts b/src/app/shared/external-link/external-link.directive.spec.ts index 2a7483351f..b77722cec3 100644 --- a/src/app/shared/external-link/external-link.directive.spec.ts +++ b/src/app/shared/external-link/external-link.directive.spec.ts @@ -7,6 +7,7 @@ import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToBe } from '@testing/expect-helper'; import { ExternalLinkDirective } from './external-link.directive'; +// Test external link component @Component({ template: `Link External diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 56acca951f..4c66871a5f 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -32,6 +32,7 @@ import { ViewHandleButtonGroupComponent } from './view-handle-button-group/view- // // Shared directives +import { AbbrDirective } from './abbr/abbr.directive'; import { ExternalLinkDirective } from './external-link/external-link.directive'; // @@ -72,6 +73,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; ToastComponent, TwelveToneSpinnerComponent, ViewHandleButtonGroupComponent, + AbbrDirective, ExternalLinkDirective, OrderByPipe, ], @@ -101,6 +103,7 @@ import { OrderByPipe } from './order-by-pipe/order-by.pipe'; ToastComponent, TwelveToneSpinnerComponent, ViewHandleButtonGroupComponent, + AbbrDirective, ExternalLinkDirective, OrderByPipe, ], diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html index 3fcea5b685..4b689001b6 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.html @@ -27,10 +27,7 @@ [compile-html-ref]="ref">

} @if (sourceDescription.location) { -

+

}
@if (utils.isNotEmptyObject(sourceDescription.description)) { @@ -298,9 +295,9 @@ @if (folio.isPage) { - S.  +   } @else { - Bl.  +   } @if ( folio.folio.endsWith('v') || folio.folio.endsWith('r') @@ -425,7 +422,9 @@ } T. {{ measure }} {{ + measure + }} diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts index 0e08a1b129..bcc7736c74 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-description/source-description.component.spec.ts @@ -16,6 +16,7 @@ import { mockEditionData } from '@testing/mock-data'; import { RouterLinkStubDirective } from '@testing/router-stubs'; import { UtilityService } from '@awg-core/services'; +import { AbbrDirective } from '@awg-shared/abbr/abbr.directive'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_FIRM_SIGNS_DATA } from '@awg-views/edition-view/data'; import { @@ -88,6 +89,7 @@ describe('SourceDescriptionComponent (DONE)', () => { SourceDescriptionDetailsStubComponent, SourceDescriptionCorrectionsStubComponent, CompileHtmlComponent, + AbbrDirective, RouterLinkStubDirective, ], providers: [UtilityService], diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.html index 15e9df778a..4ff7bdc3fc 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.html @@ -44,7 +44,7 @@
- + } diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.spec.ts index 745ba719a7..2017c2504e 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-report/source-list/source-list.component.spec.ts @@ -10,6 +10,7 @@ import { expectSpyCall, expectToBe, expectToEqual, getAndExpectDebugElementByCss import { mockEditionData } from '@testing/mock-data'; import { RouterLinkStubDirective } from '@testing/router-stubs'; +import { AbbrDirective } from '@awg-shared/abbr/abbr.directive'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { SourceList } from '@awg-views/edition-view/models'; @@ -31,7 +32,7 @@ describe('SourceListComponent (DONE)', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [RouterModule], - declarations: [SourceListComponent, CompileHtmlComponent, RouterLinkStubDirective], + declarations: [SourceListComponent, CompileHtmlComponent, AbbrDirective, RouterLinkStubDirective], }).compileComponents(); })); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html index 8dfbd10a00..adca25b4b0 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.html @@ -20,8 +20,8 @@ } @for (textcriticalComment of textcriticalCommentBlock.blockComments; track $index) { - - + + diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.spec.ts index f777ee1e9d..b9adf7c9fc 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-tka/edition-tka-table/edition-tka-table.component.spec.ts @@ -15,6 +15,7 @@ import { } from '@testing/expect-helper'; import { mockEditionData } from '@testing/mock-data'; +import { AbbrDirective } from '@awg-shared/abbr/abbr.directive'; import { CompileHtmlComponent } from '@awg-shared/compile-html'; import { EDITION_GLYPHS_DATA } from '@awg-views/edition-view/data'; import { EditionSvgSheet, TextcriticalCommentBlock, TkaTableHeaderColumn } from '@awg-views/edition-view/models'; @@ -51,7 +52,7 @@ describe('EditionTkaTableComponent (DONE)', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [EditionTkaTableComponent, CompileHtmlComponent], + declarations: [EditionTkaTableComponent, AbbrDirective, CompileHtmlComponent], }).compileComponents(); })); From bda78bb4ec8bbc783578d19922bd33ffb9713fcd Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 17 Oct 2024 19:15:07 +0200 Subject: [PATCH 160/213] build(deps): add fontawesome regular svg icons --- package.json | 1 + yarn.lock | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/package.json b/package.json index 75647a9c1f..80f22e535e 100644 --- a/package.json +++ b/package.json @@ -96,6 +96,7 @@ "@angular/router": "^18.2.8", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", + "@fortawesome/free-regular-svg-icons": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@kolkov/ngx-gallery": "2.0.1", "@ng-bootstrap/ng-bootstrap": "^17.0.1", diff --git a/yarn.lock b/yarn.lock index 6dfeb4f1b1..46bce54bce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4169,6 +4169,15 @@ __metadata: languageName: node linkType: hard +"@fortawesome/free-regular-svg-icons@npm:^6.6.0": + version: 6.6.0 + resolution: "@fortawesome/free-regular-svg-icons@npm:6.6.0" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/c682a6d7c6bdce492eee5b15a6647f9c436ce04f337080b7061cc04a739b5eb95224f7cdc7d865cf08fea837d4d1b1541849a3183534956e176896a969220d45 + languageName: node + linkType: hard + "@fortawesome/free-solid-svg-icons@npm:^6.6.0": version: 6.6.0 resolution: "@fortawesome/free-solid-svg-icons@npm:6.6.0" @@ -6674,6 +6683,7 @@ __metadata: "@commitlint/config-angular": "npm:^19.5.0" "@compodoc/compodoc": "npm:^1.1.26" "@fortawesome/angular-fontawesome": "npm:^0.15.0" + "@fortawesome/free-regular-svg-icons": "npm:^6.6.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" "@kolkov/ngx-gallery": "npm:2.0.1" "@ng-bootstrap/ng-bootstrap": "npm:^17.0.1" From 66158cf22d0ac249f579de444ccd588af02fdb7f Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 17 Oct 2024 19:15:37 +0200 Subject: [PATCH 161/213] build(shared): activate NgbPopoverModule --- src/app/shared/shared-ngbootstrap.module.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/app/shared/shared-ngbootstrap.module.ts b/src/app/shared/shared-ngbootstrap.module.ts index cc4a22fea9..5ade2302df 100644 --- a/src/app/shared/shared-ngbootstrap.module.ts +++ b/src/app/shared/shared-ngbootstrap.module.ts @@ -6,6 +6,7 @@ import { NgbModalModule, NgbNavModule, NgbPaginationModule, + NgbPopoverModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule, @@ -19,6 +20,7 @@ import { NgbModalModule, NgbNavModule, NgbPaginationModule, + NgbPopoverModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule, @@ -30,6 +32,7 @@ import { NgbModalModule, NgbNavModule, NgbPaginationModule, + NgbPopoverModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule, From b3cd451e6926b2f16b6a68674d499fbde1277b80 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 17 Oct 2024 19:25:28 +0200 Subject: [PATCH 162/213] feat(edition): add disclaimer for workeditions --- .../edition-svg-sheet-nav-item.component.html | 11 +++- ...ition-svg-sheet-nav-item.component.spec.ts | 52 +++++++++++++++++-- .../edition-svg-sheet-nav-item.component.ts | 20 ++++++- 3 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html index 804c398a17..77d2e7831c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.html @@ -1,6 +1,15 @@
{{ navItemLabel }}: - @if (!utils.isNotEmptyArray(svgSheets)) { + @if (navItemLabel === 'Werkeditionen') { +   + + } @else if (!utils.isNotEmptyArray(svgSheets)) { --- }
diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts index bffafe91b9..896869d85c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts @@ -1,7 +1,11 @@ -import { DebugElement } from '@angular/core'; +import { DebugElement, NgModule } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/core/testing'; import Spy = jasmine.Spy; +import { IconDefinition } from '@fortawesome/angular-fontawesome'; +import { FontAwesomeTestingModule } from '@fortawesome/angular-fontawesome/testing'; +import { faCalendarXmark } from '@fortawesome/free-regular-svg-icons'; + import { clickAndAwaitChanges } from '@testing/click-helper'; import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; import { @@ -15,6 +19,7 @@ import { mockEditionData } from '@testing/mock-data'; import { EditionSvgSheet } from '@awg-views/edition-view/models'; +import { NgbConfig, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; import { EditionSvgSheetNavItemComponent } from './edition-svg-sheet-nav-item.component'; describe('EditionSvgSheetNavItemComponent (DONE)', () => { @@ -22,7 +27,12 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; + let selectSvgSheetSpy: Spy; + let selectSvgSheetRequestEmitSpy: Spy; + let expectedComplexId: string; + let expectedDisclaimerWorkEditions: string; + let expectedFaCalendarXmark: IconDefinition; let expectedNextComplexId: string; let expectedNavItemLabel: string; let expectedSvgSheets: EditionSvgSheet[]; @@ -33,11 +43,18 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { let expectedSvgSheetWithPartialA: EditionSvgSheet; let expectedNextSvgSheet: EditionSvgSheet; - let selectSvgSheetSpy: Spy; - let selectSvgSheetRequestEmitSpy: Spy; + // global NgbConfigModule + @NgModule({ imports: [NgbPopoverModule], exports: [NgbPopoverModule] }) + class NgbConfigModule { + constructor(config: NgbConfig) { + // Set animations to false + config.animation = false; + } + } beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ + imports: [FontAwesomeTestingModule, NgbConfigModule], declarations: [EditionSvgSheetNavItemComponent], }).compileComponents(); })); @@ -48,6 +65,9 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { compDe = fixture.debugElement; // Test data + expectedDisclaimerWorkEditions = + 'Werkeditionen sind aus rechtlichen Gründen frühestens ab 2049 online verfügbar. Bis dahin konsultieren Sie bitte die entsprechende Printausgabe.'; + expectedFaCalendarXmark = faCalendarXmark; expectedNavItemLabel = 'Testeditionslabel'; expectedComplexId = 'testComplex1'; expectedNextComplexId = 'testComplex2'; @@ -85,6 +105,14 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { expect(component.selectedSvgSheet).toBeUndefined(); }); + it('... should have disclaimerWorkEditions', () => { + expectToEqual(component.disclaimerWorkEditions, expectedDisclaimerWorkEditions); + }); + + it('... should have faCalendarXmark', () => { + expectToEqual(component.faCalendarXmark, expectedFaCalendarXmark); + }); + describe('VIEW', () => { it('... should contain 1 h6.card-title without navItemLabel (yet)', () => { const headerDes = getAndExpectDebugElementByCss(compDe, 'h6.card-title', 1, 1); @@ -131,9 +159,25 @@ describe('EditionSvgSheetNavItemComponent (DONE)', () => { expectToBe(headerEl.textContent.trim(), expectedNavItemLabel + ':'); }); + it('... should contain an text-danger xMark icon if navItemLabel=`Werkeditionen` ', () => { + component.navItemLabel = 'Werkeditionen'; + detectChangesOnPush(fixture); + + const headerDes = getAndExpectDebugElementByCss(compDe, 'h6.card-title', 1, 1); + const spanDes = getAndExpectDebugElementByCss(headerDes[0], 'span', 1, 1); + const spanEl = spanDes[0].nativeElement; + + expectToContain(spanEl.classList, 'text-danger'); + + const faIconDes = getAndExpectDebugElementByCss(spanDes[0], 'fa-icon', 1, 1); + const faIconIns = faIconDes[0].componentInstance.icon; + + expectToEqual(faIconIns, expectedFaCalendarXmark); + }); + it('... should contain a span in h6.card-title with "---" if svgSheets is empty', () => { component.svgSheets = []; - fixture.detectChanges(); + detectChangesOnPush(fixture); const headerDes = getAndExpectDebugElementByCss(compDe, 'h6.card-title', 1, 1); const spanDes = getAndExpectDebugElementByCss(headerDes[0], 'span', 1, 1); diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts index 73fee9a71b..1ac5b2f597 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts @@ -1,4 +1,5 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { faCalendarXmark } from '@fortawesome/free-regular-svg-icons'; import { UtilityService } from '@awg-core/services'; import { EditionSvgSheet } from '@awg-views/edition-view/models'; @@ -14,6 +15,7 @@ import { EditionSvgSheet } from '@awg-views/edition-view/models'; selector: 'awg-edition-svg-sheet-nav-item', templateUrl: './edition-svg-sheet-nav-item.component.html', styleUrls: ['./edition-svg-sheet-nav-item.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class EditionSvgSheetNavItemComponent { /** @@ -48,6 +50,22 @@ export class EditionSvgSheetNavItemComponent { @Output() selectSvgSheetRequest: EventEmitter<{ complexId: string; sheetId: string }> = new EventEmitter(); + /** + * Public variable: disclaimerWorkEditions. + * + * + * It keeps the disclaimer for work editions. + */ + disclaimerWorkEditions = + 'Werkeditionen sind aus rechtlichen Gründen frühestens ab 2049 online verfügbar. Bis dahin konsultieren Sie bitte die entsprechende Printausgabe.'; + + /** + * Public variable: faCalendarXmark. + * + * It instantiates fontawesome's faCalendarXmark icon. + */ + faCalendarXmark = faCalendarXmark; + /** * Constructor of the EditionSvgSheetNavItemComponent. * From ba4ac9f809906c131efe58e71ef781a1bbbe48ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:38:51 +0000 Subject: [PATCH 163/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.8...18.2.9) Updates `@angular/cli` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.8...18.2.9) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 130 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 88 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 75647a9c1f..f43bda2885 100644 --- a/package.json +++ b/package.json @@ -118,13 +118,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.8", + "@angular-devkit/build-angular": "^18.2.9", "@angular-eslint/builder": "^18.3.1", "@angular-eslint/eslint-plugin": "^18.3.1", "@angular-eslint/eslint-plugin-template": "^18.3.1", "@angular-eslint/schematics": "^18.3.1", "@angular-eslint/template-parser": "^18.3.1", - "@angular/cli": "^18.2.8", + "@angular/cli": "^18.2.9", "@angular/compiler-cli": "^18.2.8", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 6dfeb4f1b1..1463c58a8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.8": - version: 0.1802.8 - resolution: "@angular-devkit/architect@npm:0.1802.8" +"@angular-devkit/architect@npm:0.1802.9": + version: 0.1802.9 + resolution: "@angular-devkit/architect@npm:0.1802.9" dependencies: - "@angular-devkit/core": "npm:18.2.8" + "@angular-devkit/core": "npm:18.2.9" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/3c4606b99bc119fa31546d6093c7077fc65255c169c168670c6c7b45d6898255f891027a664d5479c63cfe085c2ca9c4f232cc6c66b157c93fe2de7da37d06fb + checksum: 10c0/3dad5c84ef020fea542eb2113bef03767abc6d1627e314f018c7d3cbe8794c2a19de8be2f73a417e64fe17dbca37518bd0abbe070d68c57abcc7761a77291ebf languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular-devkit/build-angular@npm:18.2.8" +"@angular-devkit/build-angular@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/build-angular@npm:18.2.9" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.8" - "@angular-devkit/build-webpack": "npm:0.1802.8" - "@angular-devkit/core": "npm:18.2.8" - "@angular/build": "npm:18.2.8" + "@angular-devkit/architect": "npm:0.1802.9" + "@angular-devkit/build-webpack": "npm:0.1802.9" + "@angular-devkit/core": "npm:18.2.9" + "@angular/build": "npm:18.2.9" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.8" + "@ngtools/webpack": "npm:18.2.9" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/4e7329347ca402723e70b6034322c3c966335b8edf9e8c9d573042c23fcde140f0008c99e49cf0a7613fd0f07c744dd38b2b7c6cf68b2e7c70d49693cafc6d8f + checksum: 10c0/824b1277fbf048b7088f5c589ea5eec54c42ca852610a37c8e56b50d2be98c29fac2d5e9416f0fdbc98e700084945e1e1c554066348cde9b86aba1399d4658be languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.8": - version: 0.1802.8 - resolution: "@angular-devkit/build-webpack@npm:0.1802.8" +"@angular-devkit/build-webpack@npm:0.1802.9": + version: 0.1802.9 + resolution: "@angular-devkit/build-webpack@npm:0.1802.9" dependencies: - "@angular-devkit/architect": "npm:0.1802.8" + "@angular-devkit/architect": "npm:0.1802.9" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/07dc829b6024d4e72154bf16ed095a03a87b0b1c1f30eb81cb2073c84850459ed7a2cfda3e9754b54c68ca936bced9df2e81b558ce393818b9bed835ac7d5b5d + checksum: 10c0/16c30407fe38fb476277a6e386edfa3b70f097096d46bcea8aaeaa40dc69f0077e043f02e334aa9e3fde08824eb3146517e4869adc10f4228f1cee4266257fa4 languageName: node linkType: hard @@ -222,6 +222,30 @@ __metadata: languageName: node linkType: hard +"@angular-devkit/core@npm:18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/core@npm:18.2.9" + dependencies: + ajv: "npm:8.17.1" + ajv-formats: "npm:3.0.1" + jsonc-parser: "npm:3.3.1" + picomatch: "npm:4.0.2" + rxjs: "npm:7.8.1" + source-map: "npm:0.7.4" + peerDependencies: + chokidar: ^3.5.2 + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + peerDependenciesMeta: + chokidar: + optional: true + checksum: 10c0/ab336889c110bb86f0bd27c93566ca4e98a4127de19c1ee6a8513ddb28f285556c3b017733bcb8f5b69408fa02003ed7dae256ac898291d1532cc73851c1677b + languageName: node + linkType: hard + "@angular-devkit/schematics@npm:18.2.8": version: 18.2.8 resolution: "@angular-devkit/schematics@npm:18.2.8" @@ -240,6 +264,24 @@ __metadata: languageName: node linkType: hard +"@angular-devkit/schematics@npm:18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/schematics@npm:18.2.9" + dependencies: + "@angular-devkit/core": "npm:18.2.9" + jsonc-parser: "npm:3.3.1" + magic-string: "npm:0.30.11" + ora: "npm:5.4.1" + rxjs: "npm:7.8.1" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/f7f2f41913750bac1c7277ca6cdd841705bc83c34315782bb12706d23561b292a86dfdbbaa00513e16b4aaa729338e5dd8bb8bace9643d4a17ad67811e309d95 + languageName: node + linkType: hard + "@angular-devkit/schematics@npm:^18.0.0": version: 18.0.2 resolution: "@angular-devkit/schematics@npm:18.0.2" @@ -353,12 +395,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.8": - version: 18.2.8 - resolution: "@angular/build@npm:18.2.8" +"@angular/build@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/build@npm:18.2.9" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.8" + "@angular-devkit/architect": "npm:0.1802.9" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -409,20 +451,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/a7eba735e0ca514043dfe15e2cfa726aed6d6e1b5b69506d8f05ac94cef9975f528d56fe4a56087cfd2596348746e483f193d9f8f39864b0d96fd4b9cc8cc07f + checksum: 10c0/e69e9ba5cc722450de275a30e7cb257ae431c5fe6c1bb7a658014ba0cf62acb50476e49f086649b5b5651f1c4fd8ec944219de3815acb28f23ca086a857aa895 languageName: node linkType: hard -"@angular/cli@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/cli@npm:18.2.8" +"@angular/cli@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/cli@npm:18.2.9" dependencies: - "@angular-devkit/architect": "npm:0.1802.8" - "@angular-devkit/core": "npm:18.2.8" - "@angular-devkit/schematics": "npm:18.2.8" + "@angular-devkit/architect": "npm:0.1802.9" + "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/schematics": "npm:18.2.9" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.8" + "@schematics/angular": "npm:18.2.9" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -441,7 +483,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/aeb29dcb4b9504497fa53228e8fd9162e5dcc17c197b80e430ba73e3408aef8d30bfb01c278fa71979758265cd81d17598dff506a725f4e698e0803739919aca + checksum: 10c0/a2dfa139ad76291649532ff81c0b7986eddf202b12fc7ac923c24848b4e1b69397d00b7fa99539589cde34b41d018ebb148a3984f647ec3f1c27ebd09b0652ec languageName: node linkType: hard @@ -4661,9 +4703,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.8": - version: 18.2.8 - resolution: "@ngtools/webpack@npm:18.2.8" +"@ngtools/webpack@npm:18.2.9": + version: 18.2.9 + resolution: "@ngtools/webpack@npm:18.2.9" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -4673,7 +4715,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/256969e65c1b13d0ab66b09eb2d9d6a3aaf3396b2f59ad4e590c87dfe19c81308cd7f302f978098cea2c9c20c75207f75955b76e80900115163ce9d7cd35c2a2 + checksum: 10c0/4d5acc5327c67c487caf300488924d80187ba492ebb936c4b573e05f1a29ac78bec6590302f70135dbdc871e0e81b2c2124fa55611f220cda4476fa907d6838b languageName: node linkType: hard @@ -4973,19 +5015,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.8": - version: 18.2.8 - resolution: "@schematics/angular@npm:18.2.8" +"@schematics/angular@npm:18.2.9": + version: 18.2.9 + resolution: "@schematics/angular@npm:18.2.9" dependencies: - "@angular-devkit/core": "npm:18.2.8" - "@angular-devkit/schematics": "npm:18.2.8" + "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/schematics": "npm:18.2.9" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/a868ea99c62d890adb83ce7be26eb871c28e518c897fc3eccfe2646b64dbdeb5de2d2c590ffc2e564bd22851731b546e2a8c18b90a697b6e34ee6b569ae91afc + checksum: 10c0/da504e2144e3ee6a2c1708140362f4a91ed820208354c4cb88b606a5652d80a1855de1fe4160a2a2b88a398bbd69ed9006cae42b9d2f7f9a6ab4eaa7c70bf763 languageName: node linkType: hard @@ -6651,14 +6693,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.8" + "@angular-devkit/build-angular": "npm:^18.2.9" "@angular-eslint/builder": "npm:^18.3.1" "@angular-eslint/eslint-plugin": "npm:^18.3.1" "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" "@angular-eslint/schematics": "npm:^18.3.1" "@angular-eslint/template-parser": "npm:^18.3.1" "@angular/animations": "npm:^18.2.8" - "@angular/cli": "npm:^18.2.8" + "@angular/cli": "npm:^18.2.9" "@angular/common": "npm:^18.2.8" "@angular/compiler": "npm:^18.2.8" "@angular/compiler-cli": "npm:^18.2.8" From 709259b15b85acfdfc02a241687823a3bd799031 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:40:34 +0000 Subject: [PATCH 164/213] build(deps-dev): bump eslint-plugin-jsdoc from 50.4.1 to 50.4.3 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.4.1 to 50.4.3. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.1...v50.4.3) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f43bda2885..a514663c9f 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,7 @@ "eslint-plugin-angular": "^4.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsdoc": "^50.4.1", + "eslint-plugin-jsdoc": "^50.4.3", "eslint-plugin-prettier": "^5.2.1", "gzipper": "^7.2.0", "husky": "^9.1.6", diff --git a/yarn.lock b/yarn.lock index 1463c58a8c..c4e2d98fc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6740,7 +6740,7 @@ __metadata: eslint-plugin-angular: "npm:^4.1.0" eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-import: "npm:^2.31.0" - eslint-plugin-jsdoc: "npm:^50.4.1" + eslint-plugin-jsdoc: "npm:^50.4.3" eslint-plugin-prettier: "npm:^5.2.1" font-awesome: "npm:^4.7.0" gzipper: "npm:^7.2.0" @@ -9455,9 +9455,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^50.4.1": - version: 50.4.1 - resolution: "eslint-plugin-jsdoc@npm:50.4.1" +"eslint-plugin-jsdoc@npm:^50.4.3": + version: 50.4.3 + resolution: "eslint-plugin-jsdoc@npm:50.4.3" dependencies: "@es-joy/jsdoccomment": "npm:~0.49.0" are-docs-informative: "npm:^0.0.2" @@ -9472,7 +9472,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/d3b3947fc71acac2a790774729d96da4bd61dfc783558a998fca0b581b4dec059b5cdb048cd5873a8f188c5da1929307643909dd4f51063d2d6a00487b8b8940 + checksum: 10c0/96067f8fc3553371e9afdc6d03c166228bfd3cb004fcd70c4357d49185732f384351e20f44c21b0a13ea318c8aabbd584b627804f62a2a80376507646708a786 languageName: node linkType: hard From 3e5464459c5346d43bad497936df6c70d2002db3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:51:29 +0000 Subject: [PATCH 165/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.9.0 to 8.10.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.10.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.9.0 to 8.10.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.10.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index a514663c9f..a55670cd00 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.9.0", - "@typescript-eslint/parser": "^8.9.0", + "@typescript-eslint/eslint-plugin": "^8.10.0", + "@typescript-eslint/parser": "^8.10.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.5.0", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index c4e2d98fc8..20f521587f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5752,15 +5752,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.9.0" +"@typescript-eslint/eslint-plugin@npm:^8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.10.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/type-utils": "npm:8.9.0" - "@typescript-eslint/utils": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/type-utils": "npm:8.10.0" + "@typescript-eslint/utils": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5771,25 +5771,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/07f273dc270268980bbf65ea5e0c69d05377e42dbdb2dd3f4a1293a3536c049ddfb548eb9ec6e60394c2361c4a15b62b8246951f83e16a9d16799578a74dc691 + checksum: 10c0/4b77ba9c865a2a14e238cd330b5901f0274b8ce1c13324fccd0339b8eea82a50a4709394c903fd8cd5bd0d3aebace0761ff9a4a19fa20b00bb61349b7671c035 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/parser@npm:8.9.0" +"@typescript-eslint/parser@npm:^8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/parser@npm:8.10.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/typescript-estree": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/aca7c838de85fb700ecf5682dc6f8f90a0fbfe09a3044a176c0dc3ffd9c5e7105beb0919a30824f46b02223a74119b4f5a9834a0663328987f066cb359b5dbed + checksum: 10c0/7becb2457c085c239838d301796074b790f46dd38c9fbc14ec1dec8e993c7115cd8a66cdc07983c3a68a2dd92e24e8acc49d69a4ebcc29e9869957eb52d1cb74 languageName: node linkType: hard @@ -5803,28 +5803,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/scope-manager@npm:8.9.0" +"@typescript-eslint/scope-manager@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/scope-manager@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" - checksum: 10c0/1fb77a982e3384d8cabd64678ea8f9de328708080ff9324bf24a44da4e8d7b7692ae4820efc3ef36027bf0fd6a061680d3c30ce63d661fb31e18970fca5e86c5 + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" + checksum: 10c0/b8bb8635c4d6c00a3578d6265e3ee0f5d96d0c9dee534ed588aa411c3f4497fd71cce730c3ae7571e52453d955b191bc9edcc47c9af21a20c90e9a20f2371108 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/type-utils@npm:8.9.0" +"@typescript-eslint/type-utils@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/type-utils@npm:8.10.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.9.0" - "@typescript-eslint/utils": "npm:8.9.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/utils": "npm:8.10.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/aff06afda9ac7d12f750e76c8f91ed8b56eefd3f3f4fbaa93a64411ec9e0bd2c2972f3407e439320d98062b16f508dce7604b8bb2b803fded9d3148e5ee721b1 + checksum: 10c0/1af8fce8394279e6ac7bcef449a132072ee36e374c8d557564246ffe7150230844901ca0305e29525bf37c87010e03bf8bedec76fccbfe1e41931cb4f274e208 languageName: node linkType: hard @@ -5835,10 +5835,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/types@npm:8.9.0" - checksum: 10c0/8d901b7ed2f943624c24f7fa67f7be9d49a92554d54c4f27397c05b329ceff59a9ea246810b53ff36fca08760c14305dd4ce78fbac7ca0474311b0575bf49010 +"@typescript-eslint/types@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/types@npm:8.10.0" + checksum: 10c0/f27dd43c8383e02e914a254257627e393dfc0f08b0f74a253c106813ae361f090271b2f3f2ef588fa3ca1329897d873da595bb5641fe8e3091b25eddca24b5d2 languageName: node linkType: hard @@ -5861,12 +5861,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.9.0" +"@typescript-eslint/typescript-estree@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/visitor-keys": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/visitor-keys": "npm:8.10.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5876,21 +5876,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bb5ec70727f07d1575e95f9d117762636209e1ab073a26c4e873e1e5b4617b000d300a23d294ad81693f7e99abe3e519725452c30b235a253edcd85b6ae052b0 + checksum: 10c0/535a740fe25be0e28fe68c41e3264273d1e5169c9f938e08cc0e3415c357726f43efa44621960108c318fc3305c425d29f3223b6e731d44d67f84058a8947304 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/utils@npm:8.9.0" +"@typescript-eslint/utils@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/utils@npm:8.10.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.9.0" - "@typescript-eslint/types": "npm:8.9.0" - "@typescript-eslint/typescript-estree": "npm:8.9.0" + "@typescript-eslint/scope-manager": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.10.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/af13e3d501060bdc5fa04b131b3f9a90604e5c1d4845d1f8bd94b703a3c146a76debfc21fe65a7f3a0459ed6c57cf2aa3f0a052469bb23b6f35ff853fe9495b1 + checksum: 10c0/a21a2933517176abd00fcd5d8d80023e35dc3d89d5746bbac43790b4e984ab1f371117db08048bce7f42d54c64f4e0e35161149f8f34fd25a27bff9d1110fd16 languageName: node linkType: hard @@ -5918,13 +5918,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.9.0": - version: 8.9.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.9.0" +"@typescript-eslint/visitor-keys@npm:8.10.0": + version: 8.10.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.10.0" dependencies: - "@typescript-eslint/types": "npm:8.9.0" + "@typescript-eslint/types": "npm:8.10.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/e33208b946841f1838d87d64f4ee230f798e68bdce8c181d3ac0abb567f758cb9c4bdccc919d493167869f413ca4c400e7db0f7dd7e8fc84ab6a8344076a7458 + checksum: 10c0/14721c4ac939640d5fd1ee1b6eeb07604b11a6017e319e21dcc71e7aac2992341fc7ae1992d977bad4433b6a1d0d1c0c279e6927316b26245f6e333f922fa458 languageName: node linkType: hard @@ -6723,8 +6723,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.9.0" - "@typescript-eslint/parser": "npm:^8.9.0" + "@typescript-eslint/eslint-plugin": "npm:^8.10.0" + "@typescript-eslint/parser": "npm:^8.10.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From c5dda4715d685b6e05b86d6ac46510b7bcaffcb7 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Mon, 21 Oct 2024 18:21:08 +0200 Subject: [PATCH 166/213] feat(assets): add corrections in Op4: B (#1881) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections in Op4: source_Babc_corr * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich * Update src/assets/data/edition/series/1/section/5/op4/source-description.json Co-authored-by: Stefan Münnich --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op4/source-description.json | 512 ++++++++++++++++++ 1 file changed, 512 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index cedf1f021e..dde1dfadc9 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -880,6 +880,518 @@ } ] } + ], + "corrections": [ + { + "id": "source_Ba_corr1", + "label": "Korrekturen 1 in Ba (mit schwarzer Tinte ggf. auf Rasur)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Noch zwingt mich Treue“ M 139: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1
bis 2", + "system": "Ges.", + "position": "1. Note
2/8", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "1", + "system": "Ges.", + "position": "10/16", + "comment": "Auf Rasur." + }, + { + "measure": "2–3", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "2
bis 5", + "system": "Ges.", + "position": "1. Note
2/8", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "5", + "system": "Klav.", + "position": "(2/4)", + "comment": "{{ref.getGlyph('[sf]')}} auf Rasur. Ante correcturam: vermutlich {{ref.getGlyph('[sfz]')}} (siehe Textfassung 1)." + }, + { + "measure": "5
bis 7", + "system": "Ges.", + "position": "6/8
2. Note", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "7
bis 9", + "system": "Ges.", + "position": "6/16
4/8", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "8", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[b]')}} überschreibt {{ref.getGlyph('[a]')}}." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "10", + "system": "Klav. u.", + "position": "letzte Pause", + "comment": "Triolische Viertelpause überschreibt Achtelpause (siehe Textfassung 1)." + }, + { + "measure": "10
bis 12", + "system": "Ges.", + "position": "6/8
6/8", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "12", + "system": "Ges.", + "position": "1/8", + "comment": "Auf Rasur." + }, + { + "measure": "12", + "system": "Klav.", + "position": "2/8–5/16", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "13", + "system": "Klav.", + "position": "", + "comment": "Auf Tektur." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Auf Rasur." + }, + { + "measure": "13
bis 15", + "system": "Ges.", + "position": "1. Note
4/8", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "15", + "system": "Ges.", + "position": "", + "comment": "Auf Rasur." + }, + { + "measure": "15", + "system": "Klav. o.", + "position": "3/8–6/8", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + }, + { + "measure": "15
bis 17", + "system": "Ges.", + "position": "3. Note
3. Note", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "16
bis 18", + "system": "Klav. u.", + "position": "vorletzte Note
1/4", + "comment": "Bogen (siehe Textfassung 1) teilweise rasiert und geändert zu zwei Bögen T. 16 vorletzte Note bis T. 17 2/8 sowie T. 17 3/8 bis T. 18 1/4." + }, + { + "measure": "17", + "system": "Klav.", + "position": "4/16–(7/16)", + "comment": "Punktierte Achtelpause in Klav. o. und Achtelpause in Klav. u. auf Rasur." + }, + { + "measure": "17
bis 18", + "system": "Ges.", + "position": "4. Note
5. Note", + "comment": "Bogen (siehe Textfassung 1) rasiert." + }, + { + "measure": "18", + "system": "Klav. o.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: vermutlich wie Textfassung 1." + } + ] + } + ] + }, + { + "id": "source_Ba_corr2", + "label": "Korrekturen 2 in Ba (mit Bleistift)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Noch zwingt mich Treue“ M 139: Textfassung 2."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1
bis 1", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 3." + }, + { + "measure": "3", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 3." + }, + { + "measure": "3
bis 4", + "system": "Klav.", + "position": "letzte Note
letzte Note", + "comment": "Decrescendogabel T. 4 1.–2. Note und Crescendogabel 3. – 4. Note (siehe Textfassung 3) überschreiben Decrescendogabel." + }, + { + "measure": "7", + "system": "Ges.", + "position": "6/16", + "comment": "{{ref.getGlyph('[ppp]')}} gestrichen." + }, + { + "measure": "10", + "system": "Ges.", + "position": "5–6/8", + "comment": "Korrekturskizzen zu Textfassung 3." + }, + { + "measure": "10", + "system": "Klav.", + "position": "5–6/8", + "comment": "Korrekturskizzen zu Textfassung 3." + }, + { + "measure": "13
bis 16", + "system": "Klav. o.", + "position": "8/16
2. Note", + "comment": "Bogen geändert zu zwei Bögen in T. 13 8/16–6/8 und T. 14 1. Note bis T. 16 2. Note." + }, + { + "measure": "13", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "c gestrichen (siehe Textfassung 3)." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "1/8", + "comment": "c/a gestrichen (siehe Textfassung 3)." + }, + { + "measure": "16", + "system": "Klav. u.", + "position": "4. Note", + "comment": "{{ref.getGlyph('[pp]')}} gestrichen und ersetzt durch {{ref.getGlyph('[p]')}}. Siehe TkA." + }, + { + "measure": "17", + "system": "Klav. u.", + "position": "1–2/8", + "comment": "Decrescendogabel hinzugefügt (siehe Textfassung 3)." + }, + { + "measure": "17", + "system": "Klav. u.", + "position": "4–5/8", + "comment": "Crescendogabel hinzugefügt (siehe Textfassung 3)." + }, + { + "measure": "18", + "system": "Klav. u.", + "position": "1/4", + "comment": "F gestrichen (siehe Textfassung 3)." + }, + { + "measure": "20", + "system": "Klav. o.", + "position": "6/8", + "comment": "{{ref.getGlyph('[#]')}} zu gis hinzugefügt." + } + ] + } + ] + }, + { + "id": "source_Bb_corr", + "label": "Korrekturen in Bb (mit Bleistift)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „Ja Heil und Dank dir“ M 140: Textfassung 1."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "vor 1", + "system": "Ges.", + "position": "1. Pause", + "comment": "Viertelpause (siehe Textfassung 2) überschreibt Achtelpause." + }, + { + "measure": "vor 1
bis 2", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2.–3. Note", + "comment": "Fähnchen überschreiben Balkennotation." + }, + { + "measure": "4
bis 5", + "system": "Klav.", + "position": "2/4", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "6", + "system": "Ges.", + "position": "2/8", + "comment": "Achtelnote b1 geändert zu Sechzehntelnote e2 (siehe Textfassung 2)." + }, + { + "measure": "8", + "system": "", + "position": "Taktanfang bis 4/4", + "comment": "rit[.] - - - hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "8", + "system": "Ges.", + "position": "4/4", + "comment": "Fermate hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "14/16", + "comment": "Fermate hinzugefügt (siehe Textfassung 2 7/8)." + }, + { + "measure": "9", + "system": "", + "position": "Taktanfang", + "comment": "tempo hinzugefügt (siehe Textfassung 2 T. 8 15/16)." + }, + { + "measure": "9", + "system": "Klav.", + "position": "1/4–6/8", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "10", + "system": "Ges.", + "position": "1/4–4/8", + "comment": "8va hinzugefügt (sic: bis 4/8; siehe Textfassung 2 1/4–3/8)." + }, + { + "measure": "10", + "system": "Klav.", + "position": "1. Note bis Taktende", + "comment": "Ped[.] - - - hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "11", + "system": "Ges.", + "position": "5–6/8", + "comment": "Auf Rasur mit schwarzer Tinte." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "6/8", + "comment": "Auf Rasur mit schwarzer Tinte. Nach Takt- und Akkoladenende Skizze Viertelnote {{ref.getGlyph('[a]')}}e/g/{{ref.getGlyph('[b]')}}fes1 (?) mit Bleistift." + }, + { + "measure": "12", + "system": "", + "position": "Taktanfang bis 2/8", + "comment": "rit[.] - - - hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "12", + "system": "Ges.", + "position": "1–2/8", + "comment": "Zwei Achtelnoten geändert zu Triolische Viertelnote gis1, Achtelnote e1 (siehe Textfassung 2). Dann Triolenziffer gestrichen." + }, + { + "measure": "12", + "system": "Klav.", + "position": "(1–2/4)", + "comment": "Korrekturskizzen zu Textfassung 2." + }, + { + "measure": "13
bis 14", + "system": "Klav.", + "position": "2. Note
5/16", + "comment": "Ped[.] - - - bis Ende T. 13 (Akkoladenwechsel) und Pedal-Aufhebung in T. 14 5/16 hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "10.–12. Note", + "comment": "Decrescendogabel hinzugefügt (siehe Textfassung 2)." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "letzte Note", + "comment": "Korrekturskizze mit blauer Tinte: zwei Viertelnoten d1 (siehe Textfassung 2)." + }, + { + "measure": "14", + "system": "Klav. o.", + "position": "2–4/16", + "comment": "< > (siehe Textfassung 2) hinzugefügt." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "6/16, 4/8", + "comment": "es (siehe Textfassung 2) hinzugefügt mit blauer Tinte." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "5/8", + "comment": "Achtelnote durch Einkresiung getilgt (siehe Textfassung 2)." + }, + { + "measure": "14", + "system": "Klav.", + "position": "12/16 bis letzte Note", + "comment": "Ped[.] - - - (siehe Textfassung 2) hinzugefügt." + }, + { + "measure": "14", + "system": "Klav. u.", + "position": "letzte Note", + "comment": "As ersetzt cis mit blauer Tinte." + }, + { + "measure": "15", + "system": "Klav.", + "position": "", + "comment": "Korrekturskizzen zu Textfassung 2." + } + ] + } + ] + }, + { + "id": "source_Bc_corr1", + "label": "Korrekturen 1 in Bc (mit schwarzer Tinte ggf. auf Rasur)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „So ich traurig bin“ M 141: Textfassung 1."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "4", + "system": "Ges.", + "position": "2/8", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[a]')}} auf Rasur." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "4–5/16", + "comment": "Auf Rasur." + }, + { + "measure": "5", + "system": "Klav. u.", + "position": "2. Note", + "comment": "{{ref.getGlyph('[a]')}} zu c1 rasiert." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "", + "comment": "Auf Rasur. Ante correcturam: Viertelnote Ges1, Achtelnote F1 (?)." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3/8", + "comment": "{{ref.getGlyph('[b]')}}es1 überschreibt {{ref.getGlyph('[#]')}}dis1." + }, + { + "measure": "13
bis 14", + "system": "Ges.", + "position": "2. Note
1/8", + "comment": "Auf Rasur." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "2.–3. Note", + "comment": "Auf Rasur." + }, + { + "measure": "15", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "3. Note als punktierte Achtelnote auf Rasur, 4. Note uneindeutig mit Achtel- oder Sechzehntelfähnchen. Siehe Korrekturen 2 und TkA." + } + ] + } + ] + }, + { + "id": "source_Bc_corr2", + "label": "Korrekturen 2 in Bc (mit Bleistift)", + "description": ["Die Beschreibung der Korrekturen bezieht sich auf „So ich traurig bin“ M 141: Textfassung 1."], + "comments": [ + { + "blockHeader": "", + "blockComments": [ + { + "measure": "4", + "system": "", + "position": "nach 4/16, vor 3/8", + "comment": "Gestrichelter Taktstrich hinzugefügt. Siehe Textfassung 2 T. 4–5." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "(2/4)", + "comment": "Korrekturskizze zu Textfassung 2 (T. 5)." + }, + { + "measure": "15", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Punktierung der 1. Note sowie Balkierung der 1. Note und 3. Note mit der 2. Note und der 4. Note jeweils als Sechzehntelnote hinzugefügt. Siehe Korrekturen 1 und TkA." + } + ] + } + ] + } ] } }, From 75f9e80be6df5165da9057ce60c986eb09664e53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:15:57 +0000 Subject: [PATCH 167/213] build(deps-dev): bump the angular-eslint group with 5 updates Bumps the angular-eslint group with 5 updates: | Package | From | To | | --- | --- | --- | | [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `18.3.1` | `18.4.0` | | [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `18.3.1` | `18.4.0` | | [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `18.3.1` | `18.4.0` | | [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `18.3.1` | `18.4.0` | | [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `18.3.1` | `18.4.0` | Updates `@angular-eslint/builder` from 18.3.1 to 18.4.0 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/builder) Updates `@angular-eslint/eslint-plugin` from 18.3.1 to 18.4.0 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/eslint-plugin) Updates `@angular-eslint/eslint-plugin-template` from 18.3.1 to 18.4.0 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/eslint-plugin-template) Updates `@angular-eslint/schematics` from 18.3.1 to 18.4.0 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/schematics) Updates `@angular-eslint/template-parser` from 18.3.1 to 18.4.0 - [Release notes](https://github.com/angular-eslint/angular-eslint/releases) - [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md) - [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/template-parser) --- updated-dependencies: - dependency-name: "@angular-eslint/builder" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-eslint - dependency-name: "@angular-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-eslint - dependency-name: "@angular-eslint/eslint-plugin-template" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-eslint - dependency-name: "@angular-eslint/schematics" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-eslint - dependency-name: "@angular-eslint/template-parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: angular-eslint ... Signed-off-by: dependabot[bot] --- package.json | 10 ++--- yarn.lock | 102 ++++++++++++++++++++++++--------------------------- 2 files changed, 52 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index a55670cd00..c0a7b78d10 100644 --- a/package.json +++ b/package.json @@ -119,11 +119,11 @@ }, "devDependencies": { "@angular-devkit/build-angular": "^18.2.9", - "@angular-eslint/builder": "^18.3.1", - "@angular-eslint/eslint-plugin": "^18.3.1", - "@angular-eslint/eslint-plugin-template": "^18.3.1", - "@angular-eslint/schematics": "^18.3.1", - "@angular-eslint/template-parser": "^18.3.1", + "@angular-eslint/builder": "^18.4.0", + "@angular-eslint/eslint-plugin": "^18.4.0", + "@angular-eslint/eslint-plugin-template": "^18.4.0", + "@angular-eslint/schematics": "^18.4.0", + "@angular-eslint/template-parser": "^18.4.0", "@angular/cli": "^18.2.9", "@angular/compiler-cli": "^18.2.8", "@commitlint/cli": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 20f521587f..7c5f41e88b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -295,92 +295,93 @@ __metadata: languageName: node linkType: hard -"@angular-eslint/builder@npm:^18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/builder@npm:18.3.1" +"@angular-eslint/builder@npm:^18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/builder@npm:18.4.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/26202232826e05d04849611733fed9c53cdf6c97bc1235a3b1cbd8eba3c6d09da0b28e6813780e8f726037f2ecacbc2bc722afe62e3a3a192b20848413a11c1d + checksum: 10c0/90ce4d9f560bfe5ce2f2acc56f75e100ff1776f38791115d5e98182ceccd42b95ce12b5278135d5f94d219306c9afab669d8355af1830e958e47b83e829eff68 languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/bundled-angular-compiler@npm:18.3.1" - checksum: 10c0/8808ca1927cd95f5aae8471d0d16c69f34bb411232cf8a53a1b585255dae9b460fd7bea17d1b1fdc2ea05971a79b860446ee62436d479d16b8a37241caa8b655 +"@angular-eslint/bundled-angular-compiler@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/bundled-angular-compiler@npm:18.4.0" + checksum: 10c0/279ceeb5b5efc936c11722f374a11dae99cb23939f2fe6f7fdcfb8a8dd847aef2ba35ae42e36139970c7b95b27b103ea171ae2f48c1bfca3798f10d812a555c3 languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:18.3.1, @angular-eslint/eslint-plugin-template@npm:^18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/eslint-plugin-template@npm:18.3.1" +"@angular-eslint/eslint-plugin-template@npm:18.4.0, @angular-eslint/eslint-plugin-template@npm:^18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/eslint-plugin-template@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" - "@angular-eslint/utils": "npm:18.3.1" - aria-query: "npm:5.3.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" + "@angular-eslint/utils": "npm:18.4.0" + aria-query: "npm:5.3.2" axobject-query: "npm:4.1.0" peerDependencies: + "@typescript-eslint/types": ^7.11.0 || ^8.0.0 "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/43cbdbb42c5dd99d9c54fc94f1603c57d72c60d33d1c1efc45de3cd0b11f29a206ad7035f329d4ee93c14957c3e32f854faa09b9c11004107e4630e53fdabf8a + checksum: 10c0/e720584f3d7acb58bb981307b686df5aa282612b0fbaf44db0c585367b41e9ed70c6780fa299b1f15bcdf9795157b6950e3feac586217631e3307ef37e56dc57 languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:18.3.1, @angular-eslint/eslint-plugin@npm:^18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/eslint-plugin@npm:18.3.1" +"@angular-eslint/eslint-plugin@npm:18.4.0, @angular-eslint/eslint-plugin@npm:^18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/eslint-plugin@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" - "@angular-eslint/utils": "npm:18.3.1" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" + "@angular-eslint/utils": "npm:18.4.0" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/5959d515e5eb206127c137db8b247c4e1416fe755c0e1460e611cdfd37938081ecdd7417bcdf2bf519b447d0724f9ca1e596a76b4fadbbf4f8dff1153c8a771f + checksum: 10c0/222601bf5f0bd6d921573fd6b9232c27f34234a0071b686865cd1f7b0c636efe91aa5102515f67b30707b6c31fcda70939d894a707e74a6aba0e55a2c5cfa879 languageName: node linkType: hard -"@angular-eslint/schematics@npm:^18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/schematics@npm:18.3.1" +"@angular-eslint/schematics@npm:^18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/schematics@npm:18.4.0" dependencies: - "@angular-eslint/eslint-plugin": "npm:18.3.1" - "@angular-eslint/eslint-plugin-template": "npm:18.3.1" + "@angular-eslint/eslint-plugin": "npm:18.4.0" + "@angular-eslint/eslint-plugin-template": "npm:18.4.0" ignore: "npm:5.3.2" semver: "npm:7.6.3" strip-json-comments: "npm:3.1.1" peerDependencies: "@angular-devkit/core": ">= 18.0.0 < 19.0.0" "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" - checksum: 10c0/0083120df5993a3adbd8b19817c9d1e0ade95245292d47be97e0ef3c0eec1f4dd2bcde6e080597127bc1875236d93774a6fa0134a0f23edd74b074c78325ba03 + checksum: 10c0/85fe9ea1d22d5dd5cd296a002ab48b8d74cb19d75e2a32e27e8b45a02625017306367a9b4d21214800e480cedc3caca48f267fc87160c4a4a05328f94dede6a7 languageName: node linkType: hard -"@angular-eslint/template-parser@npm:^18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/template-parser@npm:18.3.1" +"@angular-eslint/template-parser@npm:^18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/template-parser@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" eslint-scope: "npm:^8.0.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/a109cae442bc115b0fc2d4a40402f02e75497945a5f827422143d20ed3957b3f165920c380a2731758cb23f71de31cac53fc7e2597eba6c674cf87200a2238d2 + checksum: 10c0/b40196cb12a8c2e875f4a5cb638afd927fd7a98fd0d80d65d53bddac8659fc990692ce81c699f8deae4775abda7144035c7ffe276b19c5e61ad849aa2936c83b languageName: node linkType: hard -"@angular-eslint/utils@npm:18.3.1": - version: 18.3.1 - resolution: "@angular-eslint/utils@npm:18.3.1" +"@angular-eslint/utils@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/utils@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" peerDependencies: "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/c0d1b7e78736957c5555bd389fb81674e7d15d21b07457c2a669d12b26b9c499cb2bbbfc6575c2d173ad18187ff151f97962d46182bd5df8fc11168672a29266 + checksum: 10c0/d6b7ad894cf9cbeda7999f8c21c13bf85fce2d0a8bbc5c38b62b8f555ae34c069956665e9cd6739bd8161fd1050445e9351098900120c9a8309dcaa4e3270a3f languageName: node linkType: hard @@ -6508,12 +6509,10 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.3.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: "npm:^2.0.3" - checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 +"aria-query@npm:5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e languageName: node linkType: hard @@ -6694,11 +6693,11 @@ __metadata: resolution: "awg-app@workspace:." dependencies: "@angular-devkit/build-angular": "npm:^18.2.9" - "@angular-eslint/builder": "npm:^18.3.1" - "@angular-eslint/eslint-plugin": "npm:^18.3.1" - "@angular-eslint/eslint-plugin-template": "npm:^18.3.1" - "@angular-eslint/schematics": "npm:^18.3.1" - "@angular-eslint/template-parser": "npm:^18.3.1" + "@angular-eslint/builder": "npm:^18.4.0" + "@angular-eslint/eslint-plugin": "npm:^18.4.0" + "@angular-eslint/eslint-plugin-template": "npm:^18.4.0" + "@angular-eslint/schematics": "npm:^18.4.0" + "@angular-eslint/template-parser": "npm:^18.4.0" "@angular/animations": "npm:^18.2.8" "@angular/cli": "npm:^18.2.9" "@angular/common": "npm:^18.2.8" @@ -8619,13 +8618,6 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 - languageName: node - linkType: hard - "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" From 39b042ed329fc96747a76eb8f9be041eeefc5f66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:46:32 +0000 Subject: [PATCH 168/213] build(deps-dev): bump the typescript-eslint group with 2 updates Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.10.0 to 8.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.11.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.10.0 to 8.11.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.11.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 9a721aeef8..222606a68b 100644 --- a/package.json +++ b/package.json @@ -133,8 +133,8 @@ "@types/d3": "^7.4.3", "@types/jasmine": "~5.1.4", "@types/node": "^20.14.14", - "@typescript-eslint/eslint-plugin": "^8.10.0", - "@typescript-eslint/parser": "^8.10.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "angular-cli-ghpages": "^2.0.1", "commit-and-tag-version": "^12.5.0", "conventional-recommended-bump": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index b13bb89f5b..018c88f28e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5762,15 +5762,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.10.0" +"@typescript-eslint/eslint-plugin@npm:^8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.11.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/type-utils": "npm:8.10.0" - "@typescript-eslint/utils": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/type-utils": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5781,25 +5781,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/4b77ba9c865a2a14e238cd330b5901f0274b8ce1c13324fccd0339b8eea82a50a4709394c903fd8cd5bd0d3aebace0761ff9a4a19fa20b00bb61349b7671c035 + checksum: 10c0/be509f7bb0c0c596801059b06995a81a1c326cc6ac31d96a32f7b6b7d7b495f9bad4dc442aa6e923d22515e62c668d3c14695c68bd6e0be1d4bf72158b7fd2d6 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/parser@npm:8.10.0" +"@typescript-eslint/parser@npm:^8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/parser@npm:8.11.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/typescript-estree": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7becb2457c085c239838d301796074b790f46dd38c9fbc14ec1dec8e993c7115cd8a66cdc07983c3a68a2dd92e24e8acc49d69a4ebcc29e9869957eb52d1cb74 + checksum: 10c0/e83f239fec60697083e5dcb1c8948340e783ea6e043fe9a65d557faef8882963b09d69aacd736eb8ab18a768769a7bbfc3de0f1251d4bba080613541acb0741c languageName: node linkType: hard @@ -5813,28 +5813,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/scope-manager@npm:8.10.0" +"@typescript-eslint/scope-manager@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/scope-manager@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" - checksum: 10c0/b8bb8635c4d6c00a3578d6265e3ee0f5d96d0c9dee534ed588aa411c3f4497fd71cce730c3ae7571e52453d955b191bc9edcc47c9af21a20c90e9a20f2371108 + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" + checksum: 10c0/0910da62d8ae261711dd9f89d5c7d8e96ff13c50054436256e5a661309229cb49e3b8189c9468d36b6c4d3f7cddd121519ea78f9b18c9b869a808834b079b2ea languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/type-utils@npm:8.10.0" +"@typescript-eslint/type-utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/type-utils@npm:8.11.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.10.0" - "@typescript-eslint/utils": "npm:8.10.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/1af8fce8394279e6ac7bcef449a132072ee36e374c8d557564246ffe7150230844901ca0305e29525bf37c87010e03bf8bedec76fccbfe1e41931cb4f274e208 + checksum: 10c0/b69e31c1599ceeb20c29052a4ddb33a554174a3a4c55ee37d90c9b8250af6ef978a0b9ddbeefef4e83d62c4caea1bfa2d8088527f397bde69fb4ab9b360d794a languageName: node linkType: hard @@ -5845,10 +5845,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/types@npm:8.10.0" - checksum: 10c0/f27dd43c8383e02e914a254257627e393dfc0f08b0f74a253c106813ae361f090271b2f3f2ef588fa3ca1329897d873da595bb5641fe8e3091b25eddca24b5d2 +"@typescript-eslint/types@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/types@npm:8.11.0" + checksum: 10c0/5ccdd3eeee077a6fc8e7f4bc0e0cbc9327b1205a845253ec5c0c6c49ff915e853161df00c24a0ffb4b8ec745d3f153dd0e066400a021c844c026e31121f46699 languageName: node linkType: hard @@ -5871,12 +5871,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.10.0" +"@typescript-eslint/typescript-estree@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/visitor-keys": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -5886,21 +5886,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/535a740fe25be0e28fe68c41e3264273d1e5169c9f938e08cc0e3415c357726f43efa44621960108c318fc3305c425d29f3223b6e731d44d67f84058a8947304 + checksum: 10c0/b629ad3cd32b005d5c1d67c36958a418f8672efebea869399834f4f201ebf90b942165eebb5c9d9799dcabdc2cc26e5fabb00629f76b158847f42e1a491a75a6 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/utils@npm:8.10.0" +"@typescript-eslint/utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/utils@npm:8.11.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.10.0" - "@typescript-eslint/types": "npm:8.10.0" - "@typescript-eslint/typescript-estree": "npm:8.10.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/a21a2933517176abd00fcd5d8d80023e35dc3d89d5746bbac43790b4e984ab1f371117db08048bce7f42d54c64f4e0e35161149f8f34fd25a27bff9d1110fd16 + checksum: 10c0/bb5bcc8d928a55b22298e76f834ea6a9fe125a9ffeb6ac23bee0258b3ed32f41e281888a3d0be226a05e1011bb3b70e42a71a40366acdefea6779131c46bc522 languageName: node linkType: hard @@ -5928,13 +5928,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.10.0": - version: 8.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.10.0" +"@typescript-eslint/visitor-keys@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.10.0" + "@typescript-eslint/types": "npm:8.11.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/14721c4ac939640d5fd1ee1b6eeb07604b11a6017e319e21dcc71e7aac2992341fc7ae1992d977bad4433b6a1d0d1c0c279e6927316b26245f6e333f922fa458 + checksum: 10c0/7a5a49609fdc47e114fe59eee56393c90b122ec8e9520f90b0c5e189635ae1ccfa8e00108f641342c2c8f4637fe9d40c77927cf7c8248a3a660812cb4b7d0c08 languageName: node linkType: hard @@ -6732,8 +6732,8 @@ __metadata: "@types/d3": "npm:^7.4.3" "@types/jasmine": "npm:~5.1.4" "@types/node": "npm:^20.14.14" - "@typescript-eslint/eslint-plugin": "npm:^8.10.0" - "@typescript-eslint/parser": "npm:^8.10.0" + "@typescript-eslint/eslint-plugin": "npm:^8.11.0" + "@typescript-eslint/parser": "npm:^8.11.0" angular-cli-ghpages: "npm:^2.0.1" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" From 861f203f04ae6cbed959314429228653510a1a09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:44:43 +0000 Subject: [PATCH 169/213] build(deps): bump actions/dependency-review-action from 4.3.4 to 4.3.5 Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.4 to 4.3.5. - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/5a2ce3f5b92ee19cbb1541a4984c76d921601d7c...a6993e2c61fd5dc440b409aa1d6904921c5e1894) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/dependency-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 7b0990bcf5..0a1a8ef2a2 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -24,4 +24,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: 'Dependency Review' - uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4 + uses: actions/dependency-review-action@a6993e2c61fd5dc440b409aa1d6904921c5e1894 # v4.3.5 From 40af3b32b0969f898c93062eee5fe1df6fda74dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:59:26 +0000 Subject: [PATCH 170/213] build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.13 to 3.27.0. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/f779452ac5af1c261dce0346a8f964149f49322b...662472033e021d55d94146f66f6058822b0b39fd) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 6 +++--- .github/workflows/scorecards.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0ea0917315..fa7e8586f0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,13 +36,13 @@ jobs: fetch-depth: 2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 + uses: github/codeql-action/init@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 with: languages: ${{ matrix.language }} # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 + uses: github/codeql-action/autobuild@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 + uses: github/codeql-action/analyze@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 with: category: '/language:${{matrix.language}}' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 31a2ab9181..80a3fd0a98 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@f779452ac5af1c261dce0346a8f964149f49322b # v3.26.13 + uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 with: sarif_file: results.sarif From 90a053082ff300aa4706d676f0eac8db1634e51c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:26:56 +0000 Subject: [PATCH 171/213] build(deps): bump actions/checkout from 4.2.1 to 4.2.2 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871...11bd71901bbe5b1630ceea73d27597364c9af683) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 6 +++--- .github/workflows/codeql.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/visualize-repo.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 89557680c3..29aec9f5e1 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -44,7 +44,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 # Get all history and branches @@ -141,7 +141,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: # ref (branch, tag or SHA) to check out ref: ${{ env.DEV_GH_PAGES_BRANCH }} @@ -213,7 +213,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up node ${{ matrix.node-version}} uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index fa7e8586f0..4332f7df72 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,7 +31,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 2 # Initializes the CodeQL tools for scanning. diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 0a1a8ef2a2..08871d943b 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -22,6 +22,6 @@ jobs: egress-policy: audit - name: 'Checkout Repository' - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: 'Dependency Review' uses: actions/dependency-review-action@a6993e2c61fd5dc440b409aa1d6904921c5e1894 # v4.3.5 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 80a3fd0a98..a88b1673d6 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -36,7 +36,7 @@ jobs: egress-policy: audit - name: "Checkout code" - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false diff --git a/.github/workflows/visualize-repo.yml b/.github/workflows/visualize-repo.yml index 2934846568..b0fca8258e 100644 --- a/.github/workflows/visualize-repo.yml +++ b/.github/workflows/visualize-repo.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: develop token: ${{ secrets.REPO_TOKEN }} From c0c965b24bf7bd93296d142f18000953af5bb678 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:13:54 +0000 Subject: [PATCH 172/213] build(deps-dev): bump angular-cli-ghpages from 2.0.1 to 2.0.3 Bumps [angular-cli-ghpages](https://github.com/angular-schule/angular-cli-ghpages) from 2.0.1 to 2.0.3. - [Release notes](https://github.com/angular-schule/angular-cli-ghpages/releases) - [Commits](https://github.com/angular-schule/angular-cli-ghpages/compare/v2.0.1...v2.0.3) --- updated-dependencies: - dependency-name: angular-cli-ghpages dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 222606a68b..508ddadbb9 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "@types/node": "^20.14.14", "@typescript-eslint/eslint-plugin": "^8.11.0", "@typescript-eslint/parser": "^8.11.0", - "angular-cli-ghpages": "^2.0.1", + "angular-cli-ghpages": "^2.0.3", "commit-and-tag-version": "^12.5.0", "conventional-recommended-bump": "^10.0.0", "eslint": "^8.57.0", diff --git a/yarn.lock b/yarn.lock index 018c88f28e..4861ed8b9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6371,9 +6371,9 @@ __metadata: languageName: node linkType: hard -"angular-cli-ghpages@npm:^2.0.1": - version: 2.0.1 - resolution: "angular-cli-ghpages@npm:2.0.1" +"angular-cli-ghpages@npm:^2.0.3": + version: 2.0.3 + resolution: "angular-cli-ghpages@npm:2.0.3" dependencies: "@angular-devkit/architect": "npm:~0.1800.0" "@angular-devkit/core": "npm:^18.0.0" @@ -6384,7 +6384,7 @@ __metadata: bin: angular-cli-ghpages: angular-cli-ghpages ngh: angular-cli-ghpages - checksum: 10c0/4843c9aa71cc7a6ff5bb11546620d365369d78a92f2df08ed13c9931b263f10598fd7e6626c0e49514aad18641776a32a3599681eaaf81aaefb0ca95bfc04388 + checksum: 10c0/4009fe7ace1050263aec6697c432986e1db43cda251a89a6e0a0496d49a1b5414de51d8108069fc1faaea4f8bbd27ad58b2207ae33e584c2a45a183715ddab8e languageName: node linkType: hard @@ -6734,7 +6734,7 @@ __metadata: "@types/node": "npm:^20.14.14" "@typescript-eslint/eslint-plugin": "npm:^8.11.0" "@typescript-eslint/parser": "npm:^8.11.0" - angular-cli-ghpages: "npm:^2.0.1" + angular-cli-ghpages: "npm:^2.0.3" bootstrap: "npm:^5.3.3" codemirror: "npm:^6.0.1" commit-and-tag-version: "npm:^12.5.0" From c73d9df536fa6485f1714b4ea5fa7cb53bd36c25 Mon Sep 17 00:00:00 2001 From: Thomas <53256309+masthom@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:46:36 +0200 Subject: [PATCH 173/213] feat(assets): add corrections in Op4: I MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add corrections in Op4: I * Update source-description.json --------- Co-authored-by: Stefan Münnich --- .../1/section/5/op4/source-description.json | 390 ++++++++++++++++++ 1 file changed, 390 insertions(+) diff --git a/src/assets/data/edition/series/1/section/5/op4/source-description.json b/src/assets/data/edition/series/1/section/5/op4/source-description.json index dde1dfadc9..53250acdc3 100644 --- a/src/assets/data/edition/series/1/section/5/op4/source-description.json +++ b/src/assets/data/edition/series/1/section/5/op4/source-description.json @@ -3486,6 +3486,396 @@ } ] } + ], + "corrections": [ + { + "id": "source_I_corr", + "label": "Korrekturen in I", + "description": [ + "Die Beschreibung der Korrekturen bezieht sich auf die Textfassungen der Werkedition von Fünf Lieder nach Gedichten von Stefan George op. 4" + ], + "comments": [ + { + "blockHeader": "I Eingang („Welt der Gestalten“) M 138: Textfassung 3", + "blockComments": [ + { + "measure": "1", + "system": "", + "position": "Taktanfang", + "comment": "Ruhevoll ({{ref.getGlyph('[Achtelnote]')}} = ca 58 <58>), 58 gestrichen mit Bleistift, <58> hinzugefügt mit schwarzer Tinte (Hs. Webern?)." + }, + { + "measure": "1–13", + "system": "Ges.", + "position": "", + "comment": "Auf zahlreichen Rasuren. Ante correcturam: u. a. in der Regel Fähnchen bei Achtelnoten (wie Textfassung 2)." + }, + { + "measure": "1–15", + "system": "Klav.", + "position": "", + "comment": "Auf zahlreichen Rasuren." + }, + { + "measure": "2", + "system": "Klav. o.", + "position": "8/8", + "comment": "{{ref.getGlyph('[a]')}} zu h1 gestrichen mit Bleistift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "2/8", + "comment": "{{ref.getGlyph('[b]')}} geändert zu {{ref.getGlyph('[a]')}} mit Bleistift, {{ref.getGlyph('[a]')}} nachgezogen mit rotem Buntstift." + }, + { + "measure": "3", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "weis-ser überschrieben zu weißer mit blauem Buntstift." + }, + { + "measure": "3", + "system": "Klav. u.", + "position": "1. Pause", + "comment": "Auf Rasur, etwas unleserlich durch Papierbeschädigung bei Rasur. Daneben × und am linken Seitenrand Halbe Pause mit rotem Buntstift." + }, + { + "measure": "4", + "system": "Klav. o.", + "position": "7/4", + "comment": "{{ref.getGlyph('[b]')}} zu es2 gestrichen mit Bleistift." + }, + { + "measure": "6", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} im System zu Klav. o. gestrichen und zwischen den Klav.-Systemen neu notiert mit schwarzer Tinte." + }, + { + "measure": "6", + "system": "Ges.", + "position": "vorletzte bis letzte Note", + "comment": "Silbentrennstrich bei [mar[-]]mor-nen hinzugefügt mit blauem Buntstift." + }, + { + "measure": "7", + "system": "Klav. o.", + "position": "9–12/16", + "comment": "Auf Tektur." + }, + { + "measure": "8", + "system": "Klav. u.", + "position": "1/8", + "comment": "Fortsetzung des Bogens von T. 7 Klav. o. (nach Seitenwechsel) hinzugefügt mit Bleistift." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "6/8", + "comment": "{{ref.getGlyph('[b]')}} zu e1 geändert zu {{ref.getGlyph('[a]')}} mit Bleistift." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "12/8", + "comment": "molto espress. zwischen 7. und 8. Note gestrichen und neu notiert bei 12/8 mit schwarzer Tinte." + }, + { + "measure": "11", + "system": "Ges.", + "position": "6/4", + "comment": "{{ref.getGlyph('[pp]')}} bei 13/8 gestrichen und neu notiert bei 6/4 mit schwarzer Tinte." + }, + { + "measure": "11
bis 12", + "system": "Ges.", + "position": "13/8
2/8", + "comment": "Decrescendogabel T. 11 13/8 bis T. 12 1/8 über dem System gestrichen mit Bleistift. Decrescendogabel T. 13/8 bis T. 12 2/8 unter dem System möglicherweise dann hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "14", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Unterstimmenschicht: Fortsetzung (nach Seitenwechsel) eines Ligaturbogens zu fis hinzugefügt mit Bleistift. T. 13: Anfang nur eines Bogens (Ligatur- oder Legatobogen?)." + } + ] + }, + { + "blockHeader": "II „Noch zwingt mich Treue“ M 139: Textfassung 3", + "blockComments": [ + { + "measure": "4", + "system": "Ges.", + "position": "1/8", + "comment": "({{ref.getGlyph('[a]')}}) gestrichen mit Bleistift." + }, + { + "measure": "5", + "system": "Klav. o.", + "position": "1.–4. Note", + "comment": "Crescendo-, Decrescendogabel auf Rasur." + }, + { + "measure": "5", + "system": "Ges.", + "position": "6/8", + "comment": "Mein geändert zu mein mit Bleistift." + }, + { + "measure": "7", + "system": "Klav.", + "position": "2/8", + "comment": "Pedal-Aufhebung bei 1/4 gestrichen mit Bleistift und neu notiert bei 2/8 mit schwarzer Tinte." + }, + { + "measure": "9", + "system": "Klav. u.", + "position": "4.–5. Note", + "comment": "Ligaturbogen zu G–G hinzugefügt mit Bleistift." + }, + { + "measure": "10", + "system": "Klav. o.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[p]')}} überschreibt Anfang der Crescendogabel, vermutlich hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "10
bis 11", + "system": "Ges.", + "position": "letzte Note
1/4", + "comment": "Silbenlängenstrich hinzugefügt mit blauem Buntstift." + }, + { + "measure": "11", + "system": "Klav. o.", + "position": "6/8", + "comment": "{{ref.getGlyph('[a]')}} überschreibt {{ref.getGlyph('[a]')}}." + }, + { + "measure": "12", + "system": "Ges.", + "position": "1–2/8", + "comment": "Silbentrennstrich von An-ruf hinzugefügt mit blauem Buntstift." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4–5/8", + "comment": "Silbentrennung von em-pfan[-gen] geändert zu emp-fan[-gen] mit blauem Buntstift." + }, + { + "measure": "12", + "system": "Klav.", + "position": "letzte Note", + "comment": "Ende des Bogens über den Takt hinaus (vor Seitenwechsel) gestrichen und neu notiert bis letzte Note mit schwarzer Tinte." + }, + { + "measure": "13", + "system": "Ges.", + "position": "1.–4. Note", + "comment": "Crescendogabel auf Rasur." + }, + { + "measure": "13", + "system": "Klav.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[f]')}} bei 1. Pause gestrichen und neu notiert bei 1. Note mit schwaruer Tinte." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "6/16", + "comment": "{{ref.getGlyph('[b]')}} zu des3 überschreibt {{ref.getGlyph('[a]')}}, {{ref.getGlyph('[a]')}} zu a2 überschreibt {{ref.getGlyph('[b]')}} mit schwarzer Tinte." + }, + { + "measure": "18", + "system": "Klav.", + "position": "", + "comment": "Crescendogabel in Klav. o über dem System und in Klav. u. unter dem System gestrichen mit Bleistift, Gabel zwischen den Systemen vermutlich hinzugefügt mit schwarzer Tinte." + }, + { + "measure": "19", + "system": "Klav.", + "position": "1/4", + "comment": "Decrescendogabel in Klav. o über dem System und in Klav. u. unter dem System gestrichen mit Bleistift, Gabel zwischen den Systemen vermutlich hinzugefügt mit schwarzer Tinte." + } + ] + }, + { + "blockHeader": "III „Ja Heil und Dank dir“ M 140: Textfassung 2", + "blockComments": [ + { + "measure": "vor 1", + "system": "Ges.", + "position": "1. Note", + "comment": "{{ref.getGlyph('[pp]')}} hinzugefügt mit Bleistift." + }, + { + "measure": "1", + "system": "Ges.", + "position": "letzte Note", + "comment": "Schließende Gabel von < > gestrichen mit Bleistift." + }, + { + "measure": "3", + "system": "Klav. o.", + "position": "5.–6. Note", + "comment": "Augmentationspunkt zu 5. Note und Sechzehntelbalken zu 6. Note hinzugefügt mit Bleistift." + }, + { + "measure": "6", + "system": "", + "position": "Taktanfang", + "comment": "rückkehrend auf Rasur." + }, + { + "measure": "6", + "system": "Ges.", + "position": "1. Pause bis 6/8", + "comment": "Decrescendogabel über dem System gestrichen mit Bleistift." + }, + { + "measure": "6", + "system": "Ges.", + "position": "3. Note", + "comment": "Notenhals auf Rasur, nachgezogen mit blauem Buntstift." + }, + { + "measure": "8", + "system": "Klav. o.", + "position": "15/16", + "comment": "Violinschlüssel nach 15/16 hinzugefügt mit grünem Buntstift." + }, + { + "measure": "11", + "system": "Ges.", + "position": "1/8", + "comment": "Achtelnote überschreibt Achtelpause mit schwarzer Tinte." + }, + { + "measure": "11", + "system": "Klav. u.", + "position": "5–6/8", + "comment": "Bogenansatz unter den Noten gestrichen und über den Noten neu notiert mit schwarzer Tinte." + }, + { + "measure": "12", + "system": "Ges.", + "position": "4/8", + "comment": "{{ref.getGlyph('[a]')}} gestrichen und geändert zu {{ref.getGlyph('[b]')}} mit Bleistift." + }, + { + "measure": "12", + "system": "Klav. u.", + "position": "2/2", + "comment": "Halbe Pause hinzugefügt mit Bleistift." + } + ] + }, + { + "blockHeader": "IV „So ich traurig bin“ M 141: Textfassung 2", + "blockComments": [ + { + "measure": "1–15", + "system": "Ges.", + "position": "", + "comment": "Auf zahlreichen Rasuren. Ante correcturam: Fähnchen bei Achtelnoten (wie Textfassung 1)." + }, + { + "measure": "1", + "system": "Klav. o.", + "position": "1. Note", + "comment": "Unterstimmenschicht: {{ref.getGlyph('[ppp]')}} gestrichen mit Bleistift." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "", + "comment": "Nach unten orientierter Notenhals zu Gis gestrichen mit Bleistift." + }, + { + "measure": "4", + "system": "Klav. u.", + "position": "2/8", + "comment": "Achtelpause hinzugefügt mit Bleistift." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "3/16 bzw. 2/8", + "comment": "Sechzehntelpause in Oberstimmenschicht und Achtelpause in Unterstimmenschicht überschreiben eine Sechzehntelpause mit grünem Buntstift." + }, + { + "measure": "6", + "system": "Klav. o.", + "position": "6/16", + "comment": "{{ref.getGlyph('[a]')}} überschreibt {{ref.getGlyph('[b]')}} mit Bleistift." + }, + { + "measure": "7", + "system": "Klav.", + "position": "", + "comment": "Rasur zwischen den Systemen. Ante correcturam: vermutlich Crescendogabel (siehe Textfassung 1)." + } + ] + }, + { + "blockHeader": "V „Ihr tratet zu dem Herde“ M 142: Textfassung 3", + "blockComments": [ + { + "measure": "1–15", + "system": "Ges.", + "position": "", + "comment": "Auf zahlreichen Rasuren. Ante correcturam: Fähnchen bei Achtelnoten (wie Textfassung 1 und 2)." + }, + { + "measure": "1", + "system": "Klav. u.", + "position": "3. Note", + "comment": "{{ref.getGlyph('[ppp]')}} unter dem System gestrichen. ##zwischen den Systemen neu notiert? siehe nächste Korrektur##" + }, + { + "measure": "1
bis 5", + "system": "Klav.", + "position": "1. Pause
(3/4)", + "comment": "sic: rechte Hand als Oberstimmenschicht in Klav. u. notiert. Markierung und Anmerkung × Anmerkung für | den Stecher: | rechte Hand ins obere | System (Baßschlüssel) am rechten Seitenrand sowie Bassschlüssel in Klav. o. T. 1 vor 1. Pause sowie Violinschlüssel in Klav. o. T. 5 vor 2. Pause hinzugefügt mit rotem Buntstift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "1.–2. Note", + "comment": "Silbentrennstrich bei Su-chen hinzugefügt mit blauem Buntstift." + }, + { + "measure": "9", + "system": "Ges.", + "position": "3.–4. Note", + "comment": "Silbentrennstrich bei Ta-sten hinzugefügt mit blauem Buntstift." + }, + { + "measure": "10", + "system": "Klav.", + "position": "2.–3. Note", + "comment": "Decrescendogabel unter Klav. u. gestrichen und zwischen den Systemen neu notiert mit schwarzer Tinte." + }, + { + "measure": "12", + "system": "Klav. o.", + "position": "2/4–5/8", + "comment": "Decrescendogabel im System gestrichen und über dem System neu notiert mit schwarzer Tinte." + }, + { + "measure": "13", + "system": "Klav. o.", + "position": "4. Note", + "comment": "Oberstimmenschicht: Viertelnote überschreibt Achtelnote mit Bleistift." + } + ] + } + ] + } ] } }, From 60915dfdcf7f5f17746fd9cdb59cf18531285214 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:16:09 +0000 Subject: [PATCH 174/213] build(deps-dev): bump the angular-cli-devkit group with 2 updates Bumps the angular-cli-devkit group with 2 updates: [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli). Updates `@angular-devkit/build-angular` from 18.2.9 to 18.2.10 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.9...18.2.10) Updates `@angular/cli` from 18.2.9 to 18.2.10 - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/18.2.9...18.2.10) --- updated-dependencies: - dependency-name: "@angular-devkit/build-angular" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular-cli-devkit ... Signed-off-by: dependabot[bot] --- package.json | 4 +- yarn.lock | 164 ++++++++++++++++++++++++++++----------------------- 2 files changed, 92 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index 508ddadbb9..c7c9cfb92d 100644 --- a/package.json +++ b/package.json @@ -119,13 +119,13 @@ "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.2.9", + "@angular-devkit/build-angular": "^18.2.10", "@angular-eslint/builder": "^18.4.0", "@angular-eslint/eslint-plugin": "^18.4.0", "@angular-eslint/eslint-plugin-template": "^18.4.0", "@angular-eslint/schematics": "^18.4.0", "@angular-eslint/template-parser": "^18.4.0", - "@angular/cli": "^18.2.9", + "@angular/cli": "^18.2.10", "@angular/compiler-cli": "^18.2.8", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", diff --git a/yarn.lock b/yarn.lock index 4861ed8b9f..5bc24cd299 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1802.9": - version: 0.1802.9 - resolution: "@angular-devkit/architect@npm:0.1802.9" +"@angular-devkit/architect@npm:0.1802.10": + version: 0.1802.10 + resolution: "@angular-devkit/architect@npm:0.1802.10" dependencies: - "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/core": "npm:18.2.10" rxjs: "npm:7.8.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/3dad5c84ef020fea542eb2113bef03767abc6d1627e314f018c7d3cbe8794c2a19de8be2f73a417e64fe17dbca37518bd0abbe070d68c57abcc7761a77291ebf + checksum: 10c0/dc7b4fa6e48b2831459a6d9d9c09cfc2780a794299781436c1793b9b230b549d5a898e408a13ff6dbba5a1d72eaeadefa5b1f2a9aa3f7ca43f8033e5cda14351 languageName: node linkType: hard @@ -47,15 +47,15 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^18.2.9": - version: 18.2.9 - resolution: "@angular-devkit/build-angular@npm:18.2.9" +"@angular-devkit/build-angular@npm:^18.2.10": + version: 18.2.10 + resolution: "@angular-devkit/build-angular@npm:18.2.10" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.9" - "@angular-devkit/build-webpack": "npm:0.1802.9" - "@angular-devkit/core": "npm:18.2.9" - "@angular/build": "npm:18.2.9" + "@angular-devkit/architect": "npm:0.1802.10" + "@angular-devkit/build-webpack": "npm:0.1802.10" + "@angular-devkit/core": "npm:18.2.10" + "@angular/build": "npm:18.2.10" "@babel/core": "npm:7.25.2" "@babel/generator": "npm:7.25.0" "@babel/helper-annotate-as-pure": "npm:7.24.7" @@ -66,7 +66,7 @@ __metadata: "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" "@discoveryjs/json-ext": "npm:0.6.1" - "@ngtools/webpack": "npm:18.2.9" + "@ngtools/webpack": "npm:18.2.10" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" autoprefixer: "npm:10.4.20" @@ -78,7 +78,7 @@ __metadata: esbuild: "npm:0.23.0" esbuild-wasm: "npm:0.23.0" fast-glob: "npm:3.3.2" - http-proxy-middleware: "npm:3.0.0" + http-proxy-middleware: "npm:3.0.3" https-proxy-agent: "npm:7.0.5" istanbul-lib-instrument: "npm:6.0.3" jsonc-parser: "npm:3.3.1" @@ -157,15 +157,15 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/824b1277fbf048b7088f5c589ea5eec54c42ca852610a37c8e56b50d2be98c29fac2d5e9416f0fdbc98e700084945e1e1c554066348cde9b86aba1399d4658be + checksum: 10c0/e9fa9b893073f39de23f5b86fd07f99d002d71d45760e47975c4e9e1f452bfe3f51065574b6751fe82d01f9856b61c1262e6a79b5d7d37fadd9c21db15237631 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1802.9": - version: 0.1802.9 - resolution: "@angular-devkit/build-webpack@npm:0.1802.9" +"@angular-devkit/build-webpack@npm:0.1802.10": + version: 0.1802.10 + resolution: "@angular-devkit/build-webpack@npm:0.1802.10" dependencies: - "@angular-devkit/architect": "npm:0.1802.9" + "@angular-devkit/architect": "npm:0.1802.10" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 @@ -175,7 +175,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/16c30407fe38fb476277a6e386edfa3b70f097096d46bcea8aaeaa40dc69f0077e043f02e334aa9e3fde08824eb3146517e4869adc10f4228f1cee4266257fa4 + checksum: 10c0/9d7acb957535c269449769436ea5765c9774b4f30c7ef534648442de56082b3f759d2241eef79b14f1beb8226d53909f907a6b8d5490a8820adb87a174738915 languageName: node linkType: hard @@ -198,9 +198,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.8": - version: 18.2.8 - resolution: "@angular-devkit/core@npm:18.2.8" +"@angular-devkit/core@npm:18.2.10": + version: 18.2.10 + resolution: "@angular-devkit/core@npm:18.2.10" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -218,13 +218,13 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/c75d01857c21b6db80c92254b8651322d2a185119074761b00ae24e68f1ac4ba137861951de44233e54ea894c3f640324064b061d23c6ce0321f142f33b6b062 + checksum: 10c0/11d007850335bac47d0e7d778122db746f81aa9f7c78d4ed835275da5edfbf486cbc7ba1c44a6db62f980ba59a55777f95acb117b07aca9b8238ddff9ebfb816 languageName: node linkType: hard -"@angular-devkit/core@npm:18.2.9": - version: 18.2.9 - resolution: "@angular-devkit/core@npm:18.2.9" +"@angular-devkit/core@npm:18.2.8": + version: 18.2.8 + resolution: "@angular-devkit/core@npm:18.2.8" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -242,15 +242,15 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/ab336889c110bb86f0bd27c93566ca4e98a4127de19c1ee6a8513ddb28f285556c3b017733bcb8f5b69408fa02003ed7dae256ac898291d1532cc73851c1677b + checksum: 10c0/c75d01857c21b6db80c92254b8651322d2a185119074761b00ae24e68f1ac4ba137861951de44233e54ea894c3f640324064b061d23c6ce0321f142f33b6b062 languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.8": - version: 18.2.8 - resolution: "@angular-devkit/schematics@npm:18.2.8" +"@angular-devkit/schematics@npm:18.2.10": + version: 18.2.10 + resolution: "@angular-devkit/schematics@npm:18.2.10" dependencies: - "@angular-devkit/core": "npm:18.2.8" + "@angular-devkit/core": "npm:18.2.10" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -260,15 +260,15 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/d24cde9f63b79bba98fab7505fdaa8ab3c04fd3c52bdf8afadf8daaeae794a76ee8f43a24cb5aeee20ab6137a242420df34c78ffe7346dcc3a5208dd5624ec84 + checksum: 10c0/71b42009385babbf5b5296d2a892396101505f0ec19ebc71d5aca661b1b47a238266fe9e5b679f043f81f9771bfaaa8adb7b2c507b28c8d231fb18a8b2475e16 languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.2.9": - version: 18.2.9 - resolution: "@angular-devkit/schematics@npm:18.2.9" +"@angular-devkit/schematics@npm:18.2.8": + version: 18.2.8 + resolution: "@angular-devkit/schematics@npm:18.2.8" dependencies: - "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/core": "npm:18.2.8" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.11" ora: "npm:5.4.1" @@ -278,7 +278,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/f7f2f41913750bac1c7277ca6cdd841705bc83c34315782bb12706d23561b292a86dfdbbaa00513e16b4aaa729338e5dd8bb8bace9643d4a17ad67811e309d95 + checksum: 10c0/d24cde9f63b79bba98fab7505fdaa8ab3c04fd3c52bdf8afadf8daaeae794a76ee8f43a24cb5aeee20ab6137a242420df34c78ffe7346dcc3a5208dd5624ec84 languageName: node linkType: hard @@ -396,12 +396,12 @@ __metadata: languageName: node linkType: hard -"@angular/build@npm:18.2.9": - version: 18.2.9 - resolution: "@angular/build@npm:18.2.9" +"@angular/build@npm:18.2.10": + version: 18.2.10 + resolution: "@angular/build@npm:18.2.10" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1802.9" + "@angular-devkit/architect": "npm:0.1802.10" "@babel/core": "npm:7.25.2" "@babel/helper-annotate-as-pure": "npm:7.24.7" "@babel/helper-split-export-declaration": "npm:7.24.7" @@ -452,20 +452,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/e69e9ba5cc722450de275a30e7cb257ae431c5fe6c1bb7a658014ba0cf62acb50476e49f086649b5b5651f1c4fd8ec944219de3815acb28f23ca086a857aa895 + checksum: 10c0/e47866586f5b5021ea901e835ddf0e6e5ebb64dfccaf9c232558b82a4404013b0235c8f139b01bed56f3010de797548d7ef23f3f82813dd9d2cbb029bd637031 languageName: node linkType: hard -"@angular/cli@npm:^18.2.9": - version: 18.2.9 - resolution: "@angular/cli@npm:18.2.9" +"@angular/cli@npm:^18.2.10": + version: 18.2.10 + resolution: "@angular/cli@npm:18.2.10" dependencies: - "@angular-devkit/architect": "npm:0.1802.9" - "@angular-devkit/core": "npm:18.2.9" - "@angular-devkit/schematics": "npm:18.2.9" + "@angular-devkit/architect": "npm:0.1802.10" + "@angular-devkit/core": "npm:18.2.10" + "@angular-devkit/schematics": "npm:18.2.10" "@inquirer/prompts": "npm:5.3.8" "@listr2/prompt-adapter-inquirer": "npm:2.0.15" - "@schematics/angular": "npm:18.2.9" + "@schematics/angular": "npm:18.2.10" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:4.1.3" jsonc-parser: "npm:3.3.1" @@ -484,7 +484,7 @@ __metadata: built: true bin: ng: bin/ng.js - checksum: 10c0/a2dfa139ad76291649532ff81c0b7986eddf202b12fc7ac923c24848b4e1b69397d00b7fa99539589cde34b41d018ebb148a3984f647ec3f1c27ebd09b0652ec + checksum: 10c0/58da41bd2ce387815c849ddf8de24e71d31e65883daab8b2b3f6ea4277d9c3a7682b9b945463c7a0fdadd689179d55c3f64757a641c98e801a350d0cd704b34a languageName: node linkType: hard @@ -4713,9 +4713,9 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.2.9": - version: 18.2.9 - resolution: "@ngtools/webpack@npm:18.2.9" +"@ngtools/webpack@npm:18.2.10": + version: 18.2.10 + resolution: "@ngtools/webpack@npm:18.2.10" peerDependencies: "@angular/compiler-cli": ^18.0.0 typescript: ">=5.4 <5.6" @@ -4725,7 +4725,7 @@ __metadata: built: true puppeteer: built: true - checksum: 10c0/4d5acc5327c67c487caf300488924d80187ba492ebb936c4b573e05f1a29ac78bec6590302f70135dbdc871e0e81b2c2124fa55611f220cda4476fa907d6838b + checksum: 10c0/2092b732f4e82971be86527c92aacca30aee282e165ae3d5aa06f3e6604a57a661cfce55d5728a832c3697d10a3367e41310b87135779e6d4d1c0e1cb647931f languageName: node linkType: hard @@ -5025,19 +5025,19 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:18.2.9": - version: 18.2.9 - resolution: "@schematics/angular@npm:18.2.9" +"@schematics/angular@npm:18.2.10": + version: 18.2.10 + resolution: "@schematics/angular@npm:18.2.10" dependencies: - "@angular-devkit/core": "npm:18.2.9" - "@angular-devkit/schematics": "npm:18.2.9" + "@angular-devkit/core": "npm:18.2.10" + "@angular-devkit/schematics": "npm:18.2.10" jsonc-parser: "npm:3.3.1" dependenciesMeta: esbuild: built: true puppeteer: built: true - checksum: 10c0/da504e2144e3ee6a2c1708140362f4a91ed820208354c4cb88b606a5652d80a1855de1fe4160a2a2b88a398bbd69ed9006cae42b9d2f7f9a6ab4eaa7c70bf763 + checksum: 10c0/6e90cdd51b8e2e2e62daabd5611131d089ee8101c7a92830dc1e865ccc9ad7061cec1cbd5ab1ef46918b86ac7a1a25289460a53580bbed95cedc85ba2aef47f5 languageName: node linkType: hard @@ -5583,7 +5583,16 @@ __metadata: languageName: node linkType: hard -"@types/http-proxy@npm:^1.17.10, @types/http-proxy@npm:^1.17.8": +"@types/http-proxy@npm:^1.17.15": + version: 1.17.15 + resolution: "@types/http-proxy@npm:1.17.15" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/e2bf2fcdf23c88141b8d2c85ed5e5418b62ef78285884a2b5a717af55f4d9062136aa475489d10292093343df58fb81975f34bebd6b9df322288fd9821cbee07 + languageName: node + linkType: hard + +"@types/http-proxy@npm:^1.17.8": version: 1.17.14 resolution: "@types/http-proxy@npm:1.17.14" dependencies: @@ -6701,14 +6710,14 @@ __metadata: version: 0.0.0-use.local resolution: "awg-app@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:^18.2.9" + "@angular-devkit/build-angular": "npm:^18.2.10" "@angular-eslint/builder": "npm:^18.4.0" "@angular-eslint/eslint-plugin": "npm:^18.4.0" "@angular-eslint/eslint-plugin-template": "npm:^18.4.0" "@angular-eslint/schematics": "npm:^18.4.0" "@angular-eslint/template-parser": "npm:^18.4.0" "@angular/animations": "npm:^18.2.8" - "@angular/cli": "npm:^18.2.9" + "@angular/cli": "npm:^18.2.10" "@angular/common": "npm:^18.2.8" "@angular/compiler": "npm:^18.2.8" "@angular/compiler-cli": "npm:^18.2.8" @@ -10949,17 +10958,17 @@ __metadata: languageName: node linkType: hard -"http-proxy-middleware@npm:3.0.0": - version: 3.0.0 - resolution: "http-proxy-middleware@npm:3.0.0" +"http-proxy-middleware@npm:3.0.3": + version: 3.0.3 + resolution: "http-proxy-middleware@npm:3.0.3" dependencies: - "@types/http-proxy": "npm:^1.17.10" - debug: "npm:^4.3.4" + "@types/http-proxy": "npm:^1.17.15" + debug: "npm:^4.3.6" http-proxy: "npm:^1.18.1" - is-glob: "npm:^4.0.1" - is-plain-obj: "npm:^3.0.0" - micromatch: "npm:^4.0.5" - checksum: 10c0/a3da2e9211483834384c27ad37dcff00dc8ea4990bb791f1383d3a5951f28f77fdc41dbaf2501a6607dcfca3dacac11e43bda22c4f68224abe532cbab8983ede + is-glob: "npm:^4.0.3" + is-plain-object: "npm:^5.0.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/c4d68a10d8d42f02e59f7dc8249c98d1ac03aecee177b42c2d8b6a0cb6b71c6688e759e5387f4cdb570150070ca1c6808b38010cbdf67f4500a2e75671a36e05 languageName: node linkType: hard @@ -11533,6 +11542,13 @@ __metadata: languageName: node linkType: hard +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c + languageName: node + linkType: hard + "is-potential-custom-element-name@npm:^1.0.1": version: 1.0.1 resolution: "is-potential-custom-element-name@npm:1.0.1" @@ -12867,7 +12883,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.8": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: From 322139f9607d5f52e6de8d23cf36dfb18f9e1f67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:51:50 +0000 Subject: [PATCH 175/213] build(deps): bump the angular group with 11 updates Bumps the angular group with 11 updates: | Package | From | To | | --- | --- | --- | | [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.8` | `18.2.9` | | [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.8` | `18.2.9` | | [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.8` | `18.2.9` | | [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.8` | `18.2.9` | | [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.8` | `18.2.9` | | [@angular/localize](https://github.com/angular/angular) | `18.2.8` | `18.2.9` | | [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.8` | `18.2.9` | | [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.8` | `18.2.9` | | [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.8` | `18.2.9` | | [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.8` | `18.2.9` | | [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.8` | `18.2.9` | Updates `@angular/animations` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/animations) Updates `@angular/common` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/common) Updates `@angular/compiler` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/compiler) Updates `@angular/core` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/core) Updates `@angular/forms` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/forms) Updates `@angular/localize` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/compare/18.2.8...18.2.9) Updates `@angular/platform-browser` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/platform-browser) Updates `@angular/platform-browser-dynamic` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/platform-browser-dynamic) Updates `@angular/platform-server` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/platform-server) Updates `@angular/router` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/router) Updates `@angular/compiler-cli` from 18.2.8 to 18.2.9 - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/18.2.9/packages/compiler-cli) --- updated-dependencies: - dependency-name: "@angular/animations" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/common" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/core" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/forms" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/localize" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-browser-dynamic" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/platform-server" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/router" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: angular - dependency-name: "@angular/compiler-cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: angular ... Signed-off-by: dependabot[bot] --- package.json | 22 +++---- yarn.lock | 158 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index c7c9cfb92d..23eb3b3a83 100644 --- a/package.json +++ b/package.json @@ -84,16 +84,16 @@ "deploy:ci": "ng deploy --no-build --message=\"Release $npm_package_name (v$npm_package_version) on gh-pages\"" }, "dependencies": { - "@angular/animations": "^18.2.8", - "@angular/common": "^18.2.8", - "@angular/compiler": "^18.2.8", - "@angular/core": "^18.2.8", - "@angular/forms": "^18.2.8", - "@angular/localize": "^18.2.8", - "@angular/platform-browser": "^18.2.8", - "@angular/platform-browser-dynamic": "^18.2.8", - "@angular/platform-server": "^18.2.8", - "@angular/router": "^18.2.8", + "@angular/animations": "^18.2.9", + "@angular/common": "^18.2.9", + "@angular/compiler": "^18.2.9", + "@angular/core": "^18.2.9", + "@angular/forms": "^18.2.9", + "@angular/localize": "^18.2.9", + "@angular/platform-browser": "^18.2.9", + "@angular/platform-browser-dynamic": "^18.2.9", + "@angular/platform-server": "^18.2.9", + "@angular/router": "^18.2.9", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", "@fortawesome/free-regular-svg-icons": "^6.6.0", @@ -126,7 +126,7 @@ "@angular-eslint/schematics": "^18.4.0", "@angular-eslint/template-parser": "^18.4.0", "@angular/cli": "^18.2.10", - "@angular/compiler-cli": "^18.2.8", + "@angular/compiler-cli": "^18.2.9", "@commitlint/cli": "^19.5.0", "@commitlint/config-angular": "^19.5.0", "@compodoc/compodoc": "^1.1.26", diff --git a/yarn.lock b/yarn.lock index 5bc24cd299..949f8900b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -385,14 +385,14 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/animations@npm:18.2.8" +"@angular/animations@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/animations@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.8 - checksum: 10c0/7cd56f1c7a9c3c6d7c700422da31a150af03af27c26ed0616e4d04ba5a6ecc03d3f7180ebd242cbd49da2957e33064d83cbdd9ecb162f34132180382573a0f01 + "@angular/core": 18.2.9 + checksum: 10c0/1fca1ab346b4c1eb0d304e2a9e3bbe1a34b0fd20f0e63628f0ca907f097c5bd8aa1191040a920bd7397e5370755603c24e399f651800105105b0d04308afe7a1 languageName: node linkType: hard @@ -488,21 +488,21 @@ __metadata: languageName: node linkType: hard -"@angular/common@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/common@npm:18.2.8" +"@angular/common@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/common@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.8 + "@angular/core": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/0d6e9b5313fae935e372f83b12e08ff25b1807cf863dd9885d94255ae44a72a24cd8a549f6f0bdb7b8971903e44ebaf97163499637c0688a02b9cced884b1705 + checksum: 10c0/0a8bf6c352f31407319098dcdadf073c8f51f72084b38e8f7b70e283c95e6b65b93f10aab592b789f7302a6f875924eb703f639fffd340a03f1455c839789ade languageName: node linkType: hard -"@angular/compiler-cli@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/compiler-cli@npm:18.2.8" +"@angular/compiler-cli@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/compiler-cli@npm:18.2.9" dependencies: "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -513,132 +513,132 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.8 + "@angular/compiler": 18.2.9 typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/d1b9d4fdf1d3638561f30d9741782a76ced8a7b0050d2b6917bb067d24111ff4d12bd7583ad0f977a6c6821f8d1770629f59aef52263fe29c56e3e036518eaa0 + checksum: 10c0/d13958baa0f08e41cd6658719ebff8b848a5f57b3f8c91eb9b7813fae6b2cb632d610194e50687547aeca540e24a76bd7d641ff47fac4bae43b3ed7592c4c880 languageName: node linkType: hard -"@angular/compiler@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/compiler@npm:18.2.8" +"@angular/compiler@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/compiler@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.2.8 + "@angular/core": 18.2.9 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/106084277ea4b31cc217c349d71af66edfae6c8d526406383f6c390854db01f89012ffd619b67af3a63b6d9808d5d2c19546797def59742c6c80ddf7ad4600d1 + checksum: 10c0/8c4e18cf5a5539c7cc799efedb96e1efd09dd31bba8e40f860e96d3b52e270d62da7f092b91a3df9b4ccd1053c6d10d6c80ca7c5c6f0852f6173b93c39481b2d languageName: node linkType: hard -"@angular/core@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/core@npm:18.2.8" +"@angular/core@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/core@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - checksum: 10c0/2ace1083ff4095689f6b1e2e200ebf60a36242fad6c6ec90bd5a0d57fed20f3cb0422467758a7b77597c74e5294ff4941e16ecfd1f9972f514069d56415bcdd0 + checksum: 10c0/1087df36b1a851b82ee5c7b85f2c305b00a234942714a35966741d8479f974104dfbfc8ee9734775636517ab270fdaa199ea477633fcae18230475e23e5c577d languageName: node linkType: hard -"@angular/forms@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/forms@npm:18.2.8" +"@angular/forms@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/forms@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.8 - "@angular/core": 18.2.8 - "@angular/platform-browser": 18.2.8 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/fb104f7b1e6b07af25b188acba9e4d705ffb3422f66044a9b4f310faf747239f957c1ab41ce9a739b1d74ea438da29af10e3ba62dfd06db137374913e2edb9c4 + checksum: 10c0/3423ec4d5a6218d7a0bd2cab61d08de49540a1ed66dcb8441c8e01ab64e10864d5d02487ba90d1830515bedfcd79881d97f7e04eeee18cf597a0e4149670a83e languageName: node linkType: hard -"@angular/localize@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/localize@npm:18.2.8" +"@angular/localize@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/localize@npm:18.2.9" dependencies: "@babel/core": "npm:7.25.2" "@types/babel__core": "npm:7.20.5" fast-glob: "npm:3.3.2" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.2.8 - "@angular/compiler-cli": 18.2.8 + "@angular/compiler": 18.2.9 + "@angular/compiler-cli": 18.2.9 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/38d3b7f4148b431669cf07b85e2d1e841f126580a6f79b0cc10fa9e845e9906dafb99dd07f3f73eda513caea4a9fad9814f4fb992be12d368a09ca0e1d22100b + checksum: 10c0/2fcc20616004e23c2e3cf61f7b9d28ffafc27e56dada7a8c3da847819b92fed186d077fb3563f26143fa0c1f6bc734a5dfc9e50b132700d01843e2bbfecc2ff2 languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/platform-browser-dynamic@npm:18.2.8" +"@angular/platform-browser-dynamic@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/platform-browser-dynamic@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.8 - "@angular/compiler": 18.2.8 - "@angular/core": 18.2.8 - "@angular/platform-browser": 18.2.8 - checksum: 10c0/5f34348a3ce2c2e0c7f41109c92e2fae8ec645a733a4e55484b5575ca0994ef776e44622acfb1cb06d50487d6a960086ffb73cd678c9cbfb48dd49b9f517418a + "@angular/common": 18.2.9 + "@angular/compiler": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 + checksum: 10c0/a57a2dcdac7f539ab400a63fe7cc846ccd93b09d4c575d19861262c6938014d199de755100261fd66e9f75e4ace17896ba63643c5151f73c0f63927f15b700d1 languageName: node linkType: hard -"@angular/platform-browser@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/platform-browser@npm:18.2.8" +"@angular/platform-browser@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/platform-browser@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.2.8 - "@angular/common": 18.2.8 - "@angular/core": 18.2.8 + "@angular/animations": 18.2.9 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/78ff208bd662990ac7754b2c7881e96460ec0a30b16049fc020387ac51c57ab004f44482ea77a8fb73d8d2776bfca8d3351df7ed02bf1ef207bfec1bc55f0a7f + checksum: 10c0/93e11ce0c754d0f2b4010479af15c77c189bfa4709121f7cf8ede4dbc46e7d4683b1b059f359d96f0f5f33947182c9c85c74ad6715cdbe22a0984069d629bd26 languageName: node linkType: hard -"@angular/platform-server@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/platform-server@npm:18.2.8" +"@angular/platform-server@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/platform-server@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.2.8 - "@angular/common": 18.2.8 - "@angular/compiler": 18.2.8 - "@angular/core": 18.2.8 - "@angular/platform-browser": 18.2.8 - checksum: 10c0/459a2d8fc425756f7171f6d4f9dc5f99b678d1359c487464c0e970ce521e9a126e4f0a67400b941166466796f5d97a258e41329b7daf200e7217da6faa6ffb83 + "@angular/animations": 18.2.9 + "@angular/common": 18.2.9 + "@angular/compiler": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 + checksum: 10c0/2f0bf9e2a2c8f73e0f8b30d3be4c1727e0234813908e0b531ff8f9849c0ff6a71a28a7430960d50bcba3f5d76fedd6f45b5fd90ee9375ee05ecc31254aa6ca9b languageName: node linkType: hard -"@angular/router@npm:^18.2.8": - version: 18.2.8 - resolution: "@angular/router@npm:18.2.8" +"@angular/router@npm:^18.2.9": + version: 18.2.9 + resolution: "@angular/router@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.2.8 - "@angular/core": 18.2.8 - "@angular/platform-browser": 18.2.8 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/f4565a4c263d1ebe7f5dff80597dfcad1361da8cd3b8932651ef47c6273effcc991b2ce735fe65ae8902647cd3727515eb782cf5af21d884ac0ca9730f7a9d5d + checksum: 10c0/99379a9d0f71d85099c1b9a8c2b3c7c8aaa53b33c7e32e1f826f9dbe61beca67a8368fb96741fbb2daebe5e6f6c412cf345c83f6a39c81b06c80bd10de24732c languageName: node linkType: hard @@ -6716,18 +6716,18 @@ __metadata: "@angular-eslint/eslint-plugin-template": "npm:^18.4.0" "@angular-eslint/schematics": "npm:^18.4.0" "@angular-eslint/template-parser": "npm:^18.4.0" - "@angular/animations": "npm:^18.2.8" + "@angular/animations": "npm:^18.2.9" "@angular/cli": "npm:^18.2.10" - "@angular/common": "npm:^18.2.8" - "@angular/compiler": "npm:^18.2.8" - "@angular/compiler-cli": "npm:^18.2.8" - "@angular/core": "npm:^18.2.8" - "@angular/forms": "npm:^18.2.8" - "@angular/localize": "npm:^18.2.8" - "@angular/platform-browser": "npm:^18.2.8" - "@angular/platform-browser-dynamic": "npm:^18.2.8" - "@angular/platform-server": "npm:^18.2.8" - "@angular/router": "npm:^18.2.8" + "@angular/common": "npm:^18.2.9" + "@angular/compiler": "npm:^18.2.9" + "@angular/compiler-cli": "npm:^18.2.9" + "@angular/core": "npm:^18.2.9" + "@angular/forms": "npm:^18.2.9" + "@angular/localize": "npm:^18.2.9" + "@angular/platform-browser": "npm:^18.2.9" + "@angular/platform-browser-dynamic": "npm:^18.2.9" + "@angular/platform-server": "npm:^18.2.9" + "@angular/router": "npm:^18.2.9" "@codemirror/legacy-modes": "npm:^6.4.1" "@commitlint/cli": "npm:^19.5.0" "@commitlint/config-angular": "npm:^19.5.0" From 182332a784811cbdb48a70dc9302d1d1765289a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:33:00 +0000 Subject: [PATCH 176/213] build(deps): bump actions/setup-node from 4.0.4 to 4.1.0 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.4 to 4.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/0a44ba7841725637a19e28fa30b79a866c81b0a6...39370e3970a6d050c480ffad4ff0ed4d3fdee5af) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci_workflow.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 29aec9f5e1..903c6b5044 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -57,7 +57,7 @@ jobs: echo "SHA: ${{ steps.get-sha.outputs.SHA }}" - name: Set up node ${{ matrix.node-version}} - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: node-version: ${{ matrix.node-version }} @@ -65,7 +65,7 @@ jobs: run: corepack enable - name: Get yarn cache ${{ matrix.node-version}} - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: cache: 'yarn' @@ -215,7 +215,7 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up node ${{ matrix.node-version}} - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: node-version: ${{ matrix.node-version }} cache: 'yarn' From d3b90484c681843166728df051e0228fb1fe15db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:38:21 +0000 Subject: [PATCH 177/213] build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.7/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7) --- updated-dependencies: - dependency-name: http-proxy-middleware dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 949f8900b7..69e9818da8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10973,8 +10973,8 @@ __metadata: linkType: hard "http-proxy-middleware@npm:^2.0.3": - version: 2.0.6 - resolution: "http-proxy-middleware@npm:2.0.6" + version: 2.0.7 + resolution: "http-proxy-middleware@npm:2.0.7" dependencies: "@types/http-proxy": "npm:^1.17.8" http-proxy: "npm:^1.18.1" @@ -10986,7 +10986,7 @@ __metadata: peerDependenciesMeta: "@types/express": optional: true - checksum: 10c0/25a0e550dd1900ee5048a692e0e9b2b6339d06d487a705d90c47e359e9c6561d648cd7862d001d090e651c9efffa1b6e5160fcf1f299b5fa4935f76e9754eb11 + checksum: 10c0/8d00a61eb215b83826460b07489d8bb095368ec16e02a9d63e228dcf7524e7c20d61561e5476de1391aecd4ec32ea093279cdc972115b311f8e0a95a24c9e47e languageName: node linkType: hard From 0495501db4a05edc59a23d525f0f67d5f2bd769b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 18 Oct 2024 13:01:47 +0200 Subject: [PATCH 178/213] feat(app): move away from prototype BREAKING CHANGE: This ends the status of the app as a prototype. (cherry picked from commit 3d7979da43046851f9c3030ff1e26f8579150057) --- .github/workflows/ci_workflow.yml | 2 +- README.md | 2 +- package.json | 2 +- .../footer-declaration.component.html | 2 +- .../footer-declaration.component.spec.ts | 20 +++++-- src/app/core/navbar/navbar.component.html | 2 +- src/app/core/navbar/navbar.component.spec.ts | 4 +- .../contact-view/contact-view.component.html | 4 +- .../views/home-view/home-view.component.html | 58 ++----------------- .../views/home-view/home-view.component.ts | 2 +- src/index.html | 6 +- 11 files changed, 32 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index 903c6b5044..eaef3721a9 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -264,6 +264,6 @@ jobs: TAG_VERSION: ${{ steps.get_version.outputs.VERSION }} with: name: Release ${{ env.TAG_VERSION }} - body: "A prototype web application for the online edition of the [Anton Webern Gesamtausgabe](https://www.anton-webern.ch), located at the Department of Musicology of the University of Basel. It is written in [Angular](https://angular.io/) and runs on [edition.anton-webern.ch](https://edition.anton-webern.ch).\n\n Changes since last release: https://github.com/${{ github.repository }}/blob/${{ env.TAG_VERSION }}/CHANGELOG.md" + body: "A web application for the online edition of the [Anton Webern Gesamtausgabe](https://www.anton-webern.ch), located at the Department of Musicology of the University of Basel. It is written in [Angular](https://angular.io/) and runs on [edition.anton-webern.ch](https://edition.anton-webern.ch).\n\n Changes since last release: https://github.com/${{ github.repository }}/blob/${{ env.TAG_VERSION }}/CHANGELOG.md" draft: false prerelease: false diff --git a/README.md b/README.md index 1d786f0d56..99ecb92a9b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.1%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4717678.svg)](https://doi.org/10.5281/zenodo.4717678) -A prototype web application for the online edition of the [Anton Webern Gesamtausgabe](https://www.anton-webern.ch) (AWG), located at the Department of Musicology of the University of Basel. It is written in [Angular](https://angular.io/) and runs on [edition.anton-webern.ch](https://edition.anton-webern.ch). +A web application for the online edition of the [Anton Webern Gesamtausgabe](https://www.anton-webern.ch) (AWG), located at the Department of Musicology of the University of Basel. It is written in [Angular](https://angular.io/) and runs on [edition.anton-webern.ch](https://edition.anton-webern.ch). **Project Status**: This project is actively maintained. diff --git a/package.json b/package.json index 23eb3b3a83..b84bdc9f9f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "email": "101800133+AMWilke@users.noreply.github.com" } ], - "description": "Prototype Web Application for the Online Edition of the Anton Webern Gesamtausgabe (Musicological Seminar of the University of Basel)", + "description": "A web application for the Online Edition of the Anton Webern Gesamtausgabe (Musicological Seminar of the University of Basel)", "keywords": [ "angular", "anton-webern", diff --git a/src/app/core/footer/footer-declaration/footer-declaration.component.html b/src/app/core/footer/footer-declaration/footer-declaration.component.html index f136f67d12..60f477d552 100644 --- a/src/app/core/footer/footer-declaration/footer-declaration.component.html +++ b/src/app/core/footer/footer-declaration/footer-declaration.component.html @@ -1,4 +1,4 @@ -

Prototyp AWG-Online-Edition

+

AWG-Online-Edition

Version {{ pageMetaData?.version }} ◇ diff --git a/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts b/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts index 8573ca84ef..c33eee9e88 100644 --- a/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts +++ b/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts @@ -58,18 +58,28 @@ describe('FooterDeclarationComponent (DONE)', () => { describe('VIEW', () => { it('... should contain 3 paragraphs', () => { getAndExpectDebugElementByCss(compDe, 'p', 3, 3); + + getAndExpectDebugElementByCss(compDe, 'p.awg-version-title', 1, 1); + getAndExpectDebugElementByCss(compDe, 'p.awg-version-desc', 1, 1); + getAndExpectDebugElementByCss(compDe, 'p#awg-contact-link', 1, 1); + }); + + it('... should render version title', () => { + const expectedTitle = 'AWG-Online-Edition'; + + const titleDes = getAndExpectDebugElementByCss(compDe, 'p.awg-version-title', 1, 1); + const titleEl = titleDes[0].nativeElement; + + expectToContain(titleEl.textContent, expectedTitle); }); it('... should not render pageMetaData yet', () => { - // Find debug elements const versionDes = getAndExpectDebugElementByCss(compDe, '#awg-version', 1, 1); const versionDateDes = getAndExpectDebugElementByCss(compDe, '#awg-version-date', 1, 1); - // Find native elements const versionEl = versionDes[0].nativeElement; const versionDateEl = versionDateDes[0].nativeElement; - // Check output expectToBe(versionEl.textContent, ''); expectToBe(versionDateEl.textContent, ''); }); @@ -86,15 +96,13 @@ describe('FooterDeclarationComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should render values', () => { + it('... should render version values', () => { const expectedVersion = expectedPageMetaData.version; const expectedVersionDate = expectedPageMetaData.versionReleaseDate; - // Find debug elements const versionDes = getAndExpectDebugElementByCss(compDe, '#awg-version', 1, 1); const versionDateDes = getAndExpectDebugElementByCss(compDe, '#awg-version-date', 1, 1); - // Find native elements const versionEl = versionDes[0].nativeElement; const versionDateEl = versionDateDes[0].nativeElement; diff --git a/src/app/core/navbar/navbar.component.html b/src/app/core/navbar/navbar.component.html index 3f040cb8c3..1f62f12885 100644 --- a/src/app/core/navbar/navbar.component.html +++ b/src/app/core/navbar/navbar.component.html @@ -25,7 +25,7 @@

@@ -106,7 +106,7 @@

- Der Software-Code dieses Prototyps wird auf + Der Software-Code der Online-Edition wird auf GitHub unter einer MIT-Lizenz zur Verfügung gestellt.

diff --git a/src/app/views/home-view/home-view.component.html b/src/app/views/home-view/home-view.component.html index aac1055412..946756e550 100644 --- a/src/app/views/home-view/home-view.component.html +++ b/src/app/views/home-view/home-view.component.html @@ -1,56 +1,8 @@ - - - - -
-
- {{ editionRouteConstants.EDITION.short }} / {{ editionRouteConstants.SERIES_1.full }} / - {{ editionRouteConstants.SECTION_5.full }} -
- - @for ( - editionComplex of DISPLAYED_EDITION_COMPLEXES | slice: 0 : SLICE_INDEX; - track editionComplex.complexId.short - ) { -

- ({{ editionTypeConstants.SKETCH_EDITION.full }} - @if (editionComplex.complexId.route.includes('op25')) { -  &  - {{ - editionRouteConstants.EDITION_GRAPH.short - }} - } - ) -

- } -
-
-
- {{ editionRouteConstants.EDITION.short }} / {{ editionRouteConstants.SERIES_2.full }} / - {{ editionRouteConstants.SECTION_2A.full }} -
- - @for ( - editionComplex of DISPLAYED_EDITION_COMPLEXES | slice: SLICE_INDEX : DISPLAYED_EDITION_COMPLEXES.length; - track editionComplex.complexId.short - ) { -

- ({{ editionTypeConstants.SKETCH_EDITION.full }}) -

- } -
- -
-

Willkommen bei der AWG-APP, dem Prototyp einer Online-Edition der Anton Webern Gesamtausgabe, Basel (AWG).

+
+

Willkommen bei der AWG-APP, der Online-Edition der Anton Webern Gesamtausgabe, Basel (AWG).

Die online zugänglichen Bestandteile und Datenbestände der AWG-Online-Edition werden als Open Data über diese Webapplikation präsentiert und über das Software-Framework @@ -64,7 +16,7 @@

Mission Statement DaSCH).

- Der Protoyp simuliert bereits in weiten Teilen eine Datenabfrage über die Programmierschnittstelle (API) von + Die AWG-APP simuliert bereits in weiten Teilen eine Datenabfrage über die Programmierschnittstelle (API) von SALSAH (zukünftig DSP). Die für reale Abfragen im Bereich Online-Edition notwendige Datenstruktur wird zur Zeit von der AWG implementiert.

@@ -100,7 +52,7 @@

Briefe & Supplements, Chronologie) abgefragt werden können.

- Bei diesem Prototyp handelt es sich um eine fortlaufende Weiterentwicklung einer + Bei dieser Applikation handelt es sich um eine fortlaufende Weiterentwicklung einer prospektiven Simulation (PDF) @@ -110,5 +62,5 @@

dokumentiert (vgl. Dokumentation).

-

Der Prototyp und die Suche werden in ihrer Funktionalität sukzessiv erweitert.

+

Die Online-Edition und die Suche werden in ihrer Funktionalität sukzessiv erweitert.

diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index 24f5da10b1..6aa3805c35 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -11,7 +11,7 @@ import { EditionComplexesService } from '@awg-views/edition-view/services'; * The HomeView component. * * It contains the home view section of the app - * with basic information about the prototype. + * with basic information about the application. */ @Component({ selector: 'awg-home-view', diff --git a/src/index.html b/src/index.html index bb4155df79..ffc5c61aab 100644 --- a/src/index.html +++ b/src/index.html @@ -7,7 +7,7 @@ + content="A web application for the online edition of the Anton Webern Gesamtausgabe (Musicological Department of the University of Basel)" /> @@ -15,7 +15,7 @@ + content="A web application for the online edition of the Anton Webern Gesamtausgabe (Musicological Department of the University of Basel)" /> @@ -49,7 +49,7 @@
-

AWG prototype is…

+

AWG-APP is…

From b4f6ff253cce4921b4ef71605fb49f2a45d36f51 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 18 Oct 2024 13:25:20 +0200 Subject: [PATCH 179/213] fix(edition): improve wording of section detail disclaimer (cherry picked from commit 5e905c9a2b5289ff7317e95595b1c6bc29f79f7f) --- .../edition-section-detail-disclaimer.component.html | 2 +- .../edition-section-detail-disclaimer.component.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html index f9ea04dcca..feec255552 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html @@ -1,5 +1,5 @@ diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts index d7d9344e9f..dd817bafdb 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts @@ -50,7 +50,7 @@ describe('EditionSectionDetailDisclaimerComponent (DONE)', () => { const pDe = getAndExpectDebugElementByCss(divDe[0], 'p', 1, 1); const pEl = pDe[0].nativeElement; - const expectedDisclaimer = `[Die online verfügbaren Inhalte werden sukzessive ergänzt und erweitert.]`; + const expectedDisclaimer = `[Die online verfügbaren Editionsinhalte werden sukzessive ergänzt und erweitert.]`; expectToBe(pEl.textContent.trim(), expectedDisclaimer.trim()); }); From 417d0a4d1380a97f9ef6db45656ab5e9a55a82f7 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 18 Oct 2024 13:27:13 +0200 Subject: [PATCH 180/213] fix(side-info): collapse section menus by default (cherry picked from commit 5f067573d2a550d545de6862cf828fa7b94a0d16) --- .../edition-info/edition-info.component.html | 4 +- .../edition-info.component.spec.ts | 274 +++++++++++------- 2 files changed, 172 insertions(+), 106 deletions(-) diff --git a/src/app/side-info/edition-info/edition-info.component.html b/src/app/side-info/edition-info/edition-info.component.html index d9f5c72412..c7dee65a5d 100644 --- a/src/app/side-info/edition-info/edition-info.component.html +++ b/src/app/side-info/edition-info/edition-info.component.html @@ -47,7 +47,7 @@
{{ editionInfoHeader }}
-
+
-
+
-
-
-
- -

- {{ - editionRouteConstants.EDITION_INTRO.full - }} -

- @for ( - editionComplex of DISPLAYED_EDITION_COMPLEXES | slice: 0 : SLICE_INDEX; - track editionComplex.complexId.short - ) { -

- -
- ({{ editionTypeConstants.SKETCH_EDITION.full }} - @if (editionComplex.complexId.route.includes('op25')) { -  &  + + @for (section of DISPLAYED_SECTIONS; track $index) { +

+
+ +
+
+
+ + @if (!section.content.intro.disabled) { +

{{ editionRouteConstants.EDITION_GRAPH.short }}{{ + editionRouteConstants.EDITION_INTRO.full + }} +

+ } + + @if (combineComplexes(section).length > 0) { + @for ( + editionComplex of combineComplexes(section); + track editionComplex.complex.complexId.short + ) { + + + + +

+ + @if (editionComplex.disabled) { + + + + } @else { + + + + } + +

} - ) -

- } -
-
-
-
- -
-
- -
-
-
- - @for ( - editionComplex of DISPLAYED_EDITION_COMPLEXES - | slice: SLICE_INDEX : DISPLAYED_EDITION_COMPLEXES.length; - track editionComplex.complexId.short - ) { -

- -
- ({{ editionTypeConstants.SKETCH_EDITION.full }} - ) -

- } -
+ } + +
-
+ }
diff --git a/src/app/side-info/edition-info/edition-info.component.ts b/src/app/side-info/edition-info/edition-info.component.ts index 5330e3936c..13666f56d9 100644 --- a/src/app/side-info/edition-info/edition-info.component.ts +++ b/src/app/side-info/edition-info/edition-info.component.ts @@ -1,8 +1,8 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; -import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService } from '@awg-views/edition-view/services'; +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionOutlineComplexItem, EditionOutlineSection } from '@awg-views/edition-view/models'; +import { EditionOutlineService, EditionStateService } from '@awg-views/edition-view/services'; /** * The EditionInfo component. @@ -13,9 +13,8 @@ import { EditionComplexesService } from '@awg-views/edition-view/services'; selector: 'awg-edition-info', templateUrl: './edition-info.component.html', styleUrls: ['./edition-info.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, }) -export class EditionInfoComponent { +export class EditionInfoComponent implements OnInit { /** * Public variable: editionInfoHeader. * @@ -24,30 +23,30 @@ export class EditionInfoComponent { editionInfoHeader = 'Edition'; /** - * Readonly variable: DISPLAYED_EDITION_COMPLEXES. + * Public variable: selectedEditionSection$. * - * It keeps the array of displayed edition complexes. + * It keeps the selected section of the edition as an Observable of EditionOutlineSection. */ - readonly DISPLAYED_EDITION_COMPLEXES: EditionComplex[] = [ - EditionComplexesService.getEditionComplexById('OP3'), - EditionComplexesService.getEditionComplexById('OP4'), - EditionComplexesService.getEditionComplexById('OP12'), - EditionComplexesService.getEditionComplexById('OP23'), - EditionComplexesService.getEditionComplexById('OP25'), - EditionComplexesService.getEditionComplexById('M22'), - EditionComplexesService.getEditionComplexById('M30'), - EditionComplexesService.getEditionComplexById('M31'), - EditionComplexesService.getEditionComplexById('M34'), - EditionComplexesService.getEditionComplexById('M35_42'), - EditionComplexesService.getEditionComplexById('M37'), + selectedEditionSection: EditionOutlineSection; + + /** + * Readonly variable: DISPLAYED_SECTIONS. + * + * It keeps the array of displayed sections. + */ + readonly DISPLAYED_SECTIONS = [ + EditionOutlineService.getEditionSectionById('1', '5'), + EditionOutlineService.getEditionSectionById('2', '2a'), ]; /** - * Readonly variable: SLICE_INDEX. + * Constructor of the EditionInfoComponent. + * + * It declares a private instance of the EditionStateService. * - * It keeps the index for the slice of edition complexes. + * @param {EditionStateService} editionStateService Instance of the EditionStateService. */ - readonly SLICE_INDEX = 5; + constructor(private editionStateService: EditionStateService) {} /** * Getter variable: editionRouteConstants. @@ -59,11 +58,42 @@ export class EditionInfoComponent { } /** - * Getter variable: editionTypeConstants. + * Angular life cycle hook: ngOnInit. * - * It returns the EDITION_TYPE_CONSTANTS. - **/ - get editionTypeConstants(): typeof EDITION_TYPE_CONSTANTS { - return EDITION_TYPE_CONSTANTS; + * It calls the containing methods + * when initializing the component. + */ + ngOnInit() { + this.setupEditionView(); + } + + /** + * Public method: setupEditionView. + * + * It sets up the edition view by loading + * the selected series, section, and edition complex + * from the EditionStateService. + * + * @returns {void} Sets up the edition view. + */ + setupEditionView(): void { + this.editionStateService.getSelectedEditionSection().subscribe(section => { + this.selectedEditionSection = section; + }); + } + + /** + * Public method: combineComplexes. + * + * It combines the opus and mnr complexes of a section. + * + * @param section {EditionOutlineSection} The edition outline section. + * + * @returns {EditionOutlineComplexItem[]} The combined complexes. + */ + combineComplexes(section: EditionOutlineSection): EditionOutlineComplexItem[] { + const opusComplexes = section.content.complexTypes.opus || []; + const mnrComplexes = section.content.complexTypes.mnr || []; + return [...opusComplexes, ...mnrComplexes]; } } diff --git a/src/app/views/edition-view/models/edition-outline.model.ts b/src/app/views/edition-view/models/edition-outline.model.ts index 3448afee64..8e56924a58 100644 --- a/src/app/views/edition-view/models/edition-outline.model.ts +++ b/src/app/views/edition-view/models/edition-outline.model.ts @@ -166,6 +166,11 @@ export interface EditionOutlineSectionContent { * to structure outline information of the edition sections. */ export interface EditionOutlineSection { + /** + * The series parent route of an edition section. + */ + seriesParent: EditionRouteConstant; + /** * The section route of an edition section. */ @@ -225,6 +230,7 @@ export class EditionOutline { } this.outline = outlineData.map(this._mapSeries); + console.log('EditionOutline: ', this.outline); } /** @@ -242,7 +248,7 @@ export class EditionOutline { const seriesConstant: EditionRouteConstant = EDITION_ROUTE_CONSTANTS['SERIES_' + series]; return { series: seriesConstant, - sections: sections.map(section => this._mapSection(section, series)), + sections: sections.map(section => this._mapSection(section, seriesConstant)), }; }; @@ -260,14 +266,15 @@ export class EditionOutline { */ private _mapSection = ( { section, disabled, content }: EditionOutlineSectionsJsonData, - series: string + seriesConstant: EditionRouteConstant ): EditionOutlineSection => { const sectionConstant: EditionRouteConstant = - series === '3' && section === '5' + seriesConstant.short === '3' && section === '5' ? EDITION_ROUTE_CONSTANTS.SERIES_3_SECTION_5 : EDITION_ROUTE_CONSTANTS['SECTION_' + section]; return { + seriesParent: seriesConstant, section: sectionConstant, content: this._mapSectionContent(content), disabled, From d78e66b84e44f7059fc98958408caf6499cc542b Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Tue, 22 Oct 2024 16:10:01 +0200 Subject: [PATCH 187/213] refactor(core): improve handling of navbar icons and labels (cherry picked from commit a0332bbf68d77d3240fd255ce976173fd881d1d1) --- src/app/core/navbar/navbar.component.html | 24 +- src/app/core/navbar/navbar.component.spec.ts | 339 +++++++++++-------- src/app/core/navbar/navbar.component.ts | 59 ++-- 3 files changed, 229 insertions(+), 193 deletions(-) diff --git a/src/app/core/navbar/navbar.component.html b/src/app/core/navbar/navbar.component.html index 1f62f12885..f0d3d67ac1 100644 --- a/src/app/core/navbar/navbar.component.html +++ b/src/app/core/navbar/navbar.component.html @@ -25,19 +25,19 @@
>{{ editionRouteConstants.PREFACE.full }} - + @for (editionComplex of DISPLAYED_EDITION_COMPLEXES; track editionComplex.complexId.short) {
@@ -94,8 +94,8 @@
diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index e5e9422b7e..8c0ca3128c 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { Router } from '@angular/router'; import Spy = jasmine.Spy; @@ -21,9 +20,9 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { METADATA } from '@awg-core/core-data'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; -import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService } from '@awg-views/edition-view/services'; +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionOutlineSection } from '@awg-views/edition-view/models'; +import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; import { HomeViewComponent } from './home-view.component'; @@ -43,30 +42,21 @@ class AlertInfoStubComponent { } /** Helper function */ -function generateExpectedOrderOfRouterlinks(editionComplexes: EditionComplex[]): string[][] { - const editionAndGraphLinks = editionComplexes.flatMap(complex => { - const routes = [[complex.baseRoute, EDITION_ROUTE_CONSTANTS.EDITION_SHEETS.route]]; - if (complex === EditionComplexesService.getEditionComplexById('OP25')) { - routes.push([complex.baseRoute, EDITION_ROUTE_CONSTANTS.EDITION_GRAPH.route]); - } - return routes; - }); +function getRouterlinks(sections: EditionOutlineSection[]): string[][] { + const { EDITION, SERIES, SECTION, ROWTABLES } = EDITION_ROUTE_CONSTANTS; const structureLinks = [['/structure']]; - const editionLinks = editionComplexes.map(complex => [ - complex.baseRoute, - EDITION_ROUTE_CONSTANTS.EDITION_SHEETS.route, - ]); + const sectionLinks = sections.map(section => [EDITION.route, SERIES.route, section?.seriesParent?.route, SECTION.route, section?.section?.route]); const otherLinks = [ - ['/edition', 'row-tables'], + ['/edition', ROWTABLES.route], ['/data/search', 'fulltext'], ['/data/search', 'extended'], ['/contact'], ]; - return [...editionAndGraphLinks, ...structureLinks, ...editionLinks, ...otherLinks]; + return [...structureLinks, ...sectionLinks, ...otherLinks]; } fdescribe('HomeViewComponent (DONE)', () => { @@ -77,31 +67,24 @@ fdescribe('HomeViewComponent (DONE)', () => { let linkDes: DebugElement[]; let routerLinks; - let mockRouter: Partial; - - const expectedTitle = 'AWG-APP: die Online-Edition der Anton Webern Gesamtausgabe'; - const expectedId = 'awg-home-view'; - const expectedSliceIndex = 5; - + let expectedTitle: string; + let expectedId: string; + let expectedDisclaimerInfoMessage: string; + const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; let expectedPageMetaData: MetaPage; - let expectedEditionComplexes: EditionComplex[]; - let expectedOrderOfRouterlinks: string[][]; + let expectedSections: EditionOutlineSection[]; - const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; - const expectedEditionTypeConstants: typeof EDITION_TYPE_CONSTANTS = EDITION_TYPE_CONSTANTS; + let expectedRouterlinks: string[][]; beforeAll(() => { EditionComplexesService.initializeEditionComplexesList(); + EditionOutlineService.initializeEditionOutline(); }); beforeEach(waitForAsync(() => { - // Router spy object - mockRouter = jasmine.createSpyObj('Router', ['navigate']); - TestBed.configureTestingModule({ imports: [FontAwesomeTestingModule], declarations: [HomeViewComponent, AlertInfoStubComponent, HeadingStubComponent, RouterLinkStubDirective], - providers: [{ provide: Router, useValue: mockRouter }], }).compileComponents(); })); @@ -111,22 +94,16 @@ fdescribe('HomeViewComponent (DONE)', () => { compDe = fixture.debugElement; // Test data + expectedTitle = 'Anton Webern Gesamtausgabe: Online-Edition'; + expectedId = 'awg-home-view'; + expectedDisclaimerInfoMessage = + 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; expectedPageMetaData = METADATA[MetaSectionTypes.page]; - - expectedEditionComplexes = [ - EditionComplexesService.getEditionComplexById('OP3'), - EditionComplexesService.getEditionComplexById('OP4'), - EditionComplexesService.getEditionComplexById('OP12'), - EditionComplexesService.getEditionComplexById('OP23'), - EditionComplexesService.getEditionComplexById('OP25'), - EditionComplexesService.getEditionComplexById('M22'), - EditionComplexesService.getEditionComplexById('M30'), - EditionComplexesService.getEditionComplexById('M31'), - EditionComplexesService.getEditionComplexById('M34'), - EditionComplexesService.getEditionComplexById('M35_42'), - EditionComplexesService.getEditionComplexById('M37'), + expectedSections = [ + EditionOutlineService.getEditionSectionById('1', '5'), + EditionOutlineService.getEditionSectionById('2', '2a'), ]; - expectedOrderOfRouterlinks = generateExpectedOrderOfRouterlinks(expectedEditionComplexes); + expectedRouterlinks = getRouterlinks(expectedSections); // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see @@ -149,24 +126,20 @@ fdescribe('HomeViewComponent (DONE)', () => { expectToBe(component.homeViewId, expectedId); }); - it('... should have `DISPLAYED_EDITION_COMPLEXES`', () => { - expectToEqual(component.DISPLAYED_EDITION_COMPLEXES, expectedEditionComplexes); + it('... should have `DISPLAYED_SECTIONS`', () => { + expectToEqual(component.DISPLAYED_SECTIONS, expectedSections); }); - it('... should have as many `DISPLAYED_EDITION_COMPLEXES` as there are complexes in the array', () => { - expectToEqual(component.DISPLAYED_EDITION_COMPLEXES.length, expectedEditionComplexes.length); - }); - - it('... should have `SLICE_INDEX`', () => { - expectToBe(component.SLICE_INDEX, expectedSliceIndex); + it('... should have as many `DISPLAYED_SECTIONS` as there are sections in the array', () => { + expectToEqual(component.DISPLAYED_SECTIONS.length, expectedSections.length); }); it('... should have `editionRouteConstants`', () => { expectToBe(component.editionRouteConstants, expectedEditionRouteConstants); }); - it('... should have `editionTypeConstants`', () => { - expectToBe(component.editionTypeConstants, expectedEditionTypeConstants); + it('... should have `disclaimerInfoMessage`', () => { + expectToBe(component.disclaimerInfoMessage, expectedDisclaimerInfoMessage); }); it('... should not have pageMetaData', () => { @@ -192,41 +165,20 @@ fdescribe('HomeViewComponent (DONE)', () => { expect(headingCmp.id).toBeUndefined(); }); - it('... should contain three `div.para` elements', () => { - getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - }); - - it('... should have one h6 breadcrumb but no h4 info headers in first div.para yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - getAndExpectDebugElementByCss(divDes[0], 'h6.awg-breadcrumb', 1, 1); - getAndExpectDebugElementByCss(divDes[0], 'h4.awg-edition-info-header', 0, 0); - }); - - it('... should not render bread crumb header in first div.para yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - const headerDes = getAndExpectDebugElementByCss(divDes[0], 'h6.awg-breadcrumb', 1, 1); - const headerEl = headerDes[0].nativeElement; - - expectToBe(headerEl.textContent, ''); - }); - - it('... should have one h6 breadcrumb but no h4 info headers in second div.para yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - getAndExpectDebugElementByCss(divDes[1], 'h6.awg-breadcrumb', 1, 1); - getAndExpectDebugElementByCss(divDes[1], 'h4.awg-edition-info-header', 0, 0); + it('... should contain one `div.awg-home-view-content` in `div.awg-home-view`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-content', 1, 1); }); - it('... should not render bread crumb header in second div.para yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - const headerDes = getAndExpectDebugElementByCss(divDes[1], 'h6.awg-breadcrumb', 1, 1); - const headerEl = headerDes[0].nativeElement; - - expectToBe(headerEl.textContent, ''); + it('... should contain one `div.awg-home-view-text` in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-text', 1, 1); }); - describe('... should not render links in main text block yet to', () => { + describe('... should not render links in `div.awg-home-view-text` yet to', () => { it('... DSP', () => { - const dspDes = getAndExpectDebugElementByCss(compDe, 'a#dsp-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const dspDes = getAndExpectDebugElementByCss(divDes[0], 'a#dsp-link', 1, 1); const dspEl = dspDes[0].nativeElement; expect(dspEl).toBeDefined(); @@ -234,7 +186,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... DaSCH', () => { - const daschDes = getAndExpectDebugElementByCss(compDe, 'a#dasch-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const daschDes = getAndExpectDebugElementByCss(divDes[0], 'a#dasch-link', 1, 1); const daschEl = daschDes[0].nativeElement; expect(daschEl).toBeDefined(); @@ -242,7 +195,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... DaSCH mission', () => { - const daschMissionDes = getAndExpectDebugElementByCss(compDe, 'a#dasch-mission-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const daschMissionDes = getAndExpectDebugElementByCss(divDes[0], 'a#dasch-mission-link', 1, 1); const daschMissionEl = daschMissionDes[0].nativeElement; expect(daschMissionEl).toBeDefined(); @@ -250,7 +204,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... GitHub', () => { - const githubDes = getAndExpectDebugElementByCss(compDe, 'a#github-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const githubDes = getAndExpectDebugElementByCss(divDes[0], 'a#github-link', 1, 1); const githubEl = githubDes[0].nativeElement; expect(githubEl).toBeDefined(); @@ -258,13 +213,32 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... Compodoc', () => { - const compodocDes = getAndExpectDebugElementByCss(compDe, 'a#compodoc-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); const compodocEl = compodocDes[0].nativeElement; expect(compodocEl).toBeDefined(); expectToBe(compodocEl.href, ''); }); }); + + it('... should contain an AlertInfoComponent (stubbed) in `div.awg-home-view-text`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + }); + + it('... should not pass down infoMessage to AlertInfoComponent yet', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; + + expect(alertInfoCmp.infoMessage).toBeUndefined(); + }); + + it('... should contain one `div.awg-home-view-grid` in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-grid', 1, 1); + }); }); describe('#provideMetaData()', () => { @@ -304,102 +278,10 @@ fdescribe('HomeViewComponent (DONE)', () => { expectToBe(headingCmp.id, expectedId); }); - it('... should render bread crumb header in first div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - const headerDes = getAndExpectDebugElementByCss(divDes[0], 'h6.awg-breadcrumb', 1, 1); - const headerEl = headerDes[0].nativeElement; - - const expectedBreadCrumb = ` ${expectedEditionRouteConstants.EDITION.short} / ${expectedEditionRouteConstants.SERIES_1.full} / ${expectedEditionRouteConstants.SECTION_5.full} `; - - expectToBe(headerEl.textContent, expectedBreadCrumb); - }); - - it('... should render title of edition info headers in first div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - - const expectedLength = expectedEditionComplexes.slice(0, expectedSliceIndex).length; - const titleDes = getAndExpectDebugElementByCss( - divDes[0], - 'h4.awg-edition-info-header .awg-edition-info-header-title', - expectedLength, - expectedLength - ); - - titleDes.forEach((titleDe, index) => { - const titleEl = titleDe.nativeElement; - expectToBe( - titleEl.innerHTML, - expectedEditionComplexes.slice(0, expectedSliceIndex)[index].complexId.full - ); - }); - }); - - it('... should render edition type links in first div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - const aDes = getAndExpectDebugElementByCss(divDes[0], '.awg-edition-info-header a', 6, 6); - - const expectedTextContents = Array(5).fill(expectedEditionTypeConstants.SKETCH_EDITION.full); - // Last link is to edition graph - expectedTextContents.push(expectedEditionRouteConstants.EDITION_GRAPH.short); - - aDes.forEach((aDe, index) => { - const aEl = aDe.nativeElement; - - expect(aEl).toBeDefined(); - expectToBe(aEl.textContent, expectedTextContents[index]); - }); - }); - - it('... should render bread crumb header in second div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - const headerDes = getAndExpectDebugElementByCss(divDes[1], 'h6.awg-breadcrumb', 1, 1); - const headerEl = headerDes[0].nativeElement; - - const expectedBreadCrumb = ` ${expectedEditionRouteConstants.EDITION.short} / ${expectedEditionRouteConstants.SERIES_2.full} / ${expectedEditionRouteConstants.SECTION_2A.full} `; - - expectToBe(headerEl.textContent, expectedBreadCrumb); - }); - - it('... should render title of edition info headers in second div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - - const expectedLength = expectedEditionComplexes.slice(expectedSliceIndex).length; - const titleDes = getAndExpectDebugElementByCss( - divDes[1], - 'h4.awg-edition-info-header .awg-edition-info-header-title', - expectedLength, - expectedLength - ); - - titleDes.forEach((titleDe, index) => { - const titleEl = titleDe.nativeElement; - expectToBe( - titleEl.innerHTML, - expectedEditionComplexes.slice(expectedSliceIndex)[index].complexId.full - ); - }); - }); - - it('... should render edition type links in second div.para', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.para', 3, 3); - - const expectedLength = expectedEditionComplexes.slice(expectedSliceIndex).length; - const aDes = getAndExpectDebugElementByCss( - divDes[1], - '.awg-edition-info-header a', - expectedLength, - expectedLength - ); - - aDes.forEach((aDe, index) => { - const aEl = aDe.nativeElement; - expectToBe(aEl.textContent, expectedEditionTypeConstants.SKETCH_EDITION.full); - }); - }); - describe('... should render links to', () => { it('... DSP', () => { - const dspDes = getAndExpectDebugElementByCss(compDe, 'a#dsp-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const dspDes = getAndExpectDebugElementByCss(divDes[0], 'a#dsp-link', 1, 1); const dspEl = dspDes[0].nativeElement; const dspRoute = 'dsp-app'; @@ -410,7 +292,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... DaSCH', () => { - const daschDes = getAndExpectDebugElementByCss(compDe, 'a#dasch-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const daschDes = getAndExpectDebugElementByCss(divDes[0], 'a#dasch-link', 1, 1); const daschEl = daschDes[0].nativeElement; expect(daschEl).toBeDefined(); @@ -419,7 +302,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... DaSCH mission', () => { - const daschMissionDes = getAndExpectDebugElementByCss(compDe, 'a#dasch-mission-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const daschMissionDes = getAndExpectDebugElementByCss(divDes[0], 'a#dasch-mission-link', 1, 1); const daschMissionEl = daschMissionDes[0].nativeElement; const missionRoute = 'mission'; @@ -430,7 +314,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... GitHub', () => { - const githubDes = getAndExpectDebugElementByCss(compDe, 'a#github-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const githubDes = getAndExpectDebugElementByCss(divDes[0], 'a#github-link', 1, 1); const githubEl = githubDes[0].nativeElement; expect(githubEl).toBeDefined(); @@ -439,7 +324,8 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... Compodoc', () => { - const compodocDes = getAndExpectDebugElementByCss(compDe, 'a#compodoc-link', 1, 1); + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); const compodocEl = compodocDes[0].nativeElement; expect(compodocEl).toBeDefined(); @@ -447,6 +333,14 @@ fdescribe('HomeViewComponent (DONE)', () => { expectToBe(compodocEl.textContent, 'dokumentiert'); }); }); + + it('... should pass down infoMessage to AlertInfoComponent yet', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; + + expectToBe(alertInfoCmp.infoMessage, expectedDisclaimerInfoMessage); + }); }); describe('#provideMetaData()', () => { @@ -508,8 +402,8 @@ fdescribe('HomeViewComponent (DONE)', () => { linkDes = getAndExpectDebugElementByDirective( compDe, RouterLinkStubDirective, - expectedOrderOfRouterlinks.length, - expectedOrderOfRouterlinks.length + expectedRouterlinks.length, + expectedRouterlinks.length ); // Get attached link directive instances using each DebugElement's injector @@ -517,19 +411,19 @@ fdescribe('HomeViewComponent (DONE)', () => { }); it('... can get correct number of routerLinks from template', () => { - expectToBe(routerLinks.length, expectedOrderOfRouterlinks.length); + expectToBe(routerLinks.length, expectedRouterlinks.length); }); it('... can get correct linkParams from template', () => { routerLinks.forEach((routerLink, index) => { - expectToEqual(routerLink.linkParams, expectedOrderOfRouterlinks[index]); + expectToEqual(routerLink.linkParams, expectedRouterlinks[index]); }); }); it('... can click all links in template', () => { routerLinks.forEach((routerLink, index) => { const linkDe = linkDes[index]; - const expectedRouterLink = expectedOrderOfRouterlinks[index]; + const expectedRouterLink = expectedRouterlinks[index]; expectToBe(routerLink.navigatedTo, null); diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index 9ca1ff32e9..5049850d3a 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -1,13 +1,11 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; import { faArrowRight } from '@fortawesome/free-solid-svg-icons'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; -import { EDITION_ROUTE_CONSTANTS, EDITION_TYPE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; -import { EditionComplex } from '@awg-views/edition-view/models'; -import { EditionComplexesService } from '@awg-views/edition-view/services'; +import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; +import { EditionOutlineService } from '@awg-views/edition-view/services'; /** * The HomeView component. @@ -29,13 +27,21 @@ export class HomeViewComponent implements OnInit { */ faArrowRight = faArrowRight; + /** + * Public variable: disclaimerInfoMessage. + * + * It keeps the disclaimer info message for the home view section. + */ + disclaimerInfoMessage = + 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; + /** * Public variable: homeViewTitle. * * It keeps the title for the heading component * of the home view section. */ - homeViewTitle = 'AWG-APP: die Online-Edition der Anton Webern Gesamtausgabe'; + homeViewTitle = 'Anton Webern Gesamtausgabe: Online-Edition'; /** * Public variable: homeId. @@ -53,44 +59,24 @@ export class HomeViewComponent implements OnInit { pageMetaData: MetaPage; /** - * Readonly variable: DISPLAYED_EDITION_COMPLEXES. + * Readonly variable: DISPLAYED_SECTIONS. * - * It keeps the array of displayed edition complexes. + * It keeps the array of displayed sections. */ - readonly DISPLAYED_EDITION_COMPLEXES: EditionComplex[] = [ - EditionComplexesService.getEditionComplexById('OP3'), - EditionComplexesService.getEditionComplexById('OP4'), - EditionComplexesService.getEditionComplexById('OP12'), - EditionComplexesService.getEditionComplexById('OP23'), - EditionComplexesService.getEditionComplexById('OP25'), - EditionComplexesService.getEditionComplexById('M22'), - EditionComplexesService.getEditionComplexById('M30'), - EditionComplexesService.getEditionComplexById('M31'), - EditionComplexesService.getEditionComplexById('M34'), - EditionComplexesService.getEditionComplexById('M35_42'), - EditionComplexesService.getEditionComplexById('M37'), + readonly DISPLAYED_SECTIONS = [ + EditionOutlineService.getEditionSectionById('1', '5'), + EditionOutlineService.getEditionSectionById('2', '2a'), ]; - /** - * Readonly variable: sliceIndex. - * - * It keeps the index for the slice of edition complexes. - */ - readonly SLICE_INDEX = 5; - /** * Constructor of the HomeViewComponent. * * It declares a private CoreService instance - * to get the metadata and a private Router instance. + * to get the metadata. * * @param {CoreService} coreService Instance of the CoreService. - * @param {Router} router Instance of the Angular router. */ - constructor( - private coreService: CoreService, - private router: Router - ) {} + constructor(private coreService: CoreService) {} /** * Getter variable: editionRouteConstants. @@ -101,15 +87,6 @@ export class HomeViewComponent implements OnInit { return EDITION_ROUTE_CONSTANTS; } - /** - * Getter variable: editionTypeConstants. - * - * It returns the EDITION_TYPES. - **/ - get editionTypeConstants(): typeof EDITION_TYPE_CONSTANTS { - return EDITION_TYPE_CONSTANTS; - } - /** * Angular life cycle hook: ngOnInit. * From 8ce8dd7f9535aa138b7b73546d622749e7c1f3b0 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Fri, 25 Oct 2024 16:01:12 +0200 Subject: [PATCH 192/213] refactor(home): move home cards into separate component --- src/app/app.module.ts | 11 +- .../services/edition-data.service.spec.ts | 1 - .../home-view/data/home-view-card.data.ts | 41 +++ src/app/views/home-view/data/index.ts | 11 + .../home-view-card.component.html | 22 ++ .../home-view-card.component.scss | 5 + .../home-view-card.component.spec.ts | 284 ++++++++++++++++++ .../home-view-card.component.ts | 33 ++ .../views/home-view/home-view-card/index.ts | 1 + .../views/home-view/home-view.component.html | 50 +-- .../views/home-view/home-view.component.scss | 6 - .../home-view/home-view.component.spec.ts | 90 +++++- .../views/home-view/home-view.component.ts | 29 +- src/app/views/home-view/home-view.module.ts | 7 +- .../home-view/models/home-view-card.model.ts | 42 +++ src/app/views/home-view/models/index.ts | 12 + src/assets/img/home/database_sample.png | Bin 0 -> 30151 bytes 17 files changed, 568 insertions(+), 77 deletions(-) create mode 100644 src/app/views/home-view/data/home-view-card.data.ts create mode 100644 src/app/views/home-view/data/index.ts create mode 100644 src/app/views/home-view/home-view-card/home-view-card.component.html create mode 100644 src/app/views/home-view/home-view-card/home-view-card.component.scss create mode 100644 src/app/views/home-view/home-view-card/home-view-card.component.spec.ts create mode 100644 src/app/views/home-view/home-view-card/home-view-card.component.ts create mode 100644 src/app/views/home-view/home-view-card/index.ts create mode 100644 src/app/views/home-view/models/home-view-card.model.ts create mode 100644 src/app/views/home-view/models/index.ts create mode 100644 src/assets/img/home/database_sample.png diff --git a/src/app/app.module.ts b/src/app/app.module.ts index c266b3fc34..6aa2fe5688 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -10,6 +10,7 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { CoreModule } from '@awg-core/core.module'; import { SharedModule } from '@awg-shared/shared.module'; import { SideInfoModule } from '@awg-side-info/side-info.module'; +import { HomeViewModule } from '@awg-views/home-view/home-view.module'; import { AppComponent } from './app.component'; /* Routing Module */ @@ -25,7 +26,15 @@ registerLocaleData(localeDeDE); * as well as the {@link CoreModule}, {@link SharedModule} and {@link SideInfoModule}. */ @NgModule({ - imports: [BrowserModule, BrowserAnimationsModule, CoreModule, SharedModule, SideInfoModule, AppRoutingModule], + imports: [ + BrowserModule, + BrowserAnimationsModule, + CoreModule, + HomeViewModule, + SharedModule, + SideInfoModule, + AppRoutingModule, + ], declarations: [AppComponent, routedAppComponents], providers: [ { provide: LOCALE_ID, useValue: 'de-DE' }, // Change global LOCALE-ID diff --git a/src/app/views/edition-view/services/edition-data.service.spec.ts b/src/app/views/edition-view/services/edition-data.service.spec.ts index c88b89715d..21de39be29 100644 --- a/src/app/views/edition-view/services/edition-data.service.spec.ts +++ b/src/app/views/edition-view/services/edition-data.service.spec.ts @@ -647,7 +647,6 @@ describe('EditionDataService (DONE)', () => { editionDataService.getEditionSectionIntroData(expectedSeriesRoute, expectedSectionRoute).subscribe({ next: res => { expect(res).toBeTruthy(); - console.log('res', res); }, error: () => { fail('should not call error'); diff --git a/src/app/views/home-view/data/home-view-card.data.ts b/src/app/views/home-view/data/home-view-card.data.ts new file mode 100644 index 0000000000..ac6637aab3 --- /dev/null +++ b/src/app/views/home-view/data/home-view-card.data.ts @@ -0,0 +1,41 @@ +import { HomeViewCard } from '@awg-views/home-view/models'; + +/** + * The HOME_VIEW_CARD_DATA constant. + * + * It contains the data for the home view cards. + */ +export const HOME_VIEW_CARD_DATA: HomeViewCard[] = [ + { + title: 'Editionsübersicht', + text: 'Entdecken Sie die Online-Edition und ihre Inhalte.', + imgSrc: 'assets/img/home/edition_sample.jpg', + imgAlt: 'Edition Overview', + linkRouter: ['/edition', 'series'], + linkText: 'Zur Editionsübersicht', + }, + { + title: 'Graph-Visualisierungen (beta)', + text: 'Erkunden Sie die graphische Repräsentation der Editionsdaten.', + imgSrc: 'assets/img/home/graph_sample.png', + imgAlt: 'Graph', + linkRouter: ['/edition', 'complex', 'op25', 'graph'], + linkText: 'Zu den Graph-Visualisierungen', + }, + { + title: 'Datenbank-Suche', + text: 'Finden Sie biografische und werkgeschichtliche Kontextinformationen in der DSP-Datenbank.', + imgSrc: 'assets/img/home/database_sample.png', + imgAlt: 'Search', + linkHref: 'https://app.dasch.swiss/project/ot7I2nU-SdeXIf17LX_h3g', + linkText: 'Zur Datenbank-Suche', + }, + { + title: 'Anton Webern Gesamtausgabe', + text: 'Informieren Sie sich über die Anton Webern Gesamtausgabe, die Webern-Forschung und Anton Webern.', + imgSrc: 'assets/img/home/awg.jpg', + imgAlt: 'Edition Project', + linkHref: 'https://anton-webern.ch/', + linkText: 'Zur Projekt-Website', + }, +]; diff --git a/src/app/views/home-view/data/index.ts b/src/app/views/home-view/data/index.ts new file mode 100644 index 0000000000..847203e17a --- /dev/null +++ b/src/app/views/home-view/data/index.ts @@ -0,0 +1,11 @@ +/** + * + * HomeData + * + * This file exports data that is used + * for the Home view. + * + */ +import { HOME_VIEW_CARD_DATA } from './home-view-card.data'; + +export { HOME_VIEW_CARD_DATA }; diff --git a/src/app/views/home-view/home-view-card/home-view-card.component.html b/src/app/views/home-view/home-view-card/home-view-card.component.html new file mode 100644 index 0000000000..2c9effb835 --- /dev/null +++ b/src/app/views/home-view/home-view-card/home-view-card.component.html @@ -0,0 +1,22 @@ +
+ +
+
{{ cardData.title }}
+

{{ cardData.text }}

+
+ +
diff --git a/src/app/views/home-view/home-view-card/home-view-card.component.scss b/src/app/views/home-view/home-view-card/home-view-card.component.scss new file mode 100644 index 0000000000..0664e9a687 --- /dev/null +++ b/src/app/views/home-view/home-view-card/home-view-card.component.scss @@ -0,0 +1,5 @@ +.card-img-top { + height: 200px; + object-fit: cover; + border-bottom: 1px solid var(--bs-card-border-color); +} diff --git a/src/app/views/home-view/home-view-card/home-view-card.component.spec.ts b/src/app/views/home-view/home-view-card/home-view-card.component.spec.ts new file mode 100644 index 0000000000..30d0029f34 --- /dev/null +++ b/src/app/views/home-view/home-view-card/home-view-card.component.spec.ts @@ -0,0 +1,284 @@ +import { DebugElement } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FontAwesomeTestingModule } from '@fortawesome/angular-fontawesome/testing'; +import { faArrowRight, IconDefinition } from '@fortawesome/free-solid-svg-icons'; + +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { + expectToBe, + expectToContain, + expectToEqual, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; +import { RouterLinkStubDirective } from '@testing/router-stubs'; + +import { HomeViewCard } from '@awg-views/home-view/models'; + +import { click } from '@testing/click-helper'; +import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; +import { HomeViewCardComponent } from './home-view-card.component'; + +describe('HomeViewCardComponent (DONE)', () => { + let component: HomeViewCardComponent; + let fixture: ComponentFixture; + let compDe: DebugElement; + + let linkDes: DebugElement[]; + let routerLinks; + + let expectedCardData: HomeViewCard; + let expectedFaArrowRight: IconDefinition; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [FontAwesomeTestingModule], + declarations: [HomeViewCardComponent, RouterLinkStubDirective], + }).compileComponents(); + + fixture = TestBed.createComponent(HomeViewCardComponent); + component = fixture.componentInstance; + compDe = fixture.debugElement; + + // Test data + expectedCardData = { + title: 'Test Title', + text: 'Test Text', + imgSrc: 'assets/img/home/edition_sample.jpg', + imgAlt: 'Test Alt', + linkRouter: ['/test', 'route'], + linkText: 'Test Link', + }; + expectedFaArrowRight = faArrowRight; + }); + + afterAll(() => { + cleanStylesFromDOM(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('BEFORE initial data binding', () => { + it('... should not have cardData', () => { + expect(component.cardData).toBeUndefined(); + }); + + it('... should have faArrowRight', () => { + expectToEqual(component.faArrowRight, expectedFaArrowRight); + }); + + describe('VIEW', () => { + it('... should contain one shadowed, centered `div.awg-home-view-card`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const divEl = divDes[0].nativeElement; + + expectToContain(divEl.classList, 'shadow'); + expectToContain(divEl.classList, 'text-center'); + }); + + it('... should contain one empty `img` in `div.awg-home-view-card`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + + const imgDes = getAndExpectDebugElementByCss(divDes[0], 'img', 1, 1); + const imgEl = imgDes[0].nativeElement; + + expectToBe(imgEl.src, ''); + expectToBe(imgEl.alt, ''); + }); + + it('... should contain one `div.card-body` in `div.awg-home-view-card`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + + getAndExpectDebugElementByCss(divDes[0], 'div.card-body', 1, 1); + }); + + it('... should contain one empty h5 title in `div.card-body`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-body', 1, 1); + + const titleDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const titleEl = titleDes[0].nativeElement; + + expectToBe(titleEl.textContent, ''); + }); + + it('... should contain one empty paragraph text in `div.card-body`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-body', 1, 1); + + const textDes = getAndExpectDebugElementByCss(bodyDes[0], 'p.card-text', 1, 1); + const textEl = textDes[0].nativeElement; + + expectToBe(textEl.textContent, ''); + }); + + it('... should contain one empty `div.card-footer` in `div.awg-home-view-card`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + const footerEl = footerDes[0].nativeElement; + + expectToBe(footerEl.textContent, ''); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent setting the input properties + component.cardData = expectedCardData; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('should have `cardData` input', () => { + expectToEqual(component.cardData, expectedCardData); + }); + + describe('VIEW', () => { + it('... should display `img` in `div.awg-home-view-card`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + + const imgDes = getAndExpectDebugElementByCss(divDes[0], 'img', 1, 1); + const imgEl = imgDes[0].nativeElement; + + expectToContain(imgEl.src, expectedCardData.imgSrc); + expectToBe(imgEl.alt, expectedCardData.imgAlt); + }); + + it('... should display h5 title in `div.card-body`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-body', 1, 1); + + const titleDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5.card-title', 1, 1); + const titleEl = titleDes[0].nativeElement; + + expectToBe(titleEl.textContent, expectedCardData.title); + }); + + it('... should display paragraph text in `div.card-body`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const bodyDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-body', 1, 1); + + const textDes = getAndExpectDebugElementByCss(bodyDes[0], 'p.card-text', 1, 1); + const textEl = textDes[0].nativeElement; + + expectToBe(textEl.textContent, expectedCardData.text); + }); + + describe('... with routerLink', () => { + it('... should have one info link button without href in `div.card-footer`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + const aEl = aDes[0].nativeElement; + + expectToBe(aEl.href, ''); + + expectToContain(aEl.classList, 'btn'); + expectToContain(aEl.classList, 'btn-info'); + expectToContain(aEl.classList, 'text-light'); + }); + + it('... should display arrow icon on the info link button', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + + const faIconDes = getAndExpectDebugElementByCss(aDes[0], 'fa-icon', 1, 1); + const faIconIns = faIconDes[0].componentInstance.icon; + + expectToEqual(faIconIns, faArrowRight); + }); + + it('... should display link text on the info link button', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + const aEl = aDes[0].nativeElement; + + expectToBe(aEl.textContent.trim(), expectedCardData.linkText); + }); + }); + + describe('... with href', () => { + beforeEach(() => { + component.cardData.linkRouter = undefined; + component.cardData.linkHref = 'https://www.anton-webern.ch/'; + + detectChangesOnPush(fixture); + }); + + it('... should have one info link button with href in `div.card-footer`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + const aEl = aDes[0].nativeElement; + + expectToBe(aEl.href, expectedCardData.linkHref); + + expectToContain(aEl.classList, 'btn'); + expectToContain(aEl.classList, 'btn-info'); + expectToContain(aEl.classList, 'text-light'); + }); + + it('... should display arrow icon on the info link button', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + + const faIconDes = getAndExpectDebugElementByCss(aDes[0], 'fa-icon', 1, 1); + const faIconIns = faIconDes[0].componentInstance.icon; + + expectToEqual(faIconIns, faArrowRight); + }); + + it('... should display link text on the info link button', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-card', 1, 1); + const footerDes = getAndExpectDebugElementByCss(divDes[0], 'div.card-footer', 1, 1); + const aDes = getAndExpectDebugElementByCss(footerDes[0], 'a.btn', 1, 1); + const aEl = aDes[0].nativeElement; + + expectToBe(aEl.textContent.trim(), expectedCardData.linkText); + }); + }); + }); + + describe('[routerLink]', () => { + beforeEach(() => { + // Find DebugElements with an attached RouterLinkStubDirective + linkDes = getAndExpectDebugElementByDirective(compDe, RouterLinkStubDirective, 1, 1); + + // Get attached link directive instances using each DebugElement's injector + routerLinks = linkDes.map(de => de.injector.get(RouterLinkStubDirective)); + }); + + it('... can get correct number of routerLinks from template', () => { + expectToBe(routerLinks.length, 1); + }); + + it('... can get correct linkParams from template', () => { + const expectedRouterLink = expectedCardData.linkRouter; + expectToEqual(routerLinks[0].linkParams, expectedRouterLink); + }); + + it('... can click all links in template', () => { + const linkDe = linkDes[0]; + const expectedRouterLink = expectedCardData.linkRouter; + + expectToBe(routerLinks[0].navigatedTo, null); + + click(linkDe); + fixture.detectChanges(); + + expectToEqual(routerLinks[0].navigatedTo, expectedRouterLink); + }); + }); + }); +}); diff --git a/src/app/views/home-view/home-view-card/home-view-card.component.ts b/src/app/views/home-view/home-view-card/home-view-card.component.ts new file mode 100644 index 0000000000..292ef5ab21 --- /dev/null +++ b/src/app/views/home-view/home-view-card/home-view-card.component.ts @@ -0,0 +1,33 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { faArrowRight } from '@fortawesome/free-solid-svg-icons'; + +import { HomeViewCard } from '@awg-views/home-view/models'; + +/** + * The HomeViewCard component. + * + * It contains the home card + * for the home view of the app. + */ +@Component({ + selector: 'awg-home-view-card', + templateUrl: './home-view-card.component.html', + styleUrls: ['./home-view-card.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class HomeViewCardComponent { + /** + * Input variable: cardData. + * + * It keeps the data for the home view card. + */ + @Input() cardData: HomeViewCard; + + /** + * Public variable: faArrowRight. + * + * It instantiates fontawesome's faArrowRight icon. + */ + faArrowRight = faArrowRight; +} diff --git a/src/app/views/home-view/home-view-card/index.ts b/src/app/views/home-view/home-view-card/index.ts new file mode 100644 index 0000000000..10afebbc16 --- /dev/null +++ b/src/app/views/home-view/home-view-card/index.ts @@ -0,0 +1 @@ +export * from './home-view-card.component'; diff --git a/src/app/views/home-view/home-view.component.html b/src/app/views/home-view/home-view.component.html index e80ee02504..4cb185c724 100644 --- a/src/app/views/home-view/home-view.component.html +++ b/src/app/views/home-view/home-view.component.html @@ -69,52 +69,12 @@
-
-
-
- Edition Overview -
-
Editionsübersicht
-

Entdecken Sie die Online-Edition und ihre Inhalte.

-
- -
-
-
-
- Graph -
-
Graph-Visualisierungen (beta)
-

Erkunden Sie die graphische Repräsentation der Editionsdaten.

-
- -
-
-
-
- Edition Project -
-
Anton Webern Gesamtausgabe
-

- Informieren Sie sich über die Anton Webern Gesamtausgabe, die Webern-Forschung und Anton - Webern. -

-
- +
+ @for (cardData of homeViewCardData; track $index) { +
+
-
+ }
diff --git a/src/app/views/home-view/home-view.component.scss b/src/app/views/home-view/home-view.component.scss index 9998eec341..44fea346a9 100644 --- a/src/app/views/home-view/home-view.component.scss +++ b/src/app/views/home-view/home-view.component.scss @@ -2,9 +2,3 @@ text-align: justify; text-justify: inter-word; } - -.card-img-top { - height: 200px; - object-fit: cover; - border-bottom: 1px solid var(--bs-card-border-color); -} diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index 8c0ca3128c..79fe4fbed8 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -4,8 +4,6 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import Spy = jasmine.Spy; -import { FontAwesomeTestingModule } from '@fortawesome/angular-fontawesome/testing'; - import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { click } from '@testing/click-helper'; import { @@ -23,10 +21,18 @@ import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineSection } from '@awg-views/edition-view/models'; import { EditionComplexesService, EditionOutlineService } from '@awg-views/edition-view/services'; +import { HOME_VIEW_CARD_DATA } from '@awg-views/home-view/data'; +import { HomeViewCard } from '@awg-views/home-view/models'; import { HomeViewComponent } from './home-view.component'; // Mock heading component +@Component({ selector: 'awg-alert-info', template: '' }) +class AlertInfoStubComponent { + @Input() + infoMessage: string; +} + @Component({ selector: 'awg-heading', template: '' }) class HeadingStubComponent { @Input() @@ -35,10 +41,10 @@ class HeadingStubComponent { id: string; } -@Component({ selector: 'awg-alert-info', template: '' }) -class AlertInfoStubComponent { +@Component({ selector: 'awg-home-view-card', template: '' }) +class HomeViewCardStubComponent { @Input() - infoMessage: string; + cardData: HomeViewCard; } /** Helper function */ @@ -47,7 +53,13 @@ function getRouterlinks(sections: EditionOutlineSection[]): string[][] { const structureLinks = [['/structure']]; - const sectionLinks = sections.map(section => [EDITION.route, SERIES.route, section?.seriesParent?.route, SECTION.route, section?.section?.route]); + const sectionLinks = sections.map(section => [ + EDITION.route, + SERIES.route, + section?.seriesParent?.route, + SECTION.route, + section?.section?.route, + ]); const otherLinks = [ ['/edition', ROWTABLES.route], @@ -59,7 +71,7 @@ function getRouterlinks(sections: EditionOutlineSection[]): string[][] { return [...structureLinks, ...sectionLinks, ...otherLinks]; } -fdescribe('HomeViewComponent (DONE)', () => { +describe('HomeViewComponent (DONE)', () => { let component: HomeViewComponent; let fixture: ComponentFixture; let compDe: DebugElement; @@ -67,10 +79,11 @@ fdescribe('HomeViewComponent (DONE)', () => { let linkDes: DebugElement[]; let routerLinks; + const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; let expectedTitle: string; let expectedId: string; let expectedDisclaimerInfoMessage: string; - const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; + let expectedHomeViewCardData: HomeViewCard[]; let expectedPageMetaData: MetaPage; let expectedSections: EditionOutlineSection[]; @@ -83,8 +96,13 @@ fdescribe('HomeViewComponent (DONE)', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [FontAwesomeTestingModule], - declarations: [HomeViewComponent, AlertInfoStubComponent, HeadingStubComponent, RouterLinkStubDirective], + declarations: [ + HomeViewComponent, + AlertInfoStubComponent, + HeadingStubComponent, + HomeViewCardStubComponent, + RouterLinkStubDirective, + ], }).compileComponents(); })); @@ -98,6 +116,7 @@ fdescribe('HomeViewComponent (DONE)', () => { expectedId = 'awg-home-view'; expectedDisclaimerInfoMessage = 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; + expectedHomeViewCardData = HOME_VIEW_CARD_DATA; expectedPageMetaData = METADATA[MetaSectionTypes.page]; expectedSections = [ EditionOutlineService.getEditionSectionById('1', '5'), @@ -142,6 +161,10 @@ fdescribe('HomeViewComponent (DONE)', () => { expectToBe(component.disclaimerInfoMessage, expectedDisclaimerInfoMessage); }); + it('... should have `homeViewCardData`', () => { + expectToEqual(component.homeViewCardData, expectedHomeViewCardData); + }); + it('... should not have pageMetaData', () => { expect(component.pageMetaData).toBeUndefined(); }); @@ -239,6 +262,11 @@ fdescribe('HomeViewComponent (DONE)', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-grid', 1, 1); }); + + it('... should not contain any HomeViewCardComponent in `div.awg-home-view-grid` yet', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], HomeViewCardStubComponent, 0, 0); + }); }); describe('#provideMetaData()', () => { @@ -334,13 +362,53 @@ fdescribe('HomeViewComponent (DONE)', () => { }); }); - it('... should pass down infoMessage to AlertInfoComponent yet', () => { + it('... should pass down infoMessage to AlertInfoComponent', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; expectToBe(alertInfoCmp.infoMessage, expectedDisclaimerInfoMessage); }); + + it('... should contain as many `div.col` in `div.awg-home-view-grid` as entries in `homeViewCardData`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); + + getAndExpectDebugElementByCss( + divDes[0], + 'div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + }); + + it('... should contain as many HomeViewCardComponents in `div.awg-home-view-grid > div.col` as entries in `homeViewCardData`', () => { + const colDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-home-view-grid > div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + + colDes.forEach(colDe => { + getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); + }); + }); + + it('... should pass down `cardData` to HomeViewCardComponents', () => { + const colDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-home-view-grid > div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + + colDes.forEach((colDe, index) => { + const cardDes = getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); + const cardCmp = cardDes[0].injector.get(HomeViewCardStubComponent) as HomeViewCardStubComponent; + + expectToEqual(cardCmp.cardData, expectedHomeViewCardData[index]); + }); + }); }); describe('#provideMetaData()', () => { diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index 5049850d3a..e811b4a33f 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -1,17 +1,19 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; - -import { faArrowRight } from '@fortawesome/free-solid-svg-icons'; +import { Router } from '@angular/router'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineService } from '@awg-views/edition-view/services'; +import { HOME_VIEW_CARD_DATA } from '@awg-views/home-view/data'; +import { HomeViewCard } from '@awg-views/home-view/models'; + /** * The HomeView component. * * It contains the home view section of the app - * with basic information about the application. + * with the landing page. */ @Component({ selector: 'awg-home-view', @@ -20,13 +22,6 @@ import { EditionOutlineService } from '@awg-views/edition-view/services'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class HomeViewComponent implements OnInit { - /** - * Public variable: faArrowRight. - * - * It instantiates fontawesome's faArrowRight icon. - */ - faArrowRight = faArrowRight; - /** * Public variable: disclaimerInfoMessage. * @@ -51,10 +46,17 @@ export class HomeViewComponent implements OnInit { */ homeViewId = 'awg-home-view'; + /** + * Public variable: homeViewCardData. + * + * It keeps the data for the home view cards. + */ + homeViewCardData: HomeViewCard[] = HOME_VIEW_CARD_DATA; + /** * Public variable: pageMetaData. * - * It keeps the page metadata for the contact view. + * It keeps the page metadata for the home view. */ pageMetaData: MetaPage; @@ -76,7 +78,10 @@ export class HomeViewComponent implements OnInit { * * @param {CoreService} coreService Instance of the CoreService. */ - constructor(private coreService: CoreService) {} + constructor( + private coreService: CoreService, + private router: Router + ) {} /** * Getter variable: editionRouteConstants. diff --git a/src/app/views/home-view/home-view.module.ts b/src/app/views/home-view/home-view.module.ts index 615d765cf1..3335048dc6 100644 --- a/src/app/views/home-view/home-view.module.ts +++ b/src/app/views/home-view/home-view.module.ts @@ -1,12 +1,17 @@ import { NgModule } from '@angular/core'; import { SharedModule } from '@awg-shared/shared.module'; +import { HomeViewCardComponent } from './home-view-card/home-view-card.component'; + /** * The homeView module. * - * It embeds the {@link SharedModule}. + * It embeds the home components + * as well as the {@link SharedModule}. */ @NgModule({ imports: [SharedModule], + declarations: [HomeViewCardComponent], + exports: [HomeViewCardComponent], }) export class HomeViewModule {} diff --git a/src/app/views/home-view/models/home-view-card.model.ts b/src/app/views/home-view/models/home-view-card.model.ts new file mode 100644 index 0000000000..243439632a --- /dev/null +++ b/src/app/views/home-view/models/home-view-card.model.ts @@ -0,0 +1,42 @@ +/** + * The HomeViewCard class. + * + * It is used in the context of the home view + * to store the data for a home view card. + */ +export class HomeViewCard { + /** + * The image source for the home view card. + */ + imgSrc: string; + + /** + * The image alt for the home view card. + */ + imgAlt: string; + + /** + * The title for the home view card. + */ + title: string; + + /** + * The text for the home view card. + */ + text: string; + + /** + * The router link for the home view card. + */ + linkRouter?: string | any[]; + + /** + * The href for the home view card. + */ + linkHref?: string; + + /** + * The link text for the home view card. + */ + linkText: string; +} diff --git a/src/app/views/home-view/models/index.ts b/src/app/views/home-view/models/index.ts new file mode 100644 index 0000000000..922453a396 --- /dev/null +++ b/src/app/views/home-view/models/index.ts @@ -0,0 +1,12 @@ +/** + * + * HomeViewModels + * + * This file exports models that are used + * for the Home view. + * + */ + +import { HomeViewCard } from './home-view-card.model'; + +export { HomeViewCard }; diff --git a/src/assets/img/home/database_sample.png b/src/assets/img/home/database_sample.png new file mode 100644 index 0000000000000000000000000000000000000000..9992d396427d097b32532d2c67173553b43a08ed GIT binary patch literal 30151 zcmce-1yEf<6E28`0Kr{vaJLZLf(LhZ2=49{TrLva-Ql7ax8UyX?(WW#|9|gQ?N)8A zRqd&|b95-PVKH6C zfX@mFcFu!A^eL>zj$xspq10S>j1a1x=ceBD<_W7h_C51@Sy23EQ=iwFE`$oDfBbFb zVrlf|BfM%0_t=%n-lG%MPwN%ai~ArA?TOI)ML8%(#=`!U8uPC!S+(0T%a_+%f$#6X zD3PB(>F-}6T5zF#Ty2<;^1ic;-1|Md$A6#V2cwL9aJh|PJtEUWWJ0`en?ydYx#OTR zDB{<#u$^+v9Fs-= z>Dets1c5}w_-V`Q2P!4QntxSjqxis=LwUe*RA&Et+u9F7Dph!l4>_Ex!Xc=0jf|=n zj&Xf-+7a)GMYdN}*{W^c@wA)l;gDSxFZTO0HdUD`+u1+lo*X_7LiS4nJ&@6IAtO3Y;GeDPp9o1wNpq8wnqhw|4l!m$gf`wo z+%47`o)va;dhkQs=NT$Lw-^8|42BDpo|b+jQ9f2X&Y^otroCBw{zha5l7kHL%n&bh z@L1v^J_a5{^eYfpP_Lj*BEQ`WO7GY zzUZncV>-X~eyCNsC8UqKW~r3cK`rz#hfH89S#H4`w4?n+4=)}yKCj1GJWKnobNsuk z_T1lzF)pr)HB{6Z!!J7>69&KLi;K+&`S${(=h?UVj$|9_tBB7sGogFLN_OFmYr%ij z+ER0DnzpDj1yK6#tfSW7mV-LxiF)!yd2Yb}=0aE29NDiy=*;lsWYp|&P&&QY3%Ur5 zYPR5c_01xYrc^FPq_^+LNG@cb?#vB!C$GnKql_ zB&Hmnf(q?RsN$`&@O1YR`BG*6>y2b8s&KdFw2%|zyQdbV@mgtfWm>&YcP@(xX9-ho zcE`o-Fav*s2XIM#1@-br{Qgx%lytajZZkS*pslpSO$F&QPq5-u7WwRFt5)8?IGl#gCpQ zV@*`vV5yj-SA~HeZh_V&t*8Ra z>s#Bv^%CY?#JKHYhx=4tUa~a7Ks*i2V9|c{(w#LBkJn@wDN_9;V~|7@ow^$%0LWct z>(^rS>8>tInr#hCcU(&8&Wh>pCFJxL&B{&ELyZ~%L|?L^kTM^(3;#1jASQHn{EPS1 zGrkCKs89$@N7}I~!{@fO;;428i%u>zWN(|k*!c<=OiN?p#l zgSYGx;u05LTbhbr$VvYwk?qS#850RFLM1;1p~F$%&jue$`{Oc+x`eO(e9>bC6#gV%Go%S z_cp<_nP>Lr=5ttjO^*9QSRxxGdq(F3)~9IZ(B$`=z2r=Ow`kS0tXc++Lhva=FO zD{~BpPkrhc!oE@5x{s^>xsSqM+0-b&^N7}i?r>tt;0?M2NJEgZLN;Gd1RM`+3A!rK&2QR~!bm4~~}W zNiRyrSm)vDGjov=$IEOh5MKxyR079M5PBNSaW$Xl~nXvd{$dY}9T z^&VvPHx;OBHhZh%^>!+!-tIy6TUhw=2V$U!+(S1R3PUDUa?4MH6TS^#n3Bm>24pvy z9Rmm{tH1{-?W_2lRk6|(Q5O4Yn98&8h9jGZ9=^Dcwe`5+Q+(Kc6NLAPJzHP&Qc{7J z!P6sQ&y)m_!jkGUEsD0kpibYmo2HZl)LS2p0I_H?`;odOxvEE6d;IH|o6+uorrpe5 z$SF~PzY@b#eEimzbwB;nh?QzX0qONEAnQ?My@5wZ_>!j~YO4X~o9Sbw6P8~`#{-(U z3>+|)?)LRL!~cFLw%C~4EE12CO~DQn;>cC*E73QmodHH&EpO-fS@n7SqqIz`g2dDxo>a*|- z>}?U+?5?OrlYNY&8CmZy%#=0(O$aSpTgKC@&!7jr?#}4`4HvsD{iNkF;<)A;5r+9- zb?*aiLqovULjljz)WZ<=cxANt`E(bk{JH1kDpxV>yxPIuc3`{O=*2{Tr3rfhQ)S7^?TSPGD-tUr1F#D^K zd^9J49_tqPOFp9ht9SJ0<#BVFA+q`;t3gt^N8s)|D6C84_bQ*twO zRHt8*pV-R`oA;I+q7gP<&$~0D>Mw^tPRDeitG~J2GB{tUkqe(b5x}jHB+b_pKxCx^8rLda*E-Hdk z^#CYN!*lK1{Z)vVaD8h&OcFpZRj9`eb}{pNtFYXjr7b|UM&rziw|@M4PytuhcD;WD zDT7gi0DTOeDHDf;qoU&c71cwu4#r))a*kZHytGc8Mk^FIf$P3^>SF5DKKSko=W;R; zEU@-FBDDe9vO%o4y0xM?S0Yy^UE6FH1fO2#&Ar+ds8pyjts%>KH2#Qu$CpuD%B5CR zQfRbx3Agr*sBQ+&$nZG$fNv17T`a*~nG=+${u^yH)yNB7w76jpxhI+o=nwA6^%4nLGer5Cn;3AB!zQ7Jts1qC@cb}KCR@Q7L=;jvPkv)_N1UjYDUE*I zC$gq+d}oylTSPTPS6{55lMz`z>Bt$UC=jWOd-a#-i)h0^O8Z!>EC5DCO|yqxz(-jPi!U^UY!j4+edl5tg|TpIbtNMg=;@9p{V=Q5Y0{KI<)G7fxVSJF?!Dvd9cjx|Qf5)roJb z%G^v1ByWro^pw=!bQND5x4?AS|8MI zKioVhIqxhMa1ksGH`?X5sU;(Wh9BL3#_G^+TJ@Zi7!yopAl}j6FTq9=`nkJJX!P>$ zxMP*iA&QyC&#X$ixkou~Eq?WTA1>$djXvFz*2PXQz=x#h4zvz{ku>W!<&UM4r3cY( zzjC$fAhR-0r_G_XM=sdk`uIRzOxXwq`-t0j2+wn-DBl_0c|{}}>+bX4Y3 zI9l`l!u(*O8PCg_SijfacEwx&sM_;j3ij4QqDIev0cMW&G_V~>=feCHVnLM3hBbMZ z|n{ypz|RDuy!caTuj0u6AtIkh)~o&1BtTxIrm5Qt)5gSNK%VsXJ2^{I6w zvoOF}^(o?WAIUVopa{DklG`U*ThHbh`b$6tgt`|rz54hL(m$4p@&F?anZFxz;7#2U z{Gr}sxvlW|b(?(KVdR34J27ZBfj4h`t!ygpqj!yFB3v{4kLbDI5ZMn0I)KGu&%=w$ zlFWX=d-*dB(j8z%imZ(NryY{@){HB>{cPo^=n?}2Y-M1)1Qa4Cq}WGj7Hj3=@blK z46Y^P?tDROmil`F+{p@-C$Mbu(oNXnf`wjC^RREWWA|Ee-5CsM**#mZ*2Jt3$yqXA z8DJSg3Vzn_3SYh8Is`Ik;#%p7j8P$|C4LD%o=l^VTJf187mQYp*zAuF&-r7Zme2kq zt?s|dPqo=5iWo2&aZvDEiuu6TgJ~m1UIkpNL%y(^=wd2?G!|265sj^ebW*z~0He>u zeje|6uQ1z@XhlrKDb%h1gkw;)v_j!MVt=|%9IXxKI^*_CP`=EAahiU!I4Cjw8ZRah zWK%13AvKPTDIyYY^P#TpzqL=v5=CNIFUFzl7wq@6zLAV zx0&9mxd4&PgH0**nvJjZBiz8>IM;^Kvr%SSIUI=%m;^z|p=nQn5_>0M(4hAU`G0s> zEG4kPFD27y z1QQa@Y8Oas`ibCG>;kTOE(LAG0Hu2C9(j}$gGt1NRp^2n&4)a=KQ>HQHC2F8wMr1u zd-ush617fXy1FIz9&8H(@wH(@dM}un)0lug6`9+fN&l3$)Vo>BHY?dq{fl{NBL1F* zK7h$;sRgMe-|6y0f0sR9Zy6x3a;~!^h$_E$JU59;;x>D4I=b=g`OYF0#Camb1 z9e(AOJgmbw`IO3 zsLuc8X)8AFVRO_!dB&OgThO6%Q0j2fZ@ae>=bak47X~~c7ub6D6@zVc%#>R5zvGm2 zHJk?(>kKQc7#*&5?JI}(tgZ^49sRa&zeYZRn_WUmUY}_QFXp6_q!NYQBc#!Zj7v}I zoF2~QE)R>AE^e>LGgH)1VS(Zt!9hnEL&L&L5jyz!y9xh+8QXii z0JKb2<||5r60e*z2I!COId?z@TZGblcYQ%B6}ACd6vmWPv{+hh#YN6UJubSnKGRh2 z4j-YY3DoiZ<--cPO}kGKi%1NnS;9b55X*zw*s|`Qsk(lEO~394>SAo#_#<+0$wyG! zl@%Hl)!W7OJelXA!*Z6V{&&I)n}jw2V!<5oWz zwX#khkmu^)WTm(jsWLcadc3d*Wh)>NLIVKiK}kbLddrD!Wd%-~u*lMc!J<#yr}^Hi z$r6^zW>NI&=)J}!IcEo@nMKq98QaJkgqdhL{-jtlokNu`-jw4Np6SmLzhYIP!rwQc zOKfX~!m{9*=#Hs^2 zvv@s!`443Y6%<&gHR&rKO*brNoP_UA!aBsrguAN`%Jk5@PCvD(*^0%9T@FM3Db@6$ z$A-Up`MX^#5BeI8IU0e&Z&4_uFGP}K@L)NHezN5H`MBYv^H0Jtnmg0s`a=eIGn>0z z*H&4r!)vNq(A|4*yT)wbTm#8AN;`sXDJkDN7Wu*X@8^g=cv^K{Wd%>LC@bng_oc(0 zyz(W-twFUwstVG{aqh7Tmd?;1KUj2OvXTsaoTOs9K<=i~X<_m5)76`EYtFjw)XG#n} zpRh|nZ(z~5@eUECNBF3!3S5PLXyVLFYOSJ%!{m<;`6SuIBW5J1!6!xEV<&<)GvAfS z&CRU8oT%YRJNJxK8u7RUrNaEy?LH2BccKwQW7SWH8*sE_`e(-$ib}ao;BD@_grE#A zFY0d5%_C7XW3AA0qI#?U;mv$iPDJFUNBIxJX9N|DPmjCN`Ggrf02`L1$x|@Y!CN8K z5eIz*Q<&}aIU=gVYa)Jh^El@PijB%}j>skrkf5+H{x0 zttFVpfk5tZc8!Jz7XLOaaF(Zt;)r@<#)k3^#M(x+*6qDYkh7jYyTDbEQNLT%U$T~@ z?ygVK?%wig#qoH*BsK)4h2tnhqRiDWbysjXu|E{dbFn`mR(NYfiiT&52*0}4wl zmf{-O+HjHDHL$EaSQFh_)BmQ2#tNnKFc*;K0#urB5nEN#GC>k0b9GO4!Xza#s?#yQ z-iotx6PenC%t61@?!5v=lWgj-G(e1t9;pp2t73 z?9uSupcfm{E|Y^q{wTg2%e{_LWd5sWF+r=e?y3&J+rVCzy7*qLbmSAS5qey^v|gAd zO_L}*U?>QNT$(gIAH0gnIK5P{>7HIw9=Y1)F?rYjX437dc?&>$yVpBNrh@Z%zu=1` zTw)r$Fg;kxN3U5(mVCumr5(Hw|Hp%hsA`POlP z=6noumZ{?xN~T9Tyy#Dz={b#|_E;$T03=Xnd4T5qj3Vyzi~ObDy8o|UVK&Hg>J|My zqq$u29XYf8HP+p~L_1EcyNDizh&%#<=^~NbE1z!uXZwGNau~_|~UhxpZRs1YPih{mo0U?AI&0 zuZy)y796jp~eQUzTAZP#T-WVSfpB4^AMWfM{I_#f$y>+lkRgrm=@f zI#9;M32=dbr}McF7~>hExhF=9{GdPNYtfYB4ph5v-*2{fm*BE{3P*_Y)|&0fvb@_) zUT15>ap^l5Z|>gXQr7ubRpGNPg}Df=6bOE;hl)!&Q-(Z9_nnFkU^qg@xg*DaT#tJ9 zGYwFRE2*lyqnqj@DI^)?3%P_R}V|0b1+We6>Fu3>q@Ovzmmd(N*1CWprJNl11!m9ar<`+M$ zw??~tM+%tA`SNm)t1+Tm?6;T3+9#E`{6Mjlew!?*&(Yuc0P>}^yNkZ=geUUN7fKJK z%Ks{$UxZ+PjBmlt1Pc1#k<$@4$`jgRd2h; zY=6;H`c=zzYX;iZ_`+a$c?te!Ck{&15a(;2ew5vXC9+>L@Kt+mc{ZuF=mFdurNx!l zri-OW$(+W8{Ki+q_jw9UUfQ$A)7WkdFpD+Iq;i@4C<%&F^DZ-bpIeCv3wIYopqJ-* zmtKols(md#AnRs5!LR>nkP0Ob)MUEiuXcM^NG~m$sAr<0Wmy4fx8`c#KLv0K3J0tQ z7}||qSnMgRdA8AG#p!Gq>8nyXKOP;PH1XmBTU9(|b0l{E;BvT@@#7S$HZvC@9cRmZ zSPWX*idCQ4FOj9L!RzynGWG25G!j>ZB5nJfVWJM`ARrK_RIS8M$#l%%B*xX=_7wlY zW+5Gg@TgECoqDk}#s8l-6!Q|9K z1$L!Mk0J2nQ9Y}SVwe!tp8T0%sSPLN4aXv{we{q{mQlTvXHxZzWoYC2HCQ;^eSM4&fS#q_JE)%K$sEC&@T!u zC-Tw$4mo-QXbI!y$Krc_4G$>f$URKPOP(1-x_q;W;Et-UZ0OCR@C{raad{efP+SVB zNA2c8>UOX;FiA?q`AAUm!(&>X1HH86NpmY&lEhFVgHZH=-I(}kR_FpR7}vBCA3 zr47w!J>z%z>-=VN79i?%8G@fISU=dqD1Dffzq{j&=A}i#9sv1}cmB*dwWDVZ;8$Oy z!&X`&Dm&$ZPb%8l2At&lKxmSCgOn-~Yz-`I9QZ1|7MAdz|@=emx!G^0^ad8mxRD^)_3&Q|wx z^`%dnaA^(C_hP>{YYU@olvidUMBkLGuI}QnZ@<&#YjdwQ?kDp?GuVwoXmwKa%+!l% z{D_vK_}n!&SFvIB>4w)VfQE1``XPtF0Zn)2wQ~g#t=zU+Nu2LY_`&i@4y^F0L7S}F zm%bS~w|Eji%>fJ1ZQ_!Gwu=sfX0=g@V)wP0Y;OqZKbtIMWz1~IO>CJ+8H)WKW{ z@oyLFpi0dpWTm@`PFu3n9M1P(GExsx33fk%iF#yw75cDGSS#`qTvXV$Ji!_LO!__N zWoY&Sj~y-6*NOg8wZ5?pla+Q3_CG+{R|!{6Kc9uANJwJc+APe!gR~Wc+VHx0@>D9m z9Zcs2KMIbEFwrILk+FdFRsc3h93GphkCN0B82uh@x$4rG%J&ROd$?R+ zz{q)PE1GV@P~IPpyw88HqN$*S+XW-ipUU&|>!L**NQ%0R)7ex|dob)yxnp|SK~GJ; z;2XunscMP-GhNmYNLQT6z!0y?#}VfzLM6{miSvdaE&tY1$AN2?vHM_;(S&7WM#k}m zc@_mRG-of~R9D`}%od#NqPo9YYj8Gkl1AY9&&fXfCR|UA6(W`$DWUU$j7OY(9Ot3k ze6B|R9(nAR!}2pvgV4jOcm1oEz=^AqiTq`V!p7*~n3XN9xyv9T-9B_)?ShKf-g$wChY zW6wS3dET+={RYeX>{@AvFAE>{E!0VH_;T(2O}J^WBc)5P6xQI;^S#@5mvWn98>ryP zvd3y$_g>Ewp1PN>pm6iTYYRhMB6jWVB0eVW5WNt$cQ*lU{oQIGDf6kh6{ z<)Wf(X(`Q;iwmJzM*w#ENk~;6#xQ~4LXIslCLJj#+;rMM@#}?2?432FLczw&*Kp6> z^D=6v&P$FjU+P@2@%Il&jOzRBKXp`J^clY_&OzJQ*qCv>eyeiEUBL&6=k9q%FN9b> zz9l!De|dQs(_gRLMI+XRpN)H1JQaeyhMrWgC*mE`^Ycxl$L^OD5jiC3g`nQKWb%zZ z2yf6U`@NX9^>oU$Kja@^`a0>dqxZ0L&&IiRT**X|YbuNAi=pM(+c*E-SLXsB{#MHV z<8(tbxsF;MQ8kv6*OY=$r84@-A_x18vR-T+Sh;;}e!A6_WyXfo?&G6r#)?$-j0KDT z{#l@no1OMMs(+4$vXng_m^x5*B{Wv2UHoUIk6G?Gu=O;0Ikxap8+g=Zbng@?P(B)p z(92N!sXkI28f~7I+#VXv4y{|y}lgE!>Te$ z&(|HXN!qq2pT-pJkb}sYZ)mTaF`*QgJ0D#>JDkcx?|(+maOnk^g)6 zI}~$^9EQ{T>dZKf=(Ew#zG!t#8r2FfzTs4W|AUb-*7UazPvIDJfsz>Gde{00G7#}q z7{jt~&S&<*OK7?EWOep{Tsmdm9S{!1+m z4y9D!vkMeKW64~ttdcFwoq3@V{5VxI7jYISxrWMVf4ke?EJDL2*5L&Ig}Vw%ye<&m zXXuqM9mQPw>rl9}KVoG&9&Ov6yojHBNy7g^f`dm%M~Lsr*VK`fo*csaVpy|Ah8C@g zB7BjHjA;xGzs5@|3r<5jy8gxd@g%%11fBiP*JC=`ZSHWpQrODl*dMSZY3}}U3EYp5 z8`2?lb@G21*DqsSh<_rNe}Vq`AxUh40mQ$KHQ&DYeY_P>rJTN0+Fw9S{^&9g{_BeC zv>)Qi@c@B9H%HeF)J0{!dy_u{ERr@*zz* zTkRPCpY5xr|81pxq2c@|C0+M_-~3+)8T?-!L(CB9A7jwK`}Ch7{@)~~oPK@22OMoP zfm#GPT~8TvZwEzA95%7$wVy=rMMJiiZa**VxQMkAR)22yA=qS(vU9GNG7d-nTi{6I zr=);6oHzcV*Db+Lw3h}i0-;hA(e<*SZnRzQ-yse4(O=C+?S$wRa!b9RI?B zC4|5FWw+i1!W7kLc+PO+S#gORpRYKJ(GGrk1Fx1iQRwDJ0QSCqa6OLeQWhoQ2i+H_Cs#|w*={2^?*IXz*UQY-^&IKk$bWe<#b8>0Q>>r<*p&OGxF97oBKX37$*xIYz!YoeCi9Hc zlA*QrzU0=$W%-2^bn-XLmpI6B-QO(B$|l19zN4eN!N%9gVS4{0Bfy@6faL^@kIK9p ziajXh=jpkY)@kLso%fkz+~TLjTGN1x-556fhVCwU zs4+foN7kPmI;w4WQhatLK0w3>6N-6PvF2NJ?UF<#mGlLfv2N(J>a;MQY#*6qNt>B) zsyK;H!Yn%u9{U{>Q+rEd*aPlsEqs%Y;%Fi|qYeeO008f)6Y{r52W%ISfF=>96X{_QyU;f;(by_4Ac%O57Qxl$JDcS(p*%laPnm!>0)T6ak&YYrxa1k+!g zZ4=Jx7fk)5xP3oqRd2QU?9~|OvA1H@++%vzA{22kZOY*syL6_<=R2A8zYF$RTm9qf zg4-jW%$M`ljpmwK?sisO*ek_>K4jt>{nh82r@4^HZ5LH8frArK7zR`EiyMmc0tlSukjx>@9Uwsu`~`0^MGc@@i_X zNW0QtNHOOM8OC@^9avH57yGq3&R7D2CEqgZt4;8I@Rs-~XUC};qDu&l{!&z+Zy#}= z6MRh`rNK)LPw{L6h6SY(7H0K1Gbp|yO7ike$rUlj70i_V8+`G$ujxm05BZ5>EF9W* zEMVTzR!QU+kzz)4SEVJSIAFZd5Y6S9z01&QVbNHIsqI zL8F~11Vb``_IGX~QA}RICcp`hLX<8~E=Mbc6L!#x>VwN_k|BPGEVHE+muMMXP1c;N zi^lU4xn}ScVd)-(n3VTy$6Nwqri8|}3fc{w30=^NNHjAA z;|?crZgkDazb%>wjl6m`7LAkTei`tE?vtcRVtH{_*Ncfvrc-CP=9wsmTcWbUOvZff zvUC0-_9L60C>m)n@XA@kiTd{t?tWE+2~qN1*+Bp#iZ95e+z@ndMik-0HfhI zHKvzTM25s5!oGvdrEVPI!hS;bkS2zs6-Vo}n!mAunWQ9^i^TgjRW3Q7iR4g_AuWs~ zmYsHgSR@Jhyv>@Z^4^KvP!^fBN{6{g1ihlti~P`6C6hQZlyIz(u#-uHMi;)T*yE2- zd}|3aPnjl({|1!H^iz`a?zI-`jjbim_O{142c=6GHP))TC4bQ^QLuWr$WGgHo#niY zTD3ZomJddIBb^Q**25H43hh2OW}c#h|F+Q(70rPI)TXESdu;O}p@*lQNfp9n2>`wn z)xXdD5nrYyD`11j65EI|cIP89u7vNP*!RUBjUxaJKLhVhc5EPSM8jCAZHAb%Z!2uF zda^n!6OjD#qiP|bUwyfTYlOB|)5%{}AAASsL>(5v!HbN*dD#S%%2`^~E|NITX;a70 z(dBmAkj3!%h3VQ|(RXrPIG6{#-7)~)2=}*|J6Mcde{W#gW4#&3QvX>oy099`(Y%Bp zyyNmG!$Hi`gf$utlAmJx+>cCQMUNBp$}dQrA5>k}6#aT_qJPNcJ+xg)+jVPAPE&#dwtC}1b+F8A_>=fg@PcoU@VJQ?{xR0bc!pxJ+X4)P1NYeABL#tTkvvs0RZo6^$ zATT~~%fhYBQ~mja#8`0E4PPDF=#2sS_a3bx!=P-Fml;W!!`yAPoY9Ej?o z*vbS@@8J2WRfdo%dTw`1vk#okdGc9NS8Z92%@=ZExtjN%+Excyxn8cFD4~cSK$V?K`5-Tuh+f zbRE7Vb>*U_Q4m}u*!bzLmXY{|yPuL`dtU<#o4*LoD?ZU@@WR>My<~8DD?Oj5Ea~#y z94JDA3f~BhxcuI;b$;tD#ccBdB?sSLw7-DPb$)lu>Gc3TSq9SC;KEfrq2DcaxIwHE z4;tkfRaiVsl($ND%@=&hyqC22kw@{__mx4(1Pgqwc&ZeSaSkFkb!~+IiRMEUPZ#eJ z{(;81`%(X2;`{$k$-)0K;=!Hc<7asQ)qhf#n8O^g|8d(%tN;I3HuL{X;QvFi_kT+K z0EPEDI=)bQ9?CEJk^RN9<55CLHfpqbW$+u5PIrs@glue}dLw@%Uub+KU$mg8DRh=y zi8}q>Jqg^ecBc0KrDc9)^)**JuX!I}{IwU$%WN##8qE3RZ&TQ@{1CHgKr$KjOMkvrb z)WLYwUX&*ZTZSN|axibqU?M~>SLu0Ay}_KPtLv<5kp?9g>8#>(`fn?5&NpHT7J0DMiReMpv@{q|WU6ZKZRpB^$h@|k2_tFdY0^@xPiuqzEmgRL#ryPh9t7#dGI zd2HKC5^+}FQYsz&Mlblca+0uZcu%Pp|HrI6n@`NG%IFfU}b=LQ-7 zk?-ru;?Y8^wGsHQ`(yz>kSYoUU&TMJn_DV39xc!(r!{3czUyZene?pj)Vk`h>@=q} zGnKAtjTQ!Uma1Cd_CTh^MClgJebInswhhN2wF*x)M4RgB>SFEc@>Co3%1_)Ki%=QtTkHE7;(_S2pxSbsM+qvhlE-K_Cg1@EH{B`^@#0^A+; zm4|!s#{Nze2up!SCRsud`aaJ7-BQ?-7c*)$i+TDw$4~sG{IJBfm2b)rygR1>KHkkF z)YO~`wralbKR9=)#QAZkypd-b0|6Q)1DOnI{McD-Z5jL~ONkE;*XJs1#a|SEQ{~8E zGH9drhBt3TRL3#9AJMx3c!HY2rNv*3tE$6%4<(amqhcnQ+1|+e@iB< zB;YeP754S3cx_|tnv&UE@dybWvb~SzZ@K=N$hTp6$SU2_($ZfQ<2)HGwwJUj1&`E| z9{L{I=za8MKa3w7c2K=(n7w}Lc`;Wd(E_!roWK@&)D*^pvFyIlf98y2#`4BU*vQSY zcpY_BAPKDDK2V*5-NYQIY=y2{NplXYPw$y+BF;{zAP_974+p6(4=-L4I)la?XL`nU zX{X7e$@oHaquU|?4h5iA;5S8Me6kPtN_s^cMJ!NJ8M|f?pzcopmA9W?jnlOr7$uWLgs!qG~ZS zW%r0Lc8Pn-CNu7VGobx=3sp#QmCTh@DijnJUjQ-j&+56uML~|HOGI%OLx& z9CE=(eu_kkW#Zykbvp{whISp9rBugMdeZU%0Y=DdObq;99Vmq03)ZLQLEO8;hSETg zV+gi|M!}WwM3c880}P{*^>N`l7s{z-Thvu%!K{PA0vMv+X4%rla~>=_?6!F(5v>xn z37kLL&f=1~oE$i}JADGWW&9A4+>gO88cXjV)oK{E{%jmmYV+aq9!OTDz~0KCC_j4Fe4~f_-(hk8r=RElAaeijFtRuUsO+>f zt=zxU(-_?$DB{0<<+smGyB^KZT)!EoZ$%RGY3d|7><*F8(n@9#n7%w*TDa$l0dKhE zx4+3H@-g-8n{y4c&9=DO!hHI4WN9qzxHrNAxZWL3x^0>(k;~#g;^rOq{Mf~A9J?tA zK}1Nnv9pt}OYy*Hft#&66pRSYPh0RUtfQ; zc6D_nRBJMtIn>$c*u zv$Ov@dlreudc$_$zEER~XtUm4AqR<^MryB!X(9i z5tZ<>&&ART&{(rddgjA?1kn{1+PcOWJGcc@Saho2)$k&#*`De24pBr)lM z=2#{5eq}0TaCkr6xTzHO*$-b*f>(D29*3K+h!>Lx(~Jib?U4b#FD%W@$Ax{XtE;o^ zirv&KAj{CCS<}b%I z^WBa7HKW`8(Z`krYYB8}Gi5LS3dQmyY>Ye6Kz8e;S#&&2b-@2^F=bZVgTsOvr;0jJkPRjO$fFL3~i+^5*7w#-yt zDZ{Is!9B~hdoFdSmBu2a=5@gSdbqZf5nofHprGKBru|Mb&{KWRIDr{$a@&)H z$N#(S8lmMpNYu)T-eG?XcyVDDNyznW4d?I1-vE`{YUSs_BsV9gIs`4T4fB;omaE<2 zqP|^~If-y9rS|W;h;DZ$i`4SjeyL2eQx0Ehyv;GF`k4)TK9_5PB^esXpX_*g!0r4#|3DdL#0`rwsB-M5sjSLNE z+CL75OYSUiSTE)GJ>MROw7OrH-s3}3u#sO3UM?;!mN?>nH;ZWk7Qjd}Q9j?DDjAf! zU2f5$-W|;jw?v&5H1tSrdAmdMEvS`&?Jsekd#L%fRg0;KE zK1l7idff$7sxL_9YIVHBi7Tk+RhTq~QDf3~~r zL^P{bXj*WWSa8#@#X*oSqt-B)nwqk$)tM_f(+iFDQkQ5nJC&p+W|K#5{|r|!y#8=R zqqmpGhph;vnVS!7&6H8l$Xwmssp@5aW27&`izD5qK7HFsl?qEl`>Lq)%{=CQfZups zGy+?NL;?yN^OZ)W8lAqudb#k9N>FsJ+6vk<2I6Z!{ie*%!DQtm{%|iJ2SOzL@A9V* z=j$D|Yr!#!j9kcE{9Lkl`5!yiM>BZT^oB*EDs)<0j)+gzJ30_b`z%V3Bd!;OcS7Yr`+)B&nGAae1g3?YtfJwe#p_+ujE&;PL79c3!=K z#F=0UQ-BwL*TXps8d`zuA4vJPZENNG{O{_C=>J=5Umgzi`}eDovP4ZOYm$90St4X# z#y(84CnQ_;FbrjBwa*wt))~y$O7=a-yRK4E-D>n0Ph;6&&hMoGew*U zo`-396q7zfA`zhZ5i5LYA3chg(rnC_GOWr>vUQl@H2mDJSX=h7uyr@B!n|&a&-{+@ z^RQw&Ey>hN9s7qK#|2Dj1vUDG1-CsXUm+yXBIfrvLM!)<8pCNx@vmON_}VBQ8}ns< z>Fzd+hvIzCqMfeqK9r`ydsD+p2ZX4YT{vl#~2e)G^*!$JBsx&LCoaEZT zFK2dH_`X3c;1@}dTFodmwy#QMa z9;VYVLZFi2yYJHbe2_x~&VxO%~zU|h#CDT)>q$!Zu9Uvo8 ziwf`V)L(Mwa25^KB*{b+TW7W8mvn1KP5o_rYn7}#A;(AiMTq#Wm4n@Nrvt;Q+oSEE zbrSPR_HRM$BAvB?a6j`}_POR+wAiu(^GRHZcH?_Aed`r;i8czR++FTw4cFyy&Bn?a z_s5p0_5}TST+jVpln(Zg7h8Y|D+*Imhbm%`?>>rf(XlA$)}`AWgTl**CJ0I}x#k}2 z&Tx1o%lp^7kSIw&`Yil3{GNc+=8qfstQ8Ak$>P=+)M@{yWiGAaG}z3eG2$%IkPv6o z5obD=;b`2g)q>K9brycEuZ%(8XbTt(+IKD0ABMJ3Lt5O9}J%6y<=TV3PIDMZ^bKl!-n6#?KRY=~sg0Vm+gP z2zp!7F(YPwbY~kV*#pbM+yeB_14tVgg(aVCVCgg2yvv5Z{*5#3lmoPW37V^;o-cTCoDTn%LH)u*KlIQ!t3%JJ;K`| zF4k64_a}p5ws2IH2~!r6zd}6S+Nz3EDX(=Hyl2~unEVu{$h(b7L2*_F2yycf=t3o@K8iao!uRvF%r)mIxN&|x zQby2OY>6TC5chHim3jtv1iC+Me}Ols+O4g3-ObzbfQj>t>l2J{dq2+x!{pNhjCeQQ zm#^>~P~#OaBu|?#Gdu~C%^}v~fBu3Y8|GhH|G)qLZ)yJjMpE3&6jL*)JtVCWP^aL~ zZw>l%&pa7H!4OO`jFiw-QT^%+%%XC|I zx*@qBITJyo*<<r&hKq5y||fH%dj2yb+v2QenlY&YCS(! z9k|Ith1}uMOWW+7`Rgu~1KdOk?zH@wmuyUja}Us~{L~IPa5HYJrNAQqQWs+T@;8@d$!p{2WS0?eXV0ST7oiyiS_c<2wxD1XKp0;1#eQ(8xB-6wyE0ex<9GyK!+cK|9$}l6YwZ0e1F;gesc0=-_IuE#IJ_x#k z6ttIiJDuT;hcL+mJ`;5H^5~>3V&5;>Ex);PjA$rOy&ze$icr}}*&>dfPLcP$5WBsU zVGh<{XZ5qbboMs$WKV+hZaUOnqp&wuRZuEoIIb;59nx{)L zxg$a+i$+6?MurJA`-gxDT^B|-O+40CAosLl(@|(k$(SF9u6039*Uh$M zz66^0RMgo$j$e!0lgK|ltIgoOBF&^%e@h&nymxrX@h5JcS64)>;I+PyHl2-(d$5bt zp}}2NA<^nV4puX*A5pC{f3QWd8(W7(mM>N4_x-S`HYpy5z zumTqW^RoQC`ziC%Pm=NqP_)_Pnqt;{LH(@o^!h~KuXQlk1x;`rtfJkuOo_E*cyQvm zwDIFl<Jre z-Y(`6?&z4+YWJ^fJEQ?TRrSKJ8;4!Hq*_mxi@`~F<%d~&l0@0I(?+16Gb4Ca4lfO# z5NQyxtUO_31I#&Z&q1pgo9_G`%F`%jQaIk@^Q)*HUo3Rpl<~MMX8rQ_K7C$UP^G7A zruIuru0f}YwbS5H&DXp>PXQuIqdtGM@?Kg!hm)-B?M$A-RKNyI_jMlVK*Id-*?Rdb0X* z4OMCp0Red?A8lLc8L^9ti||}2run`Ca}#jL1rzbe-!rTzqG!t`ys@ACU0p7?3V~S)%)hc}dXdy}u6Ve&*XVnZLB`3;B4${zn>R=5 z0cF#dZ`xavs>7#&X+yyNJklcQ;-Ew4FI@_I^1BLei`h(;bf&s{_bw9u`kVgTK^zPa zIg{U$rL8E2Yy3aS>NC@`-A?b4JgsPIGGZG8K4Ospetr*jR>rlK-2U=21Ar+|Z4nhN za(gf91F^iAbl0(md%ct~NAEps;+8|F@qkA2)NS?Xs|6U~Ni^JRGdN*D5ZGS&{T3r) zo*8twN0@XPsqqIBgUF}O$=29YR#sMi$A{a*`98c6vH0k4Kd(pZrc)pPdIdP#0mpoz zO{$oZ*OylpwC*tm?~K0`%oVn*y0p7C)fBK?o8WRb&!i}o2F@z|q;DosIg;|{*5Xi} zqkmCYHh^pRAC*Ce2%o58i;xT)x>HPsNPsuhA@?@~9t;#(k}9~v+AGEZ&~vg3T`-SQ zic*W38?X+B57>T7yt&81>nRG0yY0})COKT~t6$r-_D*x>Q%&91w^vLS&tFVUOX*;B zt9kA*(LCp+Q+Iq6z{oOH>&bDjzg$luJ01Di<-aKg?Jt(U5eSkI14q#IZ(k>Q z)6oz9>yIRtC)-eaDPI)!7e2i_$12sAqcdY$`8zH6Xx9c0!(APz^3hIPUl|7!Ri7*w zvCUwQ4j|%%X)f!4pmYlCN|h%i+FKOn38Oqr2UfZ@IPkVH_EZ!1BmF&fA%$MEKR8Q8 zCRjSQrsUVGLi5FzQQNGO@|gLv6HFI7^>?hu2L(@N0;R#=fur@#G@;GJ8p$aAWY_=~ zLd_^@ai8N>ETl@~CbY#WU{P|@DF!C&=*!RZ6!Ye?2qF5!Y1+$upf}XI;?Uo6%d9>< z(yc){KBq3KS))lwN!gHjR!~r2)>2Hmhn+gWmgu(zVX=D94JRTYT-?4rx2H`vSqg98 zc;7^G^Mg*uM<%RpMhSSKc<((}E@2cKVu4t!58PcNA=qU+RpHFqtan0lE{h@(FbK>8)>G_jrBnDyJ-2byi81bCh?7>=}i>ypqty7BSxJ>wL> zL(kgk>p`c$j+ZNoBNG*Aw8TQaX?A&pae=LXeyZH;aOEc_-vsv<*iUrpE}Gv^IkLK< zBG*I!sZ;SD_#X4@!LGJ(V4q0Af9?>lvnl+yHFGHNsqwJVk`HuI>aTzP;quRQvbwj(zVU7933aGqQLYlqBv=-c}k%Axh9QIul zhbk;AoaU60y8QI%(>=2Wumk_G)R(#PD|?l~$+jBC=u*ip;8Bvl1+}G#{%%b5X6Yc|g^3*;sh=UxP>0p9Z`~oP`0>qX5{rxfq-p2)>S+ZGqGeJuP5sycr|_4F(1f;%jH$fB102rw{}GEiSq~Dcd27 zp`v3-FAQgU%Z8%snWzNhonRoVokf4F?dT^52C8!`*iJZs6z))8tM)O9Td+a6Z^N`%D+d1Pe=$J!(SNpa&oA5{b%ng+nAv#m# zoYc2OI1R3zL0L`u;k?31s7tunua~*}$|Qu`@gZURQ3j!l()tY4*``yauZ|5^ub^PbS#Q9-7V-zZ-(`z6c2UQ*;e z`_G)=|Fbs#FI)M4^_$0N?KY(E+IH1(?Og&ZVmN3A9{BM`t7|^s0I0*jvCAG3sC)leJsc>YWMg72EpTXN@n@ZH8>P=ekKC9)3 z%j-c&p?PNthO4SJd)DjY0ZW1ND&byQ>`=rr;KT@wGl@(zH0_dqa!%4W=`-Iz41E zv1?>tCefm=?9QLiV-;fiRNn@Abmp2@w$9FYvi{2MtLIMj9rvCXcZ8HI9?3i4FO%No zo);)O{$}}tRXViK)1z}4!Xlj?4zOmn@({2nj0GIU)k$o&nB^J-`OvwV)x42pEyE*e z$$|5+vQx`7o7rYoHTP{O0g&mS6L=r`*||l5j(V7lk&3U)&6%EGi=C=$YFTCv z9?{zMG-5K)<~NNC4er%iLzl>)yYAG8)2|7(yc(0TZfpjAW91;cgXA-is={wl=3RrF zYrZ4r8@t7 z&O?joQ~t^L@s3!P4P3(tCvx?3gB3x-^K%c85SfWa^Jokn$V1JdC1t<^*%yIt^ zKkZV&PHxi)=D-4=PCX!m`)$m05U>Ryb}Lm>T~^%r{mO4~#m)j+V)tvp{b^_3$z=Ov zdE2{SUS%+wT%bk#NoWrGV_NXDSFHiJ5eFr8>JJCpMwAOvqMYR9qu@}wA}Wi4935fp z<*PpQ_zNtTqi{m~SstNg`Fns0DZUP1ry1!-SrScH@1stmUYLlG>-4nn{fx#$x?9Jl z*y*<7mT{|MCJWl>mf>)rzFSm0n%~V!Xl@-@zqTN z*cgDjPJu(6hXkZ`C_=K&8^PvmDMFEU+yCC8%2uuCcMK5x$(OTQ^fc<9>rh~pqJa9? z6^jnDRH&L{y=)yZy_Yaid9 zpft1fz4UyAPH92%(TrS)^QLTj00wLlHUlSrR=E~cE?N%Ii%f)9^U2?nc_D3;7acq; z{8fXizNvIx`j5}a3j)9aks|ALRod;hR5>SFiBR>A5yU3-)Xw!-haJm$kGEYNU?6nn z71#@rzXpTMoX~$6>^{)^4f?cyp!^%``JV-9{-1mMT+-W!h%fE&LPTeTjNi(&z`(!_ z0Z`viEr9PqO71n4zP>&khk~4CXk%82tWSGQFmw4+pq3jBC|g~GI+{YOe3zp*RbBvv zOyS3jT+-rDd6w5q=i}d1l7UDte?9sU+wsoo#HNg+!|<(+1hIh`te)8@h&yd?i(62q zhlZX4ht|G4%6cAcOs?1#fRD(?4OBk`>M9vmZoR)cKA~nrFc#P}11i?$9`?-@F?w@z zbI?)F0QAy3(=+jh<1QHS&IPb%QQaQR8SRLkwW4Y}m`0qcYHHVKRud8wjPCqgaAcZ+e)M;J|)j%Nz%Fh%j!f6QMS=<6hNlC(13^g60(=Rmm4N4)U0MfHYYd_1!4sr_iNE1SAG@Ne(H;WX$NDAZpoH67%DCwl3@XYHMk%zj7G>Q`(ZEcEc6)>W)6JQ^2j2Xw|BB z4M5$N!BXc7tgLT`E4{en**x3sjF&F$;q@TDHilV{# z2o&p5zk)$zKnuRaZ=m=+LCivi>KEWiruuG1Fx@~F_ww?~Xx4#z&9TCe0Ow`?L?BX+g<3kx|y?Lc(& z!b1K#d!|q&s1-2ed_`xR8UvvHW5D(kNl~1eGE@-Tr+l&z*a(aTqF2B26Tht4^Gdmm z0xAWCi1&#UQ{iIL)HkALEUpWD z&ckRHcguB9VpH%$27ozE7Med%VvfuaQV!~hx^F0N;h&;z#Kc9iN)t?EthrpEjxm~Z z7x;h#^=|{f9=95Rr%houMY$>E-qf@dU(%$qy@TOqqn)@F8^?=pXT(##+g+bADJn*W zULc(#dnMpWkdQc8DjP~9UhuLf+ufs`ESg*xi$fd#90XGMC7kw3pR-w;183T6``*(N z3{hz8))A(Gw=-4V`N+0~tk~a%zD~bzeQJaeq8uJ3Tlom+maUkUM2LXL!QOlk(GS$f z_icVq;C?_0SNC}co$OGD;(G2-LVe!bx6Td}rGa@et7>jx@xrFXxhA28>^$(=hrk^} zFq;R>gYf-6U}1iIuu<9knrOBbE+lGMh0Yx`sLRE@>3Xam|5xPCP>Je3`x&!X458u- zH5S=g`aQ%3RDP5dFq%1to))J{a%fw-AiP|ET(`>>@q?X(gIjx~*eHRCDM-?$G^WaeTpg-T#>6cJZ%|nG?@NZM_STthd z=8`G?q24*igvSR;yzouXdHz7fDOjvi1!7^1ITubwS~WCZvzCA%Y-5l#6K{V!@Fv`- zyFI1do{K=i6#Z3Sg(>Yqv_*csFt%C`1dkT{%R>Z9P+tf;ZYX zjsvQ~$zK^JEAYGo@T8>sJ$b&16LB|OVqo=QEyuz`5zM#(%xB9bXKH1Ah$^lf4$X>$ zINC6O14cc(70wcO!0EF%DCu+DHuKO}EQh;vd)v9FHrtBFxLv%m4kjpw{S|rxY87s1 zFN}LnefLTSK(J)jvH~3gqjGe42b6B zTm3;1X6rX=6)|CupkFLOdvkn5=X;tyAG-ZUa|!XT!MjrlpwSj|rG28~R}T=O=I_}B zMu_%n#6;K|M`L}nINP|Vp304%*xnk-@5nI`Qy?ik5*@4BL}wJQuCe3Nr-#OEtnVEr zW$SmRlSxOKKdDwcKzVF;JTUgvW|av=S5arxW}#)<5BbvGcCYgB;4ACHhiM_6k&q_9 zfWhTW45yj5Ll=e&@GzcD#PW#zrhn_q^|a`N@rNZ!rFOe+%CcKb-#M|b)e-Xbu>gvv z@sTL6a~jmmrrMuH_lQ#a!Wen1U%(h28Ea@&b33B=tPLO_mgZQ*hm%xygUxx{#6WIw zE)uu{c^2La;6!>b9X~M_s3OyOaazT}%n|2f21zAxJla5|?shVs(b9~&`nk9W?81cI zVmIpZJ$G&k^z?W0OU6l|JY8xLo3P&Nl}-~mQ$ud`a3wWpHkJU7(&$uD$dV7(nst^( zs=TC!w{WHv$f>KHj6tK@N{d~(b}J@t#qH~B&K0E$Nsk5sKRspV*}0xcMW$^GTT?8T zMqdpYddfP(X{H>b=%jz;SHTDjAc`Pb_Gh%}7q^8y;=sA4kPJPC*%l@N@Qv3%A!B z$@o@M6H+kh9KLuVU*Soz`#19n?f(yXMN6DwaA;`WHhTI0(74_Ie0lxh z)2H4XnEnXYGFd~;j1VGoBzok_x%bTVpOFAMFN99e(bIok2p4i6S%ze0*^bR7o^mUD z@`eN#nsp}2)!nF81DX}!{#jRl=o}tzR^+qF{7uGYoE@8NBQXJ zIjQvVcnH}H1{}n3HiTyk0sCWJ!B=cspB;a$wY!NdY-_|hf7pH|9mKYs_itaI8TaGoz{+hP^x$4%c}51)T1KeK+d!8RsrtByXOJV z(|^*8%UIZ&N@ihkWphWM!sFK2Q=>@MQfK34kZ390EX;!P=x-`e`@z1lG5a$BEkv@& zOJs$Ya8LA1TVpA~q!A}{BzQjPM(!2B_`pth0*-7apc7);+dtp?>EhaSTO^~i6c_NE z3aZjj9@*d<#>Yn8}2idMsGfBFp;MA-k3vc=YcY#;_h7^ugrH z2|~&DuQFmaPZxTpN1Gdt=TDSF)cRJM=g*CM4VnaBao-wNQyr;(X(ccFZXkALmg50o zEk2!(*qM5T6(Bbco z=T-4JDG<|T%AuXQ@q@AFs4EVA&8or=zBwZKLWb64R$G^w?npj>T7hNvz5jcz7QO3f zZ&7vXJww~|Pub~Z7A6WDVw@h^P#SfNkv;e53xJT~cb$O@e%!yNz$|}ad+Dx0Z`?rpe5y`jDB@|LVP#i5^ng7!56!RcK+U*H4vSLxYv>4~|tC(c#Q8-#* zUs$Fmn)p{dmjLOis>|P^jU2k>jd)>%GRJw*Nna23r}EEEQ;ry9d>>Iba%0pUxzyFRB%5Ly8p>c zZQ-sr-O$q|ljYG5_BkZR1?0C43P;BoK4NL{@ZGU0GX5Xa)5 zyGOU|?N)TP?cvVBeA?Lf(u?xyGUCh^5H@3fx_l>paBr%8?v*IJS*EfK0}}7Jzkaz0 z)`2tDzj|04)Jq?D@cB4NdkM?3mrPv`4o8}Sd))y9I~b)^{cFctGkAA_mV5X>=8f6@ z&f#&}wLa5VZ=xDshVJJ&{(V3Mn+`AE0CjOe-jbPc@$BDM$p0p1{ePXK@^4bau9f08 zfUFhO)m+@%s%fazwvSbnl{O${u*Zg~4cI2^f{N{)No+-kAA58f_FLBlR{lG4CrY8N zre*^o2CrVf{tQs?W~Jl0@F}B0i%Nr%$A)Y`J4&-Hb{&%1tO9x?knlDwEG>!qV4+{7 z;^?kWm=sw>zIt``KP2utCP6rXk^{_tXtx8<=0kaT3os>b$nX|h0kL(H%*bRq@BxYg zob@vindZNv~?o3wf*uyV!>ZNNly!q9%IYPZiW5vCe#Rd#D>9)jf{0aYE#7Y zstJ&%-FH@OkXk7X4T=)Z{W=8`l&XI3>;7Dq?AW`a}Bxvrc>_NvK9wH z2gohLik@scxe+JjC1PHtdbqazDY+cv^1|}*+&svfLV%BdCJ1hj7`>CvzBF^mf8l> z0Z2JmWn2FLm=uLnwinhvux=n^bq~YcW=By%{>nDs0 zlPDD`M_!-{g}`H1%YF6Hwfe)Yp(Y3qRIab_^}DMQkAF11lXNC{XctEbf9eCe;!E(r z^ylc<)sj;yKyS9H^49v^s~n}!qFOdJHwVVb1n&Iy9mQ|jA)Cl{{u&gYKFKSNcW9Rk zz;+zckXr_{&Q2CluB|bgP8JyRCH>BFV?2xj&=d~HPLKz>DrYd?`jN@*7&HG07!l-w zK$@YjxiYT7fy9pRElals*zGsV{d&~s6XtSP@}HaF@-LP7Gi5jpBdiw?WP(qID>9&` zFA7>zd{B6FoyR-6*lko{b8pbO2yYUKPSmPyGRn~dT0GdwG9G*m*}LD4wHzf=O%)|z zrSD~gOL#FB3zxebmj@pQ5$A9~Al_qZ=ycT>hEmFZWn_I+$lE5GB3m zUR@iy1O!?Y1XUJ@`Ve})2pDBwa~rAQH_DE9C&n&lXEwOd=4skB_UBKg6)rNpWbqT* zqps8f3=f}#gmEoK5Du-KZbP*UtKS&E#zO%6xhgrB`!XEBV?G*@(ct4+8l5%2M6x2> zlVx%MO#CF`wSA1HuUCgKeEl)eG$jjpzVQ*ZXUx}!a3V)cDQBXrrEIw37+4{tW3rFA}FD&FM$ z<;#x>k0e`5QgXn34(4kig1AWF)-Q+YiMXv87|%fqNARq3(!pAX7@-7MrCTamOHmr7 zOk@!lqa~1@Qcl+s@K*%ZBu~_`e?>vIe=zoQmvF0v#FV_$zVEZo4{Q~m0bZUc6+*XE zZ7dF%$RDX*mE_vToac`Y)e=+RSMX0P<*^+sK1{P2EOA_o(mv^!rhqg~|HK`g9eYD~ zUUNv(KVKJEF*b1qxI|bxzm0xjGF{J-L8=e`z+dMG%KLPG3%R+q(%2 Date: Thu, 24 Oct 2024 14:58:01 +0200 Subject: [PATCH 193/213] refactor(core): unify naming of core data (cherry picked from commit ca0448a19ac7a3f3954f986be22ead5a540bb458) --- src/app/core/core-data/index.ts | 6 +++--- src/app/core/core-data/logos.data.ts | 2 +- src/app/core/core-data/meta.data.ts | 14 +++++++------- .../footer-copyright.component.spec.ts | 4 ++-- .../footer-declaration.component.spec.ts | 4 ++-- .../footer-logo/footer-logo.component.spec.ts | 10 +++++----- .../footer/footer-logo/footer-logo.component.ts | 8 ++++---- .../footer-poweredby.component.spec.ts | 6 +++--- src/app/core/footer/footer.component.spec.ts | 8 ++++---- src/app/core/navbar/navbar.component.spec.ts | 4 ++-- .../services/core-service/core.service.spec.ts | 14 +++++++------- src/app/core/services/core-service/core.service.ts | 8 ++++---- src/app/shared/address/address.component.spec.ts | 6 +++--- .../contact-info/contact-info.component.spec.ts | 8 ++++---- .../structure-info.component.spec.ts | 6 +++--- .../contact-view/contact-view.component.spec.ts | 8 ++++---- .../sparql-no-results.component.spec.ts | 4 ++-- .../views/home-view/home-view.component.spec.ts | 4 ++-- 18 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/app/core/core-data/index.ts b/src/app/core/core-data/index.ts index a2cb1ac44f..e4a66eb815 100644 --- a/src/app/core/core-data/index.ts +++ b/src/app/core/core-data/index.ts @@ -7,7 +7,7 @@ * */ -import { LOGOSDATA } from './logos.data'; -import { METADATA } from './meta.data'; +import { LOGOS_DATA } from './logos.data'; +import { META_DATA } from './meta.data'; -export { METADATA, LOGOSDATA }; +export { LOGOS_DATA, META_DATA }; diff --git a/src/app/core/core-data/logos.data.ts b/src/app/core/core-data/logos.data.ts index ce4497b95d..fe462812cc 100644 --- a/src/app/core/core-data/logos.data.ts +++ b/src/app/core/core-data/logos.data.ts @@ -7,7 +7,7 @@ import { Logos } from '@awg-core/core-models'; * * Available logos: `unibas`, `snf`, `angular`, `bootstrap`. */ -export const LOGOSDATA: Logos = { +export const LOGOS_DATA: Logos = { angular: { id: 'angularlogo', src: 'assets/img/logos/angular.svg', diff --git a/src/app/core/core-data/meta.data.ts b/src/app/core/core-data/meta.data.ts index 06dac61509..61cffac7db 100644 --- a/src/app/core/core-data/meta.data.ts +++ b/src/app/core/core-data/meta.data.ts @@ -6,7 +6,7 @@ import { Meta, MetaContact, MetaPage, MetaStructure } from '@awg-core/core-model * * It provides metadata used for the page framework. */ -const METAPAGE: MetaPage = { +const META_PAGE: MetaPage = { yearStart: 2015, yearCurrent: new Date().getFullYear(), awgAppUrl: AppConfig.AWG_APP_URL, @@ -27,7 +27,7 @@ const METAPAGE: MetaPage = { * * It provides metadata used for the structure view. */ -const METASTRUCTURE: MetaStructure = { +const META_STRUCTURE: MetaStructure = { authors: [ { name: 'Stefan Münnich', @@ -42,7 +42,7 @@ const METASTRUCTURE: MetaStructure = { * * It provides metadata used for the contact view. */ -const METACONTACT: MetaContact = { +const META_CONTACT: MetaContact = { address: { institution: 'Musikwissenschaftliches Seminar der Universität Basel', street: 'Petersgraben 27/29', @@ -68,8 +68,8 @@ const METACONTACT: MetaContact = { * * Available main sections: `page`, `edition`, `structure`, `contact`. */ -export const METADATA: Meta = { - page: METAPAGE, - structure: METASTRUCTURE, - contact: METACONTACT, +export const META_DATA: Meta = { + page: META_PAGE, + structure: META_STRUCTURE, + contact: META_CONTACT, }; diff --git a/src/app/core/footer/footer-copyright/footer-copyright.component.spec.ts b/src/app/core/footer/footer-copyright/footer-copyright.component.spec.ts index 03f419ea96..0cbdc7bc3d 100644 --- a/src/app/core/footer/footer-copyright/footer-copyright.component.spec.ts +++ b/src/app/core/footer/footer-copyright/footer-copyright.component.spec.ts @@ -4,7 +4,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToBe, expectToContain, expectToEqual, getAndExpectDebugElementByCss } from '@testing/expect-helper'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { FooterCopyrightComponent } from './footer-copyright.component'; @@ -28,7 +28,7 @@ describe('FooterCopyrightComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedPageMetaData = METADATA[MetaSectionTypes.page]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; }); afterAll(() => { diff --git a/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts b/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts index c33eee9e88..bad0b0ff8c 100644 --- a/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts +++ b/src/app/core/footer/footer-declaration/footer-declaration.component.spec.ts @@ -12,7 +12,7 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { FooterDeclarationComponent } from './footer-declaration.component'; @@ -39,7 +39,7 @@ describe('FooterDeclarationComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedPageMetaData = METADATA[MetaSectionTypes.page]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; }); afterAll(() => { diff --git a/src/app/core/footer/footer-logo/footer-logo.component.spec.ts b/src/app/core/footer/footer-logo/footer-logo.component.spec.ts index 03e230588b..43a9ce7c39 100644 --- a/src/app/core/footer/footer-logo/footer-logo.component.spec.ts +++ b/src/app/core/footer/footer-logo/footer-logo.component.spec.ts @@ -13,7 +13,7 @@ import { getAndExpectDebugElementByCss, } from '@testing/expect-helper'; -import { LOGOSDATA } from '@awg-core/core-data'; +import { LOGOS_DATA } from '@awg-core/core-data'; import { Logo } from '@awg-core/core-models'; import { FooterLogoComponent } from './footer-logo.component'; @@ -44,9 +44,9 @@ describe('FooterLogoComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedLeftMainFooterLogo = LOGOSDATA['unibas']; - expectedRightMainFooterLogo = LOGOSDATA['sagw']; - expectedNonMainFooterLogo = LOGOSDATA['angular']; + expectedLeftMainFooterLogo = LOGOS_DATA['unibas']; + expectedRightMainFooterLogo = LOGOS_DATA['sagw']; + expectedNonMainFooterLogo = LOGOS_DATA['angular']; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see @@ -100,7 +100,7 @@ describe('FooterLogoComponent (DONE)', () => { describe('AFTER initial data binding', () => { beforeEach(() => { // Simulate the parent setting the input properties - component.logo = LOGOSDATA['sagw']; + component.logo = LOGOS_DATA['sagw']; // Trigger initial data binding fixture.detectChanges(); diff --git a/src/app/core/footer/footer-logo/footer-logo.component.ts b/src/app/core/footer/footer-logo/footer-logo.component.ts index efcd749fb1..5dadacd3d5 100644 --- a/src/app/core/footer/footer-logo/footer-logo.component.ts +++ b/src/app/core/footer/footer-logo/footer-logo.component.ts @@ -1,6 +1,6 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { LOGOSDATA } from '@awg-core/core-data'; +import { LOGOS_DATA } from '@awg-core/core-data'; import { Logo } from '@awg-core/core-models'; /** @@ -33,9 +33,9 @@ export class FooterLogoComponent { * @returns {string} The class list for the logo. */ getLogoClass(id: string): string { - const isSnfLogo = id === LOGOSDATA['snf'].id; - const isUnibasLogo = id === LOGOSDATA['unibas'].id; - const isSagwLogo = id === LOGOSDATA['sagw'].id; + const isSnfLogo = id === LOGOS_DATA['snf'].id; + const isUnibasLogo = id === LOGOS_DATA['unibas'].id; + const isSagwLogo = id === LOGOS_DATA['sagw'].id; let classList = ''; if (isUnibasLogo || isSnfLogo || isSagwLogo) { diff --git a/src/app/core/footer/footer-poweredby/footer-poweredby.component.spec.ts b/src/app/core/footer/footer-poweredby/footer-poweredby.component.spec.ts index 430c3c0d45..3e9fbfb73a 100644 --- a/src/app/core/footer/footer-poweredby/footer-poweredby.component.spec.ts +++ b/src/app/core/footer/footer-poweredby/footer-poweredby.component.spec.ts @@ -13,7 +13,7 @@ import { getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; -import { LOGOSDATA, METADATA } from '@awg-core/core-data'; +import { LOGOS_DATA, META_DATA } from '@awg-core/core-data'; import { Logo, Logos, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { FooterPoweredbyComponent } from './footer-poweredby.component'; @@ -46,8 +46,8 @@ describe('FooterPoweredbyComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedLogos = LOGOSDATA; - expectedPageMetaData = METADATA[MetaSectionTypes.page]; + expectedLogos = LOGOS_DATA; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; expectedScrewdriverWrenchIcon = faScrewdriverWrench; }); diff --git a/src/app/core/footer/footer.component.spec.ts b/src/app/core/footer/footer.component.spec.ts index 31e1cde841..649b51b3c8 100644 --- a/src/app/core/footer/footer.component.spec.ts +++ b/src/app/core/footer/footer.component.spec.ts @@ -10,7 +10,7 @@ import { getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; -import { LOGOSDATA, METADATA } from '@awg-core/core-data'; +import { LOGOS_DATA, META_DATA } from '@awg-core/core-data'; import { Logo, Logos, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -56,7 +56,7 @@ describe('FooterComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Stub service for test purposes mockCoreService = { - getMetaDataSection: sectionType => METADATA[sectionType], + getMetaDataSection: sectionType => META_DATA[sectionType], getLogos: () => expectedLogos, }; @@ -78,8 +78,8 @@ describe('FooterComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedLogos = LOGOSDATA; - expectedPageMetaData = METADATA[MetaSectionTypes.page]; + expectedLogos = LOGOS_DATA; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see diff --git a/src/app/core/navbar/navbar.component.spec.ts b/src/app/core/navbar/navbar.component.spec.ts index d567d3f284..8a1936554b 100644 --- a/src/app/core/navbar/navbar.component.spec.ts +++ b/src/app/core/navbar/navbar.component.spec.ts @@ -28,7 +28,7 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { LOGOSDATA } from '@awg-core/core-data'; +import { LOGOS_DATA } from '@awg-core/core-data'; import { Logos } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -125,7 +125,7 @@ describe('NavbarComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedLogos = LOGOSDATA; + expectedLogos = LOGOS_DATA; expectedEditionComplexes = [ EditionComplexesService.getEditionComplexById('OP3'), diff --git a/src/app/core/services/core-service/core.service.spec.ts b/src/app/core/services/core-service/core.service.spec.ts index 0b81d1bb39..fd9af6a0a8 100644 --- a/src/app/core/services/core-service/core.service.spec.ts +++ b/src/app/core/services/core-service/core.service.spec.ts @@ -3,7 +3,7 @@ import { TestBed } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToEqual } from '@testing/expect-helper'; -import { LOGOSDATA, METADATA } from '@awg-core/core-data'; +import { LOGOS_DATA, META_DATA } from '@awg-core/core-data'; import { Logos, Meta, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from './core.service'; @@ -22,8 +22,8 @@ describe('CoreService (DONE)', () => { coreService = TestBed.inject(CoreService); // Test data - expectedMetaData = METADATA; - expectedLogosData = LOGOSDATA; + expectedMetaData = META_DATA; + expectedLogosData = LOGOS_DATA; }); afterAll(() => { @@ -39,7 +39,7 @@ describe('CoreService (DONE)', () => { expect(coreService.getMetaData).toBeDefined(); }); - it('... should return METADATA', () => { + it('... should return META_DATA', () => { // Call service function expectToEqual(coreService.getMetaData(), expectedMetaData); }); @@ -50,7 +50,7 @@ describe('CoreService (DONE)', () => { expect(coreService.getMetaDataSection).toBeDefined(); }); - it('... should return page METADATA if parameter is given', () => { + it('... should return page META_DATA if parameter is given', () => { const pageMetaSection = MetaSectionTypes.page; const actualMetaData = coreService.getMetaDataSection(pageMetaSection); @@ -58,7 +58,7 @@ describe('CoreService (DONE)', () => { expectToEqual(actualMetaData, expectedMetaData[pageMetaSection]); }); - it('... should return structure METADATA if parameter is given', () => { + it('... should return structure META_DATA if parameter is given', () => { const structureMetaSection = MetaSectionTypes.structure; const actualMetaData = coreService.getMetaDataSection(structureMetaSection); @@ -66,7 +66,7 @@ describe('CoreService (DONE)', () => { expectToEqual(actualMetaData, expectedMetaData[structureMetaSection]); }); - it('... should return contact METADATA if parameter is given', () => { + it('... should return contact META_DATA if parameter is given', () => { const contactMetaSection = MetaSectionTypes.contact; const actualMetaData = coreService.getMetaDataSection(contactMetaSection); diff --git a/src/app/core/services/core-service/core.service.ts b/src/app/core/services/core-service/core.service.ts index b4c85fd529..b9577d6248 100644 --- a/src/app/core/services/core-service/core.service.ts +++ b/src/app/core/services/core-service/core.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; -import { LOGOSDATA, METADATA } from '@awg-core/core-data'; +import { LOGOS_DATA, META_DATA } from '@awg-core/core-data'; import { Logos, Meta, MetaSectionTypes } from '@awg-core/core-models'; /** @@ -24,7 +24,7 @@ export class CoreService { * @returns {Meta[S]} The sectionType S of the metadata object. */ getMetaDataSection(sectionType: S): Meta[S] { - return METADATA[sectionType]; + return META_DATA[sectionType]; } /** @@ -35,7 +35,7 @@ export class CoreService { * @returns {Meta} The complete metadata object. */ getMetaData(): Meta { - return METADATA; + return META_DATA; } /** @@ -46,6 +46,6 @@ export class CoreService { * @returns {Logos} The app-wide logos object. */ getLogos(): Logos { - return LOGOSDATA; + return LOGOS_DATA; } } diff --git a/src/app/shared/address/address.component.spec.ts b/src/app/shared/address/address.component.spec.ts index f80c155951..6674eb2e41 100644 --- a/src/app/shared/address/address.component.spec.ts +++ b/src/app/shared/address/address.component.spec.ts @@ -4,7 +4,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToBe, getAndExpectDebugElementByCss } from '@testing/expect-helper'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaContact, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { AddressComponent } from './address.component'; @@ -29,8 +29,8 @@ describe('AddressComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedPageMetaData = METADATA[MetaSectionTypes.page]; - expectedContactMetaData = METADATA[MetaSectionTypes.contact]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; + expectedContactMetaData = META_DATA[MetaSectionTypes.contact]; }); afterAll(() => { diff --git a/src/app/side-info/contact-info/contact-info.component.spec.ts b/src/app/side-info/contact-info/contact-info.component.spec.ts index d23acc937d..d0c1f98b43 100644 --- a/src/app/side-info/contact-info/contact-info.component.spec.ts +++ b/src/app/side-info/contact-info/contact-info.component.spec.ts @@ -14,7 +14,7 @@ import { } from '@testing/expect-helper'; import { AppConfig } from '@awg-app/app.config'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaContact, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -61,7 +61,7 @@ describe('ContactInfoComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Mock service for test purposes - mockCoreService = { getMetaDataSection: sectionType => METADATA[sectionType] }; + mockCoreService = { getMetaDataSection: sectionType => META_DATA[sectionType] }; TestBed.configureTestingModule({ imports: [BrowserModule], @@ -78,8 +78,8 @@ describe('ContactInfoComponent (DONE)', () => { domSanitizer = TestBed.inject(DomSanitizer); // Test data - expectedPageMetaData = METADATA[MetaSectionTypes.page]; - expectedContactMetaData = METADATA[MetaSectionTypes.contact]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; + expectedContactMetaData = META_DATA[MetaSectionTypes.contact]; // Link values for open streets map expectedUnsafeOsmEmbedUrl = AppConfig.UNSAFE_OSM_EMBED_URL; diff --git a/src/app/side-info/structure-info/structure-info.component.spec.ts b/src/app/side-info/structure-info/structure-info.component.spec.ts index 54ef7ba3f2..808bb77661 100644 --- a/src/app/side-info/structure-info/structure-info.component.spec.ts +++ b/src/app/side-info/structure-info/structure-info.component.spec.ts @@ -4,7 +4,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; import { expectToBe, expectToContain, expectToEqual, getAndExpectDebugElementByCss } from '@testing/expect-helper'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaSectionTypes, MetaStructure } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -22,7 +22,7 @@ describe('StructureInfoComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Stub service for test purposes - mockCoreService = { getMetaDataSection: sectionType => METADATA[sectionType] }; + mockCoreService = { getMetaDataSection: sectionType => META_DATA[sectionType] }; TestBed.configureTestingModule({ declarations: [StructureInfoComponent], @@ -36,7 +36,7 @@ describe('StructureInfoComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedStructureMetaData = METADATA[MetaSectionTypes.structure]; + expectedStructureMetaData = META_DATA[MetaSectionTypes.structure]; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see diff --git a/src/app/views/contact-view/contact-view.component.spec.ts b/src/app/views/contact-view/contact-view.component.spec.ts index f821fb5ba2..de71b70eaf 100644 --- a/src/app/views/contact-view/contact-view.component.spec.ts +++ b/src/app/views/contact-view/contact-view.component.spec.ts @@ -16,7 +16,7 @@ import { getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaContact, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -56,7 +56,7 @@ describe('ContactViewComponent (DONE)', () => { beforeEach(waitForAsync(() => { // Mock service for test purposes - mockCoreService = { getMetaDataSection: sectionType => METADATA[sectionType] }; + mockCoreService = { getMetaDataSection: sectionType => META_DATA[sectionType] }; // Router spy object mockRouter = jasmine.createSpyObj('Router', ['navigate']); @@ -76,8 +76,8 @@ describe('ContactViewComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedPageMetaData = METADATA[MetaSectionTypes.page]; - expectedContactMetaData = METADATA[MetaSectionTypes.contact]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; + expectedContactMetaData = META_DATA[MetaSectionTypes.contact]; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-no-results/sparql-no-results.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-no-results/sparql-no-results.component.spec.ts index 0702f6491b..c4ac1bca26 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-no-results/sparql-no-results.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-graph/graph-visualizer/sparql-no-results/sparql-no-results.component.spec.ts @@ -3,7 +3,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { expectToBe, expectToContain, expectToEqual, getAndExpectDebugElementByCss } from '@testing/expect-helper'; -import { LOGOSDATA } from '@awg-core/core-data'; +import { LOGOS_DATA } from '@awg-core/core-data'; import { Logos } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -36,7 +36,7 @@ describe('SparqlNoResultsComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedLogos = LOGOSDATA; + expectedLogos = LOGOS_DATA; // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index 79fe4fbed8..c04d91ead5 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -16,7 +16,7 @@ import { } from '@testing/expect-helper'; import { RouterLinkStubDirective } from '@testing/router-stubs'; -import { METADATA } from '@awg-core/core-data'; +import { META_DATA } from '@awg-core/core-data'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionOutlineSection } from '@awg-views/edition-view/models'; @@ -117,7 +117,7 @@ describe('HomeViewComponent (DONE)', () => { expectedDisclaimerInfoMessage = 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; expectedHomeViewCardData = HOME_VIEW_CARD_DATA; - expectedPageMetaData = METADATA[MetaSectionTypes.page]; + expectedPageMetaData = META_DATA[MetaSectionTypes.page]; expectedSections = [ EditionOutlineService.getEditionSectionById('1', '5'), EditionOutlineService.getEditionSectionById('2', '2a'), From 9053f3d8fe131c8694bdb0fb00a10c6d689fa207 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 16:58:57 +0200 Subject: [PATCH 194/213] fix(home): update landing page content (cherry picked from commit 5847e25229045be743d74fd6209e2c1b1d9fdf8f) --- src/app/app.config.ts | 10 + src/app/core/core-data/meta.data.ts | 1 + src/app/core/core-models/meta.model.ts | 5 + .../home-view/data/home-view-card.data.ts | 2 +- .../views/home-view/home-view.component.html | 78 +++---- .../home-view/home-view.component.spec.ts | 200 +++++++++++------- .../views/home-view/home-view.component.ts | 3 +- 7 files changed, 177 insertions(+), 122 deletions(-) diff --git a/src/app/app.config.ts b/src/app/app.config.ts index df90d9fa49..453be7d77f 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -188,4 +188,14 @@ export class AppConfig { return osmApi + '?' + bbox + '&' + layer + '&' + marker; } + + /** + * Getter for the URL of the Zenodo record + * ({@link https://doi.org/10.5281/zenodo.4717678}). + * + * @returns {string} + */ + public static get AWG_APP_ZENODO_URL(): string { + return 'https://doi.org/10.5281/zenodo.4717678'; + } } diff --git a/src/app/core/core-data/meta.data.ts b/src/app/core/core-data/meta.data.ts index 61cffac7db..f5d944ff21 100644 --- a/src/app/core/core-data/meta.data.ts +++ b/src/app/core/core-data/meta.data.ts @@ -20,6 +20,7 @@ const META_PAGE: MetaPage = { salsahUrl: AppConfig.SALSAH_URL, version: AppConfig.AWG_APP_VERSION, versionReleaseDate: AppConfig.AWG_APP_VERSION_RELEASE_DATE, + zenodoUrl: AppConfig.AWG_APP_ZENODO_URL, }; /** diff --git a/src/app/core/core-models/meta.model.ts b/src/app/core/core-models/meta.model.ts index 2cd4fc2a27..2b21726406 100644 --- a/src/app/core/core-models/meta.model.ts +++ b/src/app/core/core-models/meta.model.ts @@ -97,6 +97,11 @@ export class MetaPage { * The release date of the latest version of the AWG edition website (awg-app). */ versionReleaseDate: string; + + /** + * The url to the Zenodo repository of the AWG edition website (awg-app). + */ + zenodoUrl: string; } /** diff --git a/src/app/views/home-view/data/home-view-card.data.ts b/src/app/views/home-view/data/home-view-card.data.ts index ac6637aab3..7395202365 100644 --- a/src/app/views/home-view/data/home-view-card.data.ts +++ b/src/app/views/home-view/data/home-view-card.data.ts @@ -23,7 +23,7 @@ export const HOME_VIEW_CARD_DATA: HomeViewCard[] = [ linkText: 'Zu den Graph-Visualisierungen', }, { - title: 'Datenbank-Suche', + title: 'Datenbank-Suche (DSP)', text: 'Finden Sie biografische und werkgeschichtliche Kontextinformationen in der DSP-Datenbank.', imgSrc: 'assets/img/home/database_sample.png', imgAlt: 'Search', diff --git a/src/app/views/home-view/home-view.component.html b/src/app/views/home-view/home-view.component.html index 4cb185c724..d9b7a8b1f4 100644 --- a/src/app/views/home-view/home-view.component.html +++ b/src/app/views/home-view/home-view.component.html @@ -5,27 +5,21 @@
-
+ + +
+ @for (cardData of homeViewCardData; track $index) { +
+ +
+ } +
+ +

Willkommen bei der AWG-APP, der Online-Edition der Anton Webern Gesamtausgabe, Basel (AWG).

+

- Die online zugänglichen Bestandteile und Datenbestände der AWG-Online-Edition werden als Open Data über - diese Webapplikation präsentiert und über das Software-Framework - DaSCH Service Platform (DSP) des - Swiss National Data & Service Center for the Humanities (DaSCH) - aufbereitet, zugänglich gehalten und langfristig aufbewahrt. Das DaSCH garantiert eine Zugänglichkeit - der Daten gemäss FAIR-Prinzipien, die Zuweisung von digitalen Identifikatoren, maschinenlesbaren - Metadaten und den langfristigen Betrieb der technischen Infrastruktur (vgl. - Mission Statement DaSCH). -

-

- Die AWG-APP simuliert bereits in weiten Teilen eine Datenabfrage über die Programmierschnittstelle (API) - von SALSAH (zukünftig DSP). Die für reale Abfragen im Bereich Online-Edition notwendige - Datenstruktur wird zur Zeit von der AWG implementiert. -

-

- Über den Menüpunkt Edition sind die Online-Editionen zu den Abteilungen + Über den Menüpunkt Edition sind aktuell die Online-Editionen zu den Abteilungen @for (section of DISPLAYED_SECTIONS; track $index; let i = $index; let n = $count) { Reihentabellen - Weberns zugänglich. Bestandteile der Online-Edition umfassen Einleitungen, die edierten Notentexte, - kritische Berichte sowie Graph-Visualisierungen (beta). + Weberns zugänglich. Bestandteile der Online-Edition umfassen Einleitungen, die edierten Notentexte + (Text- und Skizzeneditionen), Kritische Berichte sowie Graph-Visualisierungen (beta).

+ + +

- Zusätzlich werden eine einfache Volltextsuche und - eine Erweiterte Suche in der Datenbank angeboten, - über die die dort hinterlegten Kontextmaterialien (Werklisten [nach Opuszahl bzw. Moldenhauer-Nummer], - Personeninformationen, Briefe & Supplements, Chronologie) abgefragt werden können. + Über die Datenbank-Suche können Kontextmaterialien (Werklisten [nach Opuszahl bzw. + Moldenhauer-Nummer], Personeninformationen, Briefe & Supplements, Chronologie) abgefragt werden.

+

- Der Programmcode der Applikation ist als Open Access-Projekt frei zugänglich auf - GitHub sowie abgelegt und vollumfänglich - dokumentiert - (vgl. Dokumentation). + Die online zugänglichen Bestandteile und Datenbestände der AWG-Online-Edition werden als Open Data über + diese Webapplikation präsentiert und über das Software-Framework + DaSCH Service Platform (DSP) des + Swiss National Data & Service Center for the Humanities (DaSCH) + aufbereitet, zugänglich gehalten und langfristig aufbewahrt. Das DaSCH garantiert eine Zugänglichkeit + der Daten gemäss FAIR-Prinzipien, die Zuweisung von digitalen Identifikatoren, maschinenlesbaren + Metadaten und den langfristigen Betrieb der technischen Infrastruktur (vgl. + Mission Statement DaSCH).

- -
-
- @for (cardData of homeViewCardData; track $index) { -
- -
- } +

+ Der Programmcode der Applikation ist als Open Access-Projekt frei zugänglich auf + GitHub sowie + Zenodo abgelegt und vollumfänglich + dokumentiert. +

diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index c04d91ead5..cfd9eb8cb4 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -51,8 +51,6 @@ class HomeViewCardStubComponent { function getRouterlinks(sections: EditionOutlineSection[]): string[][] { const { EDITION, SERIES, SECTION, ROWTABLES } = EDITION_ROUTE_CONSTANTS; - const structureLinks = [['/structure']]; - const sectionLinks = sections.map(section => [ EDITION.route, SERIES.route, @@ -60,15 +58,9 @@ function getRouterlinks(sections: EditionOutlineSection[]): string[][] { SECTION.route, section?.section?.route, ]); + const rowTablesLink = [[EDITION.route, ROWTABLES.route]]; - const otherLinks = [ - ['/edition', ROWTABLES.route], - ['/data/search', 'fulltext'], - ['/data/search', 'extended'], - ['/contact'], - ]; - - return [...structureLinks, ...sectionLinks, ...otherLinks]; + return [...sectionLinks, ...rowTablesLink]; } describe('HomeViewComponent (DONE)', () => { @@ -115,7 +107,7 @@ describe('HomeViewComponent (DONE)', () => { expectedTitle = 'Anton Webern Gesamtausgabe: Online-Edition'; expectedId = 'awg-home-view'; expectedDisclaimerInfoMessage = - 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; + 'Die Online-Edition wird in Bezug auf Umfang und Funktionalität kontinuierlich erweitert.'; expectedHomeViewCardData = HOME_VIEW_CARD_DATA; expectedPageMetaData = META_DATA[MetaSectionTypes.page]; expectedSections = [ @@ -193,6 +185,29 @@ describe('HomeViewComponent (DONE)', () => { getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-content', 1, 1); }); + it('... should contain an AlertInfoComponent (stubbed) in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + }); + + it('... should not pass down infoMessage to AlertInfoComponent yet', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; + + expect(alertInfoCmp.infoMessage).toBeUndefined(); + }); + + it('... should contain one `div.awg-home-view-grid` in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-grid', 1, 1); + }); + + it('... should not contain any HomeViewCardComponent in `div.awg-home-view-grid` yet', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], HomeViewCardStubComponent, 0, 0); + }); + it('... should contain one `div.awg-home-view-text` in `div.awg-home-view-content`', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-text', 1, 1); @@ -235,6 +250,15 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(githubEl.href, ''); }); + it('... Zenodo', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const zenodoDes = getAndExpectDebugElementByCss(divDes[0], 'a#zenodo-link', 1, 1); + const zenodoEl = zenodoDes[0].nativeElement; + + expect(zenodoEl).toBeDefined(); + expectToBe(zenodoEl.href, ''); + }); + it('... Compodoc', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); @@ -244,29 +268,6 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(compodocEl.href, ''); }); }); - - it('... should contain an AlertInfoComponent (stubbed) in `div.awg-home-view-text`', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); - }); - - it('... should not pass down infoMessage to AlertInfoComponent yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); - const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); - const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; - - expect(alertInfoCmp.infoMessage).toBeUndefined(); - }); - - it('... should contain one `div.awg-home-view-grid` in `div.awg-home-view-content`', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); - getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-grid', 1, 1); - }); - - it('... should not contain any HomeViewCardComponent in `div.awg-home-view-grid` yet', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); - getAndExpectDebugElementByDirective(divDes[0], HomeViewCardStubComponent, 0, 0); - }); }); describe('#provideMetaData()', () => { @@ -297,6 +298,11 @@ describe('HomeViewComponent (DONE)', () => { }); describe('VIEW', () => { + it('... should contain one `awg-heading` component in `div.awg-home-view`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); + }); + it('... should pass down `title` and `id` to heading component', () => { const headingDes = getAndExpectDebugElementByDirective(compDe, HeadingStubComponent, 1, 1); const headingCmp = headingDes[0].injector.get(HeadingStubComponent) as HeadingStubComponent; @@ -306,6 +312,74 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(headingCmp.id, expectedId); }); + it('... should contain one `div.awg-home-view-content` in `div.awg-home-view`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-content', 1, 1); + }); + + it('... should contain an AlertInfoComponent (stubbed) in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + }); + + it('... should pass down infoMessage to AlertInfoComponent', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); + const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; + + expectToBe(alertInfoCmp.infoMessage, expectedDisclaimerInfoMessage); + }); + + it('... should contain one `div.awg-home-view-grid` in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-grid', 1, 1); + }); + + it('... should contain as many `div.col` in `div.awg-home-view-grid` as entries in `homeViewCardData`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); + + getAndExpectDebugElementByCss( + divDes[0], + 'div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + }); + + it('... should contain as many HomeViewCardComponents in `div.awg-home-view-grid > div.col` as entries in `homeViewCardData`', () => { + const colDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-home-view-grid > div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + + colDes.forEach(colDe => { + getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); + }); + }); + + it('... should pass down `cardData` to HomeViewCardComponents', () => { + const colDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-home-view-grid > div.col', + expectedHomeViewCardData.length, + expectedHomeViewCardData.length + ); + + colDes.forEach((colDe, index) => { + const cardDes = getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); + const cardCmp = cardDes[0].injector.get(HomeViewCardStubComponent) as HomeViewCardStubComponent; + + expectToEqual(cardCmp.cardData, expectedHomeViewCardData[index]); + }); + }); + + it('... should contain one `div.awg-home-view-text` in `div.awg-home-view-content`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-content', 1, 1); + getAndExpectDebugElementByCss(divDes[0], 'div.awg-home-view-text', 1, 1); + }); + describe('... should render links to', () => { it('... DSP', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); @@ -351,6 +425,16 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(githubEl.textContent, 'GitHub'); }); + it('... Zenodo', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); + const zenodoDes = getAndExpectDebugElementByCss(divDes[0], 'a#zenodo-link', 1, 1); + const zenodoEl = zenodoDes[0].nativeElement; + + expect(zenodoEl).toBeDefined(); + expectToBe(zenodoEl.href, expectedPageMetaData.zenodoUrl); + expectToBe(zenodoEl.textContent, 'Zenodo'); + }); + it('... Compodoc', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); @@ -361,54 +445,6 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(compodocEl.textContent, 'dokumentiert'); }); }); - - it('... should pass down infoMessage to AlertInfoComponent', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); - const alertInfoDes = getAndExpectDebugElementByDirective(divDes[0], AlertInfoStubComponent, 1, 1); - const alertInfoCmp = alertInfoDes[0].injector.get(AlertInfoStubComponent) as AlertInfoStubComponent; - - expectToBe(alertInfoCmp.infoMessage, expectedDisclaimerInfoMessage); - }); - - it('... should contain as many `div.col` in `div.awg-home-view-grid` as entries in `homeViewCardData`', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-grid', 1, 1); - - getAndExpectDebugElementByCss( - divDes[0], - 'div.col', - expectedHomeViewCardData.length, - expectedHomeViewCardData.length - ); - }); - - it('... should contain as many HomeViewCardComponents in `div.awg-home-view-grid > div.col` as entries in `homeViewCardData`', () => { - const colDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-home-view-grid > div.col', - expectedHomeViewCardData.length, - expectedHomeViewCardData.length - ); - - colDes.forEach(colDe => { - getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); - }); - }); - - it('... should pass down `cardData` to HomeViewCardComponents', () => { - const colDes = getAndExpectDebugElementByCss( - compDe, - 'div.awg-home-view-grid > div.col', - expectedHomeViewCardData.length, - expectedHomeViewCardData.length - ); - - colDes.forEach((colDe, index) => { - const cardDes = getAndExpectDebugElementByDirective(colDe, HomeViewCardStubComponent, 1, 1); - const cardCmp = cardDes[0].injector.get(HomeViewCardStubComponent) as HomeViewCardStubComponent; - - expectToEqual(cardCmp.cardData, expectedHomeViewCardData[index]); - }); - }); }); describe('#provideMetaData()', () => { diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index e811b4a33f..24a3fc1bbe 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -27,8 +27,7 @@ export class HomeViewComponent implements OnInit { * * It keeps the disclaimer info message for the home view section. */ - disclaimerInfoMessage = - 'Die Online-Edition und die Datenbank-Suche werden in ihrer Funktionalität kontinuierlich erweitert.'; + disclaimerInfoMessage = 'Die Online-Edition wird in Bezug auf Umfang und Funktionalität kontinuierlich erweitert.'; /** * Public variable: homeViewTitle. From b4dae1d678f770b093dca3f72eb0b9c398f45412 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 17:26:16 +0200 Subject: [PATCH 195/213] fix(structure): replace SALSAH with DSP in structure-view (cherry picked from commit 8cdfcb55cd49c0d326e4196dfe3599be868a4cba) --- src/app/views/structure-view/structure-view.component.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/views/structure-view/structure-view.component.html b/src/app/views/structure-view/structure-view.component.html index fdc1e3066e..8123635470 100644 --- a/src/app/views/structure-view/structure-view.component.html +++ b/src/app/views/structure-view/structure-view.component.html @@ -7,11 +7,11 @@

Das Modell zeigt die für eine AWG-Online-Edition projektierte Datenstruktur, die zur Zeit intern in der - Webern-SALSAH-Datenbank implementiert wird. + Webern-DSP-Datenbank implementiert wird.

- Die erforderlichen Objektklassen und Eigenschaften werden von SALSAH intern als RDF (Resource Description Framework) Triple verwaltet. Sie sind in der Grafik als Ellipsen symbolisiert, deren Verknüpfungen und Verweise @@ -21,7 +21,7 @@

Komplexere Objektstrukturen, wie die aus mehreren Unter- oder Einzelobjekten zu modellierenden Notentexte oder Kritischen Berichte, sind als Gruppen zusammengefasst. Zudem sind die Schnittstellen zum - dokumentarischen Bereich der Webern-SALSAH-Datenbank angedeutet. + dokumentarischen Bereich der Webern-DSP-Datenbank angedeutet.

From c2707c9bd7c569826e75d8f28cfd87ec9941fc65 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 17:29:18 +0200 Subject: [PATCH 196/213] fix(home): link to doku page instead of compodoc (cherry picked from commit 4c0b96fdddea3f16a2c37accde1f11bc65d32e29) --- .../views/home-view/home-view.component.html | 6 +++-- .../home-view/home-view.component.spec.ts | 23 ++----------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/app/views/home-view/home-view.component.html b/src/app/views/home-view/home-view.component.html index d9b7a8b1f4..9a632caedb 100644 --- a/src/app/views/home-view/home-view.component.html +++ b/src/app/views/home-view/home-view.component.html @@ -56,8 +56,10 @@

-->

- Über die Datenbank-Suche können Kontextmaterialien (Werklisten [nach Opuszahl bzw. + Über die (externe) Datenbank-Suche können Kontextmaterialien (Werklisten [nach Opuszahl bzw. Moldenhauer-Nummer], Personeninformationen, Briefe & Supplements, Chronologie) abgefragt werden. +
+ Über Anton Webern Gesamtausgabe gelangen Sie zur Projekt-Website.

@@ -77,7 +79,7 @@ Der Programmcode der Applikation ist als Open Access-Projekt frei zugänglich auf GitHub sowie Zenodo abgelegt und vollumfänglich - dokumentiert. + dokumentiert.

diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index cfd9eb8cb4..a1ef05fc01 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -9,7 +9,6 @@ import { click } from '@testing/click-helper'; import { expectSpyCall, expectToBe, - expectToContain, expectToEqual, getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, @@ -59,8 +58,9 @@ function getRouterlinks(sections: EditionOutlineSection[]): string[][] { section?.section?.route, ]); const rowTablesLink = [[EDITION.route, ROWTABLES.route]]; + const contactLink = [['/contact']]; - return [...sectionLinks, ...rowTablesLink]; + return [...sectionLinks, ...rowTablesLink, ...contactLink]; } describe('HomeViewComponent (DONE)', () => { @@ -258,15 +258,6 @@ describe('HomeViewComponent (DONE)', () => { expect(zenodoEl).toBeDefined(); expectToBe(zenodoEl.href, ''); }); - - it('... Compodoc', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); - const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); - const compodocEl = compodocDes[0].nativeElement; - - expect(compodocEl).toBeDefined(); - expectToBe(compodocEl.href, ''); - }); }); }); @@ -434,16 +425,6 @@ describe('HomeViewComponent (DONE)', () => { expectToBe(zenodoEl.href, expectedPageMetaData.zenodoUrl); expectToBe(zenodoEl.textContent, 'Zenodo'); }); - - it('... Compodoc', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-home-view-text', 1, 1); - const compodocDes = getAndExpectDebugElementByCss(divDes[0], 'a#compodoc-link', 1, 1); - const compodocEl = compodocDes[0].nativeElement; - - expect(compodocEl).toBeDefined(); - expectToContain(compodocEl.href, expectedPageMetaData.compodocUrl); - expectToBe(compodocEl.textContent, 'dokumentiert'); - }); }); }); From 5559862c87edf163368ca15bc8abd11d806c9b45 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 18:12:35 +0200 Subject: [PATCH 197/213] style(page-not-found): improve styling --- .../home-view/home-view.component.spec.ts | 2 +- .../page-not-found-view.component.html | 10 +- .../page-not-found-view.component.scss | 4 + .../page-not-found-view.component.spec.ts | 133 ++++++++++++++---- 4 files changed, 112 insertions(+), 37 deletions(-) diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index a1ef05fc01..f04b0805dc 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -25,7 +25,7 @@ import { HomeViewCard } from '@awg-views/home-view/models'; import { HomeViewComponent } from './home-view.component'; -// Mock heading component +// Mock components @Component({ selector: 'awg-alert-info', template: '' }) class AlertInfoStubComponent { @Input() diff --git a/src/app/views/page-not-found-view/page-not-found-view.component.html b/src/app/views/page-not-found-view/page-not-found-view.component.html index bfd7346c9e..42abe34adb 100644 --- a/src/app/views/page-not-found-view/page-not-found-view.component.html +++ b/src/app/views/page-not-found-view/page-not-found-view.component.html @@ -1,11 +1,11 @@ -
-

{{ pageNotFoundTitle }}

- -
{{ pageNotFoundSubTitle }}
+
+
+
{{ pageNotFoundSubTitle }}
+
- Page not found + Page not found

diff --git a/src/app/views/page-not-found-view/page-not-found-view.component.scss b/src/app/views/page-not-found-view/page-not-found-view.component.scss index e69de29bb2..14eac815c5 100644 --- a/src/app/views/page-not-found-view/page-not-found-view.component.scss +++ b/src/app/views/page-not-found-view/page-not-found-view.component.scss @@ -0,0 +1,4 @@ +.awg-page-not-found-image > img { + object-fit: cover; + border-bottom: 1px solid var(--bs-card-border-color); +} diff --git a/src/app/views/page-not-found-view/page-not-found-view.component.spec.ts b/src/app/views/page-not-found-view/page-not-found-view.component.spec.ts index 919cd2e0b1..28d37a689e 100644 --- a/src/app/views/page-not-found-view/page-not-found-view.component.spec.ts +++ b/src/app/views/page-not-found-view/page-not-found-view.component.spec.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ -import { DebugElement } from '@angular/core'; +import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; @@ -15,6 +15,15 @@ import { RouterLinkStubDirective } from '@testing/router-stubs'; import { PageNotFoundViewComponent } from './page-not-found-view.component'; +// Mock components +@Component({ selector: 'awg-heading', template: '' }) +class HeadingStubComponent { + @Input() + title: string; + @Input() + id: string; +} + describe('PageNotFoundViewComponent (DONE)', () => { let component: PageNotFoundViewComponent; let fixture: ComponentFixture; @@ -30,7 +39,7 @@ describe('PageNotFoundViewComponent (DONE)', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [PageNotFoundViewComponent, RouterLinkStubDirective], + declarations: [PageNotFoundViewComponent, HeadingStubComponent, RouterLinkStubDirective], }).compileComponents(); })); @@ -60,32 +69,67 @@ describe('PageNotFoundViewComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain one `div.awg-page-not-found`', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found', 1, 1); + it('... should contain one `div.awg-page-not-found-view`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-view', 1, 1); + }); + + it('... should contain one `awg-heading` component in `div.awg-page-not-found-view`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); }); - it('... should contain one `h2` title and on `h5` subtitle', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found > h2', 1, 1); + it('... should not pass down `title` and `id` to heading component', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-view', 1, 1); + const headingDes = getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); + const headingCmp = headingDes[0].injector.get(HeadingStubComponent) as HeadingStubComponent; - getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found > h5', 1, 1); + expect(headingCmp.title).toBeUndefined(); + expect(headingCmp.id).toBeUndefined(); }); - it('... should contain one body with text-centered div', () => { - getAndExpectDebugElementByCss( + it('... should contain one text-centered body', () => { + const bodyDes = getAndExpectDebugElementByCss( compDe, - 'div.awg-page-not-found > div.awg-page-not-found-body.text-center', + 'div.awg-page-not-found-view > div.awg-page-not-found-body', 1, 1 ); + const bodyEl = bodyDes[0].nativeElement; + + expectToContain(bodyEl.classList, 'text-center'); + }); + + it('... should contain one `h5` subtitle in body', () => { + const bodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-page-not-found-view > div.awg-page-not-found-body', + 1, + 1 + ); + getAndExpectDebugElementByCss(bodyDes[0], 'h5#awg-page-not-found-subtitle', 1, 1); + }); + + it('... should not render subtitle yet', () => { + const bodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-page-not-found-view > div.awg-page-not-found-body', + 1, + 1 + ); + const subtitleDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5#awg-page-not-found-subtitle', 1, 1); + const subtitleEl = subtitleDes[0].nativeElement; + + expectToBe(subtitleEl.textContent, ''); }); it('... should contain one div with img (empty yet) in body', () => { - const imgDes = getAndExpectDebugElementByCss( + const bodyDes = getAndExpectDebugElementByCss( compDe, - 'div.awg-page-not-found-body > div.awg-page-not-found-image > img', + 'div.awg-page-not-found-view > div.awg-page-not-found-body', 1, 1 ); + const imgDes = getAndExpectDebugElementByCss(bodyDes[0], 'div.awg-page-not-found-image > img', 1, 1); const imgEl = imgDes[0].nativeElement; expectToBe(imgEl.src, ''); @@ -99,17 +143,6 @@ describe('PageNotFoundViewComponent (DONE)', () => { getAndExpectDebugElementByCss(bodyDes[0], 'p#awg-page-not-found-back', 1, 1); }); - it('... should not render pageNotFoundTitle or pageNotFoundSubtitle yet', () => { - const titleDes = getAndExpectDebugElementByCss(compDe, 'h2#awg-page-not-found-title', 1, 1); - const titleEl = titleDes[0].nativeElement; - - const subtitleDes = getAndExpectDebugElementByCss(compDe, 'h5#awg-page-not-found-subtitle', 1, 1); - const subtitleEl = subtitleDes[0].nativeElement; - - expectToBe(titleEl.textContent, ''); - expectToBe(subtitleEl.textContent, ''); - }); - it('... should not render contact url yet', () => { const contactDes = getAndExpectDebugElementByCss(compDe, 'p#awg-page-not-found-contact > a', 1, 1); const contactEl = contactDes[0].nativeElement; @@ -126,25 +159,63 @@ describe('PageNotFoundViewComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should render pageNotFoundTitle in the `h2`-element', () => { - const titleDes = getAndExpectDebugElementByCss(compDe, 'h2#awg-page-not-found-title', 1, 1); - const titleEl = titleDes[0].nativeElement; + it('... should contain one `awg-heading` component in `div.awg-page-not-found-view`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-view', 1, 1); + getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); + }); + + it('... should pass down `title` and `id` to heading component', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-view', 1, 1); + const headingDes = getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); + const headingCmp = headingDes[0].injector.get(HeadingStubComponent) as HeadingStubComponent; + + expectToBe(headingCmp.title, expectedPageNotFoundTitle); + expectToBe(headingCmp.id, 'awg-page-not-found-title'); + }); - expectToContain(titleEl.textContent, expectedPageNotFoundTitle); + it('... should contain one `h5` subtitle in body', () => { + const bodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-page-not-found-view > div.awg-page-not-found-body', + 1, + 1 + ); + getAndExpectDebugElementByCss(bodyDes[0], 'h5#awg-page-not-found-subtitle', 1, 1); }); - it('... should render pageNotFoundSubTitle in the `h5`-element', () => { - const subtitleDes = getAndExpectDebugElementByCss(compDe, 'h5#awg-page-not-found-subtitle', 1, 1); + it('... should render subtitle', () => { + const bodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-page-not-found-view > div.awg-page-not-found-body', + 1, + 1 + ); + const subtitleDes = getAndExpectDebugElementByCss(bodyDes[0], 'h5#awg-page-not-found-subtitle', 1, 1); const subtitleEl = subtitleDes[0].nativeElement; expectToContain(subtitleEl.textContent, expectedPageNotFoundSubTitle); }); - it('... should render image', () => { - const imgDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-image > img', 1, 1); + it('... should contain one div with rendered img in body', () => { + const bodyDes = getAndExpectDebugElementByCss( + compDe, + 'div.awg-page-not-found-view > div.awg-page-not-found-body', + 1, + 1 + ); + const imgDes = getAndExpectDebugElementByCss(bodyDes[0], 'div.awg-page-not-found-image > img', 1, 1); const imgEl = imgDes[0].nativeElement; expectToContain(imgEl.src, expectedPageNotFoundImgPath); + expectToBe(imgEl.alt, 'Page not found'); + }); + + it('... should contain 2 paragraphs (contact and back) in body', () => { + const bodyDes = getAndExpectDebugElementByCss(compDe, 'div.awg-page-not-found-body', 1, 1); + + getAndExpectDebugElementByCss(bodyDes[0], 'div.awg-page-not-found-body > p', 2, 2); + getAndExpectDebugElementByCss(bodyDes[0], 'p#awg-page-not-found-contact', 1, 1); + getAndExpectDebugElementByCss(bodyDes[0], 'p#awg-page-not-found-back', 1, 1); }); it('... should render contact url', () => { From ac82f9d6799b8cb0adb70a20ab82d7cc6baf4d14 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 18:56:34 +0200 Subject: [PATCH 198/213] refactor(edition): adjust wording for headings and disclaimer (cherry picked from commit ac1f915316157412e0444464a5f20624ffd14314) --- .../edition-section-detail-disclaimer.component.html | 4 +++- .../edition-section-detail-disclaimer.component.spec.ts | 2 +- src/app/views/edition-view/edition-view.component.spec.ts | 2 +- src/app/views/edition-view/edition-view.component.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html index a3108f4d8a..f50c9e0004 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.html @@ -1,2 +1,4 @@ + [infoMessage]=" + 'Die Online-Edition wird in Bezug auf Umfang und Funktionalität kontinuierlich erweitert.' + "> diff --git a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts index b9adf17934..f50a80ba7f 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series-detail/edition-section-detail/edition-section-detail-disclaimer/edition-section-detail-disclaimer.component.spec.ts @@ -30,7 +30,7 @@ describe('EditionSectionDetailDisclaimerComponent (DONE)', () => { compDe = fixture.debugElement; // Test data - expectedInfoMessage = `Die online verfügbaren Editionsinhalte werden kontinuierlich erweitert.`; + expectedInfoMessage = `Die Online-Edition wird in Bezug auf Umfang und Funktionalität kontinuierlich erweitert.`; }); afterAll(() => { diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index 57efb3845e..1a649de11e 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -64,7 +64,7 @@ describe('EditionViewComponent (DONE)', () => { let expectedIsPrefaceView: boolean; let expectedIsRowTableView: boolean; - const expectedTitle = 'Inhalt'; + const expectedTitle = 'Editionsübersicht'; const expectedId = 'awg-edition-view'; const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; diff --git a/src/app/views/edition-view/edition-view.component.ts b/src/app/views/edition-view/edition-view.component.ts index d37700857f..d91aa691b6 100644 --- a/src/app/views/edition-view/edition-view.component.ts +++ b/src/app/views/edition-view/edition-view.component.ts @@ -25,7 +25,7 @@ export class EditionViewComponent implements OnInit { * * It keeps the title of the edition view section. */ - editionViewTitle = 'Inhalt'; + editionViewTitle = 'Editionsübersicht'; /** * Public variable: editionViewId. From c517895fe7d64187c7d9a1587a5fddba5fc6f9fd Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 19:30:07 +0200 Subject: [PATCH 199/213] fix(edition): add description to series overview (cherry picked from commit 4c3a711acfd389d8e865af2f9e26f3d100f1b676) --- .../edition-series.component.html | 71 ++++++++++++------- .../edition-series.component.spec.ts | 21 +++++- 2 files changed, 63 insertions(+), 29 deletions(-) diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html index 8926ed31a6..5bc2b3586a 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.html @@ -1,31 +1,50 @@ @if (editionOutline) { -

- @for (series of editionOutline; track $index) { -
-
-
- {{ series.series.full }} -
-
-
    - @for (section of series.sections; track $index) { -
  • - @if (!section.disabled) { - {{ - section.section.full - }} - } @else { - {{ section.section.full }} - } -
  • - } -
-
- } diff --git a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts index ed357713c9..771e48444c 100644 --- a/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-series/edition-series.component.spec.ts @@ -117,11 +117,26 @@ describe('EditionSeriesComponent (DONE)', () => { }); describe('VIEW', () => { - it('... should contain one div.awg-edition-series-grid', () => { - getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-grid', 1, 1); + it('... should contain one `div.awg-edition-series`', () => { + getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series', 1, 1); }); - it('... should contain as many div.col in div.awg-edition-series-grid as there are series', () => { + it('... should contain one `div.awg-edition-series-text` in `div.awg-edition-series`', () => { + const seriesDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series', 1, 1); + getAndExpectDebugElementByCss(seriesDes[0], 'div.awg-edition-series-text', 1, 1); + }); + + it('... should contain two paragraphs in `div.awg-edition-series-text`', () => { + const textDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-text', 1, 1); + getAndExpectDebugElementByCss(textDes[0], 'p', 2, 2); + }); + + it('... should contain one `div.awg-edition-series-grid` in `div.awg-edition-series`', () => { + const seriesDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series', 1, 1); + getAndExpectDebugElementByCss(seriesDes[0], 'div.awg-edition-series-grid', 1, 1); + }); + + it('... should contain as many div.col in `div.awg-edition-series-grid` as there are series', () => { const expectedSeriesLength = expectedEditionOutline.length; const gridDes = getAndExpectDebugElementByCss(compDe, 'div.awg-edition-series-grid', 1, 1); From 53a1d90109bedf97b31ff38b110440592367f965 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Thu, 24 Oct 2024 17:12:18 +0200 Subject: [PATCH 200/213] fix(core): mute search button on navbar (cherry picked from commit e702fb830c5b6dfcfd311cbaf420e2ced253c10f) --- src/app/core/navbar/navbar.component.html | 6 +- src/app/core/navbar/navbar.component.spec.ts | 81 ++++++++------------ src/app/core/navbar/navbar.component.ts | 2 +- 3 files changed, 33 insertions(+), 56 deletions(-) diff --git a/src/app/core/navbar/navbar.component.html b/src/app/core/navbar/navbar.component.html index f0d3d67ac1..4e1d797eb3 100644 --- a/src/app/core/navbar/navbar.component.html +++ b/src/app/core/navbar/navbar.component.html @@ -109,16 +109,14 @@
-
+
diff --git a/src/app/core/view-container/view-container.component.spec.ts b/src/app/core/view-container/view-container.component.spec.ts index 17a423c14f..0480436e7e 100644 --- a/src/app/core/view-container/view-container.component.spec.ts +++ b/src/app/core/view-container/view-container.component.spec.ts @@ -34,13 +34,21 @@ describe('ViewContainerComponent (DONE)', () => { describe('BEFORE initial data binding', () => { describe('VIEW', () => { + it('... should contain one `div.container-fluid`', () => { + getAndExpectDebugElementByCss(compDe, 'div.container-fluid', 1, 1); + }); + + it('... should contain one `div.row` in `div.container-fluid`', () => { + getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row', 1, 1); + }); + it('... should contain two child divs in `div.row` in `div.container-fluid`', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row > div', 2, 2); const divEl0 = divDes[0].nativeElement; const divEl1 = divDes[1].nativeElement; expect(divEl0).toHaveClass('awg-maincontent'); - expect(divEl1).toHaveClass('awg-sidenav'); + expect(divEl1).toHaveClass('awg-side-outlet'); }); it('... should contain two router outlets (stubbed)', () => { diff --git a/src/app/views/contact-view/contact-view.component.spec.ts b/src/app/views/contact-view/contact-view.component.spec.ts index de71b70eaf..cdc7164048 100644 --- a/src/app/views/contact-view/contact-view.component.spec.ts +++ b/src/app/views/contact-view/contact-view.component.spec.ts @@ -36,12 +36,14 @@ describe('ContactViewComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let dateSpy: Spy; - const datePipe = new DatePipe('en'); - let mockCoreService: Partial; let mockRouter: Partial; + const datePipe = new DatePipe('en'); + let dateSpy: Spy; + let navigateToSideOutletSpy: Spy; + let provideMetaDataSpy: Spy; + let expectedToday; let expectedPageMetaData: MetaPage; let expectedContactMetaData: MetaContact; @@ -82,8 +84,8 @@ describe('ContactViewComponent (DONE)', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - spyOn(component, 'provideMetaData').and.callThrough(); - spyOn(component, 'routeToSidenav').and.callThrough(); + provideMetaDataSpy = spyOn(component, 'provideMetaData').and.callThrough(); + navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); }); afterAll(() => { @@ -125,13 +127,13 @@ describe('ContactViewComponent (DONE)', () => { expect(component.today).toBeUndefined(); }); - describe('#routeToSidenav()', () => { - it('... should have a method `routeToSidenav`', () => { - expect(component.routeToSidenav).toBeDefined(); + describe('#navigateToSideOutlet()', () => { + it('... should have a method `navigateToSideOutlet`', () => { + expect(component.navigateToSideOutlet).toBeDefined(); }); it('... should not have been called', () => { - expect(component.routeToSidenav).not.toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 0); }); }); @@ -141,7 +143,7 @@ describe('ContactViewComponent (DONE)', () => { }); it('... should not have been called', () => { - expect(component.provideMetaData).not.toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 0); }); }); @@ -230,52 +232,49 @@ describe('ContactViewComponent (DONE)', () => { fixture.detectChanges(); }); - describe('#routeToSideNav()', () => { - let navigationSpy: Spy; + describe('#navigateToSideOutlet()', () => { + let routerNavigateSpy: Spy; beforeEach(() => { // Create spy of mockrouter SpyObj - navigationSpy = mockRouter.navigate as jasmine.Spy; + routerNavigateSpy = mockRouter.navigate as jasmine.Spy; }); it('... should have been called', () => { - // Router navigation triggerd by onInit - expect(component.routeToSidenav).toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 1); }); it('... should have triggered `router.navigate`', () => { - expect(navigationSpy).toHaveBeenCalled(); - expectToBe(navigationSpy.calls.any(), true); - expectToBe(navigationSpy.calls.count(), 1); + expectSpyCall(routerNavigateSpy, 1); }); it('... should tell ROUTER to navigate to `contactInfo` outlet', () => { const expectedRoute = 'contactInfo'; // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const outletRoute = navArgs[0][0].outlets.side; expect(navArgs).toBeDefined(); expect(navArgs[0]).toBeDefined(); expectToBe(outletRoute, expectedRoute); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const navExtras = navArgs[1]; expect(navExtras).toBeDefined(); expectToBe(navExtras.preserveFragment, true); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); }); describe('#provideMetaData()', () => { it('... should have been called', () => { - expect(component.provideMetaData).toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 1); }); it('... should return metadata', () => { diff --git a/src/app/views/contact-view/contact-view.component.ts b/src/app/views/contact-view/contact-view.component.ts index 2790cb8808..f802b8e7d0 100644 --- a/src/app/views/contact-view/contact-view.component.ts +++ b/src/app/views/contact-view/contact-view.component.ts @@ -108,7 +108,7 @@ export class ContactViewComponent implements OnInit { * when initializing the component. */ ngOnInit() { - this.routeToSidenav(); + this.navigateToSideOutlet(); this.provideMetaData(); this.today = Date.now(); } @@ -127,13 +127,13 @@ export class ContactViewComponent implements OnInit { } /** - * Public method: routeToSidenav. + * Public method: navigateToSideOutlet. * - * It activates the secondary outlet with the contact-info. + * It activates the side outlet with the contact-info. * * @returns {void} Activates the contact-info side outlet. */ - routeToSidenav(): void { + navigateToSideOutlet(): void { // Opens the side-info outlet while preserving the router fragment for scrolling this.router.navigate([{ outlets: { side: 'contactInfo' } }], { preserveFragment: true, diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts index dfae1be6c0..0ccaed17dd 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts @@ -131,7 +131,7 @@ export class ResourceDetailComponent implements OnInit, OnDestroy { * when initializing the component. */ ngOnInit() { - this.routeToSidenav(); + this.navigateToSideOutlet(); this.getResourceData(); } @@ -259,13 +259,13 @@ export class ResourceDetailComponent implements OnInit, OnDestroy { } /** - * Public method: routeToSidenav. + * Public method: navigateToSideOutlet. * - * It activates the secondary outlet with the resource-info. + * It activates the side outlet with the resource-info. * * @returns {void} Activates the resource-info side outlet. */ - routeToSidenav(): void { + navigateToSideOutlet(): void { this.router.navigate([{ outlets: { side: 'resourceInfo' } }], { preserveFragment: true, queryParamsHandling: 'preserve', diff --git a/src/app/views/data-view/data-view.component.spec.ts b/src/app/views/data-view/data-view.component.spec.ts index 4adfbbfa5f..eaf7ee97b7 100644 --- a/src/app/views/data-view/data-view.component.spec.ts +++ b/src/app/views/data-view/data-view.component.spec.ts @@ -32,6 +32,8 @@ describe('DataViewComponent (DONE)', () => { let mockRouter: Partial; + let navigateToSideOutletSpy: Spy; + const expectedTitle = 'Suche'; const expectedId = 'search'; @@ -53,7 +55,7 @@ describe('DataViewComponent (DONE)', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - spyOn(component, 'routeToSidenav').and.callThrough(); + navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); }); afterAll(() => { @@ -70,13 +72,13 @@ describe('DataViewComponent (DONE)', () => { expectToBe(component.searchId, expectedId); }); - describe('#routeToSidenav()', () => { - it('... should have a method `routeToSidenav`', () => { - expect(component.routeToSidenav).toBeDefined(); + describe('#navigateToSideOutlet()', () => { + it('... should have a method `navigateToSideOutlet`', () => { + expect(component.navigateToSideOutlet).toBeDefined(); }); it('... should not have been called', () => { - expect(component.routeToSidenav).not.toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 0); }); }); @@ -117,45 +119,44 @@ describe('DataViewComponent (DONE)', () => { fixture.detectChanges(); }); - describe('#routeToSideNav()', () => { - let navigationSpy: Spy; + describe('#navigateToSideOutlet()', () => { + let routerNavigateSpy: Spy; beforeEach(() => { // Create spy of mockrouter SpyObj - navigationSpy = mockRouter.navigate as jasmine.Spy; + routerNavigateSpy = mockRouter.navigate as jasmine.Spy; }); it('... should have been called', () => { - // Router navigation triggerd by onInit - expect(component.routeToSidenav).toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 1); }); it('... should have triggered `router.navigate`', () => { - expectSpyCall(navigationSpy, 1); + expectSpyCall(routerNavigateSpy, 1); }); it('... should tell ROUTER to navigate to `searchInfo` outlet', () => { const expectedRoute = 'searchInfo'; // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const outletRoute = navArgs[0][0].outlets.side; expect(navArgs).toBeDefined(); expect(navArgs[0]).toBeDefined(); expectToBe(outletRoute, expectedRoute); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const navExtras = navArgs[1]; expect(navExtras).toBeDefined(); expectToBe(navExtras.preserveFragment, true); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); }); diff --git a/src/app/views/data-view/data-view.component.ts b/src/app/views/data-view/data-view.component.ts index cbfb27b518..f91b14c904 100644 --- a/src/app/views/data-view/data-view.component.ts +++ b/src/app/views/data-view/data-view.component.ts @@ -46,17 +46,17 @@ export class DataViewComponent implements OnInit { * when initializing the component. */ ngOnInit() { - this.routeToSidenav(); + this.navigateToSideOutlet(); } /** - * Public method: routeToSidenav. + * Public method: navigateToSideOutlet. * - * It activates the secondary outlet with the search-info. + * It activates the side outlet with the search-info. * * @returns {void} Activates the search-info side outlet. */ - routeToSidenav(): void { + navigateToSideOutlet(): void { // Opens the side-info outlet while preserving the router fragment for scrolling this.router.navigate([{ outlets: { side: 'searchInfo' } }], { preserveFragment: true, diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index 1a649de11e..5df97402d8 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -47,7 +47,7 @@ describe('EditionViewComponent (DONE)', () => { let mockEditionStateService: Partial; let setupEditionViewSpy: Spy; - let routeToSidenavSpy: Spy; + let navigateToSideOutletSpy: Spy; let editionStateServiceGetSelectedEditionComplexSpy: Spy; let editionStateServiceGetSelectedEditionSeriesSpy: Spy; @@ -136,7 +136,7 @@ describe('EditionViewComponent (DONE)', () => { // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E setupEditionViewSpy = spyOn(component, 'setupEditionView').and.callThrough(); - routeToSidenavSpy = spyOn(component, 'routeToSidenav').and.callThrough(); + navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); // Spies for service methods editionStateServiceGetSelectedEditionComplexSpy = spyOn( @@ -269,13 +269,13 @@ describe('EditionViewComponent (DONE)', () => { }); }); - describe('#routeToSidenav()', () => { - it('... should have a method `routeToSidenav`', () => { - expect(component.routeToSidenav).toBeDefined(); + describe('#navigateToSideOutlet()', () => { + it('... should have a method `navigateToSideOutlet`', () => { + expect(component.navigateToSideOutlet).toBeDefined(); }); it('... should not have been called', () => { - expectSpyCall(routeToSidenavSpy, 0); + expectSpyCall(navigateToSideOutletSpy, 0); }); }); }); @@ -875,46 +875,46 @@ describe('EditionViewComponent (DONE)', () => { })); }); - describe('#routeToSideNav()', () => { - let navigationSpy: Spy; + describe('#navigateToSideOutlet()', () => { + let routerNavigateSpy: Spy; beforeEach(() => { // Create spy of mockrouter SpyObj - navigationSpy = mockRouter.navigate as jasmine.Spy; + routerNavigateSpy = mockRouter.navigate as jasmine.Spy; }); it('... should have been called', () => { // Router navigation triggerd by onInit - expectSpyCall(routeToSidenavSpy, 1); + expectSpyCall(navigateToSideOutletSpy, 1); }); it('... should have triggered `router.navigate`', () => { - expectSpyCall(navigationSpy, 1); + expectSpyCall(routerNavigateSpy, 1); }); it('... should tell ROUTER to navigate to `editionInfo` outlet', () => { const expectedRoute = 'editionInfo'; // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const outletRoute = navArgs[0][0].outlets.side; expect(navArgs).toBeDefined(); expect(navArgs[0]).toBeDefined(); expectToBe(outletRoute, expectedRoute); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const navExtras = navArgs[1]; expect(navExtras).toBeDefined(); expectToBe(navExtras.preserveFragment, true); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); }); }); diff --git a/src/app/views/edition-view/edition-view.component.ts b/src/app/views/edition-view/edition-view.component.ts index d91aa691b6..5b98b2d540 100644 --- a/src/app/views/edition-view/edition-view.component.ts +++ b/src/app/views/edition-view/edition-view.component.ts @@ -111,7 +111,7 @@ export class EditionViewComponent implements OnInit { */ ngOnInit() { this.setupEditionView(); - this.routeToSidenav(); + this.navigateToSideOutlet(); } /** @@ -133,13 +133,13 @@ export class EditionViewComponent implements OnInit { } /** - * Public method: routeToSidenav. + * Public method: navigateToSideOutlet. * - * It activates the secondary outlet with the edition-info. + * It activates the side outlet with the edition-info. * * @returns {void} Activates the edition-info side outlet. */ - routeToSidenav(): void { + navigateToSideOutlet(): void { // Opens the side-info outlet while preserving the router fragment for scrolling this.router.navigate([{ outlets: { side: 'editionInfo' } }], { preserveFragment: true, diff --git a/src/app/views/home-view/home-view.component.spec.ts b/src/app/views/home-view/home-view.component.spec.ts index bc1aab1076..3ac99934ee 100644 --- a/src/app/views/home-view/home-view.component.spec.ts +++ b/src/app/views/home-view/home-view.component.spec.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { Router } from '@angular/router'; import Spy = jasmine.Spy; @@ -69,11 +68,11 @@ describe('HomeViewComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockRouter: Partial; - let linkDes: DebugElement[]; let routerLinks; + let provideMetaDataSpy: Spy; + const expectedEditionRouteConstants: typeof EDITION_ROUTE_CONSTANTS = EDITION_ROUTE_CONSTANTS; let expectedTitle: string; let expectedId: string; @@ -90,9 +89,6 @@ describe('HomeViewComponent (DONE)', () => { }); beforeEach(waitForAsync(() => { - // Router spy object - mockRouter = jasmine.createSpyObj('Router', ['navigate']); - TestBed.configureTestingModule({ declarations: [ HomeViewComponent, @@ -101,7 +97,6 @@ describe('HomeViewComponent (DONE)', () => { HomeViewCardStubComponent, RouterLinkStubDirective, ], - providers: [{ provide: Router, useValue: mockRouter }], }).compileComponents(); })); @@ -126,8 +121,7 @@ describe('HomeViewComponent (DONE)', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - spyOn(component, 'provideMetaData').and.callThrough(); - spyOn(component, 'routeToSidenav').and.callThrough(); + provideMetaDataSpy = spyOn(component, 'provideMetaData').and.callThrough(); }); afterAll(() => { @@ -274,17 +268,7 @@ describe('HomeViewComponent (DONE)', () => { }); it('... should not have been called', () => { - expect(component.provideMetaData).not.toHaveBeenCalled(); - }); - }); - - describe('#routeToSidenav()', () => { - it('... should have a method `routeToSidenav`', () => { - expect(component.routeToSidenav).toBeDefined(); - }); - - it('... should not have been called', () => { - expect(component.routeToSidenav).not.toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 0); }); }); }); @@ -437,7 +421,7 @@ describe('HomeViewComponent (DONE)', () => { describe('#provideMetaData()', () => { it('... should have been called', () => { - expect(component.provideMetaData).toHaveBeenCalled(); + expectSpyCall(provideMetaDataSpy, 1); }); it('... should return pageMetaData', () => { @@ -445,49 +429,6 @@ describe('HomeViewComponent (DONE)', () => { }); }); - describe('#routeToSideNav()', () => { - let navigationSpy: Spy; - - beforeEach(() => { - // Create spy of mockrouter SpyObj - navigationSpy = mockRouter.navigate as jasmine.Spy; - }); - - it('... should have been called', () => { - // Router navigation triggerd by onInit - expect(component.routeToSidenav).toHaveBeenCalled(); - }); - - it('... should have triggered `router.navigate`', () => { - expectSpyCall(navigationSpy, 1); - }); - - it('... should tell ROUTER to navigate to `editionInfo` outlet', () => { - const expectedRoute = 'editionInfo'; - - // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; - const outletRoute = navArgs[0][0].outlets.side; - - expect(navArgs).toBeDefined(); - expect(navArgs[0]).toBeDefined(); - expectToBe(outletRoute, expectedRoute); - - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - - it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { - // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; - const navExtras = navArgs[1]; - - expect(navExtras).toBeDefined(); - expectToBe(navExtras.preserveFragment, true); - - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - }); - describe('[routerLink]', () => { beforeEach(() => { // Find DebugElements with an attached RouterLinkStubDirective diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index 24a3fc1bbe..337e335a76 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; import { MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -77,10 +76,7 @@ export class HomeViewComponent implements OnInit { * * @param {CoreService} coreService Instance of the CoreService. */ - constructor( - private coreService: CoreService, - private router: Router - ) {} + constructor(private coreService: CoreService) {} /** * Getter variable: editionRouteConstants. @@ -98,7 +94,6 @@ export class HomeViewComponent implements OnInit { * when initializing the component. */ ngOnInit() { - this.routeToSidenav(); this.provideMetaData(); } @@ -113,19 +108,4 @@ export class HomeViewComponent implements OnInit { provideMetaData(): void { this.pageMetaData = this.coreService.getMetaDataSection(MetaSectionTypes.page); } - - /** - * Public method: routeToSidenav. - * - * It activates the secondary outlet with the edition-info. - * - * @returns {void} Activates the edition-info side outlet. - */ - routeToSidenav(): void { - // Opens the side-info outlet while preserving the router fragment for scrolling - this.router.navigate([{ outlets: { side: 'editionInfo' } }], { - preserveFragment: true, - queryParamsHandling: 'preserve', - }); - } } diff --git a/src/app/views/structure-view/structure-view.component.spec.ts b/src/app/views/structure-view/structure-view.component.spec.ts index 4b6a6d59d3..a76a5692ff 100644 --- a/src/app/views/structure-view/structure-view.component.spec.ts +++ b/src/app/views/structure-view/structure-view.component.spec.ts @@ -31,6 +31,8 @@ describe('StructureViewComponent (DONE)', () => { let mockRouter: Partial; + let navigateToSideOutletSpy: Spy; + const expectedTitle = 'Datenstrukturmodell'; const expectedId = 'awg-structure-view'; @@ -52,7 +54,7 @@ describe('StructureViewComponent (DONE)', () => { // Spies on component functions // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - spyOn(component, 'routeToSidenav').and.callThrough(); + navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); }); afterAll(() => { @@ -69,13 +71,13 @@ describe('StructureViewComponent (DONE)', () => { expectToBe(component.structureViewId, expectedId); }); - describe('#routeToSidenav()', () => { - it('... should have a method `routeToSidenav`', () => { - expect(component.routeToSidenav).toBeDefined(); + describe('#navigateToSideOutlet()', () => { + it('... should have a method `navigateToSideOutlet`', () => { + expect(component.navigateToSideOutlet).toBeDefined(); }); it('... should not have been called', () => { - expect(component.routeToSidenav).not.toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 0); }); }); @@ -116,46 +118,45 @@ describe('StructureViewComponent (DONE)', () => { fixture.detectChanges(); }); - describe('#routeToSideNav()', () => { - let navigationSpy: Spy; + describe('#navigateToSideOutlet()', () => { + let routerNavigateSpy: Spy; beforeEach(() => { // Create spy of mockrouter SpyObj - navigationSpy = mockRouter.navigate as jasmine.Spy; + routerNavigateSpy = mockRouter.navigate as jasmine.Spy; }); it('... should have been called', () => { - // Router navigation triggerd by onInit - expect(component.routeToSidenav).toHaveBeenCalled(); + expectSpyCall(navigateToSideOutletSpy, 1); }); it('... should have triggered `router.navigate`', () => { - expectSpyCall(navigationSpy, 1); + expectSpyCall(routerNavigateSpy, 1); }); it('... should tell ROUTER to navigate to `structureInfo` outlet', () => { const expectedRoute = 'structureInfo'; // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const outletRoute = navArgs[0][0].outlets.side; expect(navArgs).toBeDefined(); expect(navArgs[0]).toBeDefined(); expectToBe(outletRoute, expectedRoute); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { // Catch args passed to navigation spy - const navArgs = navigationSpy.calls.first().args; + const navArgs = routerNavigateSpy.calls.first().args; const navExtras = navArgs[1]; expect(navExtras).toBeDefined(); expectToBe(navExtras.preserveFragment, true); - expect(navigationSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); }); diff --git a/src/app/views/structure-view/structure-view.component.ts b/src/app/views/structure-view/structure-view.component.ts index 21c0d1edec..8b44f787be 100644 --- a/src/app/views/structure-view/structure-view.component.ts +++ b/src/app/views/structure-view/structure-view.component.ts @@ -46,17 +46,17 @@ export class StructureViewComponent implements OnInit { * when initializing the component. */ ngOnInit() { - this.routeToSidenav(); + this.navigateToSideOutlet(); } /** - * Public method: routeToSidenav. + * Public method: navigateToSideOutlet. * - * It activates the secondary outlet with the structure-info. + * It activates the side outlet with the structure-info. * * @returns {void} Activates the structure-info side outlet. */ - routeToSidenav(): void { + navigateToSideOutlet(): void { // Opens the side-info outlet while preserving the router fragment for scrolling this.router.navigate([{ outlets: { side: 'structureInfo' } }], { preserveFragment: true, diff --git a/src/assets/themes/css/main.css b/src/assets/themes/css/main.css index b01ed3e3da..dd588fd299 100644 --- a/src/assets/themes/css/main.css +++ b/src/assets/themes/css/main.css @@ -117,14 +117,14 @@ awg-view-container > div { } } -/* sidenav */ -.awg-sidenav > .card { +/* side-outlet */ +.awg-side-outlet > .card { padding: inherit; } -/* On small screens, set height to 'auto' for sidenav and grid */ +/* On small screens, set height to 'auto' for side-outlet and grid */ @media screen and (max-width: 767px) { - .awg-sidenav { + .awg-side-outlet { height: auto; } .row { diff --git a/src/assets/themes/scss/main.scss b/src/assets/themes/scss/main.scss index 1c7c09b06b..3b7fcbdd9c 100644 --- a/src/assets/themes/scss/main.scss +++ b/src/assets/themes/scss/main.scss @@ -144,14 +144,14 @@ awg-view-container > div { } } -/* sidenav */ -.awg-sidenav > .card { +/* side-outlet */ +.awg-side-outlet > .card { padding: inherit; } -/* On small screens, set height to 'auto' for sidenav and grid */ +/* On small screens, set height to 'auto' for side-outlet and grid */ @media screen and (max-width: 767px) { - .awg-sidenav { + .awg-side-outlet { height: auto; } .row { From dc42407ed302d21ca122b6ca431d5a2cdf2fbfe1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 00:56:04 +0200 Subject: [PATCH 203/213] fix(app): do not show sideOutlet on home view --- src/app/app.component.html | 2 +- src/app/app.component.spec.ts | 235 ++++++++++++++---- src/app/app.component.ts | 36 ++- .../view-container.component.html | 14 +- .../view-container.component.spec.ts | 148 ++++++++++- .../view-container.component.ts | 12 +- src/app/side-info/side-info-routing.module.ts | 18 +- .../contact-view-routing.module.ts | 8 +- .../contact-view.component.spec.ts | 68 +---- .../contact-view/contact-view.component.ts | 27 +- .../resource-detail.component.ts | 3 + .../views/data-view/data-view.component.ts | 14 +- .../edition-view-routing.module.ts | 14 +- .../edition-view.component.spec.ts | 72 +----- .../edition-view/edition-view.component.ts | 28 +-- .../views/home-view/home-view.component.ts | 2 +- .../page-not-found-view.component.ts | 2 +- .../structure-view-routing.module.ts | 8 +- .../structure-view.component.spec.ts | 75 +----- .../structure-view.component.ts | 41 +-- 20 files changed, 444 insertions(+), 383 deletions(-) diff --git a/src/app/app.component.html b/src/app/app.component.html index 69789082d2..de38fbba38 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -4,7 +4,7 @@ - + diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index fa9afc7879..1290ce1fa4 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,9 +1,9 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Location } from '@angular/common'; -import { Component, DebugElement } from '@angular/core'; +import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { Title } from '@angular/platform-browser'; -import { Router, RouterModule, Routes } from '@angular/router'; +import { ActivatedRouteSnapshot, Router, RouterModule, Routes } from '@angular/router'; import Spy = jasmine.Spy; @@ -19,7 +19,9 @@ import { AppComponent } from './app.component'; class NavbarStubComponent {} @Component({ selector: 'awg-view-container', template: '' }) -class ViewContainerStubComponent {} +class ViewContainerStubComponent { + @Input() activateSideOutlet: boolean; +} @Component({ selector: 'awg-footer', template: '' }) class FooterStubComponent {} @@ -30,9 +32,17 @@ export class RoutedTestMockComponent {} @Component({ selector: 'awg-test2', template: 'test2' }) export class RoutedTest2MockComponent {} +@Component({ selector: 'awg-side', template: 'test' }) +export class RoutedSideMockComponent {} + export const MOCK_ROUTES: Routes = [ { path: '', redirectTo: 'test1', pathMatch: 'full' }, { path: 'test1', component: RoutedTestMockComponent, data: { title: 'Custom Page Title 1' } }, + { + path: 'test2', + outlet: 'side', + component: RoutedSideMockComponent, + }, { path: 'test2', component: RoutedTest2MockComponent, @@ -59,6 +69,8 @@ describe('AppComponent (DONE)', () => { let trackpageViewSpy: Spy; let initializeEditionSpy: Spy; + let expectedActivateSideOutlet: boolean; + beforeEach(waitForAsync(() => { // Create a mocked AnalyticsService with an `initializeAnalytics` and `trackPageView` spy mockAnalyticsService = { @@ -86,6 +98,7 @@ describe('AppComponent (DONE)', () => { ViewContainerStubComponent, RoutedTestMockComponent, RoutedTest2MockComponent, + RoutedSideMockComponent, ], providers: [ { provide: AnalyticsService, useValue: mockAnalyticsService }, @@ -114,6 +127,9 @@ describe('AppComponent (DONE)', () => { router = TestBed.inject(Router); titleService = TestBed.inject(Title); + // Test data + expectedActivateSideOutlet = true; + // Workaround for ngZone issue; // Cf. https://github.com/angular/angular/issues/25837 // Cf. https://github.com/ngneat/spectator/pull/334/files @@ -149,40 +165,75 @@ describe('AppComponent (DONE)', () => { expectToBe(location.path(), ''); })); - it("... should redirect to /test1 from '' redirect", waitForAsync(() => { - fixture.ngZone.run(() => { - router.navigate(['']).then(() => { - expectToBe(location.path(), '/test1'); - }); + it("... should redirect to /test1 from '' redirect", async () => { + const success = await fixture.ngZone.run(() => router.navigate([''])); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test1'); + }); + + it("... should navigate to 'test1' from /test1", async () => { + const success = await fixture.ngZone.run(() => router.navigate(['/test1'])); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test1'); + }); + + it("... should navigate to 'test2' from /test2", async () => { + const success = await fixture.ngZone.run(() => router.navigate(['/test2'])); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test2'); + }); + + it("... should navigate to 'test2' with outlet from /test2", async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test2(side:test2)'); + }); + + it("... should navigate to '/test2/test3' from /test2/test3", async () => { + const success = await fixture.ngZone.run(() => router.navigate(['/test2/test3'])); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test2/test3'); + }); + + it("... should navigate to '/test2/test3' with outlet from /test2/test3", async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2/test3', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + expectToBe(location.path(), '/test2/test3(side:test2)'); + }); + }); + + describe('BEFORE initial data binding', () => { + it('... should have `activateSideOutlet=false`', () => { + expectToBe(component.activateSideOutlet, false); + }); + + describe('VIEW', () => { + it('... should contain one header component (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, NavbarStubComponent, 1, 1); }); - })); - it("... should navigate to 'test1' from /test1", waitForAsync(() => { - fixture.ngZone.run(() => { - router.navigate(['/test1']).then(() => { - expectToBe(location.path(), '/test1'); - }); + it('... should contain one view container component (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, ViewContainerStubComponent, 1, 1); }); - })); - it("... should navigate to 'test2' from /test2", waitForAsync(() => { - fixture.ngZone.run(() => { - router.navigate(['/test2']).then(() => { - expectToBe(location.path(), '/test2'); - }); + it('... should not pass down `showSideOutlet` to view container component yet', () => { + const viewContainerDes = getAndExpectDebugElementByDirective(compDe, ViewContainerStubComponent, 1, 1); + const viewContainerCmp = viewContainerDes[0].injector.get( + ViewContainerStubComponent + ) as ViewContainerStubComponent; + + expect(viewContainerCmp.activateSideOutlet).toBeUndefined(); }); - })); - it("... should navigate to '/test2/test3' from /test2/test3", waitForAsync(() => { - fixture.ngZone.run(() => { - router.navigate(['/test2/test3']).then(() => { - expectToBe(location.path(), '/test2/test3'); - }); + it('... should contain one footer component (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, FooterStubComponent, 1, 1); }); - })); - }); + }); - describe('BEFORE initial data binding', () => { describe('Analytics', () => { it('... should call AnalyticsService to initialize Analytics', waitForAsync(() => { expectSpyCall(initialzeAnalyticsSpy, 1); @@ -223,20 +274,6 @@ describe('AppComponent (DONE)', () => { }); }); - describe('VIEW', () => { - it('... should contain one header component (stubbed)', () => { - getAndExpectDebugElementByDirective(compDe, NavbarStubComponent, 1, 1); - }); - - it('... should contain one view container component (stubbed)', () => { - getAndExpectDebugElementByDirective(compDe, ViewContainerStubComponent, 1, 1); - }); - - it('... should contain one footer component (stubbed)', () => { - getAndExpectDebugElementByDirective(compDe, FooterStubComponent, 1, 1); - }); - }); - describe('Title', () => { it('... should have called getTitle', () => { expectSpyCall(getTitleSpy, 1); @@ -266,5 +303,117 @@ describe('AppComponent (DONE)', () => { }); })); }); + + describe('SideOutlet', () => { + it('... should set `activateSideOutlet` to false if not given in route data', async () => { + const success = await fixture.ngZone.run(() => router.navigate(['/test1'])); + expect(success).toBeTruthy(); + expectToBe(component.activateSideOutlet, false); + }); + + it('... should set `activateSideOutlet` to true if given in route data', async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + expectToBe(component.activateSideOutlet, true); + }); + + it('... should set `activateSideOutlet` to true if given in parent route data', async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2/test3', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + expectToBe(component.activateSideOutlet, true); + }); + + it('... should set `activateSideOutlet` to false if not given in parent route data', async () => { + const success = await fixture.ngZone.run(() => router.navigate(['/test2/test3'])); + expect(success).toBeTruthy(); + expectToBe(component.activateSideOutlet, false); + }); + + it('... should set `activateSideOutlet` back to false if navigating back to route without side outlet', async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2/test3', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + expectToBe(component.activateSideOutlet, true); + + const success2 = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test1', side: null } }]) + ); + expect(success2).toBeTruthy(); + expectToBe(component.activateSideOutlet, false); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Trigger initial data binding + fixture.detectChanges(); + }); + + describe('VIEW', () => { + it('... should pass down `activateSideOutlet` to view container component', async () => { + const success = await fixture.ngZone.run(() => + router.navigate([{ outlets: { primary: 'test2/test3', side: 'test2' } }]) + ); + expect(success).toBeTruthy(); + + fixture.detectChanges(); + + const viewContainerDes = getAndExpectDebugElementByDirective(compDe, ViewContainerStubComponent, 1, 1); + const viewContainerCmp = viewContainerDes[0].injector.get( + ViewContainerStubComponent + ) as ViewContainerStubComponent; + + expectToBe(viewContainerCmp.activateSideOutlet, expectedActivateSideOutlet); + }); + }); + + describe('#hasSideOutlet()', () => { + it('... should have a method `hasSideOutlet`', () => { + expect(component.hasSideOutlet).toBeDefined(); + }); + + it('... should return true if route has side outlet', () => { + const mockRoute: ActivatedRouteSnapshot = { + outlet: 'side', + children: [], + } as any; + + expectToBe(component.hasSideOutlet(mockRoute), true); + }); + + it('... should return true if any child route has side outlet', () => { + const mockRoute: ActivatedRouteSnapshot = { + outlet: 'primary', + children: [ + { + outlet: 'side', + children: [], + } as any, + ], + } as any; + + expectToBe(component.hasSideOutlet(mockRoute), true); + }); + + it('... should return false if route has no side outlet', () => { + const mockRoute: ActivatedRouteSnapshot = { + outlet: 'primary', + children: [ + { + outlet: 'primary', + children: [], + } as any, + ], + } as any; + + expectToBe(component.hasSideOutlet(mockRoute), false); + }); + }); }); }); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 9d56d5b9cc..a616706829 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; import { Title } from '@angular/platform-browser'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; +import { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router'; import { filter, map } from 'rxjs/operators'; @@ -19,6 +19,13 @@ import { AnalyticsService, EditionInitService } from '@awg-core/services'; styleUrls: ['./app.component.scss'], }) export class AppComponent { + /** + * Public variable: activateSideOutlet. + * + * It keeps track of the side outlet. + */ + activateSideOutlet = false; + /** * Constructor of the AppComponent. * @@ -32,10 +39,10 @@ export class AppComponent { */ constructor( private readonly activatedRoute: ActivatedRoute, + private readonly router: Router, private analyticsService: AnalyticsService, private editionInitService: EditionInitService, ngbConfig: NgbConfig, - private readonly router: Router, private titleService: Title ) { // Disable Bootstrap animation @@ -74,7 +81,32 @@ export class AppComponent { next: (pageTitle: string) => { // Set page title this.titleService.setTitle(pageTitle); + + // Activate side outlet + const currentRoute = this.router.routerState.snapshot.root; + this.activateSideOutlet = this.hasSideOutlet(currentRoute); }, }); } + + /** + * Public method: hasSideOutlet. + * + * It checks if a route has a side outlet. + * + * @param {ActivatedRouteSnapshot} route The route to check. + * + * @returns {boolean} The result of the check. + */ + hasSideOutlet(route: ActivatedRouteSnapshot): boolean { + if (route.outlet === 'side') { + return true; + } + for (const child of route.children) { + if (this.hasSideOutlet(child)) { + return true; + } + } + return false; + } } diff --git a/src/app/core/view-container/view-container.component.html b/src/app/core/view-container/view-container.component.html index a96b044b3d..0ab6feab2f 100644 --- a/src/app/core/view-container/view-container.component.html +++ b/src/app/core/view-container/view-container.component.html @@ -1,11 +1,15 @@
-
-
+
+
-
- -
+ @if (activateSideOutlet) { +
+ +
+ }
diff --git a/src/app/core/view-container/view-container.component.spec.ts b/src/app/core/view-container/view-container.component.spec.ts index 0480436e7e..852962c4c4 100644 --- a/src/app/core/view-container/view-container.component.spec.ts +++ b/src/app/core/view-container/view-container.component.spec.ts @@ -2,7 +2,12 @@ import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; -import { expectToBe, getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; +import { + expectToBe, + expectToContain, + getAndExpectDebugElementByCss, + getAndExpectDebugElementByDirective, +} from '@testing/expect-helper'; import { RouterLinkStubDirective, RouterOutletStubComponent } from '@testing/router-stubs'; import { ViewContainerComponent } from './view-container.component'; @@ -12,6 +17,8 @@ describe('ViewContainerComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; + let expectedActivateSideOutlet: boolean; + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [ViewContainerComponent, RouterLinkStubDirective, RouterOutletStubComponent], @@ -22,6 +29,9 @@ describe('ViewContainerComponent (DONE)', () => { fixture = TestBed.createComponent(ViewContainerComponent); component = fixture.componentInstance; compDe = fixture.debugElement; + + // Test data + expectedActivateSideOutlet = true; }); afterAll(() => { @@ -33,6 +43,10 @@ describe('ViewContainerComponent (DONE)', () => { }); describe('BEFORE initial data binding', () => { + it('... should not have `activateSideOutlet`', () => { + expect(component.activateSideOutlet).toBeUndefined(); + }); + describe('VIEW', () => { it('... should contain one `div.container-fluid`', () => { getAndExpectDebugElementByCss(compDe, 'div.container-fluid', 1, 1); @@ -42,29 +56,139 @@ describe('ViewContainerComponent (DONE)', () => { getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row', 1, 1); }); - it('... should contain two child divs in `div.row` in `div.container-fluid`', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row > div', 2, 2); + it('... should not have class `justify-content-center` on `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row', 1, 1); + const divEl = divDes[0].nativeElement; + + expect(divEl.classList).not.toContain('justify-content-center'); + }); + + it('... should contain one child div (maincontent) in `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row > div', 1, 1); const divEl0 = divDes[0].nativeElement; - const divEl1 = divDes[1].nativeElement; expect(divEl0).toHaveClass('awg-maincontent'); - expect(divEl1).toHaveClass('awg-side-outlet'); }); - it('... should contain two router outlets (stubbed)', () => { - getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 2, 2); + it('... should contain one router outlet (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); }); - it('... should contain only one named router outlet (stubbed)', () => { - const routletDes = getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 2, 2); + it('... should contain only unnamed router outlet (stubbed)', () => { + const routletDes = getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); // Main outlet should not be named expect(routletDes[0].attributes).toBeDefined(); expect(routletDes[0].attributes['name']).toBeUndefined(); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Simulate the parent component setting the input + component.activateSideOutlet = expectedActivateSideOutlet; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + describe('VIEW', () => { + describe('... with `showSideOutlet=true`', () => { + it('... should not have class `justify-content-center` on `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row', 1, 1); + const divEl = divDes[0].nativeElement; + + expect(divEl.classList).not.toContain('justify-content-center'); + }); + + it('... should contain two child divs in `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row > div', 2, 2); + const divEl0 = divDes[0].nativeElement; + const divEl1 = divDes[1].nativeElement; + + expect(divEl0).toHaveClass('awg-maincontent'); + expect(divEl1).toHaveClass('awg-side-outlet'); + }); + + it('... should have correct grid classes on `div.awg-maincontent`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-maincontent', 1, 1); + const divEl = divDes[0].nativeElement; + + expectToContain(divEl.classList, 'col-md-8'); + expectToContain(divEl.classList, 'col-xl-9'); + expect(divEl.classList).not.toContain('col-md-10'); + }); + + it('... should have correct grid classes on `div.awg-side-outlet`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-side-outlet', 1, 1); + const divEl = divDes[0].nativeElement; + + expectToContain(divEl.classList, 'col-md-4'); + expectToContain(divEl.classList, 'col-xl-3'); + expectToContain(divEl.classList, 'order-first'); + }); + + it('... should contain two router outlets (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 2, 2); + }); + + it('... should contain only one named router outlet (stubbed)', () => { + const routletDes = getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 2, 2); + + // Main outlet should not be named + expect(routletDes[0].attributes).toBeDefined(); + expect(routletDes[0].attributes['name']).toBeUndefined(); + + // Secondary outlet should be named 'side' + expect(routletDes[1].attributes).toBeDefined(); + expectToBe(routletDes[1].attributes['name'], 'side'); + }); + }); + + describe('... with `showSideOutlet=false`', () => { + beforeEach(() => { + // Simulate the parent component setting the input + component.activateSideOutlet = false; + + // Trigger initial data binding + fixture.detectChanges(); + }); + + it('... should have class `justify-content-center` on `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row', 1, 1); + const divEl = divDes[0].nativeElement; + + expectToContain(divEl.classList, 'justify-content-center'); + }); + + it('... should contain one child div in `div.row`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.container-fluid > div.row > div', 1, 1); + const divEl0 = divDes[0].nativeElement; + + expect(divEl0).toHaveClass('awg-maincontent'); + }); + + it('... should have correct grid classes on `div.awg-maincontent`', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-maincontent', 1, 1); + const divEl = divDes[0].nativeElement; + + expectToContain(divEl.classList, 'col-md-10'); + expect(divEl.classList).not.toContain('col-md-8'); + expect(divEl.classList).not.toContain('col-xl-9'); + }); + + it('... should contain one router outlet (stubbed)', () => { + getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); + }); + + it('... should contain only unnamed router outlet (stubbed)', () => { + const routletDes = getAndExpectDebugElementByDirective(compDe, RouterOutletStubComponent, 1, 1); - // Secondary outlet should be named 'side' - expect(routletDes[1].attributes).toBeDefined(); - expectToBe(routletDes[1].attributes['name'], 'side'); + // Main outlet should not be named + expect(routletDes[0].attributes).toBeDefined(); + expect(routletDes[0].attributes['name']).toBeUndefined(); + }); }); }); }); diff --git a/src/app/core/view-container/view-container.component.ts b/src/app/core/view-container/view-container.component.ts index d5d7e974ed..0552521a87 100644 --- a/src/app/core/view-container/view-container.component.ts +++ b/src/app/core/view-container/view-container.component.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; /** * The ViewContainer component. @@ -12,5 +12,13 @@ import { Component } from '@angular/core'; selector: 'awg-view-container', templateUrl: './view-container.component.html', styleUrls: ['./view-container.component.scss'], + changeDetection: ChangeDetectionStrategy.Default, }) -export class ViewContainerComponent {} +export class ViewContainerComponent { + /** + * Input variable: activateSideOutlet. + * + * It keeps track of the side outlet. + */ + @Input() activateSideOutlet: boolean; +} diff --git a/src/app/side-info/side-info-routing.module.ts b/src/app/side-info/side-info-routing.module.ts index 30f792d407..d455a15c4b 100644 --- a/src/app/side-info/side-info-routing.module.ts +++ b/src/app/side-info/side-info-routing.module.ts @@ -1,34 +1,20 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { ContactInfoComponent } from './contact-info/contact-info.component'; -import { EditionInfoComponent } from './edition-info/edition-info.component'; import { ResourceInfoComponent } from './resource-info/resource-info.component'; import { SearchInfoComponent } from './search-info/search-info.component'; -import { StructureInfoComponent } from './structure-info/structure-info.component'; /* Routes of the SideInfoModule */ const SIDE_INFO_ROUTES: Routes = [ - { path: 'contactInfo', component: ContactInfoComponent, outlet: 'side' }, - { path: 'editionInfo', component: EditionInfoComponent, outlet: 'side' }, { path: 'resourceInfo', component: ResourceInfoComponent, outlet: 'side' }, { path: 'searchInfo', component: SearchInfoComponent, outlet: 'side' }, - { path: 'structureInfo', component: StructureInfoComponent, outlet: 'side' }, ]; /** * Routed components of the {@link SideInfoModule}: - * {@link ContactInfoComponent}, {@link EditionInfoComponent}, - * {@link ResourceInfoComponent}, {@link SearchInfoComponent}, - * {@link StructureInfoComponent}. + * {@link ResourceInfoComponent}, {@link SearchInfoComponent}. */ -export const routedSideInfoComponents = [ - ContactInfoComponent, - EditionInfoComponent, - ResourceInfoComponent, - SearchInfoComponent, - StructureInfoComponent, -]; +export const routedSideInfoComponents = [ResourceInfoComponent, SearchInfoComponent]; /** * Side info module routing. diff --git a/src/app/views/contact-view/contact-view-routing.module.ts b/src/app/views/contact-view/contact-view-routing.module.ts index 83b401fe95..13518ba733 100644 --- a/src/app/views/contact-view/contact-view-routing.module.ts +++ b/src/app/views/contact-view/contact-view-routing.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { ContactInfoComponent } from '@awg-side-info/contact-info/contact-info.component'; import { ContactViewComponent } from '@awg-views/contact-view/contact-view.component'; /* Routes of the ContactViewModule */ @@ -10,13 +11,18 @@ const CONTACT_VIEW_ROUTES: Routes = [ component: ContactViewComponent, data: { title: 'AWG Online Edition – Contact' }, }, + { + path: '', + outlet: 'side', + component: ContactInfoComponent, + }, ]; /** * Routed components of the {@link ContactViewModule}: * {@link ContactViewComponent}. */ -export const routedContactViewComponents = [ContactViewComponent]; +export const routedContactViewComponents = [ContactViewComponent, ContactInfoComponent]; /** * ContactView module routing. diff --git a/src/app/views/contact-view/contact-view.component.spec.ts b/src/app/views/contact-view/contact-view.component.spec.ts index cdc7164048..8d5ca885f5 100644 --- a/src/app/views/contact-view/contact-view.component.spec.ts +++ b/src/app/views/contact-view/contact-view.component.spec.ts @@ -2,7 +2,6 @@ import { DatePipe } from '@angular/common'; import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { Router } from '@angular/router'; import Spy = jasmine.Spy; @@ -37,11 +36,9 @@ describe('ContactViewComponent (DONE)', () => { let compDe: DebugElement; let mockCoreService: Partial; - let mockRouter: Partial; const datePipe = new DatePipe('en'); let dateSpy: Spy; - let navigateToSideOutletSpy: Spy; let provideMetaDataSpy: Spy; let expectedToday; @@ -60,15 +57,9 @@ describe('ContactViewComponent (DONE)', () => { // Mock service for test purposes mockCoreService = { getMetaDataSection: sectionType => META_DATA[sectionType] }; - // Router spy object - mockRouter = jasmine.createSpyObj('Router', ['navigate']); - TestBed.configureTestingModule({ declarations: [ContactViewComponent, HeadingStubComponent], - providers: [ - { provide: CoreService, useValue: mockCoreService }, - { provide: Router, useValue: mockRouter }, - ], + providers: [{ provide: CoreService, useValue: mockCoreService }], }).compileComponents(); })); @@ -85,7 +76,6 @@ describe('ContactViewComponent (DONE)', () => { // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E provideMetaDataSpy = spyOn(component, 'provideMetaData').and.callThrough(); - navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); }); afterAll(() => { @@ -127,16 +117,6 @@ describe('ContactViewComponent (DONE)', () => { expect(component.today).toBeUndefined(); }); - describe('#navigateToSideOutlet()', () => { - it('... should have a method `navigateToSideOutlet`', () => { - expect(component.navigateToSideOutlet).toBeDefined(); - }); - - it('... should not have been called', () => { - expectSpyCall(navigateToSideOutletSpy, 0); - }); - }); - describe('#provideMetaData()', () => { it('... should have a method `provideMetaData`', () => { expect(component.provideMetaData).toBeDefined(); @@ -232,44 +212,9 @@ describe('ContactViewComponent (DONE)', () => { fixture.detectChanges(); }); - describe('#navigateToSideOutlet()', () => { - let routerNavigateSpy: Spy; - - beforeEach(() => { - // Create spy of mockrouter SpyObj - routerNavigateSpy = mockRouter.navigate as jasmine.Spy; - }); - - it('... should have been called', () => { - expectSpyCall(navigateToSideOutletSpy, 1); - }); - - it('... should have triggered `router.navigate`', () => { - expectSpyCall(routerNavigateSpy, 1); - }); - - it('... should tell ROUTER to navigate to `contactInfo` outlet', () => { - const expectedRoute = 'contactInfo'; - - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const outletRoute = navArgs[0][0].outlets.side; - - expect(navArgs).toBeDefined(); - expect(navArgs[0]).toBeDefined(); - expectToBe(outletRoute, expectedRoute); - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - - it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const navExtras = navArgs[1]; - - expect(navExtras).toBeDefined(); - expectToBe(navExtras.preserveFragment, true); - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); + it('... should have `today`', () => { + expectSpyCall(dateSpy, 1); + expectToBe(component.today, expectedToday); }); describe('#provideMetaData()', () => { @@ -283,11 +228,6 @@ describe('ContactViewComponent (DONE)', () => { }); }); - it('... should have `today`', () => { - expectSpyCall(dateSpy, 1); - expectToBe(component.today, expectedToday); - }); - describe('VIEW', () => { it('... should pass down `title` and `id` to heading components', () => { const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-contact-view', 1, 1); diff --git a/src/app/views/contact-view/contact-view.component.ts b/src/app/views/contact-view/contact-view.component.ts index f802b8e7d0..3ab4796116 100644 --- a/src/app/views/contact-view/contact-view.component.ts +++ b/src/app/views/contact-view/contact-view.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; import { MetaContact, MetaPage, MetaSectionTypes } from '@awg-core/core-models'; import { CoreService } from '@awg-core/services'; @@ -15,7 +14,7 @@ import { CoreService } from '@awg-core/services'; selector: 'awg-contact-view', templateUrl: './contact-view.component.html', styleUrls: ['./contact-view.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, + changeDetection: ChangeDetectionStrategy.Default, }) export class ContactViewComponent implements OnInit { /** @@ -91,15 +90,11 @@ export class ContactViewComponent implements OnInit { * Constructor of the ContactViewComponent. * * It declares a private CoreService instance - * to get the metadata and a private Router instance. + * to get the metadata. * * @param {CoreService} coreService Instance of the CoreService. - * @param {Router} router Instance of the Angular router. */ - constructor( - private coreService: CoreService, - private router: Router - ) {} + constructor(private coreService: CoreService) {} /** * Angular life cycle hook: ngOnInit. @@ -108,7 +103,6 @@ export class ContactViewComponent implements OnInit { * when initializing the component. */ ngOnInit() { - this.navigateToSideOutlet(); this.provideMetaData(); this.today = Date.now(); } @@ -125,19 +119,4 @@ export class ContactViewComponent implements OnInit { this.pageMetaData = this.coreService.getMetaDataSection(MetaSectionTypes.page); this.contactMetaData = this.coreService.getMetaDataSection(MetaSectionTypes.contact); } - - /** - * Public method: navigateToSideOutlet. - * - * It activates the side outlet with the contact-info. - * - * @returns {void} Activates the contact-info side outlet. - */ - navigateToSideOutlet(): void { - // Opens the side-info outlet while preserving the router fragment for scrolling - this.router.navigate([{ outlets: { side: 'contactInfo' } }], { - preserveFragment: true, - queryParamsHandling: 'preserve', - }); - } } diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts index 0ccaed17dd..94994a3067 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.ts @@ -278,6 +278,9 @@ export class ResourceDetailComponent implements OnInit, OnDestroy { * It calls the containing methods when destroying the component. */ ngOnDestroy() { + // Navigate to an empty outlet to clear the side outlet + this.router.navigate([{ outlets: { side: null } }]); + // Emit truthy value to end all subscriptions this._destroyed$.next(true); diff --git a/src/app/views/data-view/data-view.component.ts b/src/app/views/data-view/data-view.component.ts index f91b14c904..6be64dcb0b 100644 --- a/src/app/views/data-view/data-view.component.ts +++ b/src/app/views/data-view/data-view.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnDestroy, OnInit } from '@angular/core'; import { Router } from '@angular/router'; /** @@ -13,7 +13,7 @@ import { Router } from '@angular/router'; templateUrl: './data-view.component.html', styleUrls: ['./data-view.component.scss'], }) -export class DataViewComponent implements OnInit { +export class DataViewComponent implements OnInit, OnDestroy { /** * Public variable: searchTitle. * @@ -63,4 +63,14 @@ export class DataViewComponent implements OnInit { queryParamsHandling: 'preserve', }); } + + /** + * Angular life cycle hook: ngOnDestroy. + * + * It calls the containing methods when destroying the component. + */ + ngOnDestroy() { + // Navigate to an empty outlet to clear the side outlet + this.router.navigate([{ outlets: { side: null } }]); + } } diff --git a/src/app/views/edition-view/edition-view-routing.module.ts b/src/app/views/edition-view/edition-view-routing.module.ts index 37ec16e2a6..6545340e26 100644 --- a/src/app/views/edition-view/edition-view-routing.module.ts +++ b/src/app/views/edition-view/edition-view-routing.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { EditionInfoComponent } from '@awg-side-info/edition-info/edition-info.component'; + import { EditionComplexComponent } from './edition-outlets/edition-complex'; import { EditionDetailNavComponent } from './edition-outlets/edition-complex/edition-detail/edition-detail-nav/edition-detail-nav.component'; import { EditionSeriesComponent } from './edition-outlets/edition-series'; @@ -10,6 +12,11 @@ import { EditionViewComponent } from './edition-view.component'; /* Routes of the EditionViewModule */ const EDITION_VIEW_ROUTES: Routes = [ + { + path: '', + outlet: 'side', + component: EditionInfoComponent, + }, { path: '', component: EditionViewComponent, @@ -120,13 +127,16 @@ const EDITION_VIEW_ROUTES: Routes = [ /** * Routed components of the {@link EditionViewModule}: - * {@link EditionViewComponent}, {@link EditionDetailNavComponent}, - * {@link EditionSectionsComponent} and {@link EditionSeriesComponent}. + * {@link EditionViewComponent}, {@link EditionComplexComponent}, + * {@link EditionDetailNavComponent}, {@link EditionInfoComponent}, + * {@link EditionSectionsComponent}, {@link EditionSeriesComponent}, + * and {@link EditionSeriesDetailComponent}. */ export const routedEditionViewComponents = [ EditionViewComponent, EditionComplexComponent, EditionDetailNavComponent, + EditionInfoComponent, EditionSectionsComponent, EditionSeriesComponent, EditionSeriesDetailComponent, diff --git a/src/app/views/edition-view/edition-view.component.spec.ts b/src/app/views/edition-view/edition-view.component.spec.ts index 5df97402d8..5713ca32cb 100644 --- a/src/app/views/edition-view/edition-view.component.spec.ts +++ b/src/app/views/edition-view/edition-view.component.spec.ts @@ -2,7 +2,6 @@ import { DOCUMENT } from '@angular/common'; import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { ActivatedRoute, Router } from '@angular/router'; import { Observable, of as observableOf } from 'rxjs'; import Spy = jasmine.Spy; @@ -15,7 +14,7 @@ import { getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective, } from '@testing/expect-helper'; -import { ActivatedRouteStub, RouterLinkStubDirective, RouterOutletStubComponent } from '@testing/router-stubs'; +import { RouterLinkStubDirective, RouterOutletStubComponent } from '@testing/router-stubs'; import { EDITION_ROUTE_CONSTANTS } from '@awg-views/edition-view/edition-route-constants'; import { EditionComplex, EditionOutlineSection, EditionOutlineSeries } from '@awg-views/edition-view/models'; @@ -40,14 +39,11 @@ describe('EditionViewComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockActivatedRoute: ActivatedRouteStub; let mockDocument: Document; - let mockRouter; let mockEditionStateService: Partial; let setupEditionViewSpy: Spy; - let navigateToSideOutletSpy: Spy; let editionStateServiceGetSelectedEditionComplexSpy: Spy; let editionStateServiceGetSelectedEditionSeriesSpy: Spy; @@ -74,12 +70,6 @@ describe('EditionViewComponent (DONE)', () => { }); beforeEach(waitForAsync(() => { - // Mock router with spy object - mockRouter = jasmine.createSpyObj('Router', ['navigate']); - - // Mock activated route with stub class - mockActivatedRoute = new ActivatedRouteStub(); - // Mock edition state service mockEditionStateService = { getIsIntroView: (): Observable => observableOf(expectedIsIntroView), @@ -105,11 +95,7 @@ describe('EditionViewComponent (DONE)', () => { RouterLinkStubDirective, ScrollToTopStubComponent, ], - providers: [ - { provide: EditionStateService, useValue: mockEditionStateService }, - { provide: ActivatedRoute, useValue: mockActivatedRoute }, - { provide: Router, useValue: mockRouter }, - ], + providers: [{ provide: EditionStateService, useValue: mockEditionStateService }], }).compileComponents(); })); @@ -136,7 +122,6 @@ describe('EditionViewComponent (DONE)', () => { // `.and.callThrough` will track the spy down the nested describes, see // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E setupEditionViewSpy = spyOn(component, 'setupEditionView').and.callThrough(); - navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); // Spies for service methods editionStateServiceGetSelectedEditionComplexSpy = spyOn( @@ -268,16 +253,6 @@ describe('EditionViewComponent (DONE)', () => { expect(component.selectedEditionSection$).toBeUndefined(); }); }); - - describe('#navigateToSideOutlet()', () => { - it('... should have a method `navigateToSideOutlet`', () => { - expect(component.navigateToSideOutlet).toBeDefined(); - }); - - it('... should not have been called', () => { - expectSpyCall(navigateToSideOutletSpy, 0); - }); - }); }); describe('AFTER initial data binding', () => { @@ -874,48 +849,5 @@ describe('EditionViewComponent (DONE)', () => { }); })); }); - - describe('#navigateToSideOutlet()', () => { - let routerNavigateSpy: Spy; - - beforeEach(() => { - // Create spy of mockrouter SpyObj - routerNavigateSpy = mockRouter.navigate as jasmine.Spy; - }); - - it('... should have been called', () => { - // Router navigation triggerd by onInit - expectSpyCall(navigateToSideOutletSpy, 1); - }); - - it('... should have triggered `router.navigate`', () => { - expectSpyCall(routerNavigateSpy, 1); - }); - - it('... should tell ROUTER to navigate to `editionInfo` outlet', () => { - const expectedRoute = 'editionInfo'; - - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const outletRoute = navArgs[0][0].outlets.side; - - expect(navArgs).toBeDefined(); - expect(navArgs[0]).toBeDefined(); - expectToBe(outletRoute, expectedRoute); - - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - - it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const navExtras = navArgs[1]; - - expect(navExtras).toBeDefined(); - expectToBe(navExtras.preserveFragment, true); - - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - }); }); }); diff --git a/src/app/views/edition-view/edition-view.component.ts b/src/app/views/edition-view/edition-view.component.ts index 5b98b2d540..ccc9edaa58 100644 --- a/src/app/views/edition-view/edition-view.component.ts +++ b/src/app/views/edition-view/edition-view.component.ts @@ -1,5 +1,4 @@ -import { Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { delay, Observable } from 'rxjs'; @@ -18,6 +17,7 @@ import { EditionStateService } from '@awg-views/edition-view/services'; selector: 'awg-edition-view', templateUrl: './edition-view.component.html', styleUrls: ['./edition-view.component.scss'], + changeDetection: ChangeDetectionStrategy.Default, }) export class EditionViewComponent implements OnInit { /** @@ -83,16 +83,11 @@ export class EditionViewComponent implements OnInit { /** * Constructor of the EditionViewComponent. * - * It declares private instances of - * EditionStateService, ActivatedRoute and Router. + * It declares a private instance of the EditionStateService. * * @param {EditionStateService} editionStateService Instance of the EditionStateService. - * @param {Router} router Instance of the Angular router. */ - constructor( - private editionStateService: EditionStateService, - private router: Router - ) {} + constructor(private editionStateService: EditionStateService) {} /** * Getter variable: editionRouteConstants. @@ -111,7 +106,6 @@ export class EditionViewComponent implements OnInit { */ ngOnInit() { this.setupEditionView(); - this.navigateToSideOutlet(); } /** @@ -131,18 +125,4 @@ export class EditionViewComponent implements OnInit { this.isPrefaceView$ = this.editionStateService.getIsPrefaceView().pipe(delay(0)); this.isRowTableView$ = this.editionStateService.getIsRowTableView().pipe(delay(0)); } - - /** - * Public method: navigateToSideOutlet. - * - * It activates the side outlet with the edition-info. - * - * @returns {void} Activates the edition-info side outlet. - */ - navigateToSideOutlet(): void { - // Opens the side-info outlet while preserving the router fragment for scrolling - this.router.navigate([{ outlets: { side: 'editionInfo' } }], { - preserveFragment: true, - }); - } } diff --git a/src/app/views/home-view/home-view.component.ts b/src/app/views/home-view/home-view.component.ts index 337e335a76..733807e5ee 100644 --- a/src/app/views/home-view/home-view.component.ts +++ b/src/app/views/home-view/home-view.component.ts @@ -18,7 +18,7 @@ import { HomeViewCard } from '@awg-views/home-view/models'; selector: 'awg-home-view', templateUrl: './home-view.component.html', styleUrls: ['./home-view.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, + changeDetection: ChangeDetectionStrategy.Default, }) export class HomeViewComponent implements OnInit { /** diff --git a/src/app/views/page-not-found-view/page-not-found-view.component.ts b/src/app/views/page-not-found-view/page-not-found-view.component.ts index 8c617b9c1f..9226bb8ec4 100644 --- a/src/app/views/page-not-found-view/page-not-found-view.component.ts +++ b/src/app/views/page-not-found-view/page-not-found-view.component.ts @@ -12,7 +12,7 @@ import { AppConfig } from '@awg-app/app.config'; selector: 'awg-page-not-found-view', templateUrl: './page-not-found-view.component.html', styleUrls: ['./page-not-found-view.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, + changeDetection: ChangeDetectionStrategy.Default, }) export class PageNotFoundViewComponent { /** diff --git a/src/app/views/structure-view/structure-view-routing.module.ts b/src/app/views/structure-view/structure-view-routing.module.ts index 10b8abb3cc..c76a8ff307 100644 --- a/src/app/views/structure-view/structure-view-routing.module.ts +++ b/src/app/views/structure-view/structure-view-routing.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { StructureInfoComponent } from '@awg-side-info/structure-info/structure-info.component'; import { StructureViewComponent } from '@awg-views/structure-view/structure-view.component'; /* Routes of the StructureViewModule */ @@ -10,13 +11,18 @@ const STRUCTURE_VIEW_ROUTES: Routes = [ component: StructureViewComponent, data: { title: 'AWG Online Edition – Structure' }, }, + { + path: '', + outlet: 'side', + component: StructureInfoComponent, + }, ]; /** * Routed components of the {@link StructureViewModule}: * {@link StructureViewComponent}. */ -export const routedStructureViewComponents = [StructureViewComponent]; +export const routedStructureViewComponents = [StructureViewComponent, StructureInfoComponent]; /** * StructureView module routing. diff --git a/src/app/views/structure-view/structure-view.component.spec.ts b/src/app/views/structure-view/structure-view.component.spec.ts index a76a5692ff..f37f3263dd 100644 --- a/src/app/views/structure-view/structure-view.component.spec.ts +++ b/src/app/views/structure-view/structure-view.component.spec.ts @@ -1,17 +1,9 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Component, DebugElement, Input } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { Router } from '@angular/router'; - -import Spy = jasmine.Spy; import { cleanStylesFromDOM } from '@testing/clean-up-helper'; -import { - expectSpyCall, - expectToBe, - getAndExpectDebugElementByCss, - getAndExpectDebugElementByDirective, -} from '@testing/expect-helper'; +import { expectToBe, getAndExpectDebugElementByCss, getAndExpectDebugElementByDirective } from '@testing/expect-helper'; import { StructureViewComponent } from './structure-view.component'; @@ -29,20 +21,12 @@ describe('StructureViewComponent (DONE)', () => { let fixture: ComponentFixture; let compDe: DebugElement; - let mockRouter: Partial; - - let navigateToSideOutletSpy: Spy; - const expectedTitle = 'Datenstrukturmodell'; const expectedId = 'awg-structure-view'; beforeEach(waitForAsync(() => { - // Router spy object - mockRouter = jasmine.createSpyObj('Router', ['navigate']); - TestBed.configureTestingModule({ declarations: [StructureViewComponent, HeadingStubComponent], - providers: [{ provide: Router, useValue: mockRouter }], }).compileComponents(); })); @@ -50,11 +34,6 @@ describe('StructureViewComponent (DONE)', () => { fixture = TestBed.createComponent(StructureViewComponent); component = fixture.componentInstance; compDe = fixture.debugElement; - - // Spies on component functions - // `.and.callThrough` will track the spy down the nested describes, see - // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E - navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); }); afterAll(() => { @@ -71,16 +50,6 @@ describe('StructureViewComponent (DONE)', () => { expectToBe(component.structureViewId, expectedId); }); - describe('#navigateToSideOutlet()', () => { - it('... should have a method `navigateToSideOutlet`', () => { - expect(component.navigateToSideOutlet).toBeDefined(); - }); - - it('... should not have been called', () => { - expectSpyCall(navigateToSideOutletSpy, 0); - }); - }); - describe('VIEW', () => { it('... should contain one `div.awg-structure-view`', () => { getAndExpectDebugElementByCss(compDe, 'div.awg-structure-view', 1, 1); @@ -118,48 +87,6 @@ describe('StructureViewComponent (DONE)', () => { fixture.detectChanges(); }); - describe('#navigateToSideOutlet()', () => { - let routerNavigateSpy: Spy; - - beforeEach(() => { - // Create spy of mockrouter SpyObj - routerNavigateSpy = mockRouter.navigate as jasmine.Spy; - }); - - it('... should have been called', () => { - expectSpyCall(navigateToSideOutletSpy, 1); - }); - - it('... should have triggered `router.navigate`', () => { - expectSpyCall(routerNavigateSpy, 1); - }); - - it('... should tell ROUTER to navigate to `structureInfo` outlet', () => { - const expectedRoute = 'structureInfo'; - - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const outletRoute = navArgs[0][0].outlets.side; - - expect(navArgs).toBeDefined(); - expect(navArgs[0]).toBeDefined(); - expectToBe(outletRoute, expectedRoute); - - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - - it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { - // Catch args passed to navigation spy - const navArgs = routerNavigateSpy.calls.first().args; - const navExtras = navArgs[1]; - - expect(navExtras).toBeDefined(); - expectToBe(navExtras.preserveFragment, true); - - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); - }); - }); - describe('VIEW', () => { it('... should pass down `title` and `id` to heading component', () => { const headingDes = getAndExpectDebugElementByDirective(compDe, HeadingStubComponent, 1, 1); diff --git a/src/app/views/structure-view/structure-view.component.ts b/src/app/views/structure-view/structure-view.component.ts index 8b44f787be..284431bc22 100644 --- a/src/app/views/structure-view/structure-view.component.ts +++ b/src/app/views/structure-view/structure-view.component.ts @@ -1,5 +1,4 @@ -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; /** * The StructureView component. @@ -11,9 +10,9 @@ import { Router } from '@angular/router'; selector: 'awg-structure-view', templateUrl: './structure-view.component.html', styleUrls: ['./structure-view.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, + changeDetection: ChangeDetectionStrategy.Default, }) -export class StructureViewComponent implements OnInit { +export class StructureViewComponent { /** * Public variable: structureViewTitle. * @@ -29,38 +28,4 @@ export class StructureViewComponent implements OnInit { * of the structure view section. */ structureViewId = 'awg-structure-view'; - - /** - * Constructor of the StructureViewComponent. - * - * It declares a private Router instance. - * - * @param {Router} router Instance of the Angular router. - */ - constructor(private router: Router) {} - - /** - * Angular life cycle hook: ngOnInit. - * - * It calls the containing methods - * when initializing the component. - */ - ngOnInit() { - this.navigateToSideOutlet(); - } - - /** - * Public method: navigateToSideOutlet. - * - * It activates the side outlet with the structure-info. - * - * @returns {void} Activates the structure-info side outlet. - */ - navigateToSideOutlet(): void { - // Opens the side-info outlet while preserving the router fragment for scrolling - this.router.navigate([{ outlets: { side: 'structureInfo' } }], { - preserveFragment: true, - queryParamsHandling: 'preserve', - }); - } } From d9421de1b243c8f4b02e96de4c3368826e120d3e Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 01:07:18 +0200 Subject: [PATCH 204/213] fix(assets): remove side outlet from data --- src/assets/data/edition/series/1/section/5/intro.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/assets/data/edition/series/1/section/5/intro.json b/src/assets/data/edition/series/1/section/5/intro.json index 1f39a137f2..f5940dc92b 100644 --- a/src/assets/data/edition/series/1/section/5/intro.json +++ b/src/assets/data/edition/series/1/section/5/intro.json @@ -584,17 +584,17 @@ "

But just a few weeks later, Webern’s works were rejected once again.36 It remains unverifiable whether or not he had indeed subsequently “copied out [his] songs properly”. In early 1913, Webern ultimately sent an unspecified selection of his songs to the publishing house of Gadow in Hildburghausen, though again, clearly, without success.37

", "

In the summer of 1914, Schoenberg once more approached Universal Edition about Webern.38 After a conversation between Webern and Hertzka that took place on 25 June, it was finally agreed that the latter would publish “the score of Op. 4, the chorus and a booklet of songs or the violin pieces39 by Webern the following year. However, no decision ever had to be made about whether to publish a volume of his songs or the Four Pieces for Violin and Piano M 161–164, because the First World War broke out just a few weeks after their meeting, and economic reasons forced the cancellation of their plans.40

", "

A few days before the outbreak of war, thanks to the mediation of Alban Berg and Alfred Kalmus, the possibility nevertheless arose for Webern to contribute something to a collective publication being prepared by Universal Edition entitled Das moderne Lied (“The Modern Song”).41 Webern submitted three songs – none of which can be identified today42 – but none was included in the volume.43

", - "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", + "

An autograph title page by Webern, whose base layer was written in red ink, refers to a selection of nine George songs (fol. 8r in H): 44 

", "

Neun Lieder | op[.] 6 [“6” corrected from: “5”; the whole line has been added subsequently in pencil] | nach Gedichten von Stefan George | komponiert | von | Anton von Webern.

", - "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", + "

The change of opus number for the “Nine Songs” (“Neun Lieder”) from “Op. 2” to “Op. 5” (for the moment) was presumably made in 1914, when the chorus “Entflieht auf leichten Kähnen” M 129 was given the opus number “2” in Webern’s list of works. These songs were thus moved after both the string quartet compositions designated as “Op. 3”, namely M 147–151, M 171–174 and M 178–180, and the orchestral pieces M 152–157, which in the meantime actually appeared in a private print as “Op. 4”. Webern might have reordered these opus numbers when revising his compositions in late 1914 / early 191545 – possibly also with a view to the prospective publication of some of his works by Universal Edition in the second half of 1915. At some point, this collection of “Nine Songs, Op. 5” presumably included “Erwachen aus dem tiefsten Traumesschoße” M 143, which was subsequently given the designation “op[.] 5 No 2” in A. It is unclear when and why the number “Op. 5” was changed to “Op. 6” on the abovementioned title page in H (in 1914, the Four Pieces for Violin and Piano M 161–164 were presumably initially counted as “Op. 6”.) To what extent Webern might have altered the precise content of “some 10 songs” or his “9 songs” or “Nine songs” between 1911 and 1914 remains undocumented.

", "

In addition to Webern’s efforts to get a selection of his George songs into print, there were also repeated plans for further performances of them, after the abovementioned first performance of six songs in February 1910. An unspecified number of Webern’s songs was initially planned for inclusion in a concert in Vienna on 24 April 1911, for example, though they were dropped for various reasons.46 Webern temporarily considered replacing a performance of his Pieces for Violin M 161–164, planned for 29 June 1912 in Vienna, with “4 songs” instead.47 And when Schoenberg had the idea of a joint “evening of compositions” by Berg and Webern in Berlin in autumn 1913, Webern thought of including several songs alongside his string quartet compositions M 147–151, M 171–174 and M 178–180:

", "

And then songs by me. It would be nicest of all if [Marya] Freund sang. Do you think that could be organized? I would like to send her the songs soon. May I ask you for the address of Ms Freund?48

", - "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", - "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", + "

In fact, one of the extant sources of “Dies ist ein Lied” M 133 (C) was found in the archives of the singer Marya Freund, who had sung the Wood Dove at the first performance of Schoenberg’s Gurre-Lieder on 23 February 1913.49 She was also due to sing Gustav Mahler’s Kindertotenlieder at what later became known as the “Skandalkonzert” on 31 March of that same year (whose programme included the world premiere of Webern’s Six Pieces for Large Orchestra “Op. 4” [M 152–157]), though the tumult that occurred on that evening meant that the Mahler songs were never performed.50 According to a note in her archives, the autograph came into her possession in “circa 1914”.51 However, she never sang the song in the context that had been envisaged because the concert programme was initially shortened,52 and then the very idea of the “evening of compositions” was dropped altogether. We do not know whether Freund actually sang this song – or any George songs by Webern – on any other occasion.

", + "

After the world premiere of his six songs in 1910, it is likely that Webern’s George songs were only performed again after the end of the war. These performances were closely connected with the publication of his Five Songs from Der siebente Ring by Stefan George, Op. 3, by the publishing house of the Verein für musikalische Privataufführungen (the Society for Private Musical Performances) (L). On 6 April 1919, the Verein held a concert in which Felicie Hüni-Mihacsek sang “Four Songs, Op. 3” accompanied by Eduard Steuermann, though “An Bachesranft” M 135 was subsequently inserted as the third song when they were published two months later as Five Songs, Op. 3.53 On 6 June 1919, the same performers gave the world premiere of the complete collection of five songs, the score of which was also put on sale at the concert.54 We know almost nothing about the production process of this publication.55 The engraver’s copy [K] has not survived, though it must have included new versions of the musical text of some of the songs that are not documented in other sources. The Verein’s two performances in April and June are likely to have used manuscript sources containing earlier versions of the musical text; if not, then the copies in question have also not survived.56 Print L was completed only a few days before the second performance of June 1919,57 and contains the following songs:

", "

I    “Dies ist ein Lied” M 133 (version 4)

", "

II   “Im Windesweben” M 134 (version 3)

", @@ -686,7 +686,7 @@ "

55 | See Bungardt, “Einleitung” (note 22), p. 26: “The songs […] were engraved and printed by Waldheim-Eberle at the expense of the Verein and on Schoenberg’s initiative.”

", "

56 | The List of Sources in our Critical Report does not include such sources that may not have survived.

", "

57 | The dedication copy for Schoenberg (A-Was, PM_Lg14) is dated “4. VI. 1919 Mödling”, i. e. two days before the work’s complete performance at the Verein’s concert. The dedication reads: “Dearest friend, the fact that I have written these songs, that they have been sung and ultimately also engraved: I owe all this to you. I can only express my gratitude to you by saying: accept once again the assurance of my everlasting loyalty and devotion. Your Webern.”

", - "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", + "

58 | See Bungardt, “Einleitung” (note 22), pp. 26 and 30, and Webern, Briefwechsel mit der Universal-Edition, (note 22), Appendix, pp. 336 f. Universal Edition took on 137 copies and pasted its own publishing information over that of the Verein. A second edition, published by Universal Edition in the summer of 1923 (M), used the same engraving as the first (as do all later, posthumous editions).

", "

59 | Webern, Briefwechsel mit der Universal-Edition (note 22), Appendix, pp. 336 f.

", "

60 | See the extant concert programme in A-Was: CP 5580. See also the letter of 2 December 1923 from Rufer to Schoenberg (US-Wc [cited here as in the digitized copy in A-Was: ID 15189]): “[R]egrettably, Miss Jungbauer had such stage fright for the Webern songs that the first 3 failed completely, even though we sang through everything once more an hour before the performance and everything was quite impeccable!!”

", "

61 | See Moldenhauer, Anton von Webern (note 18), p. 524. See also Erich Schmid, Lebenserinnerungen, vol. 3: “Konzertprogramme und Radioaufnahmen”, ed. Lukas Näf, assisted by Othmar Wüthrich, Bern: Peter Lang, 2014, p. 48.

", From 64df1f1f262fad2340a37abdfe5406b00996608f Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 01:13:24 +0200 Subject: [PATCH 205/213] fix(edition): use solid icon for calendarX --- package.json | 1 - .../edition-svg-sheet-nav-item.component.spec.ts | 2 +- .../edition-svg-sheet-nav-item.component.ts | 2 +- yarn.lock | 10 ---------- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index b84bdc9f9f..b2b9f5b769 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,6 @@ "@angular/router": "^18.2.9", "@codemirror/legacy-modes": "^6.4.1", "@fortawesome/angular-fontawesome": "^0.15.0", - "@fortawesome/free-regular-svg-icons": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@kolkov/ngx-gallery": "2.0.1", "@ng-bootstrap/ng-bootstrap": "^17.0.1", diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts index 896869d85c..b2af1f259d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.spec.ts @@ -4,7 +4,7 @@ import Spy = jasmine.Spy; import { IconDefinition } from '@fortawesome/angular-fontawesome'; import { FontAwesomeTestingModule } from '@fortawesome/angular-fontawesome/testing'; -import { faCalendarXmark } from '@fortawesome/free-regular-svg-icons'; +import { faCalendarXmark } from '@fortawesome/free-solid-svg-icons'; import { clickAndAwaitChanges } from '@testing/click-helper'; import { detectChangesOnPush } from '@testing/detect-changes-on-push-helper'; diff --git a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts index 1ac5b2f597..06b6862c8d 100644 --- a/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts +++ b/src/app/views/edition-view/edition-outlets/edition-complex/edition-detail/edition-sheets/edition-accolade/edition-svg-sheet-nav/edition-svg-sheet-nav-item/edition-svg-sheet-nav-item.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; -import { faCalendarXmark } from '@fortawesome/free-regular-svg-icons'; +import { faCalendarXmark } from '@fortawesome/free-solid-svg-icons'; import { UtilityService } from '@awg-core/services'; import { EditionSvgSheet } from '@awg-views/edition-view/models'; diff --git a/yarn.lock b/yarn.lock index 69e9818da8..4f78e34c08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4212,15 +4212,6 @@ __metadata: languageName: node linkType: hard -"@fortawesome/free-regular-svg-icons@npm:^6.6.0": - version: 6.6.0 - resolution: "@fortawesome/free-regular-svg-icons@npm:6.6.0" - dependencies: - "@fortawesome/fontawesome-common-types": "npm:6.6.0" - checksum: 10c0/c682a6d7c6bdce492eee5b15a6647f9c436ce04f337080b7061cc04a739b5eb95224f7cdc7d865cf08fea837d4d1b1541849a3183534956e176896a969220d45 - languageName: node - linkType: hard - "@fortawesome/free-solid-svg-icons@npm:^6.6.0": version: 6.6.0 resolution: "@fortawesome/free-solid-svg-icons@npm:6.6.0" @@ -6733,7 +6724,6 @@ __metadata: "@commitlint/config-angular": "npm:^19.5.0" "@compodoc/compodoc": "npm:^1.1.26" "@fortawesome/angular-fontawesome": "npm:^0.15.0" - "@fortawesome/free-regular-svg-icons": "npm:^6.6.0" "@fortawesome/free-solid-svg-icons": "npm:^6.6.0" "@kolkov/ngx-gallery": "npm:2.0.1" "@ng-bootstrap/ng-bootstrap": "npm:^17.0.1" From ea0a6571966930b0678d706d22d9290b98823c32 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 01:23:16 +0200 Subject: [PATCH 206/213] style(home): stretch links of home view cards --- .../home-view/home-view-card/home-view-card.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/views/home-view/home-view-card/home-view-card.component.html b/src/app/views/home-view/home-view-card/home-view-card.component.html index 2c9effb835..4bd5bf03c3 100644 --- a/src/app/views/home-view/home-view-card/home-view-card.component.html +++ b/src/app/views/home-view/home-view-card/home-view-card.component.html @@ -10,11 +10,11 @@
{{ cardData.title }}
@if (cardData.linkRouter) { - } @else if (cardData.linkHref) { - } From d1d3c4101bd9b2a86c2631fe6654e4a9161e0263 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 01:24:57 +0200 Subject: [PATCH 207/213] fix(edition): add missing glyph for sfz --- src/app/views/edition-view/data/edition-glyphs.data.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/app/views/edition-view/data/edition-glyphs.data.ts b/src/app/views/edition-view/data/edition-glyphs.data.ts index f095226f89..e4eff119a1 100644 --- a/src/app/views/edition-view/data/edition-glyphs.data.ts +++ b/src/app/views/edition-view/data/edition-glyphs.data.ts @@ -191,6 +191,15 @@ export const EDITION_GLYPHS_DATA = { hex: '\uD834\uDD8D\uD834\uDD91', }, + /** + * The glyph of a musical sforzando symbol. + * Cf. https://graphemica.com/%F0%9D%86%8D + */ + SFORZANDO: { + alt: '[sfz]', + hex: '\uD834\uDD8D\uD834\uDD91\uD834\uDD8E', + }, + /** * The glyph of a musical subito piano symbol. * Cf. https://graphemica.com/%F0%9D%86%8D From ccc2864574b735c0874e1c4ff473224470aa3bb1 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 01:57:41 +0200 Subject: [PATCH 208/213] test(search): fix tests after changes --- .../resource-detail.component.spec.ts | 134 +++++++++++++++++- .../data-view/data-view.component.spec.ts | 37 +++-- 2 files changed, 153 insertions(+), 18 deletions(-) diff --git a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.spec.ts b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.spec.ts index 84e858dc55..74e802b6d8 100644 --- a/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.spec.ts +++ b/src/app/views/data-view/data-outlets/resource-detail/resource-detail.component.spec.ts @@ -2,13 +2,17 @@ import { Component, DebugElement, EventEmitter, Input, Output } from '@angular/c import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { mockResourceDetail, mockResourceFullResponseJson } from '@testing/mock-data'; -import { ActivatedRouteStub } from '@testing/router-stubs'; +import Spy = jasmine.Spy; import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; import { JsonConvert } from 'json2typescript'; import { of as observableOf } from 'rxjs'; +import { cleanStylesFromDOM } from '@testing/clean-up-helper'; +import { expectSpyCall, expectToBe, expectToEqual } from '@testing/expect-helper'; +import { mockResourceDetail, mockResourceFullResponseJson } from '@testing/mock-data'; +import { ActivatedRouteStub } from '@testing/router-stubs'; + import { DataStreamerService, LoadingService } from '@awg-core/services'; import { GndEvent } from '@awg-core/services/gnd-service'; import { DataApiService } from '@awg-views/data-view/services'; @@ -59,11 +63,18 @@ describe('ResourceDetailComponent', () => { let fixture: ComponentFixture; let compDe: DebugElement; + let mockRouter: Partial; + + let navigateToSideOutletSpy: Spy; + // Json object let jsonConvert: JsonConvert; let expectedResourceFullResponseJson: ResourceFullResponseJson; let expectedResourceData: ResourceData; + let expectedResourceDetailTabTitles: { + [key: string]: string; + }; beforeEach(waitForAsync(() => { // Stub services for test purposes @@ -80,7 +91,7 @@ describe('ResourceDetailComponent', () => { }; // Router spy object - const mockRouter = { + mockRouter = { url: '/test-url', events: observableOf( new NavigationEnd(0, 'http://localhost:4200/test-url', 'http://localhost:4200/test-url') @@ -116,9 +127,6 @@ describe('ResourceDetailComponent', () => { component = fixture.componentInstance; compDe = fixture.debugElement; - // MockActivatedRoute.setParamMap({ id: '1234' }); - // MockActivatedRoute.paramMap.subscribe(value => console.log(value)); - // Convert json objects jsonConvert = new JsonConvert(); expectedResourceFullResponseJson = jsonConvert.deserializeObject( @@ -129,10 +137,122 @@ describe('ResourceDetailComponent', () => { // Test data expectedResourceData = new ResourceData(expectedResourceFullResponseJson, mockResourceDetail); - fixture.detectChanges(); + expectedResourceDetailTabTitles = { + html: 'Detail', + raw: 'JSON (raw)', + converted: 'JSON (converted)', + }; + + // Spies on component functions + // `.and.callThrough` will track the spy down the nested describes, see + // https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.callThrough%3C/code%3E + navigateToSideOutletSpy = spyOn(component, 'navigateToSideOutlet').and.callThrough(); + }); + + afterAll(() => { + cleanStylesFromDOM(); }); it('... should create', () => { expect(component).toBeTruthy(); }); + + describe('BEFORE initial data binding', () => { + it('... should not have `errorMessage`', () => { + expect(component.errorMessage).toBeUndefined(); + }); + + it('... should not have `oldId`', () => { + expect(component.oldId).toBeUndefined(); + }); + + it('... should not have `resourceData`', () => { + expect(component.resourceData).toBeUndefined(); + }); + + it('... should not have `resourceId`', () => { + expect(component.resourceId).toBeUndefined(); + }); + + it('... should have `resourceDetailTabTitles`', () => { + expectToEqual(component.resourceDetailTabTitles, expectedResourceDetailTabTitles); + }); + + it('... should not have `selectedResourceDetailTabId`', () => { + expect(component.selectedResourceDetailTabId).toBeUndefined(); + }); + + describe('#navigateToSideOutlet()', () => { + it('... should have a method `navigateToSideOutlet`', () => { + expect(component.navigateToSideOutlet).toBeDefined(); + }); + + it('... should not have been called', () => { + expectSpyCall(navigateToSideOutletSpy, 0); + }); + }); + }); + + describe('AFTER initial data binding', () => { + beforeEach(() => { + // Trigger initial data binding + fixture.detectChanges(); + }); + + describe('#navigateToSideOutlet()', () => { + let routerNavigateSpy: Spy; + + beforeEach(() => { + // Create spy of mockrouter SpyObj + routerNavigateSpy = mockRouter.navigate as jasmine.Spy; + }); + + it('... should have been called', () => { + expectSpyCall(navigateToSideOutletSpy, 1); + }); + + it('... should have triggered `router.navigate`', () => { + expectSpyCall(routerNavigateSpy, 1); + }); + + it('... should tell ROUTER to navigate to `resourceInfo` outlet', () => { + const expectedRoute = 'resourceInfo'; + + // Catch args passed to navigation spy + const navArgs = routerNavigateSpy.calls.first().args; + expect(navArgs).toBeDefined(); + expect(navArgs[0]).toBeDefined(); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + + const outletRoute = navArgs[0][0].outlets.side; + expectToBe(outletRoute, expectedRoute); + }); + + it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { + // Catch args passed to navigation spy + const navArgs = routerNavigateSpy.calls.first().args; + const navExtras = navArgs[1]; + + expect(navExtras).toBeDefined(); + expectToBe(navExtras.preserveFragment, true); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + }); + }); + + describe('#ngOnDestroy()', () => { + it('... should tell ROUTER to clear side outlet', () => { + const routerNavigateSpy = mockRouter.navigate as jasmine.Spy; + + component.ngOnDestroy(); + + const navArgs = routerNavigateSpy.calls.mostRecent().args; + expect(navArgs).toBeDefined(); + expect(navArgs[0]).toBeDefined(); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0]); + + const outletRoute = navArgs[0][0].outlets.side; + expectToBe(outletRoute, null); + }); + }); + }); }); diff --git a/src/app/views/data-view/data-view.component.spec.ts b/src/app/views/data-view/data-view.component.spec.ts index eaf7ee97b7..f66d835832 100644 --- a/src/app/views/data-view/data-view.component.spec.ts +++ b/src/app/views/data-view/data-view.component.spec.ts @@ -119,6 +119,17 @@ describe('DataViewComponent (DONE)', () => { fixture.detectChanges(); }); + describe('VIEW', () => { + it('... should pass down `title` and `id` to heading component', () => { + const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-data-view', 1, 1); + const headingDes = getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); + const headingCmp = headingDes[0].injector.get(HeadingStubComponent) as HeadingStubComponent; + + expectToBe(headingCmp.title, expectedTitle); + expectToBe(headingCmp.id, expectedId); + }); + }); + describe('#navigateToSideOutlet()', () => { let routerNavigateSpy: Spy; @@ -140,12 +151,12 @@ describe('DataViewComponent (DONE)', () => { // Catch args passed to navigation spy const navArgs = routerNavigateSpy.calls.first().args; - const outletRoute = navArgs[0][0].outlets.side; - expect(navArgs).toBeDefined(); expect(navArgs[0]).toBeDefined(); - expectToBe(outletRoute, expectedRoute); expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); + + const outletRoute = navArgs[0][0].outlets.side; + expectToBe(outletRoute, expectedRoute); }); it('... should tell ROUTER to navigate with `preserveFragment:true`', () => { @@ -155,19 +166,23 @@ describe('DataViewComponent (DONE)', () => { expect(navExtras).toBeDefined(); expectToBe(navExtras.preserveFragment, true); - expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0], navArgs[1]); }); }); - describe('VIEW', () => { - it('... should pass down `title` and `id` to heading component', () => { - const divDes = getAndExpectDebugElementByCss(compDe, 'div.awg-data-view', 1, 1); - const headingDes = getAndExpectDebugElementByDirective(divDes[0], HeadingStubComponent, 1, 1); - const headingCmp = headingDes[0].injector.get(HeadingStubComponent) as HeadingStubComponent; + describe('#ngOnDestroy()', () => { + it('... should tell ROUTER to clear side outlet', () => { + const routerNavigateSpy = mockRouter.navigate as jasmine.Spy; - expectToBe(headingCmp.title, expectedTitle); - expectToBe(headingCmp.id, expectedId); + component.ngOnDestroy(); + + const navArgs = routerNavigateSpy.calls.mostRecent().args; + expect(navArgs).toBeDefined(); + expect(navArgs[0]).toBeDefined(); + expect(routerNavigateSpy).toHaveBeenCalledWith(navArgs[0]); + + const outletRoute = navArgs[0][0].outlets.side; + expectToBe(outletRoute, null); }); }); }); From 4a18a5e9767789f88ba00fa3c8911a62ecded339 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 12:43:46 +0200 Subject: [PATCH 209/213] docs(shared): add JSDocs to new AlertInfo class --- src/app/shared/alert-info/alert-info.component.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/app/shared/alert-info/alert-info.component.ts b/src/app/shared/alert-info/alert-info.component.ts index d2aa9768e3..ebc435dcbb 100644 --- a/src/app/shared/alert-info/alert-info.component.ts +++ b/src/app/shared/alert-info/alert-info.component.ts @@ -2,6 +2,12 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { faCircleInfo } from '@fortawesome/free-solid-svg-icons'; +/** + * The AlertInfoComponent. + * + * It contains an info alert message that is + * provided via the {@link SharedModule}. + */ @Component({ selector: 'awg-alert-info', templateUrl: './alert-info.component.html', From 500b47eb4184c6c7607cdbe0e4cae736b833ad41 Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 13:54:36 +0200 Subject: [PATCH 210/213] build(deps): bump rdfstore from v0.9.18-alpha.16 to v0.9.18-alpha.17 --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b2b9f5b769..a8d7a1d2b9 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "json2typescript": "^1.5.1", "n3": "^1.22.3", "ngx-json-viewer": "^3.2.1", - "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.16", + "rdfstore": "musicenfanthen/rdfstore-js#v0.9.18-alpha.17", "rxjs": "~7.8.1", "stream": "^0.0.3", "tslib": "^2.7.0", diff --git a/yarn.lock b/yarn.lock index 4f78e34c08..39d5a74ffc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6764,7 +6764,7 @@ __metadata: n3: "npm:^1.22.3" ngx-json-viewer: "npm:^3.2.1" prettier: "npm:^3.3.3" - rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.16" + rdfstore: "musicenfanthen/rdfstore-js#v0.9.18-alpha.17" rxjs: "npm:~7.8.1" source-map-explorer: "npm:^2.5.3" stream: "npm:^0.0.3" @@ -12088,7 +12088,7 @@ __metadata: languageName: node linkType: hard -"jsonld@npm:^8.3.1": +"jsonld@npm:^8.3.2": version: 8.3.2 resolution: "jsonld@npm:8.3.2" dependencies: @@ -14870,20 +14870,20 @@ __metadata: languageName: node linkType: hard -"rdfstore@musicenfanthen/rdfstore-js#v0.9.18-alpha.16": - version: 0.9.18-alpha.16 - resolution: "rdfstore@https://github.com/musicenfanthen/rdfstore-js.git#commit=a66d1add7048224ac56ce28415527e210cc3a9fb" +"rdfstore@musicenfanthen/rdfstore-js#v0.9.18-alpha.17": + version: 0.9.18-alpha.17 + resolution: "rdfstore@https://github.com/musicenfanthen/rdfstore-js.git#commit=f77455fdb77b8406d26657c3dd87adbdfc77f84a" dependencies: indexeddb-js: "npm:0.0.14" - jsonld: "npm:^8.3.1" + jsonld: "npm:^8.3.2" n3: "npm:^0.11.3" - sqlite3: "npm:^5.1.6" + sqlite3: "npm:^5.1.7" dependenciesMeta: indexeddb-js: optional: true sqlite3: optional: true - checksum: 10c0/d21dd38c77d408d7a3dd8cb11f8e9377311db779ba9f913c68a4022c09f3728f918a49ceceef39fafd561f43830a2a4bbb933df3b91610a86ea1b5bed8a51ad5 + checksum: 10c0/867d9208d796508a4b820e16759a83f997185d64d9e932e23c5abc4a8a030ba1c5d7972eb682c879aae87fee3ffb7c84889f37ee27e063052f8ed2ffc103b28a languageName: node linkType: hard @@ -16124,7 +16124,7 @@ __metadata: languageName: node linkType: hard -"sqlite3@npm:>=2.1.1, sqlite3@npm:^5.1.6": +"sqlite3@npm:>=2.1.1, sqlite3@npm:^5.1.7": version: 5.1.7 resolution: "sqlite3@npm:5.1.7" dependencies: From 1a5b9e6ce1ea05928326265734f8a306a400b0e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCnnich?= Date: Sat, 26 Oct 2024 14:04:20 +0200 Subject: [PATCH 211/213] docs(README): update project image --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 99ecb92a9b..7fc2652345 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ A web application for the online edition of the [Anton Webern Gesamtausgabe](htt **Project Status**: This project is actively maintained. -app +Screenshot 2024-10-26 124804 ## Table of Contents From fb2f4f569a6d3cc25eece6662ab0039c410b465e Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 14:16:27 +0200 Subject: [PATCH 212/213] chore(release): 1.0.0 --- CHANGELOG.md | 233 +++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- src/app/app.globals.ts | 6 +- 3 files changed, 237 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 130f3be8ad..b729415c82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,239 @@ All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines. +## [1.0.0](https://github.com/webern-unibas-ch/awg-app/compare/v0.14.0...v1.0.0) (2024-10-26) + + +### ⚠ BREAKING CHANGES + +* **app:** This ends the status of the app as a prototype. + +(cherry picked from commit 3d7979da43046851f9c3030ff1e26f8579150057) + +### Features + +* **app:** move away from prototype ([0495501](https://github.com/webern-unibas-ch/awg-app/commit/0495501db4a05edc59a23d525f0f67d5f2bd769b)) +* **assets:** add corrections for Op3: I + J ([490313d](https://github.com/webern-unibas-ch/awg-app/commit/490313dc6e56c8ac37cad515e8769cf20239a96f)) +* **assets:** add corrections for Op4: A ([21243a0](https://github.com/webern-unibas-ch/awg-app/commit/21243a0c29363359fff069174ab553fd49862cda)) +* **assets:** add corrections in op25: E ([af3804f](https://github.com/webern-unibas-ch/awg-app/commit/af3804f473c0d47dd6d2aa8afda0cbc8075ad605)) +* **assets:** add corrections in op3: C ([29873dc](https://github.com/webern-unibas-ch/awg-app/commit/29873dc9d29b5d3215c7db098494507cccdcbccb)) +* **assets:** add corrections in op3: E ([8fd65a3](https://github.com/webern-unibas-ch/awg-app/commit/8fd65a35df30647ef1c27b17ba005d3a03ad9a21)) +* **assets:** add corrections in op3: F ([6aa4ee9](https://github.com/webern-unibas-ch/awg-app/commit/6aa4ee9c2e67d84f23041a49b827895dfc187685)) +* **assets:** add corrections in Op3: G ([6a9a559](https://github.com/webern-unibas-ch/awg-app/commit/6a9a559691e64ea476a08a8f21aaa0aae42bec90)) +* **assets:** add corrections in Op3: H ([1e978d1](https://github.com/webern-unibas-ch/awg-app/commit/1e978d1ef67471c8c58398a4b568ebb4b7ae2d21)) +* **assets:** add corrections in Op4: B ([#1881](https://github.com/webern-unibas-ch/awg-app/issues/1881)) ([c5dda47](https://github.com/webern-unibas-ch/awg-app/commit/c5dda4715d685b6e05b86d6ac46510b7bcaffcb7)) +* **assets:** add corrections in Op4: D ([b8569b2](https://github.com/webern-unibas-ch/awg-app/commit/b8569b284fc8cd96b59f0209d7a35d268eb35de1)) +* **assets:** add corrections in Op4: I ([c73d9df](https://github.com/webern-unibas-ch/awg-app/commit/c73d9df536fa6485f1714b4ea5fa7cb53bd36c25)) +* **assets:** add corrections Op4: GH ([2087ead](https://github.com/webern-unibas-ch/awg-app/commit/2087eadcbd4f5040e3d21f62c6842076ae384821)) +* **assets:** add intro preview to section detail ([dbf516a](https://github.com/webern-unibas-ch/awg-app/commit/dbf516a075fe92f702baea8ec33fd94b492ab86c)) +* **assets:** create section wide intro file ([49bdbad](https://github.com/webern-unibas-ch/awg-app/commit/49bdbade5b9898ecef9ce5c1d2efad38e2c1ec08)) +* **edition:** add breadcrumb for section intro ([5ee951b](https://github.com/webern-unibas-ch/awg-app/commit/5ee951b4dab6c2770cd5878fc3b5e514c95b5cfc)) +* **edition:** add check for intro view ([91442e2](https://github.com/webern-unibas-ch/awg-app/commit/91442e21d6cfcf6a7e498e44d25f6a1869002380)) +* **edition:** add cover images to section overview ([9024e76](https://github.com/webern-unibas-ch/awg-app/commit/9024e7681bb85d044414dd9fd28990a295d68473)) +* **edition:** add disclaimer for partial intros ([c772332](https://github.com/webern-unibas-ch/awg-app/commit/c7723327b972f258ede2aab1c18f064a5b2f4987)) +* **edition:** add disclaimer for workeditions ([b3cd451](https://github.com/webern-unibas-ch/awg-app/commit/b3cd451e6926b2f16b6a68674d499fbde1277b80)) +* **edition:** add english version of intro AWG I/5 ([e79f4c1](https://github.com/webern-unibas-ch/awg-app/commit/e79f4c13fc41900efc683d47c22e4bb113774fae)) +* **edition:** add language switcher to intro ([cd3471b](https://github.com/webern-unibas-ch/awg-app/commit/cd3471b05bd54f6871fbd0d2ab11464cf72c7999)) +* **edition:** add route for section intro ([f6e29ac](https://github.com/webern-unibas-ch/awg-app/commit/f6e29acfcbffb7db49a062c8ebbd5b210f111a59)) +* **edition:** add scrollable menu to intro ([c1b49d6](https://github.com/webern-unibas-ch/awg-app/commit/c1b49d6a3638f44596cb649e480ea64ad91fde05)) +* **edition:** add section intro link to side info ([a4326c3](https://github.com/webern-unibas-ch/awg-app/commit/a4326c335fef302c57a5803833174f085f919253)) +* **edition:** add service method to load section intro data ([7bc1a87](https://github.com/webern-unibas-ch/awg-app/commit/7bc1a87231060e43aaa867e52f228cee5037ca4e)) +* **edition:** include intro and disclaimer in edition section detail ([10b517c](https://github.com/webern-unibas-ch/awg-app/commit/10b517c04b998f11dbedc339d1401b2c9cd84a6b)) +* **home:** add card navigation to home view ([79cb5e3](https://github.com/webern-unibas-ch/awg-app/commit/79cb5e33814dc449f33c72e40634de4dc707f729)) +* **shared:** add abbreviation directive ([c9d75d8](https://github.com/webern-unibas-ch/awg-app/commit/c9d75d81e401f834d6afda8a6d4eac04e24f2530)) + + +### Bug Fixes + +* **app:** do not show sideOutlet on home view ([dc42407](https://github.com/webern-unibas-ch/awg-app/commit/dc42407ed302d21ca122b6ca431d5a2cdf2fbfe1)) +* **assets:** add full intro for AWG I/5 ([169be29](https://github.com/webern-unibas-ch/awg-app/commit/169be29fcb767f73ad0e98266490f715e6059dcb)) +* **assets:** fix formatting of corrections ([10797f9](https://github.com/webern-unibas-ch/awg-app/commit/10797f92c39dfcc11d328aaca9b69114563929ce)) +* **assets:** fix formatting of corrections op3 ([1231ef7](https://github.com/webern-unibas-ch/awg-app/commit/1231ef74a501213e8018c123f9ae44ea45519505)) +* **assets:** fix formatting of corrections op3: B ([b234ef6](https://github.com/webern-unibas-ch/awg-app/commit/b234ef6b6d8331600414d156a3503f9c234b4741)) +* **assets:** fix formatting of corrections op3: C ([c49b0fb](https://github.com/webern-unibas-ch/awg-app/commit/c49b0fb6150c2e18a8d4c5529f49514bed28c422)) +* **assets:** fix formatting of corrections op3: E ([d52628d](https://github.com/webern-unibas-ch/awg-app/commit/d52628dda7446768c3a94ce86a5c27d2269963d3)) +* **assets:** fix formatting of corrections op3: F–H ([2b57b7f](https://github.com/webern-unibas-ch/awg-app/commit/2b57b7fdc33207273762b199ca810cd73ad924d1)) +* **assets:** fix typo in label in op3: source_Ee_corr2 ([cd91a14](https://github.com/webern-unibas-ch/awg-app/commit/cd91a1459e2b71e6e0acfa18517de321318f1ca3)) +* **assets:** fix typo in textcritics for m38 ([62eff2c](https://github.com/webern-unibas-ch/awg-app/commit/62eff2c9e132ac062cdbac2863d0fb471fb35e7a)) +* **assets:** fix typos in intro AWG I/5 ([9780252](https://github.com/webern-unibas-ch/awg-app/commit/9780252585afa940f8f5d8aa464349986630793b)) +* **assets:** make sources of intro navigable ([836ea8a](https://github.com/webern-unibas-ch/awg-app/commit/836ea8a73d4bd7947cec029483bf89eb4003424d)) +* **assets:** optimize svgs for m38 with SVGO ([af48f6a](https://github.com/webern-unibas-ch/awg-app/commit/af48f6a65a7000ccbda9892f0e638f574c2f5234)) +* **assets:** provide intro notes as blockNotes ([267aa0f](https://github.com/webern-unibas-ch/awg-app/commit/267aa0f7bac894dc7980e7d6740919a6b870f2f0)) +* **assets:** remove side outlet from data ([d9421de](https://github.com/webern-unibas-ch/awg-app/commit/d9421de1b243c8f4b02e96de4c3368826e120d3e)) +* **assets:** remove unnecessary line break from intro AWG I/5 ([b0905bc](https://github.com/webern-unibas-ch/awg-app/commit/b0905bc0cd11c65694fa8c368924cb75ebc0e07f)) +* **assets:** small fixes in source descriptions AWG I/5 ([c520b4e](https://github.com/webern-unibas-ch/awg-app/commit/c520b4e20596a8a3924cd771ac69cb5bda5430fb)) +* **assets:** use glyphs for note values ([eb26661](https://github.com/webern-unibas-ch/awg-app/commit/eb26661b8b5c1838a60d24b44d4a729440e2f6cd)) +* **core:** mute search button on navbar ([53a1d90](https://github.com/webern-unibas-ch/awg-app/commit/53a1d90109bedf97b31ff38b110440592367f965)) +* **edition:** add complex to breadcrumb if given ([86857ec](https://github.com/webern-unibas-ch/awg-app/commit/86857ecd7feff170a0544c74f592a4d902810b48)) +* **edition:** add description to series overview ([c517895](https://github.com/webern-unibas-ch/awg-app/commit/c517895fe7d64187c7d9a1587a5fddba5fc6f9fd)) +* **edition:** add missing glyph for sfz ([d1d3c41](https://github.com/webern-unibas-ch/awg-app/commit/d1d3c4101bd9b2a86c2631fe6654e4a9161e0263)) +* **edition:** add missing glyphs for note values ([2d08ad1](https://github.com/webern-unibas-ch/awg-app/commit/2d08ad1286f55726d2972facd58933958f2e20dd)) +* **edition:** add missing glyphs for sf and sp ([7cebd28](https://github.com/webern-unibas-ch/awg-app/commit/7cebd281a186342154e04e2773e97d07e38ff475)) +* **edition:** don't display table if there are no corrections ([02bf591](https://github.com/webern-unibas-ch/awg-app/commit/02bf591abfd43ae21266dcb18d0c1b2f65e73b3c)) +* **edition:** finish formatting of intro AWG I/5 ([464e16e](https://github.com/webern-unibas-ch/awg-app/commit/464e16e1f20d7aca49ef0c16f00ad585c05d729b)) +* **edition:** fix check for section III/5 in outline model ([317c66d](https://github.com/webern-unibas-ch/awg-app/commit/317c66d2e0ea4ecae254e13b8f75c68895ccff4c)) +* **edition:** fix typo in textcritics for m38 ([c03ba8c](https://github.com/webern-unibas-ch/awg-app/commit/c03ba8c3c2ae6afe8e9d5fccb15a9f67205ef28f)) +* **edition:** improve wording in section detail disclaimer ([dc3ec09](https://github.com/webern-unibas-ch/awg-app/commit/dc3ec0986d431d868ff770493700785bd3f0d150)) +* **edition:** improve wording of section detail disclaimer ([b4f6ff2](https://github.com/webern-unibas-ch/awg-app/commit/b4f6ff253cce4921b4ef71605fb49f2a45d36f51)) +* **edition:** make footnotes of intro navigable ([57d575a](https://github.com/webern-unibas-ch/awg-app/commit/57d575a6b082c2e71f0ffcbe029718dcc6388d68)) +* **edition:** move intro parts into separate components ([7965435](https://github.com/webern-unibas-ch/awg-app/commit/79654355a70ce97c62145e79ca4013a590500889)) +* **edition:** move section detail overview into separate comp ([4dc7bd9](https://github.com/webern-unibas-ch/awg-app/commit/4dc7bd9e459e0a39702cb5f44e79d8c3a717d8c1)) +* **edition:** update series and section from edition complex too ([4b87cc6](https://github.com/webern-unibas-ch/awg-app/commit/4b87cc6520a078612e034bb45e26b46cf9c3b056)) +* **edition:** use solid icon for calendarX ([64df1f1](https://github.com/webern-unibas-ch/awg-app/commit/64df1f1f262fad2340a37abdfe5406b00996608f)) +* **home:** display sections instead of complexes in home-view ([261b97a](https://github.com/webern-unibas-ch/awg-app/commit/261b97a02040b9a73da7a6c0ad08a4af29824988)) +* **home:** link to doku page instead of compodoc ([c2707c9](https://github.com/webern-unibas-ch/awg-app/commit/c2707c9bd7c569826e75d8f28cfd87ec9941fc65)) +* **home:** update landing page content ([9053f3d](https://github.com/webern-unibas-ch/awg-app/commit/9053f3d8fe131c8694bdb0fb00a10c6d689fa207)) +* **side-info:** collapse section menus by default ([417d0a4](https://github.com/webern-unibas-ch/awg-app/commit/417d0a4d1380a97f9ef6db45656ab5e9a55a82f7)) +* **side-info:** open sections dynamically ([f02325b](https://github.com/webern-unibas-ch/awg-app/commit/f02325b40f27064cbc41a39b12046d3d0dca814d)) +* **structure:** replace SALSAH with DSP in structure-view ([b4dae1d](https://github.com/webern-unibas-ch/awg-app/commit/b4dae1d678f770b093dca3f72eb0b9c398f45412)) + + +### Code Refactoring + +* **app:** rename routeToSidenav method ([889e4e4](https://github.com/webern-unibas-ch/awg-app/commit/889e4e447c55c4718ef62ccb8708f8961ceda3a9)) +* **core:** improve handling of navbar icons and labels ([d78e66b](https://github.com/webern-unibas-ch/awg-app/commit/d78e66b84e44f7059fc98958408caf6499cc542b)) +* **core:** unify naming of core data ([5a4b4cc](https://github.com/webern-unibas-ch/awg-app/commit/5a4b4cc6302f244412f4f17b85cb423ac889db24)) +* **edition:** adjust outline model to account for intro ([33fb9ed](https://github.com/webern-unibas-ch/awg-app/commit/33fb9ed0c4277951478dfd52c714b3611013c8af)) +* **edition:** adjust wording for headings and disclaimer ([ac82f9d](https://github.com/webern-unibas-ch/awg-app/commit/ac82f9d6799b8cb0adb70a20ab82d7cc6baf4d14)) +* **edition:** improve naming of intro scroll methods ([3a6e00b](https://github.com/webern-unibas-ch/awg-app/commit/3a6e00b88493d1f4f86647940549ccec4b13055b)) +* **edition:** improve wording of disclaimers ([90faae0](https://github.com/webern-unibas-ch/awg-app/commit/90faae0354c7ab8aea68181d37076e94e5d550b5)) +* **edition:** rename EditionIntroEmptyComponent ([e638f35](https://github.com/webern-unibas-ch/awg-app/commit/e638f3585cfdedaa17ba68e5b764240d804cedc1)) +* **edition:** rename EditionService -> EditionStateService ([4800f27](https://github.com/webern-unibas-ch/awg-app/commit/4800f27927180acae9aa206ea2ce4b441990a8a4)) +* **edition:** rename intro footnotes --> notes ([62a5e06](https://github.com/webern-unibas-ch/awg-app/commit/62a5e066c3a35f48147e174b635549657553baa1)) +* **edition:** reorganize edition view routing ([9152c8f](https://github.com/webern-unibas-ch/awg-app/commit/9152c8ffe03a0020b9d38194ec19d35b80d1c015)) +* **home:** move home cards into separate component ([8ce8dd7](https://github.com/webern-unibas-ch/awg-app/commit/8ce8dd7f9535aa138b7b73546d622749e7c1f3b0)) +* **shared:** move alert-info into separate component ([f55a6ff](https://github.com/webern-unibas-ch/awg-app/commit/f55a6ffde221a03a434e7ae2f65517c9fe2a8bfa)) +* **shared:** move language switcher into separate component ([7999eab](https://github.com/webern-unibas-ch/awg-app/commit/7999eab51dcdfa7a1e235eab5788e188fdfde391)) +* **shared:** rename AlertErrorComponent ([9cc9d76](https://github.com/webern-unibas-ch/awg-app/commit/9cc9d76b8073a7dcbd6db900d57bcaec5123c1ec)) + + +### Tests + +* **edition:** fix tests for intro components after changes ([4a6bccb](https://github.com/webern-unibas-ch/awg-app/commit/4a6bccb543d156baf6ae77bc6d06f030f5f9fc90)) +* **home:** fix tests after changes ([1aae98d](https://github.com/webern-unibas-ch/awg-app/commit/1aae98d4b751bf8939df76a081c3cc0f60606f1a)) +* **search:** fix tests after changes ([ccc2864](https://github.com/webern-unibas-ch/awg-app/commit/ccc2864574b735c0874e1c4ff473224470aa3bb1)) +* **side-info:** fix tests for EditionInfo after changes ([ef11d3a](https://github.com/webern-unibas-ch/awg-app/commit/ef11d3ab9720caf55de3b0116b694a3d7b34054f)) + + +### Documentation + +* **README:** update project image ([1a5b9e6](https://github.com/webern-unibas-ch/awg-app/commit/1a5b9e6ce1ea05928326265734f8a306a400b0e8)) +* **shared:** add JSDocs to new AlertInfo class ([4a18a5e](https://github.com/webern-unibas-ch/awg-app/commit/4a18a5e9767789f88ba00fa3c8911a62ecded339)) + + +### Styles + +* **app:** justify block text ([5b5b59b](https://github.com/webern-unibas-ch/awg-app/commit/5b5b59b70d4eeb2e71d7b3c2f4009862aa49f8ee)) +* **app:** swap display web font ([d00be32](https://github.com/webern-unibas-ch/awg-app/commit/d00be32e6ca5af0213041ede6a7ff17109623ffd)) +* **app:** unify layout of main view components ([5e96699](https://github.com/webern-unibas-ch/awg-app/commit/5e9669978f80c051d42aa3c1c95e5bbcec4cc90a)) +* **edition:** fix style for intro components ([204ea18](https://github.com/webern-unibas-ch/awg-app/commit/204ea18761041f291c98318de59f72b17fbd3203)) +* **edition:** highlight blockHeaders in tka tables ([d61482b](https://github.com/webern-unibas-ch/awg-app/commit/d61482b61f4db2d761f5a1b77f69d2425cc98bfa)) +* **edition:** improve display of corrections ([40dfe94](https://github.com/webern-unibas-ch/awg-app/commit/40dfe94d3cdeb947f54f4f4d3beb9f216b4a1e1b)) +* **edition:** improve responsivity of cover images ([57f67c7](https://github.com/webern-unibas-ch/awg-app/commit/57f67c7ee97877d3d43dc2fabaaea138d56b95bf)) +* **edition:** justify preface text ([343c277](https://github.com/webern-unibas-ch/awg-app/commit/343c2779533ab4d3d46e43d9d6f61fabc75ffdc3)) +* **edition:** remove bg-colors from intro helper classes ([4343fb7](https://github.com/webern-unibas-ch/awg-app/commit/4343fb787bf7477ea9034abb5a9a76d857d6f1e4)) +* **home:** stretch links of home view cards ([ea0a657](https://github.com/webern-unibas-ch/awg-app/commit/ea0a6571966930b0678d706d22d9290b98823c32)) +* **page-not-found:** improve styling ([5559862](https://github.com/webern-unibas-ch/awg-app/commit/5559862c87edf163368ca15bc8abd11d806c9b45)) + + +### Build System + +* **deps-dev:** bump @compodoc/compodoc from 1.1.25 to 1.1.26 ([c99aba1](https://github.com/webern-unibas-ch/awg-app/commit/c99aba19b2646d1959e46acb72e1fd43f4b72246)) +* **deps-dev:** bump angular-cli-ghpages from 2.0.1 to 2.0.3 ([c0c965b](https://github.com/webern-unibas-ch/awg-app/commit/c0c965b24bf7bd93296d142f18000953af5bb678)) +* **deps-dev:** bump commit-and-tag-version from 12.4.1 to 12.4.2 ([453d6f3](https://github.com/webern-unibas-ch/awg-app/commit/453d6f3164a331b5dd012a5f7685bba55357e258)) +* **deps-dev:** bump commit-and-tag-version from 12.4.2 to 12.4.3 ([a55f678](https://github.com/webern-unibas-ch/awg-app/commit/a55f678103afcb9400712bc76057d635bd7085ec)) +* **deps-dev:** bump commit-and-tag-version from 12.4.3 to 12.4.4 ([c0cc93f](https://github.com/webern-unibas-ch/awg-app/commit/c0cc93f3bcfbf3038f3eecc3b77925b0a3a50cd6)) +* **deps-dev:** bump commit-and-tag-version from 12.4.4 to 12.5.0 ([9f2abfc](https://github.com/webern-unibas-ch/awg-app/commit/9f2abfc05d93f1a7a2d0b8ddacdc860d5cec1c16)) +* **deps-dev:** bump eslint-plugin-import from 2.29.1 to 2.30.0 ([486f7e9](https://github.com/webern-unibas-ch/awg-app/commit/486f7e934e636b6ac3af29a5434ec443dc986368)) +* **deps-dev:** bump eslint-plugin-import from 2.30.0 to 2.31.0 ([0d0ef06](https://github.com/webern-unibas-ch/awg-app/commit/0d0ef0630f4cdef992c04b9d9d2a520159901344)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.2 to 50.2.3 ([e640d63](https://github.com/webern-unibas-ch/awg-app/commit/e640d63aed133a4795cb721b5e89ffd20f9b3f22)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 ([e0c28ea](https://github.com/webern-unibas-ch/awg-app/commit/e0c28ea3bfdc7e6d509bfe42456c5dfd9fa645e4)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.4 to 50.2.5 ([1ad6cbd](https://github.com/webern-unibas-ch/awg-app/commit/1ad6cbdbaff0c959fb0399208dceb18d6e96864b)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.5 to 50.3.0 ([0d70055](https://github.com/webern-unibas-ch/awg-app/commit/0d70055cc12529d56311f6dee29f012bc6a9fb12)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 ([110a2de](https://github.com/webern-unibas-ch/awg-app/commit/110a2de552c70c00de602ccff3eabf42677abe82)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.3.1 to 50.4.0 ([1de101f](https://github.com/webern-unibas-ch/awg-app/commit/1de101f3371c41cda476af2dcfab3f2047d4bd17)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.4.0 to 50.4.1 ([28243f6](https://github.com/webern-unibas-ch/awg-app/commit/28243f620f35fb6199520479156a5bc75bf67b0c)) +* **deps-dev:** bump eslint-plugin-jsdoc from 50.4.1 to 50.4.3 ([709259b](https://github.com/webern-unibas-ch/awg-app/commit/709259b15b85acfdfc02a241687823a3bd799031)) +* **deps-dev:** bump husky from 9.1.4 to 9.1.5 ([0c7b7a1](https://github.com/webern-unibas-ch/awg-app/commit/0c7b7a1dc5033f86f98ae137dde6ec93e824f29f)) +* **deps-dev:** bump husky from 9.1.5 to 9.1.6 ([375a190](https://github.com/webern-unibas-ch/awg-app/commit/375a19098d0f20e07dbe409b3191c02e697f53da)) +* **deps-dev:** bump jasmine-core from 5.2.0 to 5.3.0 ([994b48b](https://github.com/webern-unibas-ch/awg-app/commit/994b48b212e3484a44c916b321b694689e5044aa)) +* **deps-dev:** bump jasmine-core from 5.3.0 to 5.4.0 ([cb7cdd8](https://github.com/webern-unibas-ch/awg-app/commit/cb7cdd84ac24a3d3754467adc3f82408ea19643d)) +* **deps-dev:** bump lint-staged from 15.2.9 to 15.2.10 ([f60bc07](https://github.com/webern-unibas-ch/awg-app/commit/f60bc07f238009056fa16826b67db289ef76c0d8)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([60915df](https://github.com/webern-unibas-ch/awg-app/commit/60915dfdcf7f5f17746fd9cdb59cf18531285214)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([ba4ac9f](https://github.com/webern-unibas-ch/awg-app/commit/ba4ac9f809906c131efe58e71ef781a1bbbe48ed)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([5622c9c](https://github.com/webern-unibas-ch/awg-app/commit/5622c9cd5eebe1f3083a0ddbc75cb63e019bd240)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([aa7dc82](https://github.com/webern-unibas-ch/awg-app/commit/aa7dc82cd82aef0fcbd0268fb61c783598c18e1e)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([abbdcb1](https://github.com/webern-unibas-ch/awg-app/commit/abbdcb1af23817cf28e732e1841d7f34b7f222ef)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([b883d76](https://github.com/webern-unibas-ch/awg-app/commit/b883d76739f865e3b23107a26fee9dde688054df)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f7e2c33](https://github.com/webern-unibas-ch/awg-app/commit/f7e2c3361ff9a7106b84aa3dace2f78e7bfca4cd)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([9b378ed](https://github.com/webern-unibas-ch/awg-app/commit/9b378edf6f922cf9673411919be07c86b0de725e)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f91b3b6](https://github.com/webern-unibas-ch/awg-app/commit/f91b3b6b28c3ad8fde935125ce2af9404bb1b0e8)) +* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([3670f3f](https://github.com/webern-unibas-ch/awg-app/commit/3670f3f9139f07bcf2f8d3c11c77e48b62db6ae3)) +* **deps-dev:** bump the angular-eslint group with 5 updates ([75f9e80](https://github.com/webern-unibas-ch/awg-app/commit/75f9e80be6df5165da9057ce60c986eb09664e53)) +* **deps-dev:** bump the angular-eslint group with 5 updates ([82910f1](https://github.com/webern-unibas-ch/awg-app/commit/82910f19bf0412db4f3fced80e781c29913abfd3)) +* **deps-dev:** bump the commitlint group with 2 updates ([1720367](https://github.com/webern-unibas-ch/awg-app/commit/1720367ee6fc4b153efaeaa7639381eb98c2f893)) +* **deps-dev:** bump the commitlint group with 2 updates ([8869fbb](https://github.com/webern-unibas-ch/awg-app/commit/8869fbb30244e9dda883610e0d1eda7baf478229)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([39b042e](https://github.com/webern-unibas-ch/awg-app/commit/39b042ed329fc96747a76eb8f9be041eeefc5f66)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([3e54644](https://github.com/webern-unibas-ch/awg-app/commit/3e5464459c5346d43bad497936df6c70d2002db3)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([2865d33](https://github.com/webern-unibas-ch/awg-app/commit/2865d33e87e886ceef45c55c07b18decd7324871)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([7fc0dfd](https://github.com/webern-unibas-ch/awg-app/commit/7fc0dfda02764828fd31f76913fe68a806a26cbb)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([c1e7244](https://github.com/webern-unibas-ch/awg-app/commit/c1e7244217aa7689948e1c538a31506a502d4bcd)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([7bfe627](https://github.com/webern-unibas-ch/awg-app/commit/7bfe627efdb04fd9d3dd96adf2d353b87207d7fd)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([3c11cb8](https://github.com/webern-unibas-ch/awg-app/commit/3c11cb81bbc051763aa9a6f72bbd81428729e5d8)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([23fa261](https://github.com/webern-unibas-ch/awg-app/commit/23fa2617b1af8a5d275c11d436ad4c0a0185e379)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([5fb8d75](https://github.com/webern-unibas-ch/awg-app/commit/5fb8d75ed31706e8a4f4e1ddd7da8c9af6f77660)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([d5eecba](https://github.com/webern-unibas-ch/awg-app/commit/d5eecba3ffe5b5128a64c32d2b5c90d58e74402f)) +* **deps-dev:** bump the typescript-eslint group with 2 updates ([7d5141b](https://github.com/webern-unibas-ch/awg-app/commit/7d5141b8c37ef8837ace5fd47cd7940b7df7caf4)) +* **deps:** add fontawesome regular svg icons ([bda78bb](https://github.com/webern-unibas-ch/awg-app/commit/bda78bb4ec8bbc783578d19922bd33ffb9713fcd)) +* **deps:** bump @ng-bootstrap/ng-bootstrap from 17.0.0 to 17.0.1 ([3b81441](https://github.com/webern-unibas-ch/awg-app/commit/3b81441558865920951c84d5c33d72d445a435a2)) +* **deps:** bump actions/checkout from 4.1.7 to 4.2.0 ([30866b3](https://github.com/webern-unibas-ch/awg-app/commit/30866b3f020f52e9ad41645a54de9f86874ac481)) +* **deps:** bump actions/checkout from 4.2.0 to 4.2.1 ([9e27174](https://github.com/webern-unibas-ch/awg-app/commit/9e27174fa26c9196fbd79796cf45f9059b0c9564)) +* **deps:** bump actions/checkout from 4.2.1 to 4.2.2 ([90a0530](https://github.com/webern-unibas-ch/awg-app/commit/90a053082ff300aa4706d676f0eac8db1634e51c)) +* **deps:** bump actions/dependency-review-action from 4.3.4 to 4.3.5 ([861f203](https://github.com/webern-unibas-ch/awg-app/commit/861f203f04ae6cbed959314429228653510a1a09)) +* **deps:** bump actions/setup-node from 4.0.3 to 4.0.4 ([1651f83](https://github.com/webern-unibas-ch/awg-app/commit/1651f8370b0f5affb3ff7198fa7acf9a70064153)) +* **deps:** bump actions/setup-node from 4.0.4 to 4.1.0 ([182332a](https://github.com/webern-unibas-ch/awg-app/commit/182332a784811cbdb48a70dc9302d1d1765289a4)) +* **deps:** bump actions/upload-artifact from 4.3.6 to 4.4.0 ([13eb56d](https://github.com/webern-unibas-ch/awg-app/commit/13eb56d0ee8f47c6a3fdc37d6540f21bef46eb65)) +* **deps:** bump actions/upload-artifact from 4.4.0 to 4.4.2 ([337c221](https://github.com/webern-unibas-ch/awg-app/commit/337c221b93d4a30262fa9393e31efc4801b805c4)) +* **deps:** bump actions/upload-artifact from 4.4.2 to 4.4.3 ([42102f3](https://github.com/webern-unibas-ch/awg-app/commit/42102f36b32ec2f6fddf6b581cc06be45b1ef850)) +* **deps:** bump body-parser from 1.20.2 to 1.20.3 ([1d26dcd](https://github.com/webern-unibas-ch/awg-app/commit/1d26dcd7ebdefd39c76a7393a647e0ff5a24190f)) +* **deps:** bump codecov/codecov-action from 4.5.0 to 4.6.0 ([c0651ae](https://github.com/webern-unibas-ch/awg-app/commit/c0651ae5207859a400980e248d2323ee9072d1fe)) +* **deps:** bump express from 4.19.2 to 4.20.0 ([31276cd](https://github.com/webern-unibas-ch/awg-app/commit/31276cd906171835364eaf8faf3ef739cc19d25b)) +* **deps:** bump github/codeql-action from 3.26.10 to 3.26.11 ([c0900fd](https://github.com/webern-unibas-ch/awg-app/commit/c0900fd2c08f9d4599b8db5077ec0bd7684a477f)) +* **deps:** bump github/codeql-action from 3.26.11 to 3.26.12 ([097f982](https://github.com/webern-unibas-ch/awg-app/commit/097f9827ec3ffef5514a54a1864bcf344165720c)) +* **deps:** bump github/codeql-action from 3.26.12 to 3.26.13 ([c51506c](https://github.com/webern-unibas-ch/awg-app/commit/c51506c32a00a7db87b0c62d2cb30a5e4bf22ee6)) +* **deps:** bump github/codeql-action from 3.26.13 to 3.27.0 ([40af3b3](https://github.com/webern-unibas-ch/awg-app/commit/40af3b32b0969f898c93062eee5fe1df6fda74dc)) +* **deps:** bump github/codeql-action from 3.26.2 to 3.26.3 ([331426e](https://github.com/webern-unibas-ch/awg-app/commit/331426e8db01b8b084bf11b6225c6dbd8bdbc47a)) +* **deps:** bump github/codeql-action from 3.26.3 to 3.26.4 ([7c744e6](https://github.com/webern-unibas-ch/awg-app/commit/7c744e660d1464947788ca5f990b073f7a98b277)) +* **deps:** bump github/codeql-action from 3.26.4 to 3.26.5 ([00ea16d](https://github.com/webern-unibas-ch/awg-app/commit/00ea16d63a08a2b2950b5200858a58897741484a)) +* **deps:** bump github/codeql-action from 3.26.5 to 3.26.6 ([6e92f38](https://github.com/webern-unibas-ch/awg-app/commit/6e92f388328e3a1018eca8b058b1e2e0fea49b84)) +* **deps:** bump github/codeql-action from 3.26.6 to 3.26.7 ([6d60b1c](https://github.com/webern-unibas-ch/awg-app/commit/6d60b1c7853ade162e0ced27c3ceefc7d2d8ea9f)) +* **deps:** bump github/codeql-action from 3.26.7 to 3.26.8 ([93f13d0](https://github.com/webern-unibas-ch/awg-app/commit/93f13d0594ffe5574f268fa3cf5450f5061d19c7)) +* **deps:** bump github/codeql-action from 3.26.8 to 3.26.9 ([474070a](https://github.com/webern-unibas-ch/awg-app/commit/474070aa5908fc8fbc54b860df5bf6173c5d1ad2)) +* **deps:** bump github/codeql-action from 3.26.9 to 3.26.10 ([2615d0b](https://github.com/webern-unibas-ch/awg-app/commit/2615d0b12ce6cdc8d633c2c54e4160c3bcbfe527)) +* **deps:** bump http-proxy-middleware from 2.0.6 to 2.0.7 ([d3b9048](https://github.com/webern-unibas-ch/awg-app/commit/d3b90484c681843166728df051e0228fb1fe15db)) +* **deps:** bump micromatch from 4.0.7 to 4.0.8 ([edfeebe](https://github.com/webern-unibas-ch/awg-app/commit/edfeebe9f5cd92b9e9b6722320df52374add9229)) +* **deps:** bump n3 from 1.20.4 to 1.21.0 ([e91ca31](https://github.com/webern-unibas-ch/awg-app/commit/e91ca311105bc11ca148da12ff351f94fd1541ce)) +* **deps:** bump n3 from 1.21.0 to 1.21.1 ([105a74c](https://github.com/webern-unibas-ch/awg-app/commit/105a74c5b4840caa2c8bcf67569d5cdecbd71427)) +* **deps:** bump n3 from 1.21.1 to 1.22.0 ([7749846](https://github.com/webern-unibas-ch/awg-app/commit/7749846c6937389c4d7f3f500df48c62f168998f)) +* **deps:** bump n3 from 1.22.0 to 1.22.1 ([45445b0](https://github.com/webern-unibas-ch/awg-app/commit/45445b0dfdc7df06f11417717e2f32ae50709972)) +* **deps:** bump n3 from 1.22.1 to 1.22.3 ([9551bbd](https://github.com/webern-unibas-ch/awg-app/commit/9551bbd438b49c6a44f6a8ac118281f3047310f3)) +* **deps:** bump rdfstore from v0.9.18-alpha.16 to v0.9.18-alpha.17 ([500b47e](https://github.com/webern-unibas-ch/awg-app/commit/500b47eb4184c6c7607cdbe0e4cae736b833ad41)) +* **deps:** bump rollup from 4.22.0 to 4.22.4 ([6d65df8](https://github.com/webern-unibas-ch/awg-app/commit/6d65df81b5ca910a18fadbbe8c333fedc24a06a6)) +* **deps:** bump SonarSource/sonarcloud-github-action ([6e2fa81](https://github.com/webern-unibas-ch/awg-app/commit/6e2fa811039a69d1e90a41b290e12ee653d66040)) +* **deps:** bump SonarSource/sonarcloud-github-action ([883e23f](https://github.com/webern-unibas-ch/awg-app/commit/883e23fc8a5e41d0d38dd8743e49cce4fee2b271)) +* **deps:** bump step-security/harden-runner from 2.9.1 to 2.10.1 ([dfba1df](https://github.com/webern-unibas-ch/awg-app/commit/dfba1df6721ee4b3cce89181354ca1a4d2f2bb20)) +* **deps:** bump the angular group with 11 updates ([322139f](https://github.com/webern-unibas-ch/awg-app/commit/322139f9607d5f52e6de8d23cf36dfb18f9e1f67)) +* **deps:** bump the angular group with 11 updates ([f6447e3](https://github.com/webern-unibas-ch/awg-app/commit/f6447e3d2a325dec1079518981816d89907bede1)) +* **deps:** bump the angular group with 11 updates ([1d18b4d](https://github.com/webern-unibas-ch/awg-app/commit/1d18b4db5228dc51edd6863c0aed8e732505097f)) +* **deps:** bump the angular group with 11 updates ([005107f](https://github.com/webern-unibas-ch/awg-app/commit/005107f5a012bbf417dbd85fe3828a9406cadfe3)) +* **deps:** bump the angular group with 11 updates ([75ce249](https://github.com/webern-unibas-ch/awg-app/commit/75ce2493dedbbd78ad3a30033a82d43d2eae18e0)) +* **deps:** bump the angular group with 11 updates ([77a68bd](https://github.com/webern-unibas-ch/awg-app/commit/77a68bd326a06ece38151a8161293897e5f3a782)) +* **deps:** bump the angular group with 11 updates ([d7489a3](https://github.com/webern-unibas-ch/awg-app/commit/d7489a3708c6aa5be85337089e623e3d874fb70a)) +* **deps:** bump the angular group with 11 updates ([0602b82](https://github.com/webern-unibas-ch/awg-app/commit/0602b82c16125c3fc96cec61ec4b52b3a7719a3b)) +* **deps:** bump the angular group with 11 updates ([b3d7069](https://github.com/webern-unibas-ch/awg-app/commit/b3d7069fd5039ce48d7b77096fb2bae1e8c20e51)) +* **deps:** bump tslib from 2.6.3 to 2.7.0 ([504ca75](https://github.com/webern-unibas-ch/awg-app/commit/504ca75a95aa037f868c4c43b5726068020d8ad9)) +* **shared:** activate NgbPopoverModule ([66158cf](https://github.com/webern-unibas-ch/awg-app/commit/66158cf22d0ac249f579de444ccd588af02fdb7f)) + ## [0.14.0](https://github.com/webern-unibas-ch/awg-app/compare/v0.12.3...v0.14.0) (2024-08-19) ### Note diff --git a/package.json b/package.json index a8d7a1d2b9..f2207cbec5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "awg-app", - "version": "0.14.0", + "version": "1.0.0", "license": "MIT", "author": { "name": "Stefan Münnich", diff --git a/src/app/app.globals.ts b/src/app/app.globals.ts index ec89388bb3..532d545752 100644 --- a/src/app/app.globals.ts +++ b/src/app/app.globals.ts @@ -1,15 +1,15 @@ // THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT MANUALLY! -// Generated last time on Mon, Aug 19, 2024 7:32:05 PM +// Generated last time on Sat, Oct 26, 2024 2:16:23 PM /** * The latest version of the AWG App */ -export const appVersion = '0.14.0'; +export const appVersion = '1.0.0'; /** * The release date of the latest version of the AWG App */ -export const appVersionReleaseDate = '19. August 2024'; +export const appVersionReleaseDate = '26. Oktober 2024'; /** * The URL of the AWG App From c0a2b317356176984c60f430354e976abfe4ad8d Mon Sep 17 00:00:00 2001 From: musicEnfanthen Date: Sat, 26 Oct 2024 14:35:12 +0200 Subject: [PATCH 213/213] docs(CHANGELOG): add credits to contributors --- CHANGELOG.md | 410 +++++++++++++++++++++++++-------------------------- 1 file changed, 203 insertions(+), 207 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b729415c82..22e884abaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,236 +4,232 @@ All notable changes to this project will be documented in this file. See [commit ## [1.0.0](https://github.com/webern-unibas-ch/awg-app/compare/v0.14.0...v1.0.0) (2024-10-26) - ### ⚠ BREAKING CHANGES -* **app:** This ends the status of the app as a prototype. - -(cherry picked from commit 3d7979da43046851f9c3030ff1e26f8579150057) +- **app:** This ends the status of the app as a prototype. ### Features -* **app:** move away from prototype ([0495501](https://github.com/webern-unibas-ch/awg-app/commit/0495501db4a05edc59a23d525f0f67d5f2bd769b)) -* **assets:** add corrections for Op3: I + J ([490313d](https://github.com/webern-unibas-ch/awg-app/commit/490313dc6e56c8ac37cad515e8769cf20239a96f)) -* **assets:** add corrections for Op4: A ([21243a0](https://github.com/webern-unibas-ch/awg-app/commit/21243a0c29363359fff069174ab553fd49862cda)) -* **assets:** add corrections in op25: E ([af3804f](https://github.com/webern-unibas-ch/awg-app/commit/af3804f473c0d47dd6d2aa8afda0cbc8075ad605)) -* **assets:** add corrections in op3: C ([29873dc](https://github.com/webern-unibas-ch/awg-app/commit/29873dc9d29b5d3215c7db098494507cccdcbccb)) -* **assets:** add corrections in op3: E ([8fd65a3](https://github.com/webern-unibas-ch/awg-app/commit/8fd65a35df30647ef1c27b17ba005d3a03ad9a21)) -* **assets:** add corrections in op3: F ([6aa4ee9](https://github.com/webern-unibas-ch/awg-app/commit/6aa4ee9c2e67d84f23041a49b827895dfc187685)) -* **assets:** add corrections in Op3: G ([6a9a559](https://github.com/webern-unibas-ch/awg-app/commit/6a9a559691e64ea476a08a8f21aaa0aae42bec90)) -* **assets:** add corrections in Op3: H ([1e978d1](https://github.com/webern-unibas-ch/awg-app/commit/1e978d1ef67471c8c58398a4b568ebb4b7ae2d21)) -* **assets:** add corrections in Op4: B ([#1881](https://github.com/webern-unibas-ch/awg-app/issues/1881)) ([c5dda47](https://github.com/webern-unibas-ch/awg-app/commit/c5dda4715d685b6e05b86d6ac46510b7bcaffcb7)) -* **assets:** add corrections in Op4: D ([b8569b2](https://github.com/webern-unibas-ch/awg-app/commit/b8569b284fc8cd96b59f0209d7a35d268eb35de1)) -* **assets:** add corrections in Op4: I ([c73d9df](https://github.com/webern-unibas-ch/awg-app/commit/c73d9df536fa6485f1714b4ea5fa7cb53bd36c25)) -* **assets:** add corrections Op4: GH ([2087ead](https://github.com/webern-unibas-ch/awg-app/commit/2087eadcbd4f5040e3d21f62c6842076ae384821)) -* **assets:** add intro preview to section detail ([dbf516a](https://github.com/webern-unibas-ch/awg-app/commit/dbf516a075fe92f702baea8ec33fd94b492ab86c)) -* **assets:** create section wide intro file ([49bdbad](https://github.com/webern-unibas-ch/awg-app/commit/49bdbade5b9898ecef9ce5c1d2efad38e2c1ec08)) -* **edition:** add breadcrumb for section intro ([5ee951b](https://github.com/webern-unibas-ch/awg-app/commit/5ee951b4dab6c2770cd5878fc3b5e514c95b5cfc)) -* **edition:** add check for intro view ([91442e2](https://github.com/webern-unibas-ch/awg-app/commit/91442e21d6cfcf6a7e498e44d25f6a1869002380)) -* **edition:** add cover images to section overview ([9024e76](https://github.com/webern-unibas-ch/awg-app/commit/9024e7681bb85d044414dd9fd28990a295d68473)) -* **edition:** add disclaimer for partial intros ([c772332](https://github.com/webern-unibas-ch/awg-app/commit/c7723327b972f258ede2aab1c18f064a5b2f4987)) -* **edition:** add disclaimer for workeditions ([b3cd451](https://github.com/webern-unibas-ch/awg-app/commit/b3cd451e6926b2f16b6a68674d499fbde1277b80)) -* **edition:** add english version of intro AWG I/5 ([e79f4c1](https://github.com/webern-unibas-ch/awg-app/commit/e79f4c13fc41900efc683d47c22e4bb113774fae)) -* **edition:** add language switcher to intro ([cd3471b](https://github.com/webern-unibas-ch/awg-app/commit/cd3471b05bd54f6871fbd0d2ab11464cf72c7999)) -* **edition:** add route for section intro ([f6e29ac](https://github.com/webern-unibas-ch/awg-app/commit/f6e29acfcbffb7db49a062c8ebbd5b210f111a59)) -* **edition:** add scrollable menu to intro ([c1b49d6](https://github.com/webern-unibas-ch/awg-app/commit/c1b49d6a3638f44596cb649e480ea64ad91fde05)) -* **edition:** add section intro link to side info ([a4326c3](https://github.com/webern-unibas-ch/awg-app/commit/a4326c335fef302c57a5803833174f085f919253)) -* **edition:** add service method to load section intro data ([7bc1a87](https://github.com/webern-unibas-ch/awg-app/commit/7bc1a87231060e43aaa867e52f228cee5037ca4e)) -* **edition:** include intro and disclaimer in edition section detail ([10b517c](https://github.com/webern-unibas-ch/awg-app/commit/10b517c04b998f11dbedc339d1401b2c9cd84a6b)) -* **home:** add card navigation to home view ([79cb5e3](https://github.com/webern-unibas-ch/awg-app/commit/79cb5e33814dc449f33c72e40634de4dc707f729)) -* **shared:** add abbreviation directive ([c9d75d8](https://github.com/webern-unibas-ch/awg-app/commit/c9d75d81e401f834d6afda8a6d4eac04e24f2530)) - +- **app:** move away from prototype ([0495501](https://github.com/webern-unibas-ch/awg-app/commit/0495501db4a05edc59a23d525f0f67d5f2bd769b)) +- **assets:** add corrections in Op12: C ([627979a](https://github.com/webern-unibas-ch/awg-app/commit/627979afd42153b0b1892bd4f172bfd556ad498e); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op25: E ([af3804f](https://github.com/webern-unibas-ch/awg-app/commit/af3804f473c0d47dd6d2aa8afda0cbc8075ad605); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: A ([efff423](https://github.com/webern-unibas-ch/awg-app/commit/efff423b071df0376e4215f84b511b1433fb278c); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: B ([afbde12](https://github.com/webern-unibas-ch/awg-app/commit/afbde12b5a6194dbc716c817f04c60fa21f6c0ea); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: C ([29873dc](https://github.com/webern-unibas-ch/awg-app/commit/29873dc9d29b5d3215c7db098494507cccdcbccb); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: E ([8fd65a3](https://github.com/webern-unibas-ch/awg-app/commit/8fd65a35df30647ef1c27b17ba005d3a03ad9a21); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: F ([6aa4ee9](https://github.com/webern-unibas-ch/awg-app/commit/6aa4ee9c2e67d84f23041a49b827895dfc187685); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: G ([6a9a559](https://github.com/webern-unibas-ch/awg-app/commit/6a9a559691e64ea476a08a8f21aaa0aae42bec90); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: H ([1e978d1](https://github.com/webern-unibas-ch/awg-app/commit/1e978d1ef67471c8c58398a4b568ebb4b7ae2d21); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op3: I + J ([490313d](https://github.com/webern-unibas-ch/awg-app/commit/490313dc6e56c8ac37cad515e8769cf20239a96f); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op4: A ([21243a0](https://github.com/webern-unibas-ch/awg-app/commit/21243a0c29363359fff069174ab553fd49862cda); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op4: B ([#1881](https://github.com/webern-unibas-ch/awg-app/issues/1881)) ([c5dda47](https://github.com/webern-unibas-ch/awg-app/commit/c5dda4715d685b6e05b86d6ac46510b7bcaffcb7); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op4: D ([b8569b2](https://github.com/webern-unibas-ch/awg-app/commit/b8569b284fc8cd96b59f0209d7a35d268eb35de1); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op4: GH ([2087ead](https://github.com/webern-unibas-ch/awg-app/commit/2087eadcbd4f5040e3d21f62c6842076ae384821); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add corrections in Op4: I ([c73d9df](https://github.com/webern-unibas-ch/awg-app/commit/c73d9df536fa6485f1714b4ea5fa7cb53bd36c25); thanks to [@masthom](https://github.com/masthom)) +- **assets:** add intro preview to section detail ([dbf516a](https://github.com/webern-unibas-ch/awg-app/commit/dbf516a075fe92f702baea8ec33fd94b492ab86c)) +- **assets:** create section wide intro file ([49bdbad](https://github.com/webern-unibas-ch/awg-app/commit/49bdbade5b9898ecef9ce5c1d2efad38e2c1ec08)) +- **edition:** add breadcrumb for section intro ([5ee951b](https://github.com/webern-unibas-ch/awg-app/commit/5ee951b4dab6c2770cd5878fc3b5e514c95b5cfc)) +- **edition:** add check for intro view ([91442e2](https://github.com/webern-unibas-ch/awg-app/commit/91442e21d6cfcf6a7e498e44d25f6a1869002380)) +- **edition:** add cover images to section overview ([9024e76](https://github.com/webern-unibas-ch/awg-app/commit/9024e7681bb85d044414dd9fd28990a295d68473)) +- **edition:** add disclaimer for partial intros ([c772332](https://github.com/webern-unibas-ch/awg-app/commit/c7723327b972f258ede2aab1c18f064a5b2f4987)) +- **edition:** add disclaimer for workeditions ([b3cd451](https://github.com/webern-unibas-ch/awg-app/commit/b3cd451e6926b2f16b6a68674d499fbde1277b80)) +- **edition:** add english version of intro AWG I/5 ([e79f4c1](https://github.com/webern-unibas-ch/awg-app/commit/e79f4c13fc41900efc683d47c22e4bb113774fae)) +- **edition:** add language switcher to intro ([cd3471b](https://github.com/webern-unibas-ch/awg-app/commit/cd3471b05bd54f6871fbd0d2ab11464cf72c7999)) +- **edition:** add route for section intro ([f6e29ac](https://github.com/webern-unibas-ch/awg-app/commit/f6e29acfcbffb7db49a062c8ebbd5b210f111a59)) +- **edition:** add scrollable menu to intro ([c1b49d6](https://github.com/webern-unibas-ch/awg-app/commit/c1b49d6a3638f44596cb649e480ea64ad91fde05)) +- **edition:** add section intro link to side info ([a4326c3](https://github.com/webern-unibas-ch/awg-app/commit/a4326c335fef302c57a5803833174f085f919253)) +- **edition:** add service method to load section intro data ([7bc1a87](https://github.com/webern-unibas-ch/awg-app/commit/7bc1a87231060e43aaa867e52f228cee5037ca4e)) +- **edition:** include intro and disclaimer in edition section detail ([10b517c](https://github.com/webern-unibas-ch/awg-app/commit/10b517c04b998f11dbedc339d1401b2c9cd84a6b)) +- **home:** add card navigation to home view ([79cb5e3](https://github.com/webern-unibas-ch/awg-app/commit/79cb5e33814dc449f33c72e40634de4dc707f729)) +- **shared:** add abbreviation directive ([c9d75d8](https://github.com/webern-unibas-ch/awg-app/commit/c9d75d81e401f834d6afda8a6d4eac04e24f2530)) ### Bug Fixes -* **app:** do not show sideOutlet on home view ([dc42407](https://github.com/webern-unibas-ch/awg-app/commit/dc42407ed302d21ca122b6ca431d5a2cdf2fbfe1)) -* **assets:** add full intro for AWG I/5 ([169be29](https://github.com/webern-unibas-ch/awg-app/commit/169be29fcb767f73ad0e98266490f715e6059dcb)) -* **assets:** fix formatting of corrections ([10797f9](https://github.com/webern-unibas-ch/awg-app/commit/10797f92c39dfcc11d328aaca9b69114563929ce)) -* **assets:** fix formatting of corrections op3 ([1231ef7](https://github.com/webern-unibas-ch/awg-app/commit/1231ef74a501213e8018c123f9ae44ea45519505)) -* **assets:** fix formatting of corrections op3: B ([b234ef6](https://github.com/webern-unibas-ch/awg-app/commit/b234ef6b6d8331600414d156a3503f9c234b4741)) -* **assets:** fix formatting of corrections op3: C ([c49b0fb](https://github.com/webern-unibas-ch/awg-app/commit/c49b0fb6150c2e18a8d4c5529f49514bed28c422)) -* **assets:** fix formatting of corrections op3: E ([d52628d](https://github.com/webern-unibas-ch/awg-app/commit/d52628dda7446768c3a94ce86a5c27d2269963d3)) -* **assets:** fix formatting of corrections op3: F–H ([2b57b7f](https://github.com/webern-unibas-ch/awg-app/commit/2b57b7fdc33207273762b199ca810cd73ad924d1)) -* **assets:** fix typo in label in op3: source_Ee_corr2 ([cd91a14](https://github.com/webern-unibas-ch/awg-app/commit/cd91a1459e2b71e6e0acfa18517de321318f1ca3)) -* **assets:** fix typo in textcritics for m38 ([62eff2c](https://github.com/webern-unibas-ch/awg-app/commit/62eff2c9e132ac062cdbac2863d0fb471fb35e7a)) -* **assets:** fix typos in intro AWG I/5 ([9780252](https://github.com/webern-unibas-ch/awg-app/commit/9780252585afa940f8f5d8aa464349986630793b)) -* **assets:** make sources of intro navigable ([836ea8a](https://github.com/webern-unibas-ch/awg-app/commit/836ea8a73d4bd7947cec029483bf89eb4003424d)) -* **assets:** optimize svgs for m38 with SVGO ([af48f6a](https://github.com/webern-unibas-ch/awg-app/commit/af48f6a65a7000ccbda9892f0e638f574c2f5234)) -* **assets:** provide intro notes as blockNotes ([267aa0f](https://github.com/webern-unibas-ch/awg-app/commit/267aa0f7bac894dc7980e7d6740919a6b870f2f0)) -* **assets:** remove side outlet from data ([d9421de](https://github.com/webern-unibas-ch/awg-app/commit/d9421de1b243c8f4b02e96de4c3368826e120d3e)) -* **assets:** remove unnecessary line break from intro AWG I/5 ([b0905bc](https://github.com/webern-unibas-ch/awg-app/commit/b0905bc0cd11c65694fa8c368924cb75ebc0e07f)) -* **assets:** small fixes in source descriptions AWG I/5 ([c520b4e](https://github.com/webern-unibas-ch/awg-app/commit/c520b4e20596a8a3924cd771ac69cb5bda5430fb)) -* **assets:** use glyphs for note values ([eb26661](https://github.com/webern-unibas-ch/awg-app/commit/eb26661b8b5c1838a60d24b44d4a729440e2f6cd)) -* **core:** mute search button on navbar ([53a1d90](https://github.com/webern-unibas-ch/awg-app/commit/53a1d90109bedf97b31ff38b110440592367f965)) -* **edition:** add complex to breadcrumb if given ([86857ec](https://github.com/webern-unibas-ch/awg-app/commit/86857ecd7feff170a0544c74f592a4d902810b48)) -* **edition:** add description to series overview ([c517895](https://github.com/webern-unibas-ch/awg-app/commit/c517895fe7d64187c7d9a1587a5fddba5fc6f9fd)) -* **edition:** add missing glyph for sfz ([d1d3c41](https://github.com/webern-unibas-ch/awg-app/commit/d1d3c4101bd9b2a86c2631fe6654e4a9161e0263)) -* **edition:** add missing glyphs for note values ([2d08ad1](https://github.com/webern-unibas-ch/awg-app/commit/2d08ad1286f55726d2972facd58933958f2e20dd)) -* **edition:** add missing glyphs for sf and sp ([7cebd28](https://github.com/webern-unibas-ch/awg-app/commit/7cebd281a186342154e04e2773e97d07e38ff475)) -* **edition:** don't display table if there are no corrections ([02bf591](https://github.com/webern-unibas-ch/awg-app/commit/02bf591abfd43ae21266dcb18d0c1b2f65e73b3c)) -* **edition:** finish formatting of intro AWG I/5 ([464e16e](https://github.com/webern-unibas-ch/awg-app/commit/464e16e1f20d7aca49ef0c16f00ad585c05d729b)) -* **edition:** fix check for section III/5 in outline model ([317c66d](https://github.com/webern-unibas-ch/awg-app/commit/317c66d2e0ea4ecae254e13b8f75c68895ccff4c)) -* **edition:** fix typo in textcritics for m38 ([c03ba8c](https://github.com/webern-unibas-ch/awg-app/commit/c03ba8c3c2ae6afe8e9d5fccb15a9f67205ef28f)) -* **edition:** improve wording in section detail disclaimer ([dc3ec09](https://github.com/webern-unibas-ch/awg-app/commit/dc3ec0986d431d868ff770493700785bd3f0d150)) -* **edition:** improve wording of section detail disclaimer ([b4f6ff2](https://github.com/webern-unibas-ch/awg-app/commit/b4f6ff253cce4921b4ef71605fb49f2a45d36f51)) -* **edition:** make footnotes of intro navigable ([57d575a](https://github.com/webern-unibas-ch/awg-app/commit/57d575a6b082c2e71f0ffcbe029718dcc6388d68)) -* **edition:** move intro parts into separate components ([7965435](https://github.com/webern-unibas-ch/awg-app/commit/79654355a70ce97c62145e79ca4013a590500889)) -* **edition:** move section detail overview into separate comp ([4dc7bd9](https://github.com/webern-unibas-ch/awg-app/commit/4dc7bd9e459e0a39702cb5f44e79d8c3a717d8c1)) -* **edition:** update series and section from edition complex too ([4b87cc6](https://github.com/webern-unibas-ch/awg-app/commit/4b87cc6520a078612e034bb45e26b46cf9c3b056)) -* **edition:** use solid icon for calendarX ([64df1f1](https://github.com/webern-unibas-ch/awg-app/commit/64df1f1f262fad2340a37abdfe5406b00996608f)) -* **home:** display sections instead of complexes in home-view ([261b97a](https://github.com/webern-unibas-ch/awg-app/commit/261b97a02040b9a73da7a6c0ad08a4af29824988)) -* **home:** link to doku page instead of compodoc ([c2707c9](https://github.com/webern-unibas-ch/awg-app/commit/c2707c9bd7c569826e75d8f28cfd87ec9941fc65)) -* **home:** update landing page content ([9053f3d](https://github.com/webern-unibas-ch/awg-app/commit/9053f3d8fe131c8694bdb0fb00a10c6d689fa207)) -* **side-info:** collapse section menus by default ([417d0a4](https://github.com/webern-unibas-ch/awg-app/commit/417d0a4d1380a97f9ef6db45656ab5e9a55a82f7)) -* **side-info:** open sections dynamically ([f02325b](https://github.com/webern-unibas-ch/awg-app/commit/f02325b40f27064cbc41a39b12046d3d0dca814d)) -* **structure:** replace SALSAH with DSP in structure-view ([b4dae1d](https://github.com/webern-unibas-ch/awg-app/commit/b4dae1d678f770b093dca3f72eb0b9c398f45412)) - +- **app:** do not show sideOutlet on home view ([dc42407](https://github.com/webern-unibas-ch/awg-app/commit/dc42407ed302d21ca122b6ca431d5a2cdf2fbfe1)) +- **assets:** add full intro for AWG I/5 ([169be29](https://github.com/webern-unibas-ch/awg-app/commit/169be29fcb767f73ad0e98266490f715e6059dcb)) +- **assets:** fix formatting of corrections ([10797f9](https://github.com/webern-unibas-ch/awg-app/commit/10797f92c39dfcc11d328aaca9b69114563929ce)) +- **assets:** fix formatting of corrections op3 ([1231ef7](https://github.com/webern-unibas-ch/awg-app/commit/1231ef74a501213e8018c123f9ae44ea45519505)) +- **assets:** fix formatting of corrections op3: B ([b234ef6](https://github.com/webern-unibas-ch/awg-app/commit/b234ef6b6d8331600414d156a3503f9c234b4741)) +- **assets:** fix formatting of corrections op3: C ([c49b0fb](https://github.com/webern-unibas-ch/awg-app/commit/c49b0fb6150c2e18a8d4c5529f49514bed28c422)) +- **assets:** fix formatting of corrections op3: E ([d52628d](https://github.com/webern-unibas-ch/awg-app/commit/d52628dda7446768c3a94ce86a5c27d2269963d3)) +- **assets:** fix formatting of corrections op3: F–H ([2b57b7f](https://github.com/webern-unibas-ch/awg-app/commit/2b57b7fdc33207273762b199ca810cd73ad924d1)) +- **assets:** fix link boxes in m38 ([d00e60d](https://github.com/webern-unibas-ch/awg-app/commit/d00e60de1c34a479590af8c061292bb3d2a46bf6); thanks to [@chael-mi](https://github.com/chael-mi)) +- **assets:** fix typo in label in op3: source_Ee_corr2 ([cd91a14](https://github.com/webern-unibas-ch/awg-app/commit/cd91a1459e2b71e6e0acfa18517de321318f1ca3)) +- **assets:** fix typo in textcritics for m38 ([62eff2c](https://github.com/webern-unibas-ch/awg-app/commit/62eff2c9e132ac062cdbac2863d0fb471fb35e7a)) +- **assets:** fix typos in intro AWG I/5 ([9780252](https://github.com/webern-unibas-ch/awg-app/commit/9780252585afa940f8f5d8aa464349986630793b)) +- **assets:** make sources of intro navigable ([836ea8a](https://github.com/webern-unibas-ch/awg-app/commit/836ea8a73d4bd7947cec029483bf89eb4003424d)) +- **assets:** optimize svgs for m38 with SVGO ([af48f6a](https://github.com/webern-unibas-ch/awg-app/commit/af48f6a65a7000ccbda9892f0e638f574c2f5234)) +- **assets:** provide intro notes as blockNotes ([267aa0f](https://github.com/webern-unibas-ch/awg-app/commit/267aa0f7bac894dc7980e7d6740919a6b870f2f0)) +- **assets:** remove disclaimer for corrections of op25 ([9087bfc](https://github.com/webern-unibas-ch/awg-app/commit/9087bfccf7b5ef6d06193faafe0e68277f885050); thanks to [@masthom](https://github.com/masthom)) +- **assets:** remove side outlet from data ([d9421de](https://github.com/webern-unibas-ch/awg-app/commit/d9421de1b243c8f4b02e96de4c3368826e120d3e)) +- **assets:** remove unnecessary line break from intro AWG I/5 ([b0905bc](https://github.com/webern-unibas-ch/awg-app/commit/b0905bc0cd11c65694fa8c368924cb75ebc0e07f)) +- **assets:** small fixes in source descriptions AWG I/5 ([c520b4e](https://github.com/webern-unibas-ch/awg-app/commit/c520b4e20596a8a3924cd771ac69cb5bda5430fb); thanks to [@masthom](https://github.com/masthom)) +- **assets:** use glyphs for note values ([eb26661](https://github.com/webern-unibas-ch/awg-app/commit/eb26661b8b5c1838a60d24b44d4a729440e2f6cd)) +- **core:** mute search button on navbar ([53a1d90](https://github.com/webern-unibas-ch/awg-app/commit/53a1d90109bedf97b31ff38b110440592367f965)) +- **edition:** add complex to breadcrumb if given ([86857ec](https://github.com/webern-unibas-ch/awg-app/commit/86857ecd7feff170a0544c74f592a4d902810b48)) +- **edition:** add description to series overview ([c517895](https://github.com/webern-unibas-ch/awg-app/commit/c517895fe7d64187c7d9a1587a5fddba5fc6f9fd)) +- **edition:** add missing glyph for sfz ([d1d3c41](https://github.com/webern-unibas-ch/awg-app/commit/d1d3c4101bd9b2a86c2631fe6654e4a9161e0263)) +- **edition:** add missing glyphs for note values ([2d08ad1](https://github.com/webern-unibas-ch/awg-app/commit/2d08ad1286f55726d2972facd58933958f2e20dd)) +- **edition:** add missing glyphs for sf and sp ([7cebd28](https://github.com/webern-unibas-ch/awg-app/commit/7cebd281a186342154e04e2773e97d07e38ff475)) +- **edition:** don't display table if there are no corrections ([02bf591](https://github.com/webern-unibas-ch/awg-app/commit/02bf591abfd43ae21266dcb18d0c1b2f65e73b3c)) +- **edition:** finish formatting of intro AWG I/5 ([464e16e](https://github.com/webern-unibas-ch/awg-app/commit/464e16e1f20d7aca49ef0c16f00ad585c05d729b)) +- **edition:** fix check for section III/5 in outline model ([317c66d](https://github.com/webern-unibas-ch/awg-app/commit/317c66d2e0ea4ecae254e13b8f75c68895ccff4c)) +- **edition:** fix typo in textcritics for m38 ([c03ba8c](https://github.com/webern-unibas-ch/awg-app/commit/c03ba8c3c2ae6afe8e9d5fccb15a9f67205ef28f)) +- **edition:** improve wording in section detail disclaimer ([dc3ec09](https://github.com/webern-unibas-ch/awg-app/commit/dc3ec0986d431d868ff770493700785bd3f0d150)) +- **edition:** improve wording of section detail disclaimer ([b4f6ff2](https://github.com/webern-unibas-ch/awg-app/commit/b4f6ff253cce4921b4ef71605fb49f2a45d36f51)) +- **edition:** make footnotes of intro navigable ([57d575a](https://github.com/webern-unibas-ch/awg-app/commit/57d575a6b082c2e71f0ffcbe029718dcc6388d68)) +- **edition:** move intro parts into separate components ([7965435](https://github.com/webern-unibas-ch/awg-app/commit/79654355a70ce97c62145e79ca4013a590500889)) +- **edition:** move section detail overview into separate comp ([4dc7bd9](https://github.com/webern-unibas-ch/awg-app/commit/4dc7bd9e459e0a39702cb5f44e79d8c3a717d8c1)) +- **edition:** update series and section from edition complex too ([4b87cc6](https://github.com/webern-unibas-ch/awg-app/commit/4b87cc6520a078612e034bb45e26b46cf9c3b056)) +- **edition:** use solid icon for calendarX ([64df1f1](https://github.com/webern-unibas-ch/awg-app/commit/64df1f1f262fad2340a37abdfe5406b00996608f)) +- **home:** display sections instead of complexes in home-view ([261b97a](https://github.com/webern-unibas-ch/awg-app/commit/261b97a02040b9a73da7a6c0ad08a4af29824988)) +- **home:** link to doku page instead of compodoc ([c2707c9](https://github.com/webern-unibas-ch/awg-app/commit/c2707c9bd7c569826e75d8f28cfd87ec9941fc65)) +- **home:** update landing page content ([9053f3d](https://github.com/webern-unibas-ch/awg-app/commit/9053f3d8fe131c8694bdb0fb00a10c6d689fa207)) +- **side-info:** collapse section menus by default ([417d0a4](https://github.com/webern-unibas-ch/awg-app/commit/417d0a4d1380a97f9ef6db45656ab5e9a55a82f7)) +- **side-info:** open sections dynamically ([f02325b](https://github.com/webern-unibas-ch/awg-app/commit/f02325b40f27064cbc41a39b12046d3d0dca814d)) +- **structure:** replace SALSAH with DSP in structure-view ([b4dae1d](https://github.com/webern-unibas-ch/awg-app/commit/b4dae1d678f770b093dca3f72eb0b9c398f45412)) ### Code Refactoring -* **app:** rename routeToSidenav method ([889e4e4](https://github.com/webern-unibas-ch/awg-app/commit/889e4e447c55c4718ef62ccb8708f8961ceda3a9)) -* **core:** improve handling of navbar icons and labels ([d78e66b](https://github.com/webern-unibas-ch/awg-app/commit/d78e66b84e44f7059fc98958408caf6499cc542b)) -* **core:** unify naming of core data ([5a4b4cc](https://github.com/webern-unibas-ch/awg-app/commit/5a4b4cc6302f244412f4f17b85cb423ac889db24)) -* **edition:** adjust outline model to account for intro ([33fb9ed](https://github.com/webern-unibas-ch/awg-app/commit/33fb9ed0c4277951478dfd52c714b3611013c8af)) -* **edition:** adjust wording for headings and disclaimer ([ac82f9d](https://github.com/webern-unibas-ch/awg-app/commit/ac82f9d6799b8cb0adb70a20ab82d7cc6baf4d14)) -* **edition:** improve naming of intro scroll methods ([3a6e00b](https://github.com/webern-unibas-ch/awg-app/commit/3a6e00b88493d1f4f86647940549ccec4b13055b)) -* **edition:** improve wording of disclaimers ([90faae0](https://github.com/webern-unibas-ch/awg-app/commit/90faae0354c7ab8aea68181d37076e94e5d550b5)) -* **edition:** rename EditionIntroEmptyComponent ([e638f35](https://github.com/webern-unibas-ch/awg-app/commit/e638f3585cfdedaa17ba68e5b764240d804cedc1)) -* **edition:** rename EditionService -> EditionStateService ([4800f27](https://github.com/webern-unibas-ch/awg-app/commit/4800f27927180acae9aa206ea2ce4b441990a8a4)) -* **edition:** rename intro footnotes --> notes ([62a5e06](https://github.com/webern-unibas-ch/awg-app/commit/62a5e066c3a35f48147e174b635549657553baa1)) -* **edition:** reorganize edition view routing ([9152c8f](https://github.com/webern-unibas-ch/awg-app/commit/9152c8ffe03a0020b9d38194ec19d35b80d1c015)) -* **home:** move home cards into separate component ([8ce8dd7](https://github.com/webern-unibas-ch/awg-app/commit/8ce8dd7f9535aa138b7b73546d622749e7c1f3b0)) -* **shared:** move alert-info into separate component ([f55a6ff](https://github.com/webern-unibas-ch/awg-app/commit/f55a6ffde221a03a434e7ae2f65517c9fe2a8bfa)) -* **shared:** move language switcher into separate component ([7999eab](https://github.com/webern-unibas-ch/awg-app/commit/7999eab51dcdfa7a1e235eab5788e188fdfde391)) -* **shared:** rename AlertErrorComponent ([9cc9d76](https://github.com/webern-unibas-ch/awg-app/commit/9cc9d76b8073a7dcbd6db900d57bcaec5123c1ec)) - +- **app:** rename routeToSidenav method ([889e4e4](https://github.com/webern-unibas-ch/awg-app/commit/889e4e447c55c4718ef62ccb8708f8961ceda3a9)) +- **core:** improve handling of navbar icons and labels ([d78e66b](https://github.com/webern-unibas-ch/awg-app/commit/d78e66b84e44f7059fc98958408caf6499cc542b)) +- **core:** unify naming of core data ([5a4b4cc](https://github.com/webern-unibas-ch/awg-app/commit/5a4b4cc6302f244412f4f17b85cb423ac889db24)) +- **edition:** adjust outline model to account for intro ([33fb9ed](https://github.com/webern-unibas-ch/awg-app/commit/33fb9ed0c4277951478dfd52c714b3611013c8af)) +- **edition:** adjust wording for headings and disclaimer ([ac82f9d](https://github.com/webern-unibas-ch/awg-app/commit/ac82f9d6799b8cb0adb70a20ab82d7cc6baf4d14)) +- **edition:** improve naming of intro scroll methods ([3a6e00b](https://github.com/webern-unibas-ch/awg-app/commit/3a6e00b88493d1f4f86647940549ccec4b13055b)) +- **edition:** improve wording of disclaimers ([90faae0](https://github.com/webern-unibas-ch/awg-app/commit/90faae0354c7ab8aea68181d37076e94e5d550b5)) +- **edition:** rename EditionIntroEmptyComponent ([e638f35](https://github.com/webern-unibas-ch/awg-app/commit/e638f3585cfdedaa17ba68e5b764240d804cedc1)) +- **edition:** rename EditionService -> EditionStateService ([4800f27](https://github.com/webern-unibas-ch/awg-app/commit/4800f27927180acae9aa206ea2ce4b441990a8a4)) +- **edition:** rename intro footnotes --> notes ([62a5e06](https://github.com/webern-unibas-ch/awg-app/commit/62a5e066c3a35f48147e174b635549657553baa1)) +- **edition:** reorganize edition view routing ([9152c8f](https://github.com/webern-unibas-ch/awg-app/commit/9152c8ffe03a0020b9d38194ec19d35b80d1c015)) +- **home:** move home cards into separate component ([8ce8dd7](https://github.com/webern-unibas-ch/awg-app/commit/8ce8dd7f9535aa138b7b73546d622749e7c1f3b0)) +- **shared:** move alert-info into separate component ([f55a6ff](https://github.com/webern-unibas-ch/awg-app/commit/f55a6ffde221a03a434e7ae2f65517c9fe2a8bfa)) +- **shared:** move language switcher into separate component ([7999eab](https://github.com/webern-unibas-ch/awg-app/commit/7999eab51dcdfa7a1e235eab5788e188fdfde391)) +- **shared:** rename AlertErrorComponent ([9cc9d76](https://github.com/webern-unibas-ch/awg-app/commit/9cc9d76b8073a7dcbd6db900d57bcaec5123c1ec)) ### Tests -* **edition:** fix tests for intro components after changes ([4a6bccb](https://github.com/webern-unibas-ch/awg-app/commit/4a6bccb543d156baf6ae77bc6d06f030f5f9fc90)) -* **home:** fix tests after changes ([1aae98d](https://github.com/webern-unibas-ch/awg-app/commit/1aae98d4b751bf8939df76a081c3cc0f60606f1a)) -* **search:** fix tests after changes ([ccc2864](https://github.com/webern-unibas-ch/awg-app/commit/ccc2864574b735c0874e1c4ff473224470aa3bb1)) -* **side-info:** fix tests for EditionInfo after changes ([ef11d3a](https://github.com/webern-unibas-ch/awg-app/commit/ef11d3ab9720caf55de3b0116b694a3d7b34054f)) - +- **edition:** fix tests for intro components after changes ([4a6bccb](https://github.com/webern-unibas-ch/awg-app/commit/4a6bccb543d156baf6ae77bc6d06f030f5f9fc90)) +- **home:** fix tests after changes ([1aae98d](https://github.com/webern-unibas-ch/awg-app/commit/1aae98d4b751bf8939df76a081c3cc0f60606f1a)) +- **search:** fix tests after changes ([ccc2864](https://github.com/webern-unibas-ch/awg-app/commit/ccc2864574b735c0874e1c4ff473224470aa3bb1)) +- **side-info:** fix tests for EditionInfo after changes ([ef11d3a](https://github.com/webern-unibas-ch/awg-app/commit/ef11d3ab9720caf55de3b0116b694a3d7b34054f)) ### Documentation -* **README:** update project image ([1a5b9e6](https://github.com/webern-unibas-ch/awg-app/commit/1a5b9e6ce1ea05928326265734f8a306a400b0e8)) -* **shared:** add JSDocs to new AlertInfo class ([4a18a5e](https://github.com/webern-unibas-ch/awg-app/commit/4a18a5e9767789f88ba00fa3c8911a62ecded339)) - +- **README:** update project image ([1a5b9e6](https://github.com/webern-unibas-ch/awg-app/commit/1a5b9e6ce1ea05928326265734f8a306a400b0e8)) +- **shared:** add JSDocs to new AlertInfo class ([4a18a5e](https://github.com/webern-unibas-ch/awg-app/commit/4a18a5e9767789f88ba00fa3c8911a62ecded339)) ### Styles -* **app:** justify block text ([5b5b59b](https://github.com/webern-unibas-ch/awg-app/commit/5b5b59b70d4eeb2e71d7b3c2f4009862aa49f8ee)) -* **app:** swap display web font ([d00be32](https://github.com/webern-unibas-ch/awg-app/commit/d00be32e6ca5af0213041ede6a7ff17109623ffd)) -* **app:** unify layout of main view components ([5e96699](https://github.com/webern-unibas-ch/awg-app/commit/5e9669978f80c051d42aa3c1c95e5bbcec4cc90a)) -* **edition:** fix style for intro components ([204ea18](https://github.com/webern-unibas-ch/awg-app/commit/204ea18761041f291c98318de59f72b17fbd3203)) -* **edition:** highlight blockHeaders in tka tables ([d61482b](https://github.com/webern-unibas-ch/awg-app/commit/d61482b61f4db2d761f5a1b77f69d2425cc98bfa)) -* **edition:** improve display of corrections ([40dfe94](https://github.com/webern-unibas-ch/awg-app/commit/40dfe94d3cdeb947f54f4f4d3beb9f216b4a1e1b)) -* **edition:** improve responsivity of cover images ([57f67c7](https://github.com/webern-unibas-ch/awg-app/commit/57f67c7ee97877d3d43dc2fabaaea138d56b95bf)) -* **edition:** justify preface text ([343c277](https://github.com/webern-unibas-ch/awg-app/commit/343c2779533ab4d3d46e43d9d6f61fabc75ffdc3)) -* **edition:** remove bg-colors from intro helper classes ([4343fb7](https://github.com/webern-unibas-ch/awg-app/commit/4343fb787bf7477ea9034abb5a9a76d857d6f1e4)) -* **home:** stretch links of home view cards ([ea0a657](https://github.com/webern-unibas-ch/awg-app/commit/ea0a6571966930b0678d706d22d9290b98823c32)) -* **page-not-found:** improve styling ([5559862](https://github.com/webern-unibas-ch/awg-app/commit/5559862c87edf163368ca15bc8abd11d806c9b45)) - +- **app:** justify block text ([5b5b59b](https://github.com/webern-unibas-ch/awg-app/commit/5b5b59b70d4eeb2e71d7b3c2f4009862aa49f8ee)) +- **app:** swap display web font ([d00be32](https://github.com/webern-unibas-ch/awg-app/commit/d00be32e6ca5af0213041ede6a7ff17109623ffd)) +- **app:** unify layout of main view components ([5e96699](https://github.com/webern-unibas-ch/awg-app/commit/5e9669978f80c051d42aa3c1c95e5bbcec4cc90a)) +- **edition:** fix style for intro components ([204ea18](https://github.com/webern-unibas-ch/awg-app/commit/204ea18761041f291c98318de59f72b17fbd3203)) +- **edition:** highlight blockHeaders in tka tables ([d61482b](https://github.com/webern-unibas-ch/awg-app/commit/d61482b61f4db2d761f5a1b77f69d2425cc98bfa)) +- **edition:** improve display of corrections ([40dfe94](https://github.com/webern-unibas-ch/awg-app/commit/40dfe94d3cdeb947f54f4f4d3beb9f216b4a1e1b)) +- **edition:** improve responsivity of cover images ([57f67c7](https://github.com/webern-unibas-ch/awg-app/commit/57f67c7ee97877d3d43dc2fabaaea138d56b95bf)) +- **edition:** justify preface text ([343c277](https://github.com/webern-unibas-ch/awg-app/commit/343c2779533ab4d3d46e43d9d6f61fabc75ffdc3)) +- **edition:** remove bg-colors from intro helper classes ([4343fb7](https://github.com/webern-unibas-ch/awg-app/commit/4343fb787bf7477ea9034abb5a9a76d857d6f1e4)) +- **home:** stretch links of home view cards ([ea0a657](https://github.com/webern-unibas-ch/awg-app/commit/ea0a6571966930b0678d706d22d9290b98823c32)) +- **page-not-found:** improve styling ([5559862](https://github.com/webern-unibas-ch/awg-app/commit/5559862c87edf163368ca15bc8abd11d806c9b45)) ### Build System -* **deps-dev:** bump @compodoc/compodoc from 1.1.25 to 1.1.26 ([c99aba1](https://github.com/webern-unibas-ch/awg-app/commit/c99aba19b2646d1959e46acb72e1fd43f4b72246)) -* **deps-dev:** bump angular-cli-ghpages from 2.0.1 to 2.0.3 ([c0c965b](https://github.com/webern-unibas-ch/awg-app/commit/c0c965b24bf7bd93296d142f18000953af5bb678)) -* **deps-dev:** bump commit-and-tag-version from 12.4.1 to 12.4.2 ([453d6f3](https://github.com/webern-unibas-ch/awg-app/commit/453d6f3164a331b5dd012a5f7685bba55357e258)) -* **deps-dev:** bump commit-and-tag-version from 12.4.2 to 12.4.3 ([a55f678](https://github.com/webern-unibas-ch/awg-app/commit/a55f678103afcb9400712bc76057d635bd7085ec)) -* **deps-dev:** bump commit-and-tag-version from 12.4.3 to 12.4.4 ([c0cc93f](https://github.com/webern-unibas-ch/awg-app/commit/c0cc93f3bcfbf3038f3eecc3b77925b0a3a50cd6)) -* **deps-dev:** bump commit-and-tag-version from 12.4.4 to 12.5.0 ([9f2abfc](https://github.com/webern-unibas-ch/awg-app/commit/9f2abfc05d93f1a7a2d0b8ddacdc860d5cec1c16)) -* **deps-dev:** bump eslint-plugin-import from 2.29.1 to 2.30.0 ([486f7e9](https://github.com/webern-unibas-ch/awg-app/commit/486f7e934e636b6ac3af29a5434ec443dc986368)) -* **deps-dev:** bump eslint-plugin-import from 2.30.0 to 2.31.0 ([0d0ef06](https://github.com/webern-unibas-ch/awg-app/commit/0d0ef0630f4cdef992c04b9d9d2a520159901344)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.2 to 50.2.3 ([e640d63](https://github.com/webern-unibas-ch/awg-app/commit/e640d63aed133a4795cb721b5e89ffd20f9b3f22)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 ([e0c28ea](https://github.com/webern-unibas-ch/awg-app/commit/e0c28ea3bfdc7e6d509bfe42456c5dfd9fa645e4)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.4 to 50.2.5 ([1ad6cbd](https://github.com/webern-unibas-ch/awg-app/commit/1ad6cbdbaff0c959fb0399208dceb18d6e96864b)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.2.5 to 50.3.0 ([0d70055](https://github.com/webern-unibas-ch/awg-app/commit/0d70055cc12529d56311f6dee29f012bc6a9fb12)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 ([110a2de](https://github.com/webern-unibas-ch/awg-app/commit/110a2de552c70c00de602ccff3eabf42677abe82)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.3.1 to 50.4.0 ([1de101f](https://github.com/webern-unibas-ch/awg-app/commit/1de101f3371c41cda476af2dcfab3f2047d4bd17)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.4.0 to 50.4.1 ([28243f6](https://github.com/webern-unibas-ch/awg-app/commit/28243f620f35fb6199520479156a5bc75bf67b0c)) -* **deps-dev:** bump eslint-plugin-jsdoc from 50.4.1 to 50.4.3 ([709259b](https://github.com/webern-unibas-ch/awg-app/commit/709259b15b85acfdfc02a241687823a3bd799031)) -* **deps-dev:** bump husky from 9.1.4 to 9.1.5 ([0c7b7a1](https://github.com/webern-unibas-ch/awg-app/commit/0c7b7a1dc5033f86f98ae137dde6ec93e824f29f)) -* **deps-dev:** bump husky from 9.1.5 to 9.1.6 ([375a190](https://github.com/webern-unibas-ch/awg-app/commit/375a19098d0f20e07dbe409b3191c02e697f53da)) -* **deps-dev:** bump jasmine-core from 5.2.0 to 5.3.0 ([994b48b](https://github.com/webern-unibas-ch/awg-app/commit/994b48b212e3484a44c916b321b694689e5044aa)) -* **deps-dev:** bump jasmine-core from 5.3.0 to 5.4.0 ([cb7cdd8](https://github.com/webern-unibas-ch/awg-app/commit/cb7cdd84ac24a3d3754467adc3f82408ea19643d)) -* **deps-dev:** bump lint-staged from 15.2.9 to 15.2.10 ([f60bc07](https://github.com/webern-unibas-ch/awg-app/commit/f60bc07f238009056fa16826b67db289ef76c0d8)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([60915df](https://github.com/webern-unibas-ch/awg-app/commit/60915dfdcf7f5f17746fd9cdb59cf18531285214)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([ba4ac9f](https://github.com/webern-unibas-ch/awg-app/commit/ba4ac9f809906c131efe58e71ef781a1bbbe48ed)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([5622c9c](https://github.com/webern-unibas-ch/awg-app/commit/5622c9cd5eebe1f3083a0ddbc75cb63e019bd240)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([aa7dc82](https://github.com/webern-unibas-ch/awg-app/commit/aa7dc82cd82aef0fcbd0268fb61c783598c18e1e)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([abbdcb1](https://github.com/webern-unibas-ch/awg-app/commit/abbdcb1af23817cf28e732e1841d7f34b7f222ef)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([b883d76](https://github.com/webern-unibas-ch/awg-app/commit/b883d76739f865e3b23107a26fee9dde688054df)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f7e2c33](https://github.com/webern-unibas-ch/awg-app/commit/f7e2c3361ff9a7106b84aa3dace2f78e7bfca4cd)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([9b378ed](https://github.com/webern-unibas-ch/awg-app/commit/9b378edf6f922cf9673411919be07c86b0de725e)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f91b3b6](https://github.com/webern-unibas-ch/awg-app/commit/f91b3b6b28c3ad8fde935125ce2af9404bb1b0e8)) -* **deps-dev:** bump the angular-cli-devkit group with 2 updates ([3670f3f](https://github.com/webern-unibas-ch/awg-app/commit/3670f3f9139f07bcf2f8d3c11c77e48b62db6ae3)) -* **deps-dev:** bump the angular-eslint group with 5 updates ([75f9e80](https://github.com/webern-unibas-ch/awg-app/commit/75f9e80be6df5165da9057ce60c986eb09664e53)) -* **deps-dev:** bump the angular-eslint group with 5 updates ([82910f1](https://github.com/webern-unibas-ch/awg-app/commit/82910f19bf0412db4f3fced80e781c29913abfd3)) -* **deps-dev:** bump the commitlint group with 2 updates ([1720367](https://github.com/webern-unibas-ch/awg-app/commit/1720367ee6fc4b153efaeaa7639381eb98c2f893)) -* **deps-dev:** bump the commitlint group with 2 updates ([8869fbb](https://github.com/webern-unibas-ch/awg-app/commit/8869fbb30244e9dda883610e0d1eda7baf478229)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([39b042e](https://github.com/webern-unibas-ch/awg-app/commit/39b042ed329fc96747a76eb8f9be041eeefc5f66)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([3e54644](https://github.com/webern-unibas-ch/awg-app/commit/3e5464459c5346d43bad497936df6c70d2002db3)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([2865d33](https://github.com/webern-unibas-ch/awg-app/commit/2865d33e87e886ceef45c55c07b18decd7324871)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([7fc0dfd](https://github.com/webern-unibas-ch/awg-app/commit/7fc0dfda02764828fd31f76913fe68a806a26cbb)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([c1e7244](https://github.com/webern-unibas-ch/awg-app/commit/c1e7244217aa7689948e1c538a31506a502d4bcd)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([7bfe627](https://github.com/webern-unibas-ch/awg-app/commit/7bfe627efdb04fd9d3dd96adf2d353b87207d7fd)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([3c11cb8](https://github.com/webern-unibas-ch/awg-app/commit/3c11cb81bbc051763aa9a6f72bbd81428729e5d8)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([23fa261](https://github.com/webern-unibas-ch/awg-app/commit/23fa2617b1af8a5d275c11d436ad4c0a0185e379)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([5fb8d75](https://github.com/webern-unibas-ch/awg-app/commit/5fb8d75ed31706e8a4f4e1ddd7da8c9af6f77660)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([d5eecba](https://github.com/webern-unibas-ch/awg-app/commit/d5eecba3ffe5b5128a64c32d2b5c90d58e74402f)) -* **deps-dev:** bump the typescript-eslint group with 2 updates ([7d5141b](https://github.com/webern-unibas-ch/awg-app/commit/7d5141b8c37ef8837ace5fd47cd7940b7df7caf4)) -* **deps:** add fontawesome regular svg icons ([bda78bb](https://github.com/webern-unibas-ch/awg-app/commit/bda78bb4ec8bbc783578d19922bd33ffb9713fcd)) -* **deps:** bump @ng-bootstrap/ng-bootstrap from 17.0.0 to 17.0.1 ([3b81441](https://github.com/webern-unibas-ch/awg-app/commit/3b81441558865920951c84d5c33d72d445a435a2)) -* **deps:** bump actions/checkout from 4.1.7 to 4.2.0 ([30866b3](https://github.com/webern-unibas-ch/awg-app/commit/30866b3f020f52e9ad41645a54de9f86874ac481)) -* **deps:** bump actions/checkout from 4.2.0 to 4.2.1 ([9e27174](https://github.com/webern-unibas-ch/awg-app/commit/9e27174fa26c9196fbd79796cf45f9059b0c9564)) -* **deps:** bump actions/checkout from 4.2.1 to 4.2.2 ([90a0530](https://github.com/webern-unibas-ch/awg-app/commit/90a053082ff300aa4706d676f0eac8db1634e51c)) -* **deps:** bump actions/dependency-review-action from 4.3.4 to 4.3.5 ([861f203](https://github.com/webern-unibas-ch/awg-app/commit/861f203f04ae6cbed959314429228653510a1a09)) -* **deps:** bump actions/setup-node from 4.0.3 to 4.0.4 ([1651f83](https://github.com/webern-unibas-ch/awg-app/commit/1651f8370b0f5affb3ff7198fa7acf9a70064153)) -* **deps:** bump actions/setup-node from 4.0.4 to 4.1.0 ([182332a](https://github.com/webern-unibas-ch/awg-app/commit/182332a784811cbdb48a70dc9302d1d1765289a4)) -* **deps:** bump actions/upload-artifact from 4.3.6 to 4.4.0 ([13eb56d](https://github.com/webern-unibas-ch/awg-app/commit/13eb56d0ee8f47c6a3fdc37d6540f21bef46eb65)) -* **deps:** bump actions/upload-artifact from 4.4.0 to 4.4.2 ([337c221](https://github.com/webern-unibas-ch/awg-app/commit/337c221b93d4a30262fa9393e31efc4801b805c4)) -* **deps:** bump actions/upload-artifact from 4.4.2 to 4.4.3 ([42102f3](https://github.com/webern-unibas-ch/awg-app/commit/42102f36b32ec2f6fddf6b581cc06be45b1ef850)) -* **deps:** bump body-parser from 1.20.2 to 1.20.3 ([1d26dcd](https://github.com/webern-unibas-ch/awg-app/commit/1d26dcd7ebdefd39c76a7393a647e0ff5a24190f)) -* **deps:** bump codecov/codecov-action from 4.5.0 to 4.6.0 ([c0651ae](https://github.com/webern-unibas-ch/awg-app/commit/c0651ae5207859a400980e248d2323ee9072d1fe)) -* **deps:** bump express from 4.19.2 to 4.20.0 ([31276cd](https://github.com/webern-unibas-ch/awg-app/commit/31276cd906171835364eaf8faf3ef739cc19d25b)) -* **deps:** bump github/codeql-action from 3.26.10 to 3.26.11 ([c0900fd](https://github.com/webern-unibas-ch/awg-app/commit/c0900fd2c08f9d4599b8db5077ec0bd7684a477f)) -* **deps:** bump github/codeql-action from 3.26.11 to 3.26.12 ([097f982](https://github.com/webern-unibas-ch/awg-app/commit/097f9827ec3ffef5514a54a1864bcf344165720c)) -* **deps:** bump github/codeql-action from 3.26.12 to 3.26.13 ([c51506c](https://github.com/webern-unibas-ch/awg-app/commit/c51506c32a00a7db87b0c62d2cb30a5e4bf22ee6)) -* **deps:** bump github/codeql-action from 3.26.13 to 3.27.0 ([40af3b3](https://github.com/webern-unibas-ch/awg-app/commit/40af3b32b0969f898c93062eee5fe1df6fda74dc)) -* **deps:** bump github/codeql-action from 3.26.2 to 3.26.3 ([331426e](https://github.com/webern-unibas-ch/awg-app/commit/331426e8db01b8b084bf11b6225c6dbd8bdbc47a)) -* **deps:** bump github/codeql-action from 3.26.3 to 3.26.4 ([7c744e6](https://github.com/webern-unibas-ch/awg-app/commit/7c744e660d1464947788ca5f990b073f7a98b277)) -* **deps:** bump github/codeql-action from 3.26.4 to 3.26.5 ([00ea16d](https://github.com/webern-unibas-ch/awg-app/commit/00ea16d63a08a2b2950b5200858a58897741484a)) -* **deps:** bump github/codeql-action from 3.26.5 to 3.26.6 ([6e92f38](https://github.com/webern-unibas-ch/awg-app/commit/6e92f388328e3a1018eca8b058b1e2e0fea49b84)) -* **deps:** bump github/codeql-action from 3.26.6 to 3.26.7 ([6d60b1c](https://github.com/webern-unibas-ch/awg-app/commit/6d60b1c7853ade162e0ced27c3ceefc7d2d8ea9f)) -* **deps:** bump github/codeql-action from 3.26.7 to 3.26.8 ([93f13d0](https://github.com/webern-unibas-ch/awg-app/commit/93f13d0594ffe5574f268fa3cf5450f5061d19c7)) -* **deps:** bump github/codeql-action from 3.26.8 to 3.26.9 ([474070a](https://github.com/webern-unibas-ch/awg-app/commit/474070aa5908fc8fbc54b860df5bf6173c5d1ad2)) -* **deps:** bump github/codeql-action from 3.26.9 to 3.26.10 ([2615d0b](https://github.com/webern-unibas-ch/awg-app/commit/2615d0b12ce6cdc8d633c2c54e4160c3bcbfe527)) -* **deps:** bump http-proxy-middleware from 2.0.6 to 2.0.7 ([d3b9048](https://github.com/webern-unibas-ch/awg-app/commit/d3b90484c681843166728df051e0228fb1fe15db)) -* **deps:** bump micromatch from 4.0.7 to 4.0.8 ([edfeebe](https://github.com/webern-unibas-ch/awg-app/commit/edfeebe9f5cd92b9e9b6722320df52374add9229)) -* **deps:** bump n3 from 1.20.4 to 1.21.0 ([e91ca31](https://github.com/webern-unibas-ch/awg-app/commit/e91ca311105bc11ca148da12ff351f94fd1541ce)) -* **deps:** bump n3 from 1.21.0 to 1.21.1 ([105a74c](https://github.com/webern-unibas-ch/awg-app/commit/105a74c5b4840caa2c8bcf67569d5cdecbd71427)) -* **deps:** bump n3 from 1.21.1 to 1.22.0 ([7749846](https://github.com/webern-unibas-ch/awg-app/commit/7749846c6937389c4d7f3f500df48c62f168998f)) -* **deps:** bump n3 from 1.22.0 to 1.22.1 ([45445b0](https://github.com/webern-unibas-ch/awg-app/commit/45445b0dfdc7df06f11417717e2f32ae50709972)) -* **deps:** bump n3 from 1.22.1 to 1.22.3 ([9551bbd](https://github.com/webern-unibas-ch/awg-app/commit/9551bbd438b49c6a44f6a8ac118281f3047310f3)) -* **deps:** bump rdfstore from v0.9.18-alpha.16 to v0.9.18-alpha.17 ([500b47e](https://github.com/webern-unibas-ch/awg-app/commit/500b47eb4184c6c7607cdbe0e4cae736b833ad41)) -* **deps:** bump rollup from 4.22.0 to 4.22.4 ([6d65df8](https://github.com/webern-unibas-ch/awg-app/commit/6d65df81b5ca910a18fadbbe8c333fedc24a06a6)) -* **deps:** bump SonarSource/sonarcloud-github-action ([6e2fa81](https://github.com/webern-unibas-ch/awg-app/commit/6e2fa811039a69d1e90a41b290e12ee653d66040)) -* **deps:** bump SonarSource/sonarcloud-github-action ([883e23f](https://github.com/webern-unibas-ch/awg-app/commit/883e23fc8a5e41d0d38dd8743e49cce4fee2b271)) -* **deps:** bump step-security/harden-runner from 2.9.1 to 2.10.1 ([dfba1df](https://github.com/webern-unibas-ch/awg-app/commit/dfba1df6721ee4b3cce89181354ca1a4d2f2bb20)) -* **deps:** bump the angular group with 11 updates ([322139f](https://github.com/webern-unibas-ch/awg-app/commit/322139f9607d5f52e6de8d23cf36dfb18f9e1f67)) -* **deps:** bump the angular group with 11 updates ([f6447e3](https://github.com/webern-unibas-ch/awg-app/commit/f6447e3d2a325dec1079518981816d89907bede1)) -* **deps:** bump the angular group with 11 updates ([1d18b4d](https://github.com/webern-unibas-ch/awg-app/commit/1d18b4db5228dc51edd6863c0aed8e732505097f)) -* **deps:** bump the angular group with 11 updates ([005107f](https://github.com/webern-unibas-ch/awg-app/commit/005107f5a012bbf417dbd85fe3828a9406cadfe3)) -* **deps:** bump the angular group with 11 updates ([75ce249](https://github.com/webern-unibas-ch/awg-app/commit/75ce2493dedbbd78ad3a30033a82d43d2eae18e0)) -* **deps:** bump the angular group with 11 updates ([77a68bd](https://github.com/webern-unibas-ch/awg-app/commit/77a68bd326a06ece38151a8161293897e5f3a782)) -* **deps:** bump the angular group with 11 updates ([d7489a3](https://github.com/webern-unibas-ch/awg-app/commit/d7489a3708c6aa5be85337089e623e3d874fb70a)) -* **deps:** bump the angular group with 11 updates ([0602b82](https://github.com/webern-unibas-ch/awg-app/commit/0602b82c16125c3fc96cec61ec4b52b3a7719a3b)) -* **deps:** bump the angular group with 11 updates ([b3d7069](https://github.com/webern-unibas-ch/awg-app/commit/b3d7069fd5039ce48d7b77096fb2bae1e8c20e51)) -* **deps:** bump tslib from 2.6.3 to 2.7.0 ([504ca75](https://github.com/webern-unibas-ch/awg-app/commit/504ca75a95aa037f868c4c43b5726068020d8ad9)) -* **shared:** activate NgbPopoverModule ([66158cf](https://github.com/webern-unibas-ch/awg-app/commit/66158cf22d0ac249f579de444ccd588af02fdb7f)) +- **deps-dev:** bump @compodoc/compodoc from 1.1.25 to 1.1.26 ([c99aba1](https://github.com/webern-unibas-ch/awg-app/commit/c99aba19b2646d1959e46acb72e1fd43f4b72246)) +- **deps-dev:** bump angular-cli-ghpages from 2.0.1 to 2.0.3 ([c0c965b](https://github.com/webern-unibas-ch/awg-app/commit/c0c965b24bf7bd93296d142f18000953af5bb678)) +- **deps-dev:** bump commit-and-tag-version from 12.4.1 to 12.4.2 ([453d6f3](https://github.com/webern-unibas-ch/awg-app/commit/453d6f3164a331b5dd012a5f7685bba55357e258)) +- **deps-dev:** bump commit-and-tag-version from 12.4.2 to 12.4.3 ([a55f678](https://github.com/webern-unibas-ch/awg-app/commit/a55f678103afcb9400712bc76057d635bd7085ec)) +- **deps-dev:** bump commit-and-tag-version from 12.4.3 to 12.4.4 ([c0cc93f](https://github.com/webern-unibas-ch/awg-app/commit/c0cc93f3bcfbf3038f3eecc3b77925b0a3a50cd6)) +- **deps-dev:** bump commit-and-tag-version from 12.4.4 to 12.5.0 ([9f2abfc](https://github.com/webern-unibas-ch/awg-app/commit/9f2abfc05d93f1a7a2d0b8ddacdc860d5cec1c16)) +- **deps-dev:** bump eslint-plugin-import from 2.29.1 to 2.30.0 ([486f7e9](https://github.com/webern-unibas-ch/awg-app/commit/486f7e934e636b6ac3af29a5434ec443dc986368)) +- **deps-dev:** bump eslint-plugin-import from 2.30.0 to 2.31.0 ([0d0ef06](https://github.com/webern-unibas-ch/awg-app/commit/0d0ef0630f4cdef992c04b9d9d2a520159901344)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.2.2 to 50.2.3 ([e640d63](https://github.com/webern-unibas-ch/awg-app/commit/e640d63aed133a4795cb721b5e89ffd20f9b3f22)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 ([e0c28ea](https://github.com/webern-unibas-ch/awg-app/commit/e0c28ea3bfdc7e6d509bfe42456c5dfd9fa645e4)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.2.4 to 50.2.5 ([1ad6cbd](https://github.com/webern-unibas-ch/awg-app/commit/1ad6cbdbaff0c959fb0399208dceb18d6e96864b)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.2.5 to 50.3.0 ([0d70055](https://github.com/webern-unibas-ch/awg-app/commit/0d70055cc12529d56311f6dee29f012bc6a9fb12)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 ([110a2de](https://github.com/webern-unibas-ch/awg-app/commit/110a2de552c70c00de602ccff3eabf42677abe82)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.3.1 to 50.4.0 ([1de101f](https://github.com/webern-unibas-ch/awg-app/commit/1de101f3371c41cda476af2dcfab3f2047d4bd17)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.4.0 to 50.4.1 ([28243f6](https://github.com/webern-unibas-ch/awg-app/commit/28243f620f35fb6199520479156a5bc75bf67b0c)) +- **deps-dev:** bump eslint-plugin-jsdoc from 50.4.1 to 50.4.3 ([709259b](https://github.com/webern-unibas-ch/awg-app/commit/709259b15b85acfdfc02a241687823a3bd799031)) +- **deps-dev:** bump husky from 9.1.4 to 9.1.5 ([0c7b7a1](https://github.com/webern-unibas-ch/awg-app/commit/0c7b7a1dc5033f86f98ae137dde6ec93e824f29f)) +- **deps-dev:** bump husky from 9.1.5 to 9.1.6 ([375a190](https://github.com/webern-unibas-ch/awg-app/commit/375a19098d0f20e07dbe409b3191c02e697f53da)) +- **deps-dev:** bump jasmine-core from 5.2.0 to 5.3.0 ([994b48b](https://github.com/webern-unibas-ch/awg-app/commit/994b48b212e3484a44c916b321b694689e5044aa)) +- **deps-dev:** bump jasmine-core from 5.3.0 to 5.4.0 ([cb7cdd8](https://github.com/webern-unibas-ch/awg-app/commit/cb7cdd84ac24a3d3754467adc3f82408ea19643d)) +- **deps-dev:** bump lint-staged from 15.2.9 to 15.2.10 ([f60bc07](https://github.com/webern-unibas-ch/awg-app/commit/f60bc07f238009056fa16826b67db289ef76c0d8)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([60915df](https://github.com/webern-unibas-ch/awg-app/commit/60915dfdcf7f5f17746fd9cdb59cf18531285214)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([ba4ac9f](https://github.com/webern-unibas-ch/awg-app/commit/ba4ac9f809906c131efe58e71ef781a1bbbe48ed)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([5622c9c](https://github.com/webern-unibas-ch/awg-app/commit/5622c9cd5eebe1f3083a0ddbc75cb63e019bd240)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([aa7dc82](https://github.com/webern-unibas-ch/awg-app/commit/aa7dc82cd82aef0fcbd0268fb61c783598c18e1e)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([abbdcb1](https://github.com/webern-unibas-ch/awg-app/commit/abbdcb1af23817cf28e732e1841d7f34b7f222ef)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([b883d76](https://github.com/webern-unibas-ch/awg-app/commit/b883d76739f865e3b23107a26fee9dde688054df)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f7e2c33](https://github.com/webern-unibas-ch/awg-app/commit/f7e2c3361ff9a7106b84aa3dace2f78e7bfca4cd)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([9b378ed](https://github.com/webern-unibas-ch/awg-app/commit/9b378edf6f922cf9673411919be07c86b0de725e)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([f91b3b6](https://github.com/webern-unibas-ch/awg-app/commit/f91b3b6b28c3ad8fde935125ce2af9404bb1b0e8)) +- **deps-dev:** bump the angular-cli-devkit group with 2 updates ([3670f3f](https://github.com/webern-unibas-ch/awg-app/commit/3670f3f9139f07bcf2f8d3c11c77e48b62db6ae3)) +- **deps-dev:** bump the angular-eslint group with 5 updates ([75f9e80](https://github.com/webern-unibas-ch/awg-app/commit/75f9e80be6df5165da9057ce60c986eb09664e53)) +- **deps-dev:** bump the angular-eslint group with 5 updates ([82910f1](https://github.com/webern-unibas-ch/awg-app/commit/82910f19bf0412db4f3fced80e781c29913abfd3)) +- **deps-dev:** bump the commitlint group with 2 updates ([1720367](https://github.com/webern-unibas-ch/awg-app/commit/1720367ee6fc4b153efaeaa7639381eb98c2f893)) +- **deps-dev:** bump the commitlint group with 2 updates ([8869fbb](https://github.com/webern-unibas-ch/awg-app/commit/8869fbb30244e9dda883610e0d1eda7baf478229)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([39b042e](https://github.com/webern-unibas-ch/awg-app/commit/39b042ed329fc96747a76eb8f9be041eeefc5f66)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([3e54644](https://github.com/webern-unibas-ch/awg-app/commit/3e5464459c5346d43bad497936df6c70d2002db3)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([2865d33](https://github.com/webern-unibas-ch/awg-app/commit/2865d33e87e886ceef45c55c07b18decd7324871)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([7fc0dfd](https://github.com/webern-unibas-ch/awg-app/commit/7fc0dfda02764828fd31f76913fe68a806a26cbb)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([c1e7244](https://github.com/webern-unibas-ch/awg-app/commit/c1e7244217aa7689948e1c538a31506a502d4bcd)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([7bfe627](https://github.com/webern-unibas-ch/awg-app/commit/7bfe627efdb04fd9d3dd96adf2d353b87207d7fd)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([3c11cb8](https://github.com/webern-unibas-ch/awg-app/commit/3c11cb81bbc051763aa9a6f72bbd81428729e5d8)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([23fa261](https://github.com/webern-unibas-ch/awg-app/commit/23fa2617b1af8a5d275c11d436ad4c0a0185e379)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([5fb8d75](https://github.com/webern-unibas-ch/awg-app/commit/5fb8d75ed31706e8a4f4e1ddd7da8c9af6f77660)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([d5eecba](https://github.com/webern-unibas-ch/awg-app/commit/d5eecba3ffe5b5128a64c32d2b5c90d58e74402f)) +- **deps-dev:** bump the typescript-eslint group with 2 updates ([7d5141b](https://github.com/webern-unibas-ch/awg-app/commit/7d5141b8c37ef8837ace5fd47cd7940b7df7caf4)) +- **deps:** add fontawesome regular svg icons ([bda78bb](https://github.com/webern-unibas-ch/awg-app/commit/bda78bb4ec8bbc783578d19922bd33ffb9713fcd)) +- **deps:** bump @ng-bootstrap/ng-bootstrap from 17.0.0 to 17.0.1 ([3b81441](https://github.com/webern-unibas-ch/awg-app/commit/3b81441558865920951c84d5c33d72d445a435a2)) +- **deps:** bump actions/checkout from 4.1.7 to 4.2.0 ([30866b3](https://github.com/webern-unibas-ch/awg-app/commit/30866b3f020f52e9ad41645a54de9f86874ac481)) +- **deps:** bump actions/checkout from 4.2.0 to 4.2.1 ([9e27174](https://github.com/webern-unibas-ch/awg-app/commit/9e27174fa26c9196fbd79796cf45f9059b0c9564)) +- **deps:** bump actions/checkout from 4.2.1 to 4.2.2 ([90a0530](https://github.com/webern-unibas-ch/awg-app/commit/90a053082ff300aa4706d676f0eac8db1634e51c)) +- **deps:** bump actions/dependency-review-action from 4.3.4 to 4.3.5 ([861f203](https://github.com/webern-unibas-ch/awg-app/commit/861f203f04ae6cbed959314429228653510a1a09)) +- **deps:** bump actions/setup-node from 4.0.3 to 4.0.4 ([1651f83](https://github.com/webern-unibas-ch/awg-app/commit/1651f8370b0f5affb3ff7198fa7acf9a70064153)) +- **deps:** bump actions/setup-node from 4.0.4 to 4.1.0 ([182332a](https://github.com/webern-unibas-ch/awg-app/commit/182332a784811cbdb48a70dc9302d1d1765289a4)) +- **deps:** bump actions/upload-artifact from 4.3.6 to 4.4.0 ([13eb56d](https://github.com/webern-unibas-ch/awg-app/commit/13eb56d0ee8f47c6a3fdc37d6540f21bef46eb65)) +- **deps:** bump actions/upload-artifact from 4.4.0 to 4.4.2 ([337c221](https://github.com/webern-unibas-ch/awg-app/commit/337c221b93d4a30262fa9393e31efc4801b805c4)) +- **deps:** bump actions/upload-artifact from 4.4.2 to 4.4.3 ([42102f3](https://github.com/webern-unibas-ch/awg-app/commit/42102f36b32ec2f6fddf6b581cc06be45b1ef850)) +- **deps:** bump body-parser from 1.20.2 to 1.20.3 ([1d26dcd](https://github.com/webern-unibas-ch/awg-app/commit/1d26dcd7ebdefd39c76a7393a647e0ff5a24190f)) +- **deps:** bump codecov/codecov-action from 4.5.0 to 4.6.0 ([c0651ae](https://github.com/webern-unibas-ch/awg-app/commit/c0651ae5207859a400980e248d2323ee9072d1fe)) +- **deps:** bump express from 4.19.2 to 4.20.0 ([31276cd](https://github.com/webern-unibas-ch/awg-app/commit/31276cd906171835364eaf8faf3ef739cc19d25b)) +- **deps:** bump github/codeql-action from 3.26.10 to 3.26.11 ([c0900fd](https://github.com/webern-unibas-ch/awg-app/commit/c0900fd2c08f9d4599b8db5077ec0bd7684a477f)) +- **deps:** bump github/codeql-action from 3.26.11 to 3.26.12 ([097f982](https://github.com/webern-unibas-ch/awg-app/commit/097f9827ec3ffef5514a54a1864bcf344165720c)) +- **deps:** bump github/codeql-action from 3.26.12 to 3.26.13 ([c51506c](https://github.com/webern-unibas-ch/awg-app/commit/c51506c32a00a7db87b0c62d2cb30a5e4bf22ee6)) +- **deps:** bump github/codeql-action from 3.26.13 to 3.27.0 ([40af3b3](https://github.com/webern-unibas-ch/awg-app/commit/40af3b32b0969f898c93062eee5fe1df6fda74dc)) +- **deps:** bump github/codeql-action from 3.26.2 to 3.26.3 ([331426e](https://github.com/webern-unibas-ch/awg-app/commit/331426e8db01b8b084bf11b6225c6dbd8bdbc47a)) +- **deps:** bump github/codeql-action from 3.26.3 to 3.26.4 ([7c744e6](https://github.com/webern-unibas-ch/awg-app/commit/7c744e660d1464947788ca5f990b073f7a98b277)) +- **deps:** bump github/codeql-action from 3.26.4 to 3.26.5 ([00ea16d](https://github.com/webern-unibas-ch/awg-app/commit/00ea16d63a08a2b2950b5200858a58897741484a)) +- **deps:** bump github/codeql-action from 3.26.5 to 3.26.6 ([6e92f38](https://github.com/webern-unibas-ch/awg-app/commit/6e92f388328e3a1018eca8b058b1e2e0fea49b84)) +- **deps:** bump github/codeql-action from 3.26.6 to 3.26.7 ([6d60b1c](https://github.com/webern-unibas-ch/awg-app/commit/6d60b1c7853ade162e0ced27c3ceefc7d2d8ea9f)) +- **deps:** bump github/codeql-action from 3.26.7 to 3.26.8 ([93f13d0](https://github.com/webern-unibas-ch/awg-app/commit/93f13d0594ffe5574f268fa3cf5450f5061d19c7)) +- **deps:** bump github/codeql-action from 3.26.8 to 3.26.9 ([474070a](https://github.com/webern-unibas-ch/awg-app/commit/474070aa5908fc8fbc54b860df5bf6173c5d1ad2)) +- **deps:** bump github/codeql-action from 3.26.9 to 3.26.10 ([2615d0b](https://github.com/webern-unibas-ch/awg-app/commit/2615d0b12ce6cdc8d633c2c54e4160c3bcbfe527)) +- **deps:** bump http-proxy-middleware from 2.0.6 to 2.0.7 ([d3b9048](https://github.com/webern-unibas-ch/awg-app/commit/d3b90484c681843166728df051e0228fb1fe15db)) +- **deps:** bump micromatch from 4.0.7 to 4.0.8 ([edfeebe](https://github.com/webern-unibas-ch/awg-app/commit/edfeebe9f5cd92b9e9b6722320df52374add9229)) +- **deps:** bump n3 from 1.20.4 to 1.21.0 ([e91ca31](https://github.com/webern-unibas-ch/awg-app/commit/e91ca311105bc11ca148da12ff351f94fd1541ce)) +- **deps:** bump n3 from 1.21.0 to 1.21.1 ([105a74c](https://github.com/webern-unibas-ch/awg-app/commit/105a74c5b4840caa2c8bcf67569d5cdecbd71427)) +- **deps:** bump n3 from 1.21.1 to 1.22.0 ([7749846](https://github.com/webern-unibas-ch/awg-app/commit/7749846c6937389c4d7f3f500df48c62f168998f)) +- **deps:** bump n3 from 1.22.0 to 1.22.1 ([45445b0](https://github.com/webern-unibas-ch/awg-app/commit/45445b0dfdc7df06f11417717e2f32ae50709972)) +- **deps:** bump n3 from 1.22.1 to 1.22.3 ([9551bbd](https://github.com/webern-unibas-ch/awg-app/commit/9551bbd438b49c6a44f6a8ac118281f3047310f3)) +- **deps:** bump rdfstore from v0.9.18-alpha.16 to v0.9.18-alpha.17 ([500b47e](https://github.com/webern-unibas-ch/awg-app/commit/500b47eb4184c6c7607cdbe0e4cae736b833ad41)) +- **deps:** bump rollup from 4.22.0 to 4.22.4 ([6d65df8](https://github.com/webern-unibas-ch/awg-app/commit/6d65df81b5ca910a18fadbbe8c333fedc24a06a6)) +- **deps:** bump SonarSource/sonarcloud-github-action ([6e2fa81](https://github.com/webern-unibas-ch/awg-app/commit/6e2fa811039a69d1e90a41b290e12ee653d66040)) +- **deps:** bump SonarSource/sonarcloud-github-action ([883e23f](https://github.com/webern-unibas-ch/awg-app/commit/883e23fc8a5e41d0d38dd8743e49cce4fee2b271)) +- **deps:** bump step-security/harden-runner from 2.9.1 to 2.10.1 ([dfba1df](https://github.com/webern-unibas-ch/awg-app/commit/dfba1df6721ee4b3cce89181354ca1a4d2f2bb20)) +- **deps:** bump the angular group with 11 updates ([322139f](https://github.com/webern-unibas-ch/awg-app/commit/322139f9607d5f52e6de8d23cf36dfb18f9e1f67)) +- **deps:** bump the angular group with 11 updates ([f6447e3](https://github.com/webern-unibas-ch/awg-app/commit/f6447e3d2a325dec1079518981816d89907bede1)) +- **deps:** bump the angular group with 11 updates ([1d18b4d](https://github.com/webern-unibas-ch/awg-app/commit/1d18b4db5228dc51edd6863c0aed8e732505097f)) +- **deps:** bump the angular group with 11 updates ([005107f](https://github.com/webern-unibas-ch/awg-app/commit/005107f5a012bbf417dbd85fe3828a9406cadfe3)) +- **deps:** bump the angular group with 11 updates ([75ce249](https://github.com/webern-unibas-ch/awg-app/commit/75ce2493dedbbd78ad3a30033a82d43d2eae18e0)) +- **deps:** bump the angular group with 11 updates ([77a68bd](https://github.com/webern-unibas-ch/awg-app/commit/77a68bd326a06ece38151a8161293897e5f3a782)) +- **deps:** bump the angular group with 11 updates ([d7489a3](https://github.com/webern-unibas-ch/awg-app/commit/d7489a3708c6aa5be85337089e623e3d874fb70a)) +- **deps:** bump the angular group with 11 updates ([0602b82](https://github.com/webern-unibas-ch/awg-app/commit/0602b82c16125c3fc96cec61ec4b52b3a7719a3b)) +- **deps:** bump the angular group with 11 updates ([b3d7069](https://github.com/webern-unibas-ch/awg-app/commit/b3d7069fd5039ce48d7b77096fb2bae1e8c20e51)) +- **deps:** bump tslib from 2.6.3 to 2.7.0 ([504ca75](https://github.com/webern-unibas-ch/awg-app/commit/504ca75a95aa037f868c4c43b5726068020d8ad9)) +- **shared:** activate NgbPopoverModule ([66158cf](https://github.com/webern-unibas-ch/awg-app/commit/66158cf22d0ac249f579de444ccd588af02fdb7f)) ## [0.14.0](https://github.com/webern-unibas-ch/awg-app/compare/v0.12.3...v0.14.0) (2024-08-19)