From 4f3f6f58f5992adb4835237b9b6221fc75bce2c3 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Fri, 6 Dec 2013 18:59:14 +0400 Subject: [PATCH] bootstrap.datepicker: fixed errors related to switch on TS 0.9.5; improved typings --- .../bootstrap.datepicker-tests.ts | 27 ++++++++++--------- .../bootstrap.datepicker.d.ts | 15 +++++++---- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/bootstrap.datepicker/bootstrap.datepicker-tests.ts b/bootstrap.datepicker/bootstrap.datepicker-tests.ts index 3346ab5e2..0bbf2c650 100644 --- a/bootstrap.datepicker/bootstrap.datepicker-tests.ts +++ b/bootstrap.datepicker/bootstrap.datepicker-tests.ts @@ -1,5 +1,4 @@ -/// -/// +/// function tests_simple() { $('#datepicker').datepicker(); @@ -11,30 +10,32 @@ function tests_simple() { $('#datepicker').datepicker('setEndDate', '2012-12-31'); $('#date-end') .datepicker() - .on('changeDate', function (ev) { }); + .on('changeDate', function (ev) { ev; }); var startDate = new Date(2012, 1, 20); var endDate = new Date(2012, 1, 25); $('#date-start') .datepicker() - .on('changeDate', function (ev) { + //.on("changeDate", function (ev) { // bug https://typescript.codeplex.com/workitem/1976 + .on("changeDate", function (ev: DatepickerEventObject) { if (ev.date.valueOf() > endDate.valueOf()) { $('#alert').show().find('strong').text('The start date must be before the end date.'); } else { $('#alert').hide(); - startDate = new Date(ev.date); + startDate = ev.date; $('#date-start-display').text($('#date-start').data('date')); } $('#date-start').datepicker('hide'); }); $('#date-end') .datepicker() - .on('changeDate', function (ev) { + //.on('changeDate', function (ev) { // bug https://typescript.codeplex.com/workitem/1976 + .on('changeDate', function (ev: DatepickerEventObject) { if (ev.date.valueOf() < startDate.valueOf()) { $('#alert').show().find('strong').text('The end date must be after the start date.'); } else { $('#alert').hide(); - endDate = new Date(ev.date); + endDate = ev.date; $('#date-end-display').text($('#date-end').data('date')); } $('#date-end').datepicker('hide'); @@ -55,25 +56,27 @@ $(function () { var startDate = new Date(2012, 1, 20); var endDate = new Date(2012, 1, 25); $('#dp4').datepicker() - .on('changeDate', function (ev) { + //.on('changeDate', function (ev) { // bug https://typescript.codeplex.com/workitem/1976 + .on('changeDate', function (ev: DatepickerEventObject) { if (ev.date.valueOf() > endDate.valueOf()) { $('#alert').show().find('strong').text('The start date can not be greater then the end date'); } else { $('#alert').hide(); - startDate = new Date(ev.date); + startDate = ev.date; $('#startDate').text($('#dp4').data('date')); } $('#dp4').datepicker('hide'); }); $('#dp5').datepicker() - .on('changeDate', function (ev) { + //.on('changeDate', function (ev) { // bug https://typescript.codeplex.com/workitem/1976 + .on('changeDate', function (ev: DatepickerEventObject) { if (ev.date.valueOf() < startDate.valueOf()) { $('#alert').show().find('strong').text('The end date can not be less then the start date'); } else { $('#alert').hide(); - endDate = new Date(ev.date); + endDate = ev.date; $('#endDate').text($('#dp5').data('date')); } $('#dp5').datepicker('hide'); }); -}); \ No newline at end of file +}); diff --git a/bootstrap.datepicker/bootstrap.datepicker.d.ts b/bootstrap.datepicker/bootstrap.datepicker.d.ts index 4cf27ef19..0664b2aa0 100644 --- a/bootstrap.datepicker/bootstrap.datepicker.d.ts +++ b/bootstrap.datepicker/bootstrap.datepicker.d.ts @@ -3,7 +3,6 @@ // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped - /// interface DatepickerOptions { @@ -19,15 +18,21 @@ interface DatepickerOptions { language?: string; } +interface DatepickerEventObject extends JQueryEventObject { + date: Date; + format(format?: string): string; +} + interface JQuery { datepicker(): JQuery; datepicker(methodName: string): JQuery; datepicker(methodName: string, params: any): JQuery; datepicker(options: DatepickerOptions): JQuery; - off(events?: "changeDate", selector?: any, handler?: (eventObject: any) => any): JQuery; + off(events: "changeDate", selector?: string, handler?: (eventObject: DatepickerEventObject) => any): JQuery; + off(events: "changeDate", handler: (eventObject: DatepickerEventObject) => any): JQuery; - on(events: "changeDate", selector?: string, data?: any, handler?: (eventObject: any) => any): JQuery; - on(events: "changeDate", selector?: string, handler?: (eventObject: any) => any): JQuery; - on(events: "changeDate", handler?: (eventObject: any) => any): JQuery; + on(events: "changeDate", selector: string, data: any, handler?: (eventObject: DatepickerEventObject) => any): JQuery; + on(events: "changeDate", selector: string, handler: (eventObject: DatepickerEventObject) => any): JQuery; + on(events: 'changeDate', handler: (eventObject: DatepickerEventObject) => any): JQuery; }