From bf99256c235788233a79ad5ce07d956c9699a290 Mon Sep 17 00:00:00 2001 From: Frithjof Winkelmann Date: Thu, 1 Nov 2018 01:23:29 +0100 Subject: [PATCH 1/3] Add types for rc-time-picker --- types/rc-time-picker/index.d.ts | 54 +++++++++++++++++++ types/rc-time-picker/rc-time-picker-tests.tsx | 10 ++++ types/rc-time-picker/tsconfig.json | 24 +++++++++ types/rc-time-picker/tslint.json | 1 + 4 files changed, 89 insertions(+) create mode 100644 types/rc-time-picker/index.d.ts create mode 100644 types/rc-time-picker/rc-time-picker-tests.tsx create mode 100644 types/rc-time-picker/tsconfig.json create mode 100644 types/rc-time-picker/tslint.json diff --git a/types/rc-time-picker/index.d.ts b/types/rc-time-picker/index.d.ts new file mode 100644 index 0000000000..354189cc3b --- /dev/null +++ b/types/rc-time-picker/index.d.ts @@ -0,0 +1,54 @@ +// Type definitions for rc-time-picker 3.4 +// Project: http://github.com/react-component/time-picker +// Definitions by: Frithjof Winkelmann +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import * as moment from "moment"; +import * as React from 'react'; + +export {}; + +interface TimePickerProps { + prefixCls: string; + clearText: string; + disabled: boolean; + allowEmpty: boolean; + open: boolean; + defaultValue: moment.Moment; + defaultOpenValue: moment.Moment; + value: moment.Moment; + placeholder: string; + className: string; + id: string; + popupClassName: string; + showHour: boolean; + showMinute: boolean; + showSecond: boolean; + format: string; + disabledHours: () => number[]; + disabledMinutes: (hour: number) => number[]; + disabledSeconds: (hour: number, minute: number) => number[]; + use12Hours: boolean; + hideDisabledOptions: boolean; + onChange: (value: moment.Moment) => void; + addon: (timepicker: TimePicker) => void; + placement: string; + transitionName: string; + onOpen: (state: { open: boolean }) => void; + onClose: (state: { open: boolean }) => void; + hourStep: number; + minuteStep: number; + secondStep: number; + focusOnOpen: boolean; + inputReadOnly: boolean; + inputIcon: React.ReactNode; + clearIcon: React.ReactNode; +} + +export default class TimePicker extends React.Component> { + constructor(props: Readonly>) + + close(): void; + isAM(): boolean; +} diff --git a/types/rc-time-picker/rc-time-picker-tests.tsx b/types/rc-time-picker/rc-time-picker-tests.tsx new file mode 100644 index 0000000000..9717e21038 --- /dev/null +++ b/types/rc-time-picker/rc-time-picker-tests.tsx @@ -0,0 +1,10 @@ +import TimePicker from 'rc-time-picker'; +import * as React from 'react'; +import * as moment from 'moment'; + + {}} + placeholder={'Input time'} + showSecond={false} + onOpen={({open}: { open: boolean }) => {}}/>; diff --git a/types/rc-time-picker/tsconfig.json b/types/rc-time-picker/tsconfig.json new file mode 100644 index 0000000000..013c1bfcb5 --- /dev/null +++ b/types/rc-time-picker/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react" + }, + "files": [ + "index.d.ts", + "rc-time-picker-tests.tsx" + ] +} diff --git a/types/rc-time-picker/tslint.json b/types/rc-time-picker/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/rc-time-picker/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From ae1d344fdf249a4a18ddfd170d62480460f42040 Mon Sep 17 00:00:00 2001 From: Frithjof Winkelmann Date: Thu, 1 Nov 2018 14:12:34 +0100 Subject: [PATCH 2/3] Update type of addon in rc-time-picker --- types/rc-time-picker/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/rc-time-picker/index.d.ts b/types/rc-time-picker/index.d.ts index 354189cc3b..79d3f2b89a 100644 --- a/types/rc-time-picker/index.d.ts +++ b/types/rc-time-picker/index.d.ts @@ -32,7 +32,7 @@ interface TimePickerProps { use12Hours: boolean; hideDisabledOptions: boolean; onChange: (value: moment.Moment) => void; - addon: (timepicker: TimePicker) => void; + addon: (timepicker: TimePicker) => JSX.Element; placement: string; transitionName: string; onOpen: (state: { open: boolean }) => void; From dfa10e28bb1f983dd0ef84baf0de9f2d9f6e9dc4 Mon Sep 17 00:00:00 2001 From: Frithjof Winkelmann Date: Fri, 2 Nov 2018 18:53:37 +0100 Subject: [PATCH 3/3] Enable esModuleInterop in rc-time-picker --- types/rc-time-picker/index.d.ts | 6 +++--- types/rc-time-picker/rc-time-picker-tests.tsx | 2 +- types/rc-time-picker/tsconfig.json | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/types/rc-time-picker/index.d.ts b/types/rc-time-picker/index.d.ts index 79d3f2b89a..62f6a7711a 100644 --- a/types/rc-time-picker/index.d.ts +++ b/types/rc-time-picker/index.d.ts @@ -7,8 +7,6 @@ import * as moment from "moment"; import * as React from 'react'; -export {}; - interface TimePickerProps { prefixCls: string; clearText: string; @@ -46,9 +44,11 @@ interface TimePickerProps { clearIcon: React.ReactNode; } -export default class TimePicker extends React.Component> { +declare class TimePicker extends React.Component> { constructor(props: Readonly>) close(): void; isAM(): boolean; } + +export = TimePicker; diff --git a/types/rc-time-picker/rc-time-picker-tests.tsx b/types/rc-time-picker/rc-time-picker-tests.tsx index 9717e21038..7f0ea63e9c 100644 --- a/types/rc-time-picker/rc-time-picker-tests.tsx +++ b/types/rc-time-picker/rc-time-picker-tests.tsx @@ -1,6 +1,6 @@ import TimePicker from 'rc-time-picker'; import * as React from 'react'; -import * as moment from 'moment'; +import moment from 'moment';