Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dramatic overhaul of the parser and interface inspired by #42, the need to expose types (#38), and locale issues (#23). ### Changes from 2.0: - Formatters are no longer constructed. Formatting is just a simple call. Fixes: #42 - Types are now exposed for the entire interface. Closes #38 - _nbsp_ option is now off by default. A non-breaking space is till used as the grouping separator in the default locale, so "13 203" should not linebreak. - `formatColor()` now returns `null` if pattern does not define a color. Previously it would default to "black". Fixes #40 - _locale_ has been fixed so that a pattern may correctly override a locale. The expected behaviour is to be able to provide a default locale and that formatters override it by modifiers. - Both _en_US_ and _en-US_ styles are now supported for locale tags. - Group sizing is now controlled by an option, `{ grouping: [ 3, 3 ] }` The formatter had remnants of behaviour from [its ancestor](https://github.com/borgar/ldml-number) which allowed defining group sizing in the format. In Excel, `#,##,##0` and `#,##0` are equivalent but sizing is controlled via locale settings. Fixes #48 - `dateToSerial()` no longer passes non-dates through. If it gets incompatible input (such as a number), a `null` will be returned. - _nativeDate_ option has been removed. This affects two things: - `dateFromSerial()` now always returns a date parts array (`[ y, m, d, ... ]`). - `parseValue()`/`parseDate()` can no longer return dates. If you need the old behaviour then here is a utility function that safely converts the output to a `Date`. ```js function toNativeDate (dateArrray) { const [ y, m, d, hh, mm, ss ] = dateArrray; const dt = new Date(0); dt.setUTCFullYear(y, m - 1, d); dt.setUTCHours(hh, mm, ss); return dt; } ```
- Loading branch information