You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On the other hand, the formatters require (minuscule, but still) more thought to understand. The returned functions with attachments are also harder to document, and type.
From running some basic benchmarks it looks like there isn't much of a speed gain to the system either. It looks like some better placed caching would likely bridge the little gap there is.
The text was updated successfully, but these errors were encountered:
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;
}
```
The interface was originally designed around use with libraries such as D3 where you could do:
But there seems little benefit to it over doing this:
On the other hand, the formatters require (minuscule, but still) more thought to understand. The returned functions with attachments are also harder to document, and type.
From running some basic benchmarks it looks like there isn't much of a speed gain to the system either. It looks like some better placed caching would likely bridge the little gap there is.
The text was updated successfully, but these errors were encountered: