diff --git a/angular/src/directives/proxies.ts b/angular/src/directives/proxies.ts index 81703dcb46..4d5d00da37 100644 --- a/angular/src/directives/proxies.ts +++ b/angular/src/directives/proxies.ts @@ -6,19 +6,6 @@ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, ViewEncap type StencilComponents = StencilElementInterfaces[T]; -type PromisifyType = T extends Promise ? T : Promise; -type PromisifyProp = - T extends () => infer R ? () => PromisifyType : - T extends (a: infer A) => infer R ? (a: A) => PromisifyType : - T extends (a: infer A, b: infer B) => infer R ? (a: A, b: B) => PromisifyType : - T extends (a: infer A, b: infer B, c: infer B) => infer R ? (a: A, b: B) => PromisifyType : - T extends (...a: any[]) => infer R ? (...a: any[]) => PromisifyType : - T; - -type Promisify = { - [P in keyof T]: PromisifyProp; -} - export function proxyInputs(instance: any, el: any, props: string[]) { props.forEach(propName => { Object.defineProperty(instance, propName, { @@ -45,17 +32,17 @@ export function proxyMethods(instance: any, el: any, methods: string[]) { } -export declare interface App extends Promisify> {} +export declare interface App extends StencilComponents<'IonApp'> {} @Component({ selector: 'ion-app', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class App { } -export declare interface Avatar extends Promisify> {} +export declare interface Avatar extends StencilComponents<'IonAvatar'> {} @Component({ selector: 'ion-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Avatar { } -export declare interface BackButton extends Promisify> {} +export declare interface BackButton extends StencilComponents<'IonBackButton'> {} @Component({ selector: 'ion-back-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'defaultHref', 'icon', 'text'] }) export class BackButton { @@ -65,7 +52,7 @@ export class BackButton { } } -export declare interface Backdrop extends Promisify> {} +export declare interface Backdrop extends StencilComponents<'IonBackdrop'> {} @Component({ selector: 'ion-backdrop', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['visible', 'tappable', 'stopPropagation'] }) export class Backdrop { ionBackdropTap: EventEmitter; @@ -77,7 +64,7 @@ export class Backdrop { } } -export declare interface Badge extends Promisify> {} +export declare interface Badge extends StencilComponents<'IonBadge'> {} @Component({ selector: 'ion-badge', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Badge { @@ -87,7 +74,7 @@ export class Badge { } } -export declare interface Button extends Promisify> {} +export declare interface Button extends StencilComponents<'IonButton'> {} @Component({ selector: 'ion-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'buttonType', 'disabled', 'expand', 'fill', 'routerDirection', 'href', 'shape', 'size', 'strong', 'type'] }) export class Button { ionFocus: EventEmitter; @@ -100,12 +87,12 @@ export class Button { } } -export declare interface Buttons extends Promisify> {} +export declare interface Buttons extends StencilComponents<'IonButtons'> {} @Component({ selector: 'ion-buttons', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Buttons { } -export declare interface Card extends Promisify> {} +export declare interface Card extends StencilComponents<'IonCard'> {} @Component({ selector: 'ion-card', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Card { @@ -115,7 +102,7 @@ export class Card { } } -export declare interface CardContent extends Promisify> {} +export declare interface CardContent extends StencilComponents<'IonCardContent'> {} @Component({ selector: 'ion-card-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['mode'] }) export class CardContent { @@ -125,7 +112,7 @@ export class CardContent { } } -export declare interface CardHeader extends Promisify> {} +export declare interface CardHeader extends StencilComponents<'IonCardHeader'> {} @Component({ selector: 'ion-card-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'translucent'] }) export class CardHeader { @@ -135,7 +122,7 @@ export class CardHeader { } } -export declare interface CardSubtitle extends Promisify> {} +export declare interface CardSubtitle extends StencilComponents<'IonCardSubtitle'> {} @Component({ selector: 'ion-card-subtitle', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class CardSubtitle { @@ -145,7 +132,7 @@ export class CardSubtitle { } } -export declare interface CardTitle extends Promisify> {} +export declare interface CardTitle extends StencilComponents<'IonCardTitle'> {} @Component({ selector: 'ion-card-title', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class CardTitle { @@ -155,7 +142,7 @@ export class CardTitle { } } -export declare interface Checkbox extends Promisify> {} +export declare interface Checkbox extends StencilComponents<'IonCheckbox'> {} @Component({ selector: 'ion-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'name', 'checked', 'disabled', 'value'] }) export class Checkbox { ionChange: EventEmitter; @@ -170,7 +157,7 @@ export class Checkbox { } } -export declare interface Chip extends Promisify> {} +export declare interface Chip extends StencilComponents<'IonChip'> {} @Component({ selector: 'ion-chip', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Chip { @@ -180,7 +167,7 @@ export class Chip { } } -export declare interface ChipButton extends Promisify> {} +export declare interface ChipButton extends StencilComponents<'IonChipButton'> {} @Component({ selector: 'ion-chip-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'disabled', 'fill', 'href'] }) export class ChipButton { @@ -190,7 +177,7 @@ export class ChipButton { } } -export declare interface ChipIcon extends Promisify> {} +export declare interface ChipIcon extends StencilComponents<'IonChipIcon'> {} @Component({ selector: 'ion-chip-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'fill', 'name', 'src'] }) export class ChipIcon { @@ -200,7 +187,7 @@ export class ChipIcon { } } -export declare interface Col extends Promisify> {} +export declare interface Col extends StencilComponents<'IonCol'> {} @Component({ selector: 'ion-col', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['offset', 'offsetXs', 'offsetSm', 'offsetMd', 'offsetLg', 'offsetXl', 'pull', 'pullXs', 'pullSm', 'pullMd', 'pullLg', 'pullXl', 'push', 'pushXs', 'pushSm', 'pushMd', 'pushLg', 'pushXl', 'size', 'sizeXs', 'sizeSm', 'sizeMd', 'sizeLg', 'sizeXl'] }) export class Col { @@ -210,7 +197,7 @@ export class Col { } } -export declare interface Content extends Promisify> {} +export declare interface Content extends StencilComponents<'IonContent'> {} @Component({ selector: 'ion-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'fullscreen', 'forceOverscroll', 'scrollX', 'scrollY', 'scrollEvents'] }) export class Content { ionScrollStart: EventEmitter; @@ -225,7 +212,7 @@ export class Content { } } -export declare interface Datetime extends Promisify> {} +export declare interface Datetime extends StencilComponents<'IonDatetime'> {} @Component({ selector: 'ion-datetime', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['disabled', 'min', 'max', 'displayFormat', 'pickerFormat', 'cancelText', 'doneText', 'yearValues', 'monthValues', 'dayValues', 'hourValues', 'minuteValues', 'monthNames', 'monthShortNames', 'dayNames', 'dayShortNames', 'pickerOptions', 'placeholder', 'value'] }) export class Datetime { ionCancel: EventEmitter; @@ -240,7 +227,7 @@ export class Datetime { } } -export declare interface Fab extends Promisify> {} +export declare interface Fab extends StencilComponents<'IonFab'> {} @Component({ selector: 'ion-fab', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['horizontal', 'vertical', 'edge', 'activated'] }) export class Fab { @@ -251,7 +238,7 @@ export class Fab { } } -export declare interface FabButton extends Promisify> {} +export declare interface FabButton extends StencilComponents<'IonFabButton'> {} @Component({ selector: 'ion-fab-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'activated', 'disabled', 'href', 'translucent', 'show'] }) export class FabButton { @@ -261,7 +248,7 @@ export class FabButton { } } -export declare interface FabList extends Promisify> {} +export declare interface FabList extends StencilComponents<'IonFabList'> {} @Component({ selector: 'ion-fab-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['activated', 'side'] }) export class FabList { @@ -271,7 +258,7 @@ export class FabList { } } -export declare interface Footer extends Promisify> {} +export declare interface Footer extends StencilComponents<'IonFooter'> {} @Component({ selector: 'ion-footer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['mode', 'translucent'] }) export class Footer { @@ -281,7 +268,7 @@ export class Footer { } } -export declare interface Grid extends Promisify> {} +export declare interface Grid extends StencilComponents<'IonGrid'> {} @Component({ selector: 'ion-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['fixed'] }) export class Grid { @@ -291,7 +278,7 @@ export class Grid { } } -export declare interface Header extends Promisify> {} +export declare interface Header extends StencilComponents<'IonHeader'> {} @Component({ selector: 'ion-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['mode', 'translucent'] }) export class Header { @@ -301,7 +288,7 @@ export class Header { } } -export declare interface HideWhen extends Promisify> {} +export declare interface HideWhen extends StencilComponents<'IonHideWhen'> {} @Component({ selector: 'ion-hide-when', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['modes', 'orientation', 'mediaQuery', 'size', 'platform', 'or'] }) export class HideWhen { @@ -311,7 +298,7 @@ export class HideWhen { } } -export declare interface Icon extends Promisify> {} +export declare interface Icon extends StencilComponents<'IonIcon'> {} @Component({ selector: 'ion-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['ariaLabel', 'color', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'size', 'src'] }) export class Icon { @@ -321,7 +308,7 @@ export class Icon { } } -export declare interface Img extends Promisify> {} +export declare interface Img extends StencilComponents<'IonImg'> {} @Component({ selector: 'ion-img', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['alt', 'src'] }) export class Img { ionImgDidLoad: EventEmitter; @@ -333,7 +320,7 @@ export class Img { } } -export declare interface InfiniteScroll extends Promisify> {} +export declare interface InfiniteScroll extends StencilComponents<'IonInfiniteScroll'> {} @Component({ selector: 'ion-infinite-scroll', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['threshold', 'disabled', 'position'] }) export class InfiniteScroll { ionInfinite: EventEmitter; @@ -346,7 +333,7 @@ export class InfiniteScroll { } } -export declare interface InfiniteScrollContent extends Promisify> {} +export declare interface InfiniteScrollContent extends StencilComponents<'IonInfiniteScrollContent'> {} @Component({ selector: 'ion-infinite-scroll-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['loadingSpinner', 'loadingText'] }) export class InfiniteScrollContent { @@ -356,7 +343,7 @@ export class InfiniteScrollContent { } } -export declare interface Input extends Promisify> {} +export declare interface Input extends StencilComponents<'IonInput'> {} @Component({ selector: 'ion-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearInput', 'clearOnEdit', 'debounce', 'disabled', 'inputmode', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'results', 'spellcheck', 'step', 'size', 'type', 'value'] }) export class Input { ionInput: EventEmitter; @@ -375,7 +362,7 @@ export class Input { } } -export declare interface Item extends Promisify> {} +export declare interface Item extends StencilComponents<'IonItem'> {} @Component({ selector: 'ion-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'button', 'detail', 'detailIcon', 'disabled', 'href', 'lines', 'routerDirection', 'state', 'type'] }) export class Item { @@ -385,7 +372,7 @@ export class Item { } } -export declare interface ItemDivider extends Promisify> {} +export declare interface ItemDivider extends StencilComponents<'IonItemDivider'> {} @Component({ selector: 'ion-item-divider', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class ItemDivider { @@ -395,12 +382,12 @@ export class ItemDivider { } } -export declare interface ItemGroup extends Promisify> {} +export declare interface ItemGroup extends StencilComponents<'IonItemGroup'> {} @Component({ selector: 'ion-item-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class ItemGroup { } -export declare interface ItemOption extends Promisify> {} +export declare interface ItemOption extends StencilComponents<'IonItemOption'> {} @Component({ selector: 'ion-item-option', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'disabled', 'expandable', 'href'] }) export class ItemOption { @@ -410,20 +397,20 @@ export class ItemOption { } } -export declare interface ItemOptions extends Promisify> {} +export declare interface ItemOptions extends StencilComponents<'IonItemOptions'> {} @Component({ selector: 'ion-item-options', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['side'] }) export class ItemOptions { ionSwipe: EventEmitter; constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['isEndSide', 'width', 'fireSwipeEvent']); + proxyMethods(this, el, ['fireSwipeEvent']); proxyInputs(this, el, ['side']); proxyOutputs(this, el, ['ionSwipe']); } } -export declare interface ItemSliding extends Promisify> {} +export declare interface ItemSliding extends StencilComponents<'IonItemSliding'> {} @Component({ selector: 'ion-item-sliding', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['disabled'] }) export class ItemSliding { ionDrag: EventEmitter; @@ -436,31 +423,29 @@ export class ItemSliding { } } -export declare interface Label extends Promisify> {} +export declare interface Label extends StencilComponents<'IonLabel'> {} @Component({ selector: 'ion-label', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'position'] }) export class Label { ionStyle: EventEmitter; constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['getText']); proxyInputs(this, el, ['color', 'mode', 'position']); proxyOutputs(this, el, ['ionStyle']); } } -export declare interface List extends Promisify> {} +export declare interface List extends StencilComponents<'IonList'> {} @Component({ selector: 'ion-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['lines', 'inset'] }) export class List { constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['getOpenItem', 'setOpenItem', 'closeSlidingItems']); proxyInputs(this, el, ['lines', 'inset']); } } -export declare interface ListHeader extends Promisify> {} +export declare interface ListHeader extends StencilComponents<'IonListHeader'> {} @Component({ selector: 'ion-list-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class ListHeader { @@ -470,7 +455,7 @@ export class ListHeader { } } -export declare interface Menu extends Promisify> {} +export declare interface Menu extends StencilComponents<'IonMenu'> {} @Component({ selector: 'ion-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['contentId', 'menuId', 'type', 'disabled', 'side', 'swipeGesture', 'maxEdgeStart'] }) export class Menu { ionOpen: EventEmitter; @@ -479,13 +464,13 @@ export class Menu { constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['isOpen', 'open', 'close', 'toggle', 'setOpen', 'isActive', 'getWidth']); + proxyMethods(this, el, ['isOpen', 'isActive', 'open', 'close', 'toggle', 'setOpen']); proxyInputs(this, el, ['contentId', 'menuId', 'type', 'disabled', 'side', 'swipeGesture', 'maxEdgeStart']); proxyOutputs(this, el, ['ionOpen', 'ionClose', 'ionMenuChange']); } } -export declare interface MenuButton extends Promisify> {} +export declare interface MenuButton extends StencilComponents<'IonMenuButton'> {} @Component({ selector: 'ion-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'menu', 'autoHide'] }) export class MenuButton { @@ -495,7 +480,7 @@ export class MenuButton { } } -export declare interface MenuToggle extends Promisify> {} +export declare interface MenuToggle extends StencilComponents<'IonMenuToggle'> {} @Component({ selector: 'ion-menu-toggle', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['menu', 'autoHide'] }) export class MenuToggle { @@ -505,7 +490,7 @@ export class MenuToggle { } } -export declare interface Nav extends Promisify> {} +export declare interface Nav extends StencilComponents<'IonNav'> {} @Component({ selector: 'ion-nav', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['swipeGesture', 'animated', 'delegate', 'rootParams', 'root'] }) export class Nav { ionNavWillLoad: EventEmitter; @@ -514,18 +499,18 @@ export class Nav { constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['push', 'insert', 'insertPages', 'pop', 'popTo', 'popToRoot', 'removeIndex', 'setRoot', 'setPages', 'setRouteId', 'getRouteId', 'canGoBack', 'getActive', 'getByIndex', 'getPrevious', 'isAnimating', 'getLength']); + proxyMethods(this, el, ['push', 'insert', 'insertPages', 'pop', 'popTo', 'popToRoot', 'removeIndex', 'setRoot', 'setPages', 'setRouteId', 'getRouteId', 'getActive', 'getByIndex', 'canGoBack', 'getPrevious']); proxyInputs(this, el, ['swipeGesture', 'animated', 'delegate', 'rootParams', 'root']); proxyOutputs(this, el, ['ionNavWillLoad', 'ionNavWillChange', 'ionNavDidChange']); } } -export declare interface NavPop extends Promisify> {} +export declare interface NavPop extends StencilComponents<'IonNavPop'> {} @Component({ selector: 'ion-nav-pop', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class NavPop { } -export declare interface NavPush extends Promisify> {} +export declare interface NavPush extends StencilComponents<'IonNavPush'> {} @Component({ selector: 'ion-nav-push', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['component', 'componentProps'] }) export class NavPush { @@ -535,7 +520,7 @@ export class NavPush { } } -export declare interface NavSetRoot extends Promisify> {} +export declare interface NavSetRoot extends StencilComponents<'IonNavSetRoot'> {} @Component({ selector: 'ion-nav-set-root', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['component', 'componentProps'] }) export class NavSetRoot { @@ -545,7 +530,7 @@ export class NavSetRoot { } } -export declare interface Note extends Promisify> {} +export declare interface Note extends StencilComponents<'IonNote'> {} @Component({ selector: 'ion-note', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Note { @@ -555,7 +540,7 @@ export class Note { } } -export declare interface Radio extends Promisify> {} +export declare interface Radio extends StencilComponents<'IonRadio'> {} @Component({ selector: 'ion-radio', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'name', 'disabled', 'checked', 'value'] }) export class Radio { ionRadioDidLoad: EventEmitter; @@ -572,7 +557,7 @@ export class Radio { } } -export declare interface RadioGroup extends Promisify> {} +export declare interface RadioGroup extends StencilComponents<'IonRadioGroup'> {} @Component({ selector: 'ion-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['allowEmptySelection', 'name', 'disabled', 'value'] }) export class RadioGroup { ionChange: EventEmitter; @@ -584,7 +569,7 @@ export class RadioGroup { } } -export declare interface Range extends Promisify> {} +export declare interface Range extends StencilComponents<'IonRange'> {} @Component({ selector: 'ion-range', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'debounce', 'name', 'dualKnobs', 'min', 'max', 'pin', 'snaps', 'step', 'disabled', 'value'] }) export class Range { ionChange: EventEmitter; @@ -599,7 +584,7 @@ export class Range { } } -export declare interface Refresher extends Promisify> {} +export declare interface Refresher extends StencilComponents<'IonRefresher'> {} @Component({ selector: 'ion-refresher', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['pullMin', 'pullMax', 'closeDuration', 'snapbackDuration', 'disabled'] }) export class Refresher { ionRefresh: EventEmitter; @@ -614,7 +599,7 @@ export class Refresher { } } -export declare interface RefresherContent extends Promisify> {} +export declare interface RefresherContent extends StencilComponents<'IonRefresherContent'> {} @Component({ selector: 'ion-refresher-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText'] }) export class RefresherContent { @@ -624,22 +609,24 @@ export class RefresherContent { } } -export declare interface Reorder extends Promisify> {} +export declare interface Reorder extends StencilComponents<'IonReorder'> {} @Component({ selector: 'ion-reorder', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Reorder { } -export declare interface ReorderGroup extends Promisify> {} +export declare interface ReorderGroup extends StencilComponents<'IonReorderGroup'> {} @Component({ selector: 'ion-reorder-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['disabled'] }) export class ReorderGroup { + ionItemReorder: EventEmitter; constructor(r: ElementRef) { const el = r.nativeElement; proxyInputs(this, el, ['disabled']); + proxyOutputs(this, el, ['ionItemReorder']); } } -export declare interface RippleEffect extends Promisify> {} +export declare interface RippleEffect extends StencilComponents<'IonRippleEffect'> {} @Component({ selector: 'ion-ripple-effect', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class RippleEffect { @@ -649,12 +636,12 @@ export class RippleEffect { } } -export declare interface Row extends Promisify> {} +export declare interface Row extends StencilComponents<'IonRow'> {} @Component({ selector: 'ion-row', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Row { } -export declare interface Searchbar extends Promisify> {} +export declare interface Searchbar extends StencilComponents<'IonSearchbar'> {} @Component({ selector: 'ion-searchbar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'debounce', 'placeholder', 'searchIcon', 'showCancelButton', 'spellcheck', 'type', 'value'] }) export class Searchbar { ionInput: EventEmitter; @@ -672,7 +659,7 @@ export class Searchbar { } } -export declare interface Segment extends Promisify> {} +export declare interface Segment extends StencilComponents<'IonSegment'> {} @Component({ selector: 'ion-segment', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'disabled', 'value'] }) export class Segment { ionChange: EventEmitter; @@ -684,7 +671,7 @@ export class Segment { } } -export declare interface SegmentButton extends Promisify> {} +export declare interface SegmentButton extends StencilComponents<'IonSegmentButton'> {} @Component({ selector: 'ion-segment-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'checked', 'disabled', 'value'] }) export class SegmentButton { ionSelect: EventEmitter; @@ -696,7 +683,7 @@ export class SegmentButton { } } -export declare interface Select extends Promisify> {} +export declare interface Select extends StencilComponents<'IonSelect'> {} @Component({ selector: 'ion-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['mode', 'disabled', 'cancelText', 'okText', 'placeholder', 'name', 'selectedText', 'multiple', 'interface', 'interfaceOptions', 'value'] }) export class Select { ionChange: EventEmitter; @@ -713,7 +700,7 @@ export class Select { } } -export declare interface SelectOption extends Promisify> {} +export declare interface SelectOption extends StencilComponents<'IonSelectOption'> {} @Component({ selector: 'ion-select-option', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['disabled', 'selected', 'value'] }) export class SelectOption { ionSelectOptionDidLoad: EventEmitter; @@ -726,7 +713,7 @@ export class SelectOption { } } -export declare interface SelectPopover extends Promisify> {} +export declare interface SelectPopover extends StencilComponents<'IonSelectPopover'> {} @Component({ selector: 'ion-select-popover', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['header', 'subHeader', 'message', 'options'] }) export class SelectPopover { @@ -736,7 +723,7 @@ export class SelectPopover { } } -export declare interface ShowWhen extends Promisify> {} +export declare interface ShowWhen extends StencilComponents<'IonShowWhen'> {} @Component({ selector: 'ion-show-when', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['modes', 'orientation', 'mediaQuery', 'size', 'platform', 'or'] }) export class ShowWhen { @@ -746,7 +733,7 @@ export class ShowWhen { } } -export declare interface SkeletonText extends Promisify> {} +export declare interface SkeletonText extends StencilComponents<'IonSkeletonText'> {} @Component({ selector: 'ion-skeleton-text', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['width'] }) export class SkeletonText { @@ -756,12 +743,12 @@ export class SkeletonText { } } -export declare interface Slide extends Promisify> {} +export declare interface Slide extends StencilComponents<'IonSlide'> {} @Component({ selector: 'ion-slide', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Slide { } -export declare interface Slides extends Promisify> {} +export declare interface Slides extends StencilComponents<'IonSlides'> {} @Component({ selector: 'ion-slides', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['options', 'pager', 'scrollbar'] }) export class Slides { ionSlidesDidLoad: EventEmitter; @@ -789,7 +776,7 @@ export class Slides { } } -export declare interface Spinner extends Promisify> {} +export declare interface Spinner extends StencilComponents<'IonSpinner'> {} @Component({ selector: 'ion-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'duration', 'name', 'paused'] }) export class Spinner { @@ -799,7 +786,7 @@ export class Spinner { } } -export declare interface SplitPane extends Promisify> {} +export declare interface SplitPane extends StencilComponents<'IonSplitPane'> {} @Component({ selector: 'ion-split-pane', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['disabled', 'when'] }) export class SplitPane { ionChange: EventEmitter; @@ -807,13 +794,12 @@ export class SplitPane { constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['isVisible', 'isPane']); proxyInputs(this, el, ['disabled', 'when']); proxyOutputs(this, el, ['ionChange', 'ionSplitPaneVisible']); } } -export declare interface Tab extends Promisify> {} +export declare interface Tab extends StencilComponents<'IonTab'> {} @Component({ selector: 'ion-tab', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['active', 'btnId', 'delegate', 'label', 'href', 'icon', 'badge', 'badgeColor', 'component', 'name', 'disabled', 'selected', 'show', 'tabsHideOnSubPages'] }) export class Tab { ionSelect: EventEmitter; @@ -821,13 +807,13 @@ export class Tab { constructor(r: ElementRef) { const el = r.nativeElement; - proxyMethods(this, el, ['getTabId', 'setActive']); + proxyMethods(this, el, ['setActive']); proxyInputs(this, el, ['active', 'btnId', 'delegate', 'label', 'href', 'icon', 'badge', 'badgeColor', 'component', 'name', 'disabled', 'selected', 'show', 'tabsHideOnSubPages']); proxyOutputs(this, el, ['ionSelect', 'ionTabMutated']); } } -export declare interface Tabs extends Promisify> {} +export declare interface Tabs extends StencilComponents<'IonTabs'> {} @Component({ selector: 'ion-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'name', 'tabbarHidden', 'tabbarHighlight', 'tabbarLayout', 'tabbarPlacement', 'translucent', 'useRouter'] }) export class Tabs { ionChange: EventEmitter; @@ -843,7 +829,7 @@ export class Tabs { } } -export declare interface Text extends Promisify> {} +export declare interface Text extends StencilComponents<'IonText'> {} @Component({ selector: 'ion-text', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Text { @@ -853,7 +839,7 @@ export class Text { } } -export declare interface Textarea extends Promisify> {} +export declare interface Textarea extends StencilComponents<'IonTextarea'> {} @Component({ selector: 'ion-textarea', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['mode', 'color', 'autocapitalize', 'autofocus', 'clearOnEdit', 'debounce', 'disabled', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'spellcheck', 'cols', 'rows', 'wrap', 'value'] }) export class Textarea { ionChange: EventEmitter; @@ -870,12 +856,12 @@ export class Textarea { } } -export declare interface Thumbnail extends Promisify> {} +export declare interface Thumbnail extends StencilComponents<'IonThumbnail'> {} @Component({ selector: 'ion-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '' }) export class Thumbnail { } -export declare interface Toggle extends Promisify> {} +export declare interface Toggle extends StencilComponents<'IonToggle'> {} @Component({ selector: 'ion-toggle', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode', 'name', 'checked', 'disabled', 'value'] }) export class Toggle { ionChange: EventEmitter; @@ -890,7 +876,7 @@ export class Toggle { } } -export declare interface Toolbar extends Promisify> {} +export declare interface Toolbar extends StencilComponents<'IonToolbar'> {} @Component({ selector: 'ion-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color', 'mode'] }) export class Toolbar { @@ -900,7 +886,7 @@ export class Toolbar { } } -export declare interface ToolbarTitle extends Promisify> {} +export declare interface ToolbarTitle extends StencilComponents<'IonTitle'> {} @Component({ selector: 'ion-title', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', inputs: ['color'] }) export class ToolbarTitle { diff --git a/core/package.json b/core/package.json index 908fa1fdab..2c996676cf 100644 --- a/core/package.json +++ b/core/package.json @@ -27,7 +27,7 @@ "ionicons": "4.4.3" }, "devDependencies": { - "@stencil/core": "^0.12.2", + "@stencil/core": "0.12.3", "@stencil/dev-server": "latest", "@stencil/sass": "0.1.0", "@stencil/utils": "latest", @@ -48,12 +48,12 @@ }, "scripts": { "build": "npm run clean && npm run build.css && stencil build --docs", - "build.css": "npm run css.sass && npm run css.clean", + "build.css": "npm run css.sass && npm run css.minify", "build.debug": "npm run clean && stencil build --debug", "build.docs.json": "stencil build --docs-json dist/docs.json", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", "clean": "node scripts/clean.js", - "css.clean": "cleancss -O2 -o ./css/ionic.bundle.css ./css/ionic.bundle.css", + "css.minify": "cleancss -O2 -o ./css/ionic.bundle.css ./css/ionic.bundle.css", "css.sass": "node-sass --output ./css src/css --output-style compressed", "dev": "npm run build.css && stencil build --dev --watch --serve", "e2e": "node ./scripts/e2e", diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 02f91d8bd4..5cacb1327b 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -3992,7 +3992,7 @@ export namespace Components { * The text to display on the ok button. Default: `OK`. */ 'okText': string; - 'open': (ev?: UIEvent | undefined) => Promise; + 'open': (ev?: UIEvent | undefined) => Promise; /** * The text to display when the select is empty. */