@iyulab/flex-table 0.36.0 โ 0.38.0
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.
- package/CHANGELOG.md +52 -0
- package/README.md +19 -8
- package/dist/{flex-table-D5FjaSJV.js โ flex-table-DcIjmfEK.js} +345 -273
- package/dist/flex-table.js +1 -1
- package/dist/locale.d.ts +2 -2
- package/dist/react.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.38.0] - 2026-09-23
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- ๐ด **Cell values follow the app's locale, not the browser's.** The built-in `number`, `date` and
|
|
8
|
+
`datetime` formatting called `toLocaleString()` without a locale, so values followed the runtime
|
|
9
|
+
default while the table's own menus and labels already followed `Locale`. An app set to Korean
|
|
10
|
+
and opened in an English browser showed Korean menus over `9/9/2026, 8:16:01 AM`. Values now go
|
|
11
|
+
through `@iyulab/components`' `formatDate`/`formatNumber`, which use `Locale.get()`, and the
|
|
12
|
+
numeric `format` patterns (`#,##0.00` and friends) use the same locale for their separators.
|
|
13
|
+
- **A date-only value such as `"2026-09-09"` is read as that local date.** It was parsed as UTC
|
|
14
|
+
midnight, so in timezones behind UTC a `date` column showed the previous day.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- ๐ด **The `@iyulab/components` peer range is now `>=1.27.0`** (was `>=1.24.0`). The formatters come
|
|
19
|
+
from that package's `format` module, which first shipped in 1.27.0; the old range admitted
|
|
20
|
+
versions without it.
|
|
21
|
+
|
|
22
|
+
โ **Visible change:** if your app's `Locale` differs from the browser's language, dates and numbers in
|
|
23
|
+
the table now appear in the app's format. Nothing changes when the two agree.
|
|
24
|
+
|
|
25
|
+
## [0.37.0] - 2026-09-20
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- **The column menu and the cell context menu stayed in English on a translated page.** 0.36.0 moved
|
|
30
|
+
the table's chrome text into a locale namespace, but the menus added in 0.35.0 were not part of
|
|
31
|
+
that move: their items, and the accessible name of the column-menu button, were written inline. On
|
|
32
|
+
a Korean page the same button therefore announced one language in its `title` and another in its
|
|
33
|
+
`aria-label`, and a screen-reader user heard English item names in the middle of a translated
|
|
34
|
+
grid โ with no way to correct it, since the strings had no keys to register over. Every one of
|
|
35
|
+
those strings now goes through the namespace, including the cell context menu, the two menu
|
|
36
|
+
accessible names and the import drop target. Three keys name a column and carry a `{header}`
|
|
37
|
+
placeholder, so word order stays the translator's choice instead of being fixed by concatenation.
|
|
38
|
+
The built-in English wording is unchanged.
|
|
39
|
+
|
|
40
|
+
### Documentation
|
|
41
|
+
|
|
42
|
+
- **The README no longer lists every message key by hand.** That paragraph had gone stale once
|
|
43
|
+
already, and a hand-copied list is the only part of this documentation that can: the exported
|
|
44
|
+
`FlexTableMessageKey` cannot. It now names the groups and points at the type, which your editor
|
|
45
|
+
completes and the compiler checks.
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
|
|
49
|
+
- **The boolean filter's two options are translatable** (`booleanTrue` / `booleanFalse`). They read
|
|
50
|
+
`True` and `False` in every locale before this; the check and cross glyphs stay in the template,
|
|
51
|
+
since a symbol means the same thing in every language.
|
|
52
|
+
- **`t()` and the exported namespace now interpolate.** `FlexTableMessageKey` gains the menu keys
|
|
53
|
+
above; registering a partial table still merges, so existing registrations keep working untouched.
|
|
54
|
+
|
|
3
55
|
## [0.36.0] - 2026-09-17
|
|
4
56
|
|
|
5
57
|
### Added
|
package/README.md
CHANGED
|
@@ -436,14 +436,25 @@ flexTableLocale.register('ja', {
|
|
|
436
436
|
flexTableLocale.register('en', { replaceAll: 'Replace everything' }); // reword one string
|
|
437
437
|
```
|
|
438
438
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
439
|
+
The keys are grouped by where they appear: the column header and its menu, the items inside that
|
|
440
|
+
menu, the cell context menu, cell comments, the filter panel, find-and-replace, and the import drop
|
|
441
|
+
target. **`FlexTableMessageKey` is the list** โ it is exported, so your editor completes it and a
|
|
442
|
+
misspelled key is a type error rather than a string that silently falls back to its own name.
|
|
443
|
+
|
|
444
|
+
> This paragraph used to enumerate every key by hand. It went stale once, and a hand-copied list is
|
|
445
|
+
> the only thing here that can: the type cannot. If you want the full set, hover `FlexTableMessageKey`
|
|
446
|
+
> or open `src/locale.ts`.
|
|
447
|
+
|
|
448
|
+
Three of those keys name a column, and word order differs between languages, so they carry a
|
|
449
|
+
`{header}` placeholder rather than being assembled by concatenation:
|
|
450
|
+
|
|
451
|
+
```ts
|
|
452
|
+
flexTableLocale.register('ja', {
|
|
453
|
+
columnMenuFor: '{header} ใฎๅใกใใฅใผ', // the column menu button's accessible name
|
|
454
|
+
columnMenuRegion: '{header} ๅ', // the open menu's accessible name
|
|
455
|
+
showColumn: '{header} ใ่กจ็คบ', // "show this hidden neighbour again"
|
|
456
|
+
});
|
|
457
|
+
```
|
|
447
458
|
|
|
448
459
|
The filter operators `AND` and `OR` are not in the table, and neither are the glyphs that stand in
|
|
449
460
|
for icons. They read the same in every language, and translating them makes them harder to
|