@angular/upgrade 2.0.0-rc.1 → 2.0.0-rc.2

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.
Files changed (45) hide show
  1. package/{upgrade.umd.js → bundles/upgrade.umd.js} +161 -141
  2. package/bundles/upgrade.umd.min.js +1 -0
  3. package/esm/index.js.map +1 -1
  4. package/esm/src/angular_js.d.ts +1 -0
  5. package/esm/src/angular_js.js.map +1 -1
  6. package/esm/src/angular_js.metadata.json +1 -1
  7. package/esm/src/constants.js +1 -1
  8. package/esm/src/constants.js.map +1 -1
  9. package/esm/src/constants.metadata.json +1 -1
  10. package/esm/src/downgrade_ng2_adapter.d.ts +3 -5
  11. package/esm/src/downgrade_ng2_adapter.js +9 -9
  12. package/esm/src/downgrade_ng2_adapter.js.map +1 -1
  13. package/esm/src/metadata.js +1 -1
  14. package/esm/src/metadata.js.map +1 -1
  15. package/esm/src/upgrade_adapter.d.ts +1 -8
  16. package/esm/src/upgrade_adapter.js +56 -48
  17. package/esm/src/upgrade_adapter.js.map +1 -1
  18. package/esm/src/upgrade_ng1_adapter.js +39 -27
  19. package/esm/src/upgrade_ng1_adapter.js.map +1 -1
  20. package/esm/src/util.js.map +1 -1
  21. package/esm/src/util.metadata.json +1 -0
  22. package/esm/upgrade.js +4 -4
  23. package/esm/upgrade.js.map +1 -1
  24. package/index.js.map +1 -1
  25. package/package.json +8 -4
  26. package/src/angular_js.d.ts +1 -0
  27. package/src/angular_js.js.map +1 -1
  28. package/src/angular_js.metadata.json +1 -1
  29. package/src/constants.js +1 -1
  30. package/src/constants.js.map +1 -1
  31. package/src/constants.metadata.json +1 -1
  32. package/src/downgrade_ng2_adapter.d.ts +3 -5
  33. package/src/downgrade_ng2_adapter.js +18 -14
  34. package/src/downgrade_ng2_adapter.js.map +1 -1
  35. package/src/metadata.js +1 -1
  36. package/src/metadata.js.map +1 -1
  37. package/src/upgrade_adapter.d.ts +1 -8
  38. package/src/upgrade_adapter.js +58 -46
  39. package/src/upgrade_adapter.js.map +1 -1
  40. package/src/upgrade_ng1_adapter.js +40 -26
  41. package/src/upgrade_ng1_adapter.js.map +1 -1
  42. package/src/util.js.map +1 -1
  43. package/src/util.metadata.json +1 -0
  44. package/upgrade.js +4 -4
  45. package/upgrade.js.map +1 -1
@@ -1,61 +1,35 @@
1
1
  /**
2
- * @license AngularJS v2.0.0-rc.1
2
+ * @license AngularJS v2.0.0-rc.2
3
3
  * (c) 2010-2016 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser-dynamic'), require('@angular/platform-browser'), require('@angular/compiler')) :
8
- typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/platform-browser-dynamic', '@angular/platform-browser', '@angular/compiler'], factory) :
9
- (factory((global.ng = global.ng || {}, global.ng.upgrade = global.ng.upgrade || {}), global.ng.core, global.ng.platformBrowserDynamic, global.ng.platformBrowser, global.ng.compiler));
10
- }(this, function (exports, _angular_core, _angular_platformBrowserDynamic, _angular_platformBrowser, _angular_compiler) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/platform-browser-dynamic'), require('@angular/compiler')) :
8
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/platform-browser', '@angular/platform-browser-dynamic', '@angular/compiler'], factory) :
9
+ (factory((global.ng = global.ng || {}, global.ng.upgrade = global.ng.upgrade || {}), global.ng.core, global.ng.platformBrowser, global.ng.platformBrowser.dynamic, global.ng.compiler));
10
+ }(this, function (exports, _angular_core, _angular_platformBrowser, _angular_platformBrowserDynamic, _angular_compiler) {
11
11
  'use strict';
12
- var COMPONENT_SELECTOR = /^[\w|-]*$/;
13
- var SKEWER_CASE = /-(\w)/g;
14
- var directiveResolver = new _angular_compiler.DirectiveResolver();
15
- function getComponentInfo(type) {
16
- var resolvedMetadata = directiveResolver.resolve(type);
17
- var selector = resolvedMetadata.selector;
18
- if (!selector.match(COMPONENT_SELECTOR)) {
19
- throw new Error('Only selectors matching element names are supported, got: ' + selector);
20
- }
21
- var selector = selector.replace(SKEWER_CASE, function (all, letter) { return letter.toUpperCase(); });
22
- return {
23
- type: type,
24
- selector: selector,
25
- inputs: parseFields(resolvedMetadata.inputs),
26
- outputs: parseFields(resolvedMetadata.outputs)
27
- };
12
+ function noNg() {
13
+ throw new Error('AngularJS v1.x is not loaded!');
28
14
  }
29
- function parseFields(names) {
30
- var attrProps = [];
31
- if (names) {
32
- for (var i = 0; i < names.length; i++) {
33
- var parts = names[i].split(':');
34
- var prop = parts[0].trim();
35
- var attr = (parts[1] || parts[0]).trim();
36
- var capitalAttr = attr.charAt(0).toUpperCase() + attr.substr(1);
37
- attrProps.push({
38
- prop: prop,
39
- attr: attr,
40
- bracketAttr: "[" + attr + "]",
41
- parenAttr: "(" + attr + ")",
42
- bracketParenAttr: "[(" + attr + ")]",
43
- onAttr: "on" + capitalAttr,
44
- bindAttr: "bind" + capitalAttr,
45
- bindonAttr: "bindon" + capitalAttr
46
- });
47
- }
15
+ var angular = {
16
+ bootstrap: noNg,
17
+ module: noNg,
18
+ element: noNg,
19
+ version: noNg,
20
+ resumeBootstrap: noNg,
21
+ getTestability: noNg
22
+ };
23
+ try {
24
+ if (window.hasOwnProperty('angular')) {
25
+ angular = window.angular;
48
26
  }
49
- return attrProps;
50
27
  }
51
- function onError(e) {
52
- // TODO: (misko): We seem to not have a stack trace here!
53
- console.log(e, e.stack);
54
- throw e;
55
- }
56
- function controllerKey(name) {
57
- return '$' + name + 'Controller';
28
+ catch (e) {
58
29
  }
30
+ var bootstrap = angular.bootstrap;
31
+ var module$1 = angular.module;
32
+ var element = angular.element;
59
33
  var NG2_COMPILER = 'ng2.Compiler';
60
34
  var NG2_INJECTOR = 'ng2.Injector';
61
35
  var NG2_COMPONENT_FACTORY_REF_MAP = 'ng2.ComponentFactoryRefMap';
@@ -69,7 +43,7 @@
69
43
  var NG1_PARSE = '$parse';
70
44
  var NG1_TEMPLATE_CACHE = '$templateCache';
71
45
  var NG1_TESTABILITY = '$$testability';
72
- var REQUIRE_INJECTOR = '^' + NG2_INJECTOR;
46
+ var REQUIRE_INJECTOR = '?^' + NG2_INJECTOR;
73
47
  var INITIAL_VALUE = {
74
48
  __UNINITIALIZED__: true
75
49
  };
@@ -94,10 +68,9 @@
94
68
  this.childNodes = element.contents();
95
69
  }
96
70
  DowngradeNg2ComponentAdapter.prototype.bootstrapNg2 = function () {
97
- var childInjector = _angular_core.ReflectiveInjector.resolveAndCreate([_angular_core.provide(NG1_SCOPE, { useValue: this.componentScope })], this.parentInjector);
71
+ var childInjector = _angular_core.ReflectiveInjector.resolveAndCreate([{ provide: NG1_SCOPE, useValue: this.componentScope }], this.parentInjector);
98
72
  this.contentInsertionPoint = document.createComment('ng1 insertion point');
99
- this.componentRef =
100
- this.componentFactory.create(childInjector, [[this.contentInsertionPoint]], '#' + this.id);
73
+ this.componentRef = this.componentFactory.create(childInjector, [[this.contentInsertionPoint]], this.element[0]);
101
74
  this.changeDetector = this.componentRef.changeDetectorRef;
102
75
  this.component = this.componentRef.instance;
103
76
  };
@@ -109,9 +82,9 @@
109
82
  var input = inputs[i];
110
83
  var expr = null;
111
84
  if (attrs.hasOwnProperty(input.attr)) {
112
- var observeFn = (function (prop) {
85
+ var observeFn = (function (prop /** TODO #9100 */) {
113
86
  var prevValue = INITIAL_VALUE;
114
- return function (value) {
87
+ return function (value /** TODO #9100 */) {
115
88
  if (_this.inputChanges !== null) {
116
89
  _this.inputChangeCount++;
117
90
  _this.inputChanges[prop] =
@@ -136,7 +109,7 @@
136
109
  expr = attrs[input.bracketParenAttr];
137
110
  }
138
111
  if (expr != null) {
139
- var watchFn = (function (prop) { return function (value, prevValue) {
112
+ var watchFn = (function (prop /** TODO #9100 */) { return function (value /** TODO #9100 */, prevValue /** TODO #9100 */) {
140
113
  if (_this.inputChanges != null) {
141
114
  _this.inputChangeCount++;
142
115
  _this.inputChanges[prop] = new Ng1Change(prevValue, value);
@@ -202,8 +175,9 @@
202
175
  var emitter = this.component[output.prop];
203
176
  if (emitter) {
204
177
  emitter.subscribe({
205
- next: assignExpr ? (function (setter) { return function (value) { return setter(_this.scope, value); }; })(setter) :
206
- (function (getter) { return function (value) { return getter(_this.scope, { $event: value }); }; })(getter)
178
+ next: assignExpr ?
179
+ (function (setter) { return function (v /** TODO #9100 */) { return setter(_this.scope, v); }; })(setter) :
180
+ (function (getter) { return function (v /** TODO #9100 */) { return getter(_this.scope, { $event: v }); }; })(getter)
207
181
  });
208
182
  }
209
183
  else {
@@ -229,27 +203,53 @@
229
203
  Ng1Change.prototype.isFirstChange = function () { return this.previousValue === this.currentValue; };
230
204
  return Ng1Change;
231
205
  }());
232
- function noNg() {
233
- throw new Error('AngularJS v1.x is not loaded!');
206
+ var COMPONENT_SELECTOR = /^[\w|-]*$/;
207
+ var SKEWER_CASE = /-(\w)/g;
208
+ var directiveResolver = new _angular_compiler.DirectiveResolver();
209
+ function getComponentInfo(type) {
210
+ var resolvedMetadata = directiveResolver.resolve(type);
211
+ var selector = resolvedMetadata.selector;
212
+ if (!selector.match(COMPONENT_SELECTOR)) {
213
+ throw new Error('Only selectors matching element names are supported, got: ' + selector);
214
+ }
215
+ var selector = selector.replace(SKEWER_CASE, function (all /** TODO #9100 */, letter) { return letter.toUpperCase(); });
216
+ return {
217
+ type: type,
218
+ selector: selector,
219
+ inputs: parseFields(resolvedMetadata.inputs),
220
+ outputs: parseFields(resolvedMetadata.outputs)
221
+ };
234
222
  }
235
- var angular = {
236
- bootstrap: noNg,
237
- module: noNg,
238
- element: noNg,
239
- version: noNg,
240
- resumeBootstrap: noNg,
241
- getTestability: noNg
242
- };
243
- try {
244
- if (window.hasOwnProperty('angular')) {
245
- angular = window.angular;
223
+ function parseFields(names) {
224
+ var attrProps = [];
225
+ if (names) {
226
+ for (var i = 0; i < names.length; i++) {
227
+ var parts = names[i].split(':');
228
+ var prop = parts[0].trim();
229
+ var attr = (parts[1] || parts[0]).trim();
230
+ var capitalAttr = attr.charAt(0).toUpperCase() + attr.substr(1);
231
+ attrProps.push({
232
+ prop: prop,
233
+ attr: attr,
234
+ bracketAttr: "[" + attr + "]",
235
+ parenAttr: "(" + attr + ")",
236
+ bracketParenAttr: "[(" + attr + ")]",
237
+ onAttr: "on" + capitalAttr,
238
+ bindAttr: "bind" + capitalAttr,
239
+ bindonAttr: "bindon" + capitalAttr
240
+ });
241
+ }
246
242
  }
243
+ return attrProps;
247
244
  }
248
- catch (e) {
245
+ function onError(e) {
246
+ // TODO: (misko): We seem to not have a stack trace here!
247
+ console.log(e, e.stack);
248
+ throw e;
249
+ }
250
+ function controllerKey(name) {
251
+ return '$' + name + 'Controller';
249
252
  }
250
- var bootstrap = angular.bootstrap;
251
- var module$1 = angular.module;
252
- var element = angular.element;
253
253
  var CAMEL_CASE = /([A-Z])/g;
254
254
  var INITIAL_VALUE$1 = {
255
255
  __UNINITIALIZED__: true
@@ -268,14 +268,13 @@
268
268
  this.linkFn = null;
269
269
  this.directive = null;
270
270
  this.$controller = null;
271
- var selector = name.replace(CAMEL_CASE, function (all, next) { return '-' + next.toLowerCase(); });
271
+ var selector = name.replace(CAMEL_CASE, function (all /** TODO #9100 */, next) { return '-' + next.toLowerCase(); });
272
272
  var self = this;
273
273
  this.type =
274
274
  _angular_core.Directive({ selector: selector, inputs: this.inputsRename, outputs: this.outputsRename })
275
275
  .Class({
276
276
  constructor: [
277
- new _angular_core.Inject(NG1_SCOPE),
278
- _angular_core.ElementRef,
277
+ new _angular_core.Inject(NG1_SCOPE), _angular_core.ElementRef,
279
278
  function (scope, elementRef) {
280
279
  return new UpgradeNg1ComponentAdapter(self.linkFn, scope, self.directive, elementRef, self.$controller, self.inputs, self.outputs, self.propertyOutputs, self.checkProperties, self.propertyMap);
281
280
  }
@@ -353,17 +352,19 @@
353
352
  UpgradeNg1ComponentAdapterBuilder.prototype.compileTemplate = function (compile, templateCache, httpBackend) {
354
353
  var _this = this;
355
354
  if (this.directive.template !== undefined) {
356
- this.linkFn = compileHtml(this.directive.template);
355
+ this.linkFn = compileHtml(typeof this.directive.template === 'function' ? this.directive.template() :
356
+ this.directive.template);
357
357
  }
358
358
  else if (this.directive.templateUrl) {
359
- var url = this.directive.templateUrl;
359
+ var url = typeof this.directive.templateUrl === 'function' ? this.directive.templateUrl() :
360
+ this.directive.templateUrl;
360
361
  var html = templateCache.get(url);
361
362
  if (html !== undefined) {
362
363
  this.linkFn = compileHtml(html);
363
364
  }
364
365
  else {
365
366
  return new Promise(function (resolve, err) {
366
- httpBackend('GET', url, null, function (status, response) {
367
+ httpBackend('GET', url, null, function (status /** TODO #9100 */, response /** TODO #9100 */) {
367
368
  if (status == 200) {
368
369
  resolve(_this.linkFn = compileHtml(templateCache.put(url, response)));
369
370
  }
@@ -378,7 +379,7 @@
378
379
  throw new Error("Directive '" + this.name + "' is not a component, it is missing template.");
379
380
  }
380
381
  return null;
381
- function compileHtml(html) {
382
+ function compileHtml(html /** TODO #9100 */) {
382
383
  var div = document.createElement('div');
383
384
  div.innerHTML = html;
384
385
  return compile(div.childNodes);
@@ -409,6 +410,7 @@
409
410
  function UpgradeNg1ComponentAdapter(linkFn, scope, directive, elementRef, $controller, inputs, outputs, propOuts, checkProperties, propertyMap) {
410
411
  this.linkFn = linkFn;
411
412
  this.directive = directive;
413
+ this.$controller = $controller;
412
414
  this.inputs = inputs;
413
415
  this.outputs = outputs;
414
416
  this.propOuts = propOuts;
@@ -416,33 +418,23 @@
416
418
  this.propertyMap = propertyMap;
417
419
  this.destinationObj = null;
418
420
  this.checkLastValues = [];
421
+ this.$element = null;
419
422
  this.element = elementRef.nativeElement;
420
423
  this.componentScope = scope.$new(!!directive.scope);
421
- var $element = element(this.element);
424
+ this.$element = element(this.element);
422
425
  var controllerType = directive.controller;
423
- var controller = null;
424
- if (controllerType) {
425
- var locals = { $scope: this.componentScope, $element: $element };
426
- controller = $controller(controllerType, locals, null, directive.controllerAs);
427
- $element.data(controllerKey(directive.name), controller);
426
+ if (directive.bindToController && controllerType) {
427
+ this.destinationObj = this.buildController(controllerType);
428
428
  }
429
- var link = directive.link;
430
- if (typeof link == 'object')
431
- link = link.pre;
432
- if (link) {
433
- var attrs = NOT_SUPPORTED;
434
- var transcludeFn = NOT_SUPPORTED;
435
- var linkController = this.resolveRequired($element, directive.require);
436
- directive.link(this.componentScope, $element, attrs, linkController, transcludeFn);
429
+ else {
430
+ this.destinationObj = this.componentScope;
437
431
  }
438
- this.destinationObj =
439
- directive.bindToController && controller ? controller : this.componentScope;
440
432
  for (var i = 0; i < inputs.length; i++) {
441
433
  this[inputs[i]] = null;
442
434
  }
443
435
  for (var j = 0; j < outputs.length; j++) {
444
436
  var emitter = this[outputs[j]] = new _angular_core.EventEmitter();
445
- this.setComponentProperty(outputs[j], (function (emitter) { return function (value) { return emitter.emit(value); }; })(emitter));
437
+ this.setComponentProperty(outputs[j], (function (emitter /** TODO #9100 */) { return function (value /** TODO #9100 */) { return emitter.emit(value); }; })(emitter));
446
438
  }
447
439
  for (var k = 0; k < propOuts.length; k++) {
448
440
  this[propOuts[k]] = new _angular_core.EventEmitter();
@@ -451,6 +443,18 @@
451
443
  }
452
444
  UpgradeNg1ComponentAdapter.prototype.ngOnInit = function () {
453
445
  var _this = this;
446
+ if (!this.directive.bindToController && this.directive.controller) {
447
+ this.buildController(this.directive.controller);
448
+ }
449
+ var link = this.directive.link;
450
+ if (typeof link == 'object')
451
+ link = link.pre;
452
+ if (link) {
453
+ var attrs = NOT_SUPPORTED;
454
+ var transcludeFn = NOT_SUPPORTED;
455
+ var linkController = this.resolveRequired(this.$element, this.directive.require);
456
+ this.directive.link(this.componentScope, this.$element, attrs, linkController, transcludeFn);
457
+ }
454
458
  var childNodes = [];
455
459
  var childNode;
456
460
  while (childNode = this.element.firstChild) {
@@ -461,7 +465,9 @@
461
465
  for (var i = 0, ii = clonedElement.length; i < ii; i++) {
462
466
  _this.element.appendChild(clonedElement[i]);
463
467
  }
464
- }, { parentBoundTranscludeFn: function (scope, cloneAttach) { cloneAttach(childNodes); } });
468
+ }, {
469
+ parentBoundTranscludeFn: function (scope /** TODO #9100 */, cloneAttach /** TODO #9100 */) { cloneAttach(childNodes); }
470
+ });
465
471
  if (this.destinationObj.$onInit) {
466
472
  this.destinationObj.$onInit();
467
473
  }
@@ -496,6 +502,12 @@
496
502
  UpgradeNg1ComponentAdapter.prototype.setComponentProperty = function (name, value) {
497
503
  this.destinationObj[this.propertyMap[name]] = value;
498
504
  };
505
+ UpgradeNg1ComponentAdapter.prototype.buildController = function (controllerType /** TODO #9100 */) {
506
+ var locals = { $scope: this.componentScope, $element: this.$element };
507
+ var controller = this.$controller(controllerType, locals, null, this.directive.controllerAs);
508
+ this.$element.data(controllerKey(this.directive.name), controller);
509
+ return controller;
510
+ };
499
511
  UpgradeNg1ComponentAdapter.prototype.resolveRequired = function ($element, require) {
500
512
  if (!require) {
501
513
  return undefined;
@@ -797,10 +809,11 @@
797
809
  var upgrade = new UpgradeAdapterRef();
798
810
  var ng1Injector = null;
799
811
  var platformRef = _angular_platformBrowser.browserPlatform();
800
- var applicationRef = _angular_core.ReflectiveInjector.resolveAndCreate([
801
- _angular_platformBrowserDynamic.BROWSER_APP_DYNAMIC_PROVIDERS,
802
- _angular_core.provide(NG1_INJECTOR, { useFactory: function () { return ng1Injector; } }),
803
- _angular_core.provide(NG1_COMPILE, { useFactory: function () { return ng1Injector.get(NG1_COMPILE); } }),
812
+ var applicationRef = _angular_core.ReflectiveInjector
813
+ .resolveAndCreate([
814
+ _angular_platformBrowser.BROWSER_APP_PROVIDERS, _angular_platformBrowserDynamic.BROWSER_APP_COMPILER_PROVIDERS,
815
+ { provide: NG1_INJECTOR, useFactory: function () { return ng1Injector; } },
816
+ { provide: NG1_COMPILE, useFactory: function () { return ng1Injector.get(NG1_COMPILE); } },
804
817
  this.providers
805
818
  ], platformRef.injector)
806
819
  .get(_angular_core.ApplicationRef);
@@ -820,52 +833,55 @@
820
833
  .value(NG2_COMPILER, compiler)
821
834
  .value(NG2_COMPONENT_FACTORY_REF_MAP, componentFactoryRefMap)
822
835
  .config([
823
- '$provide',
824
- function (provide) {
836
+ '$provide', '$injector',
837
+ function (provide /** TODO #???? */, ng1Injector /** TODO #???? */) {
825
838
  provide.decorator(NG1_ROOT_SCOPE, [
826
839
  '$delegate',
827
840
  function (rootScopeDelegate) {
828
841
  rootScopePrototype = rootScopeDelegate.constructor.prototype;
829
842
  if (rootScopePrototype.hasOwnProperty('$apply')) {
830
843
  original$applyFn = rootScopePrototype.$apply;
831
- rootScopePrototype.$apply = function (exp) { return delayApplyExps.push(exp); };
844
+ rootScopePrototype.$apply = function (exp /** TODO #???? */) { return delayApplyExps.push(exp); };
832
845
  }
833
846
  else {
834
- throw new Error("Failed to find '$apply' on '$rootScope'!");
847
+ throw new Error('Failed to find \'$apply\' on \'$rootScope\'!');
835
848
  }
836
849
  return rootScope = rootScopeDelegate;
837
850
  }
838
851
  ]);
839
- provide.decorator(NG1_TESTABILITY, [
840
- '$delegate',
841
- function (testabilityDelegate) {
842
- var _this = this;
843
- var ng2Testability = injector.get(_angular_core.Testability);
844
- var origonalWhenStable = testabilityDelegate.whenStable;
845
- var newWhenStable = function (callback) {
846
- var whenStableContext = _this;
847
- origonalWhenStable.call(_this, function () {
848
- if (ng2Testability.isStable()) {
849
- callback.apply(this, arguments);
850
- }
851
- else {
852
- ng2Testability.whenStable(newWhenStable.bind(whenStableContext, callback));
853
- }
854
- });
855
- };
856
- testabilityDelegate.whenStable = newWhenStable;
857
- return testabilityDelegate;
858
- }
859
- ]);
852
+ if (ng1Injector.has(NG1_TESTABILITY)) {
853
+ provide.decorator(NG1_TESTABILITY, [
854
+ '$delegate',
855
+ function (testabilityDelegate) {
856
+ var _this = this;
857
+ var ng2Testability = injector.get(_angular_core.Testability);
858
+ var origonalWhenStable = testabilityDelegate.whenStable;
859
+ var newWhenStable = function (callback) {
860
+ var whenStableContext = _this;
861
+ origonalWhenStable.call(_this, function () {
862
+ if (ng2Testability.isStable()) {
863
+ callback.apply(this, arguments);
864
+ }
865
+ else {
866
+ ng2Testability.whenStable(newWhenStable.bind(whenStableContext, callback));
867
+ }
868
+ });
869
+ };
870
+ testabilityDelegate.whenStable = newWhenStable;
871
+ return testabilityDelegate;
872
+ }
873
+ ]);
874
+ }
860
875
  }
861
876
  ]);
862
877
  ng1compilePromise = new Promise(function (resolve, reject) {
863
878
  ng1Module.run([
864
- '$injector',
865
- '$rootScope',
879
+ '$injector', '$rootScope',
866
880
  function (injector, rootScope) {
867
881
  ng1Injector = injector;
868
- ngZone.onMicrotaskEmpty.subscribe({ next: function (_) { return ngZone.runOutsideAngular(function () { return rootScope.$apply(); }); } });
882
+ ngZone.onMicrotaskEmpty.subscribe({
883
+ next: function (_ /** TODO #???? */) { return ngZone.runOutsideAngular(function () { return rootScope.$evalAsync(); }); }
884
+ });
869
885
  UpgradeNg1ComponentAdapterBuilder.resolve(_this.downgradedComponents, injector)
870
886
  .then(resolve, reject);
871
887
  }
@@ -889,9 +905,9 @@
889
905
  resolve();
890
906
  }
891
907
  });
892
- Promise.all([
893
- this.compileNg2Components(compiler, componentFactoryRefMap),
894
- ng1BootstrapPromise,
908
+ Promise
909
+ .all([
910
+ this.compileNg2Components(compiler, componentFactoryRefMap), ng1BootstrapPromise,
895
911
  ng1compilePromise
896
912
  ])
897
913
  .then(function () {
@@ -979,10 +995,11 @@
979
995
  */
980
996
  UpgradeAdapter.prototype.upgradeNg1Provider = function (name, options) {
981
997
  var token = options && options.asToken || name;
982
- this.providers.push(_angular_core.provide(token, {
998
+ this.providers.push({
999
+ provide: token,
983
1000
  useFactory: function (ng1Injector) { return ng1Injector.get(name); },
984
1001
  deps: [NG1_INJECTOR]
985
- }));
1002
+ });
986
1003
  };
987
1004
  /**
988
1005
  * Allows Angular v2 service to be accessible from AngularJS v1.
@@ -1030,18 +1047,21 @@
1030
1047
  return UpgradeAdapter;
1031
1048
  }());
1032
1049
  function ng1ComponentDirective(info, idPrefix) {
1033
- directiveFactory.$inject = [NG2_COMPONENT_FACTORY_REF_MAP, NG1_PARSE];
1034
- function directiveFactory(componentFactoryRefMap, parse) {
1035
- var componentFactory = componentFactoryRefMap[info.selector];
1036
- if (!componentFactory)
1037
- throw new Error('Expecting ComponentFactory for: ' + info.selector);
1050
+ directiveFactory.$inject = [NG1_INJECTOR, NG2_COMPONENT_FACTORY_REF_MAP, NG1_PARSE];
1051
+ function directiveFactory(ng1Injector, componentFactoryRefMap, parse) {
1038
1052
  var idCount = 0;
1039
1053
  return {
1040
1054
  restrict: 'E',
1041
1055
  require: REQUIRE_INJECTOR,
1042
1056
  link: {
1043
1057
  post: function (scope, element, attrs, parentInjector, transclude) {
1058
+ var componentFactory = componentFactoryRefMap[info.selector];
1059
+ if (!componentFactory)
1060
+ throw new Error('Expecting ComponentFactory for: ' + info.selector);
1044
1061
  var domElement = element[0];
1062
+ if (parentInjector === null) {
1063
+ parentInjector = ng1Injector.get(NG2_INJECTOR);
1064
+ }
1045
1065
  var facade = new DowngradeNg2ComponentAdapter(idPrefix + (idCount++), info, element, attrs, scope, parentInjector, parse, componentFactory);
1046
1066
  facade.setupInputs();
1047
1067
  facade.bootstrapNg2();
@@ -0,0 +1 @@
1
+ !function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/core"),require("@angular/platform-browser"),require("@angular/platform-browser-dynamic"),require("@angular/compiler")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/platform-browser","@angular/platform-browser-dynamic","@angular/compiler"],factory):factory((global.ng=global.ng||{},global.ng.upgrade=global.ng.upgrade||{}),global.ng.core,global.ng.platformBrowser,global.ng.platformBrowser.dynamic,global.ng.compiler)}(this,function(exports,_angular_core,_angular_platformBrowser,_angular_platformBrowserDynamic,_angular_compiler){"use strict";function noNg(){throw new Error("AngularJS v1.x is not loaded!")}function getComponentInfo(type){var resolvedMetadata=directiveResolver.resolve(type),selector=resolvedMetadata.selector;if(!selector.match(COMPONENT_SELECTOR))throw new Error("Only selectors matching element names are supported, got: "+selector);var selector=selector.replace(SKEWER_CASE,function(all,letter){return letter.toUpperCase()});return{type:type,selector:selector,inputs:parseFields(resolvedMetadata.inputs),outputs:parseFields(resolvedMetadata.outputs)}}function parseFields(names){var attrProps=[];if(names)for(var i=0;i<names.length;i++){var parts=names[i].split(":"),prop=parts[0].trim(),attr=(parts[1]||parts[0]).trim(),capitalAttr=attr.charAt(0).toUpperCase()+attr.substr(1);attrProps.push({prop:prop,attr:attr,bracketAttr:"["+attr+"]",parenAttr:"("+attr+")",bracketParenAttr:"[("+attr+")]",onAttr:"on"+capitalAttr,bindAttr:"bind"+capitalAttr,bindonAttr:"bindon"+capitalAttr})}return attrProps}function onError(e){throw console.log(e,e.stack),e}function controllerKey(name){return"$"+name+"Controller"}function ng1ComponentDirective(info,idPrefix){function directiveFactory(ng1Injector,componentFactoryRefMap,parse){var idCount=0;return{restrict:"E",require:REQUIRE_INJECTOR,link:{post:function(scope,element,attrs,parentInjector){var componentFactory=componentFactoryRefMap[info.selector];if(!componentFactory)throw new Error("Expecting ComponentFactory for: "+info.selector);element[0],null===parentInjector&&(parentInjector=ng1Injector.get(NG2_INJECTOR));var facade=new DowngradeNg2ComponentAdapter(idPrefix+idCount++,info,element,attrs,scope,parentInjector,parse,componentFactory);facade.setupInputs(),facade.bootstrapNg2(),facade.projectContent(),facade.setupOutputs(),facade.registerCleanup()}}}}return directiveFactory.$inject=[NG1_INJECTOR,NG2_COMPONENT_FACTORY_REF_MAP,NG1_PARSE],directiveFactory}var angular={bootstrap:noNg,module:noNg,element:noNg,version:noNg,resumeBootstrap:noNg,getTestability:noNg};try{window.hasOwnProperty("angular")&&(angular=window.angular)}catch(e){}var bootstrap=angular.bootstrap,module$1=angular.module,element=angular.element,NG2_COMPILER="ng2.Compiler",NG2_INJECTOR="ng2.Injector",NG2_COMPONENT_FACTORY_REF_MAP="ng2.ComponentFactoryRefMap",NG2_ZONE="ng2.NgZone",NG1_CONTROLLER="$controller",NG1_SCOPE="$scope",NG1_ROOT_SCOPE="$rootScope",NG1_COMPILE="$compile",NG1_HTTP_BACKEND="$httpBackend",NG1_INJECTOR="$injector",NG1_PARSE="$parse",NG1_TEMPLATE_CACHE="$templateCache",NG1_TESTABILITY="$$testability",REQUIRE_INJECTOR="?^"+NG2_INJECTOR,INITIAL_VALUE={__UNINITIALIZED__:!0},DowngradeNg2ComponentAdapter=function(){function DowngradeNg2ComponentAdapter(id,info,element,attrs,scope,parentInjector,parse,componentFactory){this.id=id,this.info=info,this.element=element,this.attrs=attrs,this.scope=scope,this.parentInjector=parentInjector,this.parse=parse,this.componentFactory=componentFactory,this.component=null,this.inputChangeCount=0,this.inputChanges=null,this.componentRef=null,this.changeDetector=null,this.contentInsertionPoint=null,this.element[0].id=id,this.componentScope=scope.$new(),this.childNodes=element.contents()}return DowngradeNg2ComponentAdapter.prototype.bootstrapNg2=function(){var childInjector=_angular_core.ReflectiveInjector.resolveAndCreate([{provide:NG1_SCOPE,useValue:this.componentScope}],this.parentInjector);this.contentInsertionPoint=document.createComment("ng1 insertion point"),this.componentRef=this.componentFactory.create(childInjector,[[this.contentInsertionPoint]],this.element[0]),this.changeDetector=this.componentRef.changeDetectorRef,this.component=this.componentRef.instance},DowngradeNg2ComponentAdapter.prototype.setupInputs=function(){for(var _this=this,attrs=this.attrs,inputs=this.info.inputs,i=0;i<inputs.length;i++){var input=inputs[i],expr=null;if(attrs.hasOwnProperty(input.attr)){var observeFn=function(prop){var prevValue=INITIAL_VALUE;return function(value){null!==_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(value,prevValue===INITIAL_VALUE?value:prevValue),prevValue=value),_this.component[prop]=value}}(input.prop);attrs.$observe(input.attr,observeFn)}else attrs.hasOwnProperty(input.bindAttr)?expr=attrs[input.bindAttr]:attrs.hasOwnProperty(input.bracketAttr)?expr=attrs[input.bracketAttr]:attrs.hasOwnProperty(input.bindonAttr)?expr=attrs[input.bindonAttr]:attrs.hasOwnProperty(input.bracketParenAttr)&&(expr=attrs[input.bracketParenAttr]);if(null!=expr){var watchFn=function(prop){return function(value,prevValue){null!=_this.inputChanges&&(_this.inputChangeCount++,_this.inputChanges[prop]=new Ng1Change(prevValue,value)),_this.component[prop]=value}}(input.prop);this.componentScope.$watch(expr,watchFn)}}var prototype=this.info.type.prototype;prototype&&prototype.ngOnChanges&&(this.inputChanges={},this.componentScope.$watch(function(){return _this.inputChangeCount},function(){var inputChanges=_this.inputChanges;_this.inputChanges={},_this.component.ngOnChanges(inputChanges)})),this.componentScope.$watch(function(){return _this.changeDetector&&_this.changeDetector.detectChanges()})},DowngradeNg2ComponentAdapter.prototype.projectContent=function(){var childNodes=this.childNodes,parent=this.contentInsertionPoint.parentNode;if(parent)for(var i=0,ii=childNodes.length;ii>i;i++)parent.insertBefore(childNodes[i],this.contentInsertionPoint)},DowngradeNg2ComponentAdapter.prototype.setupOutputs=function(){for(var _this=this,attrs=this.attrs,outputs=this.info.outputs,j=0;j<outputs.length;j++){var output=outputs[j],expr=null,assignExpr=!1,bindonAttr=output.bindonAttr?output.bindonAttr.substring(0,output.bindonAttr.length-6):null,bracketParenAttr=output.bracketParenAttr?"[("+output.bracketParenAttr.substring(2,output.bracketParenAttr.length-8)+")]":null;if(attrs.hasOwnProperty(output.onAttr)?expr=attrs[output.onAttr]:attrs.hasOwnProperty(output.parenAttr)?expr=attrs[output.parenAttr]:attrs.hasOwnProperty(bindonAttr)?(expr=attrs[bindonAttr],assignExpr=!0):attrs.hasOwnProperty(bracketParenAttr)&&(expr=attrs[bracketParenAttr],assignExpr=!0),null!=expr&&null!=assignExpr){var getter=this.parse(expr),setter=getter.assign;if(assignExpr&&!setter)throw new Error("Expression '"+expr+"' is not assignable!");var emitter=this.component[output.prop];if(!emitter)throw new Error("Missing emitter '"+output.prop+"' on component '"+this.info.selector+"'!");emitter.subscribe({next:assignExpr?function(setter){return function(v){return setter(_this.scope,v)}}(setter):function(getter){return function(v){return getter(_this.scope,{$event:v})}}(getter)})}}},DowngradeNg2ComponentAdapter.prototype.registerCleanup=function(){var _this=this;this.element.bind("$destroy",function(){_this.componentScope.$destroy(),_this.componentRef.destroy()})},DowngradeNg2ComponentAdapter}(),Ng1Change=function(){function Ng1Change(previousValue,currentValue){this.previousValue=previousValue,this.currentValue=currentValue}return Ng1Change.prototype.isFirstChange=function(){return this.previousValue===this.currentValue},Ng1Change}(),COMPONENT_SELECTOR=/^[\w|-]*$/,SKEWER_CASE=/-(\w)/g,directiveResolver=new _angular_compiler.DirectiveResolver,CAMEL_CASE=/([A-Z])/g,INITIAL_VALUE$1={__UNINITIALIZED__:!0},NOT_SUPPORTED="NOT_SUPPORTED",UpgradeNg1ComponentAdapterBuilder=function(){function UpgradeNg1ComponentAdapterBuilder(name){this.name=name,this.inputs=[],this.inputsRename=[],this.outputs=[],this.outputsRename=[],this.propertyOutputs=[],this.checkProperties=[],this.propertyMap={},this.linkFn=null,this.directive=null,this.$controller=null;var selector=name.replace(CAMEL_CASE,function(all,next){return"-"+next.toLowerCase()}),self=this;this.type=_angular_core.Directive({selector:selector,inputs:this.inputsRename,outputs:this.outputsRename}).Class({constructor:[new _angular_core.Inject(NG1_SCOPE),_angular_core.ElementRef,function(scope,elementRef){return new UpgradeNg1ComponentAdapter(self.linkFn,scope,self.directive,elementRef,self.$controller,self.inputs,self.outputs,self.propertyOutputs,self.checkProperties,self.propertyMap)}],ngOnInit:function(){},ngOnChanges:function(){},ngDoCheck:function(){}})}return UpgradeNg1ComponentAdapterBuilder.prototype.extractDirective=function(injector){var directives=injector.get(this.name+"Directive");if(directives.length>1)throw new Error("Only support single directive definition for: "+this.name);var directive=directives[0];directive.replace&&this.notSupported("replace"),directive.terminal&&this.notSupported("terminal");var link=directive.link;return"object"==typeof link&&link.post&&this.notSupported("link.post"),directive},UpgradeNg1ComponentAdapterBuilder.prototype.notSupported=function(feature){throw new Error("Upgraded directive '"+this.name+"' does not support '"+feature+"'.")},UpgradeNg1ComponentAdapterBuilder.prototype.extractBindings=function(){var btcIsObject="object"==typeof this.directive.bindToController;if(btcIsObject&&Object.keys(this.directive.scope).length)throw new Error("Binding definitions on scope and controller at the same time are not supported.");var context=btcIsObject?this.directive.bindToController:this.directive.scope;if("object"==typeof context)for(var name in context)if(context.hasOwnProperty(name)){var localName=context[name],type=localName.charAt(0);localName=localName.substr(1)||name;var outputName="output_"+name,outputNameRename=outputName+": "+name,outputNameRenameChange=outputName+": "+name+"Change",inputName="input_"+name,inputNameRename=inputName+": "+name;switch(type){case"=":this.propertyOutputs.push(outputName),this.checkProperties.push(localName),this.outputs.push(outputName),this.outputsRename.push(outputNameRenameChange),this.propertyMap[outputName]=localName;case"@":case"<":this.inputs.push(inputName),this.inputsRename.push(inputNameRename),this.propertyMap[inputName]=localName;break;case"&":this.outputs.push(outputName),this.outputsRename.push(outputNameRename),this.propertyMap[outputName]=localName;break;default:var json=JSON.stringify(context);throw new Error("Unexpected mapping '"+type+"' in '"+json+"' in '"+this.name+"' directive.")}}},UpgradeNg1ComponentAdapterBuilder.prototype.compileTemplate=function(compile,templateCache,httpBackend){function compileHtml(html){var div=document.createElement("div");return div.innerHTML=html,compile(div.childNodes)}var _this=this;if(void 0!==this.directive.template)this.linkFn=compileHtml("function"==typeof this.directive.template?this.directive.template():this.directive.template);else{if(!this.directive.templateUrl)throw new Error("Directive '"+this.name+"' is not a component, it is missing template.");var url="function"==typeof this.directive.templateUrl?this.directive.templateUrl():this.directive.templateUrl,html=templateCache.get(url);if(void 0===html)return new Promise(function(resolve,err){httpBackend("GET",url,null,function(status,response){200==status?resolve(_this.linkFn=compileHtml(templateCache.put(url,response))):err("GET "+url+" returned "+status+": "+response)})});this.linkFn=compileHtml(html)}return null},UpgradeNg1ComponentAdapterBuilder.resolve=function(exportedComponents,injector){var promises=[],compile=injector.get(NG1_COMPILE),templateCache=injector.get(NG1_TEMPLATE_CACHE),httpBackend=injector.get(NG1_HTTP_BACKEND),$controller=injector.get(NG1_CONTROLLER);for(var name in exportedComponents)if(exportedComponents.hasOwnProperty(name)){var exportedComponent=exportedComponents[name];exportedComponent.directive=exportedComponent.extractDirective(injector),exportedComponent.$controller=$controller,exportedComponent.extractBindings();var promise=exportedComponent.compileTemplate(compile,templateCache,httpBackend);promise&&promises.push(promise)}return Promise.all(promises)},UpgradeNg1ComponentAdapterBuilder}(),UpgradeNg1ComponentAdapter=function(){function UpgradeNg1ComponentAdapter(linkFn,scope,directive,elementRef,$controller,inputs,outputs,propOuts,checkProperties,propertyMap){this.linkFn=linkFn,this.directive=directive,this.$controller=$controller,this.inputs=inputs,this.outputs=outputs,this.propOuts=propOuts,this.checkProperties=checkProperties,this.propertyMap=propertyMap,this.destinationObj=null,this.checkLastValues=[],this.$element=null,this.element=elementRef.nativeElement,this.componentScope=scope.$new(!!directive.scope),this.$element=element(this.element);var controllerType=directive.controller;this.destinationObj=directive.bindToController&&controllerType?this.buildController(controllerType):this.componentScope;for(var i=0;i<inputs.length;i++)this[inputs[i]]=null;for(var j=0;j<outputs.length;j++){var emitter=this[outputs[j]]=new _angular_core.EventEmitter;this.setComponentProperty(outputs[j],function(emitter){return function(value){return emitter.emit(value)}}(emitter))}for(var k=0;k<propOuts.length;k++)this[propOuts[k]]=new _angular_core.EventEmitter,this.checkLastValues.push(INITIAL_VALUE$1)}return UpgradeNg1ComponentAdapter.prototype.ngOnInit=function(){var _this=this;!this.directive.bindToController&&this.directive.controller&&this.buildController(this.directive.controller);var link=this.directive.link;if("object"==typeof link&&(link=link.pre),link){var attrs=NOT_SUPPORTED,transcludeFn=NOT_SUPPORTED,linkController=this.resolveRequired(this.$element,this.directive.require);this.directive.link(this.componentScope,this.$element,attrs,linkController,transcludeFn)}for(var childNode,childNodes=[];childNode=this.element.firstChild;)this.element.removeChild(childNode),childNodes.push(childNode);this.linkFn(this.componentScope,function(clonedElement){for(var i=0,ii=clonedElement.length;ii>i;i++)_this.element.appendChild(clonedElement[i])},{parentBoundTranscludeFn:function(scope,cloneAttach){cloneAttach(childNodes)}}),this.destinationObj.$onInit&&this.destinationObj.$onInit()},UpgradeNg1ComponentAdapter.prototype.ngOnChanges=function(changes){for(var name in changes)if(changes.hasOwnProperty(name)){var change=changes[name];this.setComponentProperty(name,change.currentValue)}},UpgradeNg1ComponentAdapter.prototype.ngDoCheck=function(){for(var count=0,destinationObj=this.destinationObj,lastValues=this.checkLastValues,checkProperties=this.checkProperties,i=0;i<checkProperties.length;i++){var value=destinationObj[checkProperties[i]],last=lastValues[i];if(value!==last)if("number"==typeof value&&isNaN(value)&&"number"==typeof last&&isNaN(last));else{var eventEmitter=this[this.propOuts[i]];eventEmitter.emit(lastValues[i]=value)}}return count},UpgradeNg1ComponentAdapter.prototype.setComponentProperty=function(name,value){this.destinationObj[this.propertyMap[name]]=value},UpgradeNg1ComponentAdapter.prototype.buildController=function(controllerType){var locals={$scope:this.componentScope,$element:this.$element},controller=this.$controller(controllerType,locals,null,this.directive.controllerAs);return this.$element.data(controllerKey(this.directive.name),controller),controller},UpgradeNg1ComponentAdapter.prototype.resolveRequired=function($element,require){if(!require)return void 0;if("string"==typeof require){var name=require,isOptional=!1,startParent=!1,searchParents=!1;"?"==name.charAt(0)&&(isOptional=!0,name=name.substr(1)),"^"==name.charAt(0)&&(searchParents=!0,name=name.substr(1)),"^"==name.charAt(0)&&(startParent=!0,name=name.substr(1));var key=controllerKey(name);startParent&&($element=$element.parent());var dep=searchParents?$element.inheritedData(key):$element.data(key);if(!dep&&!isOptional)throw new Error("Can not locate '"+require+"' in '"+this.directive.name+"'.");return dep}if(require instanceof Array){for(var deps=[],i=0;i<require.length;i++)deps.push(this.resolveRequired($element,require[i]));return deps}throw new Error("Directive '"+this.directive.name+"' require syntax unrecognized: "+this.directive.require)},UpgradeNg1ComponentAdapter}(),upgradeCount=0,UpgradeAdapter=function(){function UpgradeAdapter(){this.idPrefix="NG2_UPGRADE_"+upgradeCount++ +"_",this.upgradedComponents=[],this.downgradedComponents={},this.providers=[]}return UpgradeAdapter.prototype.downgradeNg2Component=function(type){this.upgradedComponents.push(type);var info=getComponentInfo(type);return ng1ComponentDirective(info,""+this.idPrefix+info.selector+"_c")},UpgradeAdapter.prototype.upgradeNg1Component=function(name){return this.downgradedComponents.hasOwnProperty(name)?this.downgradedComponents[name].type:(this.downgradedComponents[name]=new UpgradeNg1ComponentAdapterBuilder(name)).type},UpgradeAdapter.prototype.bootstrap=function(element$$,modules,config){var original$applyFn,rootScopePrototype,rootScope,_this=this,upgrade=new UpgradeAdapterRef,ng1Injector=null,platformRef=_angular_platformBrowser.browserPlatform(),applicationRef=_angular_core.ReflectiveInjector.resolveAndCreate([_angular_platformBrowser.BROWSER_APP_PROVIDERS,_angular_platformBrowserDynamic.BROWSER_APP_COMPILER_PROVIDERS,{provide:NG1_INJECTOR,useFactory:function(){return ng1Injector}},{provide:NG1_COMPILE,useFactory:function(){return ng1Injector.get(NG1_COMPILE)}},this.providers],platformRef.injector).get(_angular_core.ApplicationRef),injector=applicationRef.injector,ngZone=injector.get(_angular_core.NgZone),compiler=injector.get(_angular_core.ComponentResolver),delayApplyExps=[],componentFactoryRefMap={},ng1Module=module$1(this.idPrefix,modules),ng1BootstrapPromise=null,ng1compilePromise=null;ng1Module.value(NG2_INJECTOR,injector).value(NG2_ZONE,ngZone).value(NG2_COMPILER,compiler).value(NG2_COMPONENT_FACTORY_REF_MAP,componentFactoryRefMap).config(["$provide","$injector",function(provide,ng1Injector){provide.decorator(NG1_ROOT_SCOPE,["$delegate",function(rootScopeDelegate){if(rootScopePrototype=rootScopeDelegate.constructor.prototype,!rootScopePrototype.hasOwnProperty("$apply"))throw new Error("Failed to find '$apply' on '$rootScope'!");return original$applyFn=rootScopePrototype.$apply,rootScopePrototype.$apply=function(exp){return delayApplyExps.push(exp)},rootScope=rootScopeDelegate}]),ng1Injector.has(NG1_TESTABILITY)&&provide.decorator(NG1_TESTABILITY,["$delegate",function(testabilityDelegate){var _this=this,ng2Testability=injector.get(_angular_core.Testability),origonalWhenStable=testabilityDelegate.whenStable,newWhenStable=function(callback){var whenStableContext=_this;origonalWhenStable.call(_this,function(){ng2Testability.isStable()?callback.apply(this,arguments):ng2Testability.whenStable(newWhenStable.bind(whenStableContext,callback))})};return testabilityDelegate.whenStable=newWhenStable,testabilityDelegate}])}]),ng1compilePromise=new Promise(function(resolve,reject){ng1Module.run(["$injector","$rootScope",function(injector,rootScope){ng1Injector=injector,ngZone.onMicrotaskEmpty.subscribe({next:function(){return ngZone.runOutsideAngular(function(){return rootScope.$evalAsync()})}}),UpgradeNg1ComponentAdapterBuilder.resolve(_this.downgradedComponents,injector).then(resolve,reject)}])});var windowAngular=window.angular;return windowAngular.resumeBootstrap=void 0,element(element$$).data(controllerKey(NG2_INJECTOR),injector),ngZone.run(function(){bootstrap(element$$,[_this.idPrefix],config)}),ng1BootstrapPromise=new Promise(function(resolve){if(windowAngular.resumeBootstrap){var originalResumeBootstrap=windowAngular.resumeBootstrap;windowAngular.resumeBootstrap=function(){windowAngular.resumeBootstrap=originalResumeBootstrap,windowAngular.resumeBootstrap.apply(this,arguments),resolve()}}else resolve()}),Promise.all([this.compileNg2Components(compiler,componentFactoryRefMap),ng1BootstrapPromise,ng1compilePromise]).then(function(){ngZone.run(function(){if(rootScopePrototype){for(rootScopePrototype.$apply=original$applyFn;delayApplyExps.length;)rootScope.$apply(delayApplyExps.shift());upgrade._bootstrapDone(applicationRef,ng1Injector),rootScopePrototype=null}})},onError),upgrade},UpgradeAdapter.prototype.addProvider=function(provider){this.providers.push(provider)},UpgradeAdapter.prototype.upgradeNg1Provider=function(name,options){var token=options&&options.asToken||name;this.providers.push({provide:token,useFactory:function(ng1Injector){return ng1Injector.get(name)},deps:[NG1_INJECTOR]})},UpgradeAdapter.prototype.downgradeNg2Provider=function(token){var factory=function(injector){return injector.get(token)};return factory.$inject=[NG2_INJECTOR],factory},UpgradeAdapter.prototype.compileNg2Components=function(compiler,componentFactoryRefMap){for(var _this=this,promises=[],types=this.upgradedComponents,i=0;i<types.length;i++)promises.push(compiler.resolveComponent(types[i]));return Promise.all(promises).then(function(componentFactories){for(var types=_this.upgradedComponents,i=0;i<componentFactories.length;i++)componentFactoryRefMap[getComponentInfo(types[i]).selector]=componentFactories[i];return componentFactoryRefMap},onError)},UpgradeAdapter}(),UpgradeAdapterRef=function(){function UpgradeAdapterRef(){this._readyFn=null,this.ng1RootScope=null,this.ng1Injector=null,this.ng2ApplicationRef=null,this.ng2Injector=null}return UpgradeAdapterRef.prototype._bootstrapDone=function(applicationRef,ng1Injector){this.ng2ApplicationRef=applicationRef,this.ng2Injector=applicationRef.injector,this.ng1Injector=ng1Injector,this.ng1RootScope=ng1Injector.get(NG1_ROOT_SCOPE),this._readyFn&&this._readyFn(this)},UpgradeAdapterRef.prototype.ready=function(fn){this._readyFn=fn},UpgradeAdapterRef.prototype.dispose=function(){this.ng1Injector.get(NG1_ROOT_SCOPE).$destroy(),this.ng2ApplicationRef.dispose()},UpgradeAdapterRef}();exports.UpgradeAdapter=UpgradeAdapter,exports.UpgradeAdapterRef=UpgradeAdapterRef});
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/@angular/upgrade/index.ts"],"names":[],"mappings":"AAIE,cAAc,WAAW,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export * from './upgrade';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/@angular/upgrade/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC","sourcesContent":["export * from './upgrade';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -28,6 +28,7 @@ export interface IRootScopeService {
28
28
  $apply(): any;
29
29
  $apply(exp: string): any;
30
30
  $apply(exp: Function): any;
31
+ $evalAsync(): any;
31
32
  $$childTail: IScope;
32
33
  $$childHead: IScope;
33
34
  $$nextSibling: IScope;
@@ -1 +1 @@
1
- {"version":3,"file":"angular_js.js","sourceRoot":"","sources":["../../../../../modules/@angular/upgrade/src/angular_js.ts"],"names":[],"mappings":"AA0HA;IACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,OAAO,GAOE;IACP,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;CACrB,CAAC;AAGN,IAAI,CAAC;IACH,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,GAAS,MAAO,CAAC,OAAO,CAAC;IAClC,CAAC;AACH,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEb,CAAC;AAED,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACnC,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,OAAO,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACrD,OAAO,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export interface IModule {\n config(fn: any): IModule;\n directive(selector: string, factory: any): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: any): IModule;\n factory(key: string, factoryFn: any): IModule;\n value(key: string, value: any): IModule;\n run(a: any): void;\n}\nexport interface ICompileService {\n (element: Element | NodeList | string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: Function, options?: ILinkFnOptions): void;\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $watch(expr: any, fn?: (a1?: any, a2?: any) => void): Function;\n $destroy(): any;\n $apply(): any;\n $apply(exp: string): any;\n $apply(exp: Function): any;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n}\nexport interface IScope extends IRootScopeService {}\nexport interface IAngularBootstrapConfig {}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: any;\n controllerAs?: string;\n bindToController?: boolean | Object;\n link?: IDirectiveLinkFn | IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: any;\n restrict?: string;\n scope?: any;\n template?: any;\n templateUrl?: any;\n terminal?: boolean;\n transclude?: any;\n}\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: Object;\n controller?: any;\n controllerAs?: string;\n require?: any;\n template?: any;\n templateUrl?: any;\n transclude?: any;\n}\nexport interface IAttributes { $observe(attr: string, fn: (v: string) => void): void; }\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n // Let's hint but not force cloneAttachFn's signature\n (clonedElement?: IAugmentedJQuery, scope?: IScope): any;\n}\nexport interface IAugmentedJQuery {\n bind(name: string, fn: () => void): void;\n data(name: string, value?: any): any;\n inheritedData(name: string, value?: any): any;\n contents(): IAugmentedJQuery;\n parent(): IAugmentedJQuery;\n length: number;\n [index: number]: Node;\n}\nexport interface IParseService { (expression: string): ICompiledExpression; }\nexport interface ICompiledExpression { assign(context: any, value: any): any; }\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put<T>(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport interface IControllerService {\n (controllerConstructor: Function, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService { get(key: string): any; }\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nfunction noNg() {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nvar angular:\n {\n bootstrap: (e: Element, modules: string[], config: IAngularBootstrapConfig) => void,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: (e: Element) => IAugmentedJQuery,\n version: {major: number}, resumeBootstrap?: () => void,\n getTestability: (e: Element) => ITestabilityService\n } = <any>{\n bootstrap: noNg,\n module: noNg,\n element: noNg,\n version: noNg,\n resumeBootstrap: noNg,\n getTestability: noNg\n };\n\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (<any>window).angular;\n }\n} catch (e) {\n // ignore in CJS mode.\n}\n\nexport var bootstrap = angular.bootstrap;\nexport var module = angular.module;\nexport var element = angular.element;\nexport var version = angular.version;\nexport var resumeBootstrap = angular.resumeBootstrap;\nexport var getTestability = angular.getTestability;\n"]}
1
+ {"version":3,"file":"angular_js.js","sourceRoot":"","sources":["../../../../../modules/@angular/upgrade/src/angular_js.ts"],"names":[],"mappings":"AAuHA;IACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,OAAO,GAMF;IACP,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;CACrB,CAAC;AAGF,IAAI,CAAC;IACH,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,GAAS,MAAO,CAAC,OAAO,CAAC;IAClC,CAAC;AACH,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEb,CAAC;AAED,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACnC,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,OAAO,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACrD,OAAO,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC","sourcesContent":["export interface IModule {\n config(fn: any): IModule;\n directive(selector: string, factory: any): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: any): IModule;\n factory(key: string, factoryFn: any): IModule;\n value(key: string, value: any): IModule;\n run(a: any): void;\n}\nexport interface ICompileService {\n (element: Element|NodeList|string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: Function, options?: ILinkFnOptions): void;\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $watch(expr: any, fn?: (a1?: any, a2?: any) => void): Function;\n $destroy(): any;\n $apply(): any;\n $apply(exp: string): any;\n $apply(exp: Function): any;\n $evalAsync(): any;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n}\nexport interface IScope extends IRootScopeService {}\nexport interface IAngularBootstrapConfig {}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: any;\n controllerAs?: string;\n bindToController?: boolean|Object;\n link?: IDirectiveLinkFn|IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: any;\n restrict?: string;\n scope?: any;\n template?: any;\n templateUrl?: any;\n terminal?: boolean;\n transclude?: any;\n}\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: Object;\n controller?: any;\n controllerAs?: string;\n require?: any;\n template?: any;\n templateUrl?: any;\n transclude?: any;\n}\nexport interface IAttributes { $observe(attr: string, fn: (v: string) => void): void; }\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n // Let's hint but not force cloneAttachFn's signature\n (clonedElement?: IAugmentedJQuery, scope?: IScope): any;\n}\nexport interface IAugmentedJQuery {\n bind(name: string, fn: () => void): void;\n data(name: string, value?: any): any;\n inheritedData(name: string, value?: any): any;\n contents(): IAugmentedJQuery;\n parent(): IAugmentedJQuery;\n length: number;\n [index: number]: Node;\n}\nexport interface IParseService { (expression: string): ICompiledExpression; }\nexport interface ICompiledExpression { assign(context: any, value: any): any; }\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put<T>(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport interface IControllerService {\n (controllerConstructor: Function, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService { get(key: string): any; }\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nfunction noNg() {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nvar angular: {\n bootstrap: (e: Element, modules: string[], config: IAngularBootstrapConfig) => void,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: (e: Element) => IAugmentedJQuery,\n version: {major: number}, resumeBootstrap?: () => void,\n getTestability: (e: Element) => ITestabilityService\n} = <any>{\n bootstrap: noNg,\n module: noNg,\n element: noNg,\n version: noNg,\n resumeBootstrap: noNg,\n getTestability: noNg\n};\n\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (<any>window).angular;\n }\n} catch (e) {\n // ignore in CJS mode.\n}\n\nexport var bootstrap = angular.bootstrap;\nexport var module = angular.module;\nexport var element = angular.element;\nexport var version = angular.version;\nexport var resumeBootstrap = angular.resumeBootstrap;\nexport var getTestability = angular.getTestability;\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","metadata":{"bootstrap":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"bootstrap"},"module":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"module"},"element":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"element"},"version":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"version"},"resumeBootstrap":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"resumeBootstrap"},"getTestability":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"getTestability"}}}
1
+ {"__symbolic":"module","version":1,"metadata":{"bootstrap":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"bootstrap"},"module":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"module"},"element":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"element"},"version":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"version"},"resumeBootstrap":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"resumeBootstrap"},"getTestability":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"angular"},"member":"getTestability"}}}
@@ -11,5 +11,5 @@ export const NG1_INJECTOR = '$injector';
11
11
  export const NG1_PARSE = '$parse';
12
12
  export const NG1_TEMPLATE_CACHE = '$templateCache';
13
13
  export const NG1_TESTABILITY = '$$testability';
14
- export const REQUIRE_INJECTOR = '^' + NG2_INJECTOR;
14
+ export const REQUIRE_INJECTOR = '?^' + NG2_INJECTOR;
15
15
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../modules/@angular/upgrade/src/constants.ts"],"names":[],"mappings":"AAIE,OAAO,MAAM,YAAY,GAAG,cAAc,CAAC;AAC7C,OAAO,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,OAAO,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAC1E,OAAO,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,OAAO,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,OAAO,MAAM,cAAc,GAAG,YAAY,CAAC;AAC3C,OAAO,MAAM,WAAW,GAAG,UAAU,CAAC;AACtC,OAAO,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,OAAO,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,OAAO,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,OAAO,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,OAAO,MAAM,gBAAgB,GAAG,GAAG,GAAG,YAAY,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n export const NG2_COMPILER = 'ng2.Compiler';\nexport const NG2_INJECTOR = 'ng2.Injector';\nexport const NG2_COMPONENT_FACTORY_REF_MAP = 'ng2.ComponentFactoryRefMap';\nexport const NG2_ZONE = 'ng2.NgZone';\n\nexport const NG1_CONTROLLER = '$controller';\nexport const NG1_SCOPE = '$scope';\nexport const NG1_ROOT_SCOPE = '$rootScope';\nexport const NG1_COMPILE = '$compile';\nexport const NG1_HTTP_BACKEND = '$httpBackend';\nexport const NG1_INJECTOR = '$injector';\nexport const NG1_PARSE = '$parse';\nexport const NG1_TEMPLATE_CACHE = '$templateCache';\nexport const NG1_TESTABILITY = '$$testability';\nexport const REQUIRE_INJECTOR = '^' + NG2_INJECTOR;\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../modules/@angular/upgrade/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,OAAO,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,OAAO,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAC1E,OAAO,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,OAAO,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,OAAO,MAAM,cAAc,GAAG,YAAY,CAAC;AAC3C,OAAO,MAAM,WAAW,GAAG,UAAU,CAAC;AACtC,OAAO,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,OAAO,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,OAAO,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,OAAO,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,OAAO,MAAM,gBAAgB,GAAG,IAAI,GAAG,YAAY,CAAC","sourcesContent":["export const NG2_COMPILER = 'ng2.Compiler';\nexport const NG2_INJECTOR = 'ng2.Injector';\nexport const NG2_COMPONENT_FACTORY_REF_MAP = 'ng2.ComponentFactoryRefMap';\nexport const NG2_ZONE = 'ng2.NgZone';\n\nexport const NG1_CONTROLLER = '$controller';\nexport const NG1_SCOPE = '$scope';\nexport const NG1_ROOT_SCOPE = '$rootScope';\nexport const NG1_COMPILE = '$compile';\nexport const NG1_HTTP_BACKEND = '$httpBackend';\nexport const NG1_INJECTOR = '$injector';\nexport const NG1_PARSE = '$parse';\nexport const NG1_TEMPLATE_CACHE = '$templateCache';\nexport const NG1_TESTABILITY = '$$testability';\nexport const REQUIRE_INJECTOR = '?^' + NG2_INJECTOR;\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}