diff --git a/types/pikaday/index.d.ts b/types/pikaday/index.d.ts index 2464dbec93..956356f265 100644 --- a/types/pikaday/index.d.ts +++ b/types/pikaday/index.d.ts @@ -1,6 +1,7 @@ -// Type definitions for pikaday +// Type definitions for pikaday 1.6 // Project: https://github.com/dbushell/Pikaday -// Definitions by: Rudolph Gottesheim +// Definitions by: Rudolph Gottesheim +// Åke Wivänge // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -227,7 +228,7 @@ declare namespace Pikaday { * Callback function that gets passed a Date object for each day * in view. Should return true to disable selection of that day. */ - disableDayFn?: (date: Date) => boolean; + disableDayFn?(date: Date): boolean; /** * Number of years either side (e.g. 10) or array of upper/lower range @@ -259,7 +260,7 @@ declare namespace Pikaday { * Render the month after the year in the title. Default: false. */ showMonthAfterYear?: boolean; - + /** * Render days of the calendar grid that fall in the next or previous months to the current month instead of rendering an empty table cell. Default: false. */ @@ -283,25 +284,35 @@ declare namespace Pikaday { */ theme?: string; + /** + * The default flag for moment's strict date parsing (requires Moment.js for custom formatting). Default: false + */ + formatStrict?: boolean; + + /** + * Function which will be used for parsing input string and getting a date object from it. + * This function will take precedence over moment. + */ + parse?(date: string, format: string): Date; + /** * Callback function for when a date is selected. */ - onSelect?: (date: Date) => void; + onSelect?(date: Date): void; /** * Callback function for when the picker becomes visible. */ - onOpen?: () => void; + onOpen?(): void; /** * Callback function for when the picker is hidden. */ - onClose?: () => void; + onClose?(): void; /** * Callback function for when the picker draws a new month. */ - onDraw?: () => void; + onDraw?(): void; } } - diff --git a/types/pikaday/pikaday-tests.ts b/types/pikaday/pikaday-tests.ts index a1202664d3..9084455622 100644 --- a/types/pikaday/pikaday-tests.ts +++ b/types/pikaday/pikaday-tests.ts @@ -7,9 +7,9 @@ new Pikaday({field: document.getElementById('datepicker')}); new Pikaday({field: $('#datepicker')[0]}); (() => { - var field:HTMLInputElement = document.getElementById('datepicker'); - var picker = new Pikaday({ - onSelect: function (date:Date) { + const field: HTMLInputElement = document.getElementById('datepicker'); + const picker = new Pikaday({ + onSelect: (date: Date) => { field.value = picker.toString(); console.log(date.toISOString()); } @@ -18,10 +18,10 @@ new Pikaday({field: $('#datepicker')[0]}); })(); (() => { - var picker = new Pikaday({ + const picker = new Pikaday({ field: document.getElementById('datepicker'), format: 'D MMM YYYY', - onSelect: function () { + onSelect: () => { console.log(this.getMoment().format('Do MMMM YYYY')); } }); @@ -38,10 +38,10 @@ new Pikaday({field: $('#datepicker')[0]}); picker.nextMonth(); picker.prevMonth(); picker.gotoYear(2015); - picker.setMinDate(new Date); - picker.setMaxDate(new Date); - picker.setStartRange(new Date); - picker.setEndRange(new Date); + picker.setMinDate(new Date()); + picker.setMaxDate(new Date()); + picker.setStartRange(new Date()); + picker.setEndRange(new Date()); picker.isVisible(); picker.show(); picker.adjustPosition(); @@ -50,7 +50,7 @@ new Pikaday({field: $('#datepicker')[0]}); })(); (() => { - var i18n: Pikaday.PikadayI18nConfig = { + const i18n: Pikaday.PikadayI18nConfig = { previousMonth: 'Previous Month', nextMonth: 'Next Month', months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], @@ -61,23 +61,41 @@ new Pikaday({field: $('#datepicker')[0]}); })(); (() => { - new Pikaday( - { - field: document.getElementById('datepicker'), - firstDay: 1, - minDate: new Date('2000-01-01'), - maxDate: new Date('2020-12-31'), - yearRange: [2000, 2020] - }); + new Pikaday({ + field: document.getElementById('datepicker'), + format: 'YYYY-MM-DD', + trigger: document.getElementById('datepicker'), + bound: false, + position: 'top right', + reposition: false, + container: document.getElementById('myTag'), + defaultDate: new Date(), + setDefaultDate: true, + firstDay: 1, + minDate: new Date('2000-01-01'), + maxDate: new Date('2020-12-31'), + disableWeekends: true, + disableDayFn: (date) => true, + yearRange: [2000, 2020], + showWeekNumber: true, + isRTL: true, + yearSuffix: 'r', + showMonthAfterYear: false, + showDaysInNextAndPreviousMonths: true, + numberOfMonths: 2, + mainCalendar: 'right', + theme: 'myTheme', + formatStrict: true, + parse: () => new Date('2017-08-23'), + onSelect: () => {}, + onOpen: () => {}, + onClose: () => {}, + onDraw: () => {} + }); })(); (() => { - new Pikaday( - { - field: document.getElementById('datepicker'), - firstDay: 1, - minDate: new Date('2000-01-01'), - maxDate: new Date('2020-12-31'), - showDaysInNextAndPreviousMonths: true - }); + new Pikaday({ + yearRange: 5 + }); })(); diff --git a/types/pikaday/tslint.json b/types/pikaday/tslint.json new file mode 100644 index 0000000000..495d29983d --- /dev/null +++ b/types/pikaday/tslint.json @@ -0,0 +1,5 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + } +}