platform-browser-dynamic.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. /**
  2. * @license Angular v8.1.0
  3. * (c) 2010-2019 Google LLC. https://angular.io/
  4. * License: MIT
  5. */
  6. import { Identifiers, getUrlScheme, syntaxError, JitCompiler, ProviderMeta, CompileReflector, ResourceLoader, JitSummaryResolver, SummaryResolver, Lexer, Parser, HtmlParser, I18NHtmlParser, CompilerConfig, TemplateParser, ElementSchemaRegistry, JitEvaluator, DirectiveNormalizer, UrlResolver, CompileMetadataResolver, NgModuleResolver, DirectiveResolver, PipeResolver, StaticSymbolCache, StyleCompiler, ViewCompiler, NgModuleCompiler, DomElementSchemaRegistry } from '@angular/compiler';
  7. import { ANALYZE_FOR_ENTRY_COMPONENTS, ElementRef, NgModuleRef, ViewContainerRef, ChangeDetectorRef, Renderer2, QueryList, TemplateRef, ɵCodegenComponentFactoryResolver, ComponentFactoryResolver, ComponentFactory, ComponentRef, NgModuleFactory, ɵcmf, ɵmod, ɵmpd, ɵregisterModuleFactory, Injector, ViewEncapsulation, ChangeDetectionStrategy, SecurityContext, LOCALE_ID, TRANSLATIONS_FORMAT, ɵinlineInterpolate, ɵinterpolate, ɵEMPTY_ARRAY, ɵEMPTY_MAP, Renderer, ɵvid, ɵeld, ɵand, ɵted, ɵdid, ɵprd, ɵqud, ɵpad, ɵpod, ɵppd, ɵpid, ɵnov, ɵncd, ɵunv, ɵcrt, ɵccf, ɵReflectionCapabilities, ɵstringify, InjectionToken, Compiler, ɵConsole, MissingTranslationStrategy, Optional, Inject, TRANSLATIONS, PACKAGE_ROOT_URL, isDevMode, createPlatformFactory, platformCore, COMPILER_OPTIONS, CompilerFactory, Injectable, PLATFORM_ID, ɵglobal, Version } from '@angular/core';
  8. import { ɵPLATFORM_BROWSER_ID } from '@angular/common';
  9. import { ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS } from '@angular/platform-browser';
  10. /**
  11. * @fileoverview added by tsickle
  12. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  13. */
  14. /** @type {?} */
  15. const MODULE_SUFFIX = '';
  16. /** @type {?} */
  17. const builtinExternalReferences = createBuiltinExternalReferencesMap();
  18. class JitReflector {
  19. constructor() {
  20. this.reflectionCapabilities = new ɵReflectionCapabilities();
  21. }
  22. /**
  23. * @param {?} type
  24. * @param {?} cmpMetadata
  25. * @return {?}
  26. */
  27. componentModuleUrl(type, cmpMetadata) {
  28. /** @type {?} */
  29. const moduleId = cmpMetadata.moduleId;
  30. if (typeof moduleId === 'string') {
  31. /** @type {?} */
  32. const scheme = getUrlScheme(moduleId);
  33. return scheme ? moduleId : `package:${moduleId}${MODULE_SUFFIX}`;
  34. }
  35. else if (moduleId !== null && moduleId !== void 0) {
  36. throw syntaxError(`moduleId should be a string in "${ɵstringify(type)}". See https://goo.gl/wIDDiL for more information.\n` +
  37. `If you're using Webpack you should inline the template and the styles, see https://goo.gl/X2J8zc.`);
  38. }
  39. return `./${ɵstringify(type)}`;
  40. }
  41. /**
  42. * @param {?} typeOrFunc
  43. * @return {?}
  44. */
  45. parameters(typeOrFunc) {
  46. return this.reflectionCapabilities.parameters(typeOrFunc);
  47. }
  48. /**
  49. * @param {?} typeOrFunc
  50. * @return {?}
  51. */
  52. tryAnnotations(typeOrFunc) { return this.annotations(typeOrFunc); }
  53. /**
  54. * @param {?} typeOrFunc
  55. * @return {?}
  56. */
  57. annotations(typeOrFunc) {
  58. return this.reflectionCapabilities.annotations(typeOrFunc);
  59. }
  60. /**
  61. * @param {?} typeOrFunc
  62. * @return {?}
  63. */
  64. shallowAnnotations(typeOrFunc) {
  65. throw new Error('Not supported in JIT mode');
  66. }
  67. /**
  68. * @param {?} typeOrFunc
  69. * @return {?}
  70. */
  71. propMetadata(typeOrFunc) {
  72. return this.reflectionCapabilities.propMetadata(typeOrFunc);
  73. }
  74. /**
  75. * @param {?} type
  76. * @param {?} lcProperty
  77. * @return {?}
  78. */
  79. hasLifecycleHook(type, lcProperty) {
  80. return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty);
  81. }
  82. /**
  83. * @param {?} type
  84. * @return {?}
  85. */
  86. guards(type) { return this.reflectionCapabilities.guards(type); }
  87. /**
  88. * @param {?} ref
  89. * @return {?}
  90. */
  91. resolveExternalReference(ref) {
  92. return builtinExternalReferences.get(ref) || ref.runtime;
  93. }
  94. }
  95. /**
  96. * @return {?}
  97. */
  98. function createBuiltinExternalReferencesMap() {
  99. /** @type {?} */
  100. const map = new Map();
  101. map.set(Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS, ANALYZE_FOR_ENTRY_COMPONENTS);
  102. map.set(Identifiers.ElementRef, ElementRef);
  103. map.set(Identifiers.NgModuleRef, NgModuleRef);
  104. map.set(Identifiers.ViewContainerRef, ViewContainerRef);
  105. map.set(Identifiers.ChangeDetectorRef, ChangeDetectorRef);
  106. map.set(Identifiers.Renderer2, Renderer2);
  107. map.set(Identifiers.QueryList, QueryList);
  108. map.set(Identifiers.TemplateRef, TemplateRef);
  109. map.set(Identifiers.CodegenComponentFactoryResolver, ɵCodegenComponentFactoryResolver);
  110. map.set(Identifiers.ComponentFactoryResolver, ComponentFactoryResolver);
  111. map.set(Identifiers.ComponentFactory, ComponentFactory);
  112. map.set(Identifiers.ComponentRef, ComponentRef);
  113. map.set(Identifiers.NgModuleFactory, NgModuleFactory);
  114. map.set(Identifiers.createModuleFactory, ɵcmf);
  115. map.set(Identifiers.moduleDef, ɵmod);
  116. map.set(Identifiers.moduleProviderDef, ɵmpd);
  117. map.set(Identifiers.RegisterModuleFactoryFn, ɵregisterModuleFactory);
  118. map.set(Identifiers.Injector, Injector);
  119. map.set(Identifiers.ViewEncapsulation, ViewEncapsulation);
  120. map.set(Identifiers.ChangeDetectionStrategy, ChangeDetectionStrategy);
  121. map.set(Identifiers.SecurityContext, SecurityContext);
  122. map.set(Identifiers.LOCALE_ID, LOCALE_ID);
  123. map.set(Identifiers.TRANSLATIONS_FORMAT, TRANSLATIONS_FORMAT);
  124. map.set(Identifiers.inlineInterpolate, ɵinlineInterpolate);
  125. map.set(Identifiers.interpolate, ɵinterpolate);
  126. map.set(Identifiers.EMPTY_ARRAY, ɵEMPTY_ARRAY);
  127. map.set(Identifiers.EMPTY_MAP, ɵEMPTY_MAP);
  128. map.set(Identifiers.Renderer, Renderer);
  129. map.set(Identifiers.viewDef, ɵvid);
  130. map.set(Identifiers.elementDef, ɵeld);
  131. map.set(Identifiers.anchorDef, ɵand);
  132. map.set(Identifiers.textDef, ɵted);
  133. map.set(Identifiers.directiveDef, ɵdid);
  134. map.set(Identifiers.providerDef, ɵprd);
  135. map.set(Identifiers.queryDef, ɵqud);
  136. map.set(Identifiers.pureArrayDef, ɵpad);
  137. map.set(Identifiers.pureObjectDef, ɵpod);
  138. map.set(Identifiers.purePipeDef, ɵppd);
  139. map.set(Identifiers.pipeDef, ɵpid);
  140. map.set(Identifiers.nodeValue, ɵnov);
  141. map.set(Identifiers.ngContentDef, ɵncd);
  142. map.set(Identifiers.unwrapValue, ɵunv);
  143. map.set(Identifiers.createRendererType2, ɵcrt);
  144. map.set(Identifiers.createComponentFactory, ɵccf);
  145. return map;
  146. }
  147. /**
  148. * @fileoverview added by tsickle
  149. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  150. */
  151. /** @type {?} */
  152. const ERROR_COLLECTOR_TOKEN = new InjectionToken('ErrorCollector');
  153. /**
  154. * A default provider for {\@link PACKAGE_ROOT_URL} that maps to '/'.
  155. * @type {?}
  156. */
  157. const DEFAULT_PACKAGE_URL_PROVIDER = {
  158. provide: PACKAGE_ROOT_URL,
  159. useValue: '/'
  160. };
  161. /** @type {?} */
  162. const _NO_RESOURCE_LOADER = {
  163. /**
  164. * @param {?} url
  165. * @return {?}
  166. */
  167. get(url) {
  168. throw new Error(`No ResourceLoader implementation has been provided. Can't read the url "${url}"`);
  169. }
  170. };
  171. /** @type {?} */
  172. const baseHtmlParser = new InjectionToken('HtmlParser');
  173. class CompilerImpl {
  174. /**
  175. * @param {?} injector
  176. * @param {?} _metadataResolver
  177. * @param {?} templateParser
  178. * @param {?} styleCompiler
  179. * @param {?} viewCompiler
  180. * @param {?} ngModuleCompiler
  181. * @param {?} summaryResolver
  182. * @param {?} compileReflector
  183. * @param {?} jitEvaluator
  184. * @param {?} compilerConfig
  185. * @param {?} console
  186. */
  187. constructor(injector, _metadataResolver, templateParser, styleCompiler, viewCompiler, ngModuleCompiler, summaryResolver, compileReflector, jitEvaluator, compilerConfig, console) {
  188. this._metadataResolver = _metadataResolver;
  189. this._delegate = new JitCompiler(_metadataResolver, templateParser, styleCompiler, viewCompiler, ngModuleCompiler, summaryResolver, compileReflector, jitEvaluator, compilerConfig, console, this.getExtraNgModuleProviders.bind(this));
  190. this.injector = injector;
  191. }
  192. /**
  193. * @private
  194. * @return {?}
  195. */
  196. getExtraNgModuleProviders() {
  197. return [this._metadataResolver.getProviderMetadata(new ProviderMeta(Compiler, { useValue: this }))];
  198. }
  199. /**
  200. * @template T
  201. * @param {?} moduleType
  202. * @return {?}
  203. */
  204. compileModuleSync(moduleType) {
  205. return (/** @type {?} */ (this._delegate.compileModuleSync(moduleType)));
  206. }
  207. /**
  208. * @template T
  209. * @param {?} moduleType
  210. * @return {?}
  211. */
  212. compileModuleAsync(moduleType) {
  213. return (/** @type {?} */ (this._delegate.compileModuleAsync(moduleType)));
  214. }
  215. /**
  216. * @template T
  217. * @param {?} moduleType
  218. * @return {?}
  219. */
  220. compileModuleAndAllComponentsSync(moduleType) {
  221. /** @type {?} */
  222. const result = this._delegate.compileModuleAndAllComponentsSync(moduleType);
  223. return {
  224. ngModuleFactory: (/** @type {?} */ (result.ngModuleFactory)),
  225. componentFactories: (/** @type {?} */ (result.componentFactories)),
  226. };
  227. }
  228. /**
  229. * @template T
  230. * @param {?} moduleType
  231. * @return {?}
  232. */
  233. compileModuleAndAllComponentsAsync(moduleType) {
  234. return this._delegate.compileModuleAndAllComponentsAsync(moduleType)
  235. .then((/**
  236. * @param {?} result
  237. * @return {?}
  238. */
  239. (result) => ({
  240. ngModuleFactory: (/** @type {?} */ (result.ngModuleFactory)),
  241. componentFactories: (/** @type {?} */ (result.componentFactories)),
  242. })));
  243. }
  244. /**
  245. * @param {?} summaries
  246. * @return {?}
  247. */
  248. loadAotSummaries(summaries) { this._delegate.loadAotSummaries(summaries); }
  249. /**
  250. * @param {?} ref
  251. * @return {?}
  252. */
  253. hasAotSummary(ref) { return this._delegate.hasAotSummary(ref); }
  254. /**
  255. * @template T
  256. * @param {?} component
  257. * @return {?}
  258. */
  259. getComponentFactory(component) {
  260. return (/** @type {?} */ (this._delegate.getComponentFactory(component)));
  261. }
  262. /**
  263. * @return {?}
  264. */
  265. clearCache() { this._delegate.clearCache(); }
  266. /**
  267. * @param {?} type
  268. * @return {?}
  269. */
  270. clearCacheFor(type) { this._delegate.clearCacheFor(type); }
  271. /**
  272. * @param {?} moduleType
  273. * @return {?}
  274. */
  275. getModuleId(moduleType) {
  276. /** @type {?} */
  277. const meta = this._metadataResolver.getNgModuleMetadata(moduleType);
  278. return meta && meta.id || undefined;
  279. }
  280. }
  281. /**
  282. * A set of providers that provide `JitCompiler` and its dependencies to use for
  283. * template compilation.
  284. * @type {?}
  285. */
  286. const COMPILER_PROVIDERS = (/** @type {?} */ ([
  287. { provide: CompileReflector, useValue: new JitReflector() },
  288. { provide: ResourceLoader, useValue: _NO_RESOURCE_LOADER },
  289. { provide: JitSummaryResolver, deps: [] },
  290. { provide: SummaryResolver, useExisting: JitSummaryResolver },
  291. { provide: ɵConsole, deps: [] },
  292. { provide: Lexer, deps: [] },
  293. { provide: Parser, deps: [Lexer] },
  294. {
  295. provide: baseHtmlParser,
  296. useClass: HtmlParser,
  297. deps: [],
  298. },
  299. {
  300. provide: I18NHtmlParser,
  301. useFactory: (/**
  302. * @param {?} parser
  303. * @param {?} translations
  304. * @param {?} format
  305. * @param {?} config
  306. * @param {?} console
  307. * @return {?}
  308. */
  309. (parser, translations, format, config, console) => {
  310. translations = translations || '';
  311. /** @type {?} */
  312. const missingTranslation = translations ? (/** @type {?} */ (config.missingTranslation)) : MissingTranslationStrategy.Ignore;
  313. return new I18NHtmlParser(parser, translations, format, missingTranslation, console);
  314. }),
  315. deps: [
  316. baseHtmlParser,
  317. [new Optional(), new Inject(TRANSLATIONS)],
  318. [new Optional(), new Inject(TRANSLATIONS_FORMAT)],
  319. [CompilerConfig],
  320. [ɵConsole],
  321. ]
  322. },
  323. {
  324. provide: HtmlParser,
  325. useExisting: I18NHtmlParser,
  326. },
  327. {
  328. provide: TemplateParser, deps: [CompilerConfig, CompileReflector,
  329. Parser, ElementSchemaRegistry,
  330. I18NHtmlParser, ɵConsole]
  331. },
  332. { provide: JitEvaluator, useClass: JitEvaluator, deps: [] },
  333. { provide: DirectiveNormalizer, deps: [ResourceLoader, UrlResolver, HtmlParser, CompilerConfig] },
  334. { provide: CompileMetadataResolver, deps: [CompilerConfig, HtmlParser, NgModuleResolver,
  335. DirectiveResolver, PipeResolver,
  336. SummaryResolver,
  337. ElementSchemaRegistry,
  338. DirectiveNormalizer, ɵConsole,
  339. [Optional, StaticSymbolCache],
  340. CompileReflector,
  341. [Optional, ERROR_COLLECTOR_TOKEN]] },
  342. DEFAULT_PACKAGE_URL_PROVIDER,
  343. { provide: StyleCompiler, deps: [UrlResolver] },
  344. { provide: ViewCompiler, deps: [CompileReflector] },
  345. { provide: NgModuleCompiler, deps: [CompileReflector] },
  346. { provide: CompilerConfig, useValue: new CompilerConfig() },
  347. { provide: Compiler, useClass: CompilerImpl, deps: [Injector, CompileMetadataResolver,
  348. TemplateParser, StyleCompiler,
  349. ViewCompiler, NgModuleCompiler,
  350. SummaryResolver, CompileReflector, JitEvaluator, CompilerConfig,
  351. ɵConsole] },
  352. { provide: DomElementSchemaRegistry, deps: [] },
  353. { provide: ElementSchemaRegistry, useExisting: DomElementSchemaRegistry },
  354. { provide: UrlResolver, deps: [PACKAGE_ROOT_URL] },
  355. { provide: DirectiveResolver, deps: [CompileReflector] },
  356. { provide: PipeResolver, deps: [CompileReflector] },
  357. { provide: NgModuleResolver, deps: [CompileReflector] },
  358. ]));
  359. /**
  360. * \@publicApi
  361. */
  362. class JitCompilerFactory {
  363. /* @internal */
  364. /**
  365. * @param {?} defaultOptions
  366. */
  367. constructor(defaultOptions) {
  368. /** @type {?} */
  369. const compilerOptions = {
  370. useJit: true,
  371. defaultEncapsulation: ViewEncapsulation.Emulated,
  372. missingTranslation: MissingTranslationStrategy.Warning,
  373. };
  374. this._defaultOptions = [compilerOptions, ...defaultOptions];
  375. }
  376. /**
  377. * @param {?=} options
  378. * @return {?}
  379. */
  380. createCompiler(options = []) {
  381. /** @type {?} */
  382. const opts = _mergeOptions(this._defaultOptions.concat(options));
  383. /** @type {?} */
  384. const injector = Injector.create([
  385. COMPILER_PROVIDERS, {
  386. provide: CompilerConfig,
  387. useFactory: (/**
  388. * @return {?}
  389. */
  390. () => {
  391. return new CompilerConfig({
  392. // let explicit values from the compiler options overwrite options
  393. // from the app providers
  394. useJit: opts.useJit,
  395. jitDevMode: isDevMode(),
  396. // let explicit values from the compiler options overwrite options
  397. // from the app providers
  398. defaultEncapsulation: opts.defaultEncapsulation,
  399. missingTranslation: opts.missingTranslation,
  400. preserveWhitespaces: opts.preserveWhitespaces,
  401. });
  402. }),
  403. deps: []
  404. },
  405. (/** @type {?} */ (opts.providers))
  406. ]);
  407. return injector.get(Compiler);
  408. }
  409. }
  410. /**
  411. * @param {?} optionsArr
  412. * @return {?}
  413. */
  414. function _mergeOptions(optionsArr) {
  415. return {
  416. useJit: _lastDefined(optionsArr.map((/**
  417. * @param {?} options
  418. * @return {?}
  419. */
  420. options => options.useJit))),
  421. defaultEncapsulation: _lastDefined(optionsArr.map((/**
  422. * @param {?} options
  423. * @return {?}
  424. */
  425. options => options.defaultEncapsulation))),
  426. providers: _mergeArrays(optionsArr.map((/**
  427. * @param {?} options
  428. * @return {?}
  429. */
  430. options => (/** @type {?} */ (options.providers))))),
  431. missingTranslation: _lastDefined(optionsArr.map((/**
  432. * @param {?} options
  433. * @return {?}
  434. */
  435. options => options.missingTranslation))),
  436. preserveWhitespaces: _lastDefined(optionsArr.map((/**
  437. * @param {?} options
  438. * @return {?}
  439. */
  440. options => options.preserveWhitespaces))),
  441. };
  442. }
  443. /**
  444. * @template T
  445. * @param {?} args
  446. * @return {?}
  447. */
  448. function _lastDefined(args) {
  449. for (let i = args.length - 1; i >= 0; i--) {
  450. if (args[i] !== undefined) {
  451. return args[i];
  452. }
  453. }
  454. return undefined;
  455. }
  456. /**
  457. * @param {?} parts
  458. * @return {?}
  459. */
  460. function _mergeArrays(parts) {
  461. /** @type {?} */
  462. const result = [];
  463. parts.forEach((/**
  464. * @param {?} part
  465. * @return {?}
  466. */
  467. (part) => part && result.push(...part)));
  468. return result;
  469. }
  470. /**
  471. * @fileoverview added by tsickle
  472. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  473. */
  474. const ɵ0 = {};
  475. /**
  476. * A platform that included corePlatform and the compiler.
  477. *
  478. * \@publicApi
  479. * @type {?}
  480. */
  481. const platformCoreDynamic = createPlatformFactory(platformCore, 'coreDynamic', [
  482. { provide: COMPILER_OPTIONS, useValue: ɵ0, multi: true },
  483. { provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS] },
  484. ]);
  485. /**
  486. * @fileoverview added by tsickle
  487. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  488. */
  489. class ResourceLoaderImpl extends ResourceLoader {
  490. /**
  491. * @param {?} url
  492. * @return {?}
  493. */
  494. get(url) {
  495. /** @type {?} */
  496. let resolve;
  497. /** @type {?} */
  498. let reject;
  499. /** @type {?} */
  500. const promise = new Promise((/**
  501. * @param {?} res
  502. * @param {?} rej
  503. * @return {?}
  504. */
  505. (res, rej) => {
  506. resolve = res;
  507. reject = rej;
  508. }));
  509. /** @type {?} */
  510. const xhr = new XMLHttpRequest();
  511. xhr.open('GET', url, true);
  512. xhr.responseType = 'text';
  513. xhr.onload = (/**
  514. * @return {?}
  515. */
  516. function () {
  517. // responseText is the old-school way of retrieving response (supported by IE8 & 9)
  518. // response/responseType properties were introduced in ResourceLoader Level2 spec (supported
  519. // by IE10)
  520. /** @type {?} */
  521. const response = xhr.response || xhr.responseText;
  522. // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)
  523. /** @type {?} */
  524. let status = xhr.status === 1223 ? 204 : xhr.status;
  525. // fix status code when it is 0 (0 status is undocumented).
  526. // Occurs when accessing file resources or on Android 4.1 stock browser
  527. // while retrieving files from application cache.
  528. if (status === 0) {
  529. status = response ? 200 : 0;
  530. }
  531. if (200 <= status && status <= 300) {
  532. resolve(response);
  533. }
  534. else {
  535. reject(`Failed to load ${url}`);
  536. }
  537. });
  538. xhr.onerror = (/**
  539. * @return {?}
  540. */
  541. function () { reject(`Failed to load ${url}`); });
  542. xhr.send();
  543. return promise;
  544. }
  545. }
  546. ResourceLoaderImpl.decorators = [
  547. { type: Injectable }
  548. ];
  549. /**
  550. * @fileoverview added by tsickle
  551. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  552. */
  553. const ɵ0$1 = { providers: [{ provide: ResourceLoader, useClass: ResourceLoaderImpl, deps: [] }] }, ɵ1 = ɵPLATFORM_BROWSER_ID;
  554. /**
  555. * \@publicApi
  556. * @type {?}
  557. */
  558. const INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS = [
  559. ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS,
  560. {
  561. provide: COMPILER_OPTIONS,
  562. useValue: ɵ0$1,
  563. multi: true
  564. },
  565. { provide: PLATFORM_ID, useValue: ɵ1 },
  566. ];
  567. /**
  568. * @fileoverview added by tsickle
  569. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  570. */
  571. /**
  572. * An implementation of ResourceLoader that uses a template cache to avoid doing an actual
  573. * ResourceLoader.
  574. *
  575. * The template cache needs to be built and loaded into window.$templateCache
  576. * via a separate mechanism.
  577. *
  578. * \@publicApi
  579. */
  580. class CachedResourceLoader extends ResourceLoader {
  581. constructor() {
  582. super();
  583. this._cache = ((/** @type {?} */ (ɵglobal))).$templateCache;
  584. if (this._cache == null) {
  585. throw new Error('CachedResourceLoader: Template cache was not found in $templateCache.');
  586. }
  587. }
  588. /**
  589. * @param {?} url
  590. * @return {?}
  591. */
  592. get(url) {
  593. if (this._cache.hasOwnProperty(url)) {
  594. return Promise.resolve(this._cache[url]);
  595. }
  596. else {
  597. return (/** @type {?} */ (Promise.reject('CachedResourceLoader: Did not find cached template for ' + url)));
  598. }
  599. }
  600. }
  601. /**
  602. * @fileoverview added by tsickle
  603. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  604. */
  605. /**
  606. * @fileoverview added by tsickle
  607. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  608. */
  609. /**
  610. * \@publicApi
  611. * @type {?}
  612. */
  613. const VERSION = new Version('8.1.0');
  614. /**
  615. * @fileoverview added by tsickle
  616. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  617. */
  618. /**
  619. * \@publicApi
  620. * @type {?}
  621. */
  622. const RESOURCE_CACHE_PROVIDER = [{ provide: ResourceLoader, useClass: CachedResourceLoader, deps: [] }];
  623. /**
  624. * \@publicApi
  625. * @type {?}
  626. */
  627. const platformBrowserDynamic = createPlatformFactory(platformCoreDynamic, 'browserDynamic', INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
  628. /**
  629. * @fileoverview added by tsickle
  630. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  631. */
  632. /**
  633. * @fileoverview added by tsickle
  634. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  635. */
  636. /**
  637. * Generated bundle index. Do not edit.
  638. */
  639. export { CachedResourceLoader as ɵangular_packages_platform_browser_dynamic_platform_browser_dynamic_a, VERSION, JitCompilerFactory, RESOURCE_CACHE_PROVIDER, platformBrowserDynamic, CompilerImpl as ɵCompilerImpl, platformCoreDynamic as ɵplatformCoreDynamic, INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, ResourceLoaderImpl as ɵResourceLoaderImpl };
  640. //# sourceMappingURL=platform-browser-dynamic.js.map