@ajf/calendars 12.1.3 → 12.1.7

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.
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"AjfEthiopianCalendarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":28,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AjfEthiopianDatePipe"}],"exports":[{"__symbolic":"reference","name":"AjfEthiopianDatePipe"}],"providers":[{"provide":{"__symbolic":"reference","module":"@ajf/core/calendar","name":"AjfCalendarService","line":36,"character":14},"useClass":{"__symbolic":"reference","name":"AjfEthiopianCalendarService"}}]}]}],"members":{}},"AjfEthiopianCalendarService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ajf/core/calendar","name":"AjfCalendarService","line":61,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":60,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"buildView":[{"__symbolic":"method"}],"entryLabel":[{"__symbolic":"method"}],"monthBounds":[{"__symbolic":"method"}],"nextView":[{"__symbolic":"method"}],"previousView":[{"__symbolic":"method"}],"_ecMonthHeaderRow":[{"__symbolic":"method"}],"_ecYearCalendarRows":[{"__symbolic":"method"}],"_ecDecadeCalendarRows":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"EthiopianDate":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Date"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"getDate":[{"__symbolic":"method"}],"getDay":[{"__symbolic":"method"}],"getDayOfWeek":[{"__symbolic":"method"}],"getFullYear":[{"__symbolic":"method"}],"getGregorianDate":[{"__symbolic":"method"}],"getGCWeekDay":[{"__symbolic":"method"}],"getMonth":[{"__symbolic":"method"}],"getMonthName":[{"__symbolic":"method"}],"getShortMonthName":[{"__symbolic":"method"}],"getHours":[{"__symbolic":"method"}],"getMinutes":[{"__symbolic":"method"}],"getSeconds":[{"__symbolic":"method"}],"getMilliseconds":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}]}},"AjfEthiopianDatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":26,"character":1},"arguments":[{"name":"ajfEthiopianDate"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"AjfEthiopianCalendarModule":"./calendar-module","AjfEthiopianCalendarService":"./calendar-service","EthiopianDate":"./ethiopian-date","AjfEthiopianDatePipe":"./ethiopian-date-pipe"},"importAs":"@ajf/calendars/ethiopian"}
1
+ {"__symbolic":"module","version":4,"metadata":{"AjfEthiopianCalendarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":28,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AjfEthiopianDatePipe"}],"exports":[{"__symbolic":"reference","name":"AjfEthiopianDatePipe"}],"providers":[{"provide":{"__symbolic":"reference","module":"@ajf/core/calendar","name":"AjfCalendarService","line":31,"character":24},"useClass":{"__symbolic":"reference","name":"AjfEthiopianCalendarService"}}]}]}],"members":{}},"AjfEthiopianCalendarService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ajf/core/calendar","name":"AjfCalendarService","line":61,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":60,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"buildView":[{"__symbolic":"method"}],"entryLabel":[{"__symbolic":"method"}],"monthBounds":[{"__symbolic":"method"}],"nextView":[{"__symbolic":"method"}],"previousView":[{"__symbolic":"method"}],"_ecMonthHeaderRow":[{"__symbolic":"method"}],"_ecYearCalendarRows":[{"__symbolic":"method"}],"_ecDecadeCalendarRows":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"EthiopianDate":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Date"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"getDate":[{"__symbolic":"method"}],"getDay":[{"__symbolic":"method"}],"getDayOfWeek":[{"__symbolic":"method"}],"getFullYear":[{"__symbolic":"method"}],"getGregorianDate":[{"__symbolic":"method"}],"getGCWeekDay":[{"__symbolic":"method"}],"getMonth":[{"__symbolic":"method"}],"getMonthName":[{"__symbolic":"method"}],"getShortMonthName":[{"__symbolic":"method"}],"getHours":[{"__symbolic":"method"}],"getMinutes":[{"__symbolic":"method"}],"getSeconds":[{"__symbolic":"method"}],"getMilliseconds":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}]}},"AjfEthiopianDatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":26,"character":1},"arguments":[{"name":"ajfEthiopianDate"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"AjfEthiopianCalendarModule":"./calendar-module","AjfEthiopianCalendarService":"./calendar-service","EthiopianDate":"./ethiopian-date","AjfEthiopianDatePipe":"./ethiopian-date-pipe"},"importAs":"@ajf/calendars/ethiopian"}
@@ -22,7 +22,7 @@ import { Version } from '@angular/core';
22
22
  *
23
23
  */
24
24
  /** Current version of Ajf. */
25
- const VERSION = new Version('12.1.3');
25
+ const VERSION = new Version('12.1.7');
26
26
 
27
27
  /**
28
28
  * @license
@@ -1 +1 @@
1
- {"version":3,"file":"calendars.js","sources":["../../../../../../src/calendars/version.ts","../../../../../../src/calendars/public-api.ts","../../../../../../src/calendars/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of Ajf. */\nexport const VERSION = new Version('12.1.3');\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './version';\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;AAwBA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;ACzBtD;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"calendars.js","sources":["../../../../../../src/calendars/version.ts","../../../../../../src/calendars/public-api.ts","../../../../../../src/calendars/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of Ajf. */\nexport const VERSION = new Version('12.1.7');\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './version';\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;AAwBA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;ACzBtD;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -35,14 +35,14 @@ function quotient(i, j) {
35
35
  return Math.floor(i / j);
36
36
  }
37
37
  function isGregorianLeap(year) {
38
- return (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0));
38
+ return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
39
39
  }
40
40
  function setEra(era) {
41
- if ((era === JD_EPOCH_OFFSET_AMETE_ALEM) || (era === JD_EPOCH_OFFSET_AMETE_MIHRET)) {
41
+ if (era === JD_EPOCH_OFFSET_AMETE_ALEM || era === JD_EPOCH_OFFSET_AMETE_MIHRET) {
42
42
  JDN_OFFSET = era;
43
43
  }
44
44
  else {
45
- throw (new Error(`Unknown Era: ${era}`));
45
+ throw new Error(`Unknown Era: ${era}`);
46
46
  }
47
47
  }
48
48
  function isEraSet() {
@@ -52,31 +52,42 @@ function unsetEra() {
52
52
  JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;
53
53
  }
54
54
  function guessEraFromJDN(jdn) {
55
- return (jdn >= (JD_EPOCH_OFFSET_AMETE_MIHRET + 365)) ? JD_EPOCH_OFFSET_AMETE_MIHRET :
56
- JD_EPOCH_OFFSET_AMETE_ALEM;
55
+ return jdn >= JD_EPOCH_OFFSET_AMETE_MIHRET + 365
56
+ ? JD_EPOCH_OFFSET_AMETE_MIHRET
57
+ : JD_EPOCH_OFFSET_AMETE_ALEM;
57
58
  }
58
59
  function ethiopicToJDN(day, month, year) {
59
60
  const ERA = isEraSet() ? JDN_OFFSET : JD_EPOCH_OFFSET_AMETE_MIHRET;
60
- const jdn = (ERA + 365) + 365 * (year - 1) + quotient(year, 4) + 30 * month + day - 31;
61
+ const jdn = ERA + 365 + 365 * (year - 1) + quotient(year, 4) + 30 * month + day - 31;
61
62
  return jdn;
62
63
  }
63
64
  function jdnToEthiopic(jdn) {
64
65
  const ERA = isEraSet() ? JDN_OFFSET : guessEraFromJDN(jdn);
65
66
  const r = (jdn - ERA) % 1461;
66
67
  const n = (r % 365) + 365 * quotient(r, 1460);
67
- const year = 4 * quotient((jdn - ERA), 1461) + quotient(r, 365) - quotient(r, 1460);
68
+ const year = 4 * quotient(jdn - ERA, 1461) + quotient(r, 365) - quotient(r, 1460);
68
69
  const month = quotient(n, 30) + 1;
69
70
  const day = (n % 30) + 1;
70
71
  return [year, month, day];
71
72
  }
72
73
  function gregorianToJDN(day, month, year) {
73
- const s = quotient(year, 4) - quotient(year - 1, 4) - quotient(year, 100) +
74
- quotient(year - 1, 100) + quotient(year, 400) - quotient(year - 1, 400);
74
+ const s = quotient(year, 4) -
75
+ quotient(year - 1, 4) -
76
+ quotient(year, 100) +
77
+ quotient(year - 1, 100) +
78
+ quotient(year, 400) -
79
+ quotient(year - 1, 400);
75
80
  const t = quotient(14 - month, 12);
76
81
  const n = 31 * t * (month - 1) +
77
- (1 - t) * (59 + s + 30 * (month - 3) + quotient((3 * month - 7), 5)) + day - 1;
78
- const j = JD_EPOCH_OFFSET_GREGORIAN + 365 * (year - 1) + quotient(year - 1, 4) -
79
- quotient(year - 1, 100) + quotient(year - 1, 400) + n;
82
+ (1 - t) * (59 + s + 30 * (month - 3) + quotient(3 * month - 7, 5)) +
83
+ day -
84
+ 1;
85
+ const j = JD_EPOCH_OFFSET_GREGORIAN +
86
+ 365 * (year - 1) +
87
+ quotient(year - 1, 4) -
88
+ quotient(year - 1, 100) +
89
+ quotient(year - 1, 400) +
90
+ n;
80
91
  return j;
81
92
  }
82
93
  function jdnToGregorian(jdn) {
@@ -86,20 +97,23 @@ function jdnToGregorian(jdn) {
86
97
  const r4 = r100 % 1461;
87
98
  let n = (r4 % 365) + 365 * quotient(r4, 1460);
88
99
  const s = quotient(r4, 1095);
89
- const aprime = 400 * quotient((jdn - JD_EPOCH_OFFSET_GREGORIAN), 146097) +
90
- 100 * quotient(r400, 36524) + 4 * quotient(r100, 1461) + quotient(r4, 365) -
91
- quotient(r4, 1460) - quotient(r2000, 730484);
100
+ const aprime = 400 * quotient(jdn - JD_EPOCH_OFFSET_GREGORIAN, 146097) +
101
+ 100 * quotient(r400, 36524) +
102
+ 4 * quotient(r100, 1461) +
103
+ quotient(r4, 365) -
104
+ quotient(r4, 1460) -
105
+ quotient(r2000, 730484);
92
106
  const year = aprime + 1;
93
- const t = quotient((364 + s - n), 306);
94
- let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient((5 * (n - s) + 13), 153) + 1);
107
+ const t = quotient(364 + s - n, 306);
108
+ let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient(5 * (n - s) + 13, 153) + 1);
95
109
  n += 1 - quotient(r2000, 730484);
96
110
  let day = n;
97
- if ((r100 === 0) && (n === 0) && (r400 !== 0)) {
111
+ if (r100 === 0 && n === 0 && r400 !== 0) {
98
112
  month = 12;
99
113
  day = 31;
100
114
  }
101
115
  else {
102
- monthDays[2] = (isGregorianLeap(year)) ? 29 : 28;
116
+ monthDays[2] = isGregorianLeap(year) ? 29 : 28;
103
117
  for (let i = 1; i <= GREGORIAN_NUMBER_OF_MONTHS; i += 1) {
104
118
  if (n <= monthDays[i]) {
105
119
  day = n;
@@ -166,9 +180,35 @@ function toEC(dateArray) {
166
180
  */
167
181
  const WEEK_NAMES = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];
168
182
  const MONTHS_NAMES = [
169
- 'መስከረም', 'ጥቅምት', 'ኅዳር', 'ታኅሣሥ', 'ጥር', 'የካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜን'
183
+ 'መስከረም',
184
+ 'ጥቅምት',
185
+ 'ኅዳር',
186
+ 'ታኅሣሥ',
187
+ 'ጥር',
188
+ 'የካቲት',
189
+ 'መጋቢት',
190
+ 'ሚያዝያ',
191
+ 'ግንቦት',
192
+ 'ሰኔ',
193
+ 'ሐምሌ',
194
+ 'ነሐሴ',
195
+ 'ጳጉሜን',
196
+ ];
197
+ const SHORT_MONTHS_NAMES = [
198
+ 'መስከ',
199
+ 'ጥቅም',
200
+ 'ኅዳር',
201
+ 'ታኅሣ',
202
+ 'ጥር',
203
+ 'የካቲ',
204
+ 'መጋቢ',
205
+ 'ሚያዝ',
206
+ 'ግንቦ',
207
+ 'ሰኔ',
208
+ 'ሐምሌ',
209
+ 'ነሐሴ',
210
+ 'ጳጉሜ',
170
211
  ];
171
- const SHORT_MONTHS_NAMES = ['መስከ', 'ጥቅም', 'ኅዳር', 'ታኅሣ', 'ጥር', 'የካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'];
172
212
 
173
213
  /**
174
214
  * @license
@@ -210,14 +250,20 @@ class EthiopianDate {
210
250
  if (result == null) {
211
251
  throw new Error('Invalid Argument Exception');
212
252
  }
213
- [this._year, this._month, this._date] =
214
- [result.getFullYear(), result.getMonth(), result.getDate()];
253
+ [this._year, this._month, this._date] = [
254
+ result.getFullYear(),
255
+ result.getMonth(),
256
+ result.getDate(),
257
+ ];
215
258
  this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);
216
259
  }
217
260
  else if (typeof val === 'object' && val instanceof Date) {
218
- const result = EthiopianDate.gregorianToEthiopian(val.getFullYear(), val.getMonth() + 1, val.getDate());
219
- [this._year, this._month, this._date] =
220
- [result.getFullYear(), result.getMonth(), result.getDate()];
261
+ const result = EthiopianDate.gregorianToEthiopian(val);
262
+ [this._year, this._month, this._date] = [
263
+ result.getFullYear(),
264
+ result.getMonth(),
265
+ result.getDate(),
266
+ ];
221
267
  this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);
222
268
  }
223
269
  else {
@@ -257,9 +303,9 @@ class EthiopianDate {
257
303
  return this._month >= 0 && this._month < MONTHS_NAMES.length ? MONTHS_NAMES[this._month] : null;
258
304
  }
259
305
  getShortMonthName() {
260
- return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length ?
261
- SHORT_MONTHS_NAMES[this._month] :
262
- null;
306
+ return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length
307
+ ? SHORT_MONTHS_NAMES[this._month]
308
+ : null;
263
309
  }
264
310
  getHours() {
265
311
  return 0;
@@ -282,7 +328,7 @@ class EthiopianDate {
282
328
  * @param val - A numeric year value if the second and third parameters are
283
329
  * provided, it should be a date string if not
284
330
  * @param month A zero-based numeric value for the month
285
- * (0 for January, 11 for December)
331
+ * (0 for መስከረም, 12 for ጳጉሜን)
286
332
  * @param day A numeric value equal for the day of the month.
287
333
  *
288
334
  * @api public
@@ -311,6 +357,16 @@ class EthiopianDate {
311
357
  const gc = toGC(ec);
312
358
  return new Date(gc[0], gc[1] - 1, gc[2]);
313
359
  }
360
+ /**
361
+ *
362
+ * @param val - A numeric year value if the second and third parameters are
363
+ * provided, it should be a date string if not
364
+ * @param month A zero-based numeric value for the month
365
+ * (0 for January, 11 for December)
366
+ * @param day A numeric value equal for the day of the month.
367
+ *
368
+ * @api public
369
+ */
314
370
  static gregorianToEthiopian(val, month, day) {
315
371
  let gc;
316
372
  if (val != null && month == null && day == null && typeof val !== 'number') {
@@ -540,7 +596,7 @@ class AjfEthiopianCalendarService extends AjfCalendarService {
540
596
  const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);
541
597
  let curYear = ecDate.getFullYear();
542
598
  let firstYear = curYear - (curYear % 10) + 1;
543
- let curDate = EthiopianDate.ethiopianToGregorian(firstYear, 1, 1);
599
+ let curDate = EthiopianDate.ethiopianToGregorian(firstYear, 0, 1);
544
600
  let rows = [];
545
601
  for (let i = 0; i < 4; i++) {
546
602
  let row = [];
@@ -587,7 +643,7 @@ class AjfEthiopianDatePipe {
587
643
  try {
588
644
  const ed = EthiopianDate.gregorianToEthiopian(value);
589
645
  const date = `0${ed.getDate()}`.slice(-2);
590
- const month = `0${ed.getMonth()}`.slice(-2);
646
+ const month = `0${ed.getMonth() + 1}`.slice(-2);
591
647
  return `${date}/${month}/${ed.getFullYear()}`;
592
648
  }
593
649
  catch (e) {
@@ -625,15 +681,9 @@ class AjfEthiopianCalendarModule {
625
681
  }
626
682
  AjfEthiopianCalendarModule.decorators = [
627
683
  { type: NgModule, args: [{
628
- declarations: [
629
- AjfEthiopianDatePipe,
630
- ],
631
- exports: [
632
- AjfEthiopianDatePipe,
633
- ],
634
- providers: [
635
- { provide: AjfCalendarService, useClass: AjfEthiopianCalendarService },
636
- ],
684
+ declarations: [AjfEthiopianDatePipe],
685
+ exports: [AjfEthiopianDatePipe],
686
+ providers: [{ provide: AjfCalendarService, useClass: AjfEthiopianCalendarService }],
637
687
  },] }
638
688
  ];
639
689
 
@@ -1 +1 @@
1
- {"version":3,"file":"ethiopian.js","sources":["../../../../../../src/calendars/ethiopian/converter.ts","../../../../../../src/calendars/ethiopian/utils.ts","../../../../../../src/calendars/ethiopian/ethiopian-date.ts","../../../../../../src/calendars/ethiopian/calendar-service.ts","../../../../../../src/calendars/ethiopian/ethiopian-date-pipe.ts","../../../../../../src/calendars/ethiopian/calendar-module.ts","../../../../../../src/calendars/ethiopian/public-api.ts","../../../../../../src/calendars/ethiopian/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nconst JD_EPOCH_OFFSET_AMETE_ALEM = -285019; // ዓ/ዓ\nconst JD_EPOCH_OFFSET_AMETE_MIHRET = 1723856; // ዓ/ም\nconst JD_EPOCH_OFFSET_GREGORIAN = 1721426;\nconst JD_EPOCH_OFFSET_UNSET = -1;\n\nlet JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;\n\nconst GREGORIAN_NUMBER_OF_MONTHS = 12;\nconst monthDays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction quotient(i: number, j: number): number {\n return Math.floor(i / j);\n}\n\nfunction isGregorianLeap(year: number): boolean {\n return (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0));\n}\n\nfunction setEra(era: number): void {\n if ((era === JD_EPOCH_OFFSET_AMETE_ALEM) || (era === JD_EPOCH_OFFSET_AMETE_MIHRET)) {\n JDN_OFFSET = era;\n } else {\n throw (new Error(`Unknown Era: ${era}`));\n }\n}\n\nfunction isEraSet(): boolean {\n return JD_EPOCH_OFFSET_UNSET !== JDN_OFFSET;\n}\n\nfunction unsetEra(): void {\n JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;\n}\n\nfunction guessEraFromJDN(jdn: number) {\n return (jdn >= (JD_EPOCH_OFFSET_AMETE_MIHRET + 365)) ? JD_EPOCH_OFFSET_AMETE_MIHRET :\n JD_EPOCH_OFFSET_AMETE_ALEM;\n}\n\nfunction ethiopicToJDN(day: number, month: number, year: number) {\n const ERA = isEraSet() ? JDN_OFFSET : JD_EPOCH_OFFSET_AMETE_MIHRET;\n const jdn = (ERA + 365) + 365 * (year - 1) + quotient(year, 4) + 30 * month + day - 31;\n\n return jdn;\n}\n\nfunction jdnToEthiopic(jdn: number): [number, number, number] {\n const ERA = isEraSet() ? JDN_OFFSET : guessEraFromJDN(jdn);\n const r = (jdn - ERA) % 1461;\n const n = (r % 365) + 365 * quotient(r, 1460);\n const year = 4 * quotient((jdn - ERA), 1461) + quotient(r, 365) - quotient(r, 1460);\n const month = quotient(n, 30) + 1;\n const day = (n % 30) + 1;\n\n return [year, month, day];\n}\n\nfunction gregorianToJDN(day: number, month: number, year: number): number {\n const s = quotient(year, 4) - quotient(year - 1, 4) - quotient(year, 100) +\n quotient(year - 1, 100) + quotient(year, 400) - quotient(year - 1, 400);\n\n const t = quotient(14 - month, 12);\n\n const n = 31 * t * (month - 1) +\n (1 - t) * (59 + s + 30 * (month - 3) + quotient((3 * month - 7), 5)) + day - 1;\n\n const j = JD_EPOCH_OFFSET_GREGORIAN + 365 * (year - 1) + quotient(year - 1, 4) -\n quotient(year - 1, 100) + quotient(year - 1, 400) + n;\n\n return j;\n}\n\nfunction jdnToGregorian(jdn: number): [number, number, number] {\n const r2000 = (jdn - JD_EPOCH_OFFSET_GREGORIAN) % 730485;\n const r400 = (jdn - JD_EPOCH_OFFSET_GREGORIAN) % 146097;\n const r100 = r400 % 36524;\n const r4 = r100 % 1461;\n let n = (r4 % 365) + 365 * quotient(r4, 1460);\n const s = quotient(r4, 1095);\n const aprime = 400 * quotient((jdn - JD_EPOCH_OFFSET_GREGORIAN), 146097) +\n 100 * quotient(r400, 36524) + 4 * quotient(r100, 1461) + quotient(r4, 365) -\n quotient(r4, 1460) - quotient(r2000, 730484);\n const year = aprime + 1;\n const t = quotient((364 + s - n), 306);\n let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient((5 * (n - s) + 13), 153) + 1);\n n += 1 - quotient(r2000, 730484);\n let day = n;\n\n if ((r100 === 0) && (n === 0) && (r400 !== 0)) {\n month = 12;\n day = 31;\n } else {\n monthDays[2] = (isGregorianLeap(year)) ? 29 : 28;\n for (let i = 1; i <= GREGORIAN_NUMBER_OF_MONTHS; i += 1) {\n if (n <= monthDays[i]) {\n day = n;\n break;\n }\n n -= monthDays[i];\n }\n }\n return [year, month, day];\n}\n\nfunction gregorianToEthiopic(day: number, month: number, year: number): [number, number, number] {\n const jdn = gregorianToJDN(day, month, year);\n return jdnToEthiopic(jdn);\n}\n\nfunction ethioipicToGreg(day: number, month: number, year: number): [number, number, number] {\n const jdn = ethiopicToJDN(day, month, year);\n return jdnToGregorian(jdn);\n}\n\nfunction ethioipicToGregorian(\n day: number, month: number, year: number, era: number): [number, number, number] {\n setEra(era);\n const result = ethioipicToGreg(day, month, year);\n unsetEra();\n return result;\n}\n\n/** API * */\n\n/** ethiopian to gregorian */\nexport function toGC(dateArray: [number, number, number]|[number, number, number, number]):\n [number, number, number] {\n const [y, m, d] = dateArray;\n let era = dateArray.length === 4 ? dateArray[3] : JD_EPOCH_OFFSET_AMETE_MIHRET;\n if (d < 0 || d > 30 || m < 0 || m > 13) {\n throw new Error('Invalid Ethiopian Date');\n }\n return ethioipicToGregorian(d, m, y, era);\n}\n\n/** gregorian to ethiopian */\nexport function toEC(dateArray: [number, number, number]): [number, number, number] {\n const [y, m, d] = dateArray;\n if (d < 0 || d > 31 || m < 0 || m > 12) {\n throw new Error('Invalid Gregorian Date');\n }\n return gregorianToEthiopic(d, m, y);\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport const WEEK_NAMES = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];\n\nexport const MONTHS_NAMES = [\n 'መስከረም', 'ጥቅምት', 'ኅዳር', 'ታኅሣሥ', 'ጥር', 'የካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜን'\n];\n\nexport const SHORT_MONTHS_NAMES =\n ['መስከ', 'ጥቅም', 'ኅዳር', 'ታኅሣ', 'ጥር', 'የካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'];\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {toEC, toGC} from './converter';\nimport {MONTHS_NAMES, SHORT_MONTHS_NAMES, WEEK_NAMES} from './utils';\n\nexport class EthiopianDate {\n private _year: number;\n private _month: number;\n private _date: number;\n private _gc: Date;\n\n /**\n * @param val - A numeric year value if the second and third parameters ar provided,\n * It should be a date string if not\n * @param month A zero-based numeric value for the month (0 for መስከረም, 12 for ጳጉሜን)\n * @param day A numeric value equal for the day of the month.\n */\n constructor(val?: Date|string|number, month?: number, day?: number) {\n if (val == null && month == null && day == null) {\n const ahun = EthiopianDate.gregorianToEthiopian(new Date());\n [this._year, this._month, this._date] = [ahun.getFullYear(), ahun.getMonth(), ahun.getDate()];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const result = EthiopianDate.parse(val);\n if (result == null) {\n throw new Error('Invalid Argument Exception');\n }\n [this._year, this._month, this._date] =\n [result.getFullYear(), result.getMonth(), result.getDate()];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else if (typeof val === 'object' && val instanceof Date) {\n const result = EthiopianDate.gregorianToEthiopian(\n val.getFullYear(), val.getMonth() + 1, val.getDate());\n [this._year, this._month, this._date] =\n [result.getFullYear(), result.getMonth(), result.getDate()];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n this._year = val;\n this._month = month;\n this._date = day;\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n }\n }\n\n getDate(): number {\n return this._date;\n }\n\n getDay(): number {\n return this._gc.getDay();\n }\n\n getDayOfWeek() {\n const weekDay = this.getGCWeekDay();\n return WEEK_NAMES[weekDay];\n }\n\n getFullYear(): number {\n return this._year;\n }\n\n getGregorianDate(): Date {\n return this._gc;\n }\n\n getGCWeekDay(): number {\n return this._gc.getDay();\n }\n\n getMonth(): number {\n return this._month;\n }\n\n getMonthName(): string|null {\n return this._month >= 0 && this._month < MONTHS_NAMES.length ? MONTHS_NAMES[this._month] : null;\n }\n\n getShortMonthName(): string|null {\n return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length ?\n SHORT_MONTHS_NAMES[this._month] :\n null;\n }\n\n getHours(): number {\n return 0;\n }\n\n getMinutes(): number {\n return 0;\n }\n\n getSeconds(): number {\n return 0;\n }\n\n getMilliseconds(): number {\n return 0;\n }\n\n toString(): string {\n return `${this._year}-${this._month + 1}-${this._date}`;\n }\n\n /**\n * Converts a Ethiopian date to Gregorian and returns Date instance representing Gregorian Date.\n *\n * @param val - A numeric year value if the second and third parameters are\n * provided, it should be a date string if not\n * @param month A zero-based numeric value for the month\n * (0 for January, 11 for December)\n * @param day A numeric value equal for the day of the month.\n *\n * @api public\n */\n static ethiopianToGregorian(val?: EthiopianDate|string|number, month?: number, day?: number):\n Date {\n let ec: [number, number, number];\n if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const etDate = new EthiopianDate(val);\n ec = [etDate.getFullYear(), etDate.getMonth() + 1, etDate.getDate()];\n } else if (typeof val === 'object' && val instanceof EthiopianDate) {\n const [y, m, d] = [val.getFullYear(), val.getMonth() + 1, val.getDate()];\n ec = [y, m, d];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n ec = [val, month + 1, day];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n const gc = toGC(ec);\n return new Date(gc[0], gc[1] - 1, gc[2]);\n }\n\n static gregorianToEthiopian(val?: Date|string|number, month?: number, day?: number):\n EthiopianDate {\n let gc: [number, number, number];\n if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const gcDate = new Date(val);\n gc = [gcDate.getFullYear(), gcDate.getMonth() + 1, gcDate.getDate()];\n } else if (typeof val === 'object' && val instanceof Date) {\n const [y, m, d] = [val.getFullYear(), val.getMonth() + 1, val.getDate()];\n gc = [y, m, d];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n gc = [val, month + 1, day];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n const ec = toEC(gc);\n return new EthiopianDate(ec[0], ec[1] - 1, ec[2]);\n }\n\n /**\n * Parse Ethiopian date from string\n *\n * @param dateString a date string to parse\n * @param pattern a parsing pattern\n *\n * @returns EthiopianDate\n */\n static parse(dateString: string): EthiopianDate|null {\n if (!dateString) {\n return null;\n }\n const result = dateString.split('-');\n if (result.length === 3) {\n const [y, m, d] = result;\n return new EthiopianDate(parseInt(y, 10), parseInt(m, 10) - 1, parseInt(d, 10));\n }\n throw new Error(`ParsingError: Can't parse ${dateString}`);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n AjfCalendarEntry,\n AjfCalendarParams,\n AjfCalendarService,\n AjfCalendarView,\n AjfCalendarViewMode\n} from '@ajf/core/calendar';\nimport {Injectable} from '@angular/core';\nimport {\n addDays,\n addWeeks,\n addYears,\n endOfISOWeek,\n getISODay,\n setISODay,\n startOfISOWeek,\n startOfWeek,\n subWeeks\n} from 'date-fns';\n\nimport {EthiopianDate} from './ethiopian-date';\n\nfunction getMonthDays(month: number, year: number): number {\n if (month < 12) {\n return 30;\n }\n return year % 4 === 3 ? 6 : 5;\n}\n\nfunction getMonthBounds(date: EthiopianDate): {start: EthiopianDate, end: EthiopianDate} {\n const year = date.getFullYear();\n const month = date.getMonth();\n const start = new EthiopianDate(year, month, 1);\n const endDay = getMonthDays(month, year);\n const end = new EthiopianDate(year, month, endDay);\n return {start, end};\n}\n\n@Injectable({providedIn: 'root'})\nexport class AjfEthiopianCalendarService extends AjfCalendarService {\n override buildView(params: AjfCalendarParams): AjfCalendarView {\n const {viewMode} = params;\n const viewDate = EthiopianDate.gregorianToEthiopian(params.viewDate);\n switch (viewMode) {\n case 'decade':\n let curYear: number = viewDate.getFullYear();\n let firstYear = curYear - (curYear % 10) + 1;\n let lastYear = firstYear + 11;\n return {\n header: `${firstYear} - ${lastYear}`,\n headerRow: [],\n rows: this._ecDecadeCalendarRows(params),\n };\n case 'year':\n return {\n header: `${viewDate.getFullYear()}`,\n headerRow: [],\n rows: this._ecYearCalendarRows(params),\n };\n case 'month':\n const view = super.buildView(params);\n return {\n header: `${viewDate.getShortMonthName()} ${viewDate.getFullYear()}`,\n headerRow: this._ecMonthHeaderRow(params),\n rows: view.rows,\n };\n }\n return super.buildView(params);\n }\n\n override entryLabel(entry: AjfCalendarEntry): string {\n const ecDate = EthiopianDate.gregorianToEthiopian(entry.date);\n if (entry.type === 'day') {\n return `${ecDate.getDate()}`;\n }\n if (entry.type === 'month') {\n return `${ecDate.getMonthName()}`;\n }\n return `${ecDate.getFullYear()}`;\n }\n\n override monthBounds(date: Date, isoMode: boolean): {start: Date, end: Date} {\n if (!isoMode) {\n const ecDate = EthiopianDate.gregorianToEthiopian(date);\n const {start, end} = getMonthBounds(ecDate);\n return {\n start: EthiopianDate.ethiopianToGregorian(start),\n end: EthiopianDate.ethiopianToGregorian(end),\n };\n } else {\n let isoDay = getISODay(date);\n const ecDate = EthiopianDate.gregorianToEthiopian(date);\n let {start, end} = getMonthBounds(ecDate);\n if (ecDate.getMonth() === 12) {\n start = EthiopianDate.gregorianToEthiopian(startOfISOWeek(start.getGregorianDate()));\n end = EthiopianDate.gregorianToEthiopian(endOfISOWeek(end.getGregorianDate()));\n } else {\n date = isoDay < 4 ? endOfISOWeek(date) : startOfISOWeek(date);\n const startWeekDay = start.getDay();\n const endWeekDay = end.getDay();\n if (startWeekDay == 0 || startWeekDay > 4) {\n start = EthiopianDate.gregorianToEthiopian(addWeeks(start.getGregorianDate(), 1));\n }\n if (endWeekDay > 0 && endWeekDay < 4) {\n end = EthiopianDate.gregorianToEthiopian(subWeeks(end.getGregorianDate(), 1));\n }\n }\n return {\n start: startOfISOWeek(start.getGregorianDate()),\n end: endOfISOWeek(end.getGregorianDate()),\n };\n }\n }\n\n override nextView(viewDate: Date, viewMode: AjfCalendarViewMode): Date {\n if (viewMode === 'month') {\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let year = ecDate.getFullYear();\n let month = ecDate.getMonth();\n if (month === 12) {\n month = 0;\n year += 1;\n } else {\n month += 1;\n }\n return EthiopianDate.ethiopianToGregorian(new EthiopianDate(year, month, 1));\n }\n return super.nextView(viewDate, viewMode);\n }\n\n override previousView(viewDate: Date, viewMode: AjfCalendarViewMode): Date {\n if (viewMode === 'month') {\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let year = ecDate.getFullYear();\n let month = ecDate.getMonth();\n if (month === 0) {\n month = 12;\n year -= 1;\n } else {\n month -= 1;\n }\n return EthiopianDate.ethiopianToGregorian(new EthiopianDate(year, month, 1));\n }\n return super.previousView(viewDate, viewMode);\n }\n\n private _ecMonthHeaderRow(params: AjfCalendarParams): string[] {\n const {isoMode, viewDate} = params;\n let curDate: Date;\n if (isoMode) {\n curDate = setISODay(startOfWeek(viewDate), 1);\n } else {\n curDate = startOfWeek(viewDate);\n }\n let weekDayNames: string[] = [];\n for (let i = 0; i < 7; i++) {\n const ecDate = EthiopianDate.gregorianToEthiopian(curDate);\n weekDayNames.push(ecDate.getDayOfWeek());\n curDate = addDays(curDate, 1);\n }\n return weekDayNames;\n }\n\n private _ecYearCalendarRows(params: AjfCalendarParams): AjfCalendarEntry[][] {\n const {viewDate, selection} = params;\n const year = EthiopianDate.gregorianToEthiopian(viewDate).getFullYear();\n let curDate: EthiopianDate;\n\n let rows: AjfCalendarEntry[][] = [];\n for (let i = 0; i <= 4; i++) {\n let row: AjfCalendarEntry[] = [];\n for (let j = 0; j < 3; j++) {\n const curMonth = i * 3 + j;\n if (curMonth < 13) {\n curDate = new EthiopianDate(year, curMonth, 1);\n let date = EthiopianDate.ethiopianToGregorian(curDate);\n let newEntry: AjfCalendarEntry = {type: 'month', date, selected: 'none'};\n newEntry.selected = this.isEntrySelected(newEntry, selection);\n row.push(newEntry);\n }\n }\n rows.push(row);\n }\n\n return rows;\n }\n\n private _ecDecadeCalendarRows(params: AjfCalendarParams): AjfCalendarEntry[][] {\n const {viewDate, selection} = params;\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let curYear: number = ecDate.getFullYear();\n let firstYear = curYear - (curYear % 10) + 1;\n let curDate: Date = EthiopianDate.ethiopianToGregorian(firstYear, 1, 1);\n\n let rows: AjfCalendarEntry[][] = [];\n for (let i = 0; i < 4; i++) {\n let row: AjfCalendarEntry[] = [];\n for (let j = 0; j < 3; j++) {\n let date = new Date(curDate);\n let newEntry: AjfCalendarEntry = {type: 'year', date: date, selected: 'none'};\n newEntry.selected = this.isEntrySelected(newEntry, selection);\n row.push(newEntry);\n curDate = addYears(curDate, 1);\n }\n rows.push(row);\n }\n\n return rows;\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Injectable, Pipe, PipeTransform} from '@angular/core';\nimport {EthiopianDate} from './ethiopian-date';\n\n@Injectable()\n@Pipe({name: 'ajfEthiopianDate'})\nexport class AjfEthiopianDatePipe implements PipeTransform {\n transform(value: any): string|null {\n try {\n const ed = EthiopianDate.gregorianToEthiopian(value);\n const date = `0${ed.getDate()}`.slice(-2);\n const month = `0${ed.getMonth()}`.slice(-2);\n return `${date}/${month}/${ed.getFullYear()}`;\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCalendarService} from '@ajf/core/calendar';\nimport {NgModule} from '@angular/core';\n\nimport {AjfEthiopianCalendarService} from './calendar-service';\nimport {AjfEthiopianDatePipe} from './ethiopian-date-pipe';\n\n@NgModule({\n declarations: [\n AjfEthiopianDatePipe,\n ],\n exports: [\n AjfEthiopianDatePipe,\n ],\n providers: [\n {provide: AjfCalendarService, useClass: AjfEthiopianCalendarService},\n ],\n})\nexport class AjfEthiopianCalendarModule {\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './calendar-module';\nexport * from './calendar-service';\nexport * from './ethiopian-date';\nexport * from './ethiopian-date-pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ethiopian.js","sources":["../../../../../../src/calendars/ethiopian/converter.ts","../../../../../../src/calendars/ethiopian/utils.ts","../../../../../../src/calendars/ethiopian/ethiopian-date.ts","../../../../../../src/calendars/ethiopian/calendar-service.ts","../../../../../../src/calendars/ethiopian/ethiopian-date-pipe.ts","../../../../../../src/calendars/ethiopian/calendar-module.ts","../../../../../../src/calendars/ethiopian/public-api.ts","../../../../../../src/calendars/ethiopian/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nconst JD_EPOCH_OFFSET_AMETE_ALEM = -285019; // ዓ/ዓ\nconst JD_EPOCH_OFFSET_AMETE_MIHRET = 1723856; // ዓ/ም\nconst JD_EPOCH_OFFSET_GREGORIAN = 1721426;\nconst JD_EPOCH_OFFSET_UNSET = -1;\n\nlet JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;\n\nconst GREGORIAN_NUMBER_OF_MONTHS = 12;\nconst monthDays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction quotient(i: number, j: number): number {\n return Math.floor(i / j);\n}\n\nfunction isGregorianLeap(year: number): boolean {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction setEra(era: number): void {\n if (era === JD_EPOCH_OFFSET_AMETE_ALEM || era === JD_EPOCH_OFFSET_AMETE_MIHRET) {\n JDN_OFFSET = era;\n } else {\n throw new Error(`Unknown Era: ${era}`);\n }\n}\n\nfunction isEraSet(): boolean {\n return JD_EPOCH_OFFSET_UNSET !== JDN_OFFSET;\n}\n\nfunction unsetEra(): void {\n JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;\n}\n\nfunction guessEraFromJDN(jdn: number) {\n return jdn >= JD_EPOCH_OFFSET_AMETE_MIHRET + 365\n ? JD_EPOCH_OFFSET_AMETE_MIHRET\n : JD_EPOCH_OFFSET_AMETE_ALEM;\n}\n\nfunction ethiopicToJDN(day: number, month: number, year: number) {\n const ERA = isEraSet() ? JDN_OFFSET : JD_EPOCH_OFFSET_AMETE_MIHRET;\n const jdn = ERA + 365 + 365 * (year - 1) + quotient(year, 4) + 30 * month + day - 31;\n\n return jdn;\n}\n\nfunction jdnToEthiopic(jdn: number): [number, number, number] {\n const ERA = isEraSet() ? JDN_OFFSET : guessEraFromJDN(jdn);\n const r = (jdn - ERA) % 1461;\n const n = (r % 365) + 365 * quotient(r, 1460);\n const year = 4 * quotient(jdn - ERA, 1461) + quotient(r, 365) - quotient(r, 1460);\n const month = quotient(n, 30) + 1;\n const day = (n % 30) + 1;\n\n return [year, month, day];\n}\n\nfunction gregorianToJDN(day: number, month: number, year: number): number {\n const s =\n quotient(year, 4) -\n quotient(year - 1, 4) -\n quotient(year, 100) +\n quotient(year - 1, 100) +\n quotient(year, 400) -\n quotient(year - 1, 400);\n\n const t = quotient(14 - month, 12);\n\n const n =\n 31 * t * (month - 1) +\n (1 - t) * (59 + s + 30 * (month - 3) + quotient(3 * month - 7, 5)) +\n day -\n 1;\n\n const j =\n JD_EPOCH_OFFSET_GREGORIAN +\n 365 * (year - 1) +\n quotient(year - 1, 4) -\n quotient(year - 1, 100) +\n quotient(year - 1, 400) +\n n;\n\n return j;\n}\n\nfunction jdnToGregorian(jdn: number): [number, number, number] {\n const r2000 = (jdn - JD_EPOCH_OFFSET_GREGORIAN) % 730485;\n const r400 = (jdn - JD_EPOCH_OFFSET_GREGORIAN) % 146097;\n const r100 = r400 % 36524;\n const r4 = r100 % 1461;\n let n = (r4 % 365) + 365 * quotient(r4, 1460);\n const s = quotient(r4, 1095);\n const aprime =\n 400 * quotient(jdn - JD_EPOCH_OFFSET_GREGORIAN, 146097) +\n 100 * quotient(r400, 36524) +\n 4 * quotient(r100, 1461) +\n quotient(r4, 365) -\n quotient(r4, 1460) -\n quotient(r2000, 730484);\n const year = aprime + 1;\n const t = quotient(364 + s - n, 306);\n let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient(5 * (n - s) + 13, 153) + 1);\n n += 1 - quotient(r2000, 730484);\n let day = n;\n\n if (r100 === 0 && n === 0 && r400 !== 0) {\n month = 12;\n day = 31;\n } else {\n monthDays[2] = isGregorianLeap(year) ? 29 : 28;\n for (let i = 1; i <= GREGORIAN_NUMBER_OF_MONTHS; i += 1) {\n if (n <= monthDays[i]) {\n day = n;\n break;\n }\n n -= monthDays[i];\n }\n }\n return [year, month, day];\n}\n\nfunction gregorianToEthiopic(day: number, month: number, year: number): [number, number, number] {\n const jdn = gregorianToJDN(day, month, year);\n return jdnToEthiopic(jdn);\n}\n\nfunction ethioipicToGreg(day: number, month: number, year: number): [number, number, number] {\n const jdn = ethiopicToJDN(day, month, year);\n return jdnToGregorian(jdn);\n}\n\nfunction ethioipicToGregorian(\n day: number,\n month: number,\n year: number,\n era: number,\n): [number, number, number] {\n setEra(era);\n const result = ethioipicToGreg(day, month, year);\n unsetEra();\n return result;\n}\n\n/** API * */\n\n/** ethiopian to gregorian */\nexport function toGC(\n dateArray: [number, number, number] | [number, number, number, number],\n): [number, number, number] {\n const [y, m, d] = dateArray;\n let era = dateArray.length === 4 ? dateArray[3] : JD_EPOCH_OFFSET_AMETE_MIHRET;\n if (d < 0 || d > 30 || m < 0 || m > 13) {\n throw new Error('Invalid Ethiopian Date');\n }\n return ethioipicToGregorian(d, m, y, era);\n}\n\n/** gregorian to ethiopian */\nexport function toEC(dateArray: [number, number, number]): [number, number, number] {\n const [y, m, d] = dateArray;\n if (d < 0 || d > 31 || m < 0 || m > 12) {\n throw new Error('Invalid Gregorian Date');\n }\n return gregorianToEthiopic(d, m, y);\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport const WEEK_NAMES = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];\n\nexport const MONTHS_NAMES = [\n 'መስከረም',\n 'ጥቅምት',\n 'ኅዳር',\n 'ታኅሣሥ',\n 'ጥር',\n 'የካቲት',\n 'መጋቢት',\n 'ሚያዝያ',\n 'ግንቦት',\n 'ሰኔ',\n 'ሐምሌ',\n 'ነሐሴ',\n 'ጳጉሜን',\n];\n\nexport const SHORT_MONTHS_NAMES = [\n 'መስከ',\n 'ጥቅም',\n 'ኅዳር',\n 'ታኅሣ',\n 'ጥር',\n 'የካቲ',\n 'መጋቢ',\n 'ሚያዝ',\n 'ግንቦ',\n 'ሰኔ',\n 'ሐምሌ',\n 'ነሐሴ',\n 'ጳጉሜ',\n];\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {toEC, toGC} from './converter';\nimport {MONTHS_NAMES, SHORT_MONTHS_NAMES, WEEK_NAMES} from './utils';\n\nexport class EthiopianDate {\n private _year: number;\n private _month: number;\n private _date: number;\n private _gc: Date;\n\n /**\n * @param val - A numeric year value if the second and third parameters ar provided,\n * It should be a date string if not\n * @param month A zero-based numeric value for the month (0 for መስከረም, 12 for ጳጉሜን)\n * @param day A numeric value equal for the day of the month.\n */\n constructor(val?: Date | string | number, month?: number, day?: number) {\n if (val == null && month == null && day == null) {\n const ahun = EthiopianDate.gregorianToEthiopian(new Date());\n [this._year, this._month, this._date] = [ahun.getFullYear(), ahun.getMonth(), ahun.getDate()];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const result = EthiopianDate.parse(val);\n if (result == null) {\n throw new Error('Invalid Argument Exception');\n }\n [this._year, this._month, this._date] = [\n result.getFullYear(),\n result.getMonth(),\n result.getDate(),\n ];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else if (typeof val === 'object' && val instanceof Date) {\n const result = EthiopianDate.gregorianToEthiopian(val);\n [this._year, this._month, this._date] = [\n result.getFullYear(),\n result.getMonth(),\n result.getDate(),\n ];\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n this._year = val;\n this._month = month;\n this._date = day;\n this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);\n }\n }\n\n getDate(): number {\n return this._date;\n }\n\n getDay(): number {\n return this._gc.getDay();\n }\n\n getDayOfWeek() {\n const weekDay = this.getGCWeekDay();\n return WEEK_NAMES[weekDay];\n }\n\n getFullYear(): number {\n return this._year;\n }\n\n getGregorianDate(): Date {\n return this._gc;\n }\n\n getGCWeekDay(): number {\n return this._gc.getDay();\n }\n\n getMonth(): number {\n return this._month;\n }\n\n getMonthName(): string | null {\n return this._month >= 0 && this._month < MONTHS_NAMES.length ? MONTHS_NAMES[this._month] : null;\n }\n\n getShortMonthName(): string | null {\n return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length\n ? SHORT_MONTHS_NAMES[this._month]\n : null;\n }\n\n getHours(): number {\n return 0;\n }\n\n getMinutes(): number {\n return 0;\n }\n\n getSeconds(): number {\n return 0;\n }\n\n getMilliseconds(): number {\n return 0;\n }\n\n toString(): string {\n return `${this._year}-${this._month + 1}-${this._date}`;\n }\n\n /**\n * Converts a Ethiopian date to Gregorian and returns Date instance representing Gregorian Date.\n *\n * @param val - A numeric year value if the second and third parameters are\n * provided, it should be a date string if not\n * @param month A zero-based numeric value for the month\n * (0 for መስከረም, 12 for ጳጉሜን)\n * @param day A numeric value equal for the day of the month.\n *\n * @api public\n */\n static ethiopianToGregorian(\n val?: EthiopianDate | string | number,\n month?: number,\n day?: number,\n ): Date {\n let ec: [number, number, number];\n if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const etDate = new EthiopianDate(val);\n ec = [etDate.getFullYear(), etDate.getMonth() + 1, etDate.getDate()];\n } else if (typeof val === 'object' && val instanceof EthiopianDate) {\n const [y, m, d] = [val.getFullYear(), val.getMonth() + 1, val.getDate()];\n ec = [y, m, d];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n ec = [val, month + 1, day];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n const gc = toGC(ec);\n return new Date(gc[0], gc[1] - 1, gc[2]);\n }\n\n /**\n *\n * @param val - A numeric year value if the second and third parameters are\n * provided, it should be a date string if not\n * @param month A zero-based numeric value for the month\n * (0 for January, 11 for December)\n * @param day A numeric value equal for the day of the month.\n *\n * @api public\n */\n static gregorianToEthiopian(\n val?: Date | string | number,\n month?: number,\n day?: number,\n ): EthiopianDate {\n let gc: [number, number, number];\n if (val != null && month == null && day == null && typeof val !== 'number') {\n if (typeof val === 'string') {\n const gcDate = new Date(val);\n gc = [gcDate.getFullYear(), gcDate.getMonth() + 1, gcDate.getDate()];\n } else if (typeof val === 'object' && val instanceof Date) {\n const [y, m, d] = [val.getFullYear(), val.getMonth() + 1, val.getDate()];\n gc = [y, m, d];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n } else if (val != null && month != null && day != null && typeof val === 'number') {\n gc = [val, month + 1, day];\n } else {\n throw new Error('Invalid Argument Exception');\n }\n const ec = toEC(gc);\n return new EthiopianDate(ec[0], ec[1] - 1, ec[2]);\n }\n\n /**\n * Parse Ethiopian date from string\n *\n * @param dateString a date string to parse\n * @param pattern a parsing pattern\n *\n * @returns EthiopianDate\n */\n static parse(dateString: string): EthiopianDate | null {\n if (!dateString) {\n return null;\n }\n const result = dateString.split('-');\n if (result.length === 3) {\n const [y, m, d] = result;\n return new EthiopianDate(parseInt(y, 10), parseInt(m, 10) - 1, parseInt(d, 10));\n }\n throw new Error(`ParsingError: Can't parse ${dateString}`);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n AjfCalendarEntry,\n AjfCalendarParams,\n AjfCalendarService,\n AjfCalendarView,\n AjfCalendarViewMode,\n} from '@ajf/core/calendar';\nimport {Injectable} from '@angular/core';\nimport {\n addDays,\n addWeeks,\n addYears,\n endOfISOWeek,\n getISODay,\n setISODay,\n startOfISOWeek,\n startOfWeek,\n subWeeks,\n} from 'date-fns';\n\nimport {EthiopianDate} from './ethiopian-date';\n\nfunction getMonthDays(month: number, year: number): number {\n if (month < 12) {\n return 30;\n }\n return year % 4 === 3 ? 6 : 5;\n}\n\nfunction getMonthBounds(date: EthiopianDate): {start: EthiopianDate; end: EthiopianDate} {\n const year = date.getFullYear();\n const month = date.getMonth();\n const start = new EthiopianDate(year, month, 1);\n const endDay = getMonthDays(month, year);\n const end = new EthiopianDate(year, month, endDay);\n return {start, end};\n}\n\n@Injectable({providedIn: 'root'})\nexport class AjfEthiopianCalendarService extends AjfCalendarService {\n override buildView(params: AjfCalendarParams): AjfCalendarView {\n const {viewMode} = params;\n const viewDate = EthiopianDate.gregorianToEthiopian(params.viewDate);\n switch (viewMode) {\n case 'decade':\n let curYear: number = viewDate.getFullYear();\n let firstYear = curYear - (curYear % 10) + 1;\n let lastYear = firstYear + 11;\n return {\n header: `${firstYear} - ${lastYear}`,\n headerRow: [],\n rows: this._ecDecadeCalendarRows(params),\n };\n case 'year':\n return {\n header: `${viewDate.getFullYear()}`,\n headerRow: [],\n rows: this._ecYearCalendarRows(params),\n };\n case 'month':\n const view = super.buildView(params);\n return {\n header: `${viewDate.getShortMonthName()} ${viewDate.getFullYear()}`,\n headerRow: this._ecMonthHeaderRow(params),\n rows: view.rows,\n };\n }\n return super.buildView(params);\n }\n\n override entryLabel(entry: AjfCalendarEntry): string {\n const ecDate = EthiopianDate.gregorianToEthiopian(entry.date);\n if (entry.type === 'day') {\n return `${ecDate.getDate()}`;\n }\n if (entry.type === 'month') {\n return `${ecDate.getMonthName()}`;\n }\n return `${ecDate.getFullYear()}`;\n }\n\n override monthBounds(date: Date, isoMode: boolean): {start: Date; end: Date} {\n if (!isoMode) {\n const ecDate = EthiopianDate.gregorianToEthiopian(date);\n const {start, end} = getMonthBounds(ecDate);\n return {\n start: EthiopianDate.ethiopianToGregorian(start),\n end: EthiopianDate.ethiopianToGregorian(end),\n };\n } else {\n let isoDay = getISODay(date);\n const ecDate = EthiopianDate.gregorianToEthiopian(date);\n let {start, end} = getMonthBounds(ecDate);\n if (ecDate.getMonth() === 12) {\n start = EthiopianDate.gregorianToEthiopian(startOfISOWeek(start.getGregorianDate()));\n end = EthiopianDate.gregorianToEthiopian(endOfISOWeek(end.getGregorianDate()));\n } else {\n date = isoDay < 4 ? endOfISOWeek(date) : startOfISOWeek(date);\n const startWeekDay = start.getDay();\n const endWeekDay = end.getDay();\n if (startWeekDay == 0 || startWeekDay > 4) {\n start = EthiopianDate.gregorianToEthiopian(addWeeks(start.getGregorianDate(), 1));\n }\n if (endWeekDay > 0 && endWeekDay < 4) {\n end = EthiopianDate.gregorianToEthiopian(subWeeks(end.getGregorianDate(), 1));\n }\n }\n return {\n start: startOfISOWeek(start.getGregorianDate()),\n end: endOfISOWeek(end.getGregorianDate()),\n };\n }\n }\n\n override nextView(viewDate: Date, viewMode: AjfCalendarViewMode): Date {\n if (viewMode === 'month') {\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let year = ecDate.getFullYear();\n let month = ecDate.getMonth();\n if (month === 12) {\n month = 0;\n year += 1;\n } else {\n month += 1;\n }\n return EthiopianDate.ethiopianToGregorian(new EthiopianDate(year, month, 1));\n }\n return super.nextView(viewDate, viewMode);\n }\n\n override previousView(viewDate: Date, viewMode: AjfCalendarViewMode): Date {\n if (viewMode === 'month') {\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let year = ecDate.getFullYear();\n let month = ecDate.getMonth();\n if (month === 0) {\n month = 12;\n year -= 1;\n } else {\n month -= 1;\n }\n return EthiopianDate.ethiopianToGregorian(new EthiopianDate(year, month, 1));\n }\n return super.previousView(viewDate, viewMode);\n }\n\n private _ecMonthHeaderRow(params: AjfCalendarParams): string[] {\n const {isoMode, viewDate} = params;\n let curDate: Date;\n if (isoMode) {\n curDate = setISODay(startOfWeek(viewDate), 1);\n } else {\n curDate = startOfWeek(viewDate);\n }\n let weekDayNames: string[] = [];\n for (let i = 0; i < 7; i++) {\n const ecDate = EthiopianDate.gregorianToEthiopian(curDate);\n weekDayNames.push(ecDate.getDayOfWeek());\n curDate = addDays(curDate, 1);\n }\n return weekDayNames;\n }\n\n private _ecYearCalendarRows(params: AjfCalendarParams): AjfCalendarEntry[][] {\n const {viewDate, selection} = params;\n const year = EthiopianDate.gregorianToEthiopian(viewDate).getFullYear();\n let curDate: EthiopianDate;\n\n let rows: AjfCalendarEntry[][] = [];\n for (let i = 0; i <= 4; i++) {\n let row: AjfCalendarEntry[] = [];\n for (let j = 0; j < 3; j++) {\n const curMonth = i * 3 + j;\n if (curMonth < 13) {\n curDate = new EthiopianDate(year, curMonth, 1);\n let date = EthiopianDate.ethiopianToGregorian(curDate);\n let newEntry: AjfCalendarEntry = {type: 'month', date, selected: 'none'};\n newEntry.selected = this.isEntrySelected(newEntry, selection);\n row.push(newEntry);\n }\n }\n rows.push(row);\n }\n\n return rows;\n }\n\n private _ecDecadeCalendarRows(params: AjfCalendarParams): AjfCalendarEntry[][] {\n const {viewDate, selection} = params;\n const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);\n let curYear: number = ecDate.getFullYear();\n let firstYear = curYear - (curYear % 10) + 1;\n let curDate: Date = EthiopianDate.ethiopianToGregorian(firstYear, 0, 1);\n\n let rows: AjfCalendarEntry[][] = [];\n for (let i = 0; i < 4; i++) {\n let row: AjfCalendarEntry[] = [];\n for (let j = 0; j < 3; j++) {\n let date = new Date(curDate);\n let newEntry: AjfCalendarEntry = {type: 'year', date: date, selected: 'none'};\n newEntry.selected = this.isEntrySelected(newEntry, selection);\n row.push(newEntry);\n curDate = addYears(curDate, 1);\n }\n rows.push(row);\n }\n\n return rows;\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Injectable, Pipe, PipeTransform} from '@angular/core';\nimport {EthiopianDate} from './ethiopian-date';\n\n@Injectable()\n@Pipe({name: 'ajfEthiopianDate'})\nexport class AjfEthiopianDatePipe implements PipeTransform {\n transform(value: any): string | null {\n try {\n const ed = EthiopianDate.gregorianToEthiopian(value);\n const date = `0${ed.getDate()}`.slice(-2);\n const month = `0${ed.getMonth() + 1}`.slice(-2);\n return `${date}/${month}/${ed.getFullYear()}`;\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCalendarService} from '@ajf/core/calendar';\nimport {NgModule} from '@angular/core';\n\nimport {AjfEthiopianCalendarService} from './calendar-service';\nimport {AjfEthiopianDatePipe} from './ethiopian-date-pipe';\n\n@NgModule({\n declarations: [AjfEthiopianDatePipe],\n exports: [AjfEthiopianDatePipe],\n providers: [{provide: AjfCalendarService, useClass: AjfEthiopianCalendarService}],\n})\nexport class AjfEthiopianCalendarModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './calendar-module';\nexport * from './calendar-service';\nexport * from './ethiopian-date';\nexport * from './ethiopian-date-pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajf/calendars",
3
- "version": "12.1.3",
3
+ "version": "12.1.7",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "homepage": "https://github.com/gnucoop/ajf#readme",
15
15
  "peerDependencies": {
16
- "@ajf/core": "12.1.3",
16
+ "@ajf/core": "12.1.7",
17
17
  "rxjs": "^6.5.3"
18
18
  },
19
19
  "sideEffects": false,