text: /**
   * @license Angular v4.4.6
   * (c) 2010-2017 Google, Inc. https://angular.io/
   * License: MIT
   */
  (function (global, factory) {
  	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/compiler'), require('@angular/core'), require('@angular/common'), require('@angular/platform-browser')) :
  	typeof define === 'function' && define.amd ? define(['exports', '@angular/compiler', '@angular/core', '@angular/common', '@angular/platform-browser'], factory) :
  	(factory((global.ng = global.ng || {}, global.ng.platformBrowserDynamic = global.ng.platformBrowserDynamic || {}),global.ng.compiler,global.ng.core,global.ng.common,global.ng.platformBrowser));
  }(this, (function (exports,_angular_compiler,_angular_core,_angular_common,_angular_platformBrowser) { 'use strict';
  
  /*! *****************************************************************************
  Copyright (c) Microsoft Corporation. All rights reserved.
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
  this file except in compliance with the License. You may obtain a copy of the
  License at http://www.apache.org/licenses/LICENSE-2.0
  
  THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
  WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
  MERCHANTABLITY OR NON-INFRINGEMENT.
  
  See the Apache Version 2.0 License for specific language governing permissions
  and limitations under the License.
  ***************************************************************************** */
  /* global Reflect, Promise */
  
  var extendStatics = Object.setPrototypeOf ||
      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
      function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  
  function __extends(d, b) {
      extendStatics(d, b);
      function __() { this.constructor = d; }
      d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  }
  
  /**
   * @license Angular v4.4.6
   * (c) 2010-2017 Google, Inc. https://angular.io/
   * License: MIT
   */
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  var ResourceLoaderImpl = (function (_super) {
      __extends(ResourceLoaderImpl, _super);
      function ResourceLoaderImpl() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      ResourceLoaderImpl.prototype.get = function (url) {
          var resolve;
          var reject;
          var promise = new Promise(function (res, rej) {
              resolve = res;
              reject = rej;
          });
          var xhr = new XMLHttpRequest();
          xhr.open('GET', url, true);
          xhr.responseType = 'text';
          xhr.onload = function () {
              // responseText is the old-school way of retrieving response (supported by IE8 & 9)
              // response/responseType properties were introduced in ResourceLoader Level2 spec (supported
              // by IE10)
              var response = xhr.response || xhr.responseText;
              // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)
              var status = xhr.status === 1223 ? 204 : xhr.status;
              // fix status code when it is 0 (0 status is undocumented).
              // Occurs when accessing file resources or on Android 4.1 stock browser
              // while retrieving files from application cache.
              if (status === 0) {
                  status = response ? 200 : 0;
              }
              if (200 <= status && status <= 300) {
                  resolve(response);
              }
              else {
                  reject("Failed to load " + url);
              }
          };
          xhr.onerror = function () { reject("Failed to load " + url); };
          xhr.send();
          return promise;
      };
      return ResourceLoaderImpl;
  }(_angular_compiler.ResourceLoader));
  ResourceLoaderImpl.decorators = [
      { type: _angular_core.Injectable },
  ];
  /** @nocollapse */
  ResourceLoaderImpl.ctorParameters = function () { return []; };
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  var INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS = [
      _angular_platformBrowser.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS,
      {
          provide: _angular_core.COMPILER_OPTIONS,
          useValue: { providers: [{ provide: _angular_compiler.ResourceLoader, useClass: ResourceLoaderImpl }] },
          multi: true
      },
      { provide: _angular_core.PLATFORM_ID, useValue: _angular_common.ɵPLATFORM_BROWSER_ID },
  ];
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  /**
   * An implementation of ResourceLoader that uses a template cache to avoid doing an actual
   * ResourceLoader.
   *
   * The template cache needs to be built and loaded into window.$templateCache
   * via a separate mechanism.
   */
  var CachedResourceLoader = (function (_super) {
      __extends(CachedResourceLoader, _super);
      function CachedResourceLoader() {
          var _this = _super.call(this) || this;
          _this._cache = _angular_core.ɵglobal.$templateCache;
          if (_this._cache == null) {
              throw new Error('CachedResourceLoader: Template cache was not found in $templateCache.');
          }
          return _this;
      }
      CachedResourceLoader.prototype.get = function (url) {
          if (this._cache.hasOwnProperty(url)) {
              return Promise.resolve(this._cache[url]);
          }
          else {
              return Promise.reject('CachedResourceLoader: Did not find cached template for ' + url);
          }
      };
      return CachedResourceLoader;
  }(_angular_compiler.ResourceLoader));
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  /**
   * @module
   * @description
   * Entry point for all public APIs of the common package.
   */
  /**
   * @stable
   */
  var VERSION = new _angular_core.Version('4.4.6');
  /**
   * @license
   * Copyright Google Inc. All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  /**
   * @experimental
   */
  var RESOURCE_CACHE_PROVIDER = [{ provide: _angular_compiler.ResourceLoader, useClass: CachedResourceLoader }];
  /**
   * @stable
   */
  var platformBrowserDynamic = _angular_core.createPlatformFactory(_angular_compiler.platformCoreDynamic, 'browserDynamic', INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
  
  exports.RESOURCE_CACHE_PROVIDER = RESOURCE_CACHE_PROVIDER;
  exports.platformBrowserDynamic = platformBrowserDynamic;
  exports.VERSION = VERSION;
  exports.ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS = INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS;
  exports.ɵResourceLoaderImpl = ResourceLoaderImpl;
  
  Object.defineProperty(exports, '__esModule', { value: true });
  
  })));
  //# sourceMappingURL=platform-browser-dynamic.umd.js.map
  