added Vespers, Matins, Great Liturgy services
This commit is contained in:
1 parent
8e6c63c003
commit
ff5b8dc649
4 files changed
+297
-8
No files matched your search
@@ -95,6 +95,14 @@ export function computeDay(date: JDate): ComputedDay {
|
||||
// Priest status (1 = priest required, 0 = reader)
|
||||
const PS = (dRank >= 3 || dow === 0) ? 1 : 0;
|
||||
|
||||
// Eothinon (Sunday Matins Gospel cycle, 1-11)
|
||||
// Based on weeks after Pascha: (⌊nday / 7⌋ % 11) + 1 for Sundays
|
||||
// Non-Sundays get 0
|
||||
let eothinon = 0;
|
||||
if (dow === 0 && nday >= 0) {
|
||||
eothinon = (Math.floor(nday / 7) % 11) + 1;
|
||||
}
|
||||
|
||||
const dayInfo: DayInfo = {
|
||||
dow,
|
||||
doy,
|
||||
@@ -120,6 +128,7 @@ export function computeDay(date: JDate): ComputedDay {
|
||||
isNativityFast,
|
||||
triodionFile,
|
||||
pentecostarionFile,
|
||||
eothinon,
|
||||
};
|
||||
|
||||
// Build EvalContext from DayInfo (all values as numbers for the expression evaluator)
|
||||
@@ -139,6 +148,7 @@ export function computeDay(date: JDate): ComputedDay {
|
||||
Easter: pascha.jdn,
|
||||
Pentecost: pentecost.jdn,
|
||||
LentStart: lentStart.jdn,
|
||||
eothinon,
|
||||
LS: 1, // Default language
|
||||
GS: 1, // Default gospel selector
|
||||
};
|
||||
|
||||
+25
-1
@@ -85,6 +85,9 @@ export interface Translations {
|
||||
liturgy: string;
|
||||
royalhours: string;
|
||||
compline: string;
|
||||
greatcompline: string;
|
||||
mariasstanding: string;
|
||||
matins: string;
|
||||
};
|
||||
serviceDescriptions: {
|
||||
primes: string;
|
||||
@@ -95,6 +98,9 @@ export interface Translations {
|
||||
liturgy: string;
|
||||
royalhours: string;
|
||||
compline: string;
|
||||
greatcompline: string;
|
||||
mariasstanding: string;
|
||||
matins: string;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -275,9 +281,12 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Divine Liturgy',
|
||||
royalhours: 'Royal Hours',
|
||||
compline: 'Compline',
|
||||
greatcompline: 'Great Compline',
|
||||
mariasstanding: 'Standing of St. Mary of Egypt',
|
||||
matins: 'Matins',
|
||||
},
|
||||
serviceDescriptions: {
|
||||
primes: 'Prime (First Hour)',
|
||||
primes: 'First Hour',
|
||||
third: 'Third Hour',
|
||||
sixth: 'Sixth Hour',
|
||||
ninth: 'Ninth Hour',
|
||||
@@ -285,6 +294,9 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Principal service (Divine Liturgy)',
|
||||
royalhours: 'Royal Hours',
|
||||
compline: 'Night office (Compline)',
|
||||
greatcompline: 'Great Compline with the Canon of St. Andrew',
|
||||
mariasstanding: 'Matins with the Great Canon and the Life of St. Mary of Egypt (Marias Standing)',
|
||||
matins: 'Morning service (Matins)',
|
||||
},
|
||||
},
|
||||
|
||||
@@ -461,6 +473,9 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Божественная Литургия',
|
||||
royalhours: 'Царские часы',
|
||||
compline: 'Повечерие',
|
||||
greatcompline: 'Великое Повечерие',
|
||||
mariasstanding: 'Стояние Марии Египетской',
|
||||
matins: 'Утреня',
|
||||
},
|
||||
serviceDescriptions: {
|
||||
primes: 'Час первый',
|
||||
@@ -471,6 +486,9 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Главное богослужение (Божественная Литургия)',
|
||||
royalhours: 'Царские часы',
|
||||
compline: 'Ночное богослужение (Повечерие)',
|
||||
greatcompline: 'Великое Повечерие с каноном Андрея Критского',
|
||||
mariasstanding: 'Утреня с Великим каноном и житием Марии Египетской (Мариино стояние)',
|
||||
matins: 'Утреннее богослужение (Утреня)',
|
||||
},
|
||||
},
|
||||
|
||||
@@ -647,6 +665,9 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Божественная Литургия',
|
||||
royalhours: 'Царскія часъ',
|
||||
compline: 'Повечерiе',
|
||||
greatcompline: 'Вели́кое Повече́рiе',
|
||||
mariasstanding: 'Стоѧ́нїе ма́ріи є҆гѵ́петскїѧ',
|
||||
matins: 'Оу҆́тренѧ',
|
||||
},
|
||||
serviceDescriptions: {
|
||||
primes: 'Часъ первый',
|
||||
@@ -657,6 +678,9 @@ const translations: Record<LanguageCode, Translations> = {
|
||||
liturgy: 'Главное богослуженiе (Божественнаꙗ Литургiꙗ)',
|
||||
royalhours: 'Царскія часъ',
|
||||
compline: 'Ночное богослуженiе (Повечерiе)',
|
||||
greatcompline: 'Вели́кое Повече́рiе съ кано́номъ а҆ндре́а кри́тскагѡ',
|
||||
mariasstanding: 'Оу҆́тренѧ съ вели́кимъ кано́номъ и҆ житїе́мъ ма́ріи є҆гѵ́петскїѧ (Марі́ино стоѧ́нїе)',
|
||||
matins: 'Оу҆́треннее богослуженiе (Оу҆́тренѧ)',
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -37,6 +37,44 @@ export interface DayInfo {
|
||||
// Data file references
|
||||
triodionFile: number | null; // Index in triodion (1-70)
|
||||
pentecostarionFile: number | null; // Index in pentecostarion (1-315)
|
||||
eothinon: number; // Sunday Matins Eothinon (1-11, 0 = none)
|
||||
}
|
||||
|
||||
/** A single sub-canon within an ode. */
|
||||
export interface CanonSubCanon {
|
||||
irmos: string;
|
||||
troparia: string[];
|
||||
theotokion: string;
|
||||
}
|
||||
|
||||
/** A single ode within a Matins canon. */
|
||||
export interface CanonOde {
|
||||
ode: number; // Ode number (1,3,4,5,6,7,8,9)
|
||||
canons: CanonSubCanon[]; // Sub-canons per ode
|
||||
}
|
||||
|
||||
/** Matins canon data for a given tone. */
|
||||
export interface CanonData {
|
||||
tone: number;
|
||||
odes: CanonOde[];
|
||||
}
|
||||
|
||||
/** A single ode within the Great Canon of St. Andrew. */
|
||||
export interface GreatCanonOde {
|
||||
ode: number; // 1-9 (includes Ode 2)
|
||||
irmos: string;
|
||||
troparia: string[]; // Penitential troparia
|
||||
trinityTroparion: string;
|
||||
theotokion: string;
|
||||
kontakion?: string; // After Ode 6: "Душе моя..."
|
||||
saintTroparia?: string[]; // Troparia to St. Mary of Egypt / St. Andrew
|
||||
}
|
||||
|
||||
/** One part of the Great Canon (divided across the 1st week). */
|
||||
export interface GreatCanonPart {
|
||||
part: number; // 1-4 for first week
|
||||
title: string;
|
||||
odes: GreatCanonOde[];
|
||||
}
|
||||
|
||||
/** Expression evaluator variable store. */
|
||||
|
||||
Reference in new issue
Block a user