opening_hours 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/LICENSES/AGPL-3.0-or-later.txt +235 -0
- package/LICENSES/ODbL-1.0.txt +540 -0
- package/Makefile +2 -0
- package/README.md +3 -0
- package/REUSE.toml +30 -1
- package/build/opening_hours.esm.mjs +281 -74
- package/build/opening_hours.esm.mjs.map +1 -1
- package/build/opening_hours.js +281 -74
- package/package.json +20 -20
- package/site/js/countryToLanguageMapping.js +4 -0
- package/site/js/helpers.js +17 -9
- package/site/js/i18n-resources.js +6 -1
- package/site/js/main.js +8 -3
- package/site/js/opening_hours_table.js +26 -29
- package/site/js/theme.js +2 -6
- package/site/js/yohours_model.js +3 -0
- package/src/locales/i18n.js +5 -0
- package/LICENSES/CC-BY-SA-4.0.txt +0 -349
- package/LICENSES/LGPL-3.0-or-later.txt +0 -144
|
@@ -115,12 +115,12 @@ const al = {
|
|
|
115
115
|
};
|
|
116
116
|
|
|
117
117
|
const ar = {
|
|
118
|
-
PH: [{"name":"Año Nuevo","fixed_date":[1,1]},{"name":"Carnaval
|
|
118
|
+
PH: [{"name":"Año Nuevo","fixed_date":[1,1]},{"name":"Carnaval","variable_date":"easter","offset":-48},{"name":"Carnaval","variable_date":"easter","offset":-47},{"name":"Día Nacional de la Memoria por la Verdad y la Justicia","fixed_date":[3,24]},{"name":"Viernes Santo","variable_date":"easter","offset":-2},{"name":"Día del Veterano y de los Caídos en la Guerra de Malvinas","fixed_date":[4,2]},{"name":"Día del Trabajador","fixed_date":[5,1]},{"name":"Día de la Revolución de Mayo","fixed_date":[5,25]},{"name":"Paso a la Inmortalidad del General Don Martín Miguel de Güemes","fixed_date":[6,17],"shift_rule":"if tuesday,wednesday then previous monday if thursday,friday then next monday"},{"name":"Paso a la Inmortalidad del General D. Manuel Belgrano","fixed_date":[6,20]},{"name":"Día de la Independencia","fixed_date":[7,9]},{"name":"Día no laborable con fines turísticos","fixed_date":[7,10]},{"name":"Paso a la Inmortalidad del General José de San Martín","fixed_date":[8,17],"shift_rule":"if tuesday,wednesday then previous monday if thursday,friday then next monday"},{"name":"Día del Respeto a la Diversidad Cultural","fixed_date":[10,12]},{"name":"Día de la Soberanía Nacional","fixed_date":[11,20],"shift_rule":"if tuesday,wednesday then previous monday if thursday,friday then next monday"},{"name":"Día no laborable con fines turísticos","fixed_date":[12,7]},{"name":"Inmaculada Concepción de María","fixed_date":[12,8]},{"name":"Navidad","fixed_date":[12,25]}],
|
|
119
119
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-34.60377&lon=-58.38159&zoom=16&addressdetails=1&accept-language=es"
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
const at = {
|
|
123
|
-
PH: [{"name":"
|
|
123
|
+
PH: [{"name":"Neujahr","fixed_date":[1,1]},{"name":"Heilige Drei Könige","fixed_date":[1,6]},{"name":"Ostermontag","variable_date":"easter","offset":1},{"name":"Staatsfeiertag","fixed_date":[5,1]},{"name":"Christi Himmelfahrt","variable_date":"easter","offset":39},{"name":"Pfingstmontag","variable_date":"easter","offset":50},{"name":"Fronleichnam","variable_date":"easter","offset":60},{"name":"Mariä Himmelfahrt","fixed_date":[8,15]},{"name":"Nationalfeiertag","fixed_date":[10,26]},{"name":"Allerheiligen","fixed_date":[11,1]},{"name":"Mariä Empfängnis","fixed_date":[12,8]},{"name":"Christtag","fixed_date":[12,25]},{"name":"Stefanitag","fixed_date":[12,26]}],
|
|
124
124
|
SH: [
|
|
125
125
|
{
|
|
126
126
|
name: "Osterferien",
|
|
@@ -553,52 +553,52 @@ const at = {
|
|
|
553
553
|
};
|
|
554
554
|
|
|
555
555
|
const au = {
|
|
556
|
-
PH: [{"name":"New
|
|
556
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}],
|
|
557
557
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-35.2809&lon=149.1300&zoom=16&addressdetails=1&accept-language=en",
|
|
558
558
|
"Australian Capital Territory": {
|
|
559
559
|
"_state_code": "act",
|
|
560
560
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-35.2809&lon=149.1300&zoom=16&addressdetails=1&accept-language=en",
|
|
561
|
-
PH: [{"name":"New
|
|
561
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Canberra Day","variable_date":"firstMarchMonday","offset":7},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"Reconciliation Day","variable_date":"lastMayMonday"},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"Labour Day","variable_date":"firstOctoberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
562
562
|
},
|
|
563
563
|
"New South Wales": {
|
|
564
564
|
"_state_code": "nsw",
|
|
565
565
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-33.8688&lon=151.2093&zoom=16&addressdetails=1&accept-language=en",
|
|
566
|
-
PH: [{"name":"New
|
|
566
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"Labour Day","variable_date":"firstOctoberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
567
567
|
},
|
|
568
568
|
"Northern Territory": {
|
|
569
569
|
"_state_code": "nt",
|
|
570
570
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-12.4634&lon=130.8456&zoom=16&addressdetails=1&accept-language=en",
|
|
571
|
-
PH: [{"name":"New
|
|
571
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"May Day","variable_date":"firstMayMonday"},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"Picnic Day","variable_date":"firstAugustMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
572
572
|
},
|
|
573
573
|
"Queensland": {
|
|
574
574
|
"_state_code": "qld",
|
|
575
575
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-27.4698&lon=153.0251&zoom=16&addressdetails=1&accept-language=en",
|
|
576
|
-
PH: [{"name":"New
|
|
576
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"Labour Day","variable_date":"firstMayMonday"},{"name":"King's Birthday","variable_date":"firstOctoberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
577
577
|
},
|
|
578
578
|
"South Australia": {
|
|
579
579
|
"_state_code": "sa",
|
|
580
580
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-34.9285&lon=138.6007&zoom=16&addressdetails=1&accept-language=en",
|
|
581
|
-
PH: [{"name":"New
|
|
581
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Adelaide Cup Day","variable_date":"firstMarchMonday","offset":7},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"Labour Day","variable_date":"firstOctoberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]},{"name":"Proclamation Day","fixed_date":[12,26]}]
|
|
582
582
|
},
|
|
583
583
|
"Tasmania": {
|
|
584
584
|
"_state_code": "tas",
|
|
585
585
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-42.8821&lon=147.3272&zoom=16&addressdetails=1&accept-language=en",
|
|
586
|
-
PH: [{"name":"New
|
|
586
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Eight Hours Day","variable_date":"firstMarchMonday","offset":7},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
587
587
|
},
|
|
588
588
|
"Victoria": {
|
|
589
589
|
"_state_code": "vic",
|
|
590
590
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-37.8136&lon=144.9631&zoom=16&addressdetails=1&accept-language=en",
|
|
591
|
-
PH: [{"name":"New
|
|
591
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Labour Day","variable_date":"firstMarchMonday","offset":7},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Saturday","variable_date":"easter","offset":-1},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"King's Birthday","variable_date":"firstJuneMonday","offset":7},{"name":"AFL Grand Final Friday","variable_date":"lastSeptemberFriday"},{"name":"Melbourne Cup","variable_date":"firstNovemberTuesday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
592
592
|
},
|
|
593
593
|
"Western Australia": {
|
|
594
594
|
"_state_code": "wa",
|
|
595
595
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-31.9505&lon=115.8605&zoom=16&addressdetails=1&accept-language=en",
|
|
596
|
-
PH: [{"name":"New
|
|
596
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Australia Day","fixed_date":[1,26]},{"name":"Labour Day","variable_date":"firstMarchMonday"},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Sunday","variable_date":"easter"},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"Western Australia Day","variable_date":"firstJuneMonday"},{"name":"King's Birthday","variable_date":"lastSeptemberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
597
597
|
}
|
|
598
598
|
};
|
|
599
599
|
|
|
600
600
|
const be = {
|
|
601
|
-
PH: [{"name":"Nieuwjaar -
|
|
601
|
+
PH: [{"name":"Nieuwjaar - Nouvel An","fixed_date":[1,1]},{"name":"Paasmaandag - Lundi de Pâques","variable_date":"easter","offset":1},{"name":"Dag van de Arbeid - Fête du travail","fixed_date":[5,1]},{"name":"Hemelvaartsdag - Ascension","variable_date":"easter","offset":39},{"name":"Pinkstermaandag - Lundi de Pentecôte","variable_date":"easter","offset":50},{"name":"Nationale feestdag - Fête nationale","fixed_date":[7,21]},{"name":"Tenhemelopneming - Assomption","fixed_date":[8,15]},{"name":"Allerheiligen - Toussaint","fixed_date":[11,1]},{"name":"Wapenstilstand - Armistice","fixed_date":[11,11]},{"name":"Kerstmis - Noël","fixed_date":[12,25]}],
|
|
602
602
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Belgium&zoom=18&addressdetails=1&limit=1&accept-language=nl,fr,de,en",
|
|
603
603
|
"DE": {
|
|
604
604
|
SH: [
|
|
@@ -803,6 +803,7 @@ const be = {
|
|
|
803
803
|
};
|
|
804
804
|
|
|
805
805
|
const bg = {
|
|
806
|
+
PH: [{"name":"Нова Година","fixed_date":[1,1]},{"name":"Ден на Освобождението на България от Османската Империя","fixed_date":[3,3]},{"name":"Разпети петък","variable_date":"orthodox easter","offset":-2},{"name":"Великден","variable_date":"orthodox easter"},{"name":"Велики понеделник","variable_date":"orthodox easter","offset":1},{"name":"Ден на труда","fixed_date":[5,1]},{"name":"Гергьовден","fixed_date":[5,6]},{"name":"Ден на азбуката, културата и просветата","fixed_date":[5,24]},{"name":"Ден на съединението","fixed_date":[9,6]},{"name":"Ден на независимостта","fixed_date":[9,22]},{"name":"Бъдни вечер","fixed_date":[12,24]},{"name":"Коледа","fixed_date":[12,25]}],
|
|
806
807
|
SH: [
|
|
807
808
|
{
|
|
808
809
|
name: "Коледна ваканция",
|
|
@@ -858,7 +859,8 @@ const bg = {
|
|
|
858
859
|
2022: [2,2,2,4],
|
|
859
860
|
2026: [3,2,3,2],
|
|
860
861
|
},
|
|
861
|
-
]
|
|
862
|
+
],
|
|
863
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=42.6977&lon=23.3219&zoom=18&addressdetails=1&accept-language=bg,en"
|
|
862
864
|
};
|
|
863
865
|
|
|
864
866
|
const br = {
|
|
@@ -949,6 +951,7 @@ const br = {
|
|
|
949
951
|
};
|
|
950
952
|
|
|
951
953
|
const by = {
|
|
954
|
+
PH: [{"name":"Новы год","fixed_date":[1,1]},{"name":"Мiжнародны жаночы дзень","fixed_date":[3,8]},{"name":"Дзень працы","fixed_date":[5,1]},{"name":"Дзень Перамогi","fixed_date":[5,9]},{"name":"Дзень Незалежнасцi","fixed_date":[7,3]},{"name":"Дзень Кастрычніцкай рэвалюцыі","fixed_date":[11,7]},{"name":"Каляды каталiцкiя","fixed_date":[12,25]}],
|
|
952
955
|
SH: [
|
|
953
956
|
{
|
|
954
957
|
name: "Зімовыя вакацыі",
|
|
@@ -989,11 +992,13 @@ const by = {
|
|
|
989
992
|
2024: [10,27,11,5],
|
|
990
993
|
2025: [11,2,11,9],
|
|
991
994
|
},
|
|
992
|
-
]
|
|
995
|
+
],
|
|
996
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=53.9045&lon=27.5615&zoom=18&addressdetails=1&accept-language=be,en"
|
|
993
997
|
};
|
|
994
998
|
|
|
995
999
|
const ca = {
|
|
996
1000
|
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Canada Day","variable_date":"canadaDay"},{"name":"Labour Day","variable_date":"firstSeptemberMonday"},{"name":"Christmas Day","fixed_date":[12,25]}],
|
|
1001
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=45.4215&lon=-75.6972&zoom=18&addressdetails=1&accept-language=en,fr",
|
|
997
1002
|
"Alberta": {
|
|
998
1003
|
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Alberta Family Day","variable_date":"firstFebruaryMonday","offset":14},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Victoria Day","variable_date":"victoriaDay"},{"name":"Canada Day","variable_date":"canadaDay"},{"name":"Heritage Day","variable_date":"firstAugustMonday"},{"name":"Labour Day","variable_date":"firstSeptemberMonday"},{"name":"Thanksgiving","variable_date":"firstOctoberMonday","offset":7},{"name":"Remembrance Day","fixed_date":[11,11]},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
999
1004
|
},
|
|
@@ -3427,7 +3432,7 @@ const cn = {
|
|
|
3427
3432
|
};
|
|
3428
3433
|
|
|
3429
3434
|
const cz = {
|
|
3430
|
-
PH: [{"name":"Den obnovy samostatného českého státu","fixed_date":[1,1]},{"name":"Velký pátek","variable_date":"easter","offset":-2},{"name":"Velikonoční pondělí","variable_date":"easter","offset":1},{"name":"Svátek práce","fixed_date":[5,1]},{"name":"Den vítězství","fixed_date":[5,8]},{"name":"Den slovanských věrozvěstů Cyrila a Metoděje","fixed_date":[7,5]},{"name":"Den upálení mistra Jana Husa","fixed_date":[7,6]},{"name":"Den české státnosti","fixed_date":[9,28]},{"name":"Den vzniku samostatného československého státu","fixed_date":[10,28]},{"name":"Den boje za svobodu a demokracii","fixed_date":[11,17]},{"name":"Štědrý den","fixed_date":[12,24]},{"name":"1. svátek vánoční","fixed_date":[12,25]},{"name":"2. svátek vánoční","fixed_date":[12,26]}],
|
|
3435
|
+
PH: [{"name":"Den obnovy samostatného českého státu; Nový rok","fixed_date":[1,1]},{"name":"Velký pátek","variable_date":"easter","offset":-2},{"name":"Velikonoční pondělí","variable_date":"easter","offset":1},{"name":"Svátek práce","fixed_date":[5,1]},{"name":"Den vítězství","fixed_date":[5,8]},{"name":"Den slovanských věrozvěstů Cyrila a Metoděje","fixed_date":[7,5]},{"name":"Den upálení mistra Jana Husa","fixed_date":[7,6]},{"name":"Den české státnosti","fixed_date":[9,28]},{"name":"Den vzniku samostatného československého státu","fixed_date":[10,28]},{"name":"Den boje za svobodu a demokracii","fixed_date":[11,17]},{"name":"Štědrý den","fixed_date":[12,24]},{"name":"1. svátek vánoční","fixed_date":[12,25]},{"name":"2. svátek vánoční","fixed_date":[12,26]}],
|
|
3431
3436
|
SH: [
|
|
3432
3437
|
{
|
|
3433
3438
|
name: "Vánoční prázdniny",
|
|
@@ -4725,7 +4730,7 @@ const cz = {
|
|
|
4725
4730
|
};
|
|
4726
4731
|
|
|
4727
4732
|
const de = {
|
|
4728
|
-
PH: [{"name":"
|
|
4733
|
+
PH: [{"name":"Neujahr","fixed_date":[1,1]},{"name":"Heilige Drei Könige","fixed_date":[1,6],"only_states":["Baden-Württemberg","Bayern","Sachsen-Anhalt"]},{"name":"Frauentag","fixed_date":[3,8],"only_states":["Berlin","Mecklenburg-Vorpommern"]},{"name":"Tag der Arbeit","fixed_date":[5,1]},{"name":"Karfreitag","variable_date":"easter","offset":-2},{"name":"Ostersonntag","variable_date":"easter","only_states":["Brandenburg"]},{"name":"Ostermontag","variable_date":"easter","offset":1},{"name":"Christi Himmelfahrt","variable_date":"easter","offset":39},{"name":"Pfingstsonntag","variable_date":"easter","offset":49,"only_states":["Brandenburg"]},{"name":"Pfingstmontag","variable_date":"easter","offset":50},{"name":"Fronleichnam","variable_date":"easter","offset":60,"only_states":["Baden-Württemberg","Bayern","Hessen","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland"]},{"name":"Mariä Himmelfahrt","fixed_date":[8,15],"only_states":["Saarland"]},{"name":"Weltkindertag","fixed_date":[9,20],"only_states":["Thüringen"]},{"name":"Tag der Deutschen Einheit","fixed_date":[10,3]},{"name":"Reformationstag","fixed_date":[10,31],"only_states":["Brandenburg","Bremen","Hamburg","Mecklenburg-Vorpommern","Niedersachsen","Sachsen","Sachsen-Anhalt","Schleswig-Holstein","Thüringen"]},{"name":"Allerheiligen","fixed_date":[11,1],"only_states":["Baden-Württemberg","Bayern","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland"]},{"name":"Buß- und Bettag","variable_date":"nextWednesday16Nov","only_states":["Sachsen"]},{"name":"1. Weihnachtstag","fixed_date":[12,25]},{"name":"2. Weihnachtstag","fixed_date":[12,26]}],
|
|
4729
4734
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=49.5487&lon=9.8160&zoom=18&addressdetails=1&accept-language=de,en",
|
|
4730
4735
|
"Baden-Württemberg": {
|
|
4731
4736
|
SH: [
|
|
@@ -7002,11 +7007,12 @@ const de = {
|
|
|
7002
7007
|
};
|
|
7003
7008
|
|
|
7004
7009
|
const dk = {
|
|
7005
|
-
PH: [{"name":"Nytårsdag","fixed_date":[1,1]},{"name":"Skærtorsdag","variable_date":"easter","offset":-3},{"name":"Langfredag","variable_date":"easter","offset":-2},{"name":"Påskedag","variable_date":"easter"},{"name":"
|
|
7010
|
+
PH: [{"name":"Nytårsdag","fixed_date":[1,1]},{"name":"Skærtorsdag","variable_date":"easter","offset":-3},{"name":"Langfredag","variable_date":"easter","offset":-2},{"name":"Påskedag","variable_date":"easter"},{"name":"Anden påskedag","variable_date":"easter","offset":1},{"name":"Kristi Himmelfartsdag","variable_date":"easter","offset":39},{"name":"Pinsedag","variable_date":"easter","offset":49},{"name":"Anden Pinsedag","variable_date":"easter","offset":50},{"name":"Grundlovsdag","fixed_date":[6,5]},{"name":"Juleaftensdag","fixed_date":[12,24]},{"name":"Juledag","fixed_date":[12,25]},{"name":"Anden Juledag","fixed_date":[12,26]}],
|
|
7006
7011
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=55.670249&lon=10.3333283&zoom=18&addressdetails=1&accept-language=da,en"
|
|
7007
7012
|
};
|
|
7008
7013
|
|
|
7009
7014
|
const ee = {
|
|
7015
|
+
PH: [{"name":"uusaasta","fixed_date":[1,1]},{"name":"iseseisvuspäev","fixed_date":[2,24]},{"name":"suur reede","variable_date":"easter","offset":-2},{"name":"lihavõtted","variable_date":"easter"},{"name":"kevadpüha","fixed_date":[5,1]},{"name":"nelipühade 1. püha","variable_date":"easter","offset":49},{"name":"võidupüha","fixed_date":[6,23]},{"name":"jaanipäev","fixed_date":[6,24]},{"name":"taasiseseisvumispäev","fixed_date":[8,20]},{"name":"jõululaupäev","fixed_date":[12,24]},{"name":"esimene jõulupüha","fixed_date":[12,25]},{"name":"teine jõulupüha","fixed_date":[12,26]}],
|
|
7010
7016
|
SH: [
|
|
7011
7017
|
{
|
|
7012
7018
|
name: "jõulupühad",
|
|
@@ -7062,7 +7068,8 @@ const ee = {
|
|
|
7062
7068
|
2025: [10,20,10,26],
|
|
7063
7069
|
2026: [10,26,11,1],
|
|
7064
7070
|
},
|
|
7065
|
-
]
|
|
7071
|
+
],
|
|
7072
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=59.4370&lon=24.7536&zoom=18&addressdetails=1&accept-language=et,en"
|
|
7066
7073
|
};
|
|
7067
7074
|
|
|
7068
7075
|
const es = {
|
|
@@ -10177,13 +10184,18 @@ const gb = {
|
|
|
10177
10184
|
}
|
|
10178
10185
|
};
|
|
10179
10186
|
|
|
10187
|
+
const ge = {
|
|
10188
|
+
PH: [{"name":"ახალი წელი","fixed_date":[1,1]},{"name":"ბედობა","fixed_date":[1,2]},{"name":"შობა","fixed_date":[1,7]},{"name":"ნათლისღება","fixed_date":[1,19]},{"name":"დედის დღე","fixed_date":[3,3]},{"name":"ქალთა საერთაშორისო დღე","fixed_date":[3,8]},{"name":"ეროვნული ერთიანობის დღე","fixed_date":[4,9]},{"name":"წითელი პარასკევი","variable_date":"orthodox easter","offset":-2},{"name":"დიდი შაბათი","variable_date":"orthodox easter","offset":-1},{"name":"აღდგომა","variable_date":"orthodox easter"},{"name":"აღდგომის ორშაბათი","variable_date":"orthodox easter","offset":1},{"name":"ფაშიზმზე გამარჯვების დღე","fixed_date":[5,9]},{"name":"წმინდა ანდრია პირველწოდებულის ხსენების დღე","fixed_date":[5,12]},{"name":"დამოუკიდებლობის დღე","fixed_date":[5,26]},{"name":"მარიამობა","fixed_date":[8,28]},{"name":"სვეტიცხოვლობა","fixed_date":[10,14]},{"name":"გიორგობა","fixed_date":[11,23]}],
|
|
10189
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=41.7151&lon=44.8271&zoom=18&addressdetails=1&accept-language=ka,en"
|
|
10190
|
+
};
|
|
10191
|
+
|
|
10180
10192
|
const gr = {
|
|
10181
|
-
PH: [{"name":"Πρωτοχρονιά","fixed_date":[1,1]},{"name":"Θεοφάνια","fixed_date":[1,6]},{"name":"Καθαρά Δευτέρα","variable_date":"orthodox easter","offset":-48},{"name":"25η Μαρτίου","fixed_date":[3,25]},{"name":"Μεγάλη Παρασκευή","variable_date":"orthodox easter","offset":-2},{"name":"Πάσχα","variable_date":"orthodox easter"
|
|
10193
|
+
PH: [{"name":"Πρωτοχρονιά","fixed_date":[1,1]},{"name":"Θεοφάνια","fixed_date":[1,6]},{"name":"Καθαρά Δευτέρα","variable_date":"orthodox easter","offset":-48},{"name":"25η Μαρτίου","fixed_date":[3,25]},{"name":"Μεγάλη Παρασκευή","variable_date":"orthodox easter","offset":-2},{"name":"Πάσχα","variable_date":"orthodox easter"},{"name":"Δευτέρα του Πάσχα","variable_date":"orthodox easter","offset":1},{"name":"Εργατική Πρωτομαγιά","fixed_date":[5,1]},{"name":"Κοίμηση της Θεοτόκου","fixed_date":[8,15]},{"name":"Επέτειος του Όχι","fixed_date":[10,28]},{"name":"Χριστούγεννα","fixed_date":[12,25]},{"name":"2η μέρα Χριστουγέννων","fixed_date":[12,26]}],
|
|
10182
10194
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Greece&&zoom=18&addressdetails=1&limit=1&accept-language=el,en"
|
|
10183
10195
|
};
|
|
10184
10196
|
|
|
10185
10197
|
const hr = {
|
|
10186
|
-
PH: [{"name":"Nova godina","fixed_date":[1,1]},{"name":"Sveta tri kralja","fixed_date":[1,6]},{"name":"Uskršnji ponedjeljak","variable_date":"easter","offset":1},{"name":"Praznik rada","fixed_date":[5,1]},{"name":"Tijelovo","variable_date":"easter","offset":60},{"name":"Dan antifašističke borbe","fixed_date":[6,22]},{"name":"Dan pobjede i domovinske zahvalnosti","fixed_date":[8,5]},{"name":"Velika Gospa","fixed_date":[8,15]},{"name":"Svi sveti","fixed_date":[11,1]},{"name":"Dan sjećanja na žrtve Domovinskog rata","fixed_date":[11,18]},{"name":"Božić","fixed_date":[12,25]},{"name":"Sveti Stjepan","fixed_date":[12,26]}],
|
|
10198
|
+
PH: [{"name":"Nova godina","fixed_date":[1,1]},{"name":"Sveta tri kralja","fixed_date":[1,6]},{"name":"Uskrs","variable_date":"easter"},{"name":"Uskršnji ponedjeljak","variable_date":"easter","offset":1},{"name":"Praznik rada","fixed_date":[5,1]},{"name":"Dan državnosti","fixed_date":[5,30]},{"name":"Tijelovo","variable_date":"easter","offset":60},{"name":"Dan antifašističke borbe","fixed_date":[6,22]},{"name":"Dan pobjede i domovinske zahvalnosti","fixed_date":[8,5]},{"name":"Velika Gospa","fixed_date":[8,15]},{"name":"Svi sveti","fixed_date":[11,1]},{"name":"Dan sjećanja na žrtve Domovinskog rata","fixed_date":[11,18]},{"name":"Božić","fixed_date":[12,25]},{"name":"Sveti Stjepan","fixed_date":[12,26]}],
|
|
10187
10199
|
SH: [
|
|
10188
10200
|
{
|
|
10189
10201
|
name: "Zimski odmor",
|
|
@@ -10308,7 +10320,7 @@ const hu = {
|
|
|
10308
10320
|
};
|
|
10309
10321
|
|
|
10310
10322
|
const ie = {
|
|
10311
|
-
PH: [{"name":"New Year’s Day","fixed_date":[1,1]},{"name":"St Patrick’s Day","fixed_date":[3,17]},{"name":"St Patrick’s Day","variable_date":"nextMo-Fr17March"},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"May Bank Holiday","variable_date":"firstMayMonday"},{"name":"June Bank Holiday","variable_date":"firstJuneMonday"},{"name":"August Bank Holiday","variable_date":"firstAugustMonday"},{"name":"October Bank Holiday
|
|
10323
|
+
PH: [{"name":"New Year’s Day","fixed_date":[1,1]},{"name":"St. Patrick’s Day","fixed_date":[3,17]},{"name":"St. Patrick’s Day","variable_date":"nextMo-Fr17March"},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"May Bank Holiday","variable_date":"firstMayMonday"},{"name":"June Bank Holiday","variable_date":"firstJuneMonday"},{"name":"August Bank Holiday","variable_date":"firstAugustMonday"},{"name":"October Bank Holiday","variable_date":"lastOctoberMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"St. Stephen’s Day","fixed_date":[12,26]},{"name":"Bank Holiday","fixed_date":[12,27]}],
|
|
10312
10324
|
SH: [
|
|
10313
10325
|
{
|
|
10314
10326
|
name: "Christmas",
|
|
@@ -11366,8 +11378,15 @@ const it = {
|
|
|
11366
11378
|
}
|
|
11367
11379
|
};
|
|
11368
11380
|
|
|
11381
|
+
const je = {
|
|
11382
|
+
"Jersey": {
|
|
11383
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=49.2&lon=-2.1&zoom=11&addressdetails=1&accept-language=en",
|
|
11384
|
+
PH: [{"name":"New Year’s Day","fixed_date":[1,1]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Early May bank holiday","variable_date":"firstMayMonday"},{"name":"Liberation Day","fixed_date":[5,9]},{"name":"Spring bank holiday","variable_date":"lastMayMonday"},{"name":"Summer bank holiday","variable_date":"lastAugustMonday"},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}]
|
|
11385
|
+
}
|
|
11386
|
+
};
|
|
11387
|
+
|
|
11369
11388
|
const jp = {
|
|
11370
|
-
PH: [{"name":"元日","fixed_date":[1,1]},{"name":"成人の日","variable_date":"firstJanuaryMonday","offset":7},{"name":"建国記念の日","fixed_date":[2,11]},{"name":"天皇誕生日","fixed_date":[2,23]},{"name":"昭和の日","fixed_date":[4,29]},{"name":"憲法記念日","fixed_date":[5,3]},{"name":"みどりの日","fixed_date":[5,4]},{"name":"こどもの日","fixed_date":[5,5]},{"name":"海の日","variable_date":"firstJulyMonday","offset":14},{"name":"山の日","fixed_date":[8,11]},{"name":"敬老の日","variable_date":"firstSeptemberMonday","offset":14},{"name":"スポーツの日","variable_date":"
|
|
11389
|
+
PH: [{"name":"元日","fixed_date":[1,1]},{"name":"成人の日","variable_date":"firstJanuaryMonday","offset":7},{"name":"建国記念の日","fixed_date":[2,11]},{"name":"天皇誕生日","fixed_date":[2,23]},{"name":"昭和の日","fixed_date":[4,29]},{"name":"憲法記念日","fixed_date":[5,3]},{"name":"みどりの日","fixed_date":[5,4]},{"name":"こどもの日","fixed_date":[5,5]},{"name":"海の日","variable_date":"firstJulyMonday","offset":14},{"name":"山の日","fixed_date":[8,11]},{"name":"敬老の日","variable_date":"firstSeptemberMonday","offset":14},{"name":"スポーツの日","variable_date":"firstOctoberMonday","offset":7},{"name":"文化の日","fixed_date":[11,3]},{"name":"勤労感謝の日","fixed_date":[11,23]},{"name":"春分の日","variable_date":"springEquinox"},{"name":"秋分の日","variable_date":"autumnalEquinox"}],
|
|
11371
11390
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=35.39291572&lon=139.44288869&zoom=18&addressdetails=1&accept-language=ja,en"
|
|
11372
11391
|
};
|
|
11373
11392
|
|
|
@@ -11438,6 +11457,7 @@ const li = {
|
|
|
11438
11457
|
};
|
|
11439
11458
|
|
|
11440
11459
|
const lt = {
|
|
11460
|
+
PH: [{"name":"Naujieji metai","fixed_date":[1,1]},{"name":"Lietuvos valstybės atkūrimo diena","fixed_date":[2,16]},{"name":"Lietuvos nepriklausomybės atkūrimo diena","fixed_date":[3,11]},{"name":"Velykos","variable_date":"easter"},{"name":"Velykų pirmadienis","variable_date":"easter","offset":1},{"name":"Tarptautinė darbo diena","fixed_date":[5,1]},{"name":"Joninės, Rasos","fixed_date":[6,24]},{"name":"Valstybės diena","fixed_date":[7,6]},{"name":"Žolinė","fixed_date":[8,15]},{"name":"Visų šventųjų diena","fixed_date":[11,1]},{"name":"Vėlinės","fixed_date":[11,2]},{"name":"Šv. Kūčios","fixed_date":[12,24]},{"name":"Šv. Kalėdos","fixed_date":[12,25]},{"name":"2. Kalėdų diena","fixed_date":[12,26]}],
|
|
11441
11461
|
SH: [
|
|
11442
11462
|
{
|
|
11443
11463
|
name: "Žiemos atostogos",
|
|
@@ -11483,7 +11503,8 @@ const lt = {
|
|
|
11483
11503
|
2025: [11,3,11,9],
|
|
11484
11504
|
2026: [11,2,11,8],
|
|
11485
11505
|
},
|
|
11486
|
-
]
|
|
11506
|
+
],
|
|
11507
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=54.6872&lon=25.2797&zoom=18&addressdetails=1&accept-language=lt,en"
|
|
11487
11508
|
};
|
|
11488
11509
|
|
|
11489
11510
|
const lu = {
|
|
@@ -11559,6 +11580,7 @@ const lu = {
|
|
|
11559
11580
|
};
|
|
11560
11581
|
|
|
11561
11582
|
const lv = {
|
|
11583
|
+
PH: [{"name":"Jaunais Gads","fixed_date":[1,1]},{"name":"Lielā Piektdiena","variable_date":"easter","offset":-2},{"name":"Lieldienas","variable_date":"easter"},{"name":"Otrās Lieldienas","variable_date":"easter","offset":1},{"name":"Darba svētki","fixed_date":[5,1]},{"name":"Latvijas Republikas Neatkarības atjaunošanas diena","fixed_date":[5,4]},{"name":"Līgo Diena","fixed_date":[6,23]},{"name":"Jāņi","fixed_date":[6,24]},{"name":"Latvijas Republikas proklamēšanas diena","fixed_date":[11,18]},{"name":"Ziemassvētku vakars","fixed_date":[12,24]},{"name":"Ziemassvētki","fixed_date":[12,25]},{"name":"Otrie Ziemassvētki","fixed_date":[12,26]},{"name":"Vecgada vakars","fixed_date":[12,31]}],
|
|
11562
11584
|
SH: [
|
|
11563
11585
|
{
|
|
11564
11586
|
name: "Ziemas brīvdienas",
|
|
@@ -11595,10 +11617,12 @@ const lv = {
|
|
|
11595
11617
|
2023: [10,23,10,27],
|
|
11596
11618
|
2024: [10,21,10,27],
|
|
11597
11619
|
},
|
|
11598
|
-
]
|
|
11620
|
+
],
|
|
11621
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=56.9460&lon=24.1059&zoom=18&addressdetails=1&accept-language=lv,en"
|
|
11599
11622
|
};
|
|
11600
11623
|
|
|
11601
11624
|
const mc = {
|
|
11625
|
+
PH: [{"name":"Nouvel An","fixed_date":[1,1]},{"name":"Sainte Dévote","fixed_date":[1,27]},{"name":"Lundi de Pâques","variable_date":"easter","offset":1},{"name":"1er mai","fixed_date":[5,1]},{"name":"Ascension","variable_date":"easter","offset":39},{"name":"Lundi de Pentecôte","variable_date":"easter","offset":50},{"name":"la Fête-Dieu","variable_date":"easter","offset":60},{"name":"Assomption","fixed_date":[8,15]},{"name":"Toussaint","fixed_date":[11,1]},{"name":"La Fête du Prince","fixed_date":[11,19]},{"name":"Immaculée Conception","fixed_date":[12,8]},{"name":"Noël","fixed_date":[12,25]}],
|
|
11602
11626
|
SH: [
|
|
11603
11627
|
{
|
|
11604
11628
|
name: "Vacances de Noël",
|
|
@@ -11664,10 +11688,12 @@ const mc = {
|
|
|
11664
11688
|
2024: [10,24,11,3],
|
|
11665
11689
|
2025: [10,23,11,2],
|
|
11666
11690
|
},
|
|
11667
|
-
]
|
|
11691
|
+
],
|
|
11692
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=43.7384&lon=7.4246&zoom=18&addressdetails=1&accept-language=fr,en"
|
|
11668
11693
|
};
|
|
11669
11694
|
|
|
11670
11695
|
const md = {
|
|
11696
|
+
PH: [{"name":"Anul nou","fixed_date":[1,1]},{"name":"Ziua Internationala a Femeii","fixed_date":[3,8]},{"name":"Paștele","variable_date":"orthodox easter"},{"name":"A doua zi de Pasti","variable_date":"orthodox easter","offset":1},{"name":"Paştele Blăjinilor","variable_date":"orthodox easter","offset":8},{"name":"Ziua muncii","fixed_date":[5,1]},{"name":"Ziua Victoriei","fixed_date":[5,9]},{"name":"Ziua Independentei","fixed_date":[8,27]},{"name":"Limba noastră","fixed_date":[8,31]},{"name":"Craciun pe stil Nou","fixed_date":[12,25]}],
|
|
11671
11697
|
SH: [
|
|
11672
11698
|
{
|
|
11673
11699
|
name: "Vacanţa de iarnă",
|
|
@@ -11718,10 +11744,12 @@ const md = {
|
|
|
11718
11744
|
2024: [10,28,11,3],
|
|
11719
11745
|
2025: [10,27,11,2],
|
|
11720
11746
|
},
|
|
11721
|
-
]
|
|
11747
|
+
],
|
|
11748
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=47.0105&lon=28.8638&zoom=18&addressdetails=1&accept-language=ro,en"
|
|
11722
11749
|
};
|
|
11723
11750
|
|
|
11724
11751
|
const mt = {
|
|
11752
|
+
PH: [{"name":"L-Ewwel tas-Sena","fixed_date":[1,1]},{"name":"Nawfraġju ta' San Pawl","fixed_date":[2,10]},{"name":"San Ġużepp","fixed_date":[3,19]},{"name":"Jum il-Ħelsien","fixed_date":[3,31]},{"name":"Il-Ġimgħa l-Kbira","variable_date":"easter","offset":-2},{"name":"Jum il-Ħaddiem","fixed_date":[5,1]},{"name":"Sette Giugno","fixed_date":[6,7]},{"name":"L-Imnarja","fixed_date":[6,29]},{"name":"Santa Marija","fixed_date":[8,15]},{"name":"Jum il-Vitorja","fixed_date":[9,8]},{"name":"Jum l-Indipendenza","fixed_date":[9,21]},{"name":"Il-Kunċizzjoni","fixed_date":[12,8]},{"name":"Jum ir-Repubblika","fixed_date":[12,13]},{"name":"Il-Milied","fixed_date":[12,25]}],
|
|
11725
11753
|
SH: [
|
|
11726
11754
|
{
|
|
11727
11755
|
name: "Vaganzi tal-Milied",
|
|
@@ -11782,10 +11810,12 @@ const mt = {
|
|
|
11782
11810
|
2024: [11,1,11,5],
|
|
11783
11811
|
2025: [11,3,11,5],
|
|
11784
11812
|
},
|
|
11785
|
-
]
|
|
11813
|
+
],
|
|
11814
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=35.8997&lon=14.5147&zoom=18&addressdetails=1&accept-language=mt,en"
|
|
11786
11815
|
};
|
|
11787
11816
|
|
|
11788
11817
|
const mx = {
|
|
11818
|
+
PH: [{"name":"Año Nuevo","fixed_date":[1,1]},{"name":"Día de la Constitución","variable_date":"firstFebruaryMonday"},{"name":"Natalicio de Benito Juárez","variable_date":"firstMarchMonday","offset":14},{"name":"Día del Trabajador","fixed_date":[5,1]},{"name":"Día de la Independencia","fixed_date":[9,16]},{"name":"Día de la Revolución","variable_date":"firstNovemberMonday","offset":14},{"name":"Navidad","fixed_date":[12,25]}],
|
|
11789
11819
|
SH: [
|
|
11790
11820
|
{
|
|
11791
11821
|
name: "Receso de invierno",
|
|
@@ -11820,16 +11850,18 @@ const mx = {
|
|
|
11820
11850
|
name: "Fin de lecciones",
|
|
11821
11851
|
2026: [7,15,7,15],
|
|
11822
11852
|
},
|
|
11823
|
-
]
|
|
11853
|
+
],
|
|
11854
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=19.4326&lon=-99.1332&zoom=18&addressdetails=1&accept-language=es,en"
|
|
11824
11855
|
};
|
|
11825
11856
|
|
|
11826
11857
|
const na = {
|
|
11827
|
-
PH: [{"name":"New Year’s Day","fixed_date":[1,1]},{"name":"Independence Day","fixed_date":[3,21]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"
|
|
11858
|
+
PH: [{"name":"New Year’s Day","fixed_date":[1,1]},{"name":"Independence Day","fixed_date":[3,21]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Workers’ Day","fixed_date":[5,1]},{"name":"Cassinga Day","fixed_date":[5,4]},{"name":"Ascension Day","variable_date":"easter","offset":39},{"name":"Africa Day","fixed_date":[5,25]},{"name":"Heroes’ Day","fixed_date":[8,26]},{"name":"Human Rights Day","fixed_date":[12,10]},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Family Day","fixed_date":[12,26]}],
|
|
11828
11859
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Namibia&zoom=18&addressdetails=1&limit=1"
|
|
11829
11860
|
};
|
|
11830
11861
|
|
|
11831
11862
|
const nl = {
|
|
11832
11863
|
PH: [{"name":"Nieuwjaarsdag","fixed_date":[1,1]},{"name":"Goede vrijdag","variable_date":"easter","offset":-2},{"name":"Tweede Paasdag","variable_date":"easter","offset":1},{"name":"Koningsdag","fixed_date":[4,27]},{"name":"Bevrijdingsdag","fixed_date":[5,5]},{"name":"Hemelvaartsdag","variable_date":"easter","offset":39},{"name":"Tweede Pinksterdag","variable_date":"easter","offset":50},{"name":"Eerste Kerstdag","fixed_date":[12,25]},{"name":"Tweede Kerstdag","fixed_date":[12,26]}],
|
|
11864
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=52.3702&lon=4.8952&zoom=18&addressdetails=1&accept-language=nl,en",
|
|
11833
11865
|
"MI": {
|
|
11834
11866
|
SH: [
|
|
11835
11867
|
{
|
|
@@ -12052,17 +12084,17 @@ const nl = {
|
|
|
12052
12084
|
};
|
|
12053
12085
|
|
|
12054
12086
|
const no = {
|
|
12055
|
-
PH: [{"name":"
|
|
12087
|
+
PH: [{"name":"Første nyttårsdag","fixed_date":[1,1]},{"name":"Skjærtorsdag","variable_date":"easter","offset":-3},{"name":"Langfredag","variable_date":"easter","offset":-2},{"name":"Første påskedag","variable_date":"easter"},{"name":"Andre påskedag","variable_date":"easter","offset":1},{"name":"Arbeidernes dag","fixed_date":[5,1]},{"name":"Kristi himmelfartsdag","variable_date":"easter","offset":39},{"name":"Grunnlovsdagen","fixed_date":[5,17]},{"name":"Første pinsedag","variable_date":"easter","offset":49},{"name":"Andre pinsedag","variable_date":"easter","offset":50},{"name":"Første juledag","fixed_date":[12,25]},{"name":"Andre juledag","fixed_date":[12,26]}],
|
|
12056
12088
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=61.0&lon=8.0&zoom=8&addressdetails=1&accept-language=no,en"
|
|
12057
12089
|
};
|
|
12058
12090
|
|
|
12059
12091
|
const nz = {
|
|
12060
|
-
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Day after New Year's Day","fixed_date":[1,2]},{"name":"Waitangi Day","fixed_date":[2,6]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"
|
|
12092
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Day after New Year's Day","fixed_date":[1,2]},{"name":"Waitangi Day","fixed_date":[2,6]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Easter Monday","variable_date":"easter","offset":1},{"name":"Anzac Day","fixed_date":[4,25]},{"name":"King's Birthday","variable_date":"firstJuneMonday"},{"name":"Labour Day","variable_date":"firstOctoberMonday","offset":21},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Boxing Day","fixed_date":[12,26]}],
|
|
12061
12093
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-41.2922255&lon=174.7763033&zoom=16&addressdetails=1&accept-language=en"
|
|
12062
12094
|
};
|
|
12063
12095
|
|
|
12064
12096
|
const pl = {
|
|
12065
|
-
PH: [{"name":"Nowy Rok","fixed_date":[1,1]},{"name":"Święto Trzech Króli","fixed_date":[1,6]},{"name":"
|
|
12097
|
+
PH: [{"name":"Nowy Rok","fixed_date":[1,1]},{"name":"Święto Trzech Króli","fixed_date":[1,6]},{"name":"pierwszy dzień Wielkiej Nocy","variable_date":"easter"},{"name":"drugi dzień Wielkiej Nocy","variable_date":"easter","offset":1},{"name":"Święto Państwowe","fixed_date":[5,1]},{"name":"Święto Narodowe Trzeciego Maja","fixed_date":[5,3]},{"name":"pierwszy dzień Zielonych Świątek","variable_date":"easter","offset":49},{"name":"dzień Bożego Ciała","variable_date":"easter","offset":60},{"name":"Wniebowzięcie Najświętszej Marii Panny","fixed_date":[8,15]},{"name":"Wszystkich Świętych","fixed_date":[11,1]},{"name":"Narodowe Święto Niepodległości","fixed_date":[11,11]},{"name":"Wigilia Bożego Narodzenia","fixed_date":[12,24]},{"name":"pierwszy dzień Bożego Narodzenia","fixed_date":[12,25]},{"name":"drugi dzień Bożego Narodzenia","fixed_date":[12,26]}],
|
|
12066
12098
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=53.4825&lon=18.75823&zoom=18&addressdetails=1&accept-language=pl,en",
|
|
12067
12099
|
"Dolnośląskie": {
|
|
12068
12100
|
SH: [
|
|
@@ -12786,6 +12818,7 @@ const pl = {
|
|
|
12786
12818
|
};
|
|
12787
12819
|
|
|
12788
12820
|
const pt = {
|
|
12821
|
+
PH: [{"name":"Ano Novo","fixed_date":[1,1]},{"name":"Sexta-Feira Santa","variable_date":"easter","offset":-2},{"name":"Páscoa","variable_date":"easter"},{"name":"Dia da Liberdade","fixed_date":[4,25]},{"name":"Dia do trabalhador","fixed_date":[5,1]},{"name":"Corpo de Deus","variable_date":"easter","offset":60},{"name":"Dia de Portugal","fixed_date":[6,10]},{"name":"Assunção de Maria","fixed_date":[8,15]},{"name":"Implantação da República","fixed_date":[10,5]},{"name":"Todos os santos","fixed_date":[11,1]},{"name":"Restauração da Independência","fixed_date":[12,1]},{"name":"Imaculada Conceição","fixed_date":[12,8]},{"name":"Natal","fixed_date":[12,25]}],
|
|
12789
12822
|
SH: [
|
|
12790
12823
|
{
|
|
12791
12824
|
name: "Férias de Natal",
|
|
@@ -12837,11 +12870,12 @@ const pt = {
|
|
|
12837
12870
|
name: "Fim das aulas",
|
|
12838
12871
|
2028: [6,30,6,30],
|
|
12839
12872
|
},
|
|
12840
|
-
]
|
|
12873
|
+
],
|
|
12874
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=38.7223&lon=-9.1393&zoom=18&addressdetails=1&accept-language=pt,en"
|
|
12841
12875
|
};
|
|
12842
12876
|
|
|
12843
12877
|
const ro = {
|
|
12844
|
-
PH: [{"name":"Anul Nou","fixed_date":[1,1]},{"name":"A doua zi de Anul Nou","fixed_date":[1,2]},{"name":"Ziua Unirii Principatelor Române
|
|
12878
|
+
PH: [{"name":"Anul Nou","fixed_date":[1,1]},{"name":"A doua zi de Anul Nou","fixed_date":[1,2]},{"name":"Bobotează","fixed_date":[1,6]},{"name":"Sfântul Ioan Botezătorul","fixed_date":[1,7]},{"name":"Ziua Unirii Principatelor Române","fixed_date":[1,24]},{"name":"Vinerea Mare","variable_date":"orthodox easter","offset":-2},{"name":"Paștele","variable_date":"orthodox easter"},{"name":"A doua zi de Paști","variable_date":"orthodox easter","offset":1},{"name":"Ziua Muncii","fixed_date":[5,1]},{"name":"Ziua Copilului","fixed_date":[6,1]},{"name":"Rusaliile","variable_date":"orthodox easter","offset":50},{"name":"A doua zi de Rusalii","variable_date":"orthodox easter","offset":51},{"name":"Adormirea Maicii Domnului","fixed_date":[8,15]},{"name":"Sfântul Andrei","fixed_date":[11,30]},{"name":"Ziua Națională a României","fixed_date":[12,1]},{"name":"Crăciunul","fixed_date":[12,25]},{"name":"A doua zi de Crăciun","fixed_date":[12,26]}],
|
|
12845
12879
|
SH: [
|
|
12846
12880
|
{
|
|
12847
12881
|
name: "Vacanța de iarnă",
|
|
@@ -13381,6 +13415,7 @@ const ro = {
|
|
|
13381
13415
|
};
|
|
13382
13416
|
|
|
13383
13417
|
const rs = {
|
|
13418
|
+
PH: [{"name":"Нова година","fixed_date":[1,1]},{"name":"Нова година","fixed_date":[1,2]},{"name":"Дан државности Србије","fixed_date":[2,16]},{"name":"Велики петак","variable_date":"orthodox easter","offset":-2},{"name":"Васкрс","variable_date":"orthodox easter"},{"name":"Васкрсни понедељак","variable_date":"orthodox easter","offset":1},{"name":"Празник рада","fixed_date":[5,1]},{"name":"Празник рада","fixed_date":[5,2]},{"name":"Дан примирја","fixed_date":[11,11]}],
|
|
13384
13419
|
SH: [
|
|
13385
13420
|
{
|
|
13386
13421
|
name: "Зимски распуст",
|
|
@@ -13424,7 +13459,8 @@ const rs = {
|
|
|
13424
13459
|
name: "Сретењски распуст",
|
|
13425
13460
|
2026: [2,16,2,20],
|
|
13426
13461
|
},
|
|
13427
|
-
]
|
|
13462
|
+
],
|
|
13463
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=44.8176&lon=20.4569&zoom=18&addressdetails=1&accept-language=sr,en"
|
|
13428
13464
|
};
|
|
13429
13465
|
|
|
13430
13466
|
const ru = {
|
|
@@ -13579,6 +13615,7 @@ const si = {
|
|
|
13579
13615
|
2024: [5,3,5,3],
|
|
13580
13616
|
},
|
|
13581
13617
|
],
|
|
13618
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=46.0569&lon=14.5058&zoom=18&addressdetails=1&accept-language=sl,en",
|
|
13582
13619
|
"vzhodne regije": {
|
|
13583
13620
|
SH: [
|
|
13584
13621
|
{
|
|
@@ -13610,7 +13647,7 @@ const si = {
|
|
|
13610
13647
|
};
|
|
13611
13648
|
|
|
13612
13649
|
const sk = {
|
|
13613
|
-
PH: [{"name":"Deň vzniku Slovenskej republiky","fixed_date":[1,1]},{"name":"Zjavenie Pána","fixed_date":[1,6]},{"name":"Veľký piatok","variable_date":"easter","offset":-2},{"name":"Veľkonočná nedeľa","variable_date":"easter"},{"name":"Veľkonočný pondelok","variable_date":"easter","offset":1},{"name":"Sviatok práce","fixed_date":[5,1]},{"name":"
|
|
13650
|
+
PH: [{"name":"Deň vzniku Slovenskej republiky","fixed_date":[1,1]},{"name":"Zjavenie Pána","fixed_date":[1,6]},{"name":"Veľký piatok","variable_date":"easter","offset":-2},{"name":"Veľkonočná nedeľa","variable_date":"easter"},{"name":"Veľkonočný pondelok","variable_date":"easter","offset":1},{"name":"Sviatok práce","fixed_date":[5,1]},{"name":"Sviatok svätého Cyrila a Metoda","fixed_date":[7,5]},{"name":"Výročie Slovenského národného povstania","fixed_date":[8,29]},{"name":"Sviatok všetkých svätých","fixed_date":[11,1]},{"name":"Štedrý deň","fixed_date":[12,24]},{"name":"Prvý sviatok vianočný","fixed_date":[12,25]},{"name":"Druhý sviatok vianočný","fixed_date":[12,26]}],
|
|
13614
13651
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=48.7411522&lon=19.4528646&zoom=18&addressdetails=1&accept-language=sk,en",
|
|
13615
13652
|
"Banskobystrický kraj": {
|
|
13616
13653
|
SH: [
|
|
@@ -14119,6 +14156,7 @@ const sk = {
|
|
|
14119
14156
|
};
|
|
14120
14157
|
|
|
14121
14158
|
const sm = {
|
|
14159
|
+
PH: [{"name":"Capodanno","fixed_date":[1,1]},{"name":"Epifania","fixed_date":[1,6]},{"name":"Festa di Sant’Agata","fixed_date":[2,5]},{"name":"Anniversario dell'Arengo","fixed_date":[3,25]},{"name":"Cerimonia di investitura dei Capitani Reggenti","fixed_date":[4,1]},{"name":"Domenica di Pasqua","variable_date":"easter"},{"name":"Lunedì dell’Angelo","variable_date":"easter","offset":1},{"name":"Festa del Lavoro","fixed_date":[5,1]},{"name":"Corpus Domini","variable_date":"easter","offset":60},{"name":"Anniversario della caduta del Fascismo e Festa della Libertà","fixed_date":[7,28]},{"name":"Ferragosto","fixed_date":[8,15]},{"name":"Festa di San Marino e di Fondazione della Repubblica","fixed_date":[9,3]},{"name":"Cerimonia di investitura dei Capitani Reggenti","fixed_date":[10,1]},{"name":"Tutti i Santi","fixed_date":[11,1]},{"name":"Commemorazione dei defunti","fixed_date":[11,2]},{"name":"Immacolata Concezione","fixed_date":[12,8]},{"name":"Natale","fixed_date":[12,25]},{"name":"Santo Stefano","fixed_date":[12,26]}],
|
|
14122
14160
|
SH: [
|
|
14123
14161
|
{
|
|
14124
14162
|
name: "Vacanze Natalizie",
|
|
@@ -14153,11 +14191,13 @@ const sm = {
|
|
|
14153
14191
|
name: "Termine lezioni",
|
|
14154
14192
|
2026: [6,17,6,17],
|
|
14155
14193
|
},
|
|
14156
|
-
]
|
|
14194
|
+
],
|
|
14195
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=43.9424&lon=12.4578&zoom=18&addressdetails=1&accept-language=it,en"
|
|
14157
14196
|
};
|
|
14158
14197
|
|
|
14159
14198
|
const ua = {
|
|
14160
|
-
PH: [{"name":"Новий рік","fixed_date":[1,1]},{"name":"
|
|
14199
|
+
PH: [{"name":"Новий рік","fixed_date":[1,1]},{"name":"Міжнародний жіночий день","fixed_date":[3,8]},{"name":"Великдень","variable_date":"orthodox easter","offset":1},{"name":"День міжнародної солідарності трудящих","fixed_date":[5,1]},{"name":"День пам'яті та перемоги над нацизмом у Другій світовій війні","fixed_date":[5,8]},{"name":"Трійця","variable_date":"orthodox easter","offset":50},{"name":"День Конституції України","fixed_date":[6,28]},{"name":"День Української Державності","fixed_date":[7,15]},{"name":"День Незалежності України","fixed_date":[8,24]},{"name":"День захисників і захисниць України","fixed_date":[10,1]},{"name":"Різдво Христове","fixed_date":[12,25]}],
|
|
14200
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=50.4501&lon=30.5234&zoom=18&addressdetails=1&accept-language=uk,en"
|
|
14161
14201
|
};
|
|
14162
14202
|
|
|
14163
14203
|
const us = {
|
|
@@ -14464,6 +14504,7 @@ const xa = {
|
|
|
14464
14504
|
};
|
|
14465
14505
|
|
|
14466
14506
|
const za = {
|
|
14507
|
+
PH: [{"name":"New Year's Day","fixed_date":[1,1]},{"name":"Human Rights Day","fixed_date":[3,21]},{"name":"Good Friday","variable_date":"easter","offset":-2},{"name":"Family Day","variable_date":"easter","offset":1},{"name":"Freedom Day","fixed_date":[4,27]},{"name":"Workers' Day","fixed_date":[5,1]},{"name":"Youth Day","fixed_date":[6,16]},{"name":"National Women's Day","fixed_date":[8,9]},{"name":"Heritage Day","fixed_date":[9,24]},{"name":"Day of Reconciliation","fixed_date":[12,16]},{"name":"Christmas Day","fixed_date":[12,25]},{"name":"Day of Goodwill","fixed_date":[12,26]}],
|
|
14467
14508
|
SH: [
|
|
14468
14509
|
{
|
|
14469
14510
|
name: "Summer Break",
|
|
@@ -14520,10 +14561,15 @@ const za = {
|
|
|
14520
14561
|
2026: [9,25,9,25],
|
|
14521
14562
|
2027: [4,26,4,26],
|
|
14522
14563
|
},
|
|
14523
|
-
]
|
|
14564
|
+
],
|
|
14565
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-25.7462&lon=28.1881&zoom=18&addressdetails=1&accept-language=en,af"
|
|
14524
14566
|
};
|
|
14525
14567
|
|
|
14526
14568
|
/**
|
|
14569
|
+
* SPDX-FileCopyrightText: © opening_hours.js contributors
|
|
14570
|
+
*
|
|
14571
|
+
* SPDX-License-Identifier: LGPL-3.0-only
|
|
14572
|
+
*
|
|
14527
14573
|
* Holiday definitions for opening_hours.js
|
|
14528
14574
|
*
|
|
14529
14575
|
* All countries are now sourced from generated-openholidays.js
|
|
@@ -14556,11 +14602,13 @@ var holiday_definitions = /*#__PURE__*/Object.freeze({
|
|
|
14556
14602
|
fi: fi,
|
|
14557
14603
|
fr: fr,
|
|
14558
14604
|
gb: gb,
|
|
14605
|
+
ge: ge,
|
|
14559
14606
|
gr: gr,
|
|
14560
14607
|
hr: hr,
|
|
14561
14608
|
hu: hu,
|
|
14562
14609
|
ie: ie,
|
|
14563
14610
|
it: it,
|
|
14611
|
+
je: je,
|
|
14564
14612
|
jp: jp,
|
|
14565
14613
|
li: li,
|
|
14566
14614
|
lt: lt,
|
|
@@ -14642,6 +14690,9 @@ var data$2 = { "assuming ok for ko":{ daytime:"sunrise-sunset",
|
|
|
14642
14690
|
"please use fallback rule":{ otherwise:"||" },
|
|
14643
14691
|
"please use ok for missing data":{ "\\?":"" },
|
|
14644
14692
|
"please use ok for ko":{ "→":"-",
|
|
14693
|
+
"‐":"-",
|
|
14694
|
+
"‑":"-",
|
|
14695
|
+
"‒":"-",
|
|
14645
14696
|
"−":"-",
|
|
14646
14697
|
"—":"-",
|
|
14647
14698
|
"ー":"-",
|
|
@@ -20643,6 +20694,12 @@ data.nl;
|
|
|
20643
20694
|
data.ru;
|
|
20644
20695
|
data.it;
|
|
20645
20696
|
|
|
20697
|
+
/**
|
|
20698
|
+
* SPDX-FileCopyrightText: © 2025 Kristjan ESPERANTO <https://github.com/KristjanESPERANTO>
|
|
20699
|
+
*
|
|
20700
|
+
* SPDX-License-Identifier: LGPL-3.0-only
|
|
20701
|
+
*/
|
|
20702
|
+
|
|
20646
20703
|
const resources = data;
|
|
20647
20704
|
|
|
20648
20705
|
// Simple i18n object compatible with the minimal features used in src/index.js
|
|
@@ -20804,6 +20861,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
20804
20861
|
'opening_hours:.+' : { 'mode' : 0, },
|
|
20805
20862
|
'.+:opening_hours' : { 'mode' : 0, },
|
|
20806
20863
|
'.+:opening_hours:.+' : { 'mode' : 0, },
|
|
20864
|
+
'.+:conditional' : { 'mode' : 0, },
|
|
20807
20865
|
'smoking_hours' : { 'mode' : 0, },
|
|
20808
20866
|
'service_times' : { 'mode' : 2, },
|
|
20809
20867
|
'happy_hours' : { 'mode' : 0, },
|
|
@@ -20980,7 +21038,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
20980
21038
|
throw t('nothing');
|
|
20981
21039
|
}
|
|
20982
21040
|
|
|
20983
|
-
const parsing_warnings = []; // Elements are
|
|
21041
|
+
const parsing_warnings = []; // Elements are arrays [nrule, at, message, tokens_to_use?] fed into formatWarnErrorMessage().
|
|
20984
21042
|
let done_with_warnings = false; // The functions which returns warnings can be called multiple times.
|
|
20985
21043
|
let done_with_selector_reordering = false;
|
|
20986
21044
|
let done_with_selector_reordering_warnings = false;
|
|
@@ -21168,9 +21226,13 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21168
21226
|
/* Format warning or error message for the user. {{{
|
|
21169
21227
|
*
|
|
21170
21228
|
* :param nrule: Rule number starting with 0.
|
|
21171
|
-
*
|
|
21229
|
+
* -1: error during tokenization, `at` is remaining value.length.
|
|
21230
|
+
* string: prettified value, `at` is a byte offset into it.
|
|
21231
|
+
* :param at: Token position. -1 means end of rule (no token at that position).
|
|
21172
21232
|
* :param message: Human readable string with the message.
|
|
21173
|
-
* :param tokens_to_use:
|
|
21233
|
+
* :param tokens_to_use: Optional. Defaults to `tokens`. Pass `new_tokens` from
|
|
21234
|
+
* getWarnings() because new_tokens can have more entries than tokens
|
|
21235
|
+
* when Additional Rules are present.
|
|
21174
21236
|
* :returns: String with position of the warning or error marked for the user.
|
|
21175
21237
|
*/
|
|
21176
21238
|
function formatWarnErrorMessage(nrule, at, message, tokens_to_use) {
|
|
@@ -21178,14 +21240,20 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21178
21240
|
tokens_to_use = tokens;
|
|
21179
21241
|
}
|
|
21180
21242
|
// console.log(`Called formatWarnErrorMessage: ${nrule}, ${at}, ${message}`);
|
|
21181
|
-
// FIXME: Change to new_tokens.
|
|
21182
21243
|
if (typeof nrule === 'number') {
|
|
21183
|
-
let pos
|
|
21184
|
-
if (nrule === -1) {
|
|
21244
|
+
let pos;
|
|
21245
|
+
if (nrule === -1) {
|
|
21246
|
+
// at is remaining value.length at the point of the error.
|
|
21185
21247
|
pos = value.length - at;
|
|
21186
|
-
} else {
|
|
21248
|
+
} else {
|
|
21249
|
+
if (typeof tokens_to_use[nrule] === 'undefined') {
|
|
21250
|
+
// Caller passed the wrong token array (tokens instead of new_tokens?).
|
|
21251
|
+
formatLibraryBugMessage('Bug in warning generation code: tokens_to_use[nrule] is undefined for nrule=' + nrule + '.');
|
|
21252
|
+
return value + ' <--- (' + message + ')';
|
|
21253
|
+
}
|
|
21187
21254
|
if (typeof tokens_to_use[nrule][0][at] === 'undefined') {
|
|
21188
21255
|
if (typeof tokens_to_use[nrule][0] !== 'undefined' && at === -1) {
|
|
21256
|
+
// at === -1: point to end of rule, use offset of next rule entry if available.
|
|
21189
21257
|
pos = value.length;
|
|
21190
21258
|
if (typeof tokens_to_use[nrule+1] === 'object' && typeof tokens_to_use[nrule+1][2] === 'number') {
|
|
21191
21259
|
pos -= tokens_to_use[nrule+1][2];
|
|
@@ -21193,13 +21261,11 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21193
21261
|
pos -= tokens_to_use[nrule][2];
|
|
21194
21262
|
}
|
|
21195
21263
|
} else {
|
|
21196
|
-
//
|
|
21197
|
-
//
|
|
21264
|
+
// Token position is out of range. Run real_test regularly to catch this.
|
|
21198
21265
|
formatLibraryBugMessage('Bug in warning generation code which could not determine the exact position of the warning or error in value.');
|
|
21199
21266
|
pos = value.length;
|
|
21200
21267
|
if (typeof tokens_to_use[nrule][2] === 'number') {
|
|
21201
|
-
// Fallback:
|
|
21202
|
-
// Run real_test regularly to fix the problem before a user is confronted with it.
|
|
21268
|
+
// Fallback: point to last token in the rule which caused the problem.
|
|
21203
21269
|
pos -= tokens_to_use[nrule][2];
|
|
21204
21270
|
console.warn('Last token for rule: ' + JSON.stringify(tokens_to_use[nrule]));
|
|
21205
21271
|
} else {
|
|
@@ -21219,6 +21285,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21219
21285
|
} else if (typeof nrule === 'string') {
|
|
21220
21286
|
return nrule.substring(0, at) + ' <--- (' + message + ')';
|
|
21221
21287
|
}
|
|
21288
|
+
return message;
|
|
21222
21289
|
}
|
|
21223
21290
|
/* }}} */
|
|
21224
21291
|
|
|
@@ -21335,7 +21402,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21335
21402
|
t('please use ok for ko', {'ko': tmp[0], 'ok': ok})]);
|
|
21336
21403
|
}
|
|
21337
21404
|
value = ok + value.substr(tmp[0].length);
|
|
21338
|
-
} else if ((tmp = value.match(/^(&|_
|
|
21405
|
+
} else if ((tmp = value.match(/^(&|_|→|‐|‑|‒|–|−|—|ー|=|·|öffnungszeit(?:en)?:?|opening_hours\s*=|\?|~|~|:|always (?:open|closed)|24x7|24 hours 7 days a week|24 hours|7 ?days(?:(?: a |\/)week)?|7j?\/7|all days?|every day|(?:bis|till?|-|–)? ?(?:open ?end|late)|(?:(?:one )?day (?:before|after) )?(?:school|public) holidays?|days(?=\s|$|[^\p{L}_])|до|рм|ам|jours fériés|on work days?|sonntags?|(?:nur |an )?sonn-?(?:(?: und |\/)feiertag(?:s|en?)?)?|(?:an )?feiertag(?:s|en?)?|(?:nach|on|by) (?:appointments?|vereinbarung|absprache)|p\.m\.|a\.m\.|(?:[^\s\d\p{P}\p{S}\p{C}]|_)+(?=\s|$|[\s\d\p{Po}\p{Ps}\p{Pe}\p{Pd}\p{Pf}\p{Pi}\p{S}\p{C}])|à|á|mo|tu|we|th|fr|sa|su|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(\.?)/iu))) {
|
|
21339
21406
|
/* Handle all remaining words and specific other characters with error tolerance.
|
|
21340
21407
|
*
|
|
21341
21408
|
* à|á: Word boundary does not work with Unicode chars: 'test à test'.match(/\bà\b/i)
|
|
@@ -21631,7 +21698,8 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21631
21698
|
:
|
|
21632
21699
|
t('selector multi 2b', {'what': t(selector_type + (/^(?:month|weekday)$/.test(selector_type) ? 's' : ' ranges'))})
|
|
21633
21700
|
)
|
|
21634
|
-
})
|
|
21701
|
+
}),
|
|
21702
|
+
new_tokens]
|
|
21635
21703
|
);
|
|
21636
21704
|
done_with_selector_reordering = true; // Correcting the selector order makes no sense if this kind of issue exists.
|
|
21637
21705
|
}
|
|
@@ -21642,7 +21710,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21642
21710
|
&& Object.keys(used_selectors[nrule]).length === 1
|
|
21643
21711
|
) {
|
|
21644
21712
|
if (nrule !== 0) {
|
|
21645
|
-
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('default state')]);
|
|
21713
|
+
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('default state'), new_tokens]);
|
|
21646
21714
|
}
|
|
21647
21715
|
/* }}} */
|
|
21648
21716
|
/* Check if a rule (with state open) has no time selector {{{ */
|
|
@@ -21656,7 +21724,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21656
21724
|
typeof used_selectors[nrule]['24/7'] === 'undefined'
|
|
21657
21725
|
) {
|
|
21658
21726
|
|
|
21659
|
-
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('vague')]);
|
|
21727
|
+
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('vague'), new_tokens]);
|
|
21660
21728
|
}
|
|
21661
21729
|
}
|
|
21662
21730
|
/* }}} */
|
|
@@ -21665,7 +21733,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21665
21733
|
&& new_tokens[nrule][0][used_selectors[nrule].comment[0]][0].length === 0
|
|
21666
21734
|
) {
|
|
21667
21735
|
|
|
21668
|
-
parsing_warnings.push([nrule, used_selectors[nrule].comment[0], t('empty comment')]);
|
|
21736
|
+
parsing_warnings.push([nrule, used_selectors[nrule].comment[0], t('empty comment'), new_tokens]);
|
|
21669
21737
|
}
|
|
21670
21738
|
/* }}} */
|
|
21671
21739
|
/* Check for valid use of <separator_for_readability> {{{ */
|
|
@@ -21680,7 +21748,8 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21680
21748
|
|
|
21681
21749
|
if (new_tokens[nrule][0][used_selectors[nrule][selector_type][0]][0] === ':') {
|
|
21682
21750
|
parsing_warnings.push([nrule, used_selectors[nrule][selector_type][0],
|
|
21683
|
-
t('separator_for_readability')
|
|
21751
|
+
t('separator_for_readability'),
|
|
21752
|
+
new_tokens
|
|
21684
21753
|
]);
|
|
21685
21754
|
}
|
|
21686
21755
|
}
|
|
@@ -21774,6 +21843,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
21774
21843
|
&& (
|
|
21775
21844
|
(
|
|
21776
21845
|
typeof oh_key === 'string'
|
|
21846
|
+
&& oh_regex_key
|
|
21777
21847
|
&& osm_tag_defaults[oh_regex_key]['warn_for_PH_missing']
|
|
21778
21848
|
)
|
|
21779
21849
|
|| (typeof oh_key !== 'string')
|
|
@@ -22918,6 +22988,11 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
22918
22988
|
// The target day is in the next month. If the target day without the added days is not in this month
|
|
22919
22989
|
if (target_day_this_month.getTime() >= start_of_next_month.getTime())
|
|
22920
22990
|
return [false, start_of_next_month];
|
|
22991
|
+
} else if (target_day_this_month.getTime() >= start_of_next_month.getTime()) {
|
|
22992
|
+
// The nth weekday overflows to next month (e.g. no 5th Sunday in February),
|
|
22993
|
+
// but negative add_days pulled the result back into this month.
|
|
22994
|
+
// The nth weekday still does not exist this month, so do not match.
|
|
22995
|
+
return [false, start_of_next_month];
|
|
22921
22996
|
}
|
|
22922
22997
|
|
|
22923
22998
|
let target_day_with_added_moved_days_this_month;
|
|
@@ -23659,15 +23734,116 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
23659
23734
|
}
|
|
23660
23735
|
/* }}} */
|
|
23661
23736
|
|
|
23737
|
+
// Shift rule support for transferable holidays. {{{
|
|
23738
|
+
|
|
23739
|
+
const weekday_name_to_num = {
|
|
23740
|
+
sunday: 0, monday: 1, tuesday: 2, wednesday: 3,
|
|
23741
|
+
thursday: 4, friday: 5, saturday: 6,
|
|
23742
|
+
};
|
|
23743
|
+
|
|
23744
|
+
const shift_rule_cache = Object.create(null);
|
|
23745
|
+
|
|
23746
|
+
/* Compile a shift_rule string into a (Date) => Date shifter.
|
|
23747
|
+
*
|
|
23748
|
+
* A `shift_rule` field on a holiday definition moves the holiday’s date
|
|
23749
|
+
* depending on the weekday it falls on. The syntax is a subset of the
|
|
23750
|
+
* date-holidays DSL: chained `if … then …` clauses, first match wins,
|
|
23751
|
+
* unmatched dates stay unchanged.
|
|
23752
|
+
*
|
|
23753
|
+
* Format:
|
|
23754
|
+
* “if <wd>[,<wd>...] then <next|previous> <wd> [if … then … <wd>]*”
|
|
23755
|
+
*
|
|
23756
|
+
* Collision behaviour: if the shifted date would land on another
|
|
23757
|
+
* non-shifted holiday in the same year, the holiday keeps its original
|
|
23758
|
+
* date instead.
|
|
23759
|
+
*/
|
|
23760
|
+
function compileShiftRule(rule) {
|
|
23761
|
+
if (shift_rule_cache[rule]) {
|
|
23762
|
+
return shift_rule_cache[rule];
|
|
23763
|
+
}
|
|
23764
|
+
const clauses = parseShiftRule(rule);
|
|
23765
|
+
const shifter = function (date) {
|
|
23766
|
+
return applyShiftClauses(clauses, date);
|
|
23767
|
+
};
|
|
23768
|
+
shift_rule_cache[rule] = shifter;
|
|
23769
|
+
return shifter;
|
|
23770
|
+
}
|
|
23771
|
+
|
|
23772
|
+
/* Parse a shift_rule string into a list of clause objects.
|
|
23773
|
+
*
|
|
23774
|
+
* Each clause has the shape:
|
|
23775
|
+
* { from_wds: [<int>, ...], direction: "next"|"previous", target_wd: <int> }
|
|
23776
|
+
* where weekdays are 0–6 (Sunday–Saturday).
|
|
23777
|
+
*/
|
|
23778
|
+
function parseShiftRule(rule) {
|
|
23779
|
+
function fail(detail) {
|
|
23780
|
+
throw formatLibraryBugMessage(
|
|
23781
|
+
'shift_rule: ' + detail + ' in "' + rule + '"'
|
|
23782
|
+
);
|
|
23783
|
+
}
|
|
23784
|
+
function toWeekdayNum(name) {
|
|
23785
|
+
const n = name.trim();
|
|
23786
|
+
if (!(n in weekday_name_to_num)) {
|
|
23787
|
+
fail('unknown weekday "' + n + '"');
|
|
23788
|
+
}
|
|
23789
|
+
return weekday_name_to_num[n];
|
|
23790
|
+
}
|
|
23791
|
+
|
|
23792
|
+
const clause_regex = /if\s+([a-z,\s]+?)\s+then\s+(next|previous)\s+([a-z]+)/g;
|
|
23793
|
+
const clauses = [];
|
|
23794
|
+
let last_end = 0;
|
|
23795
|
+
let match;
|
|
23796
|
+
while ((match = clause_regex.exec(rule)) !== null) {
|
|
23797
|
+
// Any text before the first match or between matches must be blank.
|
|
23798
|
+
if (rule.slice(last_end, match.index).trim() !== '') {
|
|
23799
|
+
fail('cannot parse');
|
|
23800
|
+
}
|
|
23801
|
+
clauses.push({
|
|
23802
|
+
from_wds: match[1].split(',').map(toWeekdayNum),
|
|
23803
|
+
direction: match[2],
|
|
23804
|
+
target_wd: toWeekdayNum(match[3]),
|
|
23805
|
+
});
|
|
23806
|
+
last_end = clause_regex.lastIndex;
|
|
23807
|
+
}
|
|
23808
|
+
if (clauses.length === 0 || rule.slice(last_end).trim() !== '') {
|
|
23809
|
+
fail('cannot parse');
|
|
23810
|
+
}
|
|
23811
|
+
return clauses;
|
|
23812
|
+
}
|
|
23813
|
+
|
|
23814
|
+
/* Apply the first matching clause to `date` and return the shifted date.
|
|
23815
|
+
* Returns the original date if no clause matches.
|
|
23816
|
+
*/
|
|
23817
|
+
function applyShiftClauses(clauses, date) {
|
|
23818
|
+
const wd = date.getDay();
|
|
23819
|
+
for (let i = 0; i < clauses.length; i++) {
|
|
23820
|
+
const c = clauses[i];
|
|
23821
|
+
if (c.from_wds.indexOf(wd) === -1) continue;
|
|
23822
|
+
|
|
23823
|
+
// Distance to the target weekday, always in the range [1, 7].
|
|
23824
|
+
// The modulo alone could yield 0 when wd === target_wd, but the
|
|
23825
|
+
// from_wds guard above prevents that for well-formed rules.
|
|
23826
|
+
// The "|| 7" is a safety net: if it ever did produce 0 we would
|
|
23827
|
+
// shift by a full week rather than silently not moving the date.
|
|
23828
|
+
let diff;
|
|
23829
|
+
if (c.direction === 'next') {
|
|
23830
|
+
diff = ((c.target_wd - wd + 7) % 7) || 7; // move forward
|
|
23831
|
+
} else {
|
|
23832
|
+
diff = -(((wd - c.target_wd + 7) % 7) || 7); // move backward
|
|
23833
|
+
}
|
|
23834
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + diff);
|
|
23835
|
+
}
|
|
23836
|
+
return date;
|
|
23837
|
+
}
|
|
23838
|
+
|
|
23662
23839
|
function getApplyingHolidaysForYear(applying_holidays, year, add_days) {
|
|
23663
23840
|
const movableDays = getMovableEventsForYear(year);
|
|
23664
23841
|
|
|
23665
|
-
|
|
23666
|
-
|
|
23667
|
-
|
|
23668
|
-
applying_holidays.forEach(function (holiday_item) {
|
|
23842
|
+
/* Pass 1: resolve the base date of every holiday (no shift, no add_days). */
|
|
23843
|
+
const resolved = applying_holidays.map(function (holiday_item) {
|
|
23844
|
+
let base_date;
|
|
23669
23845
|
if ('fixed_date' in holiday_item) {
|
|
23670
|
-
|
|
23846
|
+
base_date = new Date(year,
|
|
23671
23847
|
holiday_item.fixed_date[0] - 1,
|
|
23672
23848
|
holiday_item.fixed_date[1]
|
|
23673
23849
|
);
|
|
@@ -23676,27 +23852,49 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
23676
23852
|
if (!selected_movableDay) {
|
|
23677
23853
|
throw t('movable no formula', {'name': holiday_item.name});
|
|
23678
23854
|
}
|
|
23679
|
-
|
|
23680
|
-
|
|
23681
|
-
date_offset = holiday_item.offset;
|
|
23682
|
-
}
|
|
23683
|
-
next_holiday = new Date(selected_movableDay.getFullYear(),
|
|
23855
|
+
const date_offset = 'offset' in holiday_item ? holiday_item.offset : 0;
|
|
23856
|
+
base_date = new Date(selected_movableDay.getFullYear(),
|
|
23684
23857
|
selected_movableDay.getMonth(),
|
|
23685
23858
|
selected_movableDay.getDate() + date_offset
|
|
23686
23859
|
);
|
|
23687
|
-
if (year !==
|
|
23860
|
+
if (year !== base_date.getFullYear()) {
|
|
23688
23861
|
throw t('movable not in year', {
|
|
23689
23862
|
'name': holiday_item.variable_date, 'days': date_offset});
|
|
23690
23863
|
}
|
|
23691
23864
|
} else {
|
|
23692
23865
|
throw formatLibraryBugMessage('Unexpected object: ' + JSON.stringify(holiday_item, null, ' '));
|
|
23693
23866
|
}
|
|
23867
|
+
return { date: base_date, holiday: holiday_item };
|
|
23868
|
+
});
|
|
23694
23869
|
|
|
23695
|
-
|
|
23696
|
-
|
|
23870
|
+
/* Pass 2: apply shift_rule with collision detection.
|
|
23871
|
+
* Collisions are checked against the nominal (non-shifted, no-add_days)
|
|
23872
|
+
* dates of all non-shifted holidays — never against other shifted ones,
|
|
23873
|
+
* to keep the result deterministic regardless of declaration order.
|
|
23874
|
+
*/
|
|
23875
|
+
const fixed_times = new Set();
|
|
23876
|
+
resolved.forEach(function (r) {
|
|
23877
|
+
if (!r.holiday.shift_rule) {
|
|
23878
|
+
fixed_times.add(r.date.getTime());
|
|
23697
23879
|
}
|
|
23880
|
+
});
|
|
23881
|
+
resolved.forEach(function (r) {
|
|
23882
|
+
if (!r.holiday.shift_rule) return;
|
|
23883
|
+
const shifter = compileShiftRule(r.holiday.shift_rule);
|
|
23884
|
+
const shifted = shifter(r.date);
|
|
23885
|
+
if (shifted.getTime() === r.date.getTime()) return;
|
|
23886
|
+
// Keep original date on collision with a non-shifted holiday.
|
|
23887
|
+
if (fixed_times.has(shifted.getTime())) return;
|
|
23888
|
+
r.date = shifted;
|
|
23889
|
+
});
|
|
23698
23890
|
|
|
23699
|
-
|
|
23891
|
+
/* Pass 3: apply add_days uniformly and sort. */
|
|
23892
|
+
let sorted_holidays = resolved.map(function (r) {
|
|
23893
|
+
let d = r.date;
|
|
23894
|
+
if (add_days[0]) {
|
|
23895
|
+
d = new Date(d.getFullYear(), d.getMonth(), d.getDate() + add_days[0]);
|
|
23896
|
+
}
|
|
23897
|
+
return [ d, r.holiday.name ];
|
|
23700
23898
|
});
|
|
23701
23899
|
|
|
23702
23900
|
sorted_holidays = sorted_holidays.sort(function(a,b){
|
|
@@ -23720,7 +23918,7 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
23720
23918
|
tokens[at][3] = 'year';
|
|
23721
23919
|
for (; at < tokens.length; at++) {
|
|
23722
23920
|
if (matchTokens(tokens, at, 'year')) {
|
|
23723
|
-
let is_range
|
|
23921
|
+
let is_range,
|
|
23724
23922
|
has_period,
|
|
23725
23923
|
period;
|
|
23726
23924
|
if (matchTokens(tokens, at+1, '-', 'year', '/', 'number')) {
|
|
@@ -24678,11 +24876,20 @@ function index(value, nominatim_object, optional_conf_parm) {
|
|
|
24678
24876
|
/* }}} */
|
|
24679
24877
|
|
|
24680
24878
|
/* getNextChange: Get time of next status change {{{ */
|
|
24879
|
+
/*
|
|
24880
|
+
* Return next visible state change (open/closed/unknown).
|
|
24881
|
+
* Skip comment-only boundaries; use getIterator(...).advance() for those.
|
|
24882
|
+
*/
|
|
24681
24883
|
this.getNextChange = function(date, maxdate) {
|
|
24682
24884
|
const it = this.getIterator(date);
|
|
24683
|
-
|
|
24684
|
-
|
|
24685
|
-
|
|
24885
|
+
const initial_state = it.getState();
|
|
24886
|
+
const initial_unknown = it.getUnknown();
|
|
24887
|
+
while (it.advance(maxdate)) {
|
|
24888
|
+
if (it.getState() !== initial_state || it.getUnknown() !== initial_unknown) {
|
|
24889
|
+
return it.getDate();
|
|
24890
|
+
}
|
|
24891
|
+
}
|
|
24892
|
+
return undefined;
|
|
24686
24893
|
};
|
|
24687
24894
|
/* }}} */
|
|
24688
24895
|
|