@angular/language-service 6.1.6 → 6.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v6.1.6
2
+ * @license Angular v6.1.10
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -61,6 +61,21 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
61
61
  return __assign.apply(this, arguments);
62
62
  };
63
63
 
64
+ function __decorate(decorators, target, key, desc) {
65
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
67
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
68
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
69
+ }
70
+
71
+ function __param(paramIndex, decorator) {
72
+ return function (target, key) { decorator(target, key, paramIndex); }
73
+ }
74
+
75
+ function __metadata(metadataKey, metadataValue) {
76
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
77
+ }
78
+
64
79
  function __values(o) {
65
80
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
66
81
  if (m) return m.call(o);
@@ -445,61 +460,66 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
445
460
  };
446
461
  return HtmlTagDefinition;
447
462
  }());
463
+ var _DEFAULT_TAG_DEFINITION;
448
464
  // see http://www.w3.org/TR/html51/syntax.html#optional-tags
449
465
  // This implementation does not fully conform to the HTML5 spec.
450
- var TAG_DEFINITIONS = {
451
- 'base': new HtmlTagDefinition({ isVoid: true }),
452
- 'meta': new HtmlTagDefinition({ isVoid: true }),
453
- 'area': new HtmlTagDefinition({ isVoid: true }),
454
- 'embed': new HtmlTagDefinition({ isVoid: true }),
455
- 'link': new HtmlTagDefinition({ isVoid: true }),
456
- 'img': new HtmlTagDefinition({ isVoid: true }),
457
- 'input': new HtmlTagDefinition({ isVoid: true }),
458
- 'param': new HtmlTagDefinition({ isVoid: true }),
459
- 'hr': new HtmlTagDefinition({ isVoid: true }),
460
- 'br': new HtmlTagDefinition({ isVoid: true }),
461
- 'source': new HtmlTagDefinition({ isVoid: true }),
462
- 'track': new HtmlTagDefinition({ isVoid: true }),
463
- 'wbr': new HtmlTagDefinition({ isVoid: true }),
464
- 'p': new HtmlTagDefinition({
465
- closedByChildren: [
466
- 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset', 'footer', 'form',
467
- 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr',
468
- 'main', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'
469
- ],
470
- closedByParent: true
471
- }),
472
- 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),
473
- 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),
474
- 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),
475
- 'tr': new HtmlTagDefinition({
476
- closedByChildren: ['tr'],
477
- requiredParents: ['tbody', 'tfoot', 'thead'],
478
- closedByParent: true
479
- }),
480
- 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
481
- 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
482
- 'col': new HtmlTagDefinition({ requiredParents: ['colgroup'], isVoid: true }),
483
- 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),
484
- 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),
485
- 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),
486
- 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),
487
- 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),
488
- 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
489
- 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
490
- 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),
491
- 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
492
- 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),
493
- 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),
494
- 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),
495
- 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),
496
- 'style': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),
497
- 'script': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),
498
- 'title': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT }),
499
- 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),
500
- };
501
- var _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();
466
+ var TAG_DEFINITIONS;
502
467
  function getHtmlTagDefinition(tagName) {
468
+ if (!TAG_DEFINITIONS) {
469
+ _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();
470
+ TAG_DEFINITIONS = {
471
+ 'base': new HtmlTagDefinition({ isVoid: true }),
472
+ 'meta': new HtmlTagDefinition({ isVoid: true }),
473
+ 'area': new HtmlTagDefinition({ isVoid: true }),
474
+ 'embed': new HtmlTagDefinition({ isVoid: true }),
475
+ 'link': new HtmlTagDefinition({ isVoid: true }),
476
+ 'img': new HtmlTagDefinition({ isVoid: true }),
477
+ 'input': new HtmlTagDefinition({ isVoid: true }),
478
+ 'param': new HtmlTagDefinition({ isVoid: true }),
479
+ 'hr': new HtmlTagDefinition({ isVoid: true }),
480
+ 'br': new HtmlTagDefinition({ isVoid: true }),
481
+ 'source': new HtmlTagDefinition({ isVoid: true }),
482
+ 'track': new HtmlTagDefinition({ isVoid: true }),
483
+ 'wbr': new HtmlTagDefinition({ isVoid: true }),
484
+ 'p': new HtmlTagDefinition({
485
+ closedByChildren: [
486
+ 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset',
487
+ 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5',
488
+ 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol',
489
+ 'p', 'pre', 'section', 'table', 'ul'
490
+ ],
491
+ closedByParent: true
492
+ }),
493
+ 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),
494
+ 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),
495
+ 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),
496
+ 'tr': new HtmlTagDefinition({
497
+ closedByChildren: ['tr'],
498
+ requiredParents: ['tbody', 'tfoot', 'thead'],
499
+ closedByParent: true
500
+ }),
501
+ 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
502
+ 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
503
+ 'col': new HtmlTagDefinition({ requiredParents: ['colgroup'], isVoid: true }),
504
+ 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),
505
+ 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),
506
+ 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),
507
+ 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),
508
+ 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),
509
+ 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
510
+ 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
511
+ 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),
512
+ 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
513
+ 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),
514
+ 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),
515
+ 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),
516
+ 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),
517
+ 'style': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),
518
+ 'script': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),
519
+ 'title': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT }),
520
+ 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),
521
+ };
522
+ }
503
523
  return TAG_DEFINITIONS[tagName.toLowerCase()] || _DEFAULT_TAG_DEFINITION;
504
524
  }
505
525
 
@@ -1144,7 +1164,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
1144
1164
  * Use of this source code is governed by an MIT-style license that can be
1145
1165
  * found in the LICENSE file at https://angular.io/license
1146
1166
  */
1147
- var VERSION = new Version('6.1.6');
1167
+ var VERSION = new Version('6.1.10');
1148
1168
 
1149
1169
  /**
1150
1170
  * @license
@@ -12427,13 +12447,48 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
12427
12447
  //
12428
12448
  // =================================================================================================
12429
12449
  /** Map from tagName|propertyName SecurityContext. Properties applying to all tags use '*'. */
