perf(angular): bundle size improvements for angular (#16966)

This commit is contained in:
Manu MA
2019-01-07 22:05:36 +01:00
committed by GitHub
parent 45db44abe7
commit 44fb45e2bc
30 changed files with 322 additions and 328 deletions

View File

@@ -3,7 +3,9 @@ import { ActionSheetOptions } from '@ionic/core';
import { OverlayBaseController } from '../util/overlay';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class ActionSheetController extends OverlayBaseController<ActionSheetOptions, HTMLIonActionSheetElement> {
constructor() {
super('ion-action-sheet-controller');

View File

@@ -3,7 +3,9 @@ import { AlertOptions } from '@ionic/core';
import { OverlayBaseController } from '../util/overlay';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class AlertController extends OverlayBaseController<AlertOptions, HTMLIonAlertElement> {
constructor() {
super('ion-alert-controller');

View File

@@ -1,8 +1,11 @@
import { InjectionToken } from '@angular/core';
import { Injectable, InjectionToken } from '@angular/core';
import { Config as CoreConfig, IonicConfig } from '@ionic/core';
import { IonicWindow } from '../types/interfaces';
@Injectable({
providedIn: 'root'
})
export class Config {
get(key: keyof IonicConfig, fallback?: any): any {

View File

@@ -1,6 +1,8 @@
import { Injectable } from '@angular/core';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class DomController {
read(cb: RafCallback) {

View File

@@ -1,7 +1,9 @@
import { Injectable } from '@angular/core';
export type EventHandler = (...args: any[]) => any;
@Injectable()
@Injectable({
providedIn: 'root',
})
export class Events {
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();
};
}

View File

@@ -11,4 +11,4 @@ export { PopoverController } from './popover-controller';
export { ToastController } from './toast-controller';
export { NavController } from './nav-controller';
export { DomController } from './dom-controller';
export { Config, ConfigToken } from './config';
export { Config } from './config';

View File

@@ -3,7 +3,9 @@ import { LoadingOptions } from '@ionic/core';
import { OverlayBaseController } from '../util/overlay';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class LoadingController extends OverlayBaseController<LoadingOptions, HTMLIonLoadingElement> {
constructor() {
super('ion-loading-controller');

View File

@@ -3,7 +3,9 @@ import { Injectable } from '@angular/core';
import { proxyMethod } from '../util/util';
const CTRL = 'ion-menu-controller';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class MenuController {
/**

View File

@@ -12,7 +12,9 @@ export interface AnimationOptions {
export interface NavigationOptions extends NavigationExtras, AnimationOptions {}
@Injectable()
@Injectable({
providedIn: 'root',
})
export class NavController {
private direction: 'forward' | 'back' | 'root' | 'auto' = DEFAULT_DIRECTION;

View File

@@ -3,7 +3,9 @@ import { PickerOptions } from '@ionic/core';
import { OverlayBaseController } from '../util/overlay';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class PickerController extends OverlayBaseController<PickerOptions, HTMLIonPickerElement> {
constructor() {
super('ion-picker-controller');

View File

@@ -6,7 +6,9 @@ export interface BackButtonEmitter extends Subject<BackButtonEventDetail> {
subscribeWithPriority(priority: number, callback: () => Promise<any> | void): Subscription;
}
@Injectable()
@Injectable({
providedIn: 'root',
})
export class Platform {
private _readyPromise: Promise<string>;

View File

@@ -3,7 +3,9 @@ import { ToastOptions } from '@ionic/core';
import { OverlayBaseController } from '../util/overlay';
@Injectable()
@Injectable({
providedIn: 'root',
})
export class ToastController extends OverlayBaseController<ToastOptions, HTMLIonToastElement> {
constructor() {
super('ion-toast-controller');