UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 8.16 kB
{"version":3,"sources":["compile_element.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/compiler/compile_element.js","sourcesContent":["import {List, Map, ListWrapper, MapWrapper} from 'angular2/src/facade/collection';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\nimport {int, isBlank, isPresent, Type, StringJoiner, assertionsEnabled} from 'angular2/src/facade/lang';\n\nimport {ProtoViewBuilder, ElementBinderBuilder} from '../view/proto_view_builder';\n\n/**\n * Collects all data that is needed to process an element\n * in the compile process. Fields are filled\n * by the CompileSteps starting out with the pure HTMLElement.\n */\nexport class CompileElement {\n element;\n _attrs:Map;\n _classList:List;\n isViewRoot:boolean;\n inheritedProtoView:ProtoViewBuilder;\n distanceToInheritedBinder:number;\n inheritedElementBinder:ElementBinderBuilder;\n compileChildren: boolean;\n elementDescription: string; // e.g. '<div [class]=\"foo\">' : used to provide context in case of error\n\n constructor(element, compilationUnit = '') {\n this.element = element;\n this._attrs = null;\n this._classList = null;\n this.isViewRoot = false;\n // inherited down to children if they don't have\n // an own protoView\n this.inheritedProtoView = null;\n // inherited down to children if they don't have\n // an own elementBinder\n this.inheritedElementBinder = null;\n this.distanceToInheritedBinder = 0;\n this.compileChildren = true;\n // description is calculated here as compilation steps may change the element\n var tplDesc = assertionsEnabled()? getElementDescription(element) : null;\n if (compilationUnit !== '') {\n this.elementDescription = compilationUnit;\n if (isPresent(tplDesc)) this.elementDescription += \": \" + tplDesc;\n } else {\n this.elementDescription = tplDesc;\n }\n }\n\n isBound() {\n return isPresent(this.inheritedElementBinder) && this.distanceToInheritedBinder === 0;\n }\n\n bindElement() {\n if (!this.isBound()) {\n var parentBinder = this.inheritedElementBinder;\n this.inheritedElementBinder = this.inheritedProtoView.bindElement(this.element, this.elementDescription);\n if (isPresent(parentBinder)) {\n this.inheritedElementBinder.setParent(parentBinder, this.distanceToInheritedBinder);\n }\n this.distanceToInheritedBinder = 0;\n }\n return this.inheritedElementBinder;\n }\n\n refreshAttrs() {\n this._attrs = null;\n }\n\n attrs():Map<string,string> {\n if (isBlank(this._attrs)) {\n this._attrs = DOM.attributeMap(this.element);\n }\n return this._attrs;\n }\n\n refreshClassList() {\n this._classList = null;\n }\n\n classList():List<string> {\n if (isBlank(this._classList)) {\n this._classList = ListWrapper.create();\n var elClassList = DOM.classList(this.element);\n for (var i = 0; i < elClassList.length; i++) {\n ListWrapper.push(this._classList, elClassList[i]);\n }\n }\n return this._classList;\n }\n\n}\n\n// return an HTML representation of an element start tag - without its content\n// this is used to give contextual information in case of errors\nfunction getElementDescription(domElement):string {\n var buf = new StringJoiner();\n var atts = DOM.attributeMap(domElement);\n\n buf.add(\"<\");\n buf.add(DOM.tagName(domElement).toLowerCase());\n\n // show id and class first to ease element identification\n addDescriptionAttribute(buf, \"id\", MapWrapper.get(atts, \"id\"));\n addDescriptionAttribute(buf, \"class\", MapWrapper.get(atts, \"class\"));\n MapWrapper.forEach(atts, (attValue, attName) => {\n if (attName !== \"id\" && attName !== \"class\") {\n addDescriptionAttribute(buf, attName, attValue);\n }\n });\n\n buf.add(\">\");\n return buf.toString();\n}\n\n\nfunction addDescriptionAttribute(buffer:StringJoiner, attName:string, attValue) {\n if (isPresent(attValue)) {\n if (attValue.length === 0) {\n buffer.add(' ' + attName);\n } else {\n buffer.add(' ' + attName + '=\"' + attValue + '\"');\n }\n }\n}\n"]}