Skip to content

Commit 9911506

Browse files
committed
Update code to compile against Angular alpha 46
1 parent caf7f4f commit 9911506

File tree

7 files changed

+51
-50
lines changed

7 files changed

+51
-50
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
},
1515
"scripts": {},
1616
"dependencies": {
17-
"angular2": "2.0.0-alpha.44",
18-
"@reactivex/rxjs": "5.0.0-alpha.4",
17+
"angular2": "2.0.0-alpha.46",
18+
"@reactivex/rxjs": "5.0.0-alpha.7",
1919
"parse5": "1.4.2",
2020
"punycode": "1.3.2",
2121
"querystring": "0.2.0",
2222
"url": "0.10.3",
23-
"reflect-metadata": "0.1.1",
23+
"reflect-metadata": "0.1.2",
2424
"zone.js": "0.5.8"
2525
},
2626
"devDependencies": {

src/global.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@ interface String {
3737
endsWith(searchString: string, endPosition?: number): boolean;
3838
startsWith(searchString: string, position?: number): boolean;
3939
}
40+
41+
interface Zone {
42+
}

src/nativescript-angular/application.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import 'reflect-metadata';
2-
import 'nativescript-angular/polyfills/array';
3-
import 'nativescript-angular/zone';
4-
import {Type} from 'angular2/src/core/facade/lang';
5-
import {Promise, PromiseWrapper} from 'angular2/src/core/facade/async';
2+
import './polyfills/array';
3+
import './zone';
4+
import {Type} from 'angular2/src/facade/lang';
5+
import {Promise, PromiseWrapper} from 'angular2/src/facade/async';
66
import {ComponentRef} from 'angular2/src/core/linker/dynamic_component_loader';
77
import {bind, provide, Provider} from 'angular2/src/core/di';
88
import {DOM} from 'angular2/src/core/dom/dom_adapter';
99

1010
import {Renderer} from 'angular2/src/core/render/api';
11-
import {NativeScriptRenderer} from 'nativescript-angular/renderer';
12-
import {NativeScriptDomAdapter} from 'nativescript-angular/dom_adapter';
13-
import {TemplateNormalizer} from 'angular2/src/core/compiler/template_normalizer';
14-
import {FileSystemTemplateNormalizer} from 'nativescript-angular/template_normalizer';
11+
import {NativeScriptRenderer} from './renderer';
12+
import {NativeScriptDomAdapter} from './dom_adapter';
13+
import {TemplateNormalizer} from 'angular2/src/compiler/template_normalizer';
14+
import {FileSystemTemplateNormalizer} from './template_normalizer';
1515
import {Parse5DomAdapter} from 'angular2/src/core/dom/parse5_adapter';
1616

1717
import {bootstrap as angularBootstrap} from 'angular2/src/core/application';

src/nativescript-angular/renderer.ts

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {Inject, Injectable} from 'angular2/src/core/di';
2+
import {RenderComponentTemplate} from 'angular2/src/core/render/api';
23
import {DOCUMENT} from 'angular2/src/core/render/dom/dom_tokens';
34
import {createRenderView, NodeFactory} from 'angular2/src/core/render/view_factory';
45
import {
@@ -11,14 +12,14 @@ import {
1112
RenderViewWithFragments,
1213
RenderTemplateCmd
1314
} from 'angular2/src/core/render/api';
14-
import {isBlank} from 'angular2/src/core/facade/lang';
15+
import {isBlank} from 'angular2/src/facade/lang';
1516
import {
1617
DefaultProtoViewRef,
1718
DefaultRenderView,
1819
DefaultRenderFragmentRef
1920
} from 'angular2/src/core/render/view';
2021
import {DOM} from 'angular2/src/core/dom/dom_adapter';
21-
import {ViewNode, DummyViewNode} from 'nativescript-angular/view_node';
22+
import {ViewNode, DummyViewNode} from './view_node';
2223

2324
//var console = {log: function(msg) {}}
2425

@@ -32,9 +33,9 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
3233
this._document = document;
3334
}
3435

35-
public createProtoView(cmds: RenderTemplateCmd[]): RenderProtoViewRef {
36+
public createProtoView(componentTemplateId: string, cmds: RenderTemplateCmd[]): RenderProtoViewRef {
3637
console.log('NativeScriptRenderer.createProtoView: ' + cmds);
37-
return new DefaultProtoViewRef(cmds);
38+
return new DefaultProtoViewRef(this._componentTemplates.get(componentTemplateId), cmds);
3839
}
3940

4041
public createRootHostView(
@@ -59,7 +60,8 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
5960
}
6061

6162
private _createView(protoViewRef: RenderProtoViewRef, inplaceElement: HTMLElement): RenderViewWithFragments {
62-
var view = createRenderView((<DefaultProtoViewRef>protoViewRef).cmds, inplaceElement, this);
63+
var dpvr = <DefaultProtoViewRef>protoViewRef;
64+
var view = createRenderView(dpvr.template, dpvr.cmds, inplaceElement, this);
6365
return new RenderViewWithFragments(view, view.fragments);
6466
}
6567

@@ -87,9 +89,8 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
8789
public attachFragmentAfterElement(location: RenderElementRef, fragmentRef: RenderFragmentRef) {
8890
console.log("NativeScriptRenderer.attachFragmentAfterElement");
8991

90-
var parentView = resolveInternalDomView(location.renderView);
91-
var element = parentView.boundElements[location.boundElementIndex];
92-
var nodes = resolveInternalDomFragment(fragmentRef);
92+
let element = resolveBoundNode(location);
93+
let nodes = resolveInternalDomFragment(fragmentRef);
9394
this.attachFragmentAfter(element, nodes);
9495
}
9596

@@ -127,8 +128,7 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
127128
setElementProperty(location: RenderElementRef, propertyName: string, propertyValue: any) {
128129
console.log("NativeScriptRenderer.setElementProperty " + propertyName + " = " + propertyValue);
129130

130-
var view = resolveInternalDomView(location.renderView);
131-
var node = view.boundElements[location.boundElementIndex];
131+
let node = resolveBoundNode(location);
132132
node.setProperty(propertyName, propertyValue);
133133
}
134134

@@ -140,8 +140,7 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
140140
setElementClass(location: RenderElementRef, className: string, isAdd: boolean): void {
141141
console.log("NativeScriptRenderer.setElementClass " + className + " - " + isAdd);
142142

143-
var view = resolveInternalDomView(location.renderView);
144-
var node = view.boundElements[location.boundElementIndex];
143+
let node = resolveBoundNode(location);
145144
if (isAdd) {
146145
node.addClass(className);
147146
} else {
@@ -150,16 +149,14 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
150149
}
151150

152151
setElementStyle(location: RenderElementRef, styleName: string, styleValue: string): void {
153-
var view = resolveInternalDomView(location.renderView);
154-
var node = view.boundElements[location.boundElementIndex];
152+
let node = resolveBoundNode(location);
155153
node.setStyleProperty(styleName, styleValue);
156154
}
157155

158156
getNativeElementSync(location: RenderElementRef): any {
159157
console.log("NativeScriptRenderer.getNativeElementSync");
160158

161-
var view = resolveInternalDomView(location.renderView);
162-
var node = view.boundElements[location.boundElementIndex];
159+
let node = resolveBoundNode(location);
163160
return node.nativeView;
164161
}
165162

@@ -180,21 +177,16 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
180177
view.eventDispatcher = dispatcher;
181178
}
182179

183-
private _componentCmds: Map<number, RenderTemplateCmd[]> = new Map<number, RenderTemplateCmd[]>();
180+
private _componentTemplates: Map<string, RenderComponentTemplate> = new Map<string, RenderComponentTemplate>();
184181

185-
public registerComponentTemplate(
186-
templateId: number,
187-
commands: RenderTemplateCmd[],
188-
styles: string[],
189-
nativeShadow: boolean
190-
) {
191-
console.log('NativeScriptRenderer.registerComponentTemplate: ' + templateId);
192-
this._componentCmds.set(templateId, commands);
182+
public registerComponentTemplate(template: RenderComponentTemplate) {
183+
console.log('NativeScriptRenderer.registerComponentTemplate: ' + template.id);
184+
this._componentTemplates.set(template.id, template);
193185
}
194186

195-
public resolveComponentTemplate(templateId: number): RenderTemplateCmd[] {
187+
public resolveComponentTemplate(templateId: string): RenderComponentTemplate {
196188
console.log('NativeScriptRenderer.resolveComponentTemplate: ' + templateId);
197-
return this._componentCmds.get(templateId);
189+
return this._componentTemplates.get(templateId);
198190
}
199191

200192
public createRootContentInsertionPoint(): ViewNode {
@@ -217,7 +209,7 @@ export class NativeScriptRenderer extends Renderer implements NodeFactory<ViewNo
217209
existing.setAttributeValues(attrNameAndValues);
218210
}
219211

220-
public createShadowRoot(host: ViewNode, templateId: number): ViewNode {
212+
public createShadowRoot(host: ViewNode, templateId: string): ViewNode {
221213
throw new Error('Not implemented.');
222214
}
223215

@@ -246,6 +238,13 @@ function resolveInternalDomView(viewRef: RenderViewRef): DefaultRenderView<ViewN
246238
return <DefaultRenderView<ViewNode>>viewRef;
247239
}
248240

241+
function resolveBoundNode(elementRef: RenderElementRef): ViewNode {
242+
let view = resolveInternalDomView(elementRef.renderView);
243+
//Using an Angular internal API to get the index of the bound element.
244+
let internalBoundIndex = (<any>elementRef).boundElementIndex;
245+
return view.boundElements[internalBoundIndex]
246+
}
247+
249248
function resolveInternalDomFragment(fragmentRef: RenderFragmentRef): ViewNode[] {
250249
return (<DefaultRenderFragmentRef<ViewNode>>fragmentRef).nodes;
251250
}

src/nativescript-angular/template_normalizer.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import {isPresent} from 'angular2/src/core/facade/lang';
2-
import {Promise, PromiseWrapper} from 'angular2/src/core/facade/async';
3-
import {TemplateNormalizer} from 'angular2/src/core/compiler/template_normalizer';
4-
import {XHR} from 'angular2/src/core/compiler/xhr';
5-
import {HtmlParser} from 'angular2/src/core/compiler/html_parser';
6-
import {UrlResolver} from 'angular2/src/core/compiler/url_resolver';
7-
import {CompileTypeMetadata, CompileTemplateMetadata} from 'angular2/src/core/compiler/directive_metadata';
1+
import {isPresent} from 'angular2/src/facade/lang';
2+
import {Promise, PromiseWrapper} from 'angular2/src/facade/async';
3+
import {TemplateNormalizer} from 'angular2/src/compiler/template_normalizer';
4+
import {XHR} from 'angular2/src/compiler/xhr';
5+
import {HtmlParser} from 'angular2/src/compiler/html_parser';
6+
import {UrlResolver} from 'angular2/src/compiler/url_resolver';
7+
import {CompileTypeMetadata, CompileTemplateMetadata} from 'angular2/src/compiler/directive_metadata';
88
import {path, knownFolders, File} from "file-system";
99

1010
export class FileSystemTemplateNormalizer extends TemplateNormalizer {
@@ -20,7 +20,7 @@ export class FileSystemTemplateNormalizer extends TemplateNormalizer {
2020

2121
let sourceAbsUrl = this.urlResolver.resolve(directiveType.moduleUrl, template.templateUrl);
2222
return this.loadTemplate(sourceAbsUrl).then(templateContent =>
23-
this.normalizeLoadedTemplate(directiveType, template, templateContent, sourceAbsUrl));
23+
super.normalizeLoadedTemplate(directiveType, template, templateContent, sourceAbsUrl));
2424
}
2525

2626
public loadTemplate(url: string): Promise<string> {

src/nativescript-angular/view_node.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import {TextView} from 'ui/text-view';
1212
import {Switch} from 'ui/switch';
1313
import {LayoutBase} from 'ui/layouts/layout-base';
1414
import gestures = require("ui/gestures");
15-
import {AST} from 'angular2/src/core/change_detection/parser/ast';
16-
import {ViewClass, getViewClass, isKnownView} from 'nativescript-angular/element-registry';
15+
import {ViewClass, getViewClass, isKnownView} from './element-registry';
1716

1817
type EventHandler = (args: EventData) => void;
1918

src/nativescript-angular/zone.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Borrowed from the react-native-renderer project at:
22
// https://github.com/uber5001/react-native-renderer
3-
import NativeScriptPatch from "nativescript-angular/zone_patch"
3+
import NativeScriptPatch from "./zone_patch"
44

55
var core = require('zone.js/lib/core.js');
66

0 commit comments

Comments
 (0)