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
package/build/opening_hours.js
CHANGED
|
@@ -119,12 +119,12 @@
|
|
|
119
119
|
};
|
|
120
120
|
|
|
121
121
|
const ar = {
|
|
122
|
-
PH: [{"name":"Año Nuevo","fixed_date":[1,1]},{"name":"Carnaval
|
|
122
|
+
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]}],
|
|
123
123
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-34.60377&lon=-58.38159&zoom=16&addressdetails=1&accept-language=es"
|
|
124
124
|
};
|
|
125
125
|
|
|
126
126
|
const at = {
|
|
127
|
-
PH: [{"name":"
|
|
127
|
+
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]}],
|
|
128
128
|
SH: [
|
|
129
129
|
{
|
|
130
130
|
name: "Osterferien",
|
|
@@ -557,52 +557,52 @@
|
|
|
557
557
|
};
|
|
558
558
|
|
|
559
559
|
const au = {
|
|
560
|
-
PH: [{"name":"New
|
|
560
|
+
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]}],
|
|
561
561
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-35.2809&lon=149.1300&zoom=16&addressdetails=1&accept-language=en",
|
|
562
562
|
"Australian Capital Territory": {
|
|
563
563
|
"_state_code": "act",
|
|
564
564
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-35.2809&lon=149.1300&zoom=16&addressdetails=1&accept-language=en",
|
|
565
|
-
PH: [{"name":"New
|
|
565
|
+
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]}]
|
|
566
566
|
},
|
|
567
567
|
"New South Wales": {
|
|
568
568
|
"_state_code": "nsw",
|
|
569
569
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-33.8688&lon=151.2093&zoom=16&addressdetails=1&accept-language=en",
|
|
570
|
-
PH: [{"name":"New
|
|
570
|
+
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]}]
|
|
571
571
|
},
|
|
572
572
|
"Northern Territory": {
|
|
573
573
|
"_state_code": "nt",
|
|
574
574
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-12.4634&lon=130.8456&zoom=16&addressdetails=1&accept-language=en",
|
|
575
|
-
PH: [{"name":"New
|
|
575
|
+
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]}]
|
|
576
576
|
},
|
|
577
577
|
"Queensland": {
|
|
578
578
|
"_state_code": "qld",
|
|
579
579
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-27.4698&lon=153.0251&zoom=16&addressdetails=1&accept-language=en",
|
|
580
|
-
PH: [{"name":"New
|
|
580
|
+
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]}]
|
|
581
581
|
},
|
|
582
582
|
"South Australia": {
|
|
583
583
|
"_state_code": "sa",
|
|
584
584
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-34.9285&lon=138.6007&zoom=16&addressdetails=1&accept-language=en",
|
|
585
|
-
PH: [{"name":"New
|
|
585
|
+
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]}]
|
|
586
586
|
},
|
|
587
587
|
"Tasmania": {
|
|
588
588
|
"_state_code": "tas",
|
|
589
589
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-42.8821&lon=147.3272&zoom=16&addressdetails=1&accept-language=en",
|
|
590
|
-
PH: [{"name":"New
|
|
590
|
+
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]}]
|
|
591
591
|
},
|
|
592
592
|
"Victoria": {
|
|
593
593
|
"_state_code": "vic",
|
|
594
594
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-37.8136&lon=144.9631&zoom=16&addressdetails=1&accept-language=en",
|
|
595
|
-
PH: [{"name":"New
|
|
595
|
+
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]}]
|
|
596
596
|
},
|
|
597
597
|
"Western Australia": {
|
|
598
598
|
"_state_code": "wa",
|
|
599
599
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-31.9505&lon=115.8605&zoom=16&addressdetails=1&accept-language=en",
|
|
600
|
-
PH: [{"name":"New
|
|
600
|
+
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]}]
|
|
601
601
|
}
|
|
602
602
|
};
|
|
603
603
|
|
|
604
604
|
const be = {
|
|
605
|
-
PH: [{"name":"Nieuwjaar -
|
|
605
|
+
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]}],
|
|
606
606
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Belgium&zoom=18&addressdetails=1&limit=1&accept-language=nl,fr,de,en",
|
|
607
607
|
"DE": {
|
|
608
608
|
SH: [
|
|
@@ -807,6 +807,7 @@
|
|
|
807
807
|
};
|
|
808
808
|
|
|
809
809
|
const bg = {
|
|
810
|
+
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]}],
|
|
810
811
|
SH: [
|
|
811
812
|
{
|
|
812
813
|
name: "Коледна ваканция",
|
|
@@ -862,7 +863,8 @@
|
|
|
862
863
|
2022: [2,2,2,4],
|
|
863
864
|
2026: [3,2,3,2],
|
|
864
865
|
},
|
|
865
|
-
]
|
|
866
|
+
],
|
|
867
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=42.6977&lon=23.3219&zoom=18&addressdetails=1&accept-language=bg,en"
|
|
866
868
|
};
|
|
867
869
|
|
|
868
870
|
const br = {
|
|
@@ -953,6 +955,7 @@
|
|
|
953
955
|
};
|
|
954
956
|
|
|
955
957
|
const by = {
|
|
958
|
+
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]}],
|
|
956
959
|
SH: [
|
|
957
960
|
{
|
|
958
961
|
name: "Зімовыя вакацыі",
|
|
@@ -993,11 +996,13 @@
|
|
|
993
996
|
2024: [10,27,11,5],
|
|
994
997
|
2025: [11,2,11,9],
|
|
995
998
|
},
|
|
996
|
-
]
|
|
999
|
+
],
|
|
1000
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=53.9045&lon=27.5615&zoom=18&addressdetails=1&accept-language=be,en"
|
|
997
1001
|
};
|
|
998
1002
|
|
|
999
1003
|
const ca = {
|
|
1000
1004
|
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]}],
|
|
1005
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=45.4215&lon=-75.6972&zoom=18&addressdetails=1&accept-language=en,fr",
|
|
1001
1006
|
"Alberta": {
|
|
1002
1007
|
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]}]
|
|
1003
1008
|
},
|
|
@@ -3431,7 +3436,7 @@
|
|
|
3431
3436
|
};
|
|
3432
3437
|
|
|
3433
3438
|
const cz = {
|
|
3434
|
-
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]}],
|
|
3439
|
+
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]}],
|
|
3435
3440
|
SH: [
|
|
3436
3441
|
{
|
|
3437
3442
|
name: "Vánoční prázdniny",
|
|
@@ -4729,7 +4734,7 @@
|
|
|
4729
4734
|
};
|
|
4730
4735
|
|
|
4731
4736
|
const de = {
|
|
4732
|
-
PH: [{"name":"
|
|
4737
|
+
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]}],
|
|
4733
4738
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=49.5487&lon=9.8160&zoom=18&addressdetails=1&accept-language=de,en",
|
|
4734
4739
|
"Baden-Württemberg": {
|
|
4735
4740
|
SH: [
|
|
@@ -7006,11 +7011,12 @@
|
|
|
7006
7011
|
};
|
|
7007
7012
|
|
|
7008
7013
|
const dk = {
|
|
7009
|
-
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":"
|
|
7014
|
+
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]}],
|
|
7010
7015
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=55.670249&lon=10.3333283&zoom=18&addressdetails=1&accept-language=da,en"
|
|
7011
7016
|
};
|
|
7012
7017
|
|
|
7013
7018
|
const ee = {
|
|
7019
|
+
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]}],
|
|
7014
7020
|
SH: [
|
|
7015
7021
|
{
|
|
7016
7022
|
name: "jõulupühad",
|
|
@@ -7066,7 +7072,8 @@
|
|
|
7066
7072
|
2025: [10,20,10,26],
|
|
7067
7073
|
2026: [10,26,11,1],
|
|
7068
7074
|
},
|
|
7069
|
-
]
|
|
7075
|
+
],
|
|
7076
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=59.4370&lon=24.7536&zoom=18&addressdetails=1&accept-language=et,en"
|
|
7070
7077
|
};
|
|
7071
7078
|
|
|
7072
7079
|
const es = {
|
|
@@ -10181,13 +10188,18 @@
|
|
|
10181
10188
|
}
|
|
10182
10189
|
};
|
|
10183
10190
|
|
|
10191
|
+
const ge = {
|
|
10192
|
+
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]}],
|
|
10193
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=41.7151&lon=44.8271&zoom=18&addressdetails=1&accept-language=ka,en"
|
|
10194
|
+
};
|
|
10195
|
+
|
|
10184
10196
|
const gr = {
|
|
10185
|
-
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"
|
|
10197
|
+
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]}],
|
|
10186
10198
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Greece&&zoom=18&addressdetails=1&limit=1&accept-language=el,en"
|
|
10187
10199
|
};
|
|
10188
10200
|
|
|
10189
10201
|
const hr = {
|
|
10190
|
-
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]}],
|
|
10202
|
+
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]}],
|
|
10191
10203
|
SH: [
|
|
10192
10204
|
{
|
|
10193
10205
|
name: "Zimski odmor",
|
|
@@ -10312,7 +10324,7 @@
|
|
|
10312
10324
|
};
|
|
10313
10325
|
|
|
10314
10326
|
const ie = {
|
|
10315
|
-
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
|
|
10327
|
+
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]}],
|
|
10316
10328
|
SH: [
|
|
10317
10329
|
{
|
|
10318
10330
|
name: "Christmas",
|
|
@@ -11370,8 +11382,15 @@
|
|
|
11370
11382
|
}
|
|
11371
11383
|
};
|
|
11372
11384
|
|
|
11385
|
+
const je = {
|
|
11386
|
+
"Jersey": {
|
|
11387
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=49.2&lon=-2.1&zoom=11&addressdetails=1&accept-language=en",
|
|
11388
|
+
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]}]
|
|
11389
|
+
}
|
|
11390
|
+
};
|
|
11391
|
+
|
|
11373
11392
|
const jp = {
|
|
11374
|
-
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":"
|
|
11393
|
+
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"}],
|
|
11375
11394
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=35.39291572&lon=139.44288869&zoom=18&addressdetails=1&accept-language=ja,en"
|
|
11376
11395
|
};
|
|
11377
11396
|
|
|
@@ -11442,6 +11461,7 @@
|
|
|
11442
11461
|
};
|
|
11443
11462
|
|
|
11444
11463
|
const lt = {
|
|
11464
|
+
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]}],
|
|
11445
11465
|
SH: [
|
|
11446
11466
|
{
|
|
11447
11467
|
name: "Žiemos atostogos",
|
|
@@ -11487,7 +11507,8 @@
|
|
|
11487
11507
|
2025: [11,3,11,9],
|
|
11488
11508
|
2026: [11,2,11,8],
|
|
11489
11509
|
},
|
|
11490
|
-
]
|
|
11510
|
+
],
|
|
11511
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=54.6872&lon=25.2797&zoom=18&addressdetails=1&accept-language=lt,en"
|
|
11491
11512
|
};
|
|
11492
11513
|
|
|
11493
11514
|
const lu = {
|
|
@@ -11563,6 +11584,7 @@
|
|
|
11563
11584
|
};
|
|
11564
11585
|
|
|
11565
11586
|
const lv = {
|
|
11587
|
+
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]}],
|
|
11566
11588
|
SH: [
|
|
11567
11589
|
{
|
|
11568
11590
|
name: "Ziemas brīvdienas",
|
|
@@ -11599,10 +11621,12 @@
|
|
|
11599
11621
|
2023: [10,23,10,27],
|
|
11600
11622
|
2024: [10,21,10,27],
|
|
11601
11623
|
},
|
|
11602
|
-
]
|
|
11624
|
+
],
|
|
11625
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=56.9460&lon=24.1059&zoom=18&addressdetails=1&accept-language=lv,en"
|
|
11603
11626
|
};
|
|
11604
11627
|
|
|
11605
11628
|
const mc = {
|
|
11629
|
+
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]}],
|
|
11606
11630
|
SH: [
|
|
11607
11631
|
{
|
|
11608
11632
|
name: "Vacances de Noël",
|
|
@@ -11668,10 +11692,12 @@
|
|
|
11668
11692
|
2024: [10,24,11,3],
|
|
11669
11693
|
2025: [10,23,11,2],
|
|
11670
11694
|
},
|
|
11671
|
-
]
|
|
11695
|
+
],
|
|
11696
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=43.7384&lon=7.4246&zoom=18&addressdetails=1&accept-language=fr,en"
|
|
11672
11697
|
};
|
|
11673
11698
|
|
|
11674
11699
|
const md = {
|
|
11700
|
+
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]}],
|
|
11675
11701
|
SH: [
|
|
11676
11702
|
{
|
|
11677
11703
|
name: "Vacanţa de iarnă",
|
|
@@ -11722,10 +11748,12 @@
|
|
|
11722
11748
|
2024: [10,28,11,3],
|
|
11723
11749
|
2025: [10,27,11,2],
|
|
11724
11750
|
},
|
|
11725
|
-
]
|
|
11751
|
+
],
|
|
11752
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=47.0105&lon=28.8638&zoom=18&addressdetails=1&accept-language=ro,en"
|
|
11726
11753
|
};
|
|
11727
11754
|
|
|
11728
11755
|
const mt = {
|
|
11756
|
+
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]}],
|
|
11729
11757
|
SH: [
|
|
11730
11758
|
{
|
|
11731
11759
|
name: "Vaganzi tal-Milied",
|
|
@@ -11786,10 +11814,12 @@
|
|
|
11786
11814
|
2024: [11,1,11,5],
|
|
11787
11815
|
2025: [11,3,11,5],
|
|
11788
11816
|
},
|
|
11789
|
-
]
|
|
11817
|
+
],
|
|
11818
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=35.8997&lon=14.5147&zoom=18&addressdetails=1&accept-language=mt,en"
|
|
11790
11819
|
};
|
|
11791
11820
|
|
|
11792
11821
|
const mx = {
|
|
11822
|
+
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]}],
|
|
11793
11823
|
SH: [
|
|
11794
11824
|
{
|
|
11795
11825
|
name: "Receso de invierno",
|
|
@@ -11824,16 +11854,18 @@
|
|
|
11824
11854
|
name: "Fin de lecciones",
|
|
11825
11855
|
2026: [7,15,7,15],
|
|
11826
11856
|
},
|
|
11827
|
-
]
|
|
11857
|
+
],
|
|
11858
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=19.4326&lon=-99.1332&zoom=18&addressdetails=1&accept-language=es,en"
|
|
11828
11859
|
};
|
|
11829
11860
|
|
|
11830
11861
|
const na = {
|
|
11831
|
-
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":"
|
|
11862
|
+
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]}],
|
|
11832
11863
|
"_nominatim_url": "https://nominatim.openstreetmap.org/search?format=json&country=Namibia&zoom=18&addressdetails=1&limit=1"
|
|
11833
11864
|
};
|
|
11834
11865
|
|
|
11835
11866
|
const nl = {
|
|
11836
11867
|
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]}],
|
|
11868
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=52.3702&lon=4.8952&zoom=18&addressdetails=1&accept-language=nl,en",
|
|
11837
11869
|
"MI": {
|
|
11838
11870
|
SH: [
|
|
11839
11871
|
{
|
|
@@ -12056,17 +12088,17 @@
|
|
|
12056
12088
|
};
|
|
12057
12089
|
|
|
12058
12090
|
const no = {
|
|
12059
|
-
PH: [{"name":"
|
|
12091
|
+
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]}],
|
|
12060
12092
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=61.0&lon=8.0&zoom=8&addressdetails=1&accept-language=no,en"
|
|
12061
12093
|
};
|
|
12062
12094
|
|
|
12063
12095
|
const nz = {
|
|
12064
|
-
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":"
|
|
12096
|
+
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]}],
|
|
12065
12097
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-41.2922255&lon=174.7763033&zoom=16&addressdetails=1&accept-language=en"
|
|
12066
12098
|
};
|
|
12067
12099
|
|
|
12068
12100
|
const pl = {
|
|
12069
|
-
PH: [{"name":"Nowy Rok","fixed_date":[1,1]},{"name":"Święto Trzech Króli","fixed_date":[1,6]},{"name":"
|
|
12101
|
+
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]}],
|
|
12070
12102
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=53.4825&lon=18.75823&zoom=18&addressdetails=1&accept-language=pl,en",
|
|
12071
12103
|
"Dolnośląskie": {
|
|
12072
12104
|
SH: [
|
|
@@ -12790,6 +12822,7 @@
|
|
|
12790
12822
|
};
|
|
12791
12823
|
|
|
12792
12824
|
const pt = {
|
|
12825
|
+
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]}],
|
|
12793
12826
|
SH: [
|
|
12794
12827
|
{
|
|
12795
12828
|
name: "Férias de Natal",
|
|
@@ -12841,11 +12874,12 @@
|
|
|
12841
12874
|
name: "Fim das aulas",
|
|
12842
12875
|
2028: [6,30,6,30],
|
|
12843
12876
|
},
|
|
12844
|
-
]
|
|
12877
|
+
],
|
|
12878
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=38.7223&lon=-9.1393&zoom=18&addressdetails=1&accept-language=pt,en"
|
|
12845
12879
|
};
|
|
12846
12880
|
|
|
12847
12881
|
const ro = {
|
|
12848
|
-
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
|
|
12882
|
+
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]}],
|
|
12849
12883
|
SH: [
|
|
12850
12884
|
{
|
|
12851
12885
|
name: "Vacanța de iarnă",
|
|
@@ -13385,6 +13419,7 @@
|
|
|
13385
13419
|
};
|
|
13386
13420
|
|
|
13387
13421
|
const rs = {
|
|
13422
|
+
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]}],
|
|
13388
13423
|
SH: [
|
|
13389
13424
|
{
|
|
13390
13425
|
name: "Зимски распуст",
|
|
@@ -13428,7 +13463,8 @@
|
|
|
13428
13463
|
name: "Сретењски распуст",
|
|
13429
13464
|
2026: [2,16,2,20],
|
|
13430
13465
|
},
|
|
13431
|
-
]
|
|
13466
|
+
],
|
|
13467
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=44.8176&lon=20.4569&zoom=18&addressdetails=1&accept-language=sr,en"
|
|
13432
13468
|
};
|
|
13433
13469
|
|
|
13434
13470
|
const ru = {
|
|
@@ -13583,6 +13619,7 @@
|
|
|
13583
13619
|
2024: [5,3,5,3],
|
|
13584
13620
|
},
|
|
13585
13621
|
],
|
|
13622
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=46.0569&lon=14.5058&zoom=18&addressdetails=1&accept-language=sl,en",
|
|
13586
13623
|
"vzhodne regije": {
|
|
13587
13624
|
SH: [
|
|
13588
13625
|
{
|
|
@@ -13614,7 +13651,7 @@
|
|
|
13614
13651
|
};
|
|
13615
13652
|
|
|
13616
13653
|
const sk = {
|
|
13617
|
-
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":"
|
|
13654
|
+
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]}],
|
|
13618
13655
|
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=48.7411522&lon=19.4528646&zoom=18&addressdetails=1&accept-language=sk,en",
|
|
13619
13656
|
"Banskobystrický kraj": {
|
|
13620
13657
|
SH: [
|
|
@@ -14123,6 +14160,7 @@
|
|
|
14123
14160
|
};
|
|
14124
14161
|
|
|
14125
14162
|
const sm = {
|
|
14163
|
+
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]}],
|
|
14126
14164
|
SH: [
|
|
14127
14165
|
{
|
|
14128
14166
|
name: "Vacanze Natalizie",
|
|
@@ -14157,11 +14195,13 @@
|
|
|
14157
14195
|
name: "Termine lezioni",
|
|
14158
14196
|
2026: [6,17,6,17],
|
|
14159
14197
|
},
|
|
14160
|
-
]
|
|
14198
|
+
],
|
|
14199
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=43.9424&lon=12.4578&zoom=18&addressdetails=1&accept-language=it,en"
|
|
14161
14200
|
};
|
|
14162
14201
|
|
|
14163
14202
|
const ua = {
|
|
14164
|
-
PH: [{"name":"Новий рік","fixed_date":[1,1]},{"name":"
|
|
14203
|
+
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]}],
|
|
14204
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=50.4501&lon=30.5234&zoom=18&addressdetails=1&accept-language=uk,en"
|
|
14165
14205
|
};
|
|
14166
14206
|
|
|
14167
14207
|
const us = {
|
|
@@ -14468,6 +14508,7 @@
|
|
|
14468
14508
|
};
|
|
14469
14509
|
|
|
14470
14510
|
const za = {
|
|
14511
|
+
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]}],
|
|
14471
14512
|
SH: [
|
|
14472
14513
|
{
|
|
14473
14514
|
name: "Summer Break",
|
|
@@ -14524,10 +14565,15 @@
|
|
|
14524
14565
|
2026: [9,25,9,25],
|
|
14525
14566
|
2027: [4,26,4,26],
|
|
14526
14567
|
},
|
|
14527
|
-
]
|
|
14568
|
+
],
|
|
14569
|
+
"_nominatim_url": "https://nominatim.openstreetmap.org/reverse?format=json&lat=-25.7462&lon=28.1881&zoom=18&addressdetails=1&accept-language=en,af"
|
|
14528
14570
|
};
|
|
14529
14571
|
|
|
14530
14572
|
/**
|
|
14573
|
+
* SPDX-FileCopyrightText: © opening_hours.js contributors
|
|
14574
|
+
*
|
|
14575
|
+
* SPDX-License-Identifier: LGPL-3.0-only
|
|
14576
|
+
*
|
|
14531
14577
|
* Holiday definitions for opening_hours.js
|
|
14532
14578
|
*
|
|
14533
14579
|
* All countries are now sourced from generated-openholidays.js
|
|
@@ -14560,11 +14606,13 @@
|
|
|
14560
14606
|
fi: fi,
|
|
14561
14607
|
fr: fr,
|
|
14562
14608
|
gb: gb,
|
|
14609
|
+
ge: ge,
|
|
14563
14610
|
gr: gr,
|
|
14564
14611
|
hr: hr,
|
|
14565
14612
|
hu: hu,
|
|
14566
14613
|
ie: ie,
|
|
14567
14614
|
it: it,
|
|
14615
|
+
je: je,
|
|
14568
14616
|
jp: jp,
|
|
14569
14617
|
li: li,
|
|
14570
14618
|
lt: lt,
|
|
@@ -14646,6 +14694,9 @@
|
|
|
14646
14694
|
"please use fallback rule":{ otherwise:"||" },
|
|
14647
14695
|
"please use ok for missing data":{ "\\?":"" },
|
|
14648
14696
|
"please use ok for ko":{ "→":"-",
|
|
14697
|
+
"‐":"-",
|
|
14698
|
+
"‑":"-",
|
|
14699
|
+
"‒":"-",
|
|
14649
14700
|
"−":"-",
|
|
14650
14701
|
"—":"-",
|
|
14651
14702
|
"ー":"-",
|
|
@@ -20647,6 +20698,12 @@
|
|
|
20647
20698
|
data.ru;
|
|
20648
20699
|
data.it;
|
|
20649
20700
|
|
|
20701
|
+
/**
|
|
20702
|
+
* SPDX-FileCopyrightText: © 2025 Kristjan ESPERANTO <https://github.com/KristjanESPERANTO>
|
|
20703
|
+
*
|
|
20704
|
+
* SPDX-License-Identifier: LGPL-3.0-only
|
|
20705
|
+
*/
|
|
20706
|
+
|
|
20650
20707
|
const resources = data;
|
|
20651
20708
|
|
|
20652
20709
|
// Simple i18n object compatible with the minimal features used in src/index.js
|
|
@@ -20808,6 +20865,7 @@
|
|
|
20808
20865
|
'opening_hours:.+' : { 'mode' : 0, },
|
|
20809
20866
|
'.+:opening_hours' : { 'mode' : 0, },
|
|
20810
20867
|
'.+:opening_hours:.+' : { 'mode' : 0, },
|
|
20868
|
+
'.+:conditional' : { 'mode' : 0, },
|
|
20811
20869
|
'smoking_hours' : { 'mode' : 0, },
|
|
20812
20870
|
'service_times' : { 'mode' : 2, },
|
|
20813
20871
|
'happy_hours' : { 'mode' : 0, },
|
|
@@ -20984,7 +21042,7 @@
|
|
|
20984
21042
|
throw t('nothing');
|
|
20985
21043
|
}
|
|
20986
21044
|
|
|
20987
|
-
const parsing_warnings = []; // Elements are
|
|
21045
|
+
const parsing_warnings = []; // Elements are arrays [nrule, at, message, tokens_to_use?] fed into formatWarnErrorMessage().
|
|
20988
21046
|
let done_with_warnings = false; // The functions which returns warnings can be called multiple times.
|
|
20989
21047
|
let done_with_selector_reordering = false;
|
|
20990
21048
|
let done_with_selector_reordering_warnings = false;
|
|
@@ -21172,9 +21230,13 @@
|
|
|
21172
21230
|
/* Format warning or error message for the user. {{{
|
|
21173
21231
|
*
|
|
21174
21232
|
* :param nrule: Rule number starting with 0.
|
|
21175
|
-
*
|
|
21233
|
+
* -1: error during tokenization, `at` is remaining value.length.
|
|
21234
|
+
* string: prettified value, `at` is a byte offset into it.
|
|
21235
|
+
* :param at: Token position. -1 means end of rule (no token at that position).
|
|
21176
21236
|
* :param message: Human readable string with the message.
|
|
21177
|
-
* :param tokens_to_use:
|
|
21237
|
+
* :param tokens_to_use: Optional. Defaults to `tokens`. Pass `new_tokens` from
|
|
21238
|
+
* getWarnings() because new_tokens can have more entries than tokens
|
|
21239
|
+
* when Additional Rules are present.
|
|
21178
21240
|
* :returns: String with position of the warning or error marked for the user.
|
|
21179
21241
|
*/
|
|
21180
21242
|
function formatWarnErrorMessage(nrule, at, message, tokens_to_use) {
|
|
@@ -21182,14 +21244,20 @@
|
|
|
21182
21244
|
tokens_to_use = tokens;
|
|
21183
21245
|
}
|
|
21184
21246
|
// console.log(`Called formatWarnErrorMessage: ${nrule}, ${at}, ${message}`);
|
|
21185
|
-
// FIXME: Change to new_tokens.
|
|
21186
21247
|
if (typeof nrule === 'number') {
|
|
21187
|
-
let pos
|
|
21188
|
-
if (nrule === -1) {
|
|
21248
|
+
let pos;
|
|
21249
|
+
if (nrule === -1) {
|
|
21250
|
+
// at is remaining value.length at the point of the error.
|
|
21189
21251
|
pos = value.length - at;
|
|
21190
|
-
} else {
|
|
21252
|
+
} else {
|
|
21253
|
+
if (typeof tokens_to_use[nrule] === 'undefined') {
|
|
21254
|
+
// Caller passed the wrong token array (tokens instead of new_tokens?).
|
|
21255
|
+
formatLibraryBugMessage('Bug in warning generation code: tokens_to_use[nrule] is undefined for nrule=' + nrule + '.');
|
|
21256
|
+
return value + ' <--- (' + message + ')';
|
|
21257
|
+
}
|
|
21191
21258
|
if (typeof tokens_to_use[nrule][0][at] === 'undefined') {
|
|
21192
21259
|
if (typeof tokens_to_use[nrule][0] !== 'undefined' && at === -1) {
|
|
21260
|
+
// at === -1: point to end of rule, use offset of next rule entry if available.
|
|
21193
21261
|
pos = value.length;
|
|
21194
21262
|
if (typeof tokens_to_use[nrule+1] === 'object' && typeof tokens_to_use[nrule+1][2] === 'number') {
|
|
21195
21263
|
pos -= tokens_to_use[nrule+1][2];
|
|
@@ -21197,13 +21265,11 @@
|
|
|
21197
21265
|
pos -= tokens_to_use[nrule][2];
|
|
21198
21266
|
}
|
|
21199
21267
|
} else {
|
|
21200
|
-
//
|
|
21201
|
-
//
|
|
21268
|
+
// Token position is out of range. Run real_test regularly to catch this.
|
|
21202
21269
|
formatLibraryBugMessage('Bug in warning generation code which could not determine the exact position of the warning or error in value.');
|
|
21203
21270
|
pos = value.length;
|
|
21204
21271
|
if (typeof tokens_to_use[nrule][2] === 'number') {
|
|
21205
|
-
// Fallback:
|
|
21206
|
-
// Run real_test regularly to fix the problem before a user is confronted with it.
|
|
21272
|
+
// Fallback: point to last token in the rule which caused the problem.
|
|
21207
21273
|
pos -= tokens_to_use[nrule][2];
|
|
21208
21274
|
console.warn('Last token for rule: ' + JSON.stringify(tokens_to_use[nrule]));
|
|
21209
21275
|
} else {
|
|
@@ -21223,6 +21289,7 @@
|
|
|
21223
21289
|
} else if (typeof nrule === 'string') {
|
|
21224
21290
|
return nrule.substring(0, at) + ' <--- (' + message + ')';
|
|
21225
21291
|
}
|
|
21292
|
+
return message;
|
|
21226
21293
|
}
|
|
21227
21294
|
/* }}} */
|
|
21228
21295
|
|
|
@@ -21339,7 +21406,7 @@
|
|
|
21339
21406
|
t('please use ok for ko', {'ko': tmp[0], 'ok': ok})]);
|
|
21340
21407
|
}
|
|
21341
21408
|
value = ok + value.substr(tmp[0].length);
|
|
21342
|
-
} else if ((tmp = value.match(/^(&|_
|
|
21409
|
+
} 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))) {
|
|
21343
21410
|
/* Handle all remaining words and specific other characters with error tolerance.
|
|
21344
21411
|
*
|
|
21345
21412
|
* à|á: Word boundary does not work with Unicode chars: 'test à test'.match(/\bà\b/i)
|
|
@@ -21635,7 +21702,8 @@
|
|
|
21635
21702
|
:
|
|
21636
21703
|
t('selector multi 2b', {'what': t(selector_type + (/^(?:month|weekday)$/.test(selector_type) ? 's' : ' ranges'))})
|
|
21637
21704
|
)
|
|
21638
|
-
})
|
|
21705
|
+
}),
|
|
21706
|
+
new_tokens]
|
|
21639
21707
|
);
|
|
21640
21708
|
done_with_selector_reordering = true; // Correcting the selector order makes no sense if this kind of issue exists.
|
|
21641
21709
|
}
|
|
@@ -21646,7 +21714,7 @@
|
|
|
21646
21714
|
&& Object.keys(used_selectors[nrule]).length === 1
|
|
21647
21715
|
) {
|
|
21648
21716
|
if (nrule !== 0) {
|
|
21649
|
-
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('default state')]);
|
|
21717
|
+
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('default state'), new_tokens]);
|
|
21650
21718
|
}
|
|
21651
21719
|
/* }}} */
|
|
21652
21720
|
/* Check if a rule (with state open) has no time selector {{{ */
|
|
@@ -21660,7 +21728,7 @@
|
|
|
21660
21728
|
typeof used_selectors[nrule]['24/7'] === 'undefined'
|
|
21661
21729
|
) {
|
|
21662
21730
|
|
|
21663
|
-
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('vague')]);
|
|
21731
|
+
parsing_warnings.push([nrule, new_tokens[nrule][0].length - 1, t('vague'), new_tokens]);
|
|
21664
21732
|
}
|
|
21665
21733
|
}
|
|
21666
21734
|
/* }}} */
|
|
@@ -21669,7 +21737,7 @@
|
|
|
21669
21737
|
&& new_tokens[nrule][0][used_selectors[nrule].comment[0]][0].length === 0
|
|
21670
21738
|
) {
|
|
21671
21739
|
|
|
21672
|
-
parsing_warnings.push([nrule, used_selectors[nrule].comment[0], t('empty comment')]);
|
|
21740
|
+
parsing_warnings.push([nrule, used_selectors[nrule].comment[0], t('empty comment'), new_tokens]);
|
|
21673
21741
|
}
|
|
21674
21742
|
/* }}} */
|
|
21675
21743
|
/* Check for valid use of <separator_for_readability> {{{ */
|
|
@@ -21684,7 +21752,8 @@
|
|
|
21684
21752
|
|
|
21685
21753
|
if (new_tokens[nrule][0][used_selectors[nrule][selector_type][0]][0] === ':') {
|
|
21686
21754
|
parsing_warnings.push([nrule, used_selectors[nrule][selector_type][0],
|
|
21687
|
-
t('separator_for_readability')
|
|
21755
|
+
t('separator_for_readability'),
|
|
21756
|
+
new_tokens
|
|
21688
21757
|
]);
|
|
21689
21758
|
}
|
|
21690
21759
|
}
|
|
@@ -21778,6 +21847,7 @@
|
|
|
21778
21847
|
&& (
|
|
21779
21848
|
(
|
|
21780
21849
|
typeof oh_key === 'string'
|
|
21850
|
+
&& oh_regex_key
|
|
21781
21851
|
&& osm_tag_defaults[oh_regex_key]['warn_for_PH_missing']
|
|
21782
21852
|
)
|
|
21783
21853
|
|| (typeof oh_key !== 'string')
|
|
@@ -22922,6 +22992,11 @@
|
|
|
22922
22992
|
// The target day is in the next month. If the target day without the added days is not in this month
|
|
22923
22993
|
if (target_day_this_month.getTime() >= start_of_next_month.getTime())
|
|
22924
22994
|
return [false, start_of_next_month];
|
|
22995
|
+
} else if (target_day_this_month.getTime() >= start_of_next_month.getTime()) {
|
|
22996
|
+
// The nth weekday overflows to next month (e.g. no 5th Sunday in February),
|
|
22997
|
+
// but negative add_days pulled the result back into this month.
|
|
22998
|
+
// The nth weekday still does not exist this month, so do not match.
|
|
22999
|
+
return [false, start_of_next_month];
|
|
22925
23000
|
}
|
|
22926
23001
|
|
|
22927
23002
|
let target_day_with_added_moved_days_this_month;
|
|
@@ -23663,15 +23738,116 @@
|
|
|
23663
23738
|
}
|
|
23664
23739
|
/* }}} */
|
|
23665
23740
|
|
|
23741
|
+
// Shift rule support for transferable holidays. {{{
|
|
23742
|
+
|
|
23743
|
+
const weekday_name_to_num = {
|
|
23744
|
+
sunday: 0, monday: 1, tuesday: 2, wednesday: 3,
|
|
23745
|
+
thursday: 4, friday: 5, saturday: 6,
|
|
23746
|
+
};
|
|
23747
|
+
|
|
23748
|
+
const shift_rule_cache = Object.create(null);
|
|
23749
|
+
|
|
23750
|
+
/* Compile a shift_rule string into a (Date) => Date shifter.
|
|
23751
|
+
*
|
|
23752
|
+
* A `shift_rule` field on a holiday definition moves the holiday’s date
|
|
23753
|
+
* depending on the weekday it falls on. The syntax is a subset of the
|
|
23754
|
+
* date-holidays DSL: chained `if … then …` clauses, first match wins,
|
|
23755
|
+
* unmatched dates stay unchanged.
|
|
23756
|
+
*
|
|
23757
|
+
* Format:
|
|
23758
|
+
* “if <wd>[,<wd>...] then <next|previous> <wd> [if … then … <wd>]*”
|
|
23759
|
+
*
|
|
23760
|
+
* Collision behaviour: if the shifted date would land on another
|
|
23761
|
+
* non-shifted holiday in the same year, the holiday keeps its original
|
|
23762
|
+
* date instead.
|
|
23763
|
+
*/
|
|
23764
|
+
function compileShiftRule(rule) {
|
|
23765
|
+
if (shift_rule_cache[rule]) {
|
|
23766
|
+
return shift_rule_cache[rule];
|
|
23767
|
+
}
|
|
23768
|
+
const clauses = parseShiftRule(rule);
|
|
23769
|
+
const shifter = function (date) {
|
|
23770
|
+
return applyShiftClauses(clauses, date);
|
|
23771
|
+
};
|
|
23772
|
+
shift_rule_cache[rule] = shifter;
|
|
23773
|
+
return shifter;
|
|
23774
|
+
}
|
|
23775
|
+
|
|
23776
|
+
/* Parse a shift_rule string into a list of clause objects.
|
|
23777
|
+
*
|
|
23778
|
+
* Each clause has the shape:
|
|
23779
|
+
* { from_wds: [<int>, ...], direction: "next"|"previous", target_wd: <int> }
|
|
23780
|
+
* where weekdays are 0–6 (Sunday–Saturday).
|
|
23781
|
+
*/
|
|
23782
|
+
function parseShiftRule(rule) {
|
|
23783
|
+
function fail(detail) {
|
|
23784
|
+
throw formatLibraryBugMessage(
|
|
23785
|
+
'shift_rule: ' + detail + ' in "' + rule + '"'
|
|
23786
|
+
);
|
|
23787
|
+
}
|
|
23788
|
+
function toWeekdayNum(name) {
|
|
23789
|
+
const n = name.trim();
|
|
23790
|
+
if (!(n in weekday_name_to_num)) {
|
|
23791
|
+
fail('unknown weekday "' + n + '"');
|
|
23792
|
+
}
|
|
23793
|
+
return weekday_name_to_num[n];
|
|
23794
|
+
}
|
|
23795
|
+
|
|
23796
|
+
const clause_regex = /if\s+([a-z,\s]+?)\s+then\s+(next|previous)\s+([a-z]+)/g;
|
|
23797
|
+
const clauses = [];
|
|
23798
|
+
let last_end = 0;
|
|
23799
|
+
let match;
|
|
23800
|
+
while ((match = clause_regex.exec(rule)) !== null) {
|
|
23801
|
+
// Any text before the first match or between matches must be blank.
|
|
23802
|
+
if (rule.slice(last_end, match.index).trim() !== '') {
|
|
23803
|
+
fail('cannot parse');
|
|
23804
|
+
}
|
|
23805
|
+
clauses.push({
|
|
23806
|
+
from_wds: match[1].split(',').map(toWeekdayNum),
|
|
23807
|
+
direction: match[2],
|
|
23808
|
+
target_wd: toWeekdayNum(match[3]),
|
|
23809
|
+
});
|
|
23810
|
+
last_end = clause_regex.lastIndex;
|
|
23811
|
+
}
|
|
23812
|
+
if (clauses.length === 0 || rule.slice(last_end).trim() !== '') {
|
|
23813
|
+
fail('cannot parse');
|
|
23814
|
+
}
|
|
23815
|
+
return clauses;
|
|
23816
|
+
}
|
|
23817
|
+
|
|
23818
|
+
/* Apply the first matching clause to `date` and return the shifted date.
|
|
23819
|
+
* Returns the original date if no clause matches.
|
|
23820
|
+
*/
|
|
23821
|
+
function applyShiftClauses(clauses, date) {
|
|
23822
|
+
const wd = date.getDay();
|
|
23823
|
+
for (let i = 0; i < clauses.length; i++) {
|
|
23824
|
+
const c = clauses[i];
|
|
23825
|
+
if (c.from_wds.indexOf(wd) === -1) continue;
|
|
23826
|
+
|
|
23827
|
+
// Distance to the target weekday, always in the range [1, 7].
|
|
23828
|
+
// The modulo alone could yield 0 when wd === target_wd, but the
|
|
23829
|
+
// from_wds guard above prevents that for well-formed rules.
|
|
23830
|
+
// The "|| 7" is a safety net: if it ever did produce 0 we would
|
|
23831
|
+
// shift by a full week rather than silently not moving the date.
|
|
23832
|
+
let diff;
|
|
23833
|
+
if (c.direction === 'next') {
|
|
23834
|
+
diff = ((c.target_wd - wd + 7) % 7) || 7; // move forward
|
|
23835
|
+
} else {
|
|
23836
|
+
diff = -(((wd - c.target_wd + 7) % 7) || 7); // move backward
|
|
23837
|
+
}
|
|
23838
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + diff);
|
|
23839
|
+
}
|
|
23840
|
+
return date;
|
|
23841
|
+
}
|
|
23842
|
+
|
|
23666
23843
|
function getApplyingHolidaysForYear(applying_holidays, year, add_days) {
|
|
23667
23844
|
const movableDays = getMovableEventsForYear(year);
|
|
23668
23845
|
|
|
23669
|
-
|
|
23670
|
-
|
|
23671
|
-
|
|
23672
|
-
applying_holidays.forEach(function (holiday_item) {
|
|
23846
|
+
/* Pass 1: resolve the base date of every holiday (no shift, no add_days). */
|
|
23847
|
+
const resolved = applying_holidays.map(function (holiday_item) {
|
|
23848
|
+
let base_date;
|
|
23673
23849
|
if ('fixed_date' in holiday_item) {
|
|
23674
|
-
|
|
23850
|
+
base_date = new Date(year,
|
|
23675
23851
|
holiday_item.fixed_date[0] - 1,
|
|
23676
23852
|
holiday_item.fixed_date[1]
|
|
23677
23853
|
);
|
|
@@ -23680,27 +23856,49 @@
|
|
|
23680
23856
|
if (!selected_movableDay) {
|
|
23681
23857
|
throw t('movable no formula', {'name': holiday_item.name});
|
|
23682
23858
|
}
|
|
23683
|
-
|
|
23684
|
-
|
|
23685
|
-
date_offset = holiday_item.offset;
|
|
23686
|
-
}
|
|
23687
|
-
next_holiday = new Date(selected_movableDay.getFullYear(),
|
|
23859
|
+
const date_offset = 'offset' in holiday_item ? holiday_item.offset : 0;
|
|
23860
|
+
base_date = new Date(selected_movableDay.getFullYear(),
|
|
23688
23861
|
selected_movableDay.getMonth(),
|
|
23689
23862
|
selected_movableDay.getDate() + date_offset
|
|
23690
23863
|
);
|
|
23691
|
-
if (year !==
|
|
23864
|
+
if (year !== base_date.getFullYear()) {
|
|
23692
23865
|
throw t('movable not in year', {
|
|
23693
23866
|
'name': holiday_item.variable_date, 'days': date_offset});
|
|
23694
23867
|
}
|
|
23695
23868
|
} else {
|
|
23696
23869
|
throw formatLibraryBugMessage('Unexpected object: ' + JSON.stringify(holiday_item, null, ' '));
|
|
23697
23870
|
}
|
|
23871
|
+
return { date: base_date, holiday: holiday_item };
|
|
23872
|
+
});
|
|
23698
23873
|
|
|
23699
|
-
|
|
23700
|
-
|
|
23874
|
+
/* Pass 2: apply shift_rule with collision detection.
|
|
23875
|
+
* Collisions are checked against the nominal (non-shifted, no-add_days)
|
|
23876
|
+
* dates of all non-shifted holidays — never against other shifted ones,
|
|
23877
|
+
* to keep the result deterministic regardless of declaration order.
|
|
23878
|
+
*/
|
|
23879
|
+
const fixed_times = new Set();
|
|
23880
|
+
resolved.forEach(function (r) {
|
|
23881
|
+
if (!r.holiday.shift_rule) {
|
|
23882
|
+
fixed_times.add(r.date.getTime());
|
|
23701
23883
|
}
|
|
23884
|
+
});
|
|
23885
|
+
resolved.forEach(function (r) {
|
|
23886
|
+
if (!r.holiday.shift_rule) return;
|
|
23887
|
+
const shifter = compileShiftRule(r.holiday.shift_rule);
|
|
23888
|
+
const shifted = shifter(r.date);
|
|
23889
|
+
if (shifted.getTime() === r.date.getTime()) return;
|
|
23890
|
+
// Keep original date on collision with a non-shifted holiday.
|
|
23891
|
+
if (fixed_times.has(shifted.getTime())) return;
|
|
23892
|
+
r.date = shifted;
|
|
23893
|
+
});
|
|
23702
23894
|
|
|
23703
|
-
|
|
23895
|
+
/* Pass 3: apply add_days uniformly and sort. */
|
|
23896
|
+
let sorted_holidays = resolved.map(function (r) {
|
|
23897
|
+
let d = r.date;
|
|
23898
|
+
if (add_days[0]) {
|
|
23899
|
+
d = new Date(d.getFullYear(), d.getMonth(), d.getDate() + add_days[0]);
|
|
23900
|
+
}
|
|
23901
|
+
return [ d, r.holiday.name ];
|
|
23704
23902
|
});
|
|
23705
23903
|
|
|
23706
23904
|
sorted_holidays = sorted_holidays.sort(function(a,b){
|
|
@@ -23724,7 +23922,7 @@
|
|
|
23724
23922
|
tokens[at][3] = 'year';
|
|
23725
23923
|
for (; at < tokens.length; at++) {
|
|
23726
23924
|
if (matchTokens(tokens, at, 'year')) {
|
|
23727
|
-
let is_range
|
|
23925
|
+
let is_range,
|
|
23728
23926
|
has_period,
|
|
23729
23927
|
period;
|
|
23730
23928
|
if (matchTokens(tokens, at+1, '-', 'year', '/', 'number')) {
|
|
@@ -24682,11 +24880,20 @@
|
|
|
24682
24880
|
/* }}} */
|
|
24683
24881
|
|
|
24684
24882
|
/* getNextChange: Get time of next status change {{{ */
|
|
24883
|
+
/*
|
|
24884
|
+
* Return next visible state change (open/closed/unknown).
|
|
24885
|
+
* Skip comment-only boundaries; use getIterator(...).advance() for those.
|
|
24886
|
+
*/
|
|
24685
24887
|
this.getNextChange = function(date, maxdate) {
|
|
24686
24888
|
const it = this.getIterator(date);
|
|
24687
|
-
|
|
24688
|
-
|
|
24689
|
-
|
|
24889
|
+
const initial_state = it.getState();
|
|
24890
|
+
const initial_unknown = it.getUnknown();
|
|
24891
|
+
while (it.advance(maxdate)) {
|
|
24892
|
+
if (it.getState() !== initial_state || it.getUnknown() !== initial_unknown) {
|
|
24893
|
+
return it.getDate();
|
|
24894
|
+
}
|
|
24895
|
+
}
|
|
24896
|
+
return undefined;
|
|
24690
24897
|
};
|
|
24691
24898
|
/* }}} */
|
|
24692
24899
|
|