UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 41.2 kB
{"version":3,"sources":["iterable_changes.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/pipes/iterable_changes.es6","sourcesContent":["import {\n isListLikeIterable,\n iterateListLike,\n ListWrapper,\n MapWrapper\n} from 'angular2/src/facade/collection';\n\nimport {\n int,\n isBlank,\n isPresent,\n stringify,\n getMapKey,\n looseIdentical,\n} from 'angular2/src/facade/lang';\n\nimport {NO_CHANGE, Pipe} from './pipe';\n\nexport class IterableChangesFactory {\n supports(obj):boolean {\n return IterableChanges.supportsObj(obj);\n }\n\n create(cdRef):Pipe {\n return new IterableChanges();\n }\n}\n\n/**\n * @exportedAs angular2/pipes\n */\nexport class IterableChanges extends Pipe {\n _collection;\n _length:int;\n _linkedRecords:_DuplicateMap;\n _unlinkedRecords:_DuplicateMap;\n _previousItHead:CollectionChangeRecord;\n _itHead:CollectionChangeRecord;\n _itTail:CollectionChangeRecord;\n _additionsHead:CollectionChangeRecord;\n _additionsTail:CollectionChangeRecord;\n _movesHead:CollectionChangeRecord;\n _movesTail:CollectionChangeRecord;\n _removalsHead:CollectionChangeRecord;\n _removalsTail:CollectionChangeRecord;\n\n constructor() {\n super();\n this._collection = null;\n this._length = null;\n /// Keeps track of the used records at any point in time (during & across `_check()` calls)\n this._linkedRecords = null;\n /// Keeps track of the removed records at any point in time during `_check()` calls.\n this._unlinkedRecords = null;\n\n this._previousItHead = null;\n this._itHead = null;\n this._itTail = null;\n this._additionsHead = null;\n this._additionsTail = null;\n this._movesHead = null;\n this._movesTail = null;\n this._removalsHead = null;\n this._removalsTail = null;\n }\n\n static supportsObj(obj):boolean {\n return isListLikeIterable(obj);\n }\n\n supports(obj):boolean {\n return IterableChanges.supportsObj(obj);\n }\n\n get collection() {\n return this._collection;\n }\n\n get length():int {\n return this._length;\n }\n\n forEachItem(fn:Function) {\n var record:CollectionChangeRecord;\n for (record = this._itHead; record !== null; record = record._next) {\n fn(record);\n }\n }\n\n forEachPreviousItem(fn:Function) {\n var record:CollectionChangeRecord;\n for (record = this._previousItHead; record !== null; record = record._nextPrevious) {\n fn(record);\n }\n }\n\n forEachAddedItem(fn:Function){\n var record:CollectionChangeRecord;\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n fn(record);\n }\n }\n\n forEachMovedItem(fn:Function) {\n var record:CollectionChangeRecord;\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n fn(record);\n }\n }\n\n forEachRemovedItem(fn:Function){\n var record:CollectionChangeRecord;\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n fn(record);\n }\n }\n\n transform(collection){\n if (this.check(collection)) {\n return this;\n } else {\n return NO_CHANGE;\n }\n }\n\n // todo(vicb): optim for UnmodifiableListView (frozen arrays)\n check(collection):boolean {\n this._reset();\n\n var record:CollectionChangeRecord = this._itHead;\n var mayBeDirty:boolean = false;\n var index:int;\n var item;\n\n if (ListWrapper.isList(collection)) {\n var list = collection;\n this._length = collection.length;\n\n for (index = 0; index < this._length; index++) {\n item = list[index];\n if (record === null || !looseIdentical(record.item, item)) {\n record = this._mismatch(record, item, index);\n mayBeDirty = true;\n } else if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, index);\n }\n record = record._next;\n }\n } else {\n index = 0;\n iterateListLike(collection, (item) => {\n if (record === null || !looseIdentical(record.item, item)) {\n record = this._mismatch(record, item, index);\n mayBeDirty = true;\n } else if (mayBeDirty) {\n // TODO(misko): can we limit this to duplicates only?\n record = this._verifyReinsertion(record, item, index);\n }\n record = record._next;\n index++\n });\n this._length = index;\n }\n\n this._truncate(record);\n this._collection = collection;\n return this.isDirty;\n }\n\n // CollectionChanges is considered dirty if it has any additions, moves or removals.\n get isDirty():boolean {\n return this._additionsHead !== null ||\n this._movesHead !== null ||\n this._removalsHead !== null;\n }\n\n /**\n * Reset the state of the change objects to show no changes. This means set previousKey to\n * currentKey, and clear all of the queues (additions, moves, removals).\n * Set the previousIndexes of moved and added items to their currentIndexes\n * Reset the list of additions, moves and removals\n */\n _reset() {\n if (this.isDirty) {\n var record:CollectionChangeRecord;\n var nextRecord:CollectionChangeRecord;\n\n for (record = this._previousItHead = this._itHead; record !== null; record = record._next) {\n record._nextPrevious = record._next;\n }\n\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n record.previousIndex = record.currentIndex;\n }\n this._additionsHead = this._additionsTail = null;\n\n for (record = this._movesHead; record !== null; record = nextRecord) {\n record.previousIndex = record.currentIndex;\n nextRecord = record._nextMoved;\n }\n this._movesHead = this._movesTail = null;\n this._removalsHead = this._removalsTail = null;\n\n // todo(vicb) when assert gets supported\n // assert(!this.isDirty);\n }\n }\n\n /**\n * This is the core function which handles differences between collections.\n *\n * - `record` is the record which we saw at this position last time. If null then it is a new\n * item.\n * - `item` is the current item in the collection\n * - `index` is the position of the item in the collection\n */\n _mismatch(record:CollectionChangeRecord, item, index:int):CollectionChangeRecord {\n // The previous record after which we will append the current one.\n var previousRecord:CollectionChangeRecord;\n\n if (record === null) {\n previousRecord = this._itTail;\n } else {\n previousRecord = record._prev;\n // Remove the record from the collection since we know it does not match the item.\n this._remove(record);\n }\n\n // Attempt to see if we have seen the item before.\n record = this._linkedRecords === null ? null : this._linkedRecords.get(item, index);\n if (record !== null) {\n // We have seen this before, we need to move it forward in the collection.\n this._moveAfter(record, previousRecord, index);\n } else {\n // Never seen it, check evicted list.\n record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(item);\n if (record !== null) {\n // It is an item which we have evicted earlier: reinsert it back into the list.\n this._reinsertAfter(record, previousRecord, index);\n } else {\n // It is a new item: add it.\n record = this._addAfter(new CollectionChangeRecord(item), previousRecord, index);\n }\n }\n return record;\n }\n\n /**\n * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty)\n *\n * Use case: `[a, a]` => `[b, a, a]`\n *\n * If we did not have this check then the insertion of `b` would:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) leave `a` at index `1` as is. <-- this is wrong!\n * 3) reinsert `a` at index 2. <-- this is wrong!\n *\n * The correct behavior is:\n * 1) evict first `a`\n * 2) insert `b` at `0` index.\n * 3) reinsert `a` at index 1.\n * 3) move `a` at from `1` to `2`.\n *\n *\n * Double check that we have not evicted a duplicate item. We need to check if the item type may\n * have already been removed:\n * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted\n * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a\n * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a'\n * at the end.\n */\n _verifyReinsertion(record:CollectionChangeRecord, item, index:int):CollectionChangeRecord {\n var reinsertRecord:CollectionChangeRecord = this._unlinkedRecords === null ?\n null : this._unlinkedRecords.get(item);\n if (reinsertRecord !== null) {\n record = this._reinsertAfter(reinsertRecord, record._prev, index);\n } else if (record.currentIndex != index) {\n record.currentIndex = index;\n this._addToMoves(record, index);\n }\n return record;\n }\n\n /**\n * Get rid of any excess {@link CollectionChangeRecord}s from the previous collection\n *\n * - `record` The first excess {@link CollectionChangeRecord}.\n */\n _truncate(record:CollectionChangeRecord) {\n // Anything after that needs to be removed;\n while (record !== null) {\n var nextRecord:CollectionChangeRecord = record._next;\n this._addToRemovals(this._unlink(record));\n record = nextRecord;\n }\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.clear();\n }\n\n if (this._additionsTail !== null) {\n this._additionsTail._nextAdded = null;\n }\n if (this._movesTail !== null) {\n this._movesTail._nextMoved = null;\n }\n if (this._itTail !== null) {\n this._itTail._next = null;\n }\n if (this._removalsTail !== null) {\n this._removalsTail._nextRemoved = null;\n }\n }\n\n _reinsertAfter(record:CollectionChangeRecord, prevRecord:CollectionChangeRecord,\n index:int):CollectionChangeRecord {\n if (this._unlinkedRecords !== null) {\n this._unlinkedRecords.remove(record);\n }\n var prev = record._prevRemoved;\n var next = record._nextRemoved;\n\n if (prev === null) {\n this._removalsHead = next;\n } else {\n prev._nextRemoved = next;\n }\n if (next === null) {\n this._removalsTail = prev;\n } else {\n next._prevRemoved = prev;\n }\n\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n\n _moveAfter(record:CollectionChangeRecord, prevRecord:CollectionChangeRecord,\n index:int):CollectionChangeRecord {\n this._unlink(record);\n this._insertAfter(record, prevRecord, index);\n this._addToMoves(record, index);\n return record;\n }\n\n _addAfter(record:CollectionChangeRecord, prevRecord:CollectionChangeRecord,\n index:int):CollectionChangeRecord {\n this._insertAfter(record, prevRecord, index);\n\n if (this._additionsTail === null) {\n // todo(vicb)\n //assert(this._additionsHead === null);\n this._additionsTail = this._additionsHead = record;\n } else {\n // todo(vicb)\n //assert(_additionsTail._nextAdded === null);\n //assert(record._nextAdded === null);\n this._additionsTail = this._additionsTail._nextAdded = record;\n }\n return record;\n }\n\n _insertAfter(record:CollectionChangeRecord, prevRecord:CollectionChangeRecord,\n index:int):CollectionChangeRecord {\n // todo(vicb)\n //assert(record != prevRecord);\n //assert(record._next === null);\n //assert(record._prev === null);\n\n var next:CollectionChangeRecord = prevRecord === null ? this._itHead :prevRecord._next;\n // todo(vicb)\n //assert(next != record);\n //assert(prevRecord != record);\n record._next = next;\n record._prev = prevRecord;\n if (next === null) {\n this._itTail = record;\n } else {\n next._prev = record;\n }\n if (prevRecord === null) {\n this._itHead = record;\n } else {\n prevRecord._next = record;\n }\n\n if (this._linkedRecords === null) {\n this._linkedRecords = new _DuplicateMap();\n }\n this._linkedRecords.put(record);\n\n record.currentIndex = index;\n return record;\n }\n\n _remove(record:CollectionChangeRecord):CollectionChangeRecord {\n return this._addToRemovals(this._unlink(record));\n }\n\n _unlink(record:CollectionChangeRecord):CollectionChangeRecord {\n if (this._linkedRecords !== null) {\n this._linkedRecords.remove(record);\n }\n\n var prev = record._prev;\n var next = record._next;\n\n // todo(vicb)\n //assert((record._prev = null) === null);\n //assert((record._next = null) === null);\n\n if (prev === null) {\n this._itHead = next;\n } else {\n prev._next = next;\n }\n if (next === null) {\n this._itTail = prev;\n } else {\n next._prev = prev;\n }\n\n return record;\n }\n\n _addToMoves(record:CollectionChangeRecord, toIndex:int):CollectionChangeRecord {\n // todo(vicb)\n //assert(record._nextMoved === null);\n\n if (record.previousIndex === toIndex) {\n return record;\n }\n\n if (this._movesTail === null) {\n // todo(vicb)\n //assert(_movesHead === null);\n this._movesTail = this._movesHead = record;\n } else {\n // todo(vicb)\n //assert(_movesTail._nextMoved === null);\n this._movesTail = this._movesTail._nextMoved = record;\n }\n\n return record;\n }\n\n _addToRemovals(record:CollectionChangeRecord):CollectionChangeRecord {\n if (this._unlinkedRecords === null) {\n this._unlinkedRecords = new _DuplicateMap();\n }\n this._unlinkedRecords.put(record);\n record.currentIndex = null;\n record._nextRemoved = null;\n\n if (this._removalsTail === null) {\n // todo(vicb)\n //assert(_removalsHead === null);\n this._removalsTail = this._removalsHead = record;\n record._prevRemoved = null;\n } else {\n // todo(vicb)\n //assert(_removalsTail._nextRemoved === null);\n //assert(record._nextRemoved === null);\n record._prevRemoved = this._removalsTail;\n this._removalsTail = this._removalsTail._nextRemoved = record;\n }\n return record;\n }\n\n toString():string {\n var record:CollectionChangeRecord;\n\n var list = [];\n for (record = this._itHead; record !== null; record = record._next) {\n ListWrapper.push(list, record);\n }\n\n var previous = [];\n for (record = this._previousItHead; record !== null; record = record._nextPrevious) {\n ListWrapper.push(previous, record);\n }\n\n var additions = [];\n for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n ListWrapper.push(additions, record);\n }\n var moves = [];\n for (record = this._movesHead; record !== null; record = record._nextMoved) {\n ListWrapper.push(moves, record);\n }\n\n var removals = [];\n for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n ListWrapper.push(removals, record);\n }\n\n return \"collection: \" + list.join(', ') + \"\\n\" +\n \"previous: \" + previous.join(', ') + \"\\n\" +\n \"additions: \" + additions.join(', ') + \"\\n\" +\n \"moves: \" + moves.join(', ') + \"\\n\" +\n \"removals: \" + removals.join(', ') + \"\\n\";\n }\n}\n\n/**\n * @exportedAs angular2/pipes\n */\nexport class CollectionChangeRecord {\n currentIndex:int;\n previousIndex:int;\n item;\n\n _nextPrevious:CollectionChangeRecord;\n _prev:CollectionChangeRecord; _next:CollectionChangeRecord;\n _prevDup:CollectionChangeRecord; _nextDup:CollectionChangeRecord;\n _prevRemoved:CollectionChangeRecord; _nextRemoved:CollectionChangeRecord;\n _nextAdded:CollectionChangeRecord;\n _nextMoved:CollectionChangeRecord;\n\n constructor(item) {\n this.currentIndex = null;\n this.previousIndex = null;\n this.item = item;\n\n this._nextPrevious = null;\n this._prev = null;\n this._next = null;\n this._prevDup = null;\n this._nextDup = null;\n this._prevRemoved = null;\n this._nextRemoved = null;\n this._nextAdded = null;\n this._nextMoved = null;\n }\n\n toString():string {\n return this.previousIndex === this.currentIndex ?\n stringify(this.item) :\n stringify(this.item) + '[' + stringify(this.previousIndex) + '->' +\n stringify(this.currentIndex) + ']';\n }\n}\n\n// A linked list of CollectionChangeRecords with the same CollectionChangeRecord.item\nclass _DuplicateItemRecordList {\n _head:CollectionChangeRecord;\n _tail:CollectionChangeRecord;\n\n constructor() {\n this._head = null;\n this._tail = null;\n }\n\n /**\n * Append the record to the list of duplicates.\n *\n * Note: by design all records in the list of duplicates hold the same value in record.item.\n */\n add(record:CollectionChangeRecord) {\n if (this._head === null) {\n this._head = this._tail = record;\n record._nextDup = null;\n record._prevDup = null;\n } else {\n // todo(vicb)\n //assert(record.item == _head.item ||\n // record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);\n this._tail._nextDup = record;\n record._prevDup = this._tail;\n record._nextDup = null;\n this._tail = record;\n }\n }\n\n // Returns a CollectionChangeRecord having CollectionChangeRecord.item == item and\n // CollectionChangeRecord.currentIndex >= afterIndex\n get(item, afterIndex:int):CollectionChangeRecord {\n var record:CollectionChangeRecord;\n for (record = this._head; record !== null; record = record._nextDup) {\n if ((afterIndex === null || afterIndex < record.currentIndex) &&\n looseIdentical(record.item, item)) {\n return record;\n }\n }\n return null;\n }\n\n /**\n * Remove one {@link CollectionChangeRecord} from the list of duplicates.\n *\n * Returns whether the list of duplicates is empty.\n */\n remove(record:CollectionChangeRecord):boolean {\n // todo(vicb)\n //assert(() {\n // // verify that the record being removed is in the list.\n // for (CollectionChangeRecord cursor = _head; cursor != null; cursor = cursor._nextDup) {\n // if (identical(cursor, record)) return true;\n // }\n // return false;\n //});\n\n var prev:CollectionChangeRecord = record._prevDup;\n var next:CollectionChangeRecord = record._nextDup;\n if (prev === null) {\n this._head = next;\n } else {\n prev._nextDup = next;\n }\n if (next === null) {\n this._tail = prev;\n } else {\n next._prevDup = prev;\n }\n return this._head === null;\n }\n}\n\nclass _DuplicateMap {\n map:Map;\n constructor() {\n this.map = MapWrapper.create();\n }\n\n put(record:CollectionChangeRecord) {\n // todo(vicb) handle corner cases\n var key = getMapKey(record.item);\n\n var duplicates = MapWrapper.get(this.map, key);\n if (!isPresent(duplicates)) {\n duplicates = new _DuplicateItemRecordList();\n MapWrapper.set(this.map, key, duplicates);\n }\n duplicates.add(record);\n }\n\n /**\n * Retrieve the `value` using key. Because the CollectionChangeRecord value maybe one which we\n * have already iterated over, we use the afterIndex to pretend it is not there.\n *\n * Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we\n * have any more `a`s needs to return the last `a` not the first or second.\n */\n get(value, afterIndex = null):CollectionChangeRecord {\n var key = getMapKey(value);\n\n var recordList = MapWrapper.get(this.map, key);\n return isBlank(recordList) ? null : recordList.get(value, afterIndex);\n }\n\n /**\n * Removes a {@link CollectionChangeRecord} from the list of duplicates.\n *\n * The list of duplicates also is removed from the map if it gets empty.\n */\n remove(record:CollectionChangeRecord):CollectionChangeRecord {\n var key = getMapKey(record.item);\n // todo(vicb)\n //assert(this.map.containsKey(key));\n var recordList:_DuplicateItemRecordList = MapWrapper.get(this.map, key);\n // Remove the list of duplicates when it gets empty\n if (recordList.remove(record)) {\n MapWrapper.delete(this.map, key);\n }\n return record;\n }\n\n get isEmpty():boolean {\n return MapWrapper.size(this.map) === 0;\n }\n\n clear() {\n MapWrapper.clear(this.map);\n }\n\n toString():string {\n return '_DuplicateMap(' + stringify(this.map) + ')';\n }\n}\n"]}