{"version":3,"sources":["property_binding_parser.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/compiler/property_binding_parser.es6","sourcesContent":["import {isPresent, RegExpWrapper} from 'angular2/src/facade/lang';\nimport {MapWrapper} from 'angular2/src/facade/collection';\n\nimport {Parser} from 'angular2/change_detection';\n\nimport {CompileStep} from './compile_step';\nimport {CompileElement} from './compile_element';\nimport {CompileControl} from './compile_control';\n\nimport {dashCaseToCamelCase} from '../util';\n\n// Group 1 = \"bind-\"\n// Group 2 = \"var-\" or \"#\"\n// Group 3 = \"on-\"\n// Group 4 = the identifier after \"bind-\", \"var-/#\", or \"on-\"\n// Group 5 = idenitifer inside square braces\n// Group 6 = identifier inside parenthesis\nvar BIND_NAME_REGEXP = RegExpWrapper.create(\n    '^(?:(?:(?:(bind-)|(var-|#)|(on-))(.+))|\\\\[([^\\\\]]+)\\\\]|\\\\(([^\\\\)]+)\\\\))$');\n\n/**\n * Parses the property bindings on a single element.\n */\nexport class PropertyBindingParser extends CompileStep {\n  _parser:Parser;\n\n  constructor(parser:Parser) {\n    super();\n    this._parser = parser;\n  }\n\n  process(parent:CompileElement, current:CompileElement, control:CompileControl) {\n    var attrs = current.attrs();\n    var newAttrs = MapWrapper.create();\n\n    MapWrapper.forEach(attrs, (attrValue, attrName) => {\n      var bindParts = RegExpWrapper.firstMatch(BIND_NAME_REGEXP, attrName);\n      if (isPresent(bindParts)) {\n        if (isPresent(bindParts[1])) {\n          // match: bind-prop\n          this._bindProperty(bindParts[4], attrValue, current, newAttrs);\n        } else if (isPresent(bindParts[2])) {\n          // match: var-name / var-name=\"iden\" / #name / #name=\"iden\"\n          var identifier = bindParts[4];\n          var value = attrValue == '' ? '\\$implicit' : attrValue;\n          this._bindVariable(identifier, value, current, newAttrs);\n        } else if (isPresent(bindParts[3])) {\n          // match: on-event\n          this._bindEvent(bindParts[4], attrValue, current, newAttrs);\n        } else if (isPresent(bindParts[5])) {\n          // match: [prop]\n          this._bindProperty(bindParts[5], attrValue, current, newAttrs);\n        } else if (isPresent(bindParts[6])) {\n          // match: (event)\n          this._bindEvent(bindParts[6], attrValue, current, newAttrs);\n        }\n      } else {\n        var expr = this._parser.parseInterpolation(\n          attrValue, current.elementDescription\n        );\n        if (isPresent(expr)) {\n          this._bindPropertyAst(attrName, expr, current, newAttrs);\n        }\n      }\n    });\n\n    MapWrapper.forEach(newAttrs, (attrValue, attrName) => {\n      MapWrapper.set(attrs, attrName, attrValue);\n    });\n  }\n\n  _bindVariable(identifier, value, current:CompileElement, newAttrs) {\n    current.bindElement().bindVariable(dashCaseToCamelCase(identifier), value);\n    MapWrapper.set(newAttrs, identifier, value);\n  }\n\n  _bindProperty(name, expression, current:CompileElement, newAttrs) {\n    this._bindPropertyAst(\n      name,\n      this._parser.parseBinding(expression, current.elementDescription),\n      current,\n      newAttrs\n    );\n  }\n\n  _bindPropertyAst(name, ast, current:CompileElement, newAttrs) {\n    var binder = current.bindElement();\n    var camelCaseName = dashCaseToCamelCase(name);\n    binder.bindProperty(camelCaseName, ast);\n    MapWrapper.set(newAttrs, name, ast.source);\n  }\n\n  _bindEvent(name, expression, current:CompileElement, newAttrs) {\n    current.bindElement().bindEvent(\n      dashCaseToCamelCase(name), this._parser.parseAction(expression, current.elementDescription)\n    );\n    // Don't detect directives for event names for now,\n    // so don't add the event name to the CompileElement.attrs\n  }\n\n}\n"]}