@ionic/core
Advanced tools
Comparing version 0.0.2-25 to 0.0.2-26
@@ -6,2 +6,4 @@ import { CssClassMap, EventEmitter } from '@stencil/core'; | ||
export declare class ActionSheet { | ||
mode: string; | ||
color: string; | ||
private animation; | ||
@@ -40,2 +42,3 @@ private el; | ||
enableBackdropDismiss: boolean; | ||
translucent: boolean; | ||
enterAnimation: AnimationBuilder; | ||
@@ -52,5 +55,10 @@ exitAnimation: AnimationBuilder; | ||
protected backdropClick(): void; | ||
buttonClass(button: ActionSheetButton): CssClassMap; | ||
protected buttonClick(button: ActionSheetButton): void; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element[]; | ||
buttonClass(button: ActionSheetButton): CssClassMap; | ||
} | ||
@@ -63,2 +71,3 @@ export interface ActionSheetOptions { | ||
enableBackdropDismiss?: boolean; | ||
translucent?: boolean; | ||
} | ||
@@ -65,0 +74,0 @@ export interface ActionSheetButton { |
import { CssClassMap, EventEmitter } from '@stencil/core'; | ||
import { Animation, AnimationBuilder, AnimationController, Config } from '../../index'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
import iOSEnterAnimation from './animations/ios.enter'; | ||
@@ -8,2 +9,3 @@ import iOSLeaveAnimation from './animations/ios.leave'; | ||
this.enableBackdropDismiss = true; | ||
this.translucent = false; | ||
} | ||
@@ -88,2 +90,11 @@ present() { | ||
} | ||
buttonClass(button) { | ||
let buttonClass = !button.role | ||
? ['action-sheet-button'] | ||
: [`action-sheet-button`, `action-sheet-${button.role}`]; | ||
return buttonClass.reduce((prevValue, cssClass) => { | ||
prevValue[cssClass] = true; | ||
return prevValue; | ||
}, {}); | ||
} | ||
buttonClick(button) { | ||
@@ -100,2 +111,9 @@ let shouldDismiss = true; | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'action-sheet-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -149,12 +167,3 @@ let userCssClass = 'action-sheet-content'; | ||
} | ||
buttonClass(button) { | ||
let buttonClass = !button.role | ||
? ['action-sheet-button'] | ||
: [`action-sheet-button`, `action-sheet-${button.role}`]; | ||
return buttonClass.reduce((prevValue, cssClass) => { | ||
prevValue[cssClass] = true; | ||
return prevValue; | ||
}, {}); | ||
} | ||
} | ||
export { iOSEnterAnimation, iOSLeaveAnimation }; |
@@ -6,2 +6,4 @@ import { CssClassMap, EventEmitter } from '@stencil/core'; | ||
export declare class Alert { | ||
mode: string; | ||
color: string; | ||
private animation; | ||
@@ -45,2 +47,3 @@ private activeId; | ||
enableBackdropDismiss: boolean; | ||
translucent: boolean; | ||
enterAnimation: AnimationBuilder; | ||
@@ -64,6 +67,9 @@ exitAnimation: AnimationBuilder; | ||
renderInput(inputs: AlertInput[]): JSX.Element; | ||
render(): JSX.Element[]; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
id: string; | ||
}; | ||
render(): JSX.Element[]; | ||
} | ||
@@ -79,2 +85,3 @@ export interface AlertOptions { | ||
enableBackdropDismiss?: boolean; | ||
translucent?: boolean; | ||
} | ||
@@ -81,0 +88,0 @@ export interface AlertInput { |
import { CssClassMap, EventEmitter } from '@stencil/core'; | ||
import { Animation, AnimationBuilder, AnimationController, Config } from '../../index'; | ||
import { playAnimationAsync } from '../../utils/helpers'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
import iOSEnterAnimation from './animations/ios.enter'; | ||
@@ -11,2 +12,3 @@ import iOSLeaveAnimation from './animations/ios.leave'; | ||
this.enableBackdropDismiss = true; | ||
this.translucent = false; | ||
} | ||
@@ -186,2 +188,10 @@ present() { | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'alert-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses, | ||
id: this.alertId | ||
}; | ||
} | ||
render() { | ||
@@ -264,8 +274,3 @@ const hdrId = `${this.alertId}-hdr`; | ||
} | ||
hostData() { | ||
return { | ||
id: this.alertId | ||
}; | ||
} | ||
} | ||
export { iOSEnterAnimation, iOSLeaveAnimation }; |
@@ -1,11 +0,3 @@ | ||
/** | ||
* @name Avatar | ||
* @module ionic | ||
* @description | ||
* An Avatar is a component that creates a circular image for an item. | ||
* Avatars can be placed on the left or right side of an item with the `item-start` or `item-end` directive. | ||
* @see {@link /docs/components/#avatar-list Avatar Component Docs} | ||
*/ | ||
export declare class Avatar { | ||
render(): JSX.Element; | ||
} |
@@ -1,28 +0,1 @@ | ||
/** | ||
* @name Badge | ||
* @module ionic | ||
* @description | ||
* Badges are simple components in Ionic containing numbers or text. You can display a | ||
* badge to indicate that there is new information associated with the item it is on. | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* <ion-content> | ||
* <ion-list> | ||
* <ion-item> | ||
* <ion-badge slot="start"> | ||
* 34 | ||
* </ion-badge> | ||
* My Item | ||
* <ion-badge slot="end"> | ||
* 2 | ||
* </ion-badge> | ||
* </ion-item> | ||
* </ion-list> | ||
* </ion-content> | ||
* ``` | ||
* | ||
* @see {@link /docs/components/#badges Badges Component Docs} | ||
*/ | ||
export declare class Badge { | ||
@@ -29,0 +2,0 @@ /** |
@@ -1,61 +0,1 @@ | ||
/** | ||
* @name Button | ||
* @module ionic | ||
* @description | ||
* Buttons are simple components in Ionic. They can consist of text and icons | ||
* and be enhanced by a wide range of attributes. | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* | ||
* <!-- Colors --> | ||
* <ion-button>Default</ion-button> | ||
* | ||
* <ion-button color="secondary">Secondary</ion-button> | ||
* | ||
* <ion-button color="danger">Danger</ion-button> | ||
* | ||
* <ion-button color="light">Light</ion-button> | ||
* | ||
* <ion-button color="dark">Dark</ion-button> | ||
* | ||
* <!-- Shapes --> | ||
* <ion-button full>Full Button</ion-button> | ||
* | ||
* <ion-button block>Block Button</ion-button> | ||
* | ||
* <ion-button round>Round Button</ion-button> | ||
* | ||
* <!-- Outline --> | ||
* <ion-button full outline>Outline + Full</ion-button> | ||
* | ||
* <ion-button block outline>Outline + Block</ion-button> | ||
* | ||
* <ion-button round outline>Outline + Round</ion-button> | ||
* | ||
* <!-- Icons --> | ||
* <ion-button> | ||
* <ion-icon slot="start" name="star"></ion-icon> | ||
* Left Icon | ||
* </ion-button> | ||
* | ||
* <ion-button> | ||
* Right Icon | ||
* <ion-icon slot="end" name="star"></ion-icon> | ||
* </ion-button> | ||
* | ||
* <ion-button> | ||
* <ion-icon slot="icon-only" name="star"></ion-icon> | ||
* </ion-button> | ||
* | ||
* <!-- Sizes --> | ||
* <ion-button large>Large</ion-button> | ||
* | ||
* <ion-button>Default</ion-button> | ||
* | ||
* <ion-button small>Small</ion-button> | ||
* ``` | ||
* | ||
*/ | ||
export declare class Button { | ||
@@ -62,0 +2,0 @@ private el; |
@@ -14,3 +14,13 @@ export declare class CardHeader { | ||
mode: 'ios' | 'md'; | ||
/** | ||
* @input {boolean} If true, adds transparency to the card header. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element; | ||
} |
import { } from '@stencil/core'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
export class CardHeader { | ||
constructor() { | ||
/** | ||
* @input {boolean} If true, adds transparency to the card header. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'card-header-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -4,0 +19,0 @@ return h("slot", null); |
import { BlurEvent, CheckboxInput, CheckedInputChangeEvent, FocusEvent, StyleEvent } from '../../utils/input-interfaces'; | ||
import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @name Checkbox | ||
* @module ionic | ||
* | ||
* @description | ||
* placed in an `ion-item` or used as a stand-alone checkbox. | ||
* | ||
* See the [Angular Docs](https://angular.io/docs/ts/latest/guide/forms.html) | ||
* for more info on forms and inputs. | ||
* | ||
* | ||
* @usage | ||
* ```html | ||
* | ||
* <ion-list> | ||
* | ||
* <ion-item> | ||
* <ion-label>Pepperoni</ion-label> | ||
* <ion-checkbox [(ngModel)]="pepperoni"></ion-checkbox> | ||
* </ion-item> | ||
* | ||
* <ion-item> | ||
* <ion-label>Sausage</ion-label> | ||
* <ion-checkbox [(ngModel)]="sausage" disabled="true"></ion-checkbox> | ||
* </ion-item> | ||
* | ||
* <ion-item> | ||
* <ion-label>Mushrooms</ion-label> | ||
* <ion-checkbox [(ngModel)]="mushrooms"></ion-checkbox> | ||
* </ion-item> | ||
* | ||
* </ion-list> | ||
* ``` | ||
* | ||
* @advanced | ||
* | ||
* ```html | ||
* | ||
* <!-- Call function when state changes --> | ||
* <ion-list> | ||
* | ||
* <ion-item> | ||
* <ion-label>Cucumber</ion-label> | ||
* <ion-checkbox [(ngModel)]="cucumber" (ionChange)="updateCucumber()"></ion-checkbox> | ||
* </ion-item> | ||
* | ||
* </ion-list> | ||
* ``` | ||
* | ||
* ```ts | ||
* @Component({ | ||
* templateUrl: 'main.html' | ||
* }) | ||
* class SaladPage { | ||
* cucumber: boolean; | ||
* | ||
* updateCucumber() { | ||
* console.log('Cucumbers new state:' + this.cucumber); | ||
* } | ||
* } | ||
* ``` | ||
* | ||
* @demo /docs/demos/src/checkbox/ | ||
* @see {@link /docs/components#checkbox Checkbox Component Docs} | ||
*/ | ||
export declare class Checkbox implements CheckboxInput { | ||
private checkboxId; | ||
private labelId; | ||
private didLoad; | ||
private inputId; | ||
private nativeInput; | ||
private styleTmr; | ||
keyFocus: boolean; | ||
/** | ||
* @output {Event} Emitted when the checked property has changed. | ||
*/ | ||
ionChange: EventEmitter<CheckedInputChangeEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle has focus. | ||
*/ | ||
ionFocus: EventEmitter<FocusEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle loses focus. | ||
*/ | ||
ionBlur: EventEmitter<BlurEvent>; | ||
/** | ||
* @output {Event} Emitted when the styles change. | ||
*/ | ||
ionStyle: EventEmitter<StyleEvent>; | ||
/** | ||
* @input {string} The color to use from your Sass `$colors` map. | ||
@@ -101,2 +22,6 @@ * Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`. | ||
/** | ||
* The name of the control, which is submitted with the form data. | ||
*/ | ||
name: string; | ||
/** | ||
* @input {boolean} If true, the checkbox is selected. Defaults to `false`. | ||
@@ -110,8 +35,27 @@ */ | ||
value: string; | ||
/** | ||
* @output {Event} Emitted when the checked property has changed. | ||
*/ | ||
ionChange: EventEmitter<CheckedInputChangeEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle has focus. | ||
*/ | ||
ionFocus: EventEmitter<FocusEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle loses focus. | ||
*/ | ||
ionBlur: EventEmitter<BlurEvent>; | ||
/** | ||
* @output {Event} Emitted when the styles change. | ||
*/ | ||
ionStyle: EventEmitter<StyleEvent>; | ||
componentWillLoad(): void; | ||
componentDidLoad(): void; | ||
checkedChanged(isChecked: boolean): void; | ||
disabledChanged(): void; | ||
private emitStyle(); | ||
onSpace(ev: KeyboardEvent): void; | ||
toggle(): void; | ||
disabledChanged(isDisabled: boolean): void; | ||
emitStyle(): void; | ||
onChange(): void; | ||
onKeyUp(): void; | ||
onFocus(): void; | ||
onBlur(): void; | ||
hostData(): { | ||
@@ -121,2 +65,3 @@ class: { | ||
'checkbox-disabled': boolean; | ||
'checkbox-key': boolean; | ||
}; | ||
@@ -123,0 +68,0 @@ }; |
@@ -15,12 +15,35 @@ import { BlurEvent, CheckboxInput, CheckedInputChangeEvent, FocusEvent, StyleEvent } from '../../utils/input-interfaces'; | ||
componentWillLoad() { | ||
this.inputId = 'ion-cb-' + (checkboxIds++); | ||
if (this.value === undefined) { | ||
this.value = this.inputId; | ||
} | ||
this.emitStyle(); | ||
} | ||
componentDidLoad() { | ||
this.nativeInput.checked = this.checked; | ||
this.didLoad = true; | ||
const parentItem = this.nativeInput.closest('ion-item'); | ||
if (parentItem) { | ||
const itemLabel = parentItem.querySelector('ion-label'); | ||
if (itemLabel) { | ||
itemLabel.id = this.inputId + '-lbl'; | ||
this.nativeInput.setAttribute('aria-labelledby', itemLabel.id); | ||
} | ||
} | ||
} | ||
checkedChanged(isChecked) { | ||
this.ionChange.emit({ | ||
checked: isChecked, | ||
value: this.value | ||
}); | ||
if (this.nativeInput.checked !== isChecked) { | ||
// keep the checked value and native input `nync | ||
this.nativeInput.checked = isChecked; | ||
} | ||
if (this.didLoad) { | ||
this.ionChange.emit({ | ||
checked: isChecked, | ||
value: this.value | ||
}); | ||
} | ||
this.emitStyle(); | ||
} | ||
disabledChanged() { | ||
disabledChanged(isDisabled) { | ||
this.nativeInput.disabled = isDisabled; | ||
this.emitStyle(); | ||
@@ -37,10 +60,15 @@ } | ||
} | ||
onSpace(ev) { | ||
this.toggle(); | ||
ev.stopPropagation(); | ||
ev.preventDefault(); | ||
} | ||
toggle() { | ||
onChange() { | ||
this.checked = !this.checked; | ||
} | ||
onKeyUp() { | ||
this.keyFocus = true; | ||
} | ||
onFocus() { | ||
this.ionFocus.emit(); | ||
} | ||
onBlur() { | ||
this.keyFocus = false; | ||
this.ionBlur.emit(); | ||
} | ||
hostData() { | ||
@@ -50,3 +78,4 @@ return { | ||
'checkbox-checked': this.checked, | ||
'checkbox-disabled': this.disabled | ||
'checkbox-disabled': this.disabled, | ||
'checkbox-key': this.keyFocus | ||
} | ||
@@ -63,5 +92,6 @@ }; | ||
h("div", { class: 'checkbox-inner' })), | ||
h("button", { class: 'checkbox-cover', onClick: () => this.toggle(), id: this.checkboxId, "aria-checked": this.checked ? 'true' : false, "aria-disabled": this.disabled ? 'true' : false, "aria-labelledby": this.labelId, role: 'checkbox', tabIndex: 0 }) | ||
h("input", { type: 'checkbox', onChange: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyUp: this.onKeyUp.bind(this), id: this.inputId, name: this.name, value: this.value, disabled: this.disabled, ref: r => this.nativeInput = r }) | ||
]; | ||
} | ||
} | ||
let checkboxIds = 0; |
@@ -1,88 +0,1 @@ | ||
/** | ||
* @name Chip | ||
* @module ionic | ||
* @description | ||
* Chips represent complex entities in small blocks, such as a contact. | ||
* | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* <ion-chip> | ||
* <ion-label>Default</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip> | ||
* <ion-label color="secondary">Secondary Label</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip color="secondary"> | ||
* <ion-label color="dark">Secondary w/ Dark label</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip color="danger"> | ||
* <ion-label>Danger</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip> | ||
* <ion-icon name="pin"></ion-icon> | ||
* <ion-label>Default</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip> | ||
* <ion-icon name="heart" color="dark"></ion-icon> | ||
* <ion-label>Default</ion-label> | ||
* </ion-chip> | ||
* | ||
* <ion-chip> | ||
* <ion-avatar> | ||
* <img src="assets/img/my-img.png"> | ||
* </ion-avatar> | ||
* <ion-label>Default</ion-label> | ||
* </ion-chip> | ||
* ``` | ||
* | ||
* | ||
* @advanced | ||
* | ||
* ```html | ||
* <ion-chip #chip1> | ||
* <ion-label>Default</ion-label> | ||
* <ion-button clear color="light" (click)="delete(chip1)"> | ||
* <ion-icon name="close-circle"></ion-icon> | ||
* </ion-button> | ||
* </ion-chip> | ||
* | ||
* <ion-chip #chip2> | ||
* <ion-icon name="pin" color="primary"></ion-icon> | ||
* <ion-label>With Icon</ion-label> | ||
* <ion-button (click)="delete(chip2)"> | ||
* <ion-icon name="close"></ion-icon> | ||
* </ion-button> | ||
* </ion-chip> | ||
* | ||
* <ion-chip #chip3> | ||
* <ion-avatar> | ||
* <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw=="> | ||
* </ion-avatar> | ||
* <ion-label>With Avatar</ion-label> | ||
* <ion-button clear color="dark" (click)="delete(chip3)"> | ||
* <ion-icon name="close-circle"></ion-icon> | ||
* </ion-button> | ||
* </ion-chip> | ||
* ``` | ||
* | ||
* ```ts | ||
* @Component({ | ||
* templateUrl: 'main.html' | ||
* }) | ||
* class E2EPage { | ||
* delete(chip: Element) { | ||
* chip.remove(); | ||
* } | ||
* } | ||
* ``` | ||
* | ||
* @demo /docs/demos/src/chip/ | ||
**/ | ||
export declare class Chip { | ||
@@ -89,0 +2,0 @@ /** |
@@ -29,2 +29,3 @@ import { Config } from '../../index'; | ||
fullscreen: boolean; | ||
onNavChanged(): void; | ||
componentDidLoad(): void; | ||
@@ -31,0 +32,0 @@ componentDidUnload(): void; |
@@ -17,2 +17,5 @@ import { } from '@stencil/core'; | ||
} | ||
onNavChanged() { | ||
this.resize(); | ||
} | ||
componentDidLoad() { | ||
@@ -19,0 +22,0 @@ this.scrollEl = this.el.querySelector('ion-scroll'); |
import { EventEmitter } from '@stencil/core'; | ||
import { DatetimeData, LocaleData } from './datetime-util'; | ||
import { Picker, PickerColumn, PickerController, PickerOptions } from '../../index'; | ||
/** | ||
* @name Datetime | ||
* @description | ||
* The Datetime component is used to present an interface which makes it easy for | ||
* users to select dates and times. Tapping on `<ion-datetime>` will display a picker | ||
* interface that slides up from the bottom of the page. The picker then displays | ||
* scrollable columns that can be used to individually select years, months, days, | ||
* hours and minute values. The Datetime component is similar to the native | ||
* `<input type="datetime-local">` element, however, Ionic's Datetime component makes | ||
* it easy to display the date and time in a preferred format, and manage the datetime | ||
* values. | ||
* | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Date</ion-label> | ||
* <ion-datetime displayFormat="MM/DD/YYYY" [(ngModel)]="myDate"></ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* | ||
* ## Display and Picker Formats | ||
* | ||
* The Datetime component displays the values in two places: in the `<ion-datetime>` | ||
* component, and in the interface that is presented from the bottom of the screen. | ||
* The following chart lists all of the formats that can be used. | ||
* | ||
* | Format | Description | Example | | ||
* |---------|--------------------------------|-------------------------| | ||
* | `YYYY` | Year, 4 digits | `2018` | | ||
* | `YY` | Year, 2 digits | `18` | | ||
* | `M` | Month | `1` ... `12` | | ||
* | `MM` | Month, leading zero | `01` ... `12` | | ||
* | `MMM` | Month, short name | `Jan` | | ||
* | `MMMM` | Month, full name | `January` | | ||
* | `D` | Day | `1` ... `31` | | ||
* | `DD` | Day, leading zero | `01` ... `31` | | ||
* | `DDD` | Day, short name | `Fri` | | ||
* | `DDDD` | Day, full name | `Friday` | | ||
* | `H` | Hour, 24-hour | `0` ... `23` | | ||
* | `HH` | Hour, 24-hour, leading zero | `00` ... `23` | | ||
* | `h` | Hour, 12-hour | `1` ... `12` | | ||
* | `hh` | Hour, 12-hour, leading zero | `01` ... `12` | | ||
* | `a` | 12-hour time period, lowercase | `am` `pm` | | ||
* | `A` | 12-hour time period, uppercase | `AM` `PM` | | ||
* | `m` | Minute | `1` ... `59` | | ||
* | `mm` | Minute, leading zero | `01` ... `59` | | ||
* | `s` | Second | `1` ... `59` | | ||
* | `ss` | Second, leading zero | `01` ... `59` | | ||
* | `Z` | UTC Timezone Offset | `Z or +HH:mm or -HH:mm` | | ||
* | ||
* **Important**: See the [Month Names and Day of the Week Names](#month-names-and-day-of-the-week-names) | ||
* section below on how to use different names for the month and day. | ||
* | ||
* ### Display Format | ||
* | ||
* The `displayFormat` input property specifies how a datetime's value should be | ||
* printed, as formatted text, within the `ion-datetime` component. | ||
* | ||
* In the following example, the display in the `<ion-datetime>` will use the | ||
* month's short name, the numerical day with a leading zero, a comma and the | ||
* four-digit year. In addition to the date, it will display the time with the hours | ||
* in the 24-hour format and the minutes. Any character can be used as a separator. | ||
* An example display using this format is: `Jun 17, 2005 11:06`. | ||
* | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Date</ion-label> | ||
* <ion-datetime displayFormat="MMM DD, YYYY HH:mm" [(ngModel)]="myDate"></ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* ### Picker Format | ||
* | ||
* The `pickerFormat` input property determines which columns should be shown in the | ||
* interface, the order of the columns, and which format to use within each column. | ||
* If the `pickerFormat` input is not provided then it will default to the `displayFormat`. | ||
* | ||
* In the following example, the display in the `<ion-datetime>` will use the | ||
* `MM/YYYY` format, such as `06/2020`. However, the picker interface | ||
* will display two columns with the month's long name, and the four-digit year. | ||
* | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Date</ion-label> | ||
* <ion-datetime displayFormat="MM/YYYY" pickerFormat="MMMM YYYY" [(ngModel)]="myDate"></ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* ### Datetime Data | ||
* | ||
* Historically, handling datetime values within JavaScript, or even within HTML | ||
* inputs, has always been a challenge. Specifically, JavaScript's `Date` object is | ||
* notoriously difficult to correctly parse apart datetime strings or to format | ||
* datetime values. Even worse is how different browsers and JavaScript versions | ||
* parse various datetime strings differently, especially per locale. | ||
* | ||
* But no worries, all is not lost! Ionic's datetime input has been designed so | ||
* developers can avoid the common pitfalls, allowing developers to easily format | ||
* datetime values within the input, and give the user a simple datetime picker for a | ||
* great user experience. | ||
* | ||
* ##### ISO 8601 Datetime Format: YYYY-MM-DDTHH:mmZ | ||
* | ||
* Ionic uses the [ISO 8601 datetime format](https://www.w3.org/TR/NOTE-datetime) | ||
* for its value. The value is simply a string, rather than using JavaScript's `Date` | ||
* object. Additionally, when using the ISO datetime format, it makes it easier | ||
* to serialize and pass within JSON objects, and sending databases a standardized | ||
* format which it can be easily parsed if need be. | ||
* | ||
* An ISO format can be used as a simple year, or just the hour and minute, or get more | ||
* detailed down to the millisecond and timezone. Any of the ISO formats below can be used, | ||
* and after a user selects a new value, Ionic will continue to use the same ISO format | ||
* which datetime value was originally given as. | ||
* | ||
* | Description | Format | Datetime Value Example | | ||
* |----------------------|------------------------|------------------------------| | ||
* | Year | YYYY | 1994 | | ||
* | Year and Month | YYYY-MM | 1994-12 | | ||
* | Complete Date | YYYY-MM-DD | 1994-12-15 | | ||
* | Date and Time | YYYY-MM-DDTHH:mm | 1994-12-15T13:47 | | ||
* | UTC Timezone | YYYY-MM-DDTHH:mm:ssTZD | 1994-12-15T13:47:20.789Z | | ||
* | Timezone Offset | YYYY-MM-DDTHH:mm:ssTZD | 1994-12-15T13:47:20.789+5:00 | | ||
* | Hour and Minute | HH:mm | 13:47 | | ||
* | Hour, Minute, Second | HH:mm:ss | 13:47:20 | | ||
* | ||
* Note that the year is always four-digits, milliseconds (if it's added) is always | ||
* three-digits, and all others are always two-digits. So the number representing | ||
* January always has a leading zero, such as `01`. Additionally, the hour is always | ||
* in the 24-hour format, so `00` is `12am` on a 12-hour clock, `13` means `1pm`, | ||
* and `23` means `11pm`. | ||
* | ||
* It's also important to note that neither the `displayFormat` or `pickerFormat` can | ||
* set the datetime value's output, which is the value that is set by the component's | ||
* `ngModel`. The format's are merely for displaying the value as text and the picker's | ||
* interface, but the datetime's value is always persisted as a valid ISO 8601 datetime | ||
* string. | ||
* | ||
* | ||
* ## Min and Max Datetimes | ||
* | ||
* Dates are infinite in either direction, so for a user's selection there should be at | ||
* least some form of restricting the dates that can be selected. By default, the maximum | ||
* date is to the end of the current year, and the minimum date is from the beginning | ||
* of the year that was 100 years ago. | ||
* | ||
* To customize the minimum and maximum datetime values, the `min` and `max` component | ||
* inputs can be provided which may make more sense for the app's use-case, rather | ||
* than the default of the last 100 years. Following the same IS0 8601 format listed | ||
* in the table above, each component can restrict which dates can be selected by the | ||
* user. Below is an example of restricting the date selection between the beginning | ||
* of 2016, and October 31st of 2020: | ||
* | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Date</ion-label> | ||
* <ion-datetime displayFormat="MMMM YYYY" min="2016" max="2020-10-31" [(ngModel)]="myDate"> | ||
* </ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* | ||
* ## Month Names and Day of the Week Names | ||
* | ||
* At this time, there is no one-size-fits-all standard to automatically choose the correct | ||
* language/spelling for a month name, or day of the week name, depending on the language | ||
* or locale. Good news is that there is an | ||
* [Intl.DatetimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DatetimeFormat) | ||
* standard which *most* browsers have adopted. However, at this time the standard has not | ||
* been fully implemented by all popular browsers so Ionic is unavailable to take advantage | ||
* of it *yet*. Additionally, Angular also provides an internationalization service, but it | ||
* is still under heavy development so Ionic does not depend on it at this time. | ||
* | ||
* All things considered, the by far easiest solution is to just provide an array of names | ||
* if the app needs to use names other than the default English version of month and day | ||
* names. The month names and day names can be either configured at the app level, or | ||
* individual `ion-datetime` level. | ||
* | ||
* ### App Config Level | ||
* | ||
* ```ts | ||
* //app.module.ts | ||
* @NgModule({ | ||
* ..., | ||
* imports: [ | ||
* IonicModule.forRoot(MyApp, { | ||
* monthNames: ['janeiro', 'fevereiro', 'mar\u00e7o', ... ], | ||
* monthShortNames: ['jan', 'fev', 'mar', ... ], | ||
* dayNames: ['domingo', 'segunda-feira', 'ter\u00e7a-feira', ... ], | ||
* dayShortNames: ['dom', 'seg', 'ter', ... ], | ||
* }) | ||
* ], | ||
* ... | ||
* }) | ||
* ``` | ||
* | ||
* ### Component Input Level | ||
* | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Período</ion-label> | ||
* <ion-datetime displayFormat="DDDD MMM D, YYYY" [(ngModel)]="myDate" | ||
* monthNames="janeiro, fevereiro, mar\u00e7o, ..." | ||
* monthShortNames="jan, fev, mar, ..." | ||
* dayNames="domingo, segunda-feira, ter\u00e7a-feira, ..." | ||
* dayShortNames="dom, seg, ter, ..."></ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* | ||
* ### Advanced Datetime Validation and Manipulation | ||
* | ||
* The datetime picker provides the simplicity of selecting an exact format, and persists | ||
* the datetime values as a string using the standardized | ||
* [ISO 8601 datetime format](https://www.w3.org/TR/NOTE-datetime). | ||
* However, it's important to note that `ion-datetime` does not attempt to solve all | ||
* situtations when validating and manipulating datetime values. If datetime values need | ||
* to be parsed from a certain format, or manipulated (such as adding 5 days to a date, | ||
* subtracting 30 minutes, etc.), or even formatting data to a specific locale, then we highly | ||
* recommend using [moment.js](http://momentjs.com/) to "Parse, validate, manipulate, and | ||
* display dates in JavaScript". [Moment.js](http://momentjs.com/) has quickly become | ||
* our goto standard when dealing with datetimes within JavaScript, but Ionic does not | ||
* prepackage this dependency since most apps will not require it, and its locale | ||
* configuration should be decided by the end-developer. | ||
* | ||
* | ||
* @usage | ||
* ```html | ||
* <ion-item> | ||
* <ion-label>Date</ion-label> | ||
* <ion-datetime displayFormat="MM/DD/YYYY" [(ngModel)]="myDate"> | ||
* </ion-datetime> | ||
* </ion-item> | ||
* ``` | ||
* | ||
* | ||
* @demo /docs/demos/src/datetime/ | ||
*/ | ||
export declare class Datetime { | ||
@@ -242,0 +5,0 @@ [key: string]: any; |
@@ -65,2 +65,7 @@ /** | ||
href: string; | ||
/** | ||
* @input {boolean} If true, adds transparency to the fab. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
activated: boolean; | ||
@@ -67,0 +72,0 @@ toggleActive: Function; |
@@ -5,2 +5,7 @@ import { CssClassMap } from '@stencil/core'; | ||
constructor() { | ||
/** | ||
* @input {boolean} If true, adds transparency to the fab. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
this.activated = false; | ||
@@ -34,6 +39,10 @@ this.toggleActive = () => { }; | ||
} | ||
return [ | ||
let listClasses = [ | ||
`fab-in-list`, | ||
`fab-${this.mode}-in-list` | ||
]; | ||
if (this.translucent) { | ||
listClasses.push(`fab-translucent-${this.mode}-in-list`); | ||
} | ||
return listClasses; | ||
} | ||
@@ -66,2 +75,3 @@ /** | ||
const themedClasses = createThemedClasses(this.mode, this.color, 'fab'); | ||
const translucentClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'fab-translucent') : {}; | ||
const hostClasses = getElementClassObject(this.el.classList); | ||
@@ -75,3 +85,3 @@ const elementClasses = [] | ||
const TagType = this.href ? 'a' : 'button'; | ||
const fabClasses = Object.assign({}, themedClasses, hostClasses, elementClasses); | ||
const fabClasses = Object.assign({}, themedClasses, translucentClasses, hostClasses, elementClasses); | ||
return (h(TagType, { class: fabClasses, onClick: this.clickedFab.bind(this), disabled: this.disabled }, | ||
@@ -78,0 +88,0 @@ h("ion-icon", { name: 'close', class: 'fab-close-icon' }), |
export declare class Footer { | ||
mode: string; | ||
color: string; | ||
/** | ||
* @input {boolean} If true, adds transparency to the footer. | ||
* Note: In order to scroll content behind the footer, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element; | ||
} |
import { } from '@stencil/core'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
export class Footer { | ||
constructor() { | ||
/** | ||
* @input {boolean} If true, adds transparency to the footer. | ||
* Note: In order to scroll content behind the footer, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'header-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -4,0 +21,0 @@ return h("slot", null); |
export declare class Header { | ||
mode: string; | ||
color: string; | ||
/** | ||
* @input {boolean} If true, adds transparency to the header. | ||
* Note: In order to scroll content behind the header, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element; | ||
} |
import { } from '@stencil/core'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
export class Header { | ||
constructor() { | ||
/** | ||
* @input {boolean} If true, adds transparency to the header. | ||
* Note: In order to scroll content behind the header, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'header-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -4,0 +21,0 @@ return h("slot", null); |
import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @name InfiniteScroll | ||
* @description | ||
* The Infinite Scroll allows you to perform an action when the user | ||
* scrolls a specified distance from the bottom or top of the page. | ||
* | ||
* The expression assigned to the `infinite` event is called when | ||
* the user scrolls to the specified distance. When this expression | ||
* has finished its tasks, it should call the `complete()` method | ||
* on the infinite scroll instance. | ||
* | ||
* @usage | ||
* ```html | ||
* <ion-content> | ||
* | ||
* <ion-list> | ||
* <ion-item *ngFor="let i of items">{% raw %}{{i}}{% endraw %}</ion-item> | ||
* </ion-list> | ||
* | ||
* <ion-infinite-scroll (ionInfinite)="doInfinite($event)"> | ||
* <ion-infinite-scroll-content></ion-infinite-scroll-content> | ||
* </ion-infinite-scroll> | ||
* | ||
* </ion-content> | ||
* ``` | ||
* | ||
* ```ts | ||
* @Component({...}) | ||
* export class NewsFeedPage { | ||
* items = []; | ||
* | ||
* constructor() { | ||
* for (let i = 0; i < 30; i++) { | ||
* this.items.push( this.items.length ); | ||
* } | ||
* } | ||
* | ||
* doInfinite(infiniteScroll) { | ||
* console.log('Begin async operation'); | ||
* | ||
* setTimeout(() => { | ||
* for (let i = 0; i < 30; i++) { | ||
* this.items.push( this.items.length ); | ||
* } | ||
* | ||
* console.log('Async operation has ended'); | ||
* infiniteScroll.complete(); | ||
* }, 500); | ||
* } | ||
* | ||
* } | ||
* ``` | ||
* | ||
* ## `waitFor` method of InfiniteScroll | ||
* | ||
* In case if your async operation returns promise you can utilize | ||
* `waitFor` method inside your template. | ||
* | ||
* ```html | ||
* <ion-content> | ||
* | ||
* <ion-list> | ||
* <ion-item *ngFor="let item of items">{{item}}</ion-item> | ||
* </ion-list> | ||
* | ||
* <ion-infinite-scroll (ionInfinite)="$event.waitFor(doInfinite())"> | ||
* <ion-infinite-scroll-content></ion-infinite-scroll-content> | ||
* </ion-infinite-scroll> | ||
* | ||
* </ion-content> | ||
* ``` | ||
* | ||
* ```ts | ||
* @Component({...}) | ||
* export class NewsFeedPage { | ||
* items = []; | ||
* | ||
* constructor() { | ||
* for (var i = 0; i < 30; i++) { | ||
* this.items.push( this.items.length ); | ||
* } | ||
* } | ||
* | ||
* doInfinite(): Promise<any> { | ||
* console.log('Begin async operation'); | ||
* | ||
* return new Promise((resolve) => { | ||
* setTimeout(() => { | ||
* for (var i = 0; i < 30; i++) { | ||
* this.items.push( this.items.length ); | ||
* } | ||
* | ||
* console.log('Async operation has ended'); | ||
* resolve(); | ||
* }, 500); | ||
* }) | ||
* } | ||
* } | ||
* ``` | ||
* | ||
* ## Infinite Scroll Content | ||
* | ||
* By default, Ionic uses the infinite scroll spinner that looks | ||
* best for the platform the user is on. However, you can change the | ||
* default spinner or add text by adding properties to the | ||
* `ion-infinite-scroll-content` component. | ||
* | ||
* ```html | ||
* <ion-content> | ||
* | ||
* <ion-infinite-scroll (ionInfinite)="doInfinite($event)"> | ||
* <ion-infinite-scroll-content | ||
* loadingSpinner="bubbles" | ||
* loadingText="Loading more data..."> | ||
* </ion-infinite-scroll-content> | ||
* </ion-infinite-scroll> | ||
* | ||
* </ion-content> | ||
* ``` | ||
* | ||
* | ||
* ## Further Customizing Infinite Scroll Content | ||
* | ||
* The `ion-infinite-scroll` component holds the infinite scroll logic. | ||
* It requires a child component in order to display the content. | ||
* Ionic uses `ion-infinite-scroll-content` by default. This component | ||
* displays the infinite scroll and changes the look depending | ||
* on the infinite scroll's state. Separating these components allows | ||
* developers to create their own infinite scroll content components. | ||
* You could replace our default content with custom SVG or CSS animations. | ||
* | ||
* @demo /docs/demos/src/infinite-scroll/ | ||
* | ||
*/ | ||
export declare class InfiniteScroll { | ||
@@ -137,0 +3,0 @@ private thrPx; |
@@ -6,5 +6,6 @@ import { AnimationBuilder, AnimationController, Config } from '../../index'; | ||
export declare class Loading { | ||
color: string; | ||
mode: string; | ||
private animation; | ||
private durationTimeout; | ||
private mode; | ||
private el; | ||
@@ -43,2 +44,3 @@ /** | ||
duration: number; | ||
translucent: boolean; | ||
enterAnimation: AnimationBuilder; | ||
@@ -55,2 +57,7 @@ exitAnimation: AnimationBuilder; | ||
protected onDismiss(ev: UIEvent): void; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element[]; | ||
@@ -65,2 +72,3 @@ } | ||
duration?: number; | ||
translucent?: boolean; | ||
} | ||
@@ -67,0 +75,0 @@ export interface LoadingEvent extends Event { |
import { Animation, AnimationBuilder, AnimationController, Config } from '../../index'; | ||
import { EventEmitter } from '@stencil/core'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
import iOSEnterAnimation from './animations/ios.enter'; | ||
@@ -9,2 +10,3 @@ import iOSLeaveAnimation from './animations/ios.leave'; | ||
this.dismissOnPageChange = false; | ||
this.translucent = false; | ||
this.showBackdrop = true; | ||
@@ -100,2 +102,9 @@ } | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'loading-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -102,0 +111,0 @@ // TODO: cssClass |
@@ -1,3 +0,3 @@ | ||
import { NavOptions, ViewController } from '../../index'; | ||
export interface PublicNavController { | ||
import { NavOptions, PublicViewController } from '../../index'; | ||
export interface PublicNav { | ||
push(component: any, data?: any, opts?: NavOptions): Promise<any>; | ||
@@ -11,9 +11,10 @@ pop(opts?: NavOptions): Promise<any>; | ||
removeIndex(startIndex: number, removeCount?: number, opts?: NavOptions): Promise<any>; | ||
removeView(viewController: ViewController, opts?: NavOptions): Promise<any>; | ||
removeView(viewController: PublicViewController, opts?: NavOptions): Promise<any>; | ||
setPages(componentDataPairs: any[], opts?: NavOptions): Promise<any>; | ||
getActive?(): ViewController; | ||
getPrevious?(view?: ViewController): ViewController; | ||
canGoBack?(nav: PublicNavController): boolean; | ||
getActive?(): PublicViewController; | ||
getPrevious?(view?: PublicViewController): PublicViewController; | ||
canGoBack?(): boolean; | ||
canSwipeBack?(): boolean; | ||
getFirstView?(): ViewController; | ||
getFirstView?(): PublicViewController; | ||
element?: HTMLElement; | ||
} |
/* it is very important to keep this interface in sync with ./nav */ | ||
import { NavOptions, ViewController } from '../../index'; | ||
import { NavOptions, PublicViewController } from '../../index'; |
import { EventEmitter } from '@stencil/core'; | ||
import { ComponentDataPair, Config, FrameworkDelegate, NavController, NavOptions, NavState, PublicNavController, RouterEntries, RouterEntry, ViewController } from '../../index'; | ||
export declare class Nav implements PublicNavController { | ||
import { ComponentDataPair, Config, FrameworkDelegate, NavController, NavOptions, NavState, PublicNav, PublicViewController, RouterEntries, RouterEntry, ViewController } from '../../index'; | ||
export declare class Nav implements PublicNav { | ||
element: HTMLElement; | ||
@@ -30,3 +30,3 @@ navInit: EventEmitter; | ||
componentDidLoad(): void; | ||
getViews(): ViewController[]; | ||
getViews(): PublicViewController[]; | ||
push(component: any, data?: any, opts?: NavOptions): Promise<any>; | ||
@@ -40,9 +40,9 @@ pop(opts?: NavOptions): Promise<any>; | ||
removeIndex(startIndex: number, removeCount?: number, opts?: NavOptions): Promise<any>; | ||
removeView(viewController: ViewController, opts?: NavOptions): Promise<any>; | ||
removeView(viewController: PublicViewController, opts?: NavOptions): Promise<any>; | ||
setPages(componentDataPairs: ComponentDataPair[], opts?: NavOptions): Promise<any>; | ||
getActive(): ViewController; | ||
getPrevious(view?: ViewController): ViewController; | ||
canGoBack(nav: Nav): boolean; | ||
getActive(): PublicViewController; | ||
getPrevious(view?: PublicViewController): PublicViewController; | ||
canGoBack(): boolean; | ||
canSwipeBack(): boolean; | ||
getFirstView(): ViewController; | ||
getFirstView(): PublicViewController; | ||
resize(): void; | ||
@@ -67,5 +67,6 @@ navInitialized(event: CustomEvent): void; | ||
export declare function removeImpl(nav: Nav, startIndex: number, removeCount: number, opts: NavOptions): Promise<any>; | ||
export declare function removeViewImpl(nav: Nav, viewController: ViewController, opts?: NavOptions): Promise<any>; | ||
export declare function removeViewImpl(nav: Nav, viewController: PublicViewController, opts?: NavOptions): Promise<any>; | ||
export declare function setPagesImpl(nav: Nav, componentDataPairs: ComponentDataPair[], opts?: NavOptions): Promise<any>; | ||
export declare function getNavController(nav: Nav): Promise<any>; | ||
export declare function canGoBackImpl(nav: Nav): boolean; | ||
export declare function navInitializedImpl(potentialParent: Nav, event: CustomEvent): void; |
import { EventEmitter } from '@stencil/core'; | ||
import { ComponentDataPair, Config, FrameworkDelegate, NavController, NavOptions, NavState, PublicNavController, RouterEntries, RouterEntry, ViewController } from '../../index'; | ||
import { ComponentDataPair, Config, FrameworkDelegate, NavController, NavOptions, NavState, PublicNav, PublicViewController, RouterEntries, RouterEntry, ViewController } from '../../index'; | ||
import { getActiveImpl, getFirstView, getNextNavId, getPreviousImpl, getViews, resolveRoute } from '../../navigation/nav-utils'; | ||
@@ -69,4 +69,4 @@ import { assert, isReady } from '../../utils/helpers'; | ||
} | ||
canGoBack(nav) { | ||
return nav.views && nav.views.length > 0; | ||
canGoBack() { | ||
return canGoBackImpl(this); | ||
} | ||
@@ -190,2 +190,5 @@ canSwipeBack() { | ||
} | ||
export function canGoBackImpl(nav) { | ||
return nav.views && nav.views.length > 0; | ||
} | ||
export function navInitializedImpl(potentialParent, event) { | ||
@@ -192,0 +195,0 @@ if (potentialParent.element !== event.target) { |
@@ -1,28 +0,1 @@ | ||
/** | ||
* @name Note | ||
* @module ionic | ||
* @description | ||
* A note is detailed item in an ion-item. It creates greyed out element that can be on | ||
* the left or right side of an item. | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* <ion-content> | ||
* <ion-list> | ||
* <ion-item> | ||
* <ion-note slot="start"> | ||
* Left Note | ||
* </ion-note> | ||
* My Item | ||
* <ion-note slot="end"> | ||
* Right Note | ||
* </ion-note> | ||
* </ion-item> | ||
* </ion-list> | ||
* </ion-content> | ||
* ``` | ||
* | ||
* {@link /docs/api/components/api/components/item/item ion-item} | ||
*/ | ||
export declare class Note { | ||
@@ -29,0 +2,0 @@ /** |
@@ -46,2 +46,3 @@ import { EventEmitter } from '@stencil/core'; | ||
showBackdrop: boolean; | ||
translucent: boolean; | ||
present(): Promise<void>; | ||
@@ -58,2 +59,7 @@ private positionPopover(); | ||
protected backdropClick(): void; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element[]; | ||
@@ -66,2 +72,3 @@ } | ||
enableBackdropDismiss?: boolean; | ||
translucent?: boolean; | ||
enterAnimation?: AnimationBuilder; | ||
@@ -68,0 +75,0 @@ exitAnimation?: AnimationBuilder; |
@@ -12,2 +12,3 @@ import { EventEmitter } from '@stencil/core'; | ||
this.showBackdrop = true; | ||
this.translucent = false; | ||
} | ||
@@ -190,2 +191,9 @@ present() { | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'popover-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -192,0 +200,0 @@ const ThisComponent = this.component; |
@@ -11,2 +11,3 @@ import { ComponentDidLoad, EventEmitter } from '@stencil/core'; | ||
/** | ||
* The name of the control, which is submitted with the form data. | ||
*/ | ||
@@ -13,0 +14,0 @@ name: string; |
import { BlurEvent, CheckedInputChangeEvent, FocusEvent, RadioButtonInput, StyleEvent } from '../../utils/input-interfaces'; | ||
import { ComponentDidLoad, ComponentDidUnload, ComponentWillLoad, EventEmitter } from '@stencil/core'; | ||
export declare class Radio implements RadioButtonInput, ComponentDidLoad, ComponentDidUnload, ComponentWillLoad { | ||
didLoad: boolean; | ||
inputId: string; | ||
nativeInput: HTMLInputElement; | ||
styleTmr: any; | ||
private didLoad; | ||
private inputId; | ||
private nativeInput; | ||
private styleTmr; | ||
keyFocus: boolean; | ||
/** | ||
* @input {string} The color to use from your Sass `$colors` map. | ||
* Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`. | ||
* For more information, see [Theming your App](/docs/theming/theming-your-app). | ||
*/ | ||
color: string; | ||
/** | ||
* @input {string} The mode determines which platform styles to use. | ||
* Possible values are: `"ios"` or `"md"`. | ||
* For more information, see [Platform Styles](/docs/theming/platform-specific-styles). | ||
*/ | ||
mode: 'ios' | 'md'; | ||
/** | ||
* The name of the control, which is submitted with the form data. | ||
*/ | ||
name: string; | ||
disabled: boolean; | ||
/** | ||
* @input {boolean} If true, the radio is selected. Defaults to `false`. | ||
*/ | ||
checked: boolean; | ||
/** | ||
* @input {string} the value of the radio. | ||
*/ | ||
value: string; | ||
/** | ||
* @output {RadioEvent} Emitted when the radio loads. | ||
@@ -33,26 +58,2 @@ */ | ||
ionBlur: EventEmitter<BlurEvent>; | ||
/** | ||
* @input {string} The color to use from your Sass `$colors` map. | ||
* Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`. | ||
* For more information, see [Theming your App](/docs/theming/theming-your-app). | ||
*/ | ||
color: string; | ||
/** | ||
* @input {string} The mode determines which platform styles to use. | ||
* Possible values are: `"ios"` or `"md"`. | ||
* For more information, see [Platform Styles](/docs/theming/platform-specific-styles). | ||
*/ | ||
mode: 'ios' | 'md'; | ||
/** | ||
*/ | ||
name: string; | ||
disabled: boolean; | ||
/** | ||
* @input {boolean} If true, the radio is selected. Defaults to `false`. | ||
*/ | ||
checked: boolean; | ||
/** | ||
* @input {string} the value of the radio. | ||
*/ | ||
value: string; | ||
componentWillLoad(): void; | ||
@@ -63,3 +64,3 @@ componentDidLoad(): void; | ||
checkedChanged(isChecked: boolean): void; | ||
disabledChanged(val: boolean): void; | ||
disabledChanged(isDisabled: boolean): void; | ||
emitStyle(): void; | ||
@@ -70,3 +71,2 @@ onChange(): void; | ||
onBlur(): void; | ||
onClick(): void; | ||
hostData(): any; | ||
@@ -73,0 +73,0 @@ render(): JSX.Element[]; |
@@ -55,4 +55,4 @@ import { BlurEvent, CheckedInputChangeEvent, FocusEvent, RadioButtonInput, StyleEvent } from '../../utils/input-interfaces'; | ||
} | ||
disabledChanged(val) { | ||
this.nativeInput.disabled = val; | ||
disabledChanged(isDisabled) { | ||
this.nativeInput.disabled = isDisabled; | ||
this.emitStyle(); | ||
@@ -67,3 +67,4 @@ } | ||
onChange() { | ||
this.onClick(); | ||
this.checked = true; | ||
this.nativeInput.focus(); | ||
} | ||
@@ -80,8 +81,2 @@ onKeyUp() { | ||
} | ||
onClick() { | ||
if (!this.checked && !this.disabled) { | ||
this.checked = true; | ||
this.nativeInput.focus(); | ||
} | ||
} | ||
hostData() { | ||
@@ -105,3 +100,2 @@ const hostAttrs = { | ||
h("div", { class: 'radio-inner' })), | ||
h("div", { class: 'radio-outline' }), | ||
h("input", { type: 'radio', onChange: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyUp: this.onKeyUp.bind(this), id: this.inputId, name: this.name, value: this.value, disabled: this.disabled, ref: r => this.nativeInput = r }) | ||
@@ -108,0 +102,0 @@ ]; |
@@ -1,6 +0,1 @@ | ||
/** | ||
* @name Route | ||
* @module ionic | ||
* @description | ||
*/ | ||
export declare class RouteLink { | ||
@@ -7,0 +2,0 @@ url: string; |
import { EventEmitter } from '@stencil/core'; | ||
import { RouterEntry } from './router-utils'; | ||
/** | ||
* @name Route | ||
* @module ionic | ||
* @description | ||
*/ | ||
export declare class Route { | ||
@@ -9,0 +4,0 @@ path: string; |
import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @name Searchbar | ||
* @module ionic | ||
* @description | ||
* Manages the display of a Searchbar which can be used to search or filter items. | ||
* | ||
* @usage | ||
* ```html | ||
* <ion-searchbar | ||
* [(ngModel)]="myInput" | ||
* [showCancelButton]="shouldShowCancel" | ||
* (ionInput)="onInput($event)" | ||
* (ionCancel)="onCancel($event)"> | ||
* </ion-searchbar> | ||
* ``` | ||
* | ||
* @demo /docs/demos/src/searchbar/ | ||
* @see {@link /docs/components#searchbar Searchbar Component Docs} | ||
*/ | ||
export declare class Searchbar { | ||
@@ -22,0 +3,0 @@ private _isCancelVisible; |
import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @name SegmentButton | ||
* @description | ||
* The child buttons of the `ion-segment` component. Each `ion-segment-button` must have a value. | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* <ion-content> | ||
* <!-- Segment buttons with icons --> | ||
* <ion-segment [(ngModel)]="icons" color="secondary"> | ||
* <ion-segment-button value="camera"> | ||
* <ion-icon name="camera"></ion-icon> | ||
* </ion-segment-button> | ||
* <ion-segment-button value="bookmark"> | ||
* <ion-icon name="bookmark"></ion-icon> | ||
* </ion-segment-button> | ||
* </ion-segment> | ||
* | ||
* <!-- Segment buttons with text --> | ||
* <ion-segment [(ngModel)]="relationship" color="primary"> | ||
* <ion-segment-button value="friends" (ionSelect)="selectedFriends()"> | ||
* Friends | ||
* </ion-segment-button> | ||
* <ion-segment-button value="enemies" (ionSelect)="selectedEnemies()"> | ||
* Enemies | ||
* </ion-segment-button> | ||
* </ion-segment> | ||
* </ion-content> | ||
* ``` | ||
* | ||
* | ||
* @demo /docs/demos/src/segment/ | ||
* @see {@link /docs/components#segment Segment Component Docs} | ||
* @see {@link /docs/api/components/segment/Segment/ Segment API Docs} | ||
*/ | ||
export declare class SegmentButton { | ||
@@ -39,0 +3,0 @@ styleTmr: any; |
import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @name Segment | ||
* @description | ||
* A Segment is a group of buttons, sometimes known as Segmented Controls, that allow the user to interact with a compact group of a number of controls. | ||
* Segments provide functionality similar to tabs, selecting one will unselect all others. You should use a tab bar instead of a segmented control when you want to let the user move back and forth between distinct pages in your app. | ||
* You could use Angular's `ngModel` or `FormBuilder` API. For an overview on how `FormBuilder` works, checkout [Angular Forms](http://learnangular2.com/forms/), or [Angular FormBuilder](https://angular.io/docs/ts/latest/api/forms/index/FormBuilder-class.html) | ||
* | ||
* | ||
* ```html | ||
* <!-- Segment in a header --> | ||
* <ion-header> | ||
* <ion-toolbar> | ||
* <ion-segment [(ngModel)]="icons" color="secondary"> | ||
* <ion-segment-button value="camera"> | ||
* <ion-icon name="camera"></ion-icon> | ||
* </ion-segment-button> | ||
* <ion-segment-button value="bookmark"> | ||
* <ion-icon name="bookmark"></ion-icon> | ||
* </ion-segment-button> | ||
* </ion-segment> | ||
* </ion-toolbar> | ||
* </ion-header> | ||
* | ||
* <ion-content> | ||
* <!-- Segment in content --> | ||
* <ion-segment [(ngModel)]="relationship" color="primary" (ionChange)="segmentChanged($event)"> | ||
* <ion-segment-button value="friends"> | ||
* Friends | ||
* </ion-segment-button> | ||
* <ion-segment-button value="enemies"> | ||
* Enemies | ||
* </ion-segment-button> | ||
* </ion-segment> | ||
* | ||
* <!-- Segment in a form --> | ||
* <form [formGroup]="myForm"> | ||
* <ion-segment formControlName="mapStyle" color="danger"> | ||
* <ion-segment-button value="standard"> | ||
* Standard | ||
* </ion-segment-button> | ||
* <ion-segment-button value="hybrid"> | ||
* Hybrid | ||
* </ion-segment-button> | ||
* <ion-segment-button value="sat"> | ||
* Satellite | ||
* </ion-segment-button> | ||
* </ion-segment> | ||
* </form> | ||
* </ion-content> | ||
* ``` | ||
* | ||
* | ||
* @demo /docs/demos/src/segment/ | ||
* @see {@link /docs/components#segment Segment Component Docs} | ||
* @see [Angular Forms](http://learnangular2.com/forms/) | ||
*/ | ||
export declare class Segment { | ||
@@ -59,0 +3,0 @@ buttons: any; |
import { EventEmitter } from '@stencil/core'; | ||
import { SegmentButtonEvent } from '../../index'; | ||
export class Segment { | ||
@@ -4,0 +3,0 @@ constructor() { |
import { Config } from '../../index'; | ||
/** | ||
* @name Spinner | ||
* @description | ||
* The `ion-spinner` component provides a variety of animated SVG spinners. | ||
* Spinners enables you to give users feedback that the app is actively | ||
* processing/thinking/waiting/chillin’ out, or whatever you’d like it to indicate. | ||
* By default, the `ion-refresher` feature uses this spinner component while it's | ||
* the refresher is in the `refreshing` state. | ||
* | ||
* Ionic offers a handful of spinners out of the box, and by default, it will use | ||
* the appropriate spinner for the platform on which it’s running. | ||
* | ||
* <table class="table spinner-table"> | ||
* <tr> | ||
* <th> | ||
* <code>lines</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="lines"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* <tr> | ||
* <th> | ||
* <code>lines-small</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="lines-small"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* <tr> | ||
* <th> | ||
* <code>bubbles</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="bubbles"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* <tr> | ||
* <th> | ||
* <code>circles</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="circles"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* <tr> | ||
* <th> | ||
* <code>crescent</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="crescent"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* <tr> | ||
* <th> | ||
* <code>dots</code> | ||
* </th> | ||
* <td> | ||
* <ion-spinner name="dots"></ion-spinner> | ||
* </td> | ||
* </tr> | ||
* </table> | ||
* | ||
* @usage | ||
* The following code would use the default spinner for the platform it's | ||
* running from. If it's neither iOS or Android, it'll default to use `ios`. | ||
* | ||
* ```html | ||
* <ion-spinner></ion-spinner> | ||
* ``` | ||
* | ||
* By setting the `name` property, you can specify which predefined spinner to | ||
* use, no matter what the platform is. | ||
* | ||
* ```html | ||
* <ion-spinner name="bubbles"></ion-spinner> | ||
* ``` | ||
* | ||
* ## Styling SVG with CSS | ||
* One cool thing about SVG is its ability to be styled with CSS! One thing to note | ||
* is that some of the CSS properties on an SVG element have different names. For | ||
* example, SVG uses the term `stroke` instead of `border`, and `fill` instead | ||
* of `background-color`. | ||
* | ||
* ```css | ||
* ion-spinner * { | ||
* width: 28px; | ||
* height: 28px; | ||
* stroke: #444; | ||
* fill: #222; | ||
* } | ||
* ``` | ||
*/ | ||
export declare class Spinner { | ||
@@ -96,0 +3,0 @@ config: Config; |
import { EventEmitter } from '@stencil/core'; | ||
import { ViewController } from '../../index'; | ||
import { PublicViewController } from '../../index'; | ||
/** | ||
@@ -164,3 +164,3 @@ * @name Tab | ||
goToRoot(opts?: any): Promise<any>; | ||
getActive(): Promise<ViewController>; | ||
getActive(): Promise<PublicViewController>; | ||
getNav(): Promise<HTMLIonNavElement>; | ||
@@ -167,0 +167,0 @@ hostData(): { |
import { EventEmitter } from '@stencil/core'; | ||
import { StencilElement, ViewController } from '../../index'; | ||
import { PublicViewController, StencilElement } from '../../index'; | ||
export class Tab { | ||
@@ -4,0 +4,0 @@ constructor() { |
@@ -165,2 +165,9 @@ import { EventEmitter } from '@stencil/core'; | ||
/** | ||
* @input {boolean} If true, adds transparency to the tabbar. | ||
* Note: In order to scroll content behind the tabbar, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
/** | ||
* @output {any} Emitted when the tab changes. | ||
@@ -167,0 +174,0 @@ */ |
@@ -12,2 +12,9 @@ import { EventEmitter } from '@stencil/core'; | ||
this.tabbarHidden = false; | ||
/** | ||
* @input {boolean} If true, adds transparency to the tabbar. | ||
* Note: In order to scroll content behind the tabbar, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
} | ||
@@ -139,3 +146,3 @@ componentDidLoad() { | ||
if (!this.tabbarHidden) { | ||
dom.push(h("ion-tabbar", { tabs: this.tabs, selectedTab: this.selectedTab, highlight: this.tabbarHighlight, placement: this.tabbarPlacement, layout: this.tabbarLayout })); | ||
dom.push(h("ion-tabbar", { tabs: this.tabs, selectedTab: this.selectedTab, highlight: this.tabbarHighlight, placement: this.tabbarPlacement, layout: this.tabbarLayout, translucent: this.translucent })); | ||
} | ||
@@ -142,0 +149,0 @@ return dom; |
@@ -1,36 +0,1 @@ | ||
/** | ||
* @name Title | ||
* @description | ||
* `ion-title` is a component that sets the title of the `Toolbar` or `Navbar`. | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* <ion-header> | ||
* | ||
* <ion-navbar> | ||
* <ion-title>Settings</ion-title> | ||
* </ion-navbar> | ||
* | ||
* </ion-header> | ||
* ``` | ||
* | ||
* Or to create a navbar with a toolbar as a subheader: | ||
* | ||
* ```html | ||
* <ion-header> | ||
* | ||
* <ion-navbar> | ||
* <ion-title>Main Header</ion-title> | ||
* </ion-navbar> | ||
* | ||
* <ion-toolbar> | ||
* <ion-title>Subheader</ion-title> | ||
* </ion-toolbar> | ||
* | ||
* </ion-header> | ||
* ``` | ||
* | ||
* @demo /docs/demos/src/title/ | ||
*/ | ||
export declare class ToolbarTitle { | ||
@@ -37,0 +2,0 @@ mode: string; |
@@ -6,2 +6,4 @@ import { EventEmitter } from '@stencil/core'; | ||
export declare class Toast { | ||
mode: string; | ||
color: string; | ||
private animation; | ||
@@ -42,2 +44,3 @@ private el; | ||
position: string; | ||
translucent: boolean; | ||
enterAnimation: AnimationBuilder; | ||
@@ -53,4 +56,9 @@ exitAnimation: AnimationBuilder; | ||
protected onDismiss(ev: UIEvent): void; | ||
wrapperClass(): CssClassMap; | ||
hostData(): { | ||
class: { | ||
[x: string]: boolean; | ||
}; | ||
}; | ||
render(): JSX.Element; | ||
wrapperClass(): CssClassMap; | ||
} | ||
@@ -65,2 +73,3 @@ export interface ToastOptions { | ||
position?: string; | ||
translucent?: boolean; | ||
enterAnimation?: AnimationBuilder; | ||
@@ -67,0 +76,0 @@ exitAnimation?: AnimationBuilder; |
import { EventEmitter } from '@stencil/core'; | ||
import { Animation, AnimationBuilder, AnimationController, Config, CssClassMap } from '../../index'; | ||
import { createThemedClasses } from '../../utils/theme'; | ||
import iOSEnterAnimation from './animations/ios.enter'; | ||
import iOSLeaveAnimation from './animations/ios.leave'; | ||
export class Toast { | ||
constructor() { | ||
this.translucent = false; | ||
} | ||
present() { | ||
@@ -81,2 +85,18 @@ return new Promise(resolve => { | ||
} | ||
wrapperClass() { | ||
let wrapperClass = !this.position | ||
? ['toast-wrapper', 'toast-bottom'] | ||
: [`toast-wrapper`, `toast-${this.position}`]; | ||
return wrapperClass.reduce((prevValue, cssClass) => { | ||
prevValue[cssClass] = true; | ||
return prevValue; | ||
}, {}); | ||
} | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'toast-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses); | ||
return { | ||
class: hostClasses | ||
}; | ||
} | ||
render() { | ||
@@ -96,12 +116,3 @@ let userCssClass = 'toast-content'; | ||
} | ||
wrapperClass() { | ||
let wrapperClass = !this.position | ||
? ['toast-wrapper', 'toast-bottom'] | ||
: [`toast-wrapper`, `toast-${this.position}`]; | ||
return wrapperClass.reduce((prevValue, cssClass) => { | ||
prevValue[cssClass] = true; | ||
return prevValue; | ||
}, {}); | ||
} | ||
} | ||
export { iOSEnterAnimation, iOSLeaveAnimation }; |
import { BlurEvent, CheckboxInput, CheckedInputChangeEvent, FocusEvent, StyleEvent } from '../../utils/input-interfaces'; | ||
import { EventEmitter } from '@stencil/core'; | ||
export declare class Toggle implements CheckboxInput { | ||
private toggleId; | ||
private labelId; | ||
private styleTmr; | ||
private didLoad; | ||
private gestureConfig; | ||
private inputId; | ||
private nativeInput; | ||
private pivotX; | ||
hasFocus: boolean; | ||
private styleTmr; | ||
activated: boolean; | ||
keyFocus: boolean; | ||
/** | ||
* @output {Event} Emitted when the value property has changed. | ||
*/ | ||
ionChange: EventEmitter<CheckedInputChangeEvent>; | ||
/** | ||
* @output {Event} Emitted when the styles change. | ||
*/ | ||
ionStyle: EventEmitter<StyleEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle has focus. | ||
*/ | ||
ionFocus: EventEmitter<FocusEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle loses focus. | ||
*/ | ||
ionBlur: EventEmitter<BlurEvent>; | ||
/** | ||
* @input {string} The color to use from your Sass `$colors` map. | ||
@@ -40,8 +25,10 @@ * Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`. | ||
/** | ||
* The name of the control, which is submitted with the form data. | ||
*/ | ||
name: string; | ||
/** | ||
* @input {boolean} If true, the toggle is selected. Defaults to `false`. | ||
*/ | ||
checked: boolean; | ||
checkedChanged(isChecked: boolean): void; | ||
disabled: boolean; | ||
disabledChanged(): void; | ||
/** | ||
@@ -51,12 +38,31 @@ * @input {string} the value of the toggle. | ||
value: string; | ||
/** | ||
* @output {Event} Emitted when the value property has changed. | ||
*/ | ||
ionChange: EventEmitter<CheckedInputChangeEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle has focus. | ||
*/ | ||
ionFocus: EventEmitter<FocusEvent>; | ||
/** | ||
* @output {Event} Emitted when the toggle loses focus. | ||
*/ | ||
ionBlur: EventEmitter<BlurEvent>; | ||
/** | ||
* @output {Event} Emitted when the styles change. | ||
*/ | ||
ionStyle: EventEmitter<StyleEvent>; | ||
constructor(); | ||
componentWillLoad(): void; | ||
onSpace(ev: KeyboardEvent): void; | ||
toggle(): boolean; | ||
componentDidLoad(): void; | ||
checkedChanged(isChecked: boolean): void; | ||
disabledChanged(isDisabled: boolean): void; | ||
emitStyle(): void; | ||
private onDragStart(detail); | ||
private onDragMove(detail); | ||
private onDragEnd(detail); | ||
private emitStyle(); | ||
fireFocus(): void; | ||
fireBlur(): void; | ||
onChange(): void; | ||
onKeyUp(): void; | ||
onFocus(): void; | ||
onBlur(): void; | ||
hostData(): { | ||
@@ -67,5 +73,6 @@ class: { | ||
'toggle-disabled': boolean; | ||
'toggle-key': boolean; | ||
}; | ||
}; | ||
render(): JSX.Element; | ||
render(): JSX.Element[]; | ||
} |
@@ -7,3 +7,2 @@ import { BlurEvent, CheckboxInput, CheckedInputChangeEvent, FocusEvent, StyleEvent } from '../../utils/input-interfaces'; | ||
constructor() { | ||
this.hasFocus = false; | ||
this.activated = false; | ||
@@ -30,37 +29,56 @@ /** | ||
} | ||
checkedChanged(isChecked) { | ||
this.ionChange.emit({ | ||
checked: isChecked, | ||
value: this.value | ||
}); | ||
componentWillLoad() { | ||
this.inputId = 'ion-tg-' + (toggleIds++); | ||
if (this.value === undefined) { | ||
this.value = this.inputId; | ||
} | ||
this.emitStyle(); | ||
} | ||
disabledChanged() { | ||
componentDidLoad() { | ||
this.nativeInput.checked = this.checked; | ||
this.didLoad = true; | ||
const parentItem = this.nativeInput.closest('ion-item'); | ||
if (parentItem) { | ||
const itemLabel = parentItem.querySelector('ion-label'); | ||
if (itemLabel) { | ||
itemLabel.id = this.inputId + '-lbl'; | ||
this.nativeInput.setAttribute('aria-labelledby', itemLabel.id); | ||
} | ||
} | ||
} | ||
checkedChanged(isChecked) { | ||
if (this.nativeInput.checked !== isChecked) { | ||
// keep the checked value and native input `nync | ||
this.nativeInput.checked = isChecked; | ||
} | ||
if (this.didLoad) { | ||
this.ionChange.emit({ | ||
checked: isChecked, | ||
value: this.value | ||
}); | ||
} | ||
this.emitStyle(); | ||
} | ||
componentWillLoad() { | ||
disabledChanged(isDisabled) { | ||
this.nativeInput.disabled = isDisabled; | ||
this.emitStyle(); | ||
} | ||
onSpace(ev) { | ||
this.toggle(); | ||
ev.stopPropagation(); | ||
ev.preventDefault(); | ||
emitStyle() { | ||
clearTimeout(this.styleTmr); | ||
this.styleTmr = setTimeout(() => { | ||
this.ionStyle.emit({ | ||
'toggle-disabled': this.disabled, | ||
'toggle-checked': this.checked, | ||
'toggle-activated': this.activated | ||
}); | ||
}); | ||
} | ||
toggle() { | ||
if (!this.disabled) { | ||
this.checked = !this.checked; | ||
this.fireFocus(); | ||
} | ||
return this.checked; | ||
} | ||
onDragStart(detail) { | ||
this.pivotX = detail.currentX; | ||
this.activated = true; | ||
this.fireFocus(); | ||
} | ||
onDragMove(detail) { | ||
const currentX = detail.currentX; | ||
const checked = this.checked; | ||
if (shouldToggle(checked, currentX - this.pivotX, -15)) { | ||
this.checked = !checked; | ||
if (shouldToggle(this.checked, currentX - this.pivotX, -15)) { | ||
this.checked = !this.checked; | ||
this.pivotX = currentX; | ||
@@ -72,35 +90,22 @@ hapticSelection(); | ||
const delta = detail.currentX - this.pivotX; | ||
const checked = this.checked; | ||
if (shouldToggle(checked, delta, 4)) { | ||
this.checked = !checked; | ||
if (shouldToggle(this.checked, delta, 4)) { | ||
this.checked = !this.checked; | ||
hapticSelection(); | ||
} | ||
this.activated = false; | ||
this.fireBlur(); | ||
this.nativeInput.focus(); | ||
} | ||
emitStyle() { | ||
clearTimeout(this.styleTmr); | ||
this.styleTmr = setTimeout(() => { | ||
this.ionStyle.emit({ | ||
'toggle-disabled': this.disabled, | ||
'toggle-checked': this.checked, | ||
'toggle-activated': this.activated, | ||
'toggle-focus': this.hasFocus | ||
}); | ||
}); | ||
onChange() { | ||
this.checked = !this.checked; | ||
} | ||
fireFocus() { | ||
if (!this.hasFocus) { | ||
this.hasFocus = true; | ||
this.ionFocus.emit(); | ||
this.emitStyle(); | ||
} | ||
onKeyUp() { | ||
this.keyFocus = true; | ||
} | ||
fireBlur() { | ||
if (this.hasFocus) { | ||
this.hasFocus = false; | ||
this.ionBlur.emit(); | ||
this.emitStyle(); | ||
} | ||
onFocus() { | ||
this.ionFocus.emit(); | ||
} | ||
onBlur() { | ||
this.keyFocus = false; | ||
this.ionBlur.emit(); | ||
} | ||
hostData() { | ||
@@ -111,3 +116,4 @@ return { | ||
'toggle-checked': this.checked, | ||
'toggle-disabled': this.disabled | ||
'toggle-disabled': this.disabled, | ||
'toggle-key': this.keyFocus | ||
} | ||
@@ -117,6 +123,9 @@ }; | ||
render() { | ||
return (h("ion-gesture", Object.assign({}, this.gestureConfig, { enabled: !this.disabled }), | ||
h("div", { class: 'toggle-icon' }, | ||
h("div", { class: 'toggle-inner' })), | ||
h("div", { class: 'toggle-cover', id: this.toggleId, "aria-checked": this.checked ? 'true' : false, "aria-disabled": this.disabled ? 'true' : false, "aria-labelledby": this.labelId, role: 'checkbox', tabIndex: 0 }))); | ||
return [ | ||
h("ion-gesture", Object.assign({}, this.gestureConfig, { enabled: !this.disabled, tabIndex: -1 }), | ||
h("div", { class: 'toggle-icon' }, | ||
h("div", { class: 'toggle-inner' })), | ||
h("div", { class: 'toggle-cover' })), | ||
h("input", { type: 'checkbox', onChange: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyUp: this.onKeyUp.bind(this), id: this.inputId, name: this.name, value: this.value, disabled: this.disabled, ref: r => this.nativeInput = r }) | ||
]; | ||
} | ||
@@ -135,1 +144,2 @@ } | ||
} | ||
let toggleIds = 0; |
import { Config } from '../../index'; | ||
/** | ||
* @name Toolbar | ||
* @description | ||
* A Toolbar is a generic bar that is positioned above or below content. | ||
* Unlike a [Navbar](../../navbar/Navbar), a toolbar can be used as a subheader. | ||
* When toolbars are placed within an `<ion-header>` or `<ion-footer>`, | ||
* the toolbars stay fixed in their respective location. When placed within | ||
* `<ion-content>`, toolbars will scroll with the content. | ||
* | ||
* | ||
* ### Buttons in a Toolbar | ||
* Buttons placed in a toolbar should be placed inside of the `<ion-buttons>` | ||
* element. An exception to this is a [menuToggle](../../menu/MenuToggle) button. | ||
* It should not be placed inside of the `<ion-buttons>` element. Both the | ||
* `<ion-buttons>` element and the `menuToggle` can be positioned inside of the | ||
* toolbar using different properties. The below chart has a description of each | ||
* property. | ||
* | ||
* | Property | Description | | ||
* |-------------|-----------------------------------------------------------------------------------------------------------------------| | ||
* | `start` | Positions element to the left of the content in `ios` mode, and directly to the right in `md` mode. | | ||
* | `end` | Positions element to the right of the content in `ios` mode, and to the far right in `md` mode. | | ||
* | `left` | Positions element to the left of all other elements. | | ||
* | `right` | Positions element to the right of all other elements. | | ||
* | ||
* | ||
* ### Header / Footer Box Shadow and Border | ||
* In `md` mode, the `<ion-header>` will receive a box-shadow on the bottom, and the | ||
* `<ion-footer>` will receive a box-shadow on the top. In `ios` mode, the `<ion-header>` | ||
* will receive a border on the bottom, and the `<ion-footer>` will receive a border on the | ||
* top. Both the `md` box-shadow and the `ios` border can be removed by adding the `no-border` | ||
* attribute to the element. | ||
* | ||
* ```html | ||
* <ion-header no-border> | ||
* <ion-toolbar> | ||
* <ion-title>Header</ion-title> | ||
* </ion-toolbar> | ||
* </ion-header> | ||
* | ||
* <ion-content> | ||
* </ion-content> | ||
* | ||
* <ion-footer no-border> | ||
* <ion-toolbar> | ||
* <ion-title>Footer</ion-title> | ||
* </ion-toolbar> | ||
* </ion-footer> | ||
* ``` | ||
* | ||
* @usage | ||
* | ||
* ```html | ||
* | ||
* <ion-header no-border> | ||
* | ||
* <ion-toolbar> | ||
* <ion-title>My Toolbar Title</ion-title> | ||
* </ion-toolbar> | ||
* | ||
* <ion-toolbar> | ||
* <ion-title>I'm a subheader</ion-title> | ||
* </ion-toolbar> | ||
* | ||
* <ion-header> | ||
* | ||
* | ||
* <ion-content> | ||
* | ||
* <ion-toolbar> | ||
* <ion-title>Scrolls with the content</ion-title> | ||
* </ion-toolbar> | ||
* | ||
* </ion-content> | ||
* | ||
* | ||
* <ion-footer no-border> | ||
* | ||
* <ion-toolbar> | ||
* <ion-title>I'm a footer</ion-title> | ||
* </ion-toolbar> | ||
* | ||
* </ion-footer> | ||
* ``` | ||
* | ||
* @demo /docs/demos/src/toolbar/ | ||
* @see {@link ../../navbar/Navbar/ Navbar API Docs} | ||
*/ | ||
export declare class Toolbar { | ||
@@ -105,2 +17,9 @@ private el; | ||
mode: 'ios' | 'md'; | ||
/** | ||
* @input {boolean} If true, adds transparency to the header. | ||
* Note: In order to scroll content behind the header, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
translucent: boolean; | ||
componentDidLoad(): void; | ||
@@ -107,0 +26,0 @@ hostData(): { |
@@ -5,2 +5,11 @@ import { } from '@stencil/core'; | ||
export class Toolbar { | ||
constructor() { | ||
/** | ||
* @input {boolean} If true, adds transparency to the header. | ||
* Note: In order to scroll content behind the header, the `fullscreen` | ||
* attribute needs to be set on the content. | ||
* Only affects `ios` mode. Defaults to `false`. | ||
*/ | ||
this.translucent = false; | ||
} | ||
componentDidLoad() { | ||
@@ -13,6 +22,6 @@ const buttons = this.el.querySelectorAll('ion-button'); | ||
hostData() { | ||
const themedClasses = this.translucent ? createThemedClasses(this.mode, this.color, 'toolbar-translucent') : {}; | ||
const hostClasses = Object.assign({}, themedClasses, { 'statusbar-padding': this.config.getBoolean('statusbarPadding') }); | ||
return { | ||
class: { | ||
'statusbar-padding': this.config.getBoolean('statusbarPadding') | ||
} | ||
class: hostClasses | ||
}; | ||
@@ -19,0 +28,0 @@ } |
@@ -96,3 +96,3 @@ // Components | ||
export { Nav } from './components/nav/nav'; | ||
export { PublicNavController } from './components/nav/nav-interface'; | ||
export { PublicNav } from './components/nav/nav-interface'; | ||
export { NavController } from './components/nav-controller/nav-controller'; | ||
@@ -99,0 +99,0 @@ export { Note } from './components/note/note'; |
@@ -75,1 +75,7 @@ import { Animation, AnimationOptions, Nav, ViewController } from '../index'; | ||
} | ||
export interface PublicViewController { | ||
id?: string; | ||
component?: any; | ||
instance?: any; | ||
element?: HTMLElement; | ||
} |
@@ -1,3 +0,3 @@ | ||
import { FrameworkDelegate, Nav } from '../index'; | ||
export declare class ViewController { | ||
import { FrameworkDelegate, Nav, PublicViewController } from '../index'; | ||
export declare class ViewController implements PublicViewController { | ||
component: any; | ||
@@ -4,0 +4,0 @@ id: string; |
@@ -1,2 +0,2 @@ | ||
import { FrameworkDelegate, Nav } from '../index'; | ||
import { FrameworkDelegate, Nav, PublicViewController } from '../index'; | ||
import { STATE_ATTACHED, STATE_DESTROYED, STATE_INITIALIZED, STATE_NEW } from './nav-utils'; | ||
@@ -3,0 +3,0 @@ import { assert } from '../utils/helpers'; |
@@ -1,1 +0,1 @@ | ||
!function(o,e,i,n,t,s,l,a,d,r){"use strict";for((o[i]=o[i]||{}).components=a=a||[],(r=a.filter(function(o){return o[2]}).map(function(o){return o[0]})).length&&((d=e.createElement("style")).innerHTML=r.join()+"{visibility:hidden}",d.setAttribute("data-visibility",""),e.head.insertBefore(d,e.head.firstChild)),i=i.toLowerCase(),r=(d=e.scripts).length-1;r>=0;r--)if(d[r].src&&d[r].src.split("/").pop()===i+".js"){n=d[r].src.replace(i+".js",i+"/");break}(d=e.createElement("script")).src=n+("noModule"in d&&o.customElements&&o.fetch?e.documentElement.hasAttribute("data-ssr")?"ionic.2uqrkmap.js":"ionic.w1qslnmw.js":"ionic.cibgalpv.js"),d.setAttribute("data-path",n),d.setAttribute("data-namespace",i),e.head.appendChild(d)}(window,document,"Ionic","/build/ionic/",0,0,0,[["ion-action-sheet",{ios:["alea7dol","ddszm24z"],md:["0obaucvf","bspscxic"]},1,[["actionSheetId",1,1,2],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["subTitle",1,1,2],["title",1,1,2]],0,0,[["ionDismiss","onDismiss"]]],["ion-action-sheet-controller",{ios:["alea7dol","ddszm24z"],md:["0obaucvf","bspscxic"]},0,[["create",6]],0,0,[["body:ionActionSheetDidLoad","didLoad"],["body:ionActionSheetDidUnload","willDismiss"],["body:ionActionSheetWillDismiss","willDismiss"],["body:ionActionSheetWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-alert",{ios:["f6zm4mmr","fciiwzz6"],md:["fscncbvl","etsstns3"]},1,[["alertId",1,1,2],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["dismiss",6],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["inputs",2,1,1],["message",1,1,2],["present",6],["subTitle",1,1,2],["title",1,1,2]],0,0,[["ionDismiss","onDismiss"]]],["ion-alert-controller",{ios:["f6zm4mmr","fciiwzz6"],md:["fscncbvl","etsstns3"]},0,[["create",6]],0,0,[["body:ionAlertDidLoad","didLoad"],["body:ionAlertDidUnload","willDismiss"],["body:ionAlertWillDismiss","willDismiss"],["body:ionAlertWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-animation-controller",["30peehfw","3kxwzael"],0,[["create",6]]],["ion-app",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},1,[["config",3,0,0,"config"],["element",7],["getActiveNavs",6],["getNavByIdOrName",6],["getRootNavs",6],["hoverCSS",5],["isScrolling",6],["modeCode",5],["useRouter",5]],0,1,[["body:navInit","registerRootNav"]]],["ion-avatar",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,0,0,1],["ion-backdrop",["wuifssu0","qpqcifo0"],1],["ion-badge",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-button",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},1,[["block",1,1,3],["buttonType",1,1,2],["clear",1,1,3],["color",1,1,2],["default",1,1,3],["disabled",1,1,3],["el",7],["full",1,1,3],["href",1,1,2],["itemButton",1,1,3],["large",1,1,3],["mode",1,1,1],["outline",1,1,3],["round",1,1,3],["small",1,1,3],["solid",1,1,3],["strong",1,1,3]],0,2],["ion-buttons",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},0,[["el",7]],0,1],["ion-card",{ios:["sgwogmlr","9ndftsg6"],md:["jhjrlgiv","cavz3awz"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-content",{ios:["sgwogmlr","9ndftsg6"],md:["jhjrlgiv","cavz3awz"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-header",{ios:["sgwogmlr","9ndftsg6"],md:["jhjrlgiv","cavz3awz"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-subtitle",{ios:["2ye8pson","grps5z2q"],md:["g7kxntnt","wry3rdab"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-title",{ios:["sgwogmlr","9ndftsg6"],md:["jhjrlgiv","cavz3awz"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-checkbox",{ios:["vbntvsge","ktu0hfyc"],md:["w4mnyn0s","gqjahby5"]},1,[["checked",2,1,3],["color",1,1,2],["disabled",1,1,3],["mode",1,1,1],["value",2,1,2]],0,0,[["keydown.space","onSpace"]]],["ion-chip",{ios:["lcdeiwzd","essyaofp"],md:["kc1lw3tn","ijxu0xuc"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-chip-button",{ios:["lcdeiwzd","essyaofp"],md:["kc1lw3tn","ijxu0xuc"]},1,[["clear",1,1,3],["color",1,1,2],["disabled",1,1,3],["el",7],["href",1,1,2],["mode",1,1,1]],0,1],["ion-col",["2miertve","2xdsvrvi"]],["ion-content",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},1,[["config",3,0,0,"config"],["el",7],["enableJsScroll",6],["fullscreen",1,1,3],["ionScroll",1,1,1],["ionScrollEnd",1,1,1],["ionScrollStart",1,1,1],["scrollToBottom",6],["scrollToTop",6]],0,2],["ion-datetime",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},1,[["cancelText",1,1,2],["dayNames",1,1,1],["dayShortNames",1,1,1],["dayValues",1,1,1],["disabled",1,1,3],["displayFormat",1,1,2],["doneText",1,1,2],["hourValues",1,1,1],["max",2,1,2],["min",2,1,2],["minuteValues",1,1,1],["monthNames",1,1,1],["monthShortNames",1,1,1],["monthValues",1,1,1],["pickerCtrl",4,0,0,"ion-picker-controller"],["pickerFormat",1,1,2],["pickerOptions",1,1,1],["placeholder",1,1,2],["text",5],["value",2,1,2],["yearValues",1,1,1]]],["ion-fab",{ios:["xpxklpe1","i4gusvaf"],md:["pnempivy","7bhgdmuy"]},0,[["activated",5],["close",6],["el",7]],0,1],["ion-fab-button",{ios:["xpxklpe1","i4gusvaf"],md:["pnempivy","7bhgdmuy"]},1,[["activated",1,1,3],["color",1,1,2],["disabled",1,1,3],["el",7],["href",1,1,2],["inContainer",5],["inList",5],["mode",1,1,1],["show",1,1,3],["toggleActive",1,1,1]],0,1],["ion-fab-list",{ios:["xpxklpe1","i4gusvaf"],md:["pnempivy","7bhgdmuy"]},0,[["activated",1,1,3],["el",7]],0,1],["ion-footer",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},0,0,0,1],["ion-gesture",["fzqxnacq","5zdf7afs"],0,[["attachTo",1,1,1],["autoBlockAll",1,1,3],["block",1,1,2],["canStart",1,1,1],["direction",1,1,2],["disableScroll",1,1,3],["el",7],["enabled",1,1,3],["gestureName",1,1,2],["gesturePriority",1,1,4],["maxAngle",1,1,4],["notCaptured",1,1,1],["onEnd",1,1,1],["onMove",1,1,1],["onPress",1,1,1],["onStart",1,1,1],["onWillStart",1,1,1],["threshold",1,1,4],["type",1,1,2]],0,0,[["document:mousemove","onMoveMove",1,1],["document:mouseup","onMouseUp",1,1],["mousedown","onMouseDown",1,1],["touchcancel","onTouchCancel",1,1],["touchend","onTouchEnd",1,1],["touchmove","onTouchMove",1,1],["touchstart","onTouchStart",1,1]]],["ion-gesture-controller",["us7hkaha","vywv8qdd"]],["ion-grid",["2miertve","2xdsvrvi"],1],["ion-header",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},0,0,0,1],["ion-icon",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},0,[["ariaLabel",1,1,1],["ios",1,1,1],["isServer",3,0,0,"isServer"],["md",1,1,1],["name",1,1,1],["svgContent",5]]],["ion-infinite-scroll",["tlhhp2km","kpyddnkh"],1,[["complete",6],["el",7],["enabled",1,1,3],["isLoading",5],["position",1,1,2],["threshold",1,1,2]],0,1,[["ionScroll","onScroll",1]]],["ion-infinite-scroll-content",["tlhhp2km","kpyddnkh"],0,[["config",3,0,0,"config"],["loadingSpinner",2,1,2],["loadingText",1,1,2]]],["ion-input",{ios:["jwlwalk2","v53jbfdu"],md:["zm1olfh2","queb3tl6"]},1,[["accept",1,1,2],["autocapitalize",1,1,2],["autocomplete",1,1,2],["autocorrect",1,1,2],["autofocus",1,1,3],["checked",1,1,3],["clearInput",1,1,3],["clearOnEdit",2,1,3],["disabled",1,1,3],["el",7],["inputmode",1,1,2],["max",1,1,2],["maxlength",1,1,4],["min",1,1,2],["minlength",1,1,4],["multiple",1,1,3],["name",1,1,2],["pattern",1,1,2],["placeholder",1,1,2],["readonly",1,1,3],["required",1,1,3],["results",1,1,4],["size",1,1,4],["spellcheck",1,1,3],["step",1,1,2],["type",1,1,2],["value",2,1,2]]],["ion-item",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["el",7],["hasStyleChange",5],["href",1,1,2],["mode",1,1,1]],0,2,[["ionStyle","itemStyle"]]],["ion-item-divider",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["mode",1,1,1]],0,2],["ion-item-option",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},0,[["color",1,1,2],["disabled",1,1,3],["href",1,1,2],["mode",1,1,1]],0,1],["ion-item-options",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},0,[["el",7],["fireSwipeEvent",6],["isRightSide",6],["side",1,1,1],["width",6]],0,1],["ion-item-sliding",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},1,[["close",6],["closeOpened",6],["el",7],["getOpenAmount",6],["getSlidingPercent",6],["state",5]],0,1],["ion-keyboard-controller",["gwt7r99k","szqha79l"],0,[["config",3,0,0,"config"]]],["ion-label",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["el",7],["fixed",1,1,3],["floating",1,1,3],["getText",6],["mode",1,1,1],["stacked",1,1,3]],0,1],["ion-list",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["closeSlidingItems",6],["getOpenedItem",6],["setOpenedItem",6]],0,1],["ion-list-header",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-loading",{ios:["iy8vxaoe","risritz4"],md:["byjqxyz9","nineacjb"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["config",3,0,0,"config"],["content",1,1,2],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["loadingId",1,1,2],["showBackdrop",1,1,3],["showSpinner",5],["spinner",5]],0,0,[["ionDismiss","onDismiss"]]],["ion-loading-controller",{ios:["iy8vxaoe","risritz4"],md:["byjqxyz9","nineacjb"]},0,[["create",6]],0,0,[["body:ionLoadingDidLoad","didLoad"],["body:ionLoadingDidUnload","willDismiss"],["body:ionLoadingWillDismiss","willDismiss"],["body:ionLoadingWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-menu",{ios:["qjzjmh75","1c72ybdu"],md:["dvo66cz4","owg0csqm"]},1,[["close",6],["config",3,0,0,"config"],["content",1,1,2],["el",7],["enabled",2,1,3],["isOpen",6],["lazyMenuCtrl",4,0,0,"ion-menu-controller"],["maxEdgeStart",1,1,4],["menuId",1,1,2],["open",6],["persistent",1,1,3],["setOpen",6],["side",1,1,1],["swipeEnabled",1,1,3],["toggle",6],["type",2,1,2]],0,1,[["body:click","onBackdropClick",1,0,1],["body:ionSplitPaneDidChange","splitPaneChanged"]]],["ion-menu-controller",{ios:["qjzjmh75","1c72ybdu"],md:["dvo66cz4","owg0csqm"]},0,[["_register",6],["_setActiveMenu",6],["_unregister",6],["animationCtrl",4,0,0,"ion-animation-controller"],["close",6],["createAnimation",6],["enable",6],["get",6],["getMenus",6],["getOpen",6],["isAnimating",6],["isEnabled",6],["isOpen",6],["open",6],["swipeEnable",6],["toggle",6]]],["ion-modal",{ios:["nqnatd4g","mka6aboh"],md:["jlarstjy","p8vprrfx"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["color",1,1,2],["component",1,1,2],["componentProps",1,1,1],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["modalId",1,1,2],["mode",1,1,2],["showBackdrop",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-modal-controller",{ios:["nqnatd4g","mka6aboh"],md:["jlarstjy","p8vprrfx"]},0,[["create",6]],0,0,[["body:ionModalDidLoad","modalDidLoad"],["body:ionModalDidUnload","modalWillDismiss"],["body:ionModalWillDismiss","modalWillDismiss"],["body:ionModalWillPresent","modalWillPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-nav",["3vjhonjp","5hdjs9tu"],0,[["addRoute",6],["canGoBack",6],["canSwipeBack",6],["config",3,0,0,"config"],["delegate",1,1,1],["element",7],["getActive",6],["getFirstView",6],["getPrevious",6],["getRoutes",6],["getState",6],["insert",6],["insertPages",6],["mode",1,1,2],["pop",6],["popTo",6],["popToRoot",6],["push",6],["removeIndex",6],["removeRoute",6],["removeView",6],["resize",6],["root",1,1,1],["setPages",6],["setRoot",6],["setRouteId",6]],0,1,[["ionRouteAdded","routeAdded"],["ionRouteRemoved","routeRemoved"],["navInit","navInitialized"]]],["ion-nav-controller",["3vjhonjp","5hdjs9tu"],0,[["animationCtrl",4,0,0,"ion-animation-controller"],["delegate",1,1,1],["element",7],["insert",6],["insertPages",6],["pop",6],["popTo",6],["popToRoot",6],["push",6],["removeIndex",6],["removeView",6],["setPages",6],["setRoot",6]],0,1],["ion-navbar",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},0,[["backButtonIcon",1,1,2],["backButtonText",1,1,2],["config",3,0,0,"config"],["el",7],["hidden",1,1,3],["hideBackButton",1,1,3]],0,2],["ion-note",{ios:["czhiuktg","exukmrdq"],md:["elqx7qde","dkjyz2vk"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-page",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},0,0,0,1],["ion-picker",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},1,[["addButton",6],["addColumn",6],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["columns",1,1,1],["config",3,0,0,"config"],["content",1,1,2],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["getColumn",6],["getColumns",6],["pickerId",1,1,2],["showBackdrop",1,1,3],["showSpinner",5],["spinner",5]],0,0,[["ionDismiss","onDismiss"]]],["ion-picker-column",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},0,[["col",1,1,1],["el",7]]],["ion-picker-controller",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},0,[["create",6]],0,0,[["body:ionPickerDidLoad","didLoad"],["body:ionPickerDidUnload","willDismiss"],["body:ionPickerWillDismiss","willDismiss"],["body:ionPickerWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-popover",{ios:["7avs9foj","fraz0p0f"],md:["vlvvweqc","ysotq5y6"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["color",1,1,2],["component",1,1,2],["componentProps",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["ev",1,1,1],["exitAnimation",1,1,1],["mode",1,1,2],["popoverId",1,1,2],["positioned",5],["showBackdrop",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-popover-controller",{ios:["7avs9foj","fraz0p0f"],md:["vlvvweqc","ysotq5y6"]},0,[["create",6]],0,0,[["body:ionPopoverDidLoad","didLoad"],["body:ionPopoverDidUnload","willDismiss"],["body:ionPopoverWillDismiss","willDismiss"],["body:ionPopoverWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-radio",{ios:["qhq2aop5","7r2zkr5k"],md:["d38p3p5e","ipxpllrq"]},1,[["checked",2,1,3],["color",1,1,2],["disabled",1,1,3],["keyFocus",5],["mode",1,1,1],["name",1,1,2],["value",2,1,2]],0,0,[["click","onClick"]]],["ion-radio-group",{ios:["qhq2aop5","7r2zkr5k"],md:["d38p3p5e","ipxpllrq"]},0,[["allowEmptySelection",1,1,3],["disabled",2,1,3],["el",7],["labelId",5],["name",2,1,2],["value",2,1,2]],0,1,[["ionRadioDidLoad","onRadioDidLoad"],["ionRadioDidUnload","onRadioDidUnload"],["ionSelect","onRadioSelect"]]],["ion-range",{ios:["sntxs52i","fhlhvi1p"],md:["atw60iei","uiuwkzj0"]},1,[["activeB",5],["barL",5],["barR",5],["color",1,1,2],["debounce",1,1,4],["disabled",1,1,3],["dualKnobs",1,1,3],["el",7],["max",1,1,4],["min",1,1,4],["mode",1,1,1],["pin",1,1,3],["pressed",5],["pressedA",5],["pressedB",5],["ratio",6],["ratioA",5],["ratioB",5],["ratioUpper",6],["rect",5],["snaps",1,1,3],["step",1,1,4],["ticks",5],["valA",5],["valB",5],["value",2,1,1]],0,2,[["ionDecrease","keyChng"],["ionIncrease","keyChng"]]],["ion-range-knob",{ios:["sntxs52i","fhlhvi1p"],md:["atw60iei","uiuwkzj0"]},0,[["disabled",1,1,3],["knob",1,1,2],["labelId",1,1,2],["max",1,1,4],["min",1,1,4],["pin",1,1,3],["pressed",1,1,3],["ratio",1,1,4],["val",1,1,4]],0,0,[["keydown","handleKeyBoard"]]],["ion-reorder",["o0ibeda9","8vapwdod"],0,[["el",7],["hasContent",5]],0,1],["ion-reorder-group",["o0ibeda9","8vapwdod"],1,[["_actived",5],["_enabled",5],["_iconVisible",5],["el",7],["enabled",1,1,3]],0,1],["ion-route",["0xyzzlvw","zkuamytf"],0,[["component",1,1,2],["path",1,1,2],["props",1,1,1]]],["ion-route-link",["pk41hn0b","cy1em57b"],0,[["router",1,1,1],["url",1,1,2]]],["ion-router-controller",["0xyzzlvw","zkuamytf"],0,[["config",3,0,0,"config"]],0,0,[["body:ionNavChanged","onNavChanged"],["window:hashchange","onURLHashChanged"]]],["ion-row",["2miertve","2xdsvrvi"]],["ion-scroll",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},0,[["config",3,0,0,"config"],["el",7],["enabled",1,1,3],["jsScroll",1,1,3],["onionScroll",1,1,1],["onionScrollEnd",1,1,1],["onionScrollStart",1,1,1],["scrollToBottom",6],["scrollToPoint",6],["scrollToTop",6]],0,1,[["scroll","onNativeScroll",0,1]]],["ion-searchbar",{ios:["a7cgtqqq","51by3ib4"],md:["xvkrelsw","e2j1t3ei"]},1,[["activated",5],["animated",2,1,3],["autocomplete",2,1,2],["autocorrect",2,1,2],["cancelButtonText",2,1,2],["color",1,1,2],["debounce",2,1,4],["el",7],["focused",5],["mode",1,1,1],["placeholder",2,1,2],["showCancelButton",2,1,3],["spellcheck",2,1,3],["type",2,1,2],["value",2,1,2]]],["ion-segment",{ios:["8dtwx6py","x9jrlkdo"],md:["thznsqet","qctpxem8"]},1,[["color",1,1,2],["disabled",2,1,3],["el",7],["mode",1,1,1],["value",2,1,2]],0,1,[["ionClick","segmentClick"]]],["ion-segment-button",{ios:["8dtwx6py","x9jrlkdo"],md:["thznsqet","qctpxem8"]},0,[["activated",5],["checked",2,1,3],["color",1,1,2],["disabled",2,1,3],["el",7],["mode",1,1,1],["value",2,1,2]],0,1],["ion-select",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},1,[["actionSheetCtrl",4,0,0,"ion-action-sheet-controller"],["alertCtrl",4,0,0,"ion-alert-controller"],["cancelText",1,1,2],["disabled",1,1,3],["el",7],["interface",1,1,2],["multiple",1,1,3],["okText",1,1,2],["placeholder",1,1,2],["popoverCtrl",4,0,0,"ion-popover-controller"],["selectOptions",1,1,1],["selectedText",1,1,2],["text",5],["value",2,1,1]]],["ion-select-option",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},0,[["disabled",1,1,3],["el",7],["getText",6],["selected",2,1,3],["value",1,1,2]],0,1],["ion-select-popover",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},0,[["options",1,1,1],["value",2,1,2]],0,0,[["ionChange","onChange"]]],["ion-skeleton-text",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["width",1,1,2]]],["ion-slide",["ig6k3jc9","xtf7nddg"],1,0,0,1],["ion-slides",["ig6k3jc9","xtf7nddg"],1,[["autoplay",1,1,4],["control",1,1,1],["direction",1,1,1],["effect",1,1,2],["el",7],["initialSlide",1,1,4],["keyboardControl",1,1,3],["loop",1,1,3],["pager",1,1,3],["paginationType",1,1,2],["parallax",1,1,3],["slidesPerView",1,1,1],["spaceBetween",1,1,4],["speed",1,1,4],["zoom",1,1,3]],0,1],["ion-spinner",{ios:["dbi30zqh","kcaz2kww"],md:["f2saegls","0rpiyuof"]},1,[["color",1,1,2],["config",3,0,0,"config"],["duration",1,1,4],["mode",1,1,1],["name",1,1,2],["paused",1,1,3]]],["ion-split-pane",{ios:["evczbztx","pfsy9flo"],md:["hlyxj2b8","jxwdmf6k"]},1,[["el",7],["enabled",1,1,3],["isVisible",6],["visible",5],["when",1,1,1]],0,1],["ion-tab",{ios:["gzdmnpgz","un6ytjup"],md:["ww9wgtdy","so18nph8"]},0,[["_setActive",6],["active",5],["badge",1,1,2],["badgeStyle",1,1,2],["btnId",1,1,2],["el",7],["enabled",1,1,3],["getActive",6],["getNav",6],["goToRoot",6],["icon",1,1,2],["init",5],["path",1,1,2],["selected",2,1,3],["show",1,1,3],["tabsHideOnSubPages",1,1,3],["title",1,1,2]]],["ion-tab-button",{ios:["gzdmnpgz","un6ytjup"],md:["ww9wgtdy","so18nph8"]},0,[["selected",1,1,3],["tab",1,1,1]],0,0,[["click","onClick"]]],["ion-tab-highlight",{ios:["gzdmnpgz","un6ytjup"],md:["ww9wgtdy","so18nph8"]},0,[["animated",5],["el",7],["selectedTab",1,1,1],["transform",5]],0,0,[["window:resize","onResize",0,1]]],["ion-tabbar",{ios:["gzdmnpgz","un6ytjup"],md:["ww9wgtdy","so18nph8"]},0,[["hidden",5],["highlight",1,1,3],["layout",1,1,2],["placement",1,1,2],["selectedTab",1,1,1],["tabs",1,1,1]],0,0,[["body:keyboardWillHide","onKeyboardWillHide"],["body:keyboardWillShow","onKeyboardWillShow"]]],["ion-tabs",{ios:["gzdmnpgz","un6ytjup"],md:["ww9wgtdy","so18nph8"]},1,[["config",3,0,0,"config"],["el",7],["getByIndex",6],["getIndex",6],["getRoutes",6],["getSelected",6],["getState",6],["getTabs",6],["name",1,1,2],["select",6],["selectedTab",5],["setRouteId",6],["tabbarHidden",1,1,3],["tabbarHighlight",2,1,3],["tabbarLayout",2,1,2],["tabbarPlacement",2,1,2],["tabs",5]],0,1,[["ionTabbarClick","tabChange"]]],["ion-textarea",{ios:["jwlwalk2","v53jbfdu"],md:["zm1olfh2","queb3tl6"]},1,[["autocapitalize",1,1,2],["autocomplete",1,1,2],["autofocus",1,1,3],["clearOnEdit",2,1,3],["cols",1,1,4],["disabled",1,1,3],["el",7],["maxlength",1,1,4],["minlength",1,1,4],["name",1,1,2],["placeholder",1,1,2],["readonly",1,1,3],["required",1,1,3],["rows",1,1,4],["spellcheck",1,1,3],["value",2,1,2],["wrap",1,1,2]]],["ion-thumbnail",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,0,0,1],["ion-title",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},1,0,0,1],["ion-toast",{ios:["iczmftgm","cdhypfhh"],md:["eh1joukc","m7voozaf"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["closeButtonText",1,1,2],["config",3,0,0,"config"],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["message",1,1,2],["position",1,1,2],["showCloseButton",1,1,3],["toastId",1,1,2]],0,0,[["ionDismiss","onDismiss"]]],["ion-toast-controller",{ios:["iczmftgm","cdhypfhh"],md:["eh1joukc","m7voozaf"]},0,[["create",6]],0,0,[["body:ionToastDidLoad","didLoad"],["body:ionToastDidUnload","willDismiss"],["body:ionToastWillDismiss","willDismiss"],["body:ionToastWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-toggle",{ios:["mwztm4dd","en9jpgfd"],md:["cvznjd9n","837agzud"]},1,[["activated",5],["checked",2,1,3],["color",1,1,2],["disabled",2,1,3],["mode",1,1,1],["toggle",6],["value",2,1,2]],0,0,[["keydown.space","onSpace"]]],["ion-toolbar",{ios:["sgcgz7kw","fwhrower"],md:["qjhkptwz","owo8xgnr"]},1,[["color",1,1,2],["config",3,0,0,"config"],["el",7],["mode",1,1,1]],0,2],["ion-utils",["cuoksmbq","sic20v8r"]],["page-one",["3vjhonjp","5hdjs9tu"],0,[["element",7]]],["page-tab",["uyil7jiq","zptme2a7"],0,[["element",7]]],["page-three",["3vjhonjp","5hdjs9tu"],0,[["element",7]]],["page-two",["3vjhonjp","5hdjs9tu"],0,[["element",7]]],["stencil-ion-nav-delegate",["3vjhonjp","5hdjs9tu"],0,[["attachViewToDom",6],["removeViewFromDom",6]]]]); | ||
!function(e,o,i,n,t,l,a,s,d,c){"use strict";for((e[i]=e[i]||{}).components=s=s||[],(c=s.filter(function(e){return e[2]}).map(function(e){return e[0]})).length&&((d=o.createElement("style")).innerHTML=c.join()+"{visibility:hidden}",d.setAttribute("data-visibility",""),o.head.insertBefore(d,o.head.firstChild)),i=i.toLowerCase(),c=(d=o.scripts).length-1;c>=0;c--)if(d[c].src&&d[c].src.split("/").pop()===i+".js"){n=d[c].src.replace(i+".js",i+"/");break}(d=o.createElement("script")).src=n+("noModule"in d&&e.customElements&&e.fetch?o.documentElement.hasAttribute("data-ssr")?"ionic.2uqrkmap.js":"ionic.w1qslnmw.js":"ionic.cibgalpv.js"),d.setAttribute("data-path",n),d.setAttribute("data-namespace",i),o.head.appendChild(d)}(window,document,"Ionic","/build/ionic/",0,0,0,[["ion-action-sheet",{ios:["uf4b8x6n","cmpclrva"],md:["otkittez","nzt1mx6p"]},1,[["actionSheetId",1,1,2],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["subTitle",1,1,2],["title",1,1,2],["translucent",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-action-sheet-controller",{ios:["uf4b8x6n","cmpclrva"],md:["otkittez","nzt1mx6p"]},0,[["create",6]],0,0,[["body:ionActionSheetDidLoad","didLoad"],["body:ionActionSheetDidUnload","willDismiss"],["body:ionActionSheetWillDismiss","willDismiss"],["body:ionActionSheetWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-alert",{ios:["eg4tpff2","mzlgaiph"],md:["mmdllu15","h79usuyi"]},1,[["alertId",1,1,2],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["dismiss",6],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["inputs",2,1,1],["message",1,1,2],["present",6],["subTitle",1,1,2],["title",1,1,2],["translucent",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-alert-controller",{ios:["eg4tpff2","mzlgaiph"],md:["mmdllu15","h79usuyi"]},0,[["create",6]],0,0,[["body:ionAlertDidLoad","didLoad"],["body:ionAlertDidUnload","willDismiss"],["body:ionAlertWillDismiss","willDismiss"],["body:ionAlertWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-animation-controller",["30peehfw","3kxwzael"],0,[["create",6]]],["ion-app",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},1,[["config",3,0,0,"config"],["element",7],["getActiveNavs",6],["getNavByIdOrName",6],["getRootNavs",6],["hoverCSS",5],["isScrolling",6],["modeCode",5],["useRouter",5]],0,1,[["body:navInit","registerRootNav"]]],["ion-avatar",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,0,0,1],["ion-backdrop",["wuifssu0","qpqcifo0"],1],["ion-badge",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-button",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},1,[["block",1,1,3],["buttonType",1,1,2],["clear",1,1,3],["color",1,1,2],["default",1,1,3],["disabled",1,1,3],["el",7],["full",1,1,3],["href",1,1,2],["itemButton",1,1,3],["large",1,1,3],["mode",1,1,1],["outline",1,1,3],["round",1,1,3],["small",1,1,3],["solid",1,1,3],["strong",1,1,3]],0,2],["ion-buttons",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},0,[["el",7]],0,1],["ion-card",{ios:["w38pcxx0","hz8v2fyt"],md:["nybi6k1b","ihnqqzzb"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-content",{ios:["w38pcxx0","hz8v2fyt"],md:["nybi6k1b","ihnqqzzb"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-header",{ios:["w38pcxx0","hz8v2fyt"],md:["nybi6k1b","ihnqqzzb"]},1,[["color",1,1,2],["mode",1,1,1],["translucent",1,1,3]],0,1],["ion-card-subtitle",{ios:["2ye8pson","grps5z2q"],md:["g7kxntnt","wry3rdab"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-card-title",{ios:["w38pcxx0","hz8v2fyt"],md:["nybi6k1b","ihnqqzzb"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-checkbox",{ios:["qmhtddkn","7pk2fdko"],md:["hgzxdaqo","7cr4xash"]},1,[["checked",2,1,3],["color",1,1,2],["disabled",1,1,3],["keyFocus",5],["mode",1,1,1],["name",1,1,2],["value",2,1,2]]],["ion-chip",{ios:["lcdeiwzd","essyaofp"],md:["kc1lw3tn","ijxu0xuc"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-chip-button",{ios:["lcdeiwzd","essyaofp"],md:["kc1lw3tn","ijxu0xuc"]},1,[["clear",1,1,3],["color",1,1,2],["disabled",1,1,3],["el",7],["href",1,1,2],["mode",1,1,1]],0,1],["ion-col",["2miertve","2xdsvrvi"]],["ion-content",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},1,[["config",3,0,0,"config"],["el",7],["enableJsScroll",6],["fullscreen",1,1,3],["ionScroll",1,1,1],["ionScrollEnd",1,1,1],["ionScrollStart",1,1,1],["scrollToBottom",6],["scrollToTop",6]],0,2,[["body:ionNavChanged","onNavChanged"]]],["ion-datetime",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},1,[["cancelText",1,1,2],["dayNames",1,1,1],["dayShortNames",1,1,1],["dayValues",1,1,1],["disabled",1,1,3],["displayFormat",1,1,2],["doneText",1,1,2],["hourValues",1,1,1],["max",2,1,2],["min",2,1,2],["minuteValues",1,1,1],["monthNames",1,1,1],["monthShortNames",1,1,1],["monthValues",1,1,1],["pickerCtrl",4,0,0,"ion-picker-controller"],["pickerFormat",1,1,2],["pickerOptions",1,1,1],["placeholder",1,1,2],["text",5],["value",2,1,2],["yearValues",1,1,1]]],["ion-fab",{ios:["chyaghc4","umae5l8p"],md:["r8ehik04","ly28qlty"]},0,[["activated",5],["close",6],["el",7]],0,1],["ion-fab-button",{ios:["chyaghc4","umae5l8p"],md:["r8ehik04","ly28qlty"]},1,[["activated",1,1,3],["color",1,1,2],["disabled",1,1,3],["el",7],["href",1,1,2],["inContainer",5],["inList",5],["mode",1,1,1],["show",1,1,3],["toggleActive",1,1,1],["translucent",1,1,3]],0,1],["ion-fab-list",{ios:["chyaghc4","umae5l8p"],md:["r8ehik04","ly28qlty"]},0,[["activated",1,1,3],["el",7]],0,1],["ion-footer",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},0,[["translucent",1,1,3]],0,1],["ion-gesture",["fzqxnacq","5zdf7afs"],0,[["attachTo",1,1,1],["autoBlockAll",1,1,3],["block",1,1,2],["canStart",1,1,1],["direction",1,1,2],["disableScroll",1,1,3],["el",7],["enabled",1,1,3],["gestureName",1,1,2],["gesturePriority",1,1,4],["maxAngle",1,1,4],["notCaptured",1,1,1],["onEnd",1,1,1],["onMove",1,1,1],["onPress",1,1,1],["onStart",1,1,1],["onWillStart",1,1,1],["threshold",1,1,4],["type",1,1,2]],0,0,[["document:mousemove","onMoveMove",1,1],["document:mouseup","onMouseUp",1,1],["mousedown","onMouseDown",1,1],["touchcancel","onTouchCancel",1,1],["touchend","onTouchEnd",1,1],["touchmove","onTouchMove",1,1],["touchstart","onTouchStart",1,1]]],["ion-gesture-controller",["us7hkaha","vywv8qdd"]],["ion-grid",["2miertve","2xdsvrvi"],1],["ion-header",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},1,[["translucent",1,1,3]],0,1],["ion-icon",{ios:["gbce3pj0","muhummez"],md:["sciu3ozp","vslkv34a"]},0,[["ariaLabel",1,1,1],["ios",1,1,1],["isServer",3,0,0,"isServer"],["md",1,1,1],["name",1,1,1],["svgContent",5]]],["ion-infinite-scroll",["tlhhp2km","kpyddnkh"],1,[["complete",6],["el",7],["enabled",1,1,3],["isLoading",5],["position",1,1,2],["threshold",1,1,2]],0,1,[["ionScroll","onScroll",1]]],["ion-infinite-scroll-content",["tlhhp2km","kpyddnkh"],0,[["config",3,0,0,"config"],["loadingSpinner",2,1,2],["loadingText",1,1,2]]],["ion-input",{ios:["jwlwalk2","v53jbfdu"],md:["zm1olfh2","queb3tl6"]},1,[["accept",1,1,2],["autocapitalize",1,1,2],["autocomplete",1,1,2],["autocorrect",1,1,2],["autofocus",1,1,3],["checked",1,1,3],["clearInput",1,1,3],["clearOnEdit",2,1,3],["disabled",1,1,3],["el",7],["inputmode",1,1,2],["max",1,1,2],["maxlength",1,1,4],["min",1,1,2],["minlength",1,1,4],["multiple",1,1,3],["name",1,1,2],["pattern",1,1,2],["placeholder",1,1,2],["readonly",1,1,3],["required",1,1,3],["results",1,1,4],["size",1,1,4],["spellcheck",1,1,3],["step",1,1,2],["type",1,1,2],["value",2,1,2]]],["ion-item",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["el",7],["hasStyleChange",5],["href",1,1,2],["mode",1,1,1]],0,2,[["ionStyle","itemStyle"]]],["ion-item-divider",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["mode",1,1,1]],0,2],["ion-item-option",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},0,[["color",1,1,2],["disabled",1,1,3],["href",1,1,2],["mode",1,1,1]],0,1],["ion-item-options",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},0,[["el",7],["fireSwipeEvent",6],["isRightSide",6],["side",1,1,1],["width",6]],0,1],["ion-item-sliding",{ios:["b3zt3pc0","vuaw8wvk"],md:["fjzumkts","qltnnoqg"]},1,[["close",6],["closeOpened",6],["el",7],["getOpenAmount",6],["getSlidingPercent",6],["state",5]],0,1],["ion-keyboard-controller",["gwt7r99k","szqha79l"],0,[["config",3,0,0,"config"]]],["ion-label",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["el",7],["fixed",1,1,3],["floating",1,1,3],["getText",6],["mode",1,1,1],["stacked",1,1,3]],0,1],["ion-list",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["closeSlidingItems",6],["getOpenedItem",6],["setOpenedItem",6]],0,1],["ion-list-header",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-loading",{ios:["k6hkud3z","7pdpafbz"],md:["rg223dxu","kvjngfhs"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["config",3,0,0,"config"],["content",1,1,2],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["loadingId",1,1,2],["showBackdrop",1,1,3],["showSpinner",5],["spinner",5],["translucent",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-loading-controller",{ios:["k6hkud3z","7pdpafbz"],md:["rg223dxu","kvjngfhs"]},0,[["create",6]],0,0,[["body:ionLoadingDidLoad","didLoad"],["body:ionLoadingDidUnload","willDismiss"],["body:ionLoadingWillDismiss","willDismiss"],["body:ionLoadingWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-menu",{ios:["qjzjmh75","1c72ybdu"],md:["dvo66cz4","owg0csqm"]},1,[["close",6],["config",3,0,0,"config"],["content",1,1,2],["el",7],["enabled",2,1,3],["isOpen",6],["lazyMenuCtrl",4,0,0,"ion-menu-controller"],["maxEdgeStart",1,1,4],["menuId",1,1,2],["open",6],["persistent",1,1,3],["setOpen",6],["side",1,1,1],["swipeEnabled",1,1,3],["toggle",6],["type",2,1,2]],0,1,[["body:click","onBackdropClick",1,0,1],["body:ionSplitPaneDidChange","splitPaneChanged"]]],["ion-menu-controller",{ios:["qjzjmh75","1c72ybdu"],md:["dvo66cz4","owg0csqm"]},0,[["_register",6],["_setActiveMenu",6],["_unregister",6],["animationCtrl",4,0,0,"ion-animation-controller"],["close",6],["createAnimation",6],["enable",6],["get",6],["getMenus",6],["getOpen",6],["isAnimating",6],["isEnabled",6],["isOpen",6],["open",6],["swipeEnable",6],["toggle",6]]],["ion-modal",{ios:["nqnatd4g","mka6aboh"],md:["jlarstjy","p8vprrfx"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["color",1,1,2],["component",1,1,2],["componentProps",1,1,1],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["modalId",1,1,2],["mode",1,1,2],["showBackdrop",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-modal-controller",{ios:["nqnatd4g","mka6aboh"],md:["jlarstjy","p8vprrfx"]},0,[["create",6]],0,0,[["body:ionModalDidLoad","modalDidLoad"],["body:ionModalDidUnload","modalWillDismiss"],["body:ionModalWillDismiss","modalWillDismiss"],["body:ionModalWillPresent","modalWillPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-nav",["e7vpgqzt","buy0tieo"],0,[["addRoute",6],["canGoBack",6],["canSwipeBack",6],["config",3,0,0,"config"],["delegate",1,1,1],["element",7],["getActive",6],["getFirstView",6],["getPrevious",6],["getRoutes",6],["getState",6],["insert",6],["insertPages",6],["mode",1,1,2],["pop",6],["popTo",6],["popToRoot",6],["push",6],["removeIndex",6],["removeRoute",6],["removeView",6],["resize",6],["root",1,1,1],["setPages",6],["setRoot",6],["setRouteId",6]],0,1,[["ionRouteAdded","routeAdded"],["ionRouteRemoved","routeRemoved"],["navInit","navInitialized"]]],["ion-nav-controller",["e7vpgqzt","buy0tieo"],0,[["animationCtrl",4,0,0,"ion-animation-controller"],["delegate",1,1,1],["element",7],["insert",6],["insertPages",6],["pop",6],["popTo",6],["popToRoot",6],["push",6],["removeIndex",6],["removeView",6],["setPages",6],["setRoot",6]],0,1],["ion-navbar",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},0,[["backButtonIcon",1,1,2],["backButtonText",1,1,2],["config",3,0,0,"config"],["el",7],["hidden",1,1,3],["hideBackButton",1,1,3]],0,2],["ion-note",{ios:["czhiuktg","exukmrdq"],md:["elqx7qde","dkjyz2vk"]},1,[["color",1,1,2],["mode",1,1,1]],0,1],["ion-page",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},0,0,0,1],["ion-picker",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},1,[["addButton",6],["addColumn",6],["animationCtrl",4,0,0,"ion-animation-controller"],["buttons",1,1,1],["columns",1,1,1],["config",3,0,0,"config"],["content",1,1,2],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["getColumn",6],["getColumns",6],["pickerId",1,1,2],["showBackdrop",1,1,3],["showSpinner",5],["spinner",5]],0,0,[["ionDismiss","onDismiss"]]],["ion-picker-column",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},0,[["col",1,1,1],["el",7]]],["ion-picker-controller",{ios:["cqoys8le","je5xxjqg"],md:["5hvq0sib","52wpfwp8"]},0,[["create",6]],0,0,[["body:ionPickerDidLoad","didLoad"],["body:ionPickerDidUnload","willDismiss"],["body:ionPickerWillDismiss","willDismiss"],["body:ionPickerWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-popover",{ios:["jhraff8p","fyyqcspl"],md:["mzavehdp","hxpmnzwm"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["color",1,1,2],["component",1,1,2],["componentProps",1,1,1],["config",3,0,0,"config"],["cssClass",1,1,2],["el",7],["enableBackdropDismiss",1,1,3],["enterAnimation",1,1,1],["ev",1,1,1],["exitAnimation",1,1,1],["mode",1,1,2],["popoverId",1,1,2],["positioned",5],["showBackdrop",1,1,3],["translucent",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-popover-controller",{ios:["jhraff8p","fyyqcspl"],md:["mzavehdp","hxpmnzwm"]},0,[["create",6]],0,0,[["body:ionPopoverDidLoad","didLoad"],["body:ionPopoverDidUnload","willDismiss"],["body:ionPopoverWillDismiss","willDismiss"],["body:ionPopoverWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-radio",{ios:["ht9k1ke1","a80p3pdg"],md:["hjnqenyj","2g38x1oo"]},1,[["checked",2,1,3],["color",1,1,2],["disabled",1,1,3],["keyFocus",5],["mode",1,1,1],["name",1,1,2],["value",2,1,2]]],["ion-radio-group",{ios:["ht9k1ke1","a80p3pdg"],md:["hjnqenyj","2g38x1oo"]},0,[["allowEmptySelection",1,1,3],["disabled",2,1,3],["el",7],["labelId",5],["name",2,1,2],["value",2,1,2]],0,1,[["ionRadioDidLoad","onRadioDidLoad"],["ionRadioDidUnload","onRadioDidUnload"],["ionSelect","onRadioSelect"]]],["ion-range",{ios:["sntxs52i","fhlhvi1p"],md:["atw60iei","uiuwkzj0"]},1,[["activeB",5],["barL",5],["barR",5],["color",1,1,2],["debounce",1,1,4],["disabled",1,1,3],["dualKnobs",1,1,3],["el",7],["max",1,1,4],["min",1,1,4],["mode",1,1,1],["pin",1,1,3],["pressed",5],["pressedA",5],["pressedB",5],["ratio",6],["ratioA",5],["ratioB",5],["ratioUpper",6],["rect",5],["snaps",1,1,3],["step",1,1,4],["ticks",5],["valA",5],["valB",5],["value",2,1,1]],0,2,[["ionDecrease","keyChng"],["ionIncrease","keyChng"]]],["ion-range-knob",{ios:["sntxs52i","fhlhvi1p"],md:["atw60iei","uiuwkzj0"]},0,[["disabled",1,1,3],["knob",1,1,2],["labelId",1,1,2],["max",1,1,4],["min",1,1,4],["pin",1,1,3],["pressed",1,1,3],["ratio",1,1,4],["val",1,1,4]],0,0,[["keydown","handleKeyBoard"]]],["ion-reorder",["o0ibeda9","8vapwdod"],0,[["el",7],["hasContent",5]],0,1],["ion-reorder-group",["o0ibeda9","8vapwdod"],1,[["_actived",5],["_enabled",5],["_iconVisible",5],["el",7],["enabled",1,1,3]],0,1],["ion-route",["0xyzzlvw","zkuamytf"],0,[["component",1,1,2],["path",1,1,2],["props",1,1,1]]],["ion-route-link",["pk41hn0b","cy1em57b"],0,[["router",1,1,1],["url",1,1,2]]],["ion-router-controller",["0xyzzlvw","zkuamytf"],0,[["config",3,0,0,"config"]],0,0,[["body:ionNavChanged","onNavChanged"],["window:hashchange","onURLHashChanged"]]],["ion-row",["2miertve","2xdsvrvi"]],["ion-scroll",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},0,[["config",3,0,0,"config"],["el",7],["enabled",1,1,3],["jsScroll",1,1,3],["onionScroll",1,1,1],["onionScrollEnd",1,1,1],["onionScrollStart",1,1,1],["scrollToBottom",6],["scrollToPoint",6],["scrollToTop",6]],0,1,[["scroll","onNativeScroll",0,1]]],["ion-searchbar",{ios:["a7cgtqqq","51by3ib4"],md:["xvkrelsw","e2j1t3ei"]},1,[["activated",5],["animated",2,1,3],["autocomplete",2,1,2],["autocorrect",2,1,2],["cancelButtonText",2,1,2],["color",1,1,2],["debounce",2,1,4],["el",7],["focused",5],["mode",1,1,1],["placeholder",2,1,2],["showCancelButton",2,1,3],["spellcheck",2,1,3],["type",2,1,2],["value",2,1,2]]],["ion-segment",{ios:["8dtwx6py","x9jrlkdo"],md:["thznsqet","qctpxem8"]},1,[["color",1,1,2],["disabled",2,1,3],["el",7],["mode",1,1,1],["value",2,1,2]],0,1,[["ionClick","segmentClick"]]],["ion-segment-button",{ios:["8dtwx6py","x9jrlkdo"],md:["thznsqet","qctpxem8"]},0,[["activated",5],["checked",2,1,3],["color",1,1,2],["disabled",2,1,3],["el",7],["mode",1,1,1],["value",2,1,2]],0,1],["ion-select",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},1,[["actionSheetCtrl",4,0,0,"ion-action-sheet-controller"],["alertCtrl",4,0,0,"ion-alert-controller"],["cancelText",1,1,2],["disabled",1,1,3],["el",7],["interface",1,1,2],["multiple",1,1,3],["okText",1,1,2],["placeholder",1,1,2],["popoverCtrl",4,0,0,"ion-popover-controller"],["selectOptions",1,1,1],["selectedText",1,1,2],["text",5],["value",2,1,1]]],["ion-select-option",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},0,[["disabled",1,1,3],["el",7],["getText",6],["selected",2,1,3],["value",1,1,2]],0,1],["ion-select-popover",{ios:["bjpk00xg","r0jfipu1"],md:["qq37rnlu","1pf1pnbc"]},0,[["options",1,1,1],["value",2,1,2]],0,0,[["ionChange","onChange"]]],["ion-skeleton-text",{ios:["clngnwka","pieupxfd"],md:["s6qgaw5y","e5qehli2"]},1,[["width",1,1,2]]],["ion-slide",["ig6k3jc9","xtf7nddg"],1,0,0,1],["ion-slides",["ig6k3jc9","xtf7nddg"],1,[["autoplay",1,1,4],["control",1,1,1],["direction",1,1,1],["effect",1,1,2],["el",7],["initialSlide",1,1,4],["keyboardControl",1,1,3],["loop",1,1,3],["pager",1,1,3],["paginationType",1,1,2],["parallax",1,1,3],["slidesPerView",1,1,1],["spaceBetween",1,1,4],["speed",1,1,4],["zoom",1,1,3]],0,1],["ion-spinner",{ios:["dbi30zqh","kcaz2kww"],md:["f2saegls","0rpiyuof"]},1,[["color",1,1,2],["config",3,0,0,"config"],["duration",1,1,4],["mode",1,1,1],["name",1,1,2],["paused",1,1,3]]],["ion-split-pane",{ios:["evczbztx","pfsy9flo"],md:["hlyxj2b8","jxwdmf6k"]},1,[["el",7],["enabled",1,1,3],["isVisible",6],["visible",5],["when",1,1,1]],0,1],["ion-tab",{ios:["8brphdh6","fw2ebabe"],md:["ci1zf2fl","5rxhxlw3"]},0,[["_setActive",6],["active",5],["badge",1,1,2],["badgeStyle",1,1,2],["btnId",1,1,2],["el",7],["enabled",1,1,3],["getActive",6],["getNav",6],["goToRoot",6],["icon",1,1,2],["init",5],["path",1,1,2],["selected",2,1,3],["show",1,1,3],["tabsHideOnSubPages",1,1,3],["title",1,1,2]]],["ion-tab-button",{ios:["8brphdh6","fw2ebabe"],md:["ci1zf2fl","5rxhxlw3"]},0,[["selected",1,1,3],["tab",1,1,1]],0,0,[["click","onClick"]]],["ion-tab-highlight",{ios:["8brphdh6","fw2ebabe"],md:["ci1zf2fl","5rxhxlw3"]},0,[["animated",5],["el",7],["selectedTab",1,1,1],["transform",5]],0,0,[["window:resize","onResize",0,1]]],["ion-tabbar",{ios:["8brphdh6","fw2ebabe"],md:["ci1zf2fl","5rxhxlw3"]},0,[["hidden",5],["highlight",1,1,3],["layout",1,1,2],["placement",1,1,2],["selectedTab",1,1,1],["tabs",1,1,1],["translucent",1,1,3]],0,0,[["body:keyboardWillHide","onKeyboardWillHide"],["body:keyboardWillShow","onKeyboardWillShow"]]],["ion-tabs",{ios:["8brphdh6","fw2ebabe"],md:["ci1zf2fl","5rxhxlw3"]},1,[["config",3,0,0,"config"],["el",7],["getByIndex",6],["getIndex",6],["getRoutes",6],["getSelected",6],["getState",6],["getTabs",6],["name",1,1,2],["select",6],["selectedTab",5],["setRouteId",6],["tabbarHidden",1,1,3],["tabbarHighlight",2,1,3],["tabbarLayout",2,1,2],["tabbarPlacement",2,1,2],["tabs",5],["translucent",1,1,3]],0,1,[["ionTabbarClick","tabChange"]]],["ion-textarea",{ios:["jwlwalk2","v53jbfdu"],md:["zm1olfh2","queb3tl6"]},1,[["autocapitalize",1,1,2],["autocomplete",1,1,2],["autofocus",1,1,3],["clearOnEdit",2,1,3],["cols",1,1,4],["disabled",1,1,3],["el",7],["maxlength",1,1,4],["minlength",1,1,4],["name",1,1,2],["placeholder",1,1,2],["readonly",1,1,3],["required",1,1,3],["rows",1,1,4],["spellcheck",1,1,3],["value",2,1,2],["wrap",1,1,2]]],["ion-thumbnail",{ios:["ojxrx2ih","dkgev225"],md:["uxposknn","jjrln8ya"]},1,0,0,1],["ion-title",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},1,0,0,1],["ion-toast",{ios:["jtlugxkj","y3zuqvnz"],md:["1wtah9mp","ftjx2s0e"]},1,[["animationCtrl",4,0,0,"ion-animation-controller"],["closeButtonText",1,1,2],["config",3,0,0,"config"],["cssClass",1,1,2],["dismissOnPageChange",1,1,3],["duration",1,1,4],["el",7],["enterAnimation",1,1,1],["exitAnimation",1,1,1],["message",1,1,2],["position",1,1,2],["showCloseButton",1,1,3],["toastId",1,1,2],["translucent",1,1,3]],0,0,[["ionDismiss","onDismiss"]]],["ion-toast-controller",{ios:["jtlugxkj","y3zuqvnz"],md:["1wtah9mp","ftjx2s0e"]},0,[["create",6]],0,0,[["body:ionToastDidLoad","didLoad"],["body:ionToastDidUnload","willDismiss"],["body:ionToastWillDismiss","willDismiss"],["body:ionToastWillPresent","willPresent"],["body:keyup.escape","escapeKeyUp"]]],["ion-toggle",{ios:["mefiqsdh","n3o2trt1"],md:["it9j1up0","nojh8syz"]},1,[["activated",5],["checked",2,1,3],["color",1,1,2],["disabled",2,1,3],["keyFocus",5],["mode",1,1,1],["name",1,1,2],["value",2,1,2]]],["ion-toolbar",{ios:["cwdbzxcc","abgi38da"],md:["qeaijujf","6j71totz"]},1,[["color",1,1,2],["config",3,0,0,"config"],["el",7],["mode",1,1,1],["translucent",1,1,3]],0,2],["ion-utils",["cuoksmbq","sic20v8r"]],["page-one",["e7vpgqzt","buy0tieo"],0,[["element",7]]],["page-tab",["yh89sow7","40ibzqdr"],0,[["element",7]]],["page-three",["e7vpgqzt","buy0tieo"],0,[["element",7]]],["page-two",["e7vpgqzt","buy0tieo"],0,[["element",7]]],["stencil-ion-nav-delegate",["e7vpgqzt","buy0tieo"],0,[["attachViewToDom",6],["removeViewFromDom",6]]],["translucent-page-tab",["qa9dvsfh","mlrgojqh"],0,[["element",7]]]]); |
{ | ||
"name": "@ionic/core", | ||
"version": "0.0.2-25", | ||
"version": "0.0.2-26", | ||
"description": "Base components for Ionic", | ||
@@ -5,0 +5,0 @@ "main": "dist/collection/index.js", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4717567
2320
47771