{"version":3,"sources":["binding_record.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/binding_record.js","sourcesContent":["import {isPresent, isBlank} from 'angular2/src/facade/lang';\nimport {SetterFn} from 'angular2/src/reflection/types';\nimport {AST} from './parser/ast';\nimport {DirectiveRecord} from './directive_record';\n\nconst DIRECTIVE=\"directive\";\nconst ELEMENT=\"element\";\nconst TEXT_NODE=\"textNode\";\n\nexport class BindingRecord {\n  mode:string;\n  ast:AST;\n\n  elementIndex:number;\n  propertyName:string;\n  setter:SetterFn;\n\n  directiveRecord:DirectiveRecord;\n\n  constructor(mode:string, ast:AST, elementIndex:number, propertyName:string, setter:SetterFn, directiveRecord:DirectiveRecord) {\n    this.mode = mode;\n    this.ast = ast;\n\n    this.elementIndex = elementIndex;\n    this.propertyName = propertyName;\n    this.setter = setter;\n\n    this.directiveRecord = directiveRecord;\n  }\n\n  callOnChange() {\n    return isPresent(this.directiveRecord) && this.directiveRecord.callOnChange;\n  }\n\n  isOnPushChangeDetection() {\n    return isPresent(this.directiveRecord) && this.directiveRecord.isOnPushChangeDetection();\n  }\n\n  isDirective() {\n    return this.mode === DIRECTIVE;\n  }\n\n  isElement() {\n    return this.mode === ELEMENT;\n  }\n\n  isTextNode() {\n    return this.mode === TEXT_NODE;\n  }\n\n  static createForDirective(ast:AST, propertyName:string, setter:SetterFn, directiveRecord:DirectiveRecord) {\n    return new BindingRecord(DIRECTIVE, ast, 0, propertyName, setter, directiveRecord);\n  }\n\n  static createForElement(ast:AST, elementIndex:number, propertyName:string) {\n    return new BindingRecord(ELEMENT, ast, elementIndex, propertyName, null, null);\n  }\n\n  static createForTextNode(ast:AST, elementIndex:number) {\n    return new BindingRecord(TEXT_NODE, ast, elementIndex, null, null, null);\n  }\n}"]}