{"version":3,"sources":["keyvalue_changes.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/pipes/keyvalue_changes.es6","sourcesContent":["import {ListWrapper, MapWrapper, StringMapWrapper} from 'angular2/src/facade/collection';\nimport {stringify, looseIdentical, isJsObject} from 'angular2/src/facade/lang';\n\nimport {NO_CHANGE, Pipe} from './pipe';\n\n/**\n * @exportedAs angular2/pipes\n */\nexport class KeyValueChangesFactory {\n  supports(obj):boolean {\n    return KeyValueChanges.supportsObj(obj);\n  }\n\n  create(cdRef):Pipe {\n    return new KeyValueChanges();\n  }\n}\n\n/**\n * @exportedAs angular2/pipes\n */\nexport class KeyValueChanges extends Pipe {\n  _records:Map;\n\n  _mapHead:KVChangeRecord;\n  _previousMapHead:KVChangeRecord;\n  _changesHead:KVChangeRecord;\n  _changesTail:KVChangeRecord;\n  _additionsHead:KVChangeRecord;\n  _additionsTail:KVChangeRecord;\n  _removalsHead:KVChangeRecord;\n  _removalsTail:KVChangeRecord;\n\n  constructor() {\n    super();\n    this._records = MapWrapper.create();\n    this._mapHead = null;\n    this._previousMapHead = null;\n    this._changesHead = null;\n    this._changesTail = null;\n    this._additionsHead = null;\n    this._additionsTail = null;\n    this._removalsHead = null;\n    this._removalsTail = null;\n  }\n\n  static supportsObj(obj):boolean {\n    return obj instanceof Map || isJsObject(obj);\n  }\n\n  supports(obj):boolean {\n    return KeyValueChanges.supportsObj(obj);\n  }\n\n  transform(map){\n    if (this.check(map)) {\n      return this;\n    } else {\n      return NO_CHANGE;\n    }\n  }\n\n  get isDirty():boolean {\n    return this._additionsHead !== null ||\n           this._changesHead !== null ||\n           this._removalsHead !== null;\n  }\n\n  forEachItem(fn:Function) {\n    var record:KVChangeRecord;\n    for (record = this._mapHead; record !== null; record = record._next) {\n      fn(record);\n    }\n  }\n\n  forEachPreviousItem(fn:Function) {\n    var record:KVChangeRecord;\n    for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {\n      fn(record);\n    }\n  }\n\n  forEachChangedItem(fn:Function) {\n    var record:KVChangeRecord;\n    for (record = this._changesHead; record !== null; record = record._nextChanged) {\n      fn(record);\n    }\n  }\n\n  forEachAddedItem(fn:Function){\n    var record:KVChangeRecord;\n    for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n      fn(record);\n    }\n  }\n\n  forEachRemovedItem(fn:Function){\n    var record:KVChangeRecord;\n    for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n      fn(record);\n    }\n  }\n\n  check(map):boolean {\n    this._reset();\n    var records = this._records;\n    var oldSeqRecord:KVChangeRecord = this._mapHead;\n    var lastOldSeqRecord:KVChangeRecord = null;\n    var lastNewSeqRecord:KVChangeRecord = null;\n    var seqChanged:boolean = false;\n\n    this._forEach(map, (value, key) => {\n      var newSeqRecord;\n      if (oldSeqRecord !== null && key === oldSeqRecord.key) {\n        newSeqRecord = oldSeqRecord;\n        if (!looseIdentical(value, oldSeqRecord.currentValue)) {\n          oldSeqRecord.previousValue = oldSeqRecord.currentValue;\n          oldSeqRecord.currentValue = value;\n          this._addToChanges(oldSeqRecord);\n        }\n      } else {\n        seqChanged = true;\n        if (oldSeqRecord !== null) {\n          oldSeqRecord._next = null;\n          this._removeFromSeq(lastOldSeqRecord, oldSeqRecord);\n          this._addToRemovals(oldSeqRecord);\n        }\n        if (MapWrapper.contains(records, key)) {\n          newSeqRecord = MapWrapper.get(records, key);\n        } else {\n          newSeqRecord = new KVChangeRecord(key);\n          MapWrapper.set(records, key, newSeqRecord);\n          newSeqRecord.currentValue = value;\n          this._addToAdditions(newSeqRecord);\n        }\n      }\n\n      if (seqChanged) {\n        if (this._isInRemovals(newSeqRecord)) {\n          this._removeFromRemovals(newSeqRecord);\n        }\n        if (lastNewSeqRecord == null) {\n          this._mapHead = newSeqRecord;\n        } else {\n          lastNewSeqRecord._next = newSeqRecord;\n        }\n      }\n      lastOldSeqRecord = oldSeqRecord;\n      lastNewSeqRecord = newSeqRecord;\n      oldSeqRecord = oldSeqRecord === null ? null : oldSeqRecord._next;\n    });\n    this._truncate(lastOldSeqRecord, oldSeqRecord);\n    return this.isDirty;\n  }\n\n  _reset() {\n    if (this.isDirty) {\n      var record:KVChangeRecord;\n      // Record the state of the mapping\n      for (record = this._previousMapHead = this._mapHead;\n           record !== null;\n           record = record._next) {\n        record._nextPrevious = record._next;\n      }\n\n      for (record = this._changesHead; record !== null; record = record._nextChanged) {\n        record.previousValue = record.currentValue;\n      }\n\n      for (record = this._additionsHead; record != null; record = record._nextAdded) {\n        record.previousValue = record.currentValue;\n      }\n\n      // todo(vicb) once assert is supported\n      //assert(() {\n      //  var r = _changesHead;\n      //  while (r != null) {\n      //    var nextRecord = r._nextChanged;\n      //    r._nextChanged = null;\n      //    r = nextRecord;\n      //  }\n      //\n      //  r = _additionsHead;\n      //  while (r != null) {\n      //    var nextRecord = r._nextAdded;\n      //    r._nextAdded = null;\n      //    r = nextRecord;\n      //  }\n      //\n      //  r = _removalsHead;\n      //  while (r != null) {\n      //    var nextRecord = r._nextRemoved;\n      //    r._nextRemoved = null;\n      //    r = nextRecord;\n      //  }\n      //\n      //  return true;\n      //});\n      this._changesHead = this._changesTail = null;\n      this._additionsHead = this._additionsTail = null;\n      this._removalsHead = this._removalsTail = null;\n    }\n  }\n\n  _truncate(lastRecord:KVChangeRecord, record:KVChangeRecord) {\n    while (record !== null) {\n      if (lastRecord === null) {\n        this._mapHead = null;\n      } else {\n        lastRecord._next = null;\n      }\n      var nextRecord = record._next;\n      // todo(vicb) assert\n      //assert((() {\n      //  record._next = null;\n      //  return true;\n      //}));\n      this._addToRemovals(record);\n      lastRecord = record;\n      record = nextRecord;\n    }\n\n    for (var rec:KVChangeRecord = this._removalsHead; rec !== null; rec = rec._nextRemoved) {\n      rec.previousValue = rec.currentValue;\n      rec.currentValue = null;\n      MapWrapper.delete(this._records, rec.key);\n    }\n  }\n\n  _isInRemovals(record:KVChangeRecord) {\n    return record === this._removalsHead ||\n           record._nextRemoved !== null ||\n           record._prevRemoved !== null;\n  }\n\n  _addToRemovals(record:KVChangeRecord) {\n    // todo(vicb) assert\n    //assert(record._next == null);\n    //assert(record._nextAdded == null);\n    //assert(record._nextChanged == null);\n    //assert(record._nextRemoved == null);\n    //assert(record._prevRemoved == null);\n    if (this._removalsHead === null) {\n      this._removalsHead = this._removalsTail = record;\n    } else {\n      this._removalsTail._nextRemoved = record;\n      record._prevRemoved = this._removalsTail;\n      this._removalsTail = record;\n    }\n  }\n\n  _removeFromSeq(prev:KVChangeRecord, record:KVChangeRecord) {\n    var next = record._next;\n    if (prev === null) {\n      this._mapHead = next;\n    } else {\n      prev._next = next;\n    }\n    // todo(vicb) assert\n    //assert((() {\n    //  record._next = null;\n    //  return true;\n    //})());\n  }\n\n  _removeFromRemovals(record:KVChangeRecord) {\n    // todo(vicb) assert\n    //assert(record._next == null);\n    //assert(record._nextAdded == null);\n    //assert(record._nextChanged == null);\n\n    var prev = record._prevRemoved;\n    var next = record._nextRemoved;\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    record._prevRemoved = record._nextRemoved = null;\n  }\n\n  _addToAdditions(record:KVChangeRecord) {\n    // todo(vicb): assert\n    //assert(record._next == null);\n    //assert(record._nextAdded == null);\n    //assert(record._nextChanged == null);\n    //assert(record._nextRemoved == null);\n    //assert(record._prevRemoved == null);\n    if (this._additionsHead === null) {\n      this._additionsHead = this._additionsTail = record;\n    } else {\n      this._additionsTail._nextAdded = record;\n      this._additionsTail = record;\n    }\n  }\n\n  _addToChanges(record:KVChangeRecord) {\n    // todo(vicb) assert\n    //assert(record._nextAdded == null);\n    //assert(record._nextChanged == null);\n    //assert(record._nextRemoved == null);\n    //assert(record._prevRemoved == null);\n    if (this._changesHead === null) {\n      this._changesHead = this._changesTail = record;\n    } else {\n      this._changesTail._nextChanged = record;\n      this._changesTail = record;\n    }\n  }\n\n  toString():string {\n    var items = [];\n    var previous = [];\n    var changes = [];\n    var additions = [];\n    var removals = [];\n    var record:KVChangeRecord;\n\n    for (record = this._mapHead; record !== null; record = record._next) {\n      ListWrapper.push(items, stringify(record));\n    }\n    for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {\n      ListWrapper.push(previous, stringify(record));\n    }\n    for (record = this._changesHead; record !== null; record = record._nextChanged) {\n      ListWrapper.push(changes, stringify(record));\n    }\n    for (record = this._additionsHead; record !== null; record = record._nextAdded) {\n      ListWrapper.push(additions, stringify(record));\n    }\n    for (record = this._removalsHead; record !== null; record = record._nextRemoved) {\n      ListWrapper.push(removals, stringify(record));\n    }\n\n    return \"map: \" + items.join(', ') + \"\\n\" +\n           \"previous: \" + previous.join(', ') + \"\\n\" +\n           \"additions: \" + additions.join(', ') + \"\\n\" +\n           \"changes: \" + changes.join(', ') + \"\\n\" +\n           \"removals: \" + removals.join(', ') + \"\\n\";\n  }\n\n  _forEach(obj, fn:Function) {\n    if (obj instanceof Map) {\n      MapWrapper.forEach(obj, fn);\n    } else {\n      StringMapWrapper.forEach(obj, fn);\n    }\n  }\n}\n\n\n\n/**\n * @exportedAs angular2/pipes\n */\nexport class KVChangeRecord {\n  key;\n  previousValue;\n  currentValue;\n\n  _nextPrevious:KVChangeRecord;\n  _next:KVChangeRecord;\n  _nextAdded:KVChangeRecord;\n  _nextRemoved:KVChangeRecord;\n  _prevRemoved:KVChangeRecord;\n  _nextChanged:KVChangeRecord;\n\n  constructor(key) {\n    this.key = key;\n    this.previousValue = null;\n    this.currentValue = null;\n\n    this._nextPrevious = null;\n    this._next = null;\n    this._nextAdded = null;\n    this._nextRemoved = null;\n    this._prevRemoved = null;\n    this._nextChanged = null;\n  }\n\n  toString():string {\n    return looseIdentical(this.previousValue, this.currentValue) ?\n      stringify(this.key) :\n      (stringify(this.key) + '[' + stringify(this.previousValue) + '->' +\n        stringify(this.currentValue) + ']');\n  }\n}\n"]}