This repository has been archived by the owner on Jan 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Version Notes
Mark Greenwald edited this page Oct 19, 2022
·
2 revisions
- 1.3.0
- Simplification
- This project was begining to complicate and this pass attempted to get back to being an extension library.
- Reduced global pollution: Helper classes (e.g. MemberQuery, Node.Scope) have been replaced with simpler helper extension functions with better testability (e.g. Object.prototype.memberSelector).
- MVW namespace added for disassociated coordination between modules. MVW.Settings offers a shared default & overridable configuration core.
- Reduced inter-dependencies across the library
- Dropped low-value parsing extensions
- Coverage
- Hundreds of unit tests added
- Code adjusted for testability
- New Stuff
- Added console formatter extensions that were being used in build scripts to the extended package
- Added EventSource.prototype.promise extension for simplifying conversion of event-based async patterns to promises for compat with async/await
- Breaking Changes
- Default attribute prefix changed from 'data-' to 'bind-'
- Node.prototype.map changed to Node.prototype.bind
- Helper classes (e.g. MemberQuery, Node.Scope, etc) replaced/simplified with helper functions (e.g. Object.prototype.memberSelector.select)
- New release/build schemes breaks references directly from the github web deploy
- Removed Object.deserialize
- Removed Object.serialize
- Removed String.prototype.scan
- Removed Promise.queue
- Removed Object.override
- Simplification
- 1.2.1
- Hotfixes
- Fix to HTMLTemplateElement.prototype.template that was causing elements to be reversed.
- Hotfixes
- 1.2
- Added
- mvw.core
- String.scanUntil & String.scanWhile
- Consolidated common parsing utility functions
- Object.override
- Consolidated common mapping utility function
- String.scanUntil & String.scanWhile
- mvw.standard
- HTMLElement.prototype.shown
- Compliments HTMLElement.prototype.hidden
- HTMLElement.prototype.shown
- mvw.extended
- Object.serialize & Object.deserialize
- JSON-esque
- type/class resolution
- instance referencing
- HTMLInputElement.prototype.autosize
- Enables auto resizing on a text control
- Promise.queue
- Compliments Promise.all, Promise.race
- Similar to Array.prototype.reduce
- Redundant of using await in loops
- Object.serialize & Object.deserialize
- mvw.core
- Optimizations
- HTMLTemplateElement.prototype.template
- Node.prototype.map
- Element.prototype.attribute
- Element.prototype.class
- Cleanup items
- Updated build to support multiple builds: core, standard, extras
- Renamed folder structure to match builds
- Breaking Changes
- Conforming Element.prototype.attribute extension to remove only on a false value
- Previously included null/undefined
- This change enables style activation of attributes
- Conforming Element.prototype.attribute extension to remove only on a false value
- Added
- 1.1
- Preformance Pass
- Increased performance at the expense of a bump to caching on elements
- Switched some RegExp to quicker, manual parsing
- Support for parameter selectors
- Selectors can now have parameter statements to define values passed to handlers
- Example:
<input name="field" data-onclick="member1.member2(name, value, value.length)">
- Added configurability
- attributePrefix: ('data-') The prefix used to identify mapping attributes
- attributeDelimiter: ('-') The character used for separating properties in an attribute name
- memberDelimiter: ('.') The character used for separating properties in a selector
- selectorDelimiter: ('(') The opening character for parameter queries
- parameterDelimiter: (',') The character used for separating parameter queries
- selectorTerminator: (')') The character used marking the end of parameter queries
- Example:
document.body.map(model, {attributePrefix: 'map-'})
- Breaking changes to ObjectQuery
- Renamed to MemberQuery
- Now creates a compiled selector that can be re-evaluated (vs single evaluation)
- Breaking change to HTMLTemplateElement.prototype.template
- Reading the template in js now returns the data rather than a content clone.
- Preformance Pass
- 1.0.1
- Improved naming
- HTMLElement.prototype.classes -> Element.prototype.class
- Changed to match the non-plural name change of settings to attribute
- Less likely to become a future conflict (see (Element.prototype.className)[https://developer.mozilla.org/en-US/docs/Web/API/Element/className])
- HTMLElement.prototype.settings -> Element.prototype.attribute
- Changed to better reflect the extensions purpose.
- HTMLElement.prototype.classes -> Element.prototype.class
- Improved naming
- 1.0.0
- Hello World
- Extensions
- Node.prototype.map
- HTMLElement.prototype.classes
- HTMLElement.prototype.settings
- HTMLTemplateElement.prototype.template
- Unit Tests: Yep
- Performance Tests: Nope