Releases: Louis-Aime/calendrical-javascript
Settings for npm
For npm, package.json and .npmignore revised
Separate JSDoc files
JSDoc generated files are now in an /docs subdirectory. They may be read directly with a browser, but they need not be loaded with an application that uses this module.
Update narrow month name
Two narrow names for month are changed
4m -> 'Q'
5m -> 'C'
ISO 8601 vs Proleptic Gregorian
As there are now differences between Unicode's iso8601 and gregory calendars, build two distinct custom calendars based respectively on those.
Manage epagomenal days
On calendars like the French Revolutionary, epagomenal days may be handled as added to the last decade of the year, or as forming a new decade. Both are now possible with chronos.js
In calendar.js we decided that the French revolution calendar would have a separate decade for epagomenal days, thus named primidi etc.
Set canvas calendar for Milesian and Revolutionary custom calendars
Milesian and Revolutionary calendars had iso8601 as canvas calendars. With version 46 of CLDR, iso8601 dates are displayed with fields in the rational order that the standard specifies: year, month, day, hour, minutes, seconds. Canvas calendar for Milesian and Revolutionary is set to gregory, in order to find the nearest traditional expression for those custom calendars.
Persian calendar
Week computations were revisited, side effects with unfamiliar week structures (epagomenal days) are avoided.
Computations for the available calendars have been made more consistent by less direct call to Chronos primitives.
An algorithmic version of the Persian calendar, the same as used by Unicode, is implemented here. It used a 33 years cycle.
package.json in line with version tag
Fix Week computations, add Persian calendar
Week computations were revisited, side effects with unfamiliar week structures (epagomenal days) are avoided.
Computations for the available calendars have been made more consistent by less direct call to Chronos primitives.
An algorithmic version of the Persian calendar, the same as used by Unicode, is implemented here. It used a 33 years cycle.
Revisit calendar names
No change in the basic tools: time-units, fetchdom, chronos, extdate, extdatetimeformat
Changes in calendars.js, pldr, and as a consequence in calendrical-demo.*
Former GregorianCalendar class becomes ProlepticGregorianCalendar. This is the ISO 8601 recommended calendar.
Former WesternCalendar class becomes GregorianCalendar.
Era codes are changed to lowercase.
The (non-proleptic) Gregorian calendar is considered as the Julian calendar that switches to the Gregorian one at some customisable date.
Manage hour12 option consistently
The resolvedOptions() method does not return the hour12 option anymore. This way, the resolved options of an existing ExtDateTimeFormat object shall yield the same result when passed to a new ExtDateTimeFormat object.