The application worker driven frontend framework
MIT License
Bot releases are hidden (Show)
Published by tobiu over 3 years ago
The basic menu implementation is ready, including a tree based key navigation using the arrow keys.
A smart focus-leave management to hide menus is not in place yet.
Published by tobiu over 3 years ago
Published by tobiu over 3 years ago
Added a new optional (experimental) main thread addon, to provide the ability to create dom nodes as templates and add clones of them into specific target nodes.
Code:
https://github.com/neomjs/neo/blob/dev/src/main/addon/CloneNode.mjs
Example code:
https://github.com/neomjs/neo/blob/dev/apps/krausest/view/TableComponent.mjs
Online demo:
https://neomjs.github.io/pages/node_modules/neo.mjs/dist/production/apps/krausest/index.html
3 buttons are functional at this point:
Published by tobiu over 3 years ago
While working on the krausest performance demo, I got a couple of ideas on how to enhance the engine. It got significantly faster speficic use cases.
Before:
Adding 1k rows into an empty table resulted in 1k deltas, removing 1k rows as well.
Step 1:
A new setTextContent
delta action reduces the deltas for removing all child nodes inside a container to one.
Step 2:
Adding multiple nodes into an empty container will now merge the insert actions into a bulk insert.
=> For this use case, the amount of deltas went down from 2k to 2.
I am not sure yet if there is a smart way for bulk insertions into non empty nodes. After all, the vdom engine has to check all nodes for potential movements.
Published by tobiu over 3 years ago
Multiple clicks on the same edit icon as well as clicking directly on another edit icon => no need to unmount the form in these cases.
Published by tobiu over 3 years ago
Learned something new:
new Date ('2021-07-20 00:00:00');
Chrome: ok
FF: ok
Safari: blank page
new Date ('2021-07-20T00:00:00');
The "T" fixes it.
The reason for adding zeroes in the first place:
Published by tobiu over 3 years ago
It is now possible to enter the calendar color picker using the tab key.
The calendar week view infinite scrolling got improved.
selection.Model now checks for a selected item in case the event path contains no match.
Published by tobiu over 3 years ago
Added a color-picker widget, which is extending list.Base.
Published by tobiu over 3 years ago
This affects list.Base
, but also list.Chip
and calendar.view.calendars.List
.
Changing one or multiple record fields will automatically trigger vdom updates in a smart way.
Lists can now render with an initial item selection, record changes will keep the selection as well.
Published by tobiu over 3 years ago
Published by tobiu over 3 years ago
Since webpack (the acorn parser) does support optional chaining now, I added the new syntax in a lot(!) of places.
This reduces the file size of the framework a bit and improves the readability of the code base.
You can find more infos on this topic here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
Published by tobiu over 3 years ago
A new base class for lists which contain component based list items.
calendar.view.calendars.List:
https://github.com/neomjs/neo/blob/dev/src/calendar/view/calendars/List.mjs
list.Chip:
https://github.com/neomjs/neo/blob/dev/src/list/Chip.mjs
are now extending it.
Published by tobiu over 3 years ago
A list containing checkbox fields as list items and key nav:
https://www.youtube.com/watch?v=tNhTU0oEAo0
Published by tobiu over 3 years ago
It increases the readability a lot.
Before:
Now:
Published by tobiu over 3 years ago
This enables us to use it inside config setters => we can now compare e.g. objects and arrays for equality and only trigger the afterSet() methods in case there is a real change.
More work on the calendar widget as well (moving configs into the view model).
Published by tobiu over 3 years ago
We can now hide the weekend columns dynamically. This does honor the infinite horizontal scrolling.
Published by tobiu over 3 years ago
since the settings container does get lazy loaded now, the demo header can not rely on using these css variables.
created custom styling files for the demo.
Published by tobiu over 3 years ago
plus a dependencies update.
Published by tobiu over 3 years ago