fix(all): strong type text fields

This commit is contained in:
Manu Mtz.-Almeida
2018-07-29 14:32:28 +02:00
parent d65174bcf3
commit 1d001a3f29
6 changed files with 24 additions and 18 deletions

View File

@ -79,6 +79,7 @@ import {
StyleEvent,
TabbarLayout,
TabbarPlacement,
TextFieldTypes,
ToastOptions,
TransitionDoneFn,
TransitionInstruction,
@ -2862,7 +2863,7 @@ declare global {
/**
* The type of control to display. The default type is text. Possible values are: `"text"`, `"password"`, `"email"`, `"number"`, `"search"`, `"tel"`, or `"url"`.
*/
'type': string;
'type': TextFieldTypes;
/**
* The value of the input.
*/
@ -3024,7 +3025,7 @@ declare global {
/**
* The type of control to display. The default type is text. Possible values are: `"text"`, `"password"`, `"email"`, `"number"`, `"search"`, `"tel"`, or `"url"`.
*/
'type'?: string;
'type'?: TextFieldTypes;
/**
* The value of the input.
*/

View File

@ -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 {

View File

@ -152,9 +152,9 @@ export class Alert implements OverlayInterface {
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
handler: i.handler,
min: i.min,
max: i.max
}) as AlertInput);
}

View File

@ -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'

View File

@ -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.

View File

@ -30,6 +30,7 @@ export { OverlayEventDetail, OverlayInterface } from './utils/overlays';
// Global types
export type TextFieldTypes = 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';
export type Side = 'start' | 'end';
export type PredefinedColors = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
export type Color = PredefinedColors | string;