observable 0.20.1 observable: ^0.20.1 copied to clipboard
Support for marking objects as observable
0.20.1 #
- Add
Observable<List|Set|Map>.unmodifiable
for immutable collections - Add
Observable<List|Set|Map>.EMPTY
for empty immutable collections- This can be used as an optimization for libraries that always need to return an observable collection, but don't want to allocate a new instance to represent an empty immutable.
0.20.0 #
- Add
ObservableSet
,SetChangeRecord
, andSetDiffer
0.19.0 #
- Refactor and deprecate
ObservableMap
-specific APIObservableMap
no longer emits#keys
and#values
change recordsObservableMap.spy
is deprecated, becomes.delegate
instead
- Potentially breaking:
ObservableMap
may no longer be extended
It is also considered deprecated to be notified of length
changes.
0.18.1 #
- Bug fix: Do not throw when
Observable<T>.notifyChange
is used
0.18.0 #
- Refactor and deprecate
ObservableList
-specific APIObservableList.applyChangeRecords
ObservableList.calculateChangeRecords
ObservableList.withLength
ObservableList.deliverListChanges
ObservableList.discardListChanges
ObservableList.hasListChanges
ObservableList.listChanges
ObservableList.notifyListChange
- Potentially breaking:
ObservableList
may no longer be extended
It is also considered deprecated to be notified of length
, isEmpty
and isNotEmpty
PropertyChangeRecord
s on ObservableList
- in a
future release ObservableList.changes
will be
Stream<List<ListChangeRecord>>
.
0.17.0+1 #
- Revert
PropertyChangeMixin
, which does not work in dart2js
0.17.0 #
This is a larger change with a goal of no runtime changes for current
customers, but in the future Observable
will become a very
lightweight interface, i.e.:
abstract class Observable<C extends ChangeRecord> {
Stream<List<C>> get changes;
}
- Started deprecating the wide
Observable
interfaceChangeNotifier
should be used as a base class for these methods:Observable.observed
Observable.unobserved
Observable.hasObservers
Observable.deliverChanges
Observable.notifyChange
PropertyChangeNotifier
should be used for these methods:Observable.notifyPropertyChange
- Temporarily,
Observable
usesChangeNotifier
- Existing users of anything but
implements Observable
should move to implementing or extendingChangeNotifier
. In a future releaseObservable
will reduce API surface down to an abstractStream<List<C>> get changes
.
- Existing users of anything but
- Added the
ChangeNotifier
andPropertyChangeNotifier
classes- Can be used to implement
Observable
in a generic manner
- Can be used to implement
- Observable is now
Observable<C extends ChangeRecord>
- When passing a generic type
C
,notifyPropertyChange
is illegal
- When passing a generic type
0.16.0 #
- Refactored
MapChangeRecord
- Added equality and hashCode checks
- Added
MapChangeRecord.apply
to apply a change record
- Added
MapDiffer
, which implementsDiffer
for aMap
0.15.0+2 #
- Fix a bug in
ListDiffer
that caused aRangeError
0.15.0+1 #
- Fix analysis errors caused via missing
/*<E>*/
syntax in0.15.0
0.15.0 #
- Added the
Differ
interface, as well asEqualityDiffer
- Refactored list diffing into a
ListDiffer
- Added concept of
ChangeRecord.ANY
andChangeRecord.NONE
- Low-GC ways to expression "something/nothing" changed
- Refactored
ListChangeRecord
- Added named constructors for common use cases
- Added equality and hashCode checks
- Added
ListChangeRecord.apply
to apply a change record
- Added missing
@override
annotations to satisfyannotate_overrides
0.14.0+1 #
- Add a missing dependency on
pkg/meta
.