mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-09 16:16:41 +08:00
fix(all): strong type text fields
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import { TextFieldTypes } from '../../interface';
|
||||
|
||||
export interface AlertOptions {
|
||||
header?: string;
|
||||
@ -12,7 +13,7 @@ export interface AlertOptions {
|
||||
}
|
||||
|
||||
export interface AlertInput {
|
||||
type: string;
|
||||
type: TextFieldTypes | 'checkbox' | 'radio';
|
||||
name: string;
|
||||
placeholder?: string;
|
||||
value?: string;
|
||||
@ -21,8 +22,8 @@ export interface AlertInput {
|
||||
disabled?: boolean;
|
||||
id?: string;
|
||||
handler?: (input: AlertInput) => void;
|
||||
min?: string | number;
|
||||
max?: string | number;
|
||||
min?: number;
|
||||
max?: number;
|
||||
}
|
||||
|
||||
export interface AlertButton {
|
||||
|
||||
@ -144,17 +144,17 @@ export class Alert implements OverlayInterface {
|
||||
}
|
||||
this.inputType = inputTypes.values().next().value;
|
||||
this.processedInputs = inputs.map((i, index) => ({
|
||||
type: i.type || 'text',
|
||||
name: i.name ? i.name : index + '',
|
||||
placeholder: i.placeholder ? i.placeholder : '',
|
||||
value: i.value ? i.value : '',
|
||||
label: i.label,
|
||||
checked: !!i.checked,
|
||||
disabled: !!i.disabled,
|
||||
id: i.id ? i.id : `alert-input-${this.overlayId}-${index}`,
|
||||
handler: i.handler ? i.handler : null,
|
||||
min: i.min ? i.min : null,
|
||||
max: i.max ? i.max : null
|
||||
type: i.type || 'text',
|
||||
name: i.name ? i.name : index + '',
|
||||
placeholder: i.placeholder ? i.placeholder : '',
|
||||
value: i.value ? i.value : '',
|
||||
label: i.label,
|
||||
checked: !!i.checked,
|
||||
disabled: !!i.disabled,
|
||||
id: i.id ? i.id : `alert-input-${this.overlayId}-${index}`,
|
||||
handler: i.handler,
|
||||
min: i.min,
|
||||
max: i.max
|
||||
}) as AlertInput);
|
||||
}
|
||||
|
||||
|
||||
@ -124,16 +124,19 @@
|
||||
header: 'Prompt!',
|
||||
inputs: [
|
||||
{
|
||||
type: 'text',
|
||||
placeholder: 'Placeholder 1'
|
||||
},
|
||||
{
|
||||
name: 'name2',
|
||||
type: 'text',
|
||||
id: 'name2-id',
|
||||
value: 'hello',
|
||||
placeholder: 'Placeholder 2'
|
||||
},
|
||||
{
|
||||
name: 'name3',
|
||||
type: 'text',
|
||||
value: 'http://ionicframework.com',
|
||||
type: 'url',
|
||||
placeholder: 'Favorite site ever'
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { Component, Element, Event, EventEmitter, Prop, State, Watch } from '@stencil/core';
|
||||
import { Color, InputChangeEvent, Mode, StyleEvent } from '../../interface';
|
||||
import { Color, InputChangeEvent, Mode, StyleEvent, TextFieldTypes } from '../../interface';
|
||||
import { debounceEvent, deferEvent, renderHiddenInput } from '../../utils/helpers';
|
||||
import { createColorClasses, hostContext } from '../../utils/theme';
|
||||
import { InputComponent } from './input-base';
|
||||
@ -205,7 +205,7 @@ export class Input implements InputComponent {
|
||||
/**
|
||||
* The type of control to display. The default type is text. Possible values are: `"text"`, `"password"`, `"email"`, `"number"`, `"search"`, `"tel"`, or `"url"`.
|
||||
*/
|
||||
@Prop() type = 'text';
|
||||
@Prop() type: TextFieldTypes = 'text';
|
||||
|
||||
/**
|
||||
* The value of the input.
|
||||
|
||||
Reference in New Issue
Block a user