diff --git a/apps/tests/layouts/dock-layout-tests.ts b/apps/tests/layouts/dock-layout-tests.ts index 807d8dbc7..d26349d3b 100644 --- a/apps/tests/layouts/dock-layout-tests.ts +++ b/apps/tests/layouts/dock-layout-tests.ts @@ -50,9 +50,9 @@ export function setUpModule() { export function tearDownModule() { navHelper.goBack(); - delete testPage; - delete rootLayout; - delete tmp; + testPage = null; + rootLayout = null; + tmp = null; } export function setUp() { @@ -212,4 +212,4 @@ export function test_codesnippets() { dockLayout.addChild(btnDockedToRight); // ``` // -} \ No newline at end of file +} diff --git a/apps/tests/layouts/grid-layout-tests.ts b/apps/tests/layouts/grid-layout-tests.ts index f9df850f8..52bbb5efa 100644 --- a/apps/tests/layouts/grid-layout-tests.ts +++ b/apps/tests/layouts/grid-layout-tests.ts @@ -52,9 +52,9 @@ export function setUpModule() { export function tearDownModule() { navHelper.goBack(); - delete tmp; - delete newPage; - delete rootLayout; + tmp = null; + newPage = null; + rootLayout = null; } export function setUp() { diff --git a/apps/tests/layouts/stack-layout-tests.ts b/apps/tests/layouts/stack-layout-tests.ts index c2366be2c..a011bf091 100644 --- a/apps/tests/layouts/stack-layout-tests.ts +++ b/apps/tests/layouts/stack-layout-tests.ts @@ -29,11 +29,11 @@ export function setUpModule() { export function tearDownModule() { navHelper.goBack(); - delete tmp; - delete newPage; - delete rootLayout; - delete btn1; - delete btn2; + tmp = null; + newPage = null; + rootLayout = null; + btn1 = null; + btn2 = null; } export function setUp() { diff --git a/apps/tests/ui/scroll-view/scroll-view-tests.ts b/apps/tests/ui/scroll-view/scroll-view-tests.ts index fa84a5865..d4972357a 100644 --- a/apps/tests/ui/scroll-view/scroll-view-tests.ts +++ b/apps/tests/ui/scroll-view/scroll-view-tests.ts @@ -49,9 +49,9 @@ export function setUpModule() { export function tearDownModule() { helper.goBack(); - delete tmp; - delete newPage; - delete scrollView; + tmp = null; + newPage = null; + scrollView = null; } export function setUp() { diff --git a/apps/tests/ui/style/style-properties-tests.ts b/apps/tests/ui/style/style-properties-tests.ts index 0b00df829..34ed9674e 100644 --- a/apps/tests/ui/style/style-properties-tests.ts +++ b/apps/tests/ui/style/style-properties-tests.ts @@ -25,8 +25,8 @@ export function setUpModule() { export function tearDownModule() { helper.goBack(); - delete testBtn; - delete testPage; + testBtn = null; + testPage = null; } export function tearDown() { @@ -362,4 +362,4 @@ function test_native_font(style: string, weight: string) { TKUnit.assertEqual((testView.ios).titleLabel.font.fontName.toLowerCase(), (fontName + "-" + fontNameSuffix).toLowerCase(), "native font " + weight + " " + style); } //TODO: If needed add tests for other platforms -} \ No newline at end of file +} diff --git a/data/observable/observable.d.ts b/data/observable/observable.d.ts index df3546ea6..939e762c2 100644 --- a/data/observable/observable.d.ts +++ b/data/observable/observable.d.ts @@ -97,7 +97,7 @@ declare module "data/observable" { * Notifies all the registered listeners for the event provided in the data.eventName. * @param data The data associated with the event. */ - notify(data: EventData): void; + notify(data: T): void; /** * Notifies all the registered listeners for the property change event. @@ -119,4 +119,4 @@ declare module "data/observable" { _emit(eventNames: string); //@endprivate } -} \ No newline at end of file +} diff --git a/data/observable/observable.ts b/data/observable/observable.ts index adbcadc19..9404e1f5c 100644 --- a/data/observable/observable.ts +++ b/data/observable/observable.ts @@ -118,7 +118,7 @@ export class Observable implements definition.Observable { this[data.propertyName] = data.value; } - public notify(data: definition.EventData) { + public notify(data: T) { var observers = this._getEventList(data.eventName); if (!observers) { return; @@ -197,4 +197,4 @@ export class Observable implements definition.Observable { public toString(): string { return this.typeName; } -} \ No newline at end of file +} diff --git a/gruntfile.js b/gruntfile.js index c0e2773ed..f7af56631 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -309,6 +309,12 @@ module.exports = function(grunt) { outDir: localCfg.outModulesDir, options: { fast: 'never', + + // Resolve non-relative modules like "ui/styling/style" + // based on the project root (not on node_modules which + // is the typescript 1.6+ default) + additionalFlags: '--moduleResolution classic', + module: "commonjs", target: "es5", sourceMap: false, diff --git a/package.json b/package.json index 1b5ab85e1..5f197671c 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,12 @@ "grunt-exec": "0.4.6", "grunt-multi-dest": "1.0.0", "grunt-shell": "1.1.2", - "grunt-ts": "4.2.0", + "grunt-ts": "5.0.0-beta.5", "grunt-tslint": "2.4.0", "mocha": "2.2.5", "grunt-simple-mocha": "0.4.0", "grunt-env": "0.4.4", "chai": "3.2.0", - "typescript": "1.5.3" + "typescript": "1.6.2" } } diff --git a/ui/animation/animation.ios.ts b/ui/animation/animation.ios.ts index b2f9a1b0f..d7998e0cc 100644 --- a/ui/animation/animation.ios.ts +++ b/ui/animation/animation.ios.ts @@ -272,8 +272,7 @@ export class Animation extends common.Animation implements definition.Animation value: Animation._affineTransform(CGAffineTransformIdentity, propertyAnimations[i].property, propertyAnimations[i].value), duration: propertyAnimations[i].duration, delay: propertyAnimations[i].delay, - iterations: propertyAnimations[i].iterations, - iosUIViewAnimationCurve: propertyAnimations[i].curve + iterations: propertyAnimations[i].iterations }; trace.write("Created new transform animation: " + common.Animation._getAnimationInfo(newTransformAnimation), trace.categories.Animation); @@ -299,4 +298,4 @@ export class Animation extends common.Animation implements definition.Animation return result; } -} \ No newline at end of file +} diff --git a/ui/builder/component-builder.ts b/ui/builder/component-builder.ts index 3878a4d38..cfb2d9ecc 100644 --- a/ui/builder/component-builder.ts +++ b/ui/builder/component-builder.ts @@ -1,5 +1,4 @@ import view = require("ui/core/view"); -import bindable = require("ui/core/bindable"); import types = require("utils/types"); import definition = require("ui/builder/component-builder"); import fs = require("file-system"); @@ -101,8 +100,6 @@ export function getComponentModule(elementName: string, namespace: string, attri } if (instance && instanceModule) { - var bindings = new Array(); - for (var attr in attributes) { var attrValue = attributes[attr]; @@ -136,7 +133,7 @@ export function getComponentModule(elementName: string, namespace: string, attri } } - componentModule = { component: instance, exports: instanceModule, bindings: bindings }; + componentModule = {component: instance, exports: instanceModule}; } return componentModule; diff --git a/ui/button/button.android.ts b/ui/button/button.android.ts index 55d1defbf..199fba08b 100644 --- a/ui/button/button.android.ts +++ b/ui/button/button.android.ts @@ -1,4 +1,5 @@ import common = require("ui/button/button-common"); +import utils = require("utils/utils") global.moduleMerge(common, exports); @@ -22,7 +23,8 @@ export class Button extends common.Button { this._android = new android.widget.Button(this._context); - this._android.setOnClickListener(new android.view.View.OnClickListener({ + this._android.setOnClickListener(new android.view.View.OnClickListener( + { get owner() { return that.get(); }, @@ -34,4 +36,4 @@ export class Button extends common.Button { } })); } -} \ No newline at end of file +} diff --git a/ui/date-picker/date-picker.android.ts b/ui/date-picker/date-picker.android.ts index 34ea427e5..5fd09f310 100644 --- a/ui/date-picker/date-picker.android.ts +++ b/ui/date-picker/date-picker.android.ts @@ -2,6 +2,7 @@ import dependencyObservable = require("ui/core/dependency-observable"); import proxy = require("ui/core/proxy"); import types = require("utils/types"); +import utils = require("utils/utils") function onYearPropertyChanged(data: dependencyObservable.PropertyChangeData) { var picker = data.object; @@ -78,7 +79,8 @@ export class DatePicker extends common.DatePicker { var that = new WeakRef(this); - this._listener = new android.widget.DatePicker.OnDateChangedListener({ + this._listener = new android.widget.DatePicker.OnDateChangedListener( + { get owner() { return that.get(); }, @@ -107,4 +109,4 @@ export class DatePicker extends common.DatePicker { this._android.setCalendarViewShown(false); this._android.init(0, 0, 0, this._listener); } -} \ No newline at end of file +} diff --git a/ui/list-picker/list-picker.android.ts b/ui/list-picker/list-picker.android.ts index 87221d5f2..0ac62c48b 100644 --- a/ui/list-picker/list-picker.android.ts +++ b/ui/list-picker/list-picker.android.ts @@ -1,6 +1,7 @@ import common = require("ui/list-picker/list-picker-common"); import dependencyObservable = require("ui/core/dependency-observable"); import types = require("utils/types"); +import utils = require("utils/utils") global.moduleMerge(common, exports); @@ -28,7 +29,8 @@ export class ListPicker extends common.ListPicker { var that = new WeakRef(this); - this._formatter = new android.widget.NumberPicker.Formatter({ + this._formatter = new android.widget.NumberPicker.Formatter( + { get owner(): ListPicker { return that.get(); }, @@ -43,7 +45,7 @@ export class ListPicker extends common.ListPicker { }); this._android.setFormatter(this._formatter); - this._valueChangedListener = new android.widget.NumberPicker.OnValueChangeListener({ + this._valueChangedListener = new android.widget.NumberPicker.OnValueChangeListener({ get owner() { return that.get(); }, @@ -106,4 +108,4 @@ export class ListPicker extends common.ListPicker { this._editText.invalidate(); //Force the EditText to redraw this.android.invalidate(); } -} \ No newline at end of file +} diff --git a/ui/list-view/list-view.android.ts b/ui/list-view/list-view.android.ts index 1668928b3..764fb33c7 100644 --- a/ui/list-view/list-view.android.ts +++ b/ui/list-view/list-view.android.ts @@ -7,6 +7,7 @@ import proxy = require("ui/core/proxy"); import dependencyObservable = require("ui/core/dependency-observable"); import color = require("color"); import definition = require("ui/list-view"); +import utils = require("utils/utils") var ITEMLOADING = common.ListView.itemLoadingEvent; var LOADMOREITEMS = common.ListView.loadMoreItemsEvent; @@ -50,7 +51,7 @@ export class ListView extends common.ListView { var that = new WeakRef(this); // TODO: This causes many marshalling calls, rewrite in Java and generate bindings - this.android.setOnScrollListener(new android.widget.AbsListView.OnScrollListener({ + this.android.setOnScrollListener(new android.widget.AbsListView.OnScrollListener({ onScrollStateChanged: function (view: android.widget.AbsListView, scrollState: number) { var owner: ListView = this.owner; if (!owner) { diff --git a/ui/search-bar/search-bar.android.ts b/ui/search-bar/search-bar.android.ts index 2a05b0e83..f6a303011 100644 --- a/ui/search-bar/search-bar.android.ts +++ b/ui/search-bar/search-bar.android.ts @@ -3,6 +3,7 @@ import dependencyObservable = require("ui/core/dependency-observable"); import proxy = require("ui/core/proxy"); import color = require("color"); import types = require("utils/types"); +import utils = require("utils/utils") var SEARCHTEXT = "searchText"; var QUERY = "query"; @@ -101,7 +102,7 @@ export class SearchBar extends common.SearchBar { this._android.setIconified(false); var that = new WeakRef(this); - this._android.setOnQueryTextListener(new android.widget.SearchView.OnQueryTextListener({ + this._android.setOnQueryTextListener(new android.widget.SearchView.OnQueryTextListener({ get owner() { return that.get(); }, @@ -132,7 +133,7 @@ export class SearchBar extends common.SearchBar { } })); - this._android.setOnCloseListener(new android.widget.SearchView.OnCloseListener({ + this._android.setOnCloseListener(new android.widget.SearchView.OnCloseListener({ get owner() { return that.get(); }, @@ -156,4 +157,4 @@ export class SearchBar extends common.SearchBar { get android(): android.widget.SearchView { return this._android; } -} \ No newline at end of file +} diff --git a/ui/switch/switch.android.ts b/ui/switch/switch.android.ts index 4363c6acf..eeb431eff 100644 --- a/ui/switch/switch.android.ts +++ b/ui/switch/switch.android.ts @@ -1,6 +1,7 @@ import common = require("ui/switch/switch-common"); import dependencyObservable = require("ui/core/dependency-observable"); import proxy = require("ui/core/proxy"); +import utils = require("utils/utils") function onCheckedPropertyChanged(data: dependencyObservable.PropertyChangeData) { var swtch = data.object; @@ -28,7 +29,7 @@ export class Switch extends common.Switch { var that = new WeakRef(this); - this._android.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener({ + this._android.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener({ get owner() { return that.get(); }, @@ -40,4 +41,4 @@ export class Switch extends common.Switch { } })); } -} \ No newline at end of file +} diff --git a/ui/time-picker/time-picker.android.ts b/ui/time-picker/time-picker.android.ts index d966c6b30..5bdc491eb 100644 --- a/ui/time-picker/time-picker.android.ts +++ b/ui/time-picker/time-picker.android.ts @@ -1,6 +1,7 @@ import common = require("ui/time-picker/time-picker-common"); import dependencyObservable = require("ui/core/dependency-observable"); import proxy = require("ui/core/proxy"); +import utils = require("utils/utils") function onHourPropertyChanged(data: dependencyObservable.PropertyChangeData) { var picker = data.object; @@ -32,7 +33,8 @@ export class TimePicker extends common.TimePicker { var that = new WeakRef(this); - this._listener = new android.widget.TimePicker.OnTimeChangedListener({ + this._listener = new android.widget.TimePicker.OnTimeChangedListener( + { get owner() { return that.get(); }, @@ -80,4 +82,4 @@ export class TimePicker extends common.TimePicker { this._isSettingTime = false; } } -} \ No newline at end of file +} diff --git a/utils/utils.d.ts b/utils/utils.d.ts index c54596630..2f82dbacf 100644 --- a/utils/utils.d.ts +++ b/utils/utils.d.ts @@ -3,6 +3,15 @@ export var RESOURCE_PREFIX: string; + //@private + /** + * Used by various android event listener implementations + */ + interface Owned { + owner: any; + } + //@endprivate + /** * Utility module related to layout. */