UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

73 lines 2.83 kB
'use strict';var lang_1 = require('angular2/src/facade/lang'); var NG_CONTENT_SELECT_ATTR = 'select'; var NG_CONTENT_ELEMENT = 'ng-content'; var LINK_ELEMENT = 'link'; var LINK_STYLE_REL_ATTR = 'rel'; var LINK_STYLE_HREF_ATTR = 'href'; var LINK_STYLE_REL_VALUE = 'stylesheet'; var STYLE_ELEMENT = 'style'; var SCRIPT_ELEMENT = 'script'; var NG_NON_BINDABLE_ATTR = 'ng-non-bindable'; function preparseElement(ast) { var selectAttr = null; var hrefAttr = null; var relAttr = null; var nonBindable = false; ast.attrs.forEach(function (attr) { var attrName = attr.name.toLowerCase(); if (attrName == NG_CONTENT_SELECT_ATTR) { selectAttr = attr.value; } else if (attrName == LINK_STYLE_HREF_ATTR) { hrefAttr = attr.value; } else if (attrName == LINK_STYLE_REL_ATTR) { relAttr = attr.value; } else if (attrName == NG_NON_BINDABLE_ATTR) { nonBindable = true; } }); selectAttr = normalizeNgContentSelect(selectAttr); var nodeName = ast.name.toLowerCase(); var type = PreparsedElementType.OTHER; if (nodeName == NG_CONTENT_ELEMENT) { type = PreparsedElementType.NG_CONTENT; } else if (nodeName == STYLE_ELEMENT) { type = PreparsedElementType.STYLE; } else if (nodeName == SCRIPT_ELEMENT) { type = PreparsedElementType.SCRIPT; } else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) { type = PreparsedElementType.STYLESHEET; } return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable); } exports.preparseElement = preparseElement; (function (PreparsedElementType) { PreparsedElementType[PreparsedElementType["NG_CONTENT"] = 0] = "NG_CONTENT"; PreparsedElementType[PreparsedElementType["STYLE"] = 1] = "STYLE"; PreparsedElementType[PreparsedElementType["STYLESHEET"] = 2] = "STYLESHEET"; PreparsedElementType[PreparsedElementType["SCRIPT"] = 3] = "SCRIPT"; PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER"; })(exports.PreparsedElementType || (exports.PreparsedElementType = {})); var PreparsedElementType = exports.PreparsedElementType; var PreparsedElement = (function () { function PreparsedElement(type, selectAttr, hrefAttr, nonBindable) { this.type = type; this.selectAttr = selectAttr; this.hrefAttr = hrefAttr; this.nonBindable = nonBindable; } return PreparsedElement; })(); exports.PreparsedElement = PreparsedElement; function normalizeNgContentSelect(selectAttr) { if (lang_1.isBlank(selectAttr) || selectAttr.length === 0) { return '*'; } return selectAttr; } //# sourceMappingURL=template_preparser.js.map