UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 3.54 kB
{"version":3,"sources":["template_loader.js"],"names":[],"mappings":"AAAA;AAAA,KAAO,EAAC,UAAS,CAAC,KAAO,cAAY,CAAC;AACtC,KAAO,EAAC,OAAM;AAAG,UAAQ;AAAG,cAAY;AAAG,UAAQ,CAAC,KAAO,2BAAyB,CAAC;AACrF,KAAO,EAAC,GAAE;AAAG,WAAS;AAAG,iBAAe;AAAG,UAAQ,CAAC,KAAO,iCAA+B,CAAC;AAC3F,KAAO,EAAC,cAAa;AAAG,QAAM,CAAC,KAAO,4BAA0B,CAAC;AACjE,KAAO,EAAC,GAAE,CAAC,KAAO,+BAA6B,CAAC;AAEhD,KAAO,EAAC,GAAE,CAAC,KAAO,4BAA0B,CAAC;AAE7C,KAAO,EAAC,cAAa,CAAC,KAAO,YAAU,CAAC;AACxC,KAAO,EAAC,WAAU,CAAC,KAAO,qCAAmC,CAAC;AAO9D,KAAO,MAAM,eAAa;AAIxB,YAAU,CAAE,GAAE,AAAK,CAAG,CAAA,WAAU,AAAa,CAAG;AApBlD,SAAK,cAAc,KAoBA,IAAE,cAAgB,YAAU,CApBT,CAAA;AAqBlC,OAAG,KAAK,EAAI,IAAE,CAAC;AACf,OAAG,WAAW,EAAI,CAAA,gBAAe,OAAO,AAAC,EAAC,CAAC;EAC7C;AAAA,AAEA,KAAG,CAAE,QAAO,AAAgB;AAzB9B,SAAK,cAAc,UAyBF,eAAa,CAzBQ,CAAA;AA0BlC,OAAI,SAAQ,AAAC,CAAC,QAAO,SAAS,CAAC,CAAG;AA1BtC,WAAO,CAAA,MAAK,WAAW,AAAC,CAAC,CA2BZ,cAAa,QAAQ,AAAC,CAAC,GAAE,eAAe,AAAC,CAAC,QAAO,SAAS,CAAC,CAAC,CA3B9B,CAyBV,QAAM,CAzBwB,CAAA;IA4B3D;AAAA,AACI,MAAA,CAAA,GAAE,EAAI,CAAA,QAAO,OAAO,CAAC;AACzB,OAAI,SAAQ,AAAC,CAAC,GAAE,CAAC,CAAG;AAClB,AAAI,QAAA,CAAA,OAAM,EAAI,CAAA,gBAAe,IAAI,AAAC,CAAC,IAAG,WAAW,CAAG,IAAE,CAAC,CAAC;AAExD,SAAI,OAAM,AAAC,CAAC,OAAM,CAAC,CAAG;AACpB,cAAM,EAAI,CAAA,IAAG,KAAK,IAAI,AAAC,CAAC,GAAE,CAAC,KAAK,AAAC,CAAC,SAAU,IAAG,CAAG;AAChD,AAAI,YAAA,CAAA,QAAO,EAAI,CAAA,GAAE,eAAe,AAAC,CAAC,IAAG,CAAC,CAAC;AACvC,eAAO,SAAO,CAAC;QACjB,CAAC,CAAC;AACF,uBAAe,IAAI,AAAC,CAAC,IAAG,WAAW,CAAG,IAAE,CAAG,QAAM,CAAC,CAAC;MACrD;AAAA,AAvCN,WAAO,CAAA,MAAK,WAAW,AAAC,CAAC,CAyCZ,OAAM,CAzCwB,CAyBV,QAAM,CAzBwB,CAAA;IA0C3D;AAAA,AAEA,QAAM,IAAI,cAAY,AAAC,CAAC,0DAAyD,CAAC,CAAC;EACrF;AACF;AAAA,AA9CA,KAAK,eAAe,AAAC,+BACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,cAczB,WAAS,AAAC,EAAC,EAdqC;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,8BACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAmBP,GAAE,IAAgB,WAAU,GAnBE;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,6CACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAwBT,cAAa,GAxBmB;EAAC,CAAC,CAAC,CAAC;AA8CrD","file":"angular2/src/render/dom/compiler/template_loader.es6","sourcesContent":["import {Injectable} from 'angular2/di';\nimport {isBlank, isPresent, BaseException, stringify} from 'angular2/src/facade/lang';\nimport {Map, MapWrapper, StringMapWrapper, StringMap} from 'angular2/src/facade/collection';\nimport {PromiseWrapper, Promise} from 'angular2/src/facade/async';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport {XHR} from 'angular2/src/services/xhr';\n\nimport {ViewDefinition} from '../../api';\nimport {UrlResolver} from 'angular2/src/services/url_resolver';\n\n/**\n * Strategy to load component templates.\n * TODO: Make public API once we are more confident in this approach.\n */\n@Injectable()\nexport class TemplateLoader {\n _xhr: XHR;\n _htmlCache: StringMap;\n\n constructor(xhr: XHR, urlResolver: UrlResolver) {\n this._xhr = xhr;\n this._htmlCache = StringMapWrapper.create();\n }\n\n load(template: ViewDefinition):Promise {\n if (isPresent(template.template)) {\n return PromiseWrapper.resolve(DOM.createTemplate(template.template));\n }\n var url = template.absUrl;\n if (isPresent(url)) {\n var promise = StringMapWrapper.get(this._htmlCache, url);\n\n if (isBlank(promise)) {\n promise = this._xhr.get(url).then(function (html) {\n var template = DOM.createTemplate(html);\n return template;\n });\n StringMapWrapper.set(this._htmlCache, url, promise);\n }\n\n return promise;\n }\n\n throw new BaseException('View should have either the url or template property set');\n }\n}\n"]}