UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 8.25 kB
{"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"]}