formatNumberToParts, the engine behind formatNumber, built a new
Intl.NumberFormat on every call. It is invoked for essentially every
numeric state render, and constructing an Intl.NumberFormat is
comparatively expensive.
Cache the formatters in a Map keyed by (locale, options). Unlike the
single-entry memoizeOne used for the date formatters, the number format
options are derived per value, so a multi-entry cache is needed to avoid
thrashing. The number of distinct combinations is small and bounded in
practice. Output is unchanged.
* Add ip sort method to compare helper
* Add ip sort functionality to dhcp config panel datatable
* Add type ip to DataTableColumnData
* Change ip sorting to padStart method for better readablity
* Rename ip compare method to clarify ipv4
* Enhance IP compare method to include ipv6
* Add compare IP test
* Allow overriding a sensor's display precision
* Update demo + gallery
* Lint
* Fix state not updated in the UI
* Use formatNumber for options
* Feedbacks
* Add default precision and minimumFractionDigits
* Remove useless undefined
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>