observable 0.20.4
observable: ^0.20.4 copied to clipboard
Support for marking objects as observable
0.20.4 #
- Bug fix: Additional fix around
ObservableList.listChanges
0.20.3 #
- Bug fix: Avoid emitting an empty list via
ObservableList.listChanges
0.20.2 #
- Bug fix: Avoid emitting a no-op
MapChangeRecord - Bug fix: Restore
ObservableList.discardListChangesfunctionality
0.20.1 #
- Add
Observable<List|Set|Map>.unmodifiablefor immutable collections - Add
Observable<List|Set|Map>.EMPTYfor 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 APIObservableMapno longer emits#keysand#valueschange recordsObservableMap.spyis deprecated, becomes.delegateinstead
- Potentially breaking:
ObservableMapmay 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>.notifyChangeis used
0.18.0 #
- Refactor and deprecate
ObservableList-specific APIObservableList.applyChangeRecordsObservableList.calculateChangeRecordsObservableList.withLengthObservableList.deliverListChangesObservableList.discardListChangesObservableList.hasListChangesObservableList.listChangesObservableList.notifyListChange
- Potentially breaking:
ObservableListmay no longer be extended
It is also considered deprecated to be notified of length, isEmpty
and isNotEmpty PropertyChangeRecords 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
ObservableinterfaceChangeNotifiershould be used as a base class for these methods:Observable.observedObservable.unobservedObservable.hasObserversObservable.deliverChangesObservable.notifyChange
PropertyChangeNotifiershould be used for these methods:Observable.notifyPropertyChange
- Temporarily,
ObservableusesChangeNotifier- Existing users of anything but
implements Observableshould move to implementing or extendingChangeNotifier. In a future releaseObservablewill reduce API surface down to an abstractStream<List<C>> get changes.
- Existing users of anything but
- Added the
ChangeNotifierandPropertyChangeNotifierclasses- Can be used to implement
Observablein a generic manner
- Can be used to implement
- Observable is now
Observable<C extends ChangeRecord>- When passing a generic type
C,notifyPropertyChangeis illegal
- When passing a generic type
0.16.0 #
- Refactored
MapChangeRecord- Added equality and hashCode checks
- Added
MapChangeRecord.applyto apply a change record
- Added
MapDiffer, which implementsDifferfor aMap
0.15.0+2 #
- Fix a bug in
ListDifferthat caused aRangeError
0.15.0+1 #
- Fix analysis errors caused via missing
/*<E>*/syntax in0.15.0
0.15.0 #
- Added the
Differinterface, as well asEqualityDiffer - Refactored list diffing into a
ListDiffer - Added concept of
ChangeRecord.ANYandChangeRecord.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.applyto apply a change record
- Added missing
@overrideannotations to satisfyannotate_overrides
0.14.0+1 #
- Add a missing dependency on
pkg/meta.