All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
No changes.
0.3.2 - 2018-07-03
Compatibility Warnings
Widget.render
now has achanges
parameter which indicates which properties were changed. The impact is mostly felt byGroup.render
which now has different semantics and does not re-render the entire widget, but only those items which changed.- A related change is that
Group.render
will switch to asnychrnous rendering when the number of changes is very large (default: 1000). The newGroup.drain
method is called repeatedly until all the changes are made.
Added
- #13: npm package
- #22: basic events (
.on
,.off
,.trigger
) - naive diff algorithm to speed up rendering (adds:
duil.diff
,duil.merge
) - #23: render queue (via
duil.Queue
based on infloop/queue.js). Big thanks to @Pugio for suggestions on improving the render queue. - #18: performance tests
- #9: react examples
- #21: marko examples
- lots of little tests to achieve 100% coverage
Changed
0.3.1 - 2018-05-16
Compatibility Warnings
- Instead of
duil.Group.KEY_BY_INDEX
, useduil.Group.prototype.key
. duil.dom
is now a private namespace. Do not rely on it for manipulating the DOM and jQuery.
Added
- #7:
CONTRIBUTING.md
with instructions on how to make a release - #11: fabric.js example
- marko.js example
- nested widget example
- #12: coverage tests
- #14: source maps for minified code
- #18: performance test
- #19:
Widget.invoke()
for calling prototype functions in the context of a given widget. In many respects, this is a less powerful, but cleaner, replacement forWidget.superclass
. duil._build
for internal build date/time for debugging
Changed
duil.dom
renamed toduil._dom
to indicate it is a private namespaceduil.List.create()
now inserts the created view into the list of views andduil.List.render()
no longer re-selects the DOM objects before rendering; this initial select of DOM nodes now happens induil.List.init()
Removed
duil.Group.KEY_BY_INDEX
because this is simply the defaultduil.Group.key
function- documentation for
duil.dom
because it is a private namespace
Fixed
- #20:
duil.List
returning DOM objects instead ofjQuery
0.3.0 - 2018-05-11
Compatibility Warnings
- The
new
keyword is now required when creatingduil.Widget
and any of its subclasses because they are proper ES6 classes. - Instead of
Widget.subclass
, use theextends
keyword. - Instead of
Widget.superclass
, use thesuper
keyword. In cases where an instance wants to override and call a class method, useClassName.prototype.methodName.call(this)
.
Added
- #6: License file
- linting using
ESLint
Changed
- #17:
duil.VERSION
renamed toduil.version
Removed
- #15:
Widget.subclass
andWidget.superclass
- transpiling using
buble
; duil is now ES6 code
Fixed
- #16: global is not defined error for detecting jQuery
0.2.0 - 2018-05-11
Compatibility Warnings
- Instead of
duil.List.add()
useduil.List.create()
. - Reorder the arguments for
duil.List.update()
:(view, data, index)
instead of(data, index, view)
- Return the
view
fromduil.List.create()
andduil.List.update()
instead of the widget (this
).
Added
- #3: unit tests using
tape
- #5: new dev tools (
yarn
,rollup
,buble
) duil.Group
for non-DOM-based views backed by data models
Changed
duil.List
now usesduil.dom
to handle DOMElement
andjQuery
transparently.- duil can now be run with zero dependencies. The relevant lodash functions are baked in and jQuery is completely optional.
duil.List.add()
renamed toduil.List.create()
duil.List.update()
to take(view, data, index)
instead of(data, index, view)
duil.List.create()
andduil.List.update()
to returnview
instead ofthis
Removed
duil.List.items()
because the template is removed from the DOM manually and views are refreshed immediately at the start of.render()
.
Fixed
- #4: lodash rename of
_.contains
to_.includes
0.1.3 - 2016-05-27
Added
- #2:
$.fn.set
now supportsdata
,addClass
,toggleClass
, andremoveClass
0.1.2 - 2016-05-25
Fixed
- #1: lack of
thisArg
in lodash 4.0.0
0.1.1 - 2015-09-20
Fixed
- build to include
jquery.duil.js
correctly
0.1.0 - 2015-09-09
- Initial release.
Added
README
duil.Widget
,duil.List
duil.Widget.superclass
,duil.Widget.subclass
- jQuery function
.set()
for setting multiple attributes simultaneously - Gulp build
- source maps