UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 8.49 kB
{"version":3,"sources":["property_binding_parser.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/compiler/property_binding_parser.js","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"]}