12430
- var SECURITY_SCHEMA = {};
12450
+ var _SECURITY_SCHEMA;
12451
+ function SECURITY_SCHEMA() {
12452
+ if (!_SECURITY_SCHEMA) {
12453
+ _SECURITY_SCHEMA = {};
12454
+ // Case is insignificant below, all element and attribute names are lower-cased for lookup.
12455
+ registerContext(SecurityContext.HTML, [
12456
+ 'iframe|srcdoc',
12457
+ '*|innerHTML',
12458
+ '*|outerHTML',
12459
+ ]);
12460
+ registerContext(SecurityContext.STYLE, ['*|style']);
12461
+ // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.
12462
+ registerContext(SecurityContext.URL, [
12463
+ '*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href',
12464
+ 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action',
12465
+ 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite',
12466
+ 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src',
12467
+ ]);
12468
+ registerContext(SecurityContext.RESOURCE_URL, [
12469
+ 'applet|code',
12470
+ 'applet|codebase',
12471
+ 'base|href',
12472
+ 'embed|src',
12473
+ 'frame|src',
12474
+ 'head|profile',
12475
+ 'html|manifest',
12476
+ 'iframe|src',
12477
+ 'link|href',
12478
+ 'media|src',
12479
+ 'object|codebase',
12480
+ 'object|data',
12481
+ 'script|src',
12482
+ ]);
12483
+ }
12484
+ return _SECURITY_SCHEMA;
12485
+ }
12431
12486
  function registerContext(ctx, specs) {
12432
12487
  var e_1, _a;
12433
12488
  try {
12434
12489
  for (var specs_1 = __values(specs), specs_1_1 = specs_1.next(); !specs_1_1.done; specs_1_1 = specs_1.next()) {
12435
12490
  var spec = specs_1_1.value;
12436
- SECURITY_SCHEMA[spec.toLowerCase()] = ctx;
12491
+ _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;
12437
12492
  }
12438
12493
  }
12439
12494
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -12444,35 +12499,6 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
12444
12499
  finally { if (e_1) throw e_1.error; }
12445
12500
  }
12446
12501
  }
12447
- // Case is insignificant below, all element and attribute names are lower-cased for lookup.
12448
- registerContext(SecurityContext.HTML, [
12449
- 'iframe|srcdoc',
12450
- '*|innerHTML',
12451
- '*|outerHTML',
12452
- ]);
12453
- registerContext(SecurityContext.STYLE, ['*|style']);
12454
- // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.
12455
- registerContext(SecurityContext.URL, [
12456
- '*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href',
12457
- 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action',
12458
- 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite',
12459
- 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src',
12460
- ]);
12461
- registerContext(SecurityContext.RESOURCE_URL, [
12462
- 'applet|code',
12463
- 'applet|codebase',
12464
- 'base|href',
12465
- 'embed|src',
12466
- 'frame|src',
12467
- 'head|profile',
12468
- 'html|manifest',
12469
- 'iframe|src',
12470
- 'link|href',
12471
- 'media|src',
12472
- 'object|codebase',
12473
- 'object|data',
12474
- 'script|src',
12475
- ]);
12476
12502
 
12477
12503
  /**
12478
12504
  * @license
@@ -12808,11 +12834,11 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
12808
12834
  // property names do not have a security impact.
12809
12835
  tagName = tagName.toLowerCase();
12810
12836
  propName = propName.toLowerCase();
12811
- var ctx = SECURITY_SCHEMA[tagName + '|' + propName];
12837
+ var ctx = SECURITY_SCHEMA()[tagName + '|' + propName];
12812
12838
  if (ctx) {
12813
12839
  return ctx;
12814
12840
  }
12815
- ctx = SECURITY_SCHEMA['*|' + propName];
12841
+ ctx = SECURITY_SCHEMA()['*|' + propName];
12816
12842
  return ctx ? ctx : SecurityContext.NONE;
12817
12843
  };
12818
12844
  DomElementSchemaRegistry.prototype.getMappedPropName = function (propName) { return _ATTR_TO_PROP[propName] || propName; };
@@ -13490,7 +13516,13 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
13490
13516
  var IDENT_EVENT_IDX = 10;
13491
13517
  var TEMPLATE_ATTR_PREFIX = '*';
13492
13518
  var CLASS_ATTR = 'class';
13493
- var TEXT_CSS_SELECTOR = CssSelector.parse('*')[0];
13519
+ var _TEXT_CSS_SELECTOR;
13520
+ function TEXT_CSS_SELECTOR() {
13521
+ if (!_TEXT_CSS_SELECTOR) {
13522
+ _TEXT_CSS_SELECTOR = CssSelector.parse('*')[0];
13523
+ }
13524
+ return _TEXT_CSS_SELECTOR;
13525
+ }
13494
13526
  var TemplateParseError = /** @class */ (function (_super) {
13495
13527
  __extends(TemplateParseError, _super);
13496
13528
  function TemplateParseError(message, span, level) {
@@ -13634,7 +13666,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
13634
13666
  TemplateParseVisitor.prototype.visitExpansion = function (expansion, context) { return null; };
13635
13667
  TemplateParseVisitor.prototype.visitExpansionCase = function (expansionCase, context) { return null; };
13636
13668
  TemplateParseVisitor.prototype.visitText = function (text, parent) {
13637
- var ngContentIndex = parent.findNgContentIndex(TEXT_CSS_SELECTOR);
13669
+ var ngContentIndex = parent.findNgContentIndex(TEXT_CSS_SELECTOR());
13638
13670
  var valueNoNgsp = replaceNgsp(text.value);
13639
13671
  var expr = this._bindingParser.parseInterpolation(valueNoNgsp, text.sourceSpan);
13640
13672
  return expr ? new BoundTextAst(expr, ngContentIndex, text.sourceSpan) :
@@ -14040,7 +14072,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
14040
14072
  return new AttrAst(attribute.name, attribute.value, attribute.sourceSpan);
14041
14073
  };
14042
14074
  NonBindableVisitor.prototype.visitText = function (text, parent) {
14043
- var ngContentIndex = parent.findNgContentIndex(TEXT_CSS_SELECTOR);
14075
+ var ngContentIndex = parent.findNgContentIndex(TEXT_CSS_SELECTOR());
14044
14076
  return new TextAst(text.value, ngContentIndex, text.sourceSpan);
14045
14077
  };
14046
14078
  NonBindableVisitor.prototype.visitExpansion = function (expansion, context) { return expansion; };
@@ -14664,6 +14696,16 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
14664
14696
  this.map = new Map();
14665
14697
  this.referenceNameIndex = 0;
14666
14698
  }
14699
+ Object.defineProperty(BindingScope, "ROOT_SCOPE", {
14700
+ get: function () {
14701
+ if (!BindingScope._ROOT_SCOPE) {
14702
+ BindingScope._ROOT_SCOPE = new BindingScope().set('$event', variable('$event'));
14703
+ }
14704
+ return BindingScope._ROOT_SCOPE;
14705
+ },
14706
+ enumerable: true,
14707
+ configurable: true
14708
+ });
14667
14709
  BindingScope.prototype.get = function (name) {
14668
14710
  var current = this;
14669
14711
  while (current) {
@@ -14714,7 +14756,6 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
14714
14756
  var ref = "" + REFERENCE_PREFIX + current.referenceNameIndex++;
14715
14757
  return ref;
14716
14758
  };
14717
- BindingScope.ROOT_SCOPE = new BindingScope().set('$event', variable('$event'));
14718
14759
  return BindingScope;
14719
14760
  }());
14720
14761
 
@@ -22755,11 +22796,11 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
22755
22796
  * @usageNotes
22756
22797
  * ### Basic Example
22757
22798
  *
22758
- * #### Plain InjectionToken
22799
+ * ### Plain InjectionToken
22759
22800
  *
22760
22801
  * {@example core/di/ts/injector_spec.ts region='InjectionToken'}
22761
22802
  *
22762
- * #### Tree-shakable InjectionToken
22803
+ * ### Tree-shakable InjectionToken
22763
22804
  *
22764
22805
  * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}
22765
22806
  *
@@ -24203,6 +24244,9 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
24203
24244
  *
24204
24245
  * See {@link Component#encapsulation encapsulation}.
24205
24246
  *
24247
+ * @usageNotes
24248
+ * ### Example
24249
+ * {@example core/ts/metadata/encapsulation.ts region='longform'}
24206
24250
  */
24207
24251
  var ViewEncapsulation$1;
24208
24252
  (function (ViewEncapsulation) {
@@ -24234,9 +24278,6 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
24234
24278
  * For the DOM this means using modern [Shadow
24235
24279
  * DOM](https://w3c.github.io/webcomponents/spec/shadow/) and
24236
24280
  * creating a ShadowRoot for Component's Host Element.
24237
- *
24238
- * ### Example
24239
- * {@example core/ts/metadata/encapsulation.ts region='longform'}
24240
24281
  */
24241
24282
  ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom";
24242
24283
  })(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));
@@ -24270,7 +24311,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
24270
24311
  }
24271
24312
  return Version;
24272
24313
  }());
24273
- var VERSION$2 = new Version$1('6.1.6');
24314
+ var VERSION$2 = new Version$1('6.1.10');
24274
24315
 
24275
24316
  /**
24276
24317
  * @license
@@ -26514,7 +26555,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
26514
26555
  */
26515
26556
  function getPromiseCtor(promiseCtor) {
26516
26557
  if (!promiseCtor) {
26517
- promiseCtor = config.Promise || Promise;
26558
+ promiseCtor = Promise;
26518
26559
  }
26519
26560
  if (!promiseCtor) {
26520
26561
  throw new Error('no Promise impl found');
@@ -29717,6 +29758,31 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
29717
29758
  return mergeAll(concurrent)(fromArray(observables, scheduler));
29718
29759
  }
29719
29760
 
29761
+ /**
29762
+ * An Observable that emits no items to the Observer and never completes.
29763
+ *
29764
+ * <img src="./img/never.png" width="100%">
29765
+ *
29766
+ * A simple Observable that emits neither values nor errors nor the completion
29767
+ * notification. It can be used for testing purposes or for composing with other
29768
+ * Observables. Please note that by never emitting a complete notification, this
29769
+ * Observable keeps the subscription from being disposed automatically.
29770
+ * Subscriptions need to be manually disposed.
29771
+ *
29772
+ * @example <caption>Emit the number 7, then never emit anything else (not even complete).</caption>
29773
+ * function info() {
29774
+ * console.log('Will not be called');
29775
+ * }
29776
+ * var result = NEVER.startWith(7);
29777
+ * result.subscribe(x => console.log(x), info, info);
29778
+ *
29779
+ * @see {@link create}
29780
+ * @see {@link EMPTY}
29781
+ * @see {@link of}
29782
+ * @see {@link throwError}
29783
+ */
29784
+ var NEVER = new Observable(noop$1);
29785
+
29720
29786
  var __read$7 = (undefined && undefined.__read) || function (o, n) {
29721
29787
  var m = typeof Symbol === "function" && o[Symbol.iterator];
29722
29788
  if (!m) return o;
@@ -33828,13 +33894,11 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
33828
33894
  }
33829
33895
  this.initialized = true;
33830
33896
  };
33831
- ApplicationInitStatus.decorators = [
33832
- { type: Injectable }
33833
- ];
33834
- /** @nocollapse */
33835
- ApplicationInitStatus.ctorParameters = function () { return [
33836
- { type: Array, decorators: [{ type: Inject, args: [APP_INITIALIZER,] }, { type: Optional }] }
33837
- ]; };
33897
+ ApplicationInitStatus = __decorate([
33898
+ Injectable(),
33899
+ __param(0, Inject(APP_INITIALIZER)), __param(0, Optional()),
33900
+ __metadata("design:paramtypes", [Array])
33901
+ ], ApplicationInitStatus);
33838
33902
  return ApplicationInitStatus;
33839
33903
  }());
33840
33904
 
@@ -33915,9 +33979,9 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
33915
33979
  // tslint:disable-next-line:no-console
33916
33980
  console.warn(message);
33917
33981
  };
33918
- Console.decorators = [
33919
- { type: Injectable }
33920
- ];
33982
+ Console = __decorate([
33983
+ Injectable()
33984
+ ], Console);
33921
33985
  return Console;
33922
33986
  }());
33923
33987
 
@@ -33977,9 +34041,9 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
33977
34041
  * Returns the id for a given NgModule, if one is defined and known to the compiler.
33978
34042
  */
33979
34043
  Compiler.prototype.getModuleId = function (moduleType) { return undefined; };
33980
- Compiler.decorators = [
33981
- { type: Injectable }
33982
- ];
34044
+ Compiler = __decorate([
34045
+ Injectable()
34046
+ ], Compiler);
33983
34047
  return Compiler;
33984
34048
  }());
33985
34049
  /**
@@ -34007,11 +34071,9 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
34007
34071
  * found in the LICENSE file at https://angular.io/license
34008
34072
  */
34009
34073
  /**
34010
- * Represents an instance of a Component created via a {@link ComponentFactory}.
34011
- *
34012
- * `ComponentRef` provides access to the Component Instance as well other objects related to this
34013
- * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}
34014
- * method.
34074
+ * Represents a component created by a `ComponentFactory`.
34075
+ * Provides access to the component instance and related objects,
34076
+ * and provides the means of destroying the instance.
34015
34077
  *
34016
34078
  */
34017
34079
  var ComponentRef = /** @class */ (function () {
@@ -34775,13 +34837,10 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
34775
34837
  // TODO(juliemr): implement.
34776
34838
  return [];
34777
34839
  };
34778
- Testability.decorators = [
34779
- { type: Injectable }
34780
- ];
34781
- /** @nocollapse */
34782
- Testability.ctorParameters = function () { return [
34783
- { type: NgZone }
34784
- ]; };
34840
+ Testability = __decorate([
34841
+ Injectable(),
34842
+ __metadata("design:paramtypes", [NgZone])
34843
+ ], Testability);
34785
34844
  return Testability;
34786
34845
  }());
34787
34846
  /**
@@ -34834,11 +34893,10 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
34834
34893
  if (findInAncestors === void 0) { findInAncestors = true; }
34835
34894
  return _testabilityGetter.findTestabilityInTree(this, elem, findInAncestors);
34836
34895
  };
34837
- TestabilityRegistry.decorators = [
34838
- { type: Injectable }
34839
- ];
34840
- /** @nocollapse */
34841
- TestabilityRegistry.ctorParameters = function () { return []; };
34896
+ TestabilityRegistry = __decorate([
34897
+ Injectable(),
34898
+ __metadata("design:paramtypes", [])
34899
+ ], TestabilityRegistry);
34842
34900
  return TestabilityRegistry;
34843
34901
  }());
34844
34902
  var _NoopGetTestability = /** @class */ (function () {
@@ -35075,13 +35133,10 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35075
35133
  enumerable: true,
35076
35134
  configurable: true
35077
35135
  });
35078
- PlatformRef.decorators = [
35079
- { type: Injectable }
35080
- ];
35081
- /** @nocollapse */
35082
- PlatformRef.ctorParameters = function () { return [
35083
- { type: Injector }
35084
- ]; };
35136
+ PlatformRef = __decorate([
35137
+ Injectable(),
35138
+ __metadata("design:paramtypes", [Injector])
35139
+ ], PlatformRef);
35085
35140
  return PlatformRef;
35086
35141
  }());
35087
35142
  function getNgZone(ngZoneOption) {
@@ -35192,6 +35247,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35192
35247
  this.isStable =
35193
35248
  merge(isCurrentlyStable, isStable.pipe(share()));
35194
35249
  }
35250
+ ApplicationRef_1 = ApplicationRef;
35195
35251
  /**
35196
35252
  * Bootstrap a new component at the root level of the application.
35197
35253
  *
@@ -35255,7 +35311,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35255
35311
  if (this._runningTick) {
35256
35312
  throw new Error('ApplicationRef.tick is called recursively');
35257
35313
  }
35258
- var scope = ApplicationRef._tickScope();
35314
+ var scope = ApplicationRef_1._tickScope();
35259
35315
  try {
35260
35316
  this._runningTick = true;
35261
35317
  this._views.forEach(function (view) { return view.detectChanges(); });
@@ -35315,20 +35371,16 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35315
35371
  enumerable: true,
35316
35372
  configurable: true
35317
35373
  });
35374
+ var ApplicationRef_1;
35318
35375
  /** @internal */
35319
35376
  ApplicationRef._tickScope = wtfCreateScope('ApplicationRef#tick()');
35320
- ApplicationRef.decorators = [
35321
- { type: Injectable }
35322
- ];
35323
- /** @nocollapse */
35324
- ApplicationRef.ctorParameters = function () { return [
35325
- { type: NgZone },
35326
- { type: Console },
35327
- { type: Injector },
35328
- { type: ErrorHandler },
35329
- { type: ComponentFactoryResolver },
35330
- { type: ApplicationInitStatus }
35331
- ]; };
35377
+ ApplicationRef = ApplicationRef_1 = __decorate([
35378
+ Injectable(),
35379
+ __metadata("design:paramtypes", [NgZone, Console, Injector,
35380
+ ErrorHandler,
35381
+ ComponentFactoryResolver,
35382
+ ApplicationInitStatus])
35383
+ ], ApplicationRef);
35332
35384
  return ApplicationRef;
35333
35385
  }());
35334
35386
  function remove(list, el) {
@@ -35563,6 +35615,71 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35563
35615
  * Use of this source code is governed by an MIT-style license that can be
35564
35616
  * found in the LICENSE file at https://angular.io/license
35565
35617
  */
35618
+ var _SEPARATOR = '#';
35619
+ var FACTORY_CLASS_SUFFIX = 'NgFactory';
35620
+ /**
35621
+ * Configuration for SystemJsNgModuleLoader.
35622
+ * token.
35623
+ *
35624
+ * @experimental
35625
+ */
35626
+ var SystemJsNgModuleLoaderConfig = /** @class */ (function () {
35627
+ function SystemJsNgModuleLoaderConfig() {
35628
+ }
35629
+ return SystemJsNgModuleLoaderConfig;
35630
+ }());
35631
+ var DEFAULT_CONFIG = {
35632
+ factoryPathPrefix: '',
35633
+ factoryPathSuffix: '.ngfactory',
35634
+ };
35635
+ /**
35636
+ * NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory
35637
+ * @experimental
35638
+ */
35639
+ var SystemJsNgModuleLoader = /** @class */ (function () {
35640
+ function SystemJsNgModuleLoader(_compiler, config) {
35641
+ this._compiler = _compiler;
35642
+ this._config = config || DEFAULT_CONFIG;
35643
+ }
35644
+ SystemJsNgModuleLoader.prototype.load = function (path$$1) {
35645
+ var offlineMode = this._compiler instanceof Compiler;
35646
+ return offlineMode ? this.loadFactory(path$$1) : this.loadAndCompile(path$$1);
35647
+ };
35648
+ SystemJsNgModuleLoader.prototype.loadAndCompile = function (path$$1) {
35649
+ var _this = this;
35650
+ var _a = __read(path$$1.split(_SEPARATOR), 2), module = _a[0], exportName = _a[1];
35651
+ if (exportName === undefined) {
35652
+ exportName = 'default';
35653
+ }
35654
+ return System.import(module)
35655
+ .then(function (module) { return module[exportName]; })
35656
+ .then(function (type) { return checkNotEmpty(type, module, exportName); })
35657
+ .then(function (type) { return _this._compiler.compileModuleAsync(type); });
35658
+ };
35659
+ SystemJsNgModuleLoader.prototype.loadFactory = function (path$$1) {
35660
+ var _a = __read(path$$1.split(_SEPARATOR), 2), module = _a[0], exportName = _a[1];
35661
+ var factoryClassSuffix = FACTORY_CLASS_SUFFIX;
35662
+ if (exportName === undefined) {
35663
+ exportName = 'default';
35664
+ factoryClassSuffix = '';
35665
+ }
35666
+ return System.import(this._config.factoryPathPrefix + module + this._config.factoryPathSuffix)
35667
+ .then(function (module) { return module[exportName + factoryClassSuffix]; })
35668
+ .then(function (factory) { return checkNotEmpty(factory, module, exportName); });
35669
+ };
35670
+ SystemJsNgModuleLoader = __decorate([
35671
+ Injectable(),
35672
+ __param(1, Optional()),
35673
+ __metadata("design:paramtypes", [Compiler, SystemJsNgModuleLoaderConfig])
35674
+ ], SystemJsNgModuleLoader);
35675
+ return SystemJsNgModuleLoader;
35676
+ }());
35677
+ function checkNotEmpty(value, modulePath, exportName) {
35678
+ if (!value) {
35679
+ throw new Error("Cannot find '" + exportName + "' in '" + modulePath + "'");
35680
+ }
35681
+ return value;
35682
+ }
35566
35683
 
35567
35684
  /**
35568
35685
  * @license
@@ -35572,15 +35689,20 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35572
35689
  * found in the LICENSE file at https://angular.io/license
35573
35690
  */
35574
35691
  /**
35575
- * Represents an Embedded Template that can be used to instantiate Embedded Views.
35692
+ * Represents an embedded template that can be used to instantiate embedded views.
35693
+ * To instantiate embedded views based on a template, use the `ViewContainerRef`
35694
+ * method `createEmbeddedView()`.
35695
+ *
35696
+ * Access a `TemplateRef` instance by placing a directive on an `<ng-template>`
35697
+ * element (or directive prefixed with `*`). The `TemplateRef` for the embedded view
35698
+ * is injected into the constructor of the directive,
35699
+ * using the `TemplateRef` token.
35576
35700
  *
35577
- * You can access a `TemplateRef`, in two ways. Via a directive placed on a `<ng-template>` element
35578
- * (or directive prefixed with `*`) and have the `TemplateRef` for this Embedded View injected into
35579
- * the constructor of the directive using the `TemplateRef` Token. Alternatively you can query for
35580
- * the `TemplateRef` from a Component or a Directive via {@link Query}.
35701
+ * You can also use a `Query` to find a `TemplateRef` associated with
35702
+ * a component or a directive.
35581
35703
  *
35582
- * To instantiate Embedded Views based on a Template, use {@link ViewContainerRef#
35583
- * createEmbeddedView}, which will create the View and attach it to the View Container.
35704
+ * @see `ViewContainerRef`
35705
+ * @see [Navigate the Component Tree with DI](guide/dependency-injection-navtree)
35584
35706
  *
35585
35707
  */
35586
35708
  var TemplateRef = /** @class */ (function () {
@@ -35597,21 +35719,17 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35597
35719
  * found in the LICENSE file at https://angular.io/license
35598
35720
  */
35599
35721
  /**
35600
- * Represents a container where one or more Views can be attached.
35722
+ * Represents a container where one or more views can be attached to a component.
35601
35723
  *
35602
- * The container can contain two kinds of Views. Host Views, created by instantiating a
35603
- * {@link Component} via {@link #createComponent}, and Embedded Views, created by instantiating an
35604
- * {@link TemplateRef Embedded Template} via {@link #createEmbeddedView}.
35724
+ * Can contain *host views* (created by instantiating a
35725
+ * component with the `createComponent()` method), and *embedded views*
35726
+ * (created by instantiating a `TemplateRef` with the `createEmbeddedView()` method).
35605
35727
  *
35606
- * The location of the View Container within the containing View is specified by the Anchor
35607
- * `element`. Each View Container can have only one Anchor Element and each Anchor Element can only
35608
- * have a single View Container.
35728
+ * A view container instance can contain other view containers,
35729
+ * creating a [view hierarchy](guide/glossary#view-tree).
35609
35730
  *
35610
- * Root elements of Views attached to this container become siblings of the Anchor Element in
35611
- * the Rendered View.
35612
- *
35613
- * To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected
35614
- * with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.
35731
+ * @see `ComponentRef`
35732
+ * @see `EmbeddedViewRef`
35615
35733
  *
35616
35734
  */
35617
35735
  var ViewContainerRef = /** @class */ (function () {
@@ -35665,7 +35783,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35665
35783
  * when the `live` property is set to false, and reattaches it when the property
35666
35784
  * becomes true.
35667
35785
  *
35668
- * <code-example path="core/ts/change_detect/change-detection.ts" region="detach"></code-example>
35786
+ * <code-example path="core/ts/change_detect/change-detection.ts" region="reattach"></code-example>
35669
35787
  *
35670
35788
  */
35671
35789
  var ChangeDetectorRef = /** @class */ (function () {
@@ -35681,6 +35799,14 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35681
35799
  * Use of this source code is governed by an MIT-style license that can be
35682
35800
  * found in the LICENSE file at https://angular.io/license
35683
35801
  */
35802
+ /**
35803
+ * Represents an Angular [view](guide/glossary#view),
35804
+ * specifically the [host view](guide/glossary#view-tree) that is defined by a component.
35805
+ * Also serves as the base class
35806
+ * that adds destroy methods for [embedded views](guide/glossary#view-tree).
35807
+ *
35808
+ * @see `EmbeddedViewRef`
35809
+ */
35684
35810
  var ViewRef = /** @class */ (function (_super) {
35685
35811
  __extends(ViewRef, _super);
35686
35812
  function ViewRef() {
@@ -35689,21 +35815,21 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35689
35815
  return ViewRef;
35690
35816
  }(ChangeDetectorRef));
35691
35817
  /**
35692
- * Represents an Angular View.
35818
+ * Represents an Angular [view](guide/glossary#view) in a view container.
35819
+ * An [embedded view](guide/glossary#view-tree) can be referenced from a component
35820
+ * other than the hosting component whose template defines it, or it can be defined
35821
+ * independently by a `TemplateRef`.
35693
35822
  *
35694
- * <!-- TODO: move the next two paragraphs to the dev guide -->
35695
- * A View is a fundamental building block of the application UI. It is the smallest grouping of
35696
- * Elements which are created and destroyed together.
35823
+ * Properties of elements in a view can change, but the structure (number and order) of elements in
35824
+ * a view cannot. Change the structure of elements by inserting, moving, or
35825
+ * removing nested views in a view container.
35697
35826
  *
35698
- * Properties of elements in a View can change, but the structure (number and order) of elements in
35699
- * a View cannot. Changing the structure of Elements can only be done by inserting, moving or
35700
- * removing nested Views via a `ViewContainerRef`. Each View can contain many View Containers.
35701
- * <!-- /TODO -->
35827
+ * @see `ViewContainerRef`
35702
35828
  *
35703
35829
  * @usageNotes
35704
- * ### Example
35705
35830
  *
35706
- * Given this template...
35831
+ * The following template breaks down into two separate `TemplateRef` instances,
35832
+ * an outer one and an inner one.
35707
35833
  *
35708
35834
  * ```
35709
35835
  * Count: {{items.length}}
@@ -35712,9 +35838,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35712
35838
  * </ul>
35713
35839
  * ```
35714
35840
  *
35715
- * We have two `TemplateRef`s:
35716
- *
35717
- * Outer `TemplateRef`:
35841
+ * This is the outer `TemplateRef`:
35718
35842
  *
35719
35843
  * ```
35720
35844
  * Count: {{items.length}}
@@ -35723,15 +35847,13 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
35723
35847
  * </ul>
35724
35848
  * ```
35725
35849
  *
35726
- * Inner `TemplateRef`:
35850
+ * This is the inner `TemplateRef`:
35727
35851
  *
35728
35852
  * ```
35729
35853
  * <li>{{item}}</li>
35730
35854
  * ```
35731
35855
  *
35732
- * Notice that the original template is broken down into two separate `TemplateRef`s.
35733
- *
35734
- * The outer/inner `TemplateRef`s are then assembled into views like so:
35856
+ * The outer and inner `TemplateRef` instances are assembled into views as follows:
35735
35857
  *
35736
35858
  * ```
35737
35859
  * <!-- ViewRef: outer-0 -->
@@ -37295,6 +37417,10 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
37295
37417
  function _localeFactory(locale) {
37296
37418
  return locale || 'en-US';
37297
37419
  }
37420
+ /**
37421
+ * A built-in [dependency injection token](guide/glossary#di-token)
37422
+ * that is used to configure the root injector for bootstrapping.
37423
+ */
37298
37424
  var APPLICATION_MODULE_PROVIDERS = [
37299
37425
  {
37300
37426
  provide: ApplicationRef,
@@ -37316,6 +37442,26 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
37316
37442
  deps: [[new Inject(LOCALE_ID), new Optional(), new SkipSelf()]]
37317
37443
  },
37318
37444
  ];
37445
+ /**
37446
+ * Configures the root injector for an app with
37447
+ * providers of `@angular/core` dependencies that `ApplicationRef` needs
37448
+ * to bootstrap components.
37449
+ *
37450
+ * Re-exported by `BrowserModule`, which is included automatically in the root
37451
+ * `AppModule` when you create a new app with the CLI `new` command.
37452
+ *
37453
+ * @experimental
37454
+ */
37455
+ var ApplicationModule = /** @class */ (function () {
37456
+ // Inject ApplicationRef to make it eager...
37457
+ function ApplicationModule(appRef) {
37458
+ }
37459
+ ApplicationModule = __decorate([
37460
+ NgModule({ providers: APPLICATION_MODULE_PROVIDERS }),
37461
+ __metadata("design:paramtypes", [ApplicationRef])
37462
+ ], ApplicationModule);
37463
+ return ApplicationModule;
37464
+ }());
37319
37465
 
37320
37466
  /**
37321
37467
  * @license
@@ -41098,34 +41244,55 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
41098
41244
  * Use of this source code is governed by an MIT-style license that can be
41099
41245
  * found in the LICENSE file at https://angular.io/license
41100
41246
  */
41101
- var ngDevModeResetPerfCounters = (typeof ngDevMode == 'undefined' && (function (global) {
41102
- function ngDevModeResetPerfCounters() {
41103
- global['ngDevMode'] = {
41104
- firstTemplatePass: 0,
41105
- tNode: 0,
41106
- tView: 0,
41107
- rendererCreateTextNode: 0,
41108
- rendererSetText: 0,
41109
- rendererCreateElement: 0,
41110
- rendererAddEventListener: 0,
41111
- rendererSetAttribute: 0,
41112
- rendererRemoveAttribute: 0,
41113
- rendererSetProperty: 0,
41114
- rendererSetClassName: 0,
41115
- rendererAddClass: 0,
41116
- rendererRemoveClass: 0,
41117
- rendererSetStyle: 0,
41118
- rendererRemoveStyle: 0,
41119
- rendererDestroy: 0,
41120
- rendererDestroyNode: 0,
41121
- rendererMoveNode: 0,
41122
- rendererRemoveNode: 0,
41123
- };
41247
+ function ngDevModeResetPerfCounters() {
41248
+ var newCounters = {
41249
+ firstTemplatePass: 0,
41250
+ tNode: 0,
41251
+ tView: 0,
41252
+ rendererCreateTextNode: 0,
41253
+ rendererSetText: 0,
41254
+ rendererCreateElement: 0,
41255
+ rendererAddEventListener: 0,
41256
+ rendererSetAttribute: 0,
41257
+ rendererRemoveAttribute: 0,
41258
+ rendererSetProperty: 0,
41259
+ rendererSetClassName: 0,
41260
+ rendererAddClass: 0,
41261
+ rendererRemoveClass: 0,
41262
+ rendererSetStyle: 0,
41263
+ rendererRemoveStyle: 0,
41264
+ rendererDestroy: 0,
41265
+ rendererDestroyNode: 0,
41266
+ rendererMoveNode: 0,
41267
+ rendererRemoveNode: 0,
41268
+ };
41269
+ // NOTE: Under Ivy we may have both window & global defined in the Node
41270
+ // environment since ensureDocument() in render3.ts sets global.window.
41271
+ if (typeof window != 'undefined') {
41272
+ // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
41273
+ window['ngDevMode'] = newCounters;
41274
+ }
41275
+ if (typeof global != 'undefined') {
41276
+ // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
41277
+ global['ngDevMode'] = newCounters;
41278
+ }
41279
+ if (typeof self != 'undefined') {
41280
+ // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
41281
+ self['ngDevMode'] = newCounters;
41124
41282
  }
41283
+ return newCounters;
41284
+ }
41285
+ /**
41286
+ * This checks to see if the `ngDevMode` has been set. If yes,
41287
+ * than we honor it, otherwise we default to dev mode with additional checks.
41288
+ *
41289
+ * The idea is that unless we are doing production build where we explicitly
41290
+ * set `ngDevMode == false` we should be helping the developer by providing
41291
+ * as much early warning and errors as possible.
41292
+ */
41293
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
41125
41294
  ngDevModeResetPerfCounters();
41126
- return ngDevModeResetPerfCounters;
41127
- })(typeof window != 'undefined' && window || typeof self != 'undefined' && self ||
41128
- typeof global != 'undefined' && global));
41295
+ }
41129
41296
 
41130
41297
  /** Called when directives inject each other (creating a circular dependency) */
41131
41298
 
@@ -42971,7 +43138,51 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
42971
43138
  * Use of this source code is governed by an MIT-style license that can be
42972
43139
  * found in the LICENSE file at https://angular.io/license
42973
43140
  */
43141
+ /**
43142
+ * Creates (or gets an existing) injector for a given element or container.
43143
+ *
43144
+ * @param node for which an injector should be retrieved / created.
43145
+ * @returns Node injector
43146
+ */
43147
+ function getOrCreateNodeInjectorForNode(node) {
43148
+ var nodeInjector = node.nodeInjector;
43149
+ var parent = getParentLNode(node);
43150
+ var parentInjector = parent && parent.nodeInjector;
43151
+ if (nodeInjector != parentInjector) {
43152
+ return nodeInjector;
43153
+ }
43154
+ return node.nodeInjector = {
43155
+ parent: parentInjector,
43156
+ node: node,
43157
+ bf0: 0,
43158
+ bf1: 0,
43159
+ bf2: 0,
43160
+ bf3: 0,
43161
+ bf4: 0,
43162
+ bf5: 0,
43163
+ bf6: 0,
43164
+ bf7: 0,
43165
+ cbf0: parentInjector == null ? 0 : parentInjector.cbf0 | parentInjector.bf0,
43166
+ cbf1: parentInjector == null ? 0 : parentInjector.cbf1 | parentInjector.bf1,
43167
+ cbf2: parentInjector == null ? 0 : parentInjector.cbf2 | parentInjector.bf2,
43168
+ cbf3: parentInjector == null ? 0 : parentInjector.cbf3 | parentInjector.bf3,
43169
+ cbf4: parentInjector == null ? 0 : parentInjector.cbf4 | parentInjector.bf4,
43170
+ cbf5: parentInjector == null ? 0 : parentInjector.cbf5 | parentInjector.bf5,
43171
+ cbf6: parentInjector == null ? 0 : parentInjector.cbf6 | parentInjector.bf6,
43172
+ cbf7: parentInjector == null ? 0 : parentInjector.cbf7 | parentInjector.bf7,
43173
+ templateRef: null,
43174
+ viewContainerRef: null,
43175
+ elementRef: null,
43176
+ changeDetectorRef: null,
43177
+ };
43178
+ }
42974
43179
  var componentFactoryResolver = new ComponentFactoryResolver$1();
43180
+ var ReadFromInjectorFn = /** @class */ (function () {
43181
+ function ReadFromInjectorFn(read) {
43182
+ this.read = read;
43183
+ }
43184
+ return ReadFromInjectorFn;
43185
+ }());
42975
43186
  /**
42976
43187
  * A ref to a container that enables adding and removing views from that container
42977
43188
  * imperatively.
@@ -43181,6 +43392,210 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
43181
43392
  * Use of this source code is governed by an MIT-style license that can be
43182
43393
  * found in the LICENSE file at https://angular.io/license
43183
43394
  */
43395
+ var LQueries_ = /** @class */ (function () {
43396
+ function LQueries_(deep) {
43397
+ this.shallow = null;
43398
+ this.deep = null;
43399
+ this.deep = deep == null ? null : deep;
43400
+ }
43401
+ LQueries_.prototype.track = function (queryList, predicate, descend, read) {
43402
+ if (descend) {
43403
+ this.deep = createQuery$1(this.deep, queryList, predicate, read != null ? read : null);
43404
+ }
43405
+ else {
43406
+ this.shallow = createQuery$1(this.shallow, queryList, predicate, read != null ? read : null);
43407
+ }
43408
+ };
43409
+ LQueries_.prototype.clone = function () { return this.deep ? new LQueries_(this.deep) : null; };
43410
+ LQueries_.prototype.child = function () {
43411
+ if (this.deep === null) {
43412
+ // if we don't have any deep queries then no need to track anything more.
43413
+ return null;
43414
+ }
43415
+ if (this.shallow === null) {
43416
+ // DeepQuery: We can reuse the current state if the child state would be same as current
43417
+ // state.
43418
+ return this;
43419
+ }
43420
+ else {
43421
+ // We need to create new state
43422
+ return new LQueries_(this.deep);
43423
+ }
43424
+ };
43425
+ LQueries_.prototype.container = function () {
43426
+ var result = null;
43427
+ var query = this.deep;
43428
+ while (query) {
43429
+ var containerValues = []; // prepare room for views
43430
+ query.values.push(containerValues);
43431
+ var clonedQuery = {
43432
+ next: null,
43433
+ list: query.list,
43434
+ predicate: query.predicate,
43435
+ values: containerValues,
43436
+ containerValues: null
43437
+ };
43438
+ clonedQuery.next = result;
43439
+ result = clonedQuery;
43440
+ query = query.next;
43441
+ }
43442
+ return result ? new LQueries_(result) : null;
43443
+ };
43444
+ LQueries_.prototype.createView = function () {
43445
+ var result = null;
43446
+ var query = this.deep;
43447
+ while (query) {
43448
+ var clonedQuery = {
43449
+ next: null,
43450
+ list: query.list,
43451
+ predicate: query.predicate,
43452
+ values: [],
43453
+ containerValues: query.values
43454
+ };
43455
+ clonedQuery.next = result;
43456
+ result = clonedQuery;
43457
+ query = query.next;
43458
+ }
43459
+ return result ? new LQueries_(result) : null;
43460
+ };
43461
+ LQueries_.prototype.insertView = function (index) {
43462
+ var query = this.deep;
43463
+ while (query) {
43464
+ ngDevMode &&
43465
+ assertDefined(query.containerValues, 'View queries need to have a pointer to container values.');
43466
+ query.containerValues.splice(index, 0, query.values);
43467
+ query = query.next;
43468
+ }
43469
+ };
43470
+ LQueries_.prototype.addNode = function (node) {
43471
+ add(this.shallow, node);
43472
+ add(this.deep, node);
43473
+ };
43474
+ LQueries_.prototype.removeView = function () {
43475
+ var query = this.deep;
43476
+ while (query) {
43477
+ ngDevMode &&
43478
+ assertDefined(query.containerValues, 'View queries need to have a pointer to container values.');
43479
+ var containerValues = query.containerValues;
43480
+ var viewValuesIdx = containerValues.indexOf(query.values);
43481
+ var removed = containerValues.splice(viewValuesIdx, 1);
43482
+ // mark a query as dirty only when removed view had matching modes
43483
+ ngDevMode && assertEqual(removed.length, 1, 'removed.length');
43484
+ if (removed[0].length) {
43485
+ query.list.setDirty();
43486
+ }
43487
+ query = query.next;
43488
+ }
43489
+ };
43490
+ return LQueries_;
43491
+ }());
43492
+ /**
43493
+ * Iterates over local names for a given node and returns directive index
43494
+ * (or -1 if a local name points to an element).
43495
+ *
43496
+ * @param tNode static data of a node to check
43497
+ * @param selector selector to match
43498
+ * @returns directive index, -1 or null if a selector didn't match any of the local names
43499
+ */
43500
+ function getIdxOfMatchingSelector(tNode, selector) {
43501
+ var localNames = tNode.localNames;
43502
+ if (localNames) {
43503
+ for (var i = 0; i < localNames.length; i += 2) {
43504
+ if (localNames[i] === selector) {
43505
+ return localNames[i + 1];
43506
+ }
43507
+ }
43508
+ }
43509
+ return null;
43510
+ }
43511
+ /**
43512
+ * Iterates over all the directives for a node and returns index of a directive for a given type.
43513
+ *
43514
+ * @param node Node on which directives are present.
43515
+ * @param type Type of a directive to look for.
43516
+ * @returns Index of a found directive or null when none found.
43517
+ */
43518
+ function getIdxOfMatchingDirective(node, type) {
43519
+ var defs = node.view[TVIEW].directives;
43520
+ var flags = node.tNode.flags;
43521
+ var count = flags & 4095 /* DirectiveCountMask */;
43522
+ var start = flags >> 14 /* DirectiveStartingIndexShift */;
43523
+ var end = start + count;
43524
+ for (var i = start; i < end; i++) {
43525
+ var def = defs[i];
43526
+ if (def.type === type && def.diPublic) {
43527
+ return i;
43528
+ }
43529
+ }
43530
+ return null;
43531
+ }
43532
+ function readFromNodeInjector(nodeInjector, node, read, directiveIdx) {
43533
+ if (read instanceof ReadFromInjectorFn) {
43534
+ return read.read(nodeInjector, node, directiveIdx);
43535
+ }
43536
+ else {
43537
+ var matchingIdx = getIdxOfMatchingDirective(node, read);
43538
+ if (matchingIdx !== null) {
43539
+ return node.view[DIRECTIVES][matchingIdx];
43540
+ }
43541
+ }
43542
+ return null;
43543
+ }
43544
+ function add(query, node) {
43545
+ var nodeInjector = getOrCreateNodeInjectorForNode(node);
43546
+ while (query) {
43547
+ var predicate = query.predicate;
43548
+ var type = predicate.type;
43549
+ if (type) {
43550
+ var directiveIdx = getIdxOfMatchingDirective(node, type);
43551
+ if (directiveIdx !== null) {
43552
+ // a node is matching a predicate - determine what to read
43553
+ // if read token and / or strategy is not specified, use type as read token
43554
+ var result = readFromNodeInjector(nodeInjector, node, predicate.read || type, directiveIdx);
43555
+ if (result !== null) {
43556
+ addMatch(query, result);
43557
+ }
43558
+ }
43559
+ }
43560
+ else {
43561
+ var selector = predicate.selector;
43562
+ for (var i = 0; i < selector.length; i++) {
43563
+ var directiveIdx = getIdxOfMatchingSelector(node.tNode, selector[i]);
43564
+ if (directiveIdx !== null) {
43565
+ // a node is matching a predicate - determine what to read
43566
+ // note that queries using name selector must specify read strategy
43567
+ ngDevMode && assertDefined(predicate.read, 'the node should have a predicate');
43568
+ var result = readFromNodeInjector(nodeInjector, node, predicate.read, directiveIdx);
43569
+ if (result !== null) {
43570
+ addMatch(query, result);
43571
+ }
43572
+ }
43573
+ }
43574
+ }
43575
+ query = query.next;
43576
+ }
43577
+ }
43578
+ function addMatch(query, matchingValue) {
43579
+ query.values.push(matchingValue);
43580
+ query.list.setDirty();
43581
+ }
43582
+ function createPredicate(predicate, read) {
43583
+ var isArray = Array.isArray(predicate);
43584
+ return {
43585
+ type: isArray ? null : predicate,
43586
+ selector: isArray ? predicate : null,
43587
+ read: read
43588
+ };
43589
+ }
43590
+ function createQuery$1(previous, queryList, predicate, read) {
43591
+ return {
43592
+ next: previous,
43593
+ list: queryList,
43594
+ predicate: createPredicate(predicate, read),
43595
+ values: queryList._valuesTree,
43596
+ containerValues: null
43597
+ };
43598
+ }
43184
43599
  var QueryList_ = /** @class */ (function () {
43185
43600
  function QueryList_() {
43186
43601
  this.dirty = true;
@@ -44308,7 +44723,7 @@ define(['exports', 'fs', 'path', 'typescript'], function (exports, fs, path, ts)
44308
44723
  * Use of this source code is governed by an MIT-style license that can be
44309
44724
  * found in the LICENSE file at https://angular.io/license
44310
44725
  */
44311
- var VERSION$3 = new Version$1('6.1.6');
44726
+ var VERSION$3 = new Version$1('6.1.10');
44312
44727
 
44313
44728
  /**
44314
44729
  * @license