Skip to content

Commit 2c2d706

Browse files
committed
v10.4.1
1 parent 2699c10 commit 2c2d706

File tree

6 files changed

+24
-8
lines changed

6 files changed

+24
-8
lines changed

.github/RELEASE_NOTES/v10.4.1.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Neo.mjs v10.4.1 Release Notes
2+
3+
## Highlights
4+
5+
This patch release polishes the "instant preview" feature for grids introduced in v10.4.0, ensuring the grid's scrollbar and accessibility properties are correctly sized from the very first paint when loading large datasets. The non-buffered `table.Body` also receives a major performance boost for clearing data.
6+
7+
## Enhancements & Bug Fixes
8+
9+
### 1. Polished "Instant Preview" for Large Datasets in Grids
10+
The chunked loading mechanism for stores and grids has been refined. When adding a large dataset, the initial `load` event now carries the final total record count. The `grid.Container` uses this information immediately to set the correct `aria-rowcount` and to size the vertical scrollbar accurately, preventing layout shifts and providing a more stable and accessible user experience from the very first render.
11+
12+
### 2. Standardized Internal Store `load` Event
13+
To support the "instant preview" refinements, the `data.Store` `load` event payload has been standardized internally. It now consistently uses an object containing an `items` property (e.g., `{items: [...]}`). Framework components have been updated to use this new signature.
14+
15+
### 3. Performance Fast Path for `table.Body`
16+
The non-buffered `table.Body` is now significantly faster when clearing its data. It uses the same "fast path" optimization as `grid.Body`, directly clearing the DOM instead of processing a large and unnecessary VDOM diff when an empty dataset is loaded. This aligns the performance of the two components.

ServiceWorker.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
2020
*/
2121
singleton: true,
2222
/**
23-
* @member {String} version='10.4.0'
23+
* @member {String} version='10.4.1'
2424
*/
25-
version: '10.4.0'
25+
version: '10.4.1'
2626
}
2727

2828
/**

apps/portal/view/home/FooterContainer.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class FooterContainer extends Container {
108108
}, {
109109
module: Component,
110110
cls : ['neo-version'],
111-
text : 'v10.4.0'
111+
text : 'v10.4.1'
112112
}]
113113
}],
114114
/**

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "neo.mjs",
3-
"version": "10.4.0",
3+
"version": "10.4.1",
44
"description": "Neo.mjs: The multi-threaded UI framework for building ultra-fast, desktop-like web applications with uncompromised responsiveness, inherent security, and a transpilation-free dev mode.",
55
"type": "module",
66
"repository": {

src/DefaultConfig.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,12 +299,12 @@ const DefaultConfig = {
299299
useVdomWorker: true,
300300
/**
301301
* buildScripts/injectPackageVersion.mjs will update this value
302-
* @default '10.4.0'
302+
* @default '10.4.1'
303303
* @memberOf! module:Neo
304304
* @name config.version
305305
* @type String
306306
*/
307-
version: '10.4.0'
307+
version: '10.4.1'
308308
};
309309

310310
Object.assign(DefaultConfig, {

0 commit comments

Comments
 (0)