@angular/core 2.2.0-rc.0 → 2.2.3
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.
- package/bundles/core-testing.umd.js +44 -11
- package/bundles/core.umd.js +560 -513
- package/bundles/core.umd.min.js +8 -8
- package/package.json +1 -1
- package/src/animation/animation_group_player.d.ts +3 -1
- package/src/animation/animation_group_player.js +18 -7
- package/src/animation/animation_group_player.js.map +1 -1
- package/src/animation/animation_player.d.ts +1 -1
- package/src/animation/animation_player.js +1 -1
- package/src/animation/animation_player.js.map +1 -1
- package/src/animation/animation_queue.js +8 -0
- package/src/animation/animation_queue.js.map +1 -1
- package/src/animation/animation_sequence_player.d.ts +3 -1
- package/src/animation/animation_sequence_player.js +20 -8
- package/src/animation/animation_sequence_player.js.map +1 -1
- package/src/animation/animation_style_util.js +1 -0
- package/src/animation/animation_style_util.js.map +1 -1
- package/src/animation/animation_style_util.metadata.json +1 -1
- package/src/animation/metadata.js.map +1 -1
- package/src/animation/view_animation_map.js.map +1 -1
- package/src/change_detection/constants.d.ts +1 -1
- package/src/change_detection/constants.js +1 -1
- package/src/change_detection/constants.js.map +1 -1
- package/src/change_detection/differs/default_iterable_differ.js +2 -2
- package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
- package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
- package/src/change_detection/differs/iterable_differs.js.map +1 -1
- package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
- package/src/core_private_export.d.ts +8 -3
- package/src/core_private_export.js +6 -2
- package/src/core_private_export.js.map +1 -1
- package/src/core_private_export.metadata.json +1 -1
- package/src/debug/debug_node.js +12 -24
- package/src/debug/debug_node.js.map +1 -1
- package/src/debug/debug_node.metadata.json +1 -1
- package/src/debug/debug_renderer.d.ts +2 -2
- package/src/debug/debug_renderer.js +7 -5
- package/src/debug/debug_renderer.js.map +1 -1
- package/src/di/reflective_errors.js.map +1 -1
- package/src/di/reflective_injector.js.map +1 -1
- package/src/di/reflective_key.js.map +1 -1
- package/src/di/reflective_provider.js +13 -14
- package/src/di/reflective_provider.js.map +1 -1
- package/src/facade/collection.d.ts +2 -10
- package/src/facade/collection.js +8 -73
- package/src/facade/collection.js.map +1 -1
- package/src/facade/lang.d.ts +0 -1
- package/src/facade/lang.js +5 -24
- package/src/facade/lang.js.map +1 -1
- package/src/facade/lang.metadata.json +1 -1
- package/src/linker/animation_view_context.d.ts +1 -1
- package/src/linker/animation_view_context.js +16 -5
- package/src/linker/animation_view_context.js.map +1 -1
- package/src/linker/component_factory.d.ts +8 -6
- package/src/linker/component_factory.js +17 -23
- package/src/linker/component_factory.js.map +1 -1
- package/src/linker/component_factory_resolver.js.map +1 -1
- package/src/linker/debug_context.js +6 -9
- package/src/linker/debug_context.js.map +1 -1
- package/src/linker/element_injector.js +1 -8
- package/src/linker/element_injector.js.map +1 -1
- package/src/linker/ng_module_factory.js.map +1 -1
- package/src/linker/ng_module_factory_loader.js.map +1 -1
- package/src/linker/system_js_ng_module_factory_loader.js +2 -1
- package/src/linker/system_js_ng_module_factory_loader.js.map +1 -1
- package/src/linker/template_ref.d.ts +5 -4
- package/src/linker/template_ref.js +8 -6
- package/src/linker/template_ref.js.map +1 -1
- package/src/linker/view.d.ts +29 -17
- package/src/linker/view.js +143 -51
- package/src/linker/view.js.map +1 -1
- package/src/linker/{element.d.ts → view_container.d.ts} +4 -7
- package/src/linker/{element.js → view_container.js} +45 -50
- package/src/linker/view_container.js.map +1 -0
- package/src/linker/view_container_ref.d.ts +2 -2
- package/src/linker/view_container_ref.js.map +1 -1
- package/src/linker/view_utils.d.ts +6 -10
- package/src/linker/view_utils.js +17 -14
- package/src/linker/view_utils.js.map +1 -1
- package/src/linker/view_utils.metadata.json +1 -1
- package/src/profile/wtf_impl.js.map +1 -1
- package/src/reflection/reflection_capabilities.js +5 -2
- package/src/reflection/reflection_capabilities.js.map +1 -1
- package/src/render/api.d.ts +8 -1
- package/src/render/api.js.map +1 -1
- package/src/testability/testability.js +2 -3
- package/src/testability/testability.js.map +1 -1
- package/src/util/decorators.js.map +1 -1
- package/testing/async.js.map +1 -1
- package/testing/facade/lang.d.ts +0 -1
- package/testing/facade/lang.js +5 -24
- package/testing/facade/lang.js.map +1 -1
- package/testing/facade/lang.metadata.json +1 -1
- package/testing/fake_async.js.map +1 -1
- package/testing/mock_animation_player.d.ts +16 -1
- package/testing/mock_animation_player.js +43 -14
- package/testing/mock_animation_player.js.map +1 -1
- package/testing/test_bed.js.map +1 -1
- package/testing/testing.js.map +1 -1
- package/src/linker/element.js.map +0 -1
package/src/linker/view.js
CHANGED
|
@@ -11,6 +11,7 @@ var __extends = (this && this.__extends) || function (d, b) {
|
|
|
11
11
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
12
|
};
|
|
13
13
|
import { ChangeDetectorStatus } from '../change_detection/change_detection';
|
|
14
|
+
import { THROW_IF_NOT_FOUND } from '../di/injector';
|
|
14
15
|
import { isPresent } from '../facade/lang';
|
|
15
16
|
import { wtfCreateScope, wtfLeave } from '../profile/profile';
|
|
16
17
|
import { AnimationViewContext } from './animation_view_context';
|
|
@@ -21,28 +22,37 @@ import { ViewRef_ } from './view_ref';
|
|
|
21
22
|
import { ViewType } from './view_type';
|
|
22
23
|
import { addToArray } from './view_utils';
|
|
23
24
|
var _scope_check = wtfCreateScope("AppView#check(ascii id)");
|
|
25
|
+
/**
|
|
26
|
+
* @experimental
|
|
27
|
+
*/
|
|
28
|
+
var EMPTY_CONTEXT = new Object();
|
|
29
|
+
var UNDEFINED = new Object();
|
|
24
30
|
/**
|
|
25
31
|
* Cost of making objects: http://jsperf.com/instantiate-size-of-object
|
|
26
32
|
*
|
|
27
33
|
*/
|
|
28
34
|
export var AppView = (function () {
|
|
29
|
-
function AppView(clazz, componentType, type, viewUtils,
|
|
35
|
+
function AppView(clazz, componentType, type, viewUtils, parentView, parentIndex, parentElement, cdMode, declaredViewContainer) {
|
|
36
|
+
if (declaredViewContainer === void 0) { declaredViewContainer = null; }
|
|
30
37
|
this.clazz = clazz;
|
|
31
38
|
this.componentType = componentType;
|
|
32
39
|
this.type = type;
|
|
33
40
|
this.viewUtils = viewUtils;
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
41
|
+
this.parentView = parentView;
|
|
42
|
+
this.parentIndex = parentIndex;
|
|
43
|
+
this.parentElement = parentElement;
|
|
36
44
|
this.cdMode = cdMode;
|
|
37
|
-
this.
|
|
45
|
+
this.declaredViewContainer = declaredViewContainer;
|
|
46
|
+
this.viewContainer = null;
|
|
38
47
|
this.numberOfChecks = 0;
|
|
39
48
|
this.ref = new ViewRef_(this);
|
|
40
49
|
if (type === ViewType.COMPONENT || type === ViewType.HOST) {
|
|
41
50
|
this.renderer = viewUtils.renderComponent(componentType);
|
|
42
51
|
}
|
|
43
52
|
else {
|
|
44
|
-
this.renderer =
|
|
53
|
+
this.renderer = parentView.renderer;
|
|
45
54
|
}
|
|
55
|
+
this._directRenderer = this.renderer.directRenderer;
|
|
46
56
|
}
|
|
47
57
|
Object.defineProperty(AppView.prototype, "animationContext", {
|
|
48
58
|
get: function () {
|
|
@@ -59,16 +69,26 @@ export var AppView = (function () {
|
|
|
59
69
|
enumerable: true,
|
|
60
70
|
configurable: true
|
|
61
71
|
});
|
|
62
|
-
AppView.prototype.create = function (context
|
|
72
|
+
AppView.prototype.create = function (context) {
|
|
63
73
|
this.context = context;
|
|
74
|
+
return this.createInternal(null);
|
|
75
|
+
};
|
|
76
|
+
AppView.prototype.createHostView = function (rootSelectorOrNode, hostInjector, projectableNodes) {
|
|
77
|
+
this.context = EMPTY_CONTEXT;
|
|
64
78
|
this._hasExternalHostElement = isPresent(rootSelectorOrNode);
|
|
79
|
+
this._hostInjector = hostInjector;
|
|
80
|
+
this._hostProjectableNodes = projectableNodes;
|
|
65
81
|
return this.createInternal(rootSelectorOrNode);
|
|
66
82
|
};
|
|
67
83
|
/**
|
|
68
84
|
* Overwritten by implementations.
|
|
69
|
-
* Returns the
|
|
85
|
+
* Returns the ComponentRef for the host element for ViewType.HOST.
|
|
70
86
|
*/
|
|
71
87
|
AppView.prototype.createInternal = function (rootSelectorOrNode) { return null; };
|
|
88
|
+
/**
|
|
89
|
+
* Overwritten by implementations.
|
|
90
|
+
*/
|
|
91
|
+
AppView.prototype.createEmbeddedViewInternal = function (templateNodeIndex) { return null; };
|
|
72
92
|
AppView.prototype.init = function (lastRootNode, allNodes, disposables) {
|
|
73
93
|
this.lastRootNode = lastRootNode;
|
|
74
94
|
this.allNodes = allNodes;
|
|
@@ -77,8 +97,21 @@ export var AppView = (function () {
|
|
|
77
97
|
this.dirtyParentQueriesInternal();
|
|
78
98
|
}
|
|
79
99
|
};
|
|
80
|
-
AppView.prototype.injectorGet = function (token, nodeIndex,
|
|
81
|
-
|
|
100
|
+
AppView.prototype.injectorGet = function (token, nodeIndex, notFoundValue) {
|
|
101
|
+
if (notFoundValue === void 0) { notFoundValue = THROW_IF_NOT_FOUND; }
|
|
102
|
+
var result = UNDEFINED;
|
|
103
|
+
var view = this;
|
|
104
|
+
while (result === UNDEFINED) {
|
|
105
|
+
if (isPresent(nodeIndex)) {
|
|
106
|
+
result = view.injectorGetInternal(token, nodeIndex, UNDEFINED);
|
|
107
|
+
}
|
|
108
|
+
if (result === UNDEFINED && view.type === ViewType.HOST) {
|
|
109
|
+
result = view._hostInjector.get(token, notFoundValue);
|
|
110
|
+
}
|
|
111
|
+
nodeIndex = view.parentIndex;
|
|
112
|
+
view = view.parentView;
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
82
115
|
};
|
|
83
116
|
/**
|
|
84
117
|
* Overwritten by implementations
|
|
@@ -86,20 +119,13 @@ export var AppView = (function () {
|
|
|
86
119
|
AppView.prototype.injectorGetInternal = function (token, nodeIndex, notFoundResult) {
|
|
87
120
|
return notFoundResult;
|
|
88
121
|
};
|
|
89
|
-
AppView.prototype.injector = function (nodeIndex) {
|
|
90
|
-
if (isPresent(nodeIndex)) {
|
|
91
|
-
return new ElementInjector(this, nodeIndex);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
return this.parentInjector;
|
|
95
|
-
}
|
|
96
|
-
};
|
|
122
|
+
AppView.prototype.injector = function (nodeIndex) { return new ElementInjector(this, nodeIndex); };
|
|
97
123
|
AppView.prototype.detachAndDestroy = function () {
|
|
98
124
|
if (this._hasExternalHostElement) {
|
|
99
|
-
this.
|
|
125
|
+
this.detach();
|
|
100
126
|
}
|
|
101
|
-
else if (isPresent(this.
|
|
102
|
-
this.
|
|
127
|
+
else if (isPresent(this.viewContainer)) {
|
|
128
|
+
this.viewContainer.detachView(this.viewContainer.nestedViews.indexOf(this));
|
|
103
129
|
}
|
|
104
130
|
this.destroy();
|
|
105
131
|
};
|
|
@@ -108,7 +134,7 @@ export var AppView = (function () {
|
|
|
108
134
|
if (this.cdMode === ChangeDetectorStatus.Destroyed) {
|
|
109
135
|
return;
|
|
110
136
|
}
|
|
111
|
-
var hostElement = this.type === ViewType.COMPONENT ? this.
|
|
137
|
+
var hostElement = this.type === ViewType.COMPONENT ? this.parentElement : null;
|
|
112
138
|
if (this.disposables) {
|
|
113
139
|
for (var i = 0; i < this.disposables.length; i++) {
|
|
114
140
|
this.disposables[i]();
|
|
@@ -136,24 +162,71 @@ export var AppView = (function () {
|
|
|
136
162
|
var _this = this;
|
|
137
163
|
this.detachInternal();
|
|
138
164
|
if (this._animationContext) {
|
|
139
|
-
this._animationContext.onAllActiveAnimationsDone(function () { return _this.
|
|
165
|
+
this._animationContext.onAllActiveAnimationsDone(function () { return _this._renderDetach(); });
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this._renderDetach();
|
|
169
|
+
}
|
|
170
|
+
if (this.declaredViewContainer && this.declaredViewContainer !== this.viewContainer) {
|
|
171
|
+
var projectedViews = this.declaredViewContainer.projectedViews;
|
|
172
|
+
var index = projectedViews.indexOf(this);
|
|
173
|
+
// perf: pop is faster than splice!
|
|
174
|
+
if (index >= projectedViews.length - 1) {
|
|
175
|
+
projectedViews.pop();
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
projectedViews.splice(index, 1);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
this.viewContainer = null;
|
|
182
|
+
this.dirtyParentQueriesInternal();
|
|
183
|
+
};
|
|
184
|
+
AppView.prototype._renderDetach = function () {
|
|
185
|
+
if (this._directRenderer) {
|
|
186
|
+
this.visitRootNodesInternal(this._directRenderer.remove, null);
|
|
140
187
|
}
|
|
141
188
|
else {
|
|
142
189
|
this.renderer.detachView(this.flatRootNodes);
|
|
143
190
|
}
|
|
144
191
|
};
|
|
192
|
+
AppView.prototype.attachAfter = function (viewContainer, prevView) {
|
|
193
|
+
this._renderAttach(viewContainer, prevView);
|
|
194
|
+
this.viewContainer = viewContainer;
|
|
195
|
+
if (this.declaredViewContainer && this.declaredViewContainer !== viewContainer) {
|
|
196
|
+
if (!this.declaredViewContainer.projectedViews) {
|
|
197
|
+
this.declaredViewContainer.projectedViews = [];
|
|
198
|
+
}
|
|
199
|
+
this.declaredViewContainer.projectedViews.push(this);
|
|
200
|
+
}
|
|
201
|
+
this.dirtyParentQueriesInternal();
|
|
202
|
+
};
|
|
203
|
+
AppView.prototype.moveAfter = function (viewContainer, prevView) {
|
|
204
|
+
this._renderAttach(viewContainer, prevView);
|
|
205
|
+
this.dirtyParentQueriesInternal();
|
|
206
|
+
};
|
|
207
|
+
AppView.prototype._renderAttach = function (viewContainer, prevView) {
|
|
208
|
+
var prevNode = prevView ? prevView.lastRootNode : viewContainer.nativeElement;
|
|
209
|
+
if (this._directRenderer) {
|
|
210
|
+
var nextSibling = this._directRenderer.nextSibling(prevNode);
|
|
211
|
+
if (nextSibling) {
|
|
212
|
+
this.visitRootNodesInternal(this._directRenderer.insertBefore, nextSibling);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
var parentElement = this._directRenderer.parentElement(prevNode);
|
|
216
|
+
if (parentElement) {
|
|
217
|
+
this.visitRootNodesInternal(this._directRenderer.appendChild, parentElement);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
this.renderer.attachViewAfter(prevNode, this.flatRootNodes);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
145
225
|
Object.defineProperty(AppView.prototype, "changeDetectorRef", {
|
|
146
226
|
get: function () { return this.ref; },
|
|
147
227
|
enumerable: true,
|
|
148
228
|
configurable: true
|
|
149
229
|
});
|
|
150
|
-
Object.defineProperty(AppView.prototype, "parent", {
|
|
151
|
-
get: function () {
|
|
152
|
-
return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;
|
|
153
|
-
},
|
|
154
|
-
enumerable: true,
|
|
155
|
-
configurable: true
|
|
156
|
-
});
|
|
157
230
|
Object.defineProperty(AppView.prototype, "flatRootNodes", {
|
|
158
231
|
get: function () {
|
|
159
232
|
var nodes = [];
|
|
@@ -163,19 +236,31 @@ export var AppView = (function () {
|
|
|
163
236
|
enumerable: true,
|
|
164
237
|
configurable: true
|
|
165
238
|
});
|
|
166
|
-
AppView.prototype.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
239
|
+
AppView.prototype.projectNodes = function (parentElement, ngContentIndex) {
|
|
240
|
+
if (this._directRenderer) {
|
|
241
|
+
this.visitProjectedNodes(ngContentIndex, this._directRenderer.appendChild, parentElement);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
var nodes = [];
|
|
245
|
+
this.visitProjectedNodes(ngContentIndex, addToArray, nodes);
|
|
246
|
+
this.renderer.projectNodes(parentElement, nodes);
|
|
247
|
+
}
|
|
170
248
|
};
|
|
171
249
|
AppView.prototype.visitProjectedNodes = function (ngContentIndex, cb, c) {
|
|
172
|
-
var appEl = this.declarationAppElement;
|
|
173
250
|
switch (this.type) {
|
|
174
251
|
case ViewType.EMBEDDED:
|
|
175
|
-
|
|
252
|
+
this.parentView.visitProjectedNodes(ngContentIndex, cb, c);
|
|
176
253
|
break;
|
|
177
254
|
case ViewType.COMPONENT:
|
|
178
|
-
|
|
255
|
+
if (this.parentView.type === ViewType.HOST) {
|
|
256
|
+
var nodes = this.parentView._hostProjectableNodes[ngContentIndex] || [];
|
|
257
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
258
|
+
cb(nodes[i], c);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
this.parentView.visitProjectableNodesInternal(this.parentIndex, ngContentIndex, cb, c);
|
|
263
|
+
}
|
|
179
264
|
break;
|
|
180
265
|
}
|
|
181
266
|
};
|
|
@@ -210,15 +295,6 @@ export var AppView = (function () {
|
|
|
210
295
|
* Overwritten by implementations
|
|
211
296
|
*/
|
|
212
297
|
AppView.prototype.detectChangesInternal = function (throwOnChange) { };
|
|
213
|
-
AppView.prototype.markContentChildAsMoved = function (renderAppElement) { this.dirtyParentQueriesInternal(); };
|
|
214
|
-
AppView.prototype.addToContentChildren = function (renderAppElement) {
|
|
215
|
-
this.viewContainerElement = renderAppElement;
|
|
216
|
-
this.dirtyParentQueriesInternal();
|
|
217
|
-
};
|
|
218
|
-
AppView.prototype.removeFromContentChildren = function (renderAppElement) {
|
|
219
|
-
this.dirtyParentQueriesInternal();
|
|
220
|
-
this.viewContainerElement = null;
|
|
221
|
-
};
|
|
222
298
|
AppView.prototype.markAsCheckOnce = function () { this.cdMode = ChangeDetectorStatus.CheckOnce; };
|
|
223
299
|
AppView.prototype.markPathToRootAsCheckOnce = function () {
|
|
224
300
|
var c = this;
|
|
@@ -226,8 +302,12 @@ export var AppView = (function () {
|
|
|
226
302
|
if (c.cdMode === ChangeDetectorStatus.Checked) {
|
|
227
303
|
c.cdMode = ChangeDetectorStatus.CheckOnce;
|
|
228
304
|
}
|
|
229
|
-
|
|
230
|
-
|
|
305
|
+
if (c.type === ViewType.COMPONENT) {
|
|
306
|
+
c = c.parentView;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
c = c.viewContainer ? c.viewContainer.parentView : null;
|
|
310
|
+
}
|
|
231
311
|
}
|
|
232
312
|
};
|
|
233
313
|
AppView.prototype.eventHandler = function (cb) {
|
|
@@ -238,15 +318,27 @@ export var AppView = (function () {
|
|
|
238
318
|
}());
|
|
239
319
|
export var DebugAppView = (function (_super) {
|
|
240
320
|
__extends(DebugAppView, _super);
|
|
241
|
-
function DebugAppView(clazz, componentType, type, viewUtils,
|
|
242
|
-
|
|
321
|
+
function DebugAppView(clazz, componentType, type, viewUtils, parentView, parentIndex, parentNode, cdMode, staticNodeDebugInfos, declaredViewContainer) {
|
|
322
|
+
if (declaredViewContainer === void 0) { declaredViewContainer = null; }
|
|
323
|
+
_super.call(this, clazz, componentType, type, viewUtils, parentView, parentIndex, parentNode, cdMode, declaredViewContainer);
|
|
243
324
|
this.staticNodeDebugInfos = staticNodeDebugInfos;
|
|
244
325
|
this._currentDebugContext = null;
|
|
245
326
|
}
|
|
246
|
-
DebugAppView.prototype.create = function (context
|
|
327
|
+
DebugAppView.prototype.create = function (context) {
|
|
328
|
+
this._resetDebug();
|
|
329
|
+
try {
|
|
330
|
+
return _super.prototype.create.call(this, context);
|
|
331
|
+
}
|
|
332
|
+
catch (e) {
|
|
333
|
+
this._rethrowWithContext(e);
|
|
334
|
+
throw e;
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
DebugAppView.prototype.createHostView = function (rootSelectorOrNode, injector, projectableNodes) {
|
|
338
|
+
if (projectableNodes === void 0) { projectableNodes = null; }
|
|
247
339
|
this._resetDebug();
|
|
248
340
|
try {
|
|
249
|
-
return _super.prototype.
|
|
341
|
+
return _super.prototype.createHostView.call(this, rootSelectorOrNode, injector, projectableNodes);
|
|
250
342
|
}
|
|
251
343
|
catch (e) {
|
|
252
344
|
this._rethrowWithContext(e);
|
package/src/linker/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/linker/view.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ChangeDetectorRef, ChangeDetectorStatus} from '../change_detection/change_detection';\nimport {Injector} from '../di/injector';\nimport {ListWrapper} from '../facade/collection';\nimport {isPresent} from '../facade/lang';\nimport {WtfScopeFn, wtfCreateScope, wtfLeave} from '../profile/profile';\nimport {RenderComponentType, RenderDebugInfo, Renderer} from '../render/api';\n\nimport {AnimationViewContext} from './animation_view_context';\nimport {DebugContext, StaticNodeDebugInfo} from './debug_context';\nimport {AppElement} from './element';\nimport {ElementInjector} from './element_injector';\nimport {ExpressionChangedAfterItHasBeenCheckedError, ViewDestroyedError, ViewWrappedError} from './errors';\nimport {ViewRef_} from './view_ref';\nimport {ViewType} from './view_type';\nimport {ViewUtils, addToArray} from './view_utils';\n\nvar _scope_check: WtfScopeFn = wtfCreateScope(`AppView#check(ascii id)`);\n\n/**\n * Cost of making objects: http://jsperf.com/instantiate-size-of-object\n *\n */\nexport abstract class AppView<T> {\n ref: ViewRef_<T>;\n lastRootNode: any;\n allNodes: any[];\n disposables: Function[];\n viewContainerElement: AppElement = null;\n\n numberOfChecks: number = 0;\n\n renderer: Renderer;\n\n private _hasExternalHostElement: boolean;\n private _animationContext: AnimationViewContext;\n\n public context: T;\n\n constructor(\n public clazz: any, public componentType: RenderComponentType, public type: ViewType,\n public viewUtils: ViewUtils, public parentInjector: Injector,\n public declarationAppElement: AppElement, public cdMode: ChangeDetectorStatus) {\n this.ref = new ViewRef_(this);\n if (type === ViewType.COMPONENT || type === ViewType.HOST) {\n this.renderer = viewUtils.renderComponent(componentType);\n } else {\n this.renderer = declarationAppElement.parentView.renderer;\n }\n }\n\n get animationContext(): AnimationViewContext {\n if (!this._animationContext) {\n this._animationContext = new AnimationViewContext();\n }\n return this._animationContext;\n }\n\n get destroyed(): boolean { return this.cdMode === ChangeDetectorStatus.Destroyed; }\n\n create(context: T, rootSelectorOrNode: string|any): AppElement {\n this.context = context;\n this._hasExternalHostElement = isPresent(rootSelectorOrNode);\n return this.createInternal(rootSelectorOrNode);\n }\n\n /**\n * Overwritten by implementations.\n * Returns the AppElement for the host element for ViewType.HOST.\n */\n createInternal(rootSelectorOrNode: string|any): AppElement { return null; }\n\n init(lastRootNode: any, allNodes: any[], disposables: Function[]) {\n this.lastRootNode = lastRootNode;\n this.allNodes = allNodes;\n this.disposables = disposables;\n if (this.type === ViewType.COMPONENT) {\n this.dirtyParentQueriesInternal();\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n return this.injectorGetInternal(token, nodeIndex, notFoundResult);\n }\n\n /**\n * Overwritten by implementations\n */\n injectorGetInternal(token: any, nodeIndex: number, notFoundResult: any): any {\n return notFoundResult;\n }\n\n injector(nodeIndex: number): Injector {\n if (isPresent(nodeIndex)) {\n return new ElementInjector(this, nodeIndex);\n } else {\n return this.parentInjector;\n }\n }\n\n detachAndDestroy() {\n if (this._hasExternalHostElement) {\n this.renderer.detachView(this.flatRootNodes);\n } else if (isPresent(this.viewContainerElement)) {\n this.viewContainerElement.detachView(this.viewContainerElement.nestedViews.indexOf(this));\n }\n this.destroy();\n }\n\n destroy() {\n if (this.cdMode === ChangeDetectorStatus.Destroyed) {\n return;\n }\n var hostElement =\n this.type === ViewType.COMPONENT ? this.declarationAppElement.nativeElement : null;\n if (this.disposables) {\n for (var i = 0; i < this.disposables.length; i++) {\n this.disposables[i]();\n }\n }\n this.destroyInternal();\n this.dirtyParentQueriesInternal();\n\n if (this._animationContext) {\n this._animationContext.onAllActiveAnimationsDone(\n () => this.renderer.destroyView(hostElement, this.allNodes));\n } else {\n this.renderer.destroyView(hostElement, this.allNodes);\n }\n\n this.cdMode = ChangeDetectorStatus.Destroyed;\n }\n\n /**\n * Overwritten by implementations\n */\n destroyInternal(): void {}\n\n /**\n * Overwritten by implementations\n */\n detachInternal(): void {}\n\n detach(): void {\n this.detachInternal();\n if (this._animationContext) {\n this._animationContext.onAllActiveAnimationsDone(\n () => this.renderer.detachView(this.flatRootNodes));\n } else {\n this.renderer.detachView(this.flatRootNodes);\n }\n }\n\n get changeDetectorRef(): ChangeDetectorRef { return this.ref; }\n\n get parent(): AppView<any> {\n return isPresent(this.declarationAppElement) ? this.declarationAppElement.parentView : null;\n }\n\n get flatRootNodes(): any[] {\n const nodes: any[] = [];\n this.visitRootNodesInternal(addToArray, nodes);\n return nodes;\n }\n\n projectedNodes(ngContentIndex: number): any[] {\n const nodes: any[] = [];\n this.visitProjectedNodes(ngContentIndex, addToArray, nodes);\n return nodes;\n }\n\n visitProjectedNodes<C>(ngContentIndex: number, cb: (node: any, ctx: C) => void, c: C): void {\n const appEl = this.declarationAppElement;\n switch (this.type) {\n case ViewType.EMBEDDED:\n appEl.parentView.visitProjectedNodes(ngContentIndex, cb, c);\n break;\n case ViewType.COMPONENT:\n appEl.parentView.visitProjectableNodesInternal(appEl.index, ngContentIndex, cb, c);\n break;\n }\n }\n\n /**\n * Overwritten by implementations\n */\n visitRootNodesInternal<C>(cb: (node: any, ctx: C) => void, c: C): void {}\n\n /**\n * Overwritten by implementations\n */\n visitProjectableNodesInternal<C>(\n nodeIndex: number, ngContentIndex: number, cb: (node: any, ctx: C) => void, c: C): void {}\n\n /**\n * Overwritten by implementations\n */\n dirtyParentQueriesInternal(): void {}\n\n detectChanges(throwOnChange: boolean): void {\n var s = _scope_check(this.clazz);\n if (this.cdMode === ChangeDetectorStatus.Checked ||\n this.cdMode === ChangeDetectorStatus.Errored ||\n this.cdMode === ChangeDetectorStatus.Detached)\n return;\n if (this.cdMode === ChangeDetectorStatus.Destroyed) {\n this.throwDestroyedError('detectChanges');\n }\n this.detectChangesInternal(throwOnChange);\n if (this.cdMode === ChangeDetectorStatus.CheckOnce) this.cdMode = ChangeDetectorStatus.Checked;\n\n this.numberOfChecks++;\n wtfLeave(s);\n }\n\n /**\n * Overwritten by implementations\n */\n detectChangesInternal(throwOnChange: boolean): void {}\n\n markContentChildAsMoved(renderAppElement: AppElement): void { this.dirtyParentQueriesInternal(); }\n\n addToContentChildren(renderAppElement: AppElement): void {\n this.viewContainerElement = renderAppElement;\n this.dirtyParentQueriesInternal();\n }\n\n removeFromContentChildren(renderAppElement: AppElement): void {\n this.dirtyParentQueriesInternal();\n this.viewContainerElement = null;\n }\n\n markAsCheckOnce(): void { this.cdMode = ChangeDetectorStatus.CheckOnce; }\n\n markPathToRootAsCheckOnce(): void {\n let c: AppView<any> = this;\n while (isPresent(c) && c.cdMode !== ChangeDetectorStatus.Detached) {\n if (c.cdMode === ChangeDetectorStatus.Checked) {\n c.cdMode = ChangeDetectorStatus.CheckOnce;\n }\n let parentEl =\n c.type === ViewType.COMPONENT ? c.declarationAppElement : c.viewContainerElement;\n c = isPresent(parentEl) ? parentEl.parentView : null;\n }\n }\n\n eventHandler<E, R>(cb: (eventName: string, event?: E) => R): (eventName: string, event?: E) => R {\n return cb;\n }\n\n throwDestroyedError(details: string): void { throw new ViewDestroyedError(details); }\n}\n\nexport class DebugAppView<T> extends AppView<T> {\n private _currentDebugContext: DebugContext = null;\n\n constructor(\n clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils,\n parentInjector: Injector, declarationAppElement: AppElement, cdMode: ChangeDetectorStatus,\n public staticNodeDebugInfos: StaticNodeDebugInfo[]) {\n super(clazz, componentType, type, viewUtils, parentInjector, declarationAppElement, cdMode);\n }\n\n create(context: T, rootSelectorOrNode: string|any): AppElement {\n this._resetDebug();\n try {\n return super.create(context, rootSelectorOrNode);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult: any): any {\n this._resetDebug();\n try {\n return super.injectorGet(token, nodeIndex, notFoundResult);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n detach(): void {\n this._resetDebug();\n try {\n super.detach();\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n destroy() {\n this._resetDebug();\n try {\n super.destroy();\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n detectChanges(throwOnChange: boolean): void {\n this._resetDebug();\n try {\n super.detectChanges(throwOnChange);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n private _resetDebug() { this._currentDebugContext = null; }\n\n debug(nodeIndex: number, rowNum: number, colNum: number): DebugContext {\n return this._currentDebugContext = new DebugContext(this, nodeIndex, rowNum, colNum);\n }\n\n private _rethrowWithContext(e: any) {\n if (!(e instanceof ViewWrappedError)) {\n if (!(e instanceof ExpressionChangedAfterItHasBeenCheckedError)) {\n this.cdMode = ChangeDetectorStatus.Errored;\n }\n if (isPresent(this._currentDebugContext)) {\n throw new ViewWrappedError(e, this._currentDebugContext);\n }\n }\n }\n\n eventHandler<E, R>(cb: (eventName: string, event?: E) => R): (eventName: string, event?: E) => R {\n var superHandler = super.eventHandler(cb);\n return (eventName: string, event?: any) => {\n this._resetDebug();\n try {\n return superHandler.call(this, eventName, event);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n };\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../../modules/@angular/core/src/linker/view.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ChangeDetectorRef, ChangeDetectorStatus} from '../change_detection/change_detection';\nimport {Injector, THROW_IF_NOT_FOUND} from '../di/injector';\nimport {ListWrapper} from '../facade/collection';\nimport {isPresent} from '../facade/lang';\nimport {WtfScopeFn, wtfCreateScope, wtfLeave} from '../profile/profile';\nimport {DirectRenderer, RenderComponentType, RenderDebugInfo, Renderer} from '../render/api';\n\nimport {AnimationViewContext} from './animation_view_context';\nimport {ComponentRef} from './component_factory';\nimport {DebugContext, StaticNodeDebugInfo} from './debug_context';\nimport {ElementInjector} from './element_injector';\nimport {ExpressionChangedAfterItHasBeenCheckedError, ViewDestroyedError, ViewWrappedError} from './errors';\nimport {ViewContainer} from './view_container';\nimport {ViewRef_} from './view_ref';\nimport {ViewType} from './view_type';\nimport {ViewUtils, addToArray} from './view_utils';\n\nconst _scope_check: WtfScopeFn = wtfCreateScope(`AppView#check(ascii id)`);\n\n/**\n * @experimental\n */\nconst EMPTY_CONTEXT = new Object();\n\nconst UNDEFINED = new Object();\n\n/**\n * Cost of making objects: http://jsperf.com/instantiate-size-of-object\n *\n */\nexport abstract class AppView<T> {\n ref: ViewRef_<T>;\n lastRootNode: any;\n allNodes: any[];\n disposables: Function[];\n viewContainer: ViewContainer = null;\n\n numberOfChecks: number = 0;\n\n renderer: Renderer;\n\n private _hasExternalHostElement: boolean;\n private _hostInjector: Injector;\n private _hostProjectableNodes: any[][];\n private _animationContext: AnimationViewContext;\n private _directRenderer: DirectRenderer;\n\n public context: T;\n\n constructor(\n public clazz: any, public componentType: RenderComponentType, public type: ViewType,\n public viewUtils: ViewUtils, public parentView: AppView<any>, public parentIndex: number,\n public parentElement: any, public cdMode: ChangeDetectorStatus,\n public declaredViewContainer: ViewContainer = null) {\n this.ref = new ViewRef_(this);\n if (type === ViewType.COMPONENT || type === ViewType.HOST) {\n this.renderer = viewUtils.renderComponent(componentType);\n } else {\n this.renderer = parentView.renderer;\n }\n this._directRenderer = (this.renderer as any).directRenderer;\n }\n\n get animationContext(): AnimationViewContext {\n if (!this._animationContext) {\n this._animationContext = new AnimationViewContext();\n }\n return this._animationContext;\n }\n\n get destroyed(): boolean { return this.cdMode === ChangeDetectorStatus.Destroyed; }\n\n create(context: T) {\n this.context = context;\n return this.createInternal(null);\n }\n\n createHostView(rootSelectorOrNode: string|any, hostInjector: Injector, projectableNodes: any[][]):\n ComponentRef<any> {\n this.context = <any>EMPTY_CONTEXT;\n this._hasExternalHostElement = isPresent(rootSelectorOrNode);\n this._hostInjector = hostInjector;\n this._hostProjectableNodes = projectableNodes;\n return this.createInternal(rootSelectorOrNode);\n }\n\n /**\n * Overwritten by implementations.\n * Returns the ComponentRef for the host element for ViewType.HOST.\n */\n createInternal(rootSelectorOrNode: string|any): ComponentRef<any> { return null; }\n\n /**\n * Overwritten by implementations.\n */\n createEmbeddedViewInternal(templateNodeIndex: number): AppView<any> { return null; }\n\n init(lastRootNode: any, allNodes: any[], disposables: Function[]) {\n this.lastRootNode = lastRootNode;\n this.allNodes = allNodes;\n this.disposables = disposables;\n if (this.type === ViewType.COMPONENT) {\n this.dirtyParentQueriesInternal();\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundValue: any = THROW_IF_NOT_FOUND): any {\n let result = UNDEFINED;\n let view: AppView<any> = this;\n while (result === UNDEFINED) {\n if (isPresent(nodeIndex)) {\n result = view.injectorGetInternal(token, nodeIndex, UNDEFINED);\n }\n if (result === UNDEFINED && view.type === ViewType.HOST) {\n result = view._hostInjector.get(token, notFoundValue);\n }\n nodeIndex = view.parentIndex;\n view = view.parentView;\n }\n return result;\n }\n\n /**\n * Overwritten by implementations\n */\n injectorGetInternal(token: any, nodeIndex: number, notFoundResult: any): any {\n return notFoundResult;\n }\n\n injector(nodeIndex: number): Injector { return new ElementInjector(this, nodeIndex); }\n\n detachAndDestroy() {\n if (this._hasExternalHostElement) {\n this.detach();\n } else if (isPresent(this.viewContainer)) {\n this.viewContainer.detachView(this.viewContainer.nestedViews.indexOf(this));\n }\n this.destroy();\n }\n\n destroy() {\n if (this.cdMode === ChangeDetectorStatus.Destroyed) {\n return;\n }\n const hostElement = this.type === ViewType.COMPONENT ? this.parentElement : null;\n if (this.disposables) {\n for (let i = 0; i < this.disposables.length; i++) {\n this.disposables[i]();\n }\n }\n this.destroyInternal();\n this.dirtyParentQueriesInternal();\n\n if (this._animationContext) {\n this._animationContext.onAllActiveAnimationsDone(\n () => this.renderer.destroyView(hostElement, this.allNodes));\n } else {\n this.renderer.destroyView(hostElement, this.allNodes);\n }\n\n this.cdMode = ChangeDetectorStatus.Destroyed;\n }\n\n /**\n * Overwritten by implementations\n */\n destroyInternal(): void {}\n\n /**\n * Overwritten by implementations\n */\n detachInternal(): void {}\n\n detach(): void {\n this.detachInternal();\n if (this._animationContext) {\n this._animationContext.onAllActiveAnimationsDone(() => this._renderDetach());\n } else {\n this._renderDetach();\n }\n if (this.declaredViewContainer && this.declaredViewContainer !== this.viewContainer) {\n const projectedViews = this.declaredViewContainer.projectedViews;\n const index = projectedViews.indexOf(this);\n // perf: pop is faster than splice!\n if (index >= projectedViews.length - 1) {\n projectedViews.pop();\n } else {\n projectedViews.splice(index, 1);\n }\n }\n this.viewContainer = null;\n this.dirtyParentQueriesInternal();\n }\n\n private _renderDetach() {\n if (this._directRenderer) {\n this.visitRootNodesInternal(this._directRenderer.remove, null);\n } else {\n this.renderer.detachView(this.flatRootNodes);\n }\n }\n\n attachAfter(viewContainer: ViewContainer, prevView: AppView<any>) {\n this._renderAttach(viewContainer, prevView);\n this.viewContainer = viewContainer;\n if (this.declaredViewContainer && this.declaredViewContainer !== viewContainer) {\n if (!this.declaredViewContainer.projectedViews) {\n this.declaredViewContainer.projectedViews = [];\n }\n this.declaredViewContainer.projectedViews.push(this);\n }\n this.dirtyParentQueriesInternal();\n }\n\n moveAfter(viewContainer: ViewContainer, prevView: AppView<any>) {\n this._renderAttach(viewContainer, prevView);\n this.dirtyParentQueriesInternal();\n }\n\n private _renderAttach(viewContainer: ViewContainer, prevView: AppView<any>) {\n const prevNode = prevView ? prevView.lastRootNode : viewContainer.nativeElement;\n if (this._directRenderer) {\n const nextSibling = this._directRenderer.nextSibling(prevNode);\n if (nextSibling) {\n this.visitRootNodesInternal(this._directRenderer.insertBefore, nextSibling);\n } else {\n const parentElement = this._directRenderer.parentElement(prevNode);\n if (parentElement) {\n this.visitRootNodesInternal(this._directRenderer.appendChild, parentElement);\n }\n }\n } else {\n this.renderer.attachViewAfter(prevNode, this.flatRootNodes);\n }\n }\n\n get changeDetectorRef(): ChangeDetectorRef { return this.ref; }\n\n get flatRootNodes(): any[] {\n const nodes: any[] = [];\n this.visitRootNodesInternal(addToArray, nodes);\n return nodes;\n }\n\n projectNodes(parentElement: any, ngContentIndex: number) {\n if (this._directRenderer) {\n this.visitProjectedNodes(ngContentIndex, this._directRenderer.appendChild, parentElement);\n } else {\n const nodes: any[] = [];\n this.visitProjectedNodes(ngContentIndex, addToArray, nodes);\n this.renderer.projectNodes(parentElement, nodes);\n }\n }\n\n visitProjectedNodes<C>(ngContentIndex: number, cb: (node: any, ctx: C) => void, c: C): void {\n switch (this.type) {\n case ViewType.EMBEDDED:\n this.parentView.visitProjectedNodes(ngContentIndex, cb, c);\n break;\n case ViewType.COMPONENT:\n if (this.parentView.type === ViewType.HOST) {\n const nodes = this.parentView._hostProjectableNodes[ngContentIndex] || [];\n for (let i = 0; i < nodes.length; i++) {\n cb(nodes[i], c);\n }\n } else {\n this.parentView.visitProjectableNodesInternal(this.parentIndex, ngContentIndex, cb, c);\n }\n break;\n }\n }\n\n /**\n * Overwritten by implementations\n */\n visitRootNodesInternal<C>(cb: (node: any, ctx: C) => void, c: C): void {}\n\n /**\n * Overwritten by implementations\n */\n visitProjectableNodesInternal<C>(\n nodeIndex: number, ngContentIndex: number, cb: (node: any, ctx: C) => void, c: C): void {}\n\n /**\n * Overwritten by implementations\n */\n dirtyParentQueriesInternal(): void {}\n\n detectChanges(throwOnChange: boolean): void {\n const s = _scope_check(this.clazz);\n if (this.cdMode === ChangeDetectorStatus.Checked ||\n this.cdMode === ChangeDetectorStatus.Errored ||\n this.cdMode === ChangeDetectorStatus.Detached)\n return;\n if (this.cdMode === ChangeDetectorStatus.Destroyed) {\n this.throwDestroyedError('detectChanges');\n }\n this.detectChangesInternal(throwOnChange);\n if (this.cdMode === ChangeDetectorStatus.CheckOnce) this.cdMode = ChangeDetectorStatus.Checked;\n\n this.numberOfChecks++;\n wtfLeave(s);\n }\n\n /**\n * Overwritten by implementations\n */\n detectChangesInternal(throwOnChange: boolean): void {}\n\n markAsCheckOnce(): void { this.cdMode = ChangeDetectorStatus.CheckOnce; }\n\n markPathToRootAsCheckOnce(): void {\n let c: AppView<any> = this;\n while (isPresent(c) && c.cdMode !== ChangeDetectorStatus.Detached) {\n if (c.cdMode === ChangeDetectorStatus.Checked) {\n c.cdMode = ChangeDetectorStatus.CheckOnce;\n }\n if (c.type === ViewType.COMPONENT) {\n c = c.parentView;\n } else {\n c = c.viewContainer ? c.viewContainer.parentView : null;\n }\n }\n }\n\n eventHandler<E, R>(cb: (eventName: string, event?: E) => R): (eventName: string, event?: E) => R {\n return cb;\n }\n\n throwDestroyedError(details: string): void { throw new ViewDestroyedError(details); }\n}\n\nexport class DebugAppView<T> extends AppView<T> {\n private _currentDebugContext: DebugContext = null;\n\n constructor(\n clazz: any, componentType: RenderComponentType, type: ViewType, viewUtils: ViewUtils,\n parentView: AppView<any>, parentIndex: number, parentNode: any, cdMode: ChangeDetectorStatus,\n public staticNodeDebugInfos: StaticNodeDebugInfo[],\n declaredViewContainer: ViewContainer = null) {\n super(\n clazz, componentType, type, viewUtils, parentView, parentIndex, parentNode, cdMode,\n declaredViewContainer);\n }\n\n create(context: T) {\n this._resetDebug();\n try {\n return super.create(context);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n createHostView(\n rootSelectorOrNode: string|any, injector: Injector,\n projectableNodes: any[][] = null): ComponentRef<any> {\n this._resetDebug();\n try {\n return super.createHostView(rootSelectorOrNode, injector, projectableNodes);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n injectorGet(token: any, nodeIndex: number, notFoundResult?: any): any {\n this._resetDebug();\n try {\n return super.injectorGet(token, nodeIndex, notFoundResult);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n detach(): void {\n this._resetDebug();\n try {\n super.detach();\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n destroy() {\n this._resetDebug();\n try {\n super.destroy();\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n detectChanges(throwOnChange: boolean): void {\n this._resetDebug();\n try {\n super.detectChanges(throwOnChange);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n }\n\n private _resetDebug() { this._currentDebugContext = null; }\n\n debug(nodeIndex: number, rowNum: number, colNum: number): DebugContext {\n return this._currentDebugContext = new DebugContext(this, nodeIndex, rowNum, colNum);\n }\n\n private _rethrowWithContext(e: any) {\n if (!(e instanceof ViewWrappedError)) {\n if (!(e instanceof ExpressionChangedAfterItHasBeenCheckedError)) {\n this.cdMode = ChangeDetectorStatus.Errored;\n }\n if (isPresent(this._currentDebugContext)) {\n throw new ViewWrappedError(e, this._currentDebugContext);\n }\n }\n }\n\n eventHandler<E, R>(cb: (eventName: string, event?: E) => R): (eventName: string, event?: E) => R {\n const superHandler = super.eventHandler(cb);\n return (eventName: string, event?: any) => {\n this._resetDebug();\n try {\n return superHandler.call(this, eventName, event);\n } catch (e) {\n this._rethrowWithContext(e);\n throw e;\n }\n };\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -10,22 +10,19 @@ import { ElementRef } from './element_ref';
|
|
|
10
10
|
import { AppView } from './view';
|
|
11
11
|
import { ViewContainerRef_ } from './view_container_ref';
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* that is needed for later instantiations.
|
|
13
|
+
* A ViewContainer is created for elements that have a ViewContainerRef
|
|
14
|
+
* to keep track of the nested views.
|
|
16
15
|
*/
|
|
17
|
-
export declare class
|
|
16
|
+
export declare class ViewContainer {
|
|
18
17
|
index: number;
|
|
19
18
|
parentIndex: number;
|
|
20
19
|
parentView: AppView<any>;
|
|
21
20
|
nativeElement: any;
|
|
22
21
|
nestedViews: AppView<any>[];
|
|
23
|
-
|
|
24
|
-
component: any;
|
|
22
|
+
projectedViews: AppView<any>[];
|
|
25
23
|
constructor(index: number, parentIndex: number, parentView: AppView<any>, nativeElement: any);
|
|
26
24
|
elementRef: ElementRef;
|
|
27
25
|
vcRef: ViewContainerRef_;
|
|
28
|
-
initComponent(component: any, view: AppView<any>): void;
|
|
29
26
|
parentInjector: Injector;
|
|
30
27
|
injector: Injector;
|
|
31
28
|
detectChangesInNestedViews(throwOnChange: boolean): void;
|
|
@@ -5,79 +5,82 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { isPresent } from '../facade/lang';
|
|
9
8
|
import { ElementRef } from './element_ref';
|
|
10
9
|
import { ViewContainerRef_ } from './view_container_ref';
|
|
11
10
|
import { ViewType } from './view_type';
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* that is needed for later instantiations.
|
|
12
|
+
* A ViewContainer is created for elements that have a ViewContainerRef
|
|
13
|
+
* to keep track of the nested views.
|
|
16
14
|
*/
|
|
17
|
-
export var
|
|
18
|
-
function
|
|
15
|
+
export var ViewContainer = (function () {
|
|
16
|
+
function ViewContainer(index, parentIndex, parentView, nativeElement) {
|
|
19
17
|
this.index = index;
|
|
20
18
|
this.parentIndex = parentIndex;
|
|
21
19
|
this.parentView = parentView;
|
|
22
20
|
this.nativeElement = nativeElement;
|
|
23
21
|
}
|
|
24
|
-
Object.defineProperty(
|
|
22
|
+
Object.defineProperty(ViewContainer.prototype, "elementRef", {
|
|
25
23
|
get: function () { return new ElementRef(this.nativeElement); },
|
|
26
24
|
enumerable: true,
|
|
27
25
|
configurable: true
|
|
28
26
|
});
|
|
29
|
-
Object.defineProperty(
|
|
27
|
+
Object.defineProperty(ViewContainer.prototype, "vcRef", {
|
|
30
28
|
get: function () { return new ViewContainerRef_(this); },
|
|
31
29
|
enumerable: true,
|
|
32
30
|
configurable: true
|
|
33
31
|
});
|
|
34
|
-
|
|
35
|
-
this.component = component;
|
|
36
|
-
this.componentView = view;
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(AppElement.prototype, "parentInjector", {
|
|
32
|
+
Object.defineProperty(ViewContainer.prototype, "parentInjector", {
|
|
39
33
|
get: function () { return this.parentView.injector(this.parentIndex); },
|
|
40
34
|
enumerable: true,
|
|
41
35
|
configurable: true
|
|
42
36
|
});
|
|
43
|
-
Object.defineProperty(
|
|
37
|
+
Object.defineProperty(ViewContainer.prototype, "injector", {
|
|
44
38
|
get: function () { return this.parentView.injector(this.index); },
|
|
45
39
|
enumerable: true,
|
|
46
40
|
configurable: true
|
|
47
41
|
});
|
|
48
|
-
|
|
42
|
+
ViewContainer.prototype.detectChangesInNestedViews = function (throwOnChange) {
|
|
49
43
|
if (this.nestedViews) {
|
|
50
44
|
for (var i = 0; i < this.nestedViews.length; i++) {
|
|
51
45
|
this.nestedViews[i].detectChanges(throwOnChange);
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
48
|
};
|
|
55
|
-
|
|
49
|
+
ViewContainer.prototype.destroyNestedViews = function () {
|
|
56
50
|
if (this.nestedViews) {
|
|
57
51
|
for (var i = 0; i < this.nestedViews.length; i++) {
|
|
58
52
|
this.nestedViews[i].destroy();
|
|
59
53
|
}
|
|
60
54
|
}
|
|
61
55
|
};
|
|
62
|
-
|
|
56
|
+
ViewContainer.prototype.visitNestedViewRootNodes = function (cb, c) {
|
|
63
57
|
if (this.nestedViews) {
|
|
64
58
|
for (var i = 0; i < this.nestedViews.length; i++) {
|
|
65
59
|
this.nestedViews[i].visitRootNodesInternal(cb, c);
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
62
|
};
|
|
69
|
-
|
|
63
|
+
ViewContainer.prototype.mapNestedViews = function (nestedViewClass, callback) {
|
|
70
64
|
var result = [];
|
|
71
|
-
if (
|
|
72
|
-
this.nestedViews.
|
|
65
|
+
if (this.nestedViews) {
|
|
66
|
+
for (var i = 0; i < this.nestedViews.length; i++) {
|
|
67
|
+
var nestedView = this.nestedViews[i];
|
|
73
68
|
if (nestedView.clazz === nestedViewClass) {
|
|
74
69
|
result.push(callback(nestedView));
|
|
75
70
|
}
|
|
76
|
-
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (this.projectedViews) {
|
|
74
|
+
for (var i = 0; i < this.projectedViews.length; i++) {
|
|
75
|
+
var projectedView = this.projectedViews[i];
|
|
76
|
+
if (projectedView.clazz === nestedViewClass) {
|
|
77
|
+
result.push(callback(projectedView));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
return result;
|
|
79
82
|
};
|
|
80
|
-
|
|
83
|
+
ViewContainer.prototype.moveView = function (view, currentIndex) {
|
|
81
84
|
var previousIndex = this.nestedViews.indexOf(view);
|
|
82
85
|
if (view.type === ViewType.COMPONENT) {
|
|
83
86
|
throw new Error("Component views can't be moved!");
|
|
@@ -89,20 +92,10 @@ export var AppElement = (function () {
|
|
|
89
92
|
}
|
|
90
93
|
nestedViews.splice(previousIndex, 1);
|
|
91
94
|
nestedViews.splice(currentIndex, 0, view);
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
var prevView = nestedViews[currentIndex - 1];
|
|
95
|
-
refRenderNode = prevView.lastRootNode;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
refRenderNode = this.nativeElement;
|
|
99
|
-
}
|
|
100
|
-
if (isPresent(refRenderNode)) {
|
|
101
|
-
view.renderer.attachViewAfter(refRenderNode, view.flatRootNodes);
|
|
102
|
-
}
|
|
103
|
-
view.markContentChildAsMoved(this);
|
|
95
|
+
var prevView = currentIndex > 0 ? nestedViews[currentIndex - 1] : null;
|
|
96
|
+
view.moveAfter(this, prevView);
|
|
104
97
|
};
|
|
105
|
-
|
|
98
|
+
ViewContainer.prototype.attachView = function (view, viewIndex) {
|
|
106
99
|
if (view.type === ViewType.COMPONENT) {
|
|
107
100
|
throw new Error("Component views can't be moved!");
|
|
108
101
|
}
|
|
@@ -111,29 +104,31 @@ export var AppElement = (function () {
|
|
|
111
104
|
nestedViews = [];
|
|
112
105
|
this.nestedViews = nestedViews;
|
|
113
106
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
var prevView = nestedViews[viewIndex - 1];
|
|
118
|
-
refRenderNode = prevView.lastRootNode;
|
|
107
|
+
// perf: array.push is faster than array.splice!
|
|
108
|
+
if (viewIndex >= nestedViews.length) {
|
|
109
|
+
nestedViews.push(view);
|
|
119
110
|
}
|
|
120
111
|
else {
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
if (isPresent(refRenderNode)) {
|
|
124
|
-
view.renderer.attachViewAfter(refRenderNode, view.flatRootNodes);
|
|
112
|
+
nestedViews.splice(viewIndex, 0, view);
|
|
125
113
|
}
|
|
126
|
-
|
|
114
|
+
var prevView = viewIndex > 0 ? nestedViews[viewIndex - 1] : null;
|
|
115
|
+
view.attachAfter(this, prevView);
|
|
127
116
|
};
|
|
128
|
-
|
|
129
|
-
var view = this.nestedViews
|
|
117
|
+
ViewContainer.prototype.detachView = function (viewIndex) {
|
|
118
|
+
var view = this.nestedViews[viewIndex];
|
|
119
|
+
// perf: array.pop is faster than array.splice!
|
|
120
|
+
if (viewIndex >= this.nestedViews.length - 1) {
|
|
121
|
+
this.nestedViews.pop();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.nestedViews.splice(viewIndex, 1);
|
|
125
|
+
}
|
|
130
126
|
if (view.type === ViewType.COMPONENT) {
|
|
131
127
|
throw new Error("Component views can't be moved!");
|
|
132
128
|
}
|
|
133
129
|
view.detach();
|
|
134
|
-
view.removeFromContentChildren(this);
|
|
135
130
|
return view;
|
|
136
131
|
};
|
|
137
|
-
return
|
|
132
|
+
return ViewContainer;
|
|
138
133
|
}());
|
|
139
|
-
//# sourceMappingURL=
|
|
134
|
+
//# sourceMappingURL=view_container.js.map
|