Releases: berserker5619/Dynamic-Entity
Release list
1.10.0
Date formatting reached some surfaces and not others, and a beforeSave veto could be walked around and could not be observed from the record editor.
Added
saveRejectedonngx-dynamic-record-form
Fixed
saveSectionno longer bypassesbeforeSavesetDateFormattersnow reachesdateanddatetimefields (not only the record summary andtime)
monthYear is unchanged. saveSection() now returns Promise<void>; callers that ignored the return value are unaffected.
See CHANGELOG.md for the full notes.
1.9.1
The npm README pages now document MASKED_PLACEHOLDER and setDateFormatters. Both shipped in 1.9.0; npm does not show EXTENDING.md, which was the only place they were written down.
No runtime change. See CHANGELOG.md.
1.9.0
Every word the libraries render themselves is now translatable, and every rendered control has a name and an id of its own.
Added
- Translatable library chrome:
UI_TEXT,provideNgxDynamicEntity({ uiText }),BUILDER_TEXT,uiLanguage - Configurable
MASKED_PLACEHOLDER setDateFormatters({ date, datetime, time })in@dynamic-entity/core
Fixed
- Five field types rendered a control with no accessible name
- Duplicate DOM ids when a field rendered twice (array rows)
- Common modules registered by selector took their tab down
resolveUiTextcould return a non-string- Configured validation messages now reach every field type
- Core reports a collection that is present but is not an array
Upgrading
Control DOM ids are no longer field.id (now e.g. email-de7). Address a control through data-testid or its label. New APIs are additive; an unconfigured install renders what 1.8.1 rendered.
See CHANGELOG.md for the full notes.
v1.5.0
Work since 1.4.0: nothing in the builder names a field by typing any more, the
validator understands the paths the builder authors, and the rule editor stopped
locking the browser.
Added
validateConfigunderstands field paths, and can check rules. AshowWhenkeyed
[work.address], or a cascade parent written the same way, used to be reported as an
unknown field — the form the builder authors after 1.4.0. Those paths now resolve to the
one field they name. Passrules(or--rules rules.jsonondynamic-entity validate)
to apply the same check to a rule's trigger,compareToFieldand field targets; without
that option, rules remain an@Inputthe config file cannot see and the renderer still
warns in development.
Changed
- The
peopleentity in the reference dataset has anaddresson Personal Details
and another on Work Details, withdeskNumbershown only when[work.address]is
HQ— a config the validator used to refuse, now the fixture the path tests hold. - Every field reference in the builder is now chosen from a list. 1.4.0 covered the
rule form;showWhen, both ends of apatchOnTruemapping and anautoPatchtarget
were still text boxes, and the cascade parent was a list of bare ids. All of them offer
the same field paths. Typing was the one way left to author a reference that names two
fields at once. - A Tab picker on the field inspector.
moveFieldToTabshipped in 1.4.0 with nothing
calling it. Moving a field rewrites its path and repoints the rules that named it. setActiveTab(tabId, { focusPanel: false }). Activating a tab moves focus into its
panel, which is right for a keyboard user pressing a tab. A quick-jump also switches tabs
and then focuses the field it was aiming at — and the panel focus runs on
requestAnimationFrame, afterafterNextRender, so it landed second and took the focus
back. A caller that will focus something more specific can now say so.
Fixed
- The rule editor locked the browser.
[ngModel]on the targets multi-select was bound
to a method returning a fresh array on every call, songModelsaw a new value on each
change-detection pass: it wrote, which scheduled another pass, which built another array.
Clicking "Rule" froze the page outright. The array identity is now held stable while its
contents are unchanged. - A new
showWhencondition seeded the literal stringfield, which is not a field id
— so the condition referenced nothing and hid the field until someone noticed. It seeds a
real field, falling back to the placeholder only when there is nothing else to watch. - The cascade parent offered the field as its own parent.
- Three capabilities the demo could not reach, and so nothing tested: the builder always
opened a blank entity and can now open any saved one; the record editor — the only host of
the quick-jump links — was never rendered; and no entity marked a fieldshowOnMinimize.
v1.0.0 Production Release
Production-Grade Low-Code Enterprise Form Engine & Visual Builder for Angular 17+