UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 8.01 kB
{"version":3,"sources":["compile_element.js"],"names":[],"mappings":"AAAA;AAAA,KAAO,EAAC,IAAG;AAAG,IAAE;AAAG,YAAU;AAAG,WAAS,CAAC,KAAO,iCAA+B,CAAC;AACjF,KAAO,EAAC,GAAE,CAAC,KAAO,+BAA6B,CAAC;AAChD,KAAO,EAAC,GAAE;AAAG,QAAM;AAAG,UAAQ;AAAG,KAAG;AAAG,aAAW;AAAG,kBAAgB,CAAC,KAAO,2BAAyB,CAAC;AAEvG,KAAO,EAAC,gBAAe;AAAG,qBAAmB,CAAC,KAAO,6BAA2B,CAAC;AAOjF,KAAO,MAAM,eAAa;AAWxB,YAAU,CAAE,OAAM,CAAG,CAAA,eAAc,EAAI,GAAC,CAAG;AACzC,OAAG,QAAQ,EAAI,QAAM,CAAC;AACtB,OAAG,OAAO,EAAI,KAAG,CAAC;AAClB,OAAG,WAAW,EAAI,KAAG,CAAC;AACtB,OAAG,WAAW,EAAI,MAAI,CAAC;AAGvB,OAAG,mBAAmB,EAAI,KAAG,CAAC;AAG9B,OAAG,uBAAuB,EAAI,KAAG,CAAC;AAClC,OAAG,0BAA0B,EAAI,EAAA,CAAC;AAClC,OAAG,gBAAgB,EAAI,KAAG,CAAC;AAE3B,AAAI,MAAA,CAAA,OAAM,EAAI,CAAA,iBAAgB,AAAC,EAAC,CAAA,CAAG,CAAA,qBAAoB,AAAC,CAAC,OAAM,CAAC,CAAA,CAAI,KAAG,CAAC;AACxE,OAAI,eAAc,IAAM,GAAC,CAAG;AAC1B,SAAG,mBAAmB,EAAI,gBAAc,CAAC;AACzC,SAAI,SAAQ,AAAC,CAAC,OAAM,CAAC;AAAG,WAAG,mBAAmB,GAAK,CAAA,IAAG,EAAI,QAAM,CAAC;AAAA,IACnE,KAAO;AACL,SAAG,mBAAmB,EAAI,QAAM,CAAC;IACnC;AAAA,EACF;AAAA,AAEA,QAAM,CAAE,AAAD,CAAG;AACR,SAAO,CAAA,SAAQ,AAAC,CAAC,IAAG,uBAAuB,CAAC,CAAA,EAAK,CAAA,IAAG,0BAA0B,IAAM,EAAA,CAAC;EACvF;AAAA,AAEA,YAAU,CAAE,AAAD,CAAG;AACZ,OAAI,CAAC,IAAG,QAAQ,AAAC,EAAC,CAAG;AACnB,AAAI,QAAA,CAAA,YAAW,EAAI,CAAA,IAAG,uBAAuB,CAAC;AAC9C,SAAG,uBAAuB,EAAI,CAAA,IAAG,mBAAmB,YAAY,AAAC,CAAC,IAAG,QAAQ,CAAG,CAAA,IAAG,mBAAmB,CAAC,CAAC;AACxG,SAAI,SAAQ,AAAC,CAAC,YAAW,CAAC,CAAG;AAC3B,WAAG,uBAAuB,UAAU,AAAC,CAAC,YAAW,CAAG,CAAA,IAAG,0BAA0B,CAAC,CAAC;MACrF;AAAA,AACA,SAAG,0BAA0B,EAAI,EAAA,CAAC;IACpC;AAAA,AACA,SAAO,CAAA,IAAG,uBAAuB,CAAC;EACpC;AAAA,AAEA,aAAW,CAAE,AAAD,CAAG;AACb,OAAG,OAAO,EAAI,KAAG,CAAC;EACpB;AAAA,AAEA,MAAI,CAAE,AAAD;AACH,OAAI,OAAM,AAAC,CAAC,IAAG,OAAO,CAAC,CAAG;AACxB,SAAG,OAAO,EAAI,CAAA,GAAE,aAAa,AAAC,CAAC,IAAG,QAAQ,CAAC,CAAC;IAC9C;AAAA,AApEJ,SAAO,CAAA,MAAK,WAAW,AAAC,CAAC,CAqEd,IAAG,OAAO,CArEsB,CAA3C,CAAA,MAAK,YAAuB,AAiElB,CAAA,GAAE,CAjEZ,CAAA,MAAK,KAAgB,QAArB,CAAA,MAAK,KAAgB,QAiEM,AAjEoB,CAAgB,CAAA;EAsE7D;AAEA,iBAAe,CAAE,AAAD,CAAG;AACjB,OAAG,WAAW,EAAI,KAAG,CAAC;EACxB;AAAA,AAEA,UAAQ,CAAE,AAAD;AACP,OAAI,OAAM,AAAC,CAAC,IAAG,WAAW,CAAC,CAAG;AAC5B,SAAG,WAAW,EAAI,CAAA,WAAU,OAAO,AAAC,EAAC,CAAC;AACtC,AAAI,QAAA,CAAA,WAAU,EAAI,CAAA,GAAE,UAAU,AAAC,CAAC,IAAG,QAAQ,CAAC,CAAC;AAC7C,UAAS,GAAA,CAAA,CAAA,EAAI,EAAA,CAAG,CAAA,CAAA,EAAI,CAAA,WAAU,OAAO,CAAG,CAAA,CAAA,EAAE,CAAG;AAC3C,kBAAU,KAAK,AAAC,CAAC,IAAG,WAAW,CAAG,CAAA,WAAU,CAAE,CAAA,CAAC,CAAC,CAAC;MACnD;AAAA,IACF;AAAA,AAnFJ,SAAO,CAAA,MAAK,WAAW,AAAC,CAAC,CAoFd,IAAG,WAAW,CApFkB,CAA3C,CAAA,MAAK,YAAuB,AA4Ed,CAAA,IAAG,CA5EjB,CAAA,MAAK,KAAgB,QA4EI,AA5EsB,CAAgB,CAAA;EAqF7D;AAEF;AAAA,AAIA,OAAS,sBAAoB,CAAE,UAAS;AACtC,AAAI,IAAA,CAAA,GAAE,EAAI,IAAI,aAAW,AAAC,EAAC,CAAC;AAC5B,AAAI,IAAA,CAAA,IAAG,EAAI,CAAA,GAAE,aAAa,AAAC,CAAC,UAAS,CAAC,CAAC;AAEvC,IAAE,IAAI,AAAC,CAAC,GAAE,CAAC,CAAC;AACZ,IAAE,IAAI,AAAC,CAAC,GAAE,QAAQ,AAAC,CAAC,UAAS,CAAC,YAAY,AAAC,EAAC,CAAC,CAAC;AAG9C,wBAAsB,AAAC,CAAC,GAAE,CAAG,KAAG,CAAG,CAAA,UAAS,IAAI,AAAC,CAAC,IAAG,CAAG,KAAG,CAAC,CAAC,CAAC;AAC9D,wBAAsB,AAAC,CAAC,GAAE,CAAG,QAAM,CAAG,CAAA,UAAS,IAAI,AAAC,CAAC,IAAG,CAAG,QAAM,CAAC,CAAC,CAAC;AACpE,WAAS,QAAQ,AAAC,CAAC,IAAG,CAAG,EAAC,QAAO,CAAG,CAAA,OAAM,IAAM;AAC5C,OAAI,OAAM,IAAM,KAAG,CAAA,EAAK,CAAA,OAAM,IAAM,QAAM,CAAG;AACzC,4BAAsB,AAAC,CAAC,GAAE,CAAG,QAAM,CAAG,SAAO,CAAC,CAAC;IACnD;AAAA,EACJ,CAAC,CAAC;AAEF,IAAE,IAAI,AAAC,CAAC,GAAE,CAAC,CAAC;AA3Gd,OAAO,CAAA,MAAK,WAAW,AAAC,CAAC,CA4GhB,GAAE,SAAS,AAAC,EAAC,CA5GqB,CAA3C,CAAA,MAAK,KAAgB,QAA0C,CAAA;AA6G/D;AAGA,OAAS,wBAAsB,CAAE,MAAK,AAAa,CAAG,CAAA,OAAM,AAAO,CAAG,CAAA,QAAO,CAAG;AAhHhF,OAAK,cAAc,QAgHqB,aAAW,UAhHnD,CAAA,MAAK,KAAgB,kBAArB,CAAA,MAAK,KAAK,IAAI,CAAwB,CAAA;AAiHpC,KAAI,SAAQ,AAAC,CAAC,QAAO,CAAC,CAAG;AACrB,OAAI,QAAO,OAAO,IAAM,EAAA,CAAG;AACvB,WAAK,IAAI,AAAC,CAAC,GAAE,EAAI,QAAM,CAAC,CAAC;IAC7B,KAAO;AACH,WAAK,IAAI,AAAC,CAAC,GAAE,EAAI,QAAM,CAAA,CAAI,KAAG,CAAA,CAAI,SAAO,CAAA,CAAI,IAAE,CAAC,CAAC;IACrD;AAAA,EACJ;AAAA,AACF;AAAA,AAxHA,KAAK,eAAe,AAAC,uCACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YA+Gc,YAAW,IAhHnD,MAAK,KAAgB,cAC4B;EAAC,CAAC,CAAC,CAAC;AAwHrD","file":"angular2/src/render/dom/compiler/compile_element.es6","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"]}