mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-15 09:34:19 +08:00
perf(angular): bundle size improvements for angular (#16966)
This commit is contained in:
@ -20,10 +20,11 @@
|
|||||||
"url": "https://github.com/ionic-team/ionic.git"
|
"url": "https://github.com/ionic-team/ionic.git"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run clean && npm run build.core && npm run build.ng && npm run clean-generated",
|
"build": "npm run clean && npm run build.core && npm run build.ng && npm run build.fesm && npm run clean-generated",
|
||||||
"build.dev": "npm run clean && npm run build.core.dev && npm run build.ng && npm run clean-generated",
|
"build.dev": "npm run clean && npm run build.core.dev && npm run build.ng && npm run clean-generated",
|
||||||
"build.core": "node scripts/build-core.js",
|
"build.core": "node scripts/build-core.js",
|
||||||
"build.core.dev": "node scripts/build-core.js --dev",
|
"build.core.dev": "node scripts/build-core.js --dev",
|
||||||
|
"build.fesm": "rollup --config ./scripts/rollup.config.js",
|
||||||
"build.link": "npm run build && node scripts/link-copy.js",
|
"build.link": "npm run build && node scripts/link-copy.js",
|
||||||
"build.ng": "./node_modules/.bin/ngc",
|
"build.ng": "./node_modules/.bin/ngc",
|
||||||
"clean": "node scripts/clean.js",
|
"clean": "node scripts/clean.js",
|
||||||
@ -36,9 +37,10 @@
|
|||||||
"tsc": "tsc -p .",
|
"tsc": "tsc -p .",
|
||||||
"validate": "npm i && npm run lint && npm run test && npm run build"
|
"validate": "npm i && npm run lint && npm run test && npm run build"
|
||||||
},
|
},
|
||||||
"module": "dist/index.js",
|
"module": "dist/fesm5.js",
|
||||||
"main": "dist/index.js",
|
"main": "dist/fesm5.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
"sideEffects": false,
|
||||||
"files": [
|
"files": [
|
||||||
"dist/",
|
"dist/",
|
||||||
"css/"
|
"css/"
|
||||||
@ -48,33 +50,35 @@
|
|||||||
"tslib": "^1.9.3"
|
"tslib": "^1.9.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@angular-devkit/core": "^7.1.2",
|
"@angular-devkit/core": "^7.1.4",
|
||||||
"@angular-devkit/schematics": "^7.1.2",
|
"@angular-devkit/schematics": "^7.1.4",
|
||||||
"@angular/core": "^7.1.3",
|
"@angular/core": "^7.1.4",
|
||||||
"@angular/common": "^7.1.3",
|
"@angular/common": "^7.1.4",
|
||||||
"@angular/forms": "^7.1.3",
|
"@angular/forms": "^7.1.4",
|
||||||
"@angular/router": "~7.1.3",
|
"@angular/router": "~7.1.4",
|
||||||
"@angular/compiler": "^7.1.3",
|
"@angular/compiler": "^7.1.4",
|
||||||
"@angular/compiler-cli": "^7.1.3",
|
"@angular/compiler-cli": "^7.1.4",
|
||||||
"@angular/platform-browser": "^7.1.3",
|
"@angular/platform-browser": "^7.1.4",
|
||||||
"@angular/platform-browser-dynamic": "^7.1.3",
|
"@angular/platform-browser-dynamic": "^7.1.4",
|
||||||
"rxjs": ">=6.2.0",
|
"rxjs": ">=6.2.0",
|
||||||
"zone.js": "^0.8.26"
|
"zone.js": "^0.8.26"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/core": "^7.1.2",
|
"@angular-devkit/core": "^7.1.4",
|
||||||
"@angular-devkit/schematics": "^7.1.2",
|
"@angular-devkit/schematics": "^7.1.4",
|
||||||
"@angular/core": "^7.1.3",
|
"@angular/common": "^7.1.4",
|
||||||
"@angular/common": "^7.1.3",
|
"@angular/compiler": "^7.1.4",
|
||||||
"@angular/forms": "^7.1.3",
|
"@angular/compiler-cli": "^7.1.4",
|
||||||
"@angular/router": "^7.1.3",
|
"@angular/core": "^7.1.4",
|
||||||
"@angular/compiler": "^7.1.3",
|
"@angular/forms": "^7.1.4",
|
||||||
"@angular/compiler-cli": "^7.1.3",
|
"@angular/platform-browser": "^7.1.4",
|
||||||
"@angular/platform-browser": "^7.1.3",
|
"@angular/platform-browser-dynamic": "^7.1.4",
|
||||||
"@angular/platform-browser-dynamic": "^7.1.3",
|
"@angular/router": "^7.1.4",
|
||||||
"@types/node": "~10.12.0",
|
"@types/node": "~10.12.0",
|
||||||
"fs-extra": "^7.0.0",
|
"fs-extra": "^7.0.0",
|
||||||
"glob": "^7.1.3",
|
"glob": "^7.1.3",
|
||||||
|
"rollup": "^1.0.2",
|
||||||
|
"rollup-plugin-node-resolve": "^4.0.0",
|
||||||
"rxjs": "^6.2.0",
|
"rxjs": "^6.2.0",
|
||||||
"tslint": "^5.10.0",
|
"tslint": "^5.10.0",
|
||||||
"tslint-ionic-rules": "0.0.21",
|
"tslint-ionic-rules": "0.0.21",
|
||||||
|
22
angular/scripts/rollup.config.js
Normal file
22
angular/scripts/rollup.config.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import resolve from 'rollup-plugin-node-resolve';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
input: 'dist/index.js',
|
||||||
|
output: {
|
||||||
|
file: 'dist/fesm5.js',
|
||||||
|
format: 'es'
|
||||||
|
},
|
||||||
|
external: (id) => {
|
||||||
|
// inline @ionic/core deps
|
||||||
|
if (id === '@ionic/core') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// anything else is external
|
||||||
|
return !(id.startsWith('.') || id.startsWith('/'));
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
resolve({
|
||||||
|
module: true,
|
||||||
|
})
|
||||||
|
]
|
||||||
|
};
|
@ -1,6 +1,4 @@
|
|||||||
import { defineCustomElements } from '@ionic/core/loader';
|
import { defineCustomElements } from '@ionic/core/loader';
|
||||||
import { addIcons } from 'ionicons';
|
|
||||||
import { ICON_PATHS } from 'ionicons/icons';
|
|
||||||
|
|
||||||
import { Config } from './providers/config';
|
import { Config } from './providers/config';
|
||||||
import { IonicWindow } from './types/interfaces';
|
import { IonicWindow } from './types/interfaces';
|
||||||
@ -10,7 +8,6 @@ export function appInitialize(config: Config) {
|
|||||||
const win: IonicWindow | undefined = window as any;
|
const win: IonicWindow | undefined = window as any;
|
||||||
if (typeof win !== 'undefined') {
|
if (typeof win !== 'undefined') {
|
||||||
const Ionic = win.Ionic = win.Ionic || {};
|
const Ionic = win.Ionic = win.Ionic || {};
|
||||||
addIcons(ICON_PATHS);
|
|
||||||
|
|
||||||
Ionic.config = config;
|
Ionic.config = config;
|
||||||
Ionic.asyncQueue = false;
|
Ionic.asyncQueue = false;
|
||||||
|
28
angular/src/components.d.ts
vendored
28
angular/src/components.d.ts
vendored
@ -1,28 +0,0 @@
|
|||||||
/**
|
|
||||||
* This is an autogenerated file created by the Stencil build process.
|
|
||||||
* It contains typing information for all components that exist in this project
|
|
||||||
* and imports for stencil collections that might be configured in your stencil.config.js file
|
|
||||||
*/
|
|
||||||
|
|
||||||
import '@stencil/core';
|
|
||||||
|
|
||||||
declare global {
|
|
||||||
namespace JSX {
|
|
||||||
interface Element {}
|
|
||||||
export interface IntrinsicElements {}
|
|
||||||
}
|
|
||||||
namespace JSXElements {}
|
|
||||||
|
|
||||||
interface HTMLStencilElement extends HTMLElement {
|
|
||||||
componentOnReady(): Promise<this>;
|
|
||||||
componentOnReady(done: (ele?: this) => void): void;
|
|
||||||
|
|
||||||
forceUpdate(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface HTMLAttributes {}
|
|
||||||
}
|
|
||||||
|
|
||||||
import 'ionicons';
|
|
||||||
import '@ionic/core';
|
|
||||||
|
|
@ -16,3 +16,4 @@ export { IonVirtualScroll } from './virtual-scroll/virtual-scroll';
|
|||||||
export { VirtualItem } from './virtual-scroll/virtual-item';
|
export { VirtualItem } from './virtual-scroll/virtual-item';
|
||||||
export { VirtualHeader } from './virtual-scroll/virtual-header';
|
export { VirtualHeader } from './virtual-scroll/virtual-header';
|
||||||
export { VirtualFooter } from './virtual-scroll/virtual-footer';
|
export { VirtualFooter } from './virtual-scroll/virtual-footer';
|
||||||
|
export * from './proxies';
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
import { Directive, ElementRef, HostListener, Input, Optional } from '@angular/core';
|
import { Directive, ElementRef, HostListener, Optional } from '@angular/core';
|
||||||
|
|
||||||
import { NavController } from '../../providers/nav-controller';
|
import { NavController } from '../../providers/nav-controller';
|
||||||
|
|
||||||
import { IonRouterOutlet } from './ion-router-outlet';
|
import { IonRouterOutlet } from './ion-router-outlet';
|
||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: 'ion-back-button'
|
selector: 'ion-back-button',
|
||||||
|
inputs: ['defaultHref']
|
||||||
})
|
})
|
||||||
export class IonBackButtonDelegate {
|
export class IonBackButtonDelegate {
|
||||||
|
|
||||||
@Input()
|
|
||||||
set defaultHref(value: string | undefined | null) {
|
set defaultHref(value: string | undefined | null) {
|
||||||
this.elementRef.nativeElement.defaultHref = value;
|
this.elementRef.nativeElement.defaultHref = value;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Attribute, ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, Injector, Input, NgZone, OnDestroy, OnInit, Optional, Output, ViewContainerRef } from '@angular/core';
|
import { Attribute, ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, Injector, NgZone, OnDestroy, OnInit, Optional, Output, ViewContainerRef } from '@angular/core';
|
||||||
import { ActivatedRoute, ChildrenOutletContexts, OutletContext, PRIMARY_OUTLET, Router } from '@angular/router';
|
import { ActivatedRoute, ChildrenOutletContexts, OutletContext, PRIMARY_OUTLET, Router } from '@angular/router';
|
||||||
|
|
||||||
import { Config } from '../../providers';
|
import { Config } from '../../providers/config';
|
||||||
import { NavController } from '../../providers/nav-controller';
|
import { NavController } from '../../providers/nav-controller';
|
||||||
|
|
||||||
import { StackController } from './stack-controller';
|
import { StackController } from './stack-controller';
|
||||||
@ -9,7 +9,8 @@ import { RouteView, getUrl } from './stack-utils';
|
|||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: 'ion-router-outlet',
|
selector: 'ion-router-outlet',
|
||||||
exportAs: 'outlet'
|
exportAs: 'outlet',
|
||||||
|
inputs: ['animated', 'swipeGesture']
|
||||||
})
|
})
|
||||||
export class IonRouterOutlet implements OnDestroy, OnInit {
|
export class IonRouterOutlet implements OnDestroy, OnInit {
|
||||||
|
|
||||||
@ -27,12 +28,10 @@ export class IonRouterOutlet implements OnDestroy, OnInit {
|
|||||||
@Output('activate') activateEvents = new EventEmitter<any>();
|
@Output('activate') activateEvents = new EventEmitter<any>();
|
||||||
@Output('deactivate') deactivateEvents = new EventEmitter<any>();
|
@Output('deactivate') deactivateEvents = new EventEmitter<any>();
|
||||||
|
|
||||||
@Input()
|
|
||||||
set animated(animated: boolean) {
|
set animated(animated: boolean) {
|
||||||
this.nativeEl.animated = animated;
|
this.nativeEl.animated = animated;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Input()
|
|
||||||
set swipeGesture(swipe: boolean) {
|
set swipeGesture(swipe: boolean) {
|
||||||
this._swipeGesture = swipe;
|
this._swipeGesture = swipe;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, ContentChild, HostListener, ViewChild } from '@angular/core';
|
import { Component, ContentChild, HostListener, ViewChild } from '@angular/core';
|
||||||
|
|
||||||
import { NavController } from '../../providers';
|
import { NavController } from '../../providers/nav-controller';
|
||||||
import { IonTabBar } from '../proxies';
|
import { IonTabBar } from '../proxies';
|
||||||
|
|
||||||
import { IonRouterOutlet } from './ion-router-outlet';
|
import { IonRouterOutlet } from './ion-router-outlet';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { LocationStrategy } from '@angular/common';
|
import { LocationStrategy } from '@angular/common';
|
||||||
import { Directive, ElementRef, HostListener, Input, Optional } from '@angular/core';
|
import { Directive, ElementRef, HostListener, Optional } from '@angular/core';
|
||||||
import { Router, RouterLink } from '@angular/router';
|
import { Router, RouterLink } from '@angular/router';
|
||||||
import { RouterDirection } from '@ionic/core';
|
import { RouterDirection } from '@ionic/core';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
@ -8,12 +8,13 @@ import { NavController } from '../../providers/nav-controller';
|
|||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: '[routerLink]',
|
selector: '[routerLink]',
|
||||||
|
inputs: ['routerDirection']
|
||||||
})
|
})
|
||||||
export class RouterLinkDelegate {
|
export class RouterLinkDelegate {
|
||||||
|
|
||||||
private subscription?: Subscription;
|
private subscription?: Subscription;
|
||||||
|
|
||||||
@Input() routerDirection: RouterDirection = 'forward';
|
routerDirection: RouterDirection = 'forward';
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private locationStrategy: LocationStrategy,
|
private locationStrategy: LocationStrategy,
|
||||||
|
26
angular/src/directives/proxies-utils.ts
Normal file
26
angular/src/directives/proxies-utils.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/* tslint:disable */
|
||||||
|
import { fromEvent } from 'rxjs';
|
||||||
|
|
||||||
|
export function proxyInputs(Cmp: any, inputs: string[]) {
|
||||||
|
const Prototype = Cmp.prototype;
|
||||||
|
inputs.forEach(item => {
|
||||||
|
Object.defineProperty(Prototype, item, {
|
||||||
|
get() { return this.el[item]; },
|
||||||
|
set(val: any) { this.el[item] = val; },
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function proxyMethods(Cmp: any, methods: string[]) {
|
||||||
|
const Prototype = Cmp.prototype;
|
||||||
|
methods.forEach(methodName => {
|
||||||
|
Prototype[methodName] = function() {
|
||||||
|
const args = arguments;
|
||||||
|
return this.el.componentOnReady().then((el: any) => el[methodName].apply(el, args));
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function proxyOutputs(instance: any, el: any, events: string[]) {
|
||||||
|
events.forEach(eventName => instance[eventName] = fromEvent(el, eventName));
|
||||||
|
}
|
@ -1,40 +1,14 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
/* auto-generated angular directive proxies */
|
/* auto-generated angular directive proxies */
|
||||||
|
import { Component, ElementRef, ChangeDetectorRef, EventEmitter } from '@angular/core';
|
||||||
import { fromEvent } from 'rxjs';
|
import { proxyInputs, proxyMethods, proxyOutputs } from './proxies-utils';
|
||||||
import { ChangeDetectorRef, Component, ElementRef, EventEmitter } from '@angular/core';
|
|
||||||
|
|
||||||
type StencilComponents<T extends keyof StencilElementInterfaces> = StencilElementInterfaces[T];
|
type StencilComponents<T extends keyof StencilElementInterfaces> = StencilElementInterfaces[T];
|
||||||
|
|
||||||
export function proxyInputs(Cmp: any, inputs: string[]) {
|
|
||||||
const Prototype = Cmp.prototype;
|
|
||||||
inputs.forEach(item => {
|
|
||||||
Object.defineProperty(Prototype, item, {
|
|
||||||
get() { return this.el[item]; },
|
|
||||||
set(val: any) { this.el[item] = val; },
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function proxyOutputs(instance: any, el: any, events: string[]) {
|
|
||||||
events.forEach(eventName => instance[eventName] = fromEvent(el, eventName));
|
|
||||||
}
|
|
||||||
|
|
||||||
export function proxyMethods(Cmp: any, methods: string[]) {
|
|
||||||
const Prototype = Cmp.prototype;
|
|
||||||
methods.forEach(methodName => {
|
|
||||||
Prototype[methodName] = function() {
|
|
||||||
const args = arguments;
|
|
||||||
return this.el.componentOnReady().then((el: any) => el[methodName].apply(el, args));
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export declare interface IonApp extends StencilComponents<'IonApp'> {}
|
export declare interface IonApp extends StencilComponents<'IonApp'> {}
|
||||||
@Component({ selector: 'ion-app', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-app', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonApp {
|
export class IonApp {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -44,7 +18,7 @@ export class IonApp {
|
|||||||
export declare interface IonAvatar extends StencilComponents<'IonAvatar'> {}
|
export declare interface IonAvatar extends StencilComponents<'IonAvatar'> {}
|
||||||
@Component({ selector: 'ion-avatar', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-avatar', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonAvatar {
|
export class IonAvatar {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -54,7 +28,7 @@ export class IonAvatar {
|
|||||||
export declare interface IonBackButton extends StencilComponents<'IonBackButton'> {}
|
export declare interface IonBackButton extends StencilComponents<'IonBackButton'> {}
|
||||||
@Component({ selector: 'ion-back-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'defaultHref', 'icon', 'text'] })
|
@Component({ selector: 'ion-back-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'defaultHref', 'icon', 'text'] })
|
||||||
export class IonBackButton {
|
export class IonBackButton {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -66,7 +40,7 @@ export declare interface IonBackdrop extends StencilComponents<'IonBackdrop'> {}
|
|||||||
@Component({ selector: 'ion-backdrop', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['visible', 'tappable', 'stopPropagation'] })
|
@Component({ selector: 'ion-backdrop', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['visible', 'tappable', 'stopPropagation'] })
|
||||||
export class IonBackdrop {
|
export class IonBackdrop {
|
||||||
ionBackdropTap!: EventEmitter<CustomEvent>;
|
ionBackdropTap!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -78,7 +52,7 @@ proxyInputs(IonBackdrop, ['visible', 'tappable', 'stopPropagation']);
|
|||||||
export declare interface IonBadge extends StencilComponents<'IonBadge'> {}
|
export declare interface IonBadge extends StencilComponents<'IonBadge'> {}
|
||||||
@Component({ selector: 'ion-badge', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-badge', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonBadge {
|
export class IonBadge {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -91,7 +65,7 @@ export declare interface IonButton extends StencilComponents<'IonButton'> {}
|
|||||||
export class IonButton {
|
export class IonButton {
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -103,7 +77,7 @@ proxyInputs(IonButton, ['color', 'mode', 'buttonType', 'disabled', 'expand', 'fi
|
|||||||
export declare interface IonButtons extends StencilComponents<'IonButtons'> {}
|
export declare interface IonButtons extends StencilComponents<'IonButtons'> {}
|
||||||
@Component({ selector: 'ion-buttons', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-buttons', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonButtons {
|
export class IonButtons {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -113,7 +87,7 @@ export class IonButtons {
|
|||||||
export declare interface IonCard extends StencilComponents<'IonCard'> {}
|
export declare interface IonCard extends StencilComponents<'IonCard'> {}
|
||||||
@Component({ selector: 'ion-card', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-card', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonCard {
|
export class IonCard {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -124,7 +98,7 @@ proxyInputs(IonCard, ['color', 'mode']);
|
|||||||
export declare interface IonCardContent extends StencilComponents<'IonCardContent'> {}
|
export declare interface IonCardContent extends StencilComponents<'IonCardContent'> {}
|
||||||
@Component({ selector: 'ion-card-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode'] })
|
@Component({ selector: 'ion-card-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode'] })
|
||||||
export class IonCardContent {
|
export class IonCardContent {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -135,7 +109,7 @@ proxyInputs(IonCardContent, ['mode']);
|
|||||||
export declare interface IonCardHeader extends StencilComponents<'IonCardHeader'> {}
|
export declare interface IonCardHeader extends StencilComponents<'IonCardHeader'> {}
|
||||||
@Component({ selector: 'ion-card-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'translucent'] })
|
@Component({ selector: 'ion-card-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'translucent'] })
|
||||||
export class IonCardHeader {
|
export class IonCardHeader {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -146,7 +120,7 @@ proxyInputs(IonCardHeader, ['color', 'mode', 'translucent']);
|
|||||||
export declare interface IonCardSubtitle extends StencilComponents<'IonCardSubtitle'> {}
|
export declare interface IonCardSubtitle extends StencilComponents<'IonCardSubtitle'> {}
|
||||||
@Component({ selector: 'ion-card-subtitle', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-card-subtitle', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonCardSubtitle {
|
export class IonCardSubtitle {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -157,7 +131,7 @@ proxyInputs(IonCardSubtitle, ['color', 'mode']);
|
|||||||
export declare interface IonCardTitle extends StencilComponents<'IonCardTitle'> {}
|
export declare interface IonCardTitle extends StencilComponents<'IonCardTitle'> {}
|
||||||
@Component({ selector: 'ion-card-title', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-card-title', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonCardTitle {
|
export class IonCardTitle {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -171,7 +145,7 @@ export class IonCheckbox {
|
|||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -183,7 +157,7 @@ proxyInputs(IonCheckbox, ['color', 'mode', 'name', 'checked', 'disabled', 'value
|
|||||||
export declare interface IonChip extends StencilComponents<'IonChip'> {}
|
export declare interface IonChip extends StencilComponents<'IonChip'> {}
|
||||||
@Component({ selector: 'ion-chip', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'outline'] })
|
@Component({ selector: 'ion-chip', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'outline'] })
|
||||||
export class IonChip {
|
export class IonChip {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -194,7 +168,7 @@ proxyInputs(IonChip, ['color', 'mode', 'outline']);
|
|||||||
export declare interface IonCol extends StencilComponents<'IonCol'> {}
|
export declare interface IonCol extends StencilComponents<'IonCol'> {}
|
||||||
@Component({ selector: 'ion-col', changeDetection: 0, template: '<ng-content></ng-content>', 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'] })
|
@Component({ selector: 'ion-col', changeDetection: 0, template: '<ng-content></ng-content>', 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 IonCol {
|
export class IonCol {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -208,7 +182,7 @@ export class IonContent {
|
|||||||
ionScrollStart!: EventEmitter<CustomEvent>;
|
ionScrollStart!: EventEmitter<CustomEvent>;
|
||||||
ionScroll!: EventEmitter<CustomEvent>;
|
ionScroll!: EventEmitter<CustomEvent>;
|
||||||
ionScrollEnd!: EventEmitter<CustomEvent>;
|
ionScrollEnd!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -225,7 +199,7 @@ export class IonDatetime {
|
|||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -238,7 +212,7 @@ proxyInputs(IonDatetime, ['mode', 'name', 'disabled', 'min', 'max', 'displayForm
|
|||||||
export declare interface IonFab extends StencilComponents<'IonFab'> {}
|
export declare interface IonFab extends StencilComponents<'IonFab'> {}
|
||||||
@Component({ selector: 'ion-fab', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['horizontal', 'vertical', 'edge', 'activated'] })
|
@Component({ selector: 'ion-fab', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['horizontal', 'vertical', 'edge', 'activated'] })
|
||||||
export class IonFab {
|
export class IonFab {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -252,7 +226,7 @@ export declare interface IonFabButton extends StencilComponents<'IonFabButton'>
|
|||||||
export class IonFabButton {
|
export class IonFabButton {
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -264,7 +238,7 @@ proxyInputs(IonFabButton, ['mode', 'color', 'activated', 'disabled', 'href', 'ro
|
|||||||
export declare interface IonFabList extends StencilComponents<'IonFabList'> {}
|
export declare interface IonFabList extends StencilComponents<'IonFabList'> {}
|
||||||
@Component({ selector: 'ion-fab-list', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['activated', 'side'] })
|
@Component({ selector: 'ion-fab-list', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['activated', 'side'] })
|
||||||
export class IonFabList {
|
export class IonFabList {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -275,7 +249,7 @@ proxyInputs(IonFabList, ['activated', 'side']);
|
|||||||
export declare interface IonFooter extends StencilComponents<'IonFooter'> {}
|
export declare interface IonFooter extends StencilComponents<'IonFooter'> {}
|
||||||
@Component({ selector: 'ion-footer', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'translucent'] })
|
@Component({ selector: 'ion-footer', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'translucent'] })
|
||||||
export class IonFooter {
|
export class IonFooter {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -286,7 +260,7 @@ proxyInputs(IonFooter, ['mode', 'translucent']);
|
|||||||
export declare interface IonGrid extends StencilComponents<'IonGrid'> {}
|
export declare interface IonGrid extends StencilComponents<'IonGrid'> {}
|
||||||
@Component({ selector: 'ion-grid', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['fixed'] })
|
@Component({ selector: 'ion-grid', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['fixed'] })
|
||||||
export class IonGrid {
|
export class IonGrid {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -297,7 +271,7 @@ proxyInputs(IonGrid, ['fixed']);
|
|||||||
export declare interface IonHeader extends StencilComponents<'IonHeader'> {}
|
export declare interface IonHeader extends StencilComponents<'IonHeader'> {}
|
||||||
@Component({ selector: 'ion-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'translucent'] })
|
@Component({ selector: 'ion-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'translucent'] })
|
||||||
export class IonHeader {
|
export class IonHeader {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -308,7 +282,7 @@ proxyInputs(IonHeader, ['mode', 'translucent']);
|
|||||||
export declare interface IonIcon extends StencilComponents<'IonIcon'> {}
|
export declare interface IonIcon extends StencilComponents<'IonIcon'> {}
|
||||||
@Component({ selector: 'ion-icon', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['ariaLabel', 'color', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'size', 'src'] })
|
@Component({ selector: 'ion-icon', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['ariaLabel', 'color', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'size', 'src'] })
|
||||||
export class IonIcon {
|
export class IonIcon {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -320,7 +294,7 @@ export declare interface IonImg extends StencilComponents<'IonImg'> {}
|
|||||||
@Component({ selector: 'ion-img', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['alt', 'src'] })
|
@Component({ selector: 'ion-img', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['alt', 'src'] })
|
||||||
export class IonImg {
|
export class IonImg {
|
||||||
ionImgDidLoad!: EventEmitter<CustomEvent>;
|
ionImgDidLoad!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -333,7 +307,7 @@ export declare interface IonInfiniteScroll extends StencilComponents<'IonInfinit
|
|||||||
@Component({ selector: 'ion-infinite-scroll', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['threshold', 'disabled', 'position'] })
|
@Component({ selector: 'ion-infinite-scroll', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['threshold', 'disabled', 'position'] })
|
||||||
export class IonInfiniteScroll {
|
export class IonInfiniteScroll {
|
||||||
ionInfinite!: EventEmitter<CustomEvent>;
|
ionInfinite!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -346,7 +320,7 @@ proxyInputs(IonInfiniteScroll, ['threshold', 'disabled', 'position']);
|
|||||||
export declare interface IonInfiniteScrollContent extends StencilComponents<'IonInfiniteScrollContent'> {}
|
export declare interface IonInfiniteScrollContent extends StencilComponents<'IonInfiniteScrollContent'> {}
|
||||||
@Component({ selector: 'ion-infinite-scroll-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['loadingSpinner', 'loadingText'] })
|
@Component({ selector: 'ion-infinite-scroll-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['loadingSpinner', 'loadingText'] })
|
||||||
export class IonInfiniteScrollContent {
|
export class IonInfiniteScrollContent {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -361,7 +335,7 @@ export class IonInput {
|
|||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -374,7 +348,7 @@ proxyInputs(IonInput, ['color', 'mode', 'accept', 'autocapitalize', 'autocomplet
|
|||||||
export declare interface IonItem extends StencilComponents<'IonItem'> {}
|
export declare interface IonItem extends StencilComponents<'IonItem'> {}
|
||||||
@Component({ selector: 'ion-item', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'button', 'detail', 'detailIcon', 'disabled', 'href', 'lines', 'routerDirection', 'type'] })
|
@Component({ selector: 'ion-item', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'button', 'detail', 'detailIcon', 'disabled', 'href', 'lines', 'routerDirection', 'type'] })
|
||||||
export class IonItem {
|
export class IonItem {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -385,7 +359,7 @@ proxyInputs(IonItem, ['color', 'mode', 'button', 'detail', 'detailIcon', 'disabl
|
|||||||
export declare interface IonItemDivider extends StencilComponents<'IonItemDivider'> {}
|
export declare interface IonItemDivider extends StencilComponents<'IonItemDivider'> {}
|
||||||
@Component({ selector: 'ion-item-divider', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'sticky'] })
|
@Component({ selector: 'ion-item-divider', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'sticky'] })
|
||||||
export class IonItemDivider {
|
export class IonItemDivider {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -396,7 +370,7 @@ proxyInputs(IonItemDivider, ['color', 'mode', 'sticky']);
|
|||||||
export declare interface IonItemGroup extends StencilComponents<'IonItemGroup'> {}
|
export declare interface IonItemGroup extends StencilComponents<'IonItemGroup'> {}
|
||||||
@Component({ selector: 'ion-item-group', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-item-group', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonItemGroup {
|
export class IonItemGroup {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -406,7 +380,7 @@ export class IonItemGroup {
|
|||||||
export declare interface IonItemOption extends StencilComponents<'IonItemOption'> {}
|
export declare interface IonItemOption extends StencilComponents<'IonItemOption'> {}
|
||||||
@Component({ selector: 'ion-item-option', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'disabled', 'expandable', 'href'] })
|
@Component({ selector: 'ion-item-option', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'disabled', 'expandable', 'href'] })
|
||||||
export class IonItemOption {
|
export class IonItemOption {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -418,7 +392,7 @@ export declare interface IonItemOptions extends StencilComponents<'IonItemOption
|
|||||||
@Component({ selector: 'ion-item-options', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['side'] })
|
@Component({ selector: 'ion-item-options', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['side'] })
|
||||||
export class IonItemOptions {
|
export class IonItemOptions {
|
||||||
ionSwipe!: EventEmitter<CustomEvent>;
|
ionSwipe!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -431,7 +405,7 @@ export declare interface IonItemSliding extends StencilComponents<'IonItemSlidin
|
|||||||
@Component({ selector: 'ion-item-sliding', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled'] })
|
@Component({ selector: 'ion-item-sliding', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled'] })
|
||||||
export class IonItemSliding {
|
export class IonItemSliding {
|
||||||
ionDrag!: EventEmitter<CustomEvent>;
|
ionDrag!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -444,7 +418,7 @@ proxyInputs(IonItemSliding, ['disabled']);
|
|||||||
export declare interface IonLabel extends StencilComponents<'IonLabel'> {}
|
export declare interface IonLabel extends StencilComponents<'IonLabel'> {}
|
||||||
@Component({ selector: 'ion-label', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'position'] })
|
@Component({ selector: 'ion-label', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'position'] })
|
||||||
export class IonLabel {
|
export class IonLabel {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -455,7 +429,7 @@ proxyInputs(IonLabel, ['color', 'mode', 'position']);
|
|||||||
export declare interface IonList extends StencilComponents<'IonList'> {}
|
export declare interface IonList extends StencilComponents<'IonList'> {}
|
||||||
@Component({ selector: 'ion-list', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'lines', 'inset'] })
|
@Component({ selector: 'ion-list', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'lines', 'inset'] })
|
||||||
export class IonList {
|
export class IonList {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -467,7 +441,7 @@ proxyInputs(IonList, ['mode', 'lines', 'inset']);
|
|||||||
export declare interface IonListHeader extends StencilComponents<'IonListHeader'> {}
|
export declare interface IonListHeader extends StencilComponents<'IonListHeader'> {}
|
||||||
@Component({ selector: 'ion-list-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'color'] })
|
@Component({ selector: 'ion-list-header', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'color'] })
|
||||||
export class IonListHeader {
|
export class IonListHeader {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -482,7 +456,7 @@ export class IonMenu {
|
|||||||
ionWillClose!: EventEmitter<CustomEvent>;
|
ionWillClose!: EventEmitter<CustomEvent>;
|
||||||
ionDidOpen!: EventEmitter<CustomEvent>;
|
ionDidOpen!: EventEmitter<CustomEvent>;
|
||||||
ionDidClose!: EventEmitter<CustomEvent>;
|
ionDidClose!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -495,7 +469,7 @@ proxyInputs(IonMenu, ['contentId', 'menuId', 'type', 'disabled', 'side', 'swipeG
|
|||||||
export declare interface IonMenuButton extends StencilComponents<'IonMenuButton'> {}
|
export declare interface IonMenuButton extends StencilComponents<'IonMenuButton'> {}
|
||||||
@Component({ selector: 'ion-menu-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'menu', 'autoHide'] })
|
@Component({ selector: 'ion-menu-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode', 'menu', 'autoHide'] })
|
||||||
export class IonMenuButton {
|
export class IonMenuButton {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -506,7 +480,7 @@ proxyInputs(IonMenuButton, ['color', 'mode', 'menu', 'autoHide']);
|
|||||||
export declare interface IonMenuToggle extends StencilComponents<'IonMenuToggle'> {}
|
export declare interface IonMenuToggle extends StencilComponents<'IonMenuToggle'> {}
|
||||||
@Component({ selector: 'ion-menu-toggle', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['menu', 'autoHide'] })
|
@Component({ selector: 'ion-menu-toggle', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['menu', 'autoHide'] })
|
||||||
export class IonMenuToggle {
|
export class IonMenuToggle {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -520,7 +494,7 @@ export class IonNav {
|
|||||||
ionNavWillLoad!: EventEmitter<CustomEvent>;
|
ionNavWillLoad!: EventEmitter<CustomEvent>;
|
||||||
ionNavWillChange!: EventEmitter<CustomEvent>;
|
ionNavWillChange!: EventEmitter<CustomEvent>;
|
||||||
ionNavDidChange!: EventEmitter<CustomEvent>;
|
ionNavDidChange!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -533,7 +507,7 @@ proxyInputs(IonNav, ['swipeGesture', 'animated', 'animation', 'rootParams', 'roo
|
|||||||
export declare interface IonNavPop extends StencilComponents<'IonNavPop'> {}
|
export declare interface IonNavPop extends StencilComponents<'IonNavPop'> {}
|
||||||
@Component({ selector: 'ion-nav-pop', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-nav-pop', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonNavPop {
|
export class IonNavPop {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -543,7 +517,7 @@ export class IonNavPop {
|
|||||||
export declare interface IonNavPush extends StencilComponents<'IonNavPush'> {}
|
export declare interface IonNavPush extends StencilComponents<'IonNavPush'> {}
|
||||||
@Component({ selector: 'ion-nav-push', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['component', 'componentProps'] })
|
@Component({ selector: 'ion-nav-push', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['component', 'componentProps'] })
|
||||||
export class IonNavPush {
|
export class IonNavPush {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -554,7 +528,7 @@ proxyInputs(IonNavPush, ['component', 'componentProps']);
|
|||||||
export declare interface IonNavSetRoot extends StencilComponents<'IonNavSetRoot'> {}
|
export declare interface IonNavSetRoot extends StencilComponents<'IonNavSetRoot'> {}
|
||||||
@Component({ selector: 'ion-nav-set-root', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['component', 'componentProps'] })
|
@Component({ selector: 'ion-nav-set-root', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['component', 'componentProps'] })
|
||||||
export class IonNavSetRoot {
|
export class IonNavSetRoot {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -565,7 +539,7 @@ proxyInputs(IonNavSetRoot, ['component', 'componentProps']);
|
|||||||
export declare interface IonNote extends StencilComponents<'IonNote'> {}
|
export declare interface IonNote extends StencilComponents<'IonNote'> {}
|
||||||
@Component({ selector: 'ion-note', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-note', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonNote {
|
export class IonNote {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -576,7 +550,7 @@ proxyInputs(IonNote, ['color', 'mode']);
|
|||||||
export declare interface IonProgressBar extends StencilComponents<'IonProgressBar'> {}
|
export declare interface IonProgressBar extends StencilComponents<'IonProgressBar'> {}
|
||||||
@Component({ selector: 'ion-progress-bar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'type', 'reversed', 'value', 'buffer', 'color'] })
|
@Component({ selector: 'ion-progress-bar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'type', 'reversed', 'value', 'buffer', 'color'] })
|
||||||
export class IonProgressBar {
|
export class IonProgressBar {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -590,7 +564,7 @@ export class IonRadio {
|
|||||||
ionSelect!: EventEmitter<CustomEvent>;
|
ionSelect!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -603,7 +577,7 @@ export declare interface IonRadioGroup extends StencilComponents<'IonRadioGroup'
|
|||||||
@Component({ selector: 'ion-radio-group', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['allowEmptySelection', 'name', 'value'] })
|
@Component({ selector: 'ion-radio-group', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['allowEmptySelection', 'name', 'value'] })
|
||||||
export class IonRadioGroup {
|
export class IonRadioGroup {
|
||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -618,7 +592,7 @@ export class IonRange {
|
|||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -633,7 +607,7 @@ export class IonRefresher {
|
|||||||
ionRefresh!: EventEmitter<CustomEvent>;
|
ionRefresh!: EventEmitter<CustomEvent>;
|
||||||
ionPull!: EventEmitter<CustomEvent>;
|
ionPull!: EventEmitter<CustomEvent>;
|
||||||
ionStart!: EventEmitter<CustomEvent>;
|
ionStart!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -646,7 +620,7 @@ proxyInputs(IonRefresher, ['pullMin', 'pullMax', 'closeDuration', 'snapbackDurat
|
|||||||
export declare interface IonRefresherContent extends StencilComponents<'IonRefresherContent'> {}
|
export declare interface IonRefresherContent extends StencilComponents<'IonRefresherContent'> {}
|
||||||
@Component({ selector: 'ion-refresher-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText'] })
|
@Component({ selector: 'ion-refresher-content', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText'] })
|
||||||
export class IonRefresherContent {
|
export class IonRefresherContent {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -657,7 +631,7 @@ proxyInputs(IonRefresherContent, ['pullingIcon', 'pullingText', 'refreshingSpinn
|
|||||||
export declare interface IonReorder extends StencilComponents<'IonReorder'> {}
|
export declare interface IonReorder extends StencilComponents<'IonReorder'> {}
|
||||||
@Component({ selector: 'ion-reorder', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-reorder', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonReorder {
|
export class IonReorder {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -668,7 +642,7 @@ export declare interface IonReorderGroup extends StencilComponents<'IonReorderGr
|
|||||||
@Component({ selector: 'ion-reorder-group', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled'] })
|
@Component({ selector: 'ion-reorder-group', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled'] })
|
||||||
export class IonReorderGroup {
|
export class IonReorderGroup {
|
||||||
ionItemReorder!: EventEmitter<CustomEvent>;
|
ionItemReorder!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -681,7 +655,7 @@ proxyInputs(IonReorderGroup, ['disabled']);
|
|||||||
export declare interface IonRippleEffect extends StencilComponents<'IonRippleEffect'> {}
|
export declare interface IonRippleEffect extends StencilComponents<'IonRippleEffect'> {}
|
||||||
@Component({ selector: 'ion-ripple-effect', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['type'] })
|
@Component({ selector: 'ion-ripple-effect', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['type'] })
|
||||||
export class IonRippleEffect {
|
export class IonRippleEffect {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -693,7 +667,7 @@ proxyInputs(IonRippleEffect, ['type']);
|
|||||||
export declare interface IonRow extends StencilComponents<'IonRow'> {}
|
export declare interface IonRow extends StencilComponents<'IonRow'> {}
|
||||||
@Component({ selector: 'ion-row', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-row', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonRow {
|
export class IonRow {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -709,7 +683,7 @@ export class IonSearchbar {
|
|||||||
ionClear!: EventEmitter<CustomEvent>;
|
ionClear!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -724,7 +698,7 @@ export declare interface IonSegment extends StencilComponents<'IonSegment'> {}
|
|||||||
export class IonSegment {
|
export class IonSegment {
|
||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionStyle!: EventEmitter<CustomEvent>;
|
ionStyle!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -737,7 +711,7 @@ export declare interface IonSegmentButton extends StencilComponents<'IonSegmentB
|
|||||||
@Component({ selector: 'ion-segment-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'checked', 'disabled', 'layout', 'value'] })
|
@Component({ selector: 'ion-segment-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'checked', 'disabled', 'layout', 'value'] })
|
||||||
export class IonSegmentButton {
|
export class IonSegmentButton {
|
||||||
ionSelect!: EventEmitter<CustomEvent>;
|
ionSelect!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -753,7 +727,7 @@ export class IonSelect {
|
|||||||
ionCancel!: EventEmitter<CustomEvent>;
|
ionCancel!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -766,7 +740,7 @@ proxyInputs(IonSelect, ['mode', 'disabled', 'cancelText', 'okText', 'placeholder
|
|||||||
export declare interface IonSelectOption extends StencilComponents<'IonSelectOption'> {}
|
export declare interface IonSelectOption extends StencilComponents<'IonSelectOption'> {}
|
||||||
@Component({ selector: 'ion-select-option', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled', 'selected', 'value'] })
|
@Component({ selector: 'ion-select-option', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['disabled', 'selected', 'value'] })
|
||||||
export class IonSelectOption {
|
export class IonSelectOption {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -777,7 +751,7 @@ proxyInputs(IonSelectOption, ['disabled', 'selected', 'value']);
|
|||||||
export declare interface IonSkeletonText extends StencilComponents<'IonSkeletonText'> {}
|
export declare interface IonSkeletonText extends StencilComponents<'IonSkeletonText'> {}
|
||||||
@Component({ selector: 'ion-skeleton-text', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['width'] })
|
@Component({ selector: 'ion-skeleton-text', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['width'] })
|
||||||
export class IonSkeletonText {
|
export class IonSkeletonText {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -788,7 +762,7 @@ proxyInputs(IonSkeletonText, ['width']);
|
|||||||
export declare interface IonSlide extends StencilComponents<'IonSlide'> {}
|
export declare interface IonSlide extends StencilComponents<'IonSlide'> {}
|
||||||
@Component({ selector: 'ion-slide', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-slide', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonSlide {
|
export class IonSlide {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -814,7 +788,7 @@ export class IonSlides {
|
|||||||
ionSlideReachEnd!: EventEmitter<CustomEvent>;
|
ionSlideReachEnd!: EventEmitter<CustomEvent>;
|
||||||
ionSlideTouchStart!: EventEmitter<CustomEvent>;
|
ionSlideTouchStart!: EventEmitter<CustomEvent>;
|
||||||
ionSlideTouchEnd!: EventEmitter<CustomEvent>;
|
ionSlideTouchEnd!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -827,7 +801,7 @@ proxyInputs(IonSlides, ['mode', 'options', 'pager', 'scrollbar']);
|
|||||||
export declare interface IonSpinner extends StencilComponents<'IonSpinner'> {}
|
export declare interface IonSpinner extends StencilComponents<'IonSpinner'> {}
|
||||||
@Component({ selector: 'ion-spinner', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'duration', 'name', 'paused'] })
|
@Component({ selector: 'ion-spinner', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'duration', 'name', 'paused'] })
|
||||||
export class IonSpinner {
|
export class IonSpinner {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -840,7 +814,7 @@ export declare interface IonSplitPane extends StencilComponents<'IonSplitPane'>
|
|||||||
export class IonSplitPane {
|
export class IonSplitPane {
|
||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionSplitPaneVisible!: EventEmitter<CustomEvent>;
|
ionSplitPaneVisible!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -852,7 +826,7 @@ proxyInputs(IonSplitPane, ['contentId', 'disabled', 'when']);
|
|||||||
export declare interface IonTabBar extends StencilComponents<'IonTabBar'> {}
|
export declare interface IonTabBar extends StencilComponents<'IonTabBar'> {}
|
||||||
@Component({ selector: 'ion-tab-bar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'color', 'selectedTab', 'translucent'] })
|
@Component({ selector: 'ion-tab-bar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['mode', 'color', 'selectedTab', 'translucent'] })
|
||||||
export class IonTabBar {
|
export class IonTabBar {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -863,7 +837,7 @@ proxyInputs(IonTabBar, ['mode', 'color', 'selectedTab', 'translucent']);
|
|||||||
export declare interface IonTabButton extends StencilComponents<'IonTabButton'> {}
|
export declare interface IonTabButton extends StencilComponents<'IonTabButton'> {}
|
||||||
@Component({ selector: 'ion-tab-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['selected', 'mode', 'layout', 'href', 'tab', 'disabled'] })
|
@Component({ selector: 'ion-tab-button', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['selected', 'mode', 'layout', 'href', 'tab', 'disabled'] })
|
||||||
export class IonTabButton {
|
export class IonTabButton {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -874,7 +848,7 @@ proxyInputs(IonTabButton, ['selected', 'mode', 'layout', 'href', 'tab', 'disable
|
|||||||
export declare interface IonText extends StencilComponents<'IonText'> {}
|
export declare interface IonText extends StencilComponents<'IonText'> {}
|
||||||
@Component({ selector: 'ion-text', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-text', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonText {
|
export class IonText {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -889,7 +863,7 @@ export class IonTextarea {
|
|||||||
ionInput!: EventEmitter<CustomEvent>;
|
ionInput!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -902,7 +876,7 @@ proxyInputs(IonTextarea, ['mode', 'color', 'autocapitalize', 'autofocus', 'clear
|
|||||||
export declare interface IonThumbnail extends StencilComponents<'IonThumbnail'> {}
|
export declare interface IonThumbnail extends StencilComponents<'IonThumbnail'> {}
|
||||||
@Component({ selector: 'ion-thumbnail', changeDetection: 0, template: '<ng-content></ng-content>' })
|
@Component({ selector: 'ion-thumbnail', changeDetection: 0, template: '<ng-content></ng-content>' })
|
||||||
export class IonThumbnail {
|
export class IonThumbnail {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -912,7 +886,7 @@ export class IonThumbnail {
|
|||||||
export declare interface IonTitle extends StencilComponents<'IonTitle'> {}
|
export declare interface IonTitle extends StencilComponents<'IonTitle'> {}
|
||||||
@Component({ selector: 'ion-title', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color'] })
|
@Component({ selector: 'ion-title', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color'] })
|
||||||
export class IonTitle {
|
export class IonTitle {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -926,7 +900,7 @@ export class IonToggle {
|
|||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
ionFocus!: EventEmitter<CustomEvent>;
|
ionFocus!: EventEmitter<CustomEvent>;
|
||||||
ionBlur!: EventEmitter<CustomEvent>;
|
ionBlur!: EventEmitter<CustomEvent>;
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
@ -938,7 +912,7 @@ proxyInputs(IonToggle, ['mode', 'color', 'name', 'checked', 'disabled', 'value']
|
|||||||
export declare interface IonToolbar extends StencilComponents<'IonToolbar'> {}
|
export declare interface IonToolbar extends StencilComponents<'IonToolbar'> {}
|
||||||
@Component({ selector: 'ion-toolbar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
@Component({ selector: 'ion-toolbar', changeDetection: 0, template: '<ng-content></ng-content>', inputs: ['color', 'mode'] })
|
||||||
export class IonToolbar {
|
export class IonToolbar {
|
||||||
el: HTMLElement
|
el: HTMLElement;
|
||||||
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
constructor(c: ChangeDetectorRef, r: ElementRef) {
|
||||||
c.detach();
|
c.detach();
|
||||||
this.el = r.nativeElement;
|
this.el = r.nativeElement;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EmbeddedViewRef, Input, IterableDiffer, IterableDiffers, NgZone, SimpleChanges, TrackByFunction } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EmbeddedViewRef, IterableDiffer, IterableDiffers, NgZone, SimpleChanges, TrackByFunction } from '@angular/core';
|
||||||
import { Cell, CellType, HeaderFn, ItemHeightFn } from '@ionic/core';
|
import { Cell, CellType, HeaderFn, ItemHeightFn } from '@ionic/core';
|
||||||
|
|
||||||
import { proxyInputs, proxyMethods } from '../proxies';
|
import { proxyInputs, proxyMethods } from '../proxies-utils';
|
||||||
|
|
||||||
import { VirtualFooter } from './virtual-footer';
|
import { VirtualFooter } from './virtual-footer';
|
||||||
import { VirtualHeader } from './virtual-header';
|
import { VirtualHeader } from './virtual-header';
|
||||||
@ -9,6 +9,85 @@ import { VirtualItem } from './virtual-item';
|
|||||||
import { VirtualContext } from './virtual-utils';
|
import { VirtualContext } from './virtual-utils';
|
||||||
|
|
||||||
export declare interface IonVirtualScroll {
|
export declare interface IonVirtualScroll {
|
||||||
|
/**
|
||||||
|
* It is important to provide this
|
||||||
|
* if virtual item height will be significantly larger than the default
|
||||||
|
* The approximate height of each virtual item template's cell.
|
||||||
|
* This dimension is used to help determine how many cells should
|
||||||
|
* be created when initialized, and to help calculate the height of
|
||||||
|
* the scrollable area. This height value can only use `px` units.
|
||||||
|
* Note that the actual rendered size of each cell comes from the
|
||||||
|
* app's CSS, whereas this approximation is used to help calculate
|
||||||
|
* initial dimensions before the item has been rendered.
|
||||||
|
*/
|
||||||
|
approxItemHeight: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The approximate height of each header template's cell.
|
||||||
|
* This dimension is used to help determine how many cells should
|
||||||
|
* be created when initialized, and to help calculate the height of
|
||||||
|
* the scrollable area. This height value can only use `px` units.
|
||||||
|
* Note that the actual rendered size of each cell comes from the
|
||||||
|
* app's CSS, whereas this approximation is used to help calculate
|
||||||
|
* initial dimensions before the item has been rendered.
|
||||||
|
*/
|
||||||
|
approxHeaderHeight: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The approximate width of each footer template's cell.
|
||||||
|
* This dimension is used to help determine how many cells should
|
||||||
|
* be created when initialized, and to help calculate the height of
|
||||||
|
* the scrollable area. This height value can only use `px` units.
|
||||||
|
* Note that the actual rendered size of each cell comes from the
|
||||||
|
* app's CSS, whereas this approximation is used to help calculate
|
||||||
|
* initial dimensions before the item has been rendered.
|
||||||
|
*/
|
||||||
|
approxFooterHeight: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Section headers and the data used within its given
|
||||||
|
* template can be dynamically created by passing a function to `headerFn`.
|
||||||
|
* For example, a large list of contacts usually has dividers between each
|
||||||
|
* letter in the alphabet. App's can provide their own custom `headerFn`
|
||||||
|
* which is called with each record within the dataset. The logic within
|
||||||
|
* the header function can decide if the header template should be used,
|
||||||
|
* and what data to give to the header template. The function must return
|
||||||
|
* `null` if a header cell shouldn't be created.
|
||||||
|
*/
|
||||||
|
headerFn?: HeaderFn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Section footers and the data used within its given
|
||||||
|
* template can be dynamically created by passing a function to `footerFn`.
|
||||||
|
* The logic within the footer function can decide if the footer template
|
||||||
|
* should be used, and what data to give to the footer template. The function
|
||||||
|
* must return `null` if a footer cell shouldn't be created.
|
||||||
|
*/
|
||||||
|
footerFn?: HeaderFn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The data that builds the templates within the virtual scroll.
|
||||||
|
* It's important to note that when this data has changed, then the
|
||||||
|
* entire virtual scroll is reset, which is an expensive operation and
|
||||||
|
* should be avoided if possible.
|
||||||
|
*/
|
||||||
|
items?: any[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An optional function that maps each item within their height.
|
||||||
|
* When this function is provides, heavy optimizations and fast path can be taked by
|
||||||
|
* `ion-virtual-scroll` leading to massive performance improvements.
|
||||||
|
*
|
||||||
|
* This function allows to skip all DOM reads, which can be Doing so leads
|
||||||
|
* to massive performance
|
||||||
|
*/
|
||||||
|
itemHeight?: ItemHeightFn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as `ngForTrackBy` which can be used on `ngFor`.
|
||||||
|
*/
|
||||||
|
trackBy: TrackByFunction<any>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method marks the tail the items array as dirty, so they can be re-rendered. It's equivalent to calling: ```js * virtualScroll.checkRange(lastItemLen, items.length - lastItemLen); * ```
|
* This method marks the tail the items array as dirty, so they can be re-rendered. It's equivalent to calling: ```js * virtualScroll.checkRange(lastItemLen, items.length - lastItemLen); * ```
|
||||||
*/
|
*/
|
||||||
@ -27,6 +106,16 @@ export declare interface IonVirtualScroll {
|
|||||||
selector: 'ion-virtual-scroll',
|
selector: 'ion-virtual-scroll',
|
||||||
template: '<ng-content></ng-content>',
|
template: '<ng-content></ng-content>',
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
inputs: [
|
||||||
|
'approxItemHeight',
|
||||||
|
'approxHeaderHeight',
|
||||||
|
'approxFooterHeight',
|
||||||
|
'headerFn',
|
||||||
|
'footerFn',
|
||||||
|
'items',
|
||||||
|
'itemHeight',
|
||||||
|
'trackBy'
|
||||||
|
]
|
||||||
})
|
})
|
||||||
export class IonVirtualScroll {
|
export class IonVirtualScroll {
|
||||||
|
|
||||||
@ -38,85 +127,6 @@ export class IonVirtualScroll {
|
|||||||
@ContentChild(VirtualHeader) hdrTmp!: VirtualHeader;
|
@ContentChild(VirtualHeader) hdrTmp!: VirtualHeader;
|
||||||
@ContentChild(VirtualFooter) ftrTmp!: VirtualFooter;
|
@ContentChild(VirtualFooter) ftrTmp!: VirtualFooter;
|
||||||
|
|
||||||
/**
|
|
||||||
* It is important to provide this
|
|
||||||
* if virtual item height will be significantly larger than the default
|
|
||||||
* The approximate height of each virtual item template's cell.
|
|
||||||
* This dimension is used to help determine how many cells should
|
|
||||||
* be created when initialized, and to help calculate the height of
|
|
||||||
* the scrollable area. This height value can only use `px` units.
|
|
||||||
* Note that the actual rendered size of each cell comes from the
|
|
||||||
* app's CSS, whereas this approximation is used to help calculate
|
|
||||||
* initial dimensions before the item has been rendered.
|
|
||||||
*/
|
|
||||||
@Input() approxItemHeight: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The approximate height of each header template's cell.
|
|
||||||
* This dimension is used to help determine how many cells should
|
|
||||||
* be created when initialized, and to help calculate the height of
|
|
||||||
* the scrollable area. This height value can only use `px` units.
|
|
||||||
* Note that the actual rendered size of each cell comes from the
|
|
||||||
* app's CSS, whereas this approximation is used to help calculate
|
|
||||||
* initial dimensions before the item has been rendered.
|
|
||||||
*/
|
|
||||||
@Input() approxHeaderHeight: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The approximate width of each footer template's cell.
|
|
||||||
* This dimension is used to help determine how many cells should
|
|
||||||
* be created when initialized, and to help calculate the height of
|
|
||||||
* the scrollable area. This height value can only use `px` units.
|
|
||||||
* Note that the actual rendered size of each cell comes from the
|
|
||||||
* app's CSS, whereas this approximation is used to help calculate
|
|
||||||
* initial dimensions before the item has been rendered.
|
|
||||||
*/
|
|
||||||
@Input() approxFooterHeight: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Section headers and the data used within its given
|
|
||||||
* template can be dynamically created by passing a function to `headerFn`.
|
|
||||||
* For example, a large list of contacts usually has dividers between each
|
|
||||||
* letter in the alphabet. App's can provide their own custom `headerFn`
|
|
||||||
* which is called with each record within the dataset. The logic within
|
|
||||||
* the header function can decide if the header template should be used,
|
|
||||||
* and what data to give to the header template. The function must return
|
|
||||||
* `null` if a header cell shouldn't be created.
|
|
||||||
*/
|
|
||||||
@Input() headerFn?: HeaderFn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Section footers and the data used within its given
|
|
||||||
* template can be dynamically created by passing a function to `footerFn`.
|
|
||||||
* The logic within the footer function can decide if the footer template
|
|
||||||
* should be used, and what data to give to the footer template. The function
|
|
||||||
* must return `null` if a footer cell shouldn't be created.
|
|
||||||
*/
|
|
||||||
@Input() footerFn?: HeaderFn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The data that builds the templates within the virtual scroll.
|
|
||||||
* It's important to note that when this data has changed, then the
|
|
||||||
* entire virtual scroll is reset, which is an expensive operation and
|
|
||||||
* should be avoided if possible.
|
|
||||||
*/
|
|
||||||
@Input() items?: any[];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An optional function that maps each item within their height.
|
|
||||||
* When this function is provides, heavy optimizations and fast path can be taked by
|
|
||||||
* `ion-virtual-scroll` leading to massive performance improvements.
|
|
||||||
*
|
|
||||||
* This function allows to skip all DOM reads, which can be Doing so leads
|
|
||||||
* to massive performance
|
|
||||||
*/
|
|
||||||
@Input() itemHeight?: ItemHeightFn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Same as `ngForTrackBy` which can be used on `ngFor`.
|
|
||||||
*/
|
|
||||||
@Input() trackBy: TrackByFunction<any>;
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private zone: NgZone,
|
private zone: NgZone,
|
||||||
private iterableDiffers: IterableDiffers,
|
private iterableDiffers: IterableDiffers,
|
||||||
|
@ -1,17 +1,11 @@
|
|||||||
// export module
|
|
||||||
export { IonicModule } from './ionic-module';
|
|
||||||
|
|
||||||
// export auto generated directive
|
|
||||||
export * from './directives/proxies';
|
|
||||||
|
|
||||||
// export custom directives
|
// export custom directives
|
||||||
export * from './directives';
|
export * from './directives';
|
||||||
|
|
||||||
// export custom providers
|
// export custom providers
|
||||||
export * from './providers';
|
export * from './providers';
|
||||||
|
|
||||||
// ionic types
|
|
||||||
export * from './types/interfaces';
|
|
||||||
|
|
||||||
// ionic route reuse strategy
|
// ionic route reuse strategy
|
||||||
export * from './util/ionic-router-reuse-strategy';
|
export * from './util/ionic-router-reuse-strategy';
|
||||||
|
|
||||||
|
// export module
|
||||||
|
export { IonicModule } from './ionic-module';
|
||||||
|
@ -3,8 +3,7 @@ import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';
|
|||||||
import { IonicConfig } from '@ionic/core';
|
import { IonicConfig } from '@ionic/core';
|
||||||
|
|
||||||
import { appInitialize } from './app-initialize';
|
import { appInitialize } from './app-initialize';
|
||||||
import * as c from './directives';
|
import * as d from './directives';
|
||||||
import * as d from './directives/proxies';
|
|
||||||
import * as p from './providers';
|
import * as p from './providers';
|
||||||
import { ConfigToken } from './providers/config';
|
import { ConfigToken } from './providers/config';
|
||||||
|
|
||||||
@ -84,40 +83,26 @@ const DECLARATIONS = [
|
|||||||
d.IonToolbar,
|
d.IonToolbar,
|
||||||
d.IonTitle,
|
d.IonTitle,
|
||||||
|
|
||||||
c.IonTabs,
|
d.IonTabs,
|
||||||
|
|
||||||
// ngModel accessors
|
// ngModel accessors
|
||||||
c.BooleanValueAccessor,
|
d.BooleanValueAccessor,
|
||||||
c.NumericValueAccessor,
|
d.NumericValueAccessor,
|
||||||
c.RadioValueAccessor,
|
d.RadioValueAccessor,
|
||||||
c.SelectValueAccessor,
|
d.SelectValueAccessor,
|
||||||
c.TextValueAccessor,
|
d.TextValueAccessor,
|
||||||
|
|
||||||
// navigation
|
// navigation
|
||||||
c.IonRouterOutlet,
|
d.IonRouterOutlet,
|
||||||
c.IonBackButtonDelegate,
|
d.IonBackButtonDelegate,
|
||||||
c.NavDelegate,
|
d.NavDelegate,
|
||||||
c.RouterLinkDelegate,
|
d.RouterLinkDelegate,
|
||||||
|
|
||||||
// virtual scroll
|
// virtual scroll
|
||||||
c.VirtualFooter,
|
d.VirtualFooter,
|
||||||
c.VirtualHeader,
|
d.VirtualHeader,
|
||||||
c.VirtualItem,
|
d.VirtualItem,
|
||||||
c.IonVirtualScroll
|
d.IonVirtualScroll
|
||||||
];
|
|
||||||
|
|
||||||
const PROVIDERS = [
|
|
||||||
p.ActionSheetController,
|
|
||||||
p.AlertController,
|
|
||||||
p.Config,
|
|
||||||
p.LoadingController,
|
|
||||||
p.PickerController,
|
|
||||||
p.ToastController,
|
|
||||||
p.MenuController,
|
|
||||||
p.NavController,
|
|
||||||
p.Platform,
|
|
||||||
p.Events,
|
|
||||||
p.DomController
|
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@ -142,8 +127,7 @@ export class IonicModule {
|
|||||||
deps: [
|
deps: [
|
||||||
ConfigToken
|
ConfigToken
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
...PROVIDERS
|
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,9 @@ import { ActionSheetOptions } from '@ionic/core';
|
|||||||
|
|
||||||
import { OverlayBaseController } from '../util/overlay';
|
import { OverlayBaseController } from '../util/overlay';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class ActionSheetController extends OverlayBaseController<ActionSheetOptions, HTMLIonActionSheetElement> {
|
export class ActionSheetController extends OverlayBaseController<ActionSheetOptions, HTMLIonActionSheetElement> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ion-action-sheet-controller');
|
super('ion-action-sheet-controller');
|
||||||
|
@ -3,7 +3,9 @@ import { AlertOptions } from '@ionic/core';
|
|||||||
|
|
||||||
import { OverlayBaseController } from '../util/overlay';
|
import { OverlayBaseController } from '../util/overlay';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class AlertController extends OverlayBaseController<AlertOptions, HTMLIonAlertElement> {
|
export class AlertController extends OverlayBaseController<AlertOptions, HTMLIonAlertElement> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ion-alert-controller');
|
super('ion-alert-controller');
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
import { InjectionToken } from '@angular/core';
|
import { Injectable, InjectionToken } from '@angular/core';
|
||||||
import { Config as CoreConfig, IonicConfig } from '@ionic/core';
|
import { Config as CoreConfig, IonicConfig } from '@ionic/core';
|
||||||
|
|
||||||
import { IonicWindow } from '../types/interfaces';
|
import { IonicWindow } from '../types/interfaces';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
export class Config {
|
export class Config {
|
||||||
|
|
||||||
get(key: keyof IonicConfig, fallback?: any): any {
|
get(key: keyof IonicConfig, fallback?: any): any {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class DomController {
|
export class DomController {
|
||||||
|
|
||||||
read(cb: RafCallback) {
|
read(cb: RafCallback) {
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
export type EventHandler = (...args: any[]) => any;
|
export type EventHandler = (...args: any[]) => any;
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class Events {
|
export class Events {
|
||||||
private c = new Map<string, EventHandler[]>();
|
private c = new Map<string, EventHandler[]>();
|
||||||
|
|
||||||
@ -72,21 +74,3 @@ export class Events {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setupEvents() {
|
|
||||||
const events = new Events();
|
|
||||||
|
|
||||||
window.addEventListener('online', ev => events.publish('app:online', ev));
|
|
||||||
|
|
||||||
window.addEventListener('offline', ev => events.publish('app:offline', ev));
|
|
||||||
|
|
||||||
window.addEventListener('orientationchange', ev => events.publish('app:rotated', ev));
|
|
||||||
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function setupProvideEvents() {
|
|
||||||
return () => {
|
|
||||||
return setupEvents();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -11,4 +11,4 @@ export { PopoverController } from './popover-controller';
|
|||||||
export { ToastController } from './toast-controller';
|
export { ToastController } from './toast-controller';
|
||||||
export { NavController } from './nav-controller';
|
export { NavController } from './nav-controller';
|
||||||
export { DomController } from './dom-controller';
|
export { DomController } from './dom-controller';
|
||||||
export { Config, ConfigToken } from './config';
|
export { Config } from './config';
|
||||||
|
@ -3,7 +3,9 @@ import { LoadingOptions } from '@ionic/core';
|
|||||||
|
|
||||||
import { OverlayBaseController } from '../util/overlay';
|
import { OverlayBaseController } from '../util/overlay';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class LoadingController extends OverlayBaseController<LoadingOptions, HTMLIonLoadingElement> {
|
export class LoadingController extends OverlayBaseController<LoadingOptions, HTMLIonLoadingElement> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ion-loading-controller');
|
super('ion-loading-controller');
|
||||||
|
@ -3,7 +3,9 @@ import { Injectable } from '@angular/core';
|
|||||||
import { proxyMethod } from '../util/util';
|
import { proxyMethod } from '../util/util';
|
||||||
|
|
||||||
const CTRL = 'ion-menu-controller';
|
const CTRL = 'ion-menu-controller';
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class MenuController {
|
export class MenuController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,7 +12,9 @@ export interface AnimationOptions {
|
|||||||
|
|
||||||
export interface NavigationOptions extends NavigationExtras, AnimationOptions {}
|
export interface NavigationOptions extends NavigationExtras, AnimationOptions {}
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class NavController {
|
export class NavController {
|
||||||
|
|
||||||
private direction: 'forward' | 'back' | 'root' | 'auto' = DEFAULT_DIRECTION;
|
private direction: 'forward' | 'back' | 'root' | 'auto' = DEFAULT_DIRECTION;
|
||||||
|
@ -3,7 +3,9 @@ import { PickerOptions } from '@ionic/core';
|
|||||||
|
|
||||||
import { OverlayBaseController } from '../util/overlay';
|
import { OverlayBaseController } from '../util/overlay';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class PickerController extends OverlayBaseController<PickerOptions, HTMLIonPickerElement> {
|
export class PickerController extends OverlayBaseController<PickerOptions, HTMLIonPickerElement> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ion-picker-controller');
|
super('ion-picker-controller');
|
||||||
|
@ -6,7 +6,9 @@ export interface BackButtonEmitter extends Subject<BackButtonEventDetail> {
|
|||||||
subscribeWithPriority(priority: number, callback: () => Promise<any> | void): Subscription;
|
subscribeWithPriority(priority: number, callback: () => Promise<any> | void): Subscription;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class Platform {
|
export class Platform {
|
||||||
|
|
||||||
private _readyPromise: Promise<string>;
|
private _readyPromise: Promise<string>;
|
||||||
|
@ -3,7 +3,9 @@ import { ToastOptions } from '@ionic/core';
|
|||||||
|
|
||||||
import { OverlayBaseController } from '../util/overlay';
|
import { OverlayBaseController } from '../util/overlay';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
export class ToastController extends OverlayBaseController<ToastOptions, HTMLIonToastElement> {
|
export class ToastController extends OverlayBaseController<ToastOptions, HTMLIonToastElement> {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ion-toast-controller');
|
super('ion-toast-controller');
|
||||||
|
@ -16,11 +16,15 @@
|
|||||||
"pwa"
|
"pwa"
|
||||||
],
|
],
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"module": "dist/esm/es5/index.js",
|
"unpkg": "dist/ionic.js",
|
||||||
|
"module": "dist/esm/index.js",
|
||||||
|
"es2015": "dist/esm/es2017/index.js",
|
||||||
|
"es2017": "dist/esm/es2017/index.js",
|
||||||
|
"jsnext:main": "dist/esm/es2017/index.js",
|
||||||
|
"sideEffects": false,
|
||||||
"types": "dist/types/interface.d.ts",
|
"types": "dist/types/interface.d.ts",
|
||||||
"collection": "dist/collection/collection-manifest.json",
|
"collection": "dist/collection/collection-manifest.json",
|
||||||
"webComponents": "dist/web-components.json",
|
"webComponents": "dist/web-components.json",
|
||||||
"unpkg": "dist/ionic.js",
|
|
||||||
"files": [
|
"files": [
|
||||||
"dist/",
|
"dist/",
|
||||||
"css/",
|
"css/",
|
||||||
@ -30,7 +34,7 @@
|
|||||||
"ionicons": "4.5.1"
|
"ionicons": "4.5.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@stencil/core": "0.16.2-2",
|
"@stencil/core": "0.16.2",
|
||||||
"@stencil/sass": "0.1.1",
|
"@stencil/sass": "0.1.1",
|
||||||
"@stencil/utils": "latest",
|
"@stencil/utils": "latest",
|
||||||
"@types/jest": "^23.3.1",
|
"@types/jest": "^23.3.1",
|
||||||
|
@ -27,16 +27,16 @@ export function startHardwareBackButton(win: Window) {
|
|||||||
|
|
||||||
if (handlers.length > 0) {
|
if (handlers.length > 0) {
|
||||||
let selectedPriority = Number.MIN_SAFE_INTEGER;
|
let selectedPriority = Number.MIN_SAFE_INTEGER;
|
||||||
let handler: Handler | undefined;
|
let selectedHandler: Handler | undefined;
|
||||||
handlers.forEach(h => {
|
handlers.forEach(({ priority, handler }) => {
|
||||||
if (h.priority >= selectedPriority) {
|
if (priority >= selectedPriority) {
|
||||||
selectedPriority = h.priority;
|
selectedPriority = priority;
|
||||||
handler = h.handler;
|
selectedHandler = handler;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
busy = true;
|
busy = true;
|
||||||
executeAction(handler).then(() => busy = false);
|
executeAction(selectedHandler).then(() => busy = false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ export const config: Config = {
|
|||||||
useDirectives: false,
|
useDirectives: false,
|
||||||
componentCorePackage: '@ionic/core',
|
componentCorePackage: '@ionic/core',
|
||||||
directivesProxyFile: '../angular/src/directives/proxies.ts',
|
directivesProxyFile: '../angular/src/directives/proxies.ts',
|
||||||
|
directivesUtilsFile: '../angular/src/directives/proxies-utils.ts',
|
||||||
directivesArrayFile: '../angular/src/directives/proxies-list.txt',
|
directivesArrayFile: '../angular/src/directives/proxies-list.txt',
|
||||||
excludeComponents: [
|
excludeComponents: [
|
||||||
// overlays
|
// overlays
|
||||||
|
Reference in New Issue
Block a user