mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-07 15:07:13 +08:00
refactor(input): make the interfaces be in a .ts file so a corresponding .d.ts file is generated by the ts compiler
This commit is contained in:
122
packages/core/src/utils/input-interfaces.ts
Normal file
122
packages/core/src/utils/input-interfaces.ts
Normal file
@ -0,0 +1,122 @@
|
||||
import { EventEmitter } from '@stencil/core';
|
||||
|
||||
|
||||
export interface BaseInput {
|
||||
|
||||
// Properties
|
||||
// ------------------------
|
||||
|
||||
/**
|
||||
* Indicates that the user cannot interact with the control.
|
||||
*/
|
||||
disabled: boolean;
|
||||
|
||||
/**
|
||||
* Returns / Sets the element's readonly attribute, indicating that
|
||||
* the user cannot modify the value of the control. HTML5. This is
|
||||
* ignored if the value of the type attribute is hidden, range, color,
|
||||
* checkbox, radio, file, or a button type.
|
||||
*/
|
||||
readOnly?: boolean;
|
||||
|
||||
/**
|
||||
* Reflects the value of the form control.
|
||||
*/
|
||||
value: string;
|
||||
|
||||
|
||||
// Events
|
||||
// ------------------------
|
||||
|
||||
/**
|
||||
* Removes focus from input; keystrokes will subsequently go nowhere.
|
||||
*/
|
||||
ionBlur: EventEmitter<BlurEvent>;
|
||||
|
||||
/**
|
||||
* Focus on the input element; keystrokes will subsequently go to this element.
|
||||
*/
|
||||
ionFocus: EventEmitter<FocusEvent>;
|
||||
|
||||
/**
|
||||
* Emitted when the styles change. This is useful for parent
|
||||
* components to know how to style themselves depending on the
|
||||
* child input. For example, a disabled ion-toggle may give
|
||||
* its wrapping ion-item a different style.
|
||||
*/
|
||||
ionStyle: EventEmitter<StyleEvent>;
|
||||
|
||||
}
|
||||
|
||||
|
||||
export interface BooleanInput extends BaseInput {
|
||||
/**
|
||||
* Returns / Sets the current state of the element when type is checkbox or radio.
|
||||
*/
|
||||
checked: boolean;
|
||||
|
||||
/**
|
||||
* The change event is fired when the value of has changed.
|
||||
* This is actually more similar to the native "input" event
|
||||
* https://developer.mozilla.org/en-US/docs/Web/Events/input
|
||||
*/
|
||||
ionChange: EventEmitter<BooleanInputChangeEvent>;
|
||||
}
|
||||
|
||||
|
||||
export interface BooleanInputChangeEvent {
|
||||
checked: boolean;
|
||||
}
|
||||
|
||||
|
||||
export interface SelectOptionInput extends BaseInput {
|
||||
/**
|
||||
* Indicates whether the option is currently selected.
|
||||
*/
|
||||
selected: boolean;
|
||||
|
||||
}
|
||||
|
||||
|
||||
export interface SelectInput extends BaseInput {
|
||||
/**
|
||||
* Indicates whether the option is currently selected.
|
||||
*/
|
||||
selected: boolean;
|
||||
|
||||
/**
|
||||
* A long reflecting the index of the first selected <option> element.
|
||||
* The value -1 indicates no element is selected.
|
||||
*/
|
||||
selectedIndex: number;
|
||||
|
||||
/**
|
||||
* Reflecting the multiple HTML attribute, which indicates
|
||||
* whether multiple items can be selected.
|
||||
*/
|
||||
multiple: boolean;
|
||||
}
|
||||
|
||||
|
||||
export interface TextInput extends BaseInput {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
export interface TextMultiLineInput extends TextInput {
|
||||
|
||||
}
|
||||
|
||||
|
||||
export interface StyleEvent {
|
||||
[styleName: string]: boolean;
|
||||
}
|
||||
|
||||
|
||||
export interface FocusEvent {}
|
||||
|
||||
|
||||
export interface BlurEvent {}
|
||||
|
||||
Reference in New Issue
Block a user