chore(cleanup): remove unused code

This commit is contained in:
Adam Bradley
2018-03-06 19:56:53 -06:00
parent 7b264f983b
commit a1f942d45e
18 changed files with 6 additions and 1320 deletions

View File

@ -1,84 +0,0 @@
import {
ApplicationRef,
ComponentFactoryResolver,
Injectable,
Injector,
NgZone,
Type
} from '@angular/core';
import { getProviders } from '../di/di';
import { AngularMountingData } from '../types/interfaces';
const elementToComponentRefMap = new Map<HTMLElement, AngularMountingData>();
@Injectable()
export class AngularComponentMounter {
constructor(private defaultCfr: ComponentFactoryResolver, private zone: NgZone, private appRef: ApplicationRef) {
}
attachViewToDom(parentElement: HTMLElement, hostElement: HTMLElement, componentToMount: Type<any>, componentResolveFactory: ComponentFactoryResolver, injector: Injector, data: any, classesToAdd: string[]): Promise<AngularMountingData> {
return new Promise((resolve) => {
this.zone.run(() => {
const crf = componentResolveFactory ? componentResolveFactory : this.defaultCfr;
const mountingData = this.attachViewToDomImpl(crf, parentElement, hostElement, componentToMount, injector, this.appRef, data, classesToAdd);
resolve(mountingData);
});
});
}
removeViewFromDom(parentElement: HTMLElement, childElement: HTMLElement): Promise<any> {
return new Promise((resolve) => {
this.zone.run(() => {
removeViewFromDom(parentElement, childElement);
resolve();
});
});
}
attachViewToDomImpl(crf: ComponentFactoryResolver, parentElement: HTMLElement, hostElement: HTMLElement, componentToMount: Type<any>, injector: Injector, appRef: ApplicationRef, data: any, classesToAdd: string[]): AngularMountingData {
const componentFactory = crf.resolveComponentFactory(componentToMount);
if (!hostElement) {
hostElement = document.createElement(componentFactory.selector);
}
const childInjector = Injector.create(getProviders(parentElement, data), injector);
const componentRef = componentFactory.create(childInjector, [], hostElement);
for (const clazz of classesToAdd) {
hostElement.classList.add(clazz);
}
parentElement.appendChild(hostElement);
appRef.attachView(componentRef.hostView);
const mountingData = {
component: componentToMount,
componentFactory,
childInjector,
componentRef,
instance: componentRef.instance,
angularHostElement: componentRef.location.nativeElement,
element: hostElement,
data
};
elementToComponentRefMap.set(hostElement, mountingData);
return mountingData;
}
}
export function removeViewFromDom(_parentElement: HTMLElement, childElement: HTMLElement) {
const mountingData = elementToComponentRefMap.get(childElement);
if (mountingData) {
mountingData.componentRef.destroy();
}
}

View File

@ -1,82 +0,0 @@
import { PublicNav } from '@ionic/core';
export class App {
_element: HTMLIonAppElement;
constructor() {
this._element = document.querySelector('ion-app');
}
setTitle(title: string) {
document.title = title;
}
getRootNavs(): PublicNav[] {
return getRootNavsImpl(this);
}
getRootNavsAsync(): Promise<PublicNav[]> {
return getRootNavsAsyncImpl(this);
}
getTopNavs(rootNavId?: number): PublicNav[] {
return getTopNavsImpl(this, rootNavId);
}
getTopNavsAsync(rootNavId?: number): Promise<PublicNav[]> {
return getTopNavsAsyncImpl(this, rootNavId);
}
getNavByIdOrName(nameOrId: number | string): PublicNav {
return getNavByIdOrNameImpl(this, nameOrId);
}
getNavByIdOrNameAsync(nameOrId: number | string): Promise<PublicNav> {
return getNavByIdOrNameAsyncImpl(this, nameOrId);
}
registerBackButtonAction(fn: Function, priority = 0): Promise<() => void> {
return this._element.componentOnReady().then(() => {
return this._element.registerBackButtonAction(fn, priority);
});
}
}
export function getRootNavsImpl(app: App) {
if (app._element && app._element.getRootNavs) {
return app._element.getRootNavs();
}
return [];
}
export function getRootNavsAsyncImpl(app: App) {
return app._element.componentOnReady().then(() => {
return app._element.getRootNavs();
});
}
export function getTopNavsImpl(app: App, rootNavId?: number): PublicNav[] {
if (app._element && app._element.getTopNavs) {
return app._element.getTopNavs(rootNavId);
}
return [];
}
export function getTopNavsAsyncImpl(app: App, rootNavId?: number): Promise<PublicNav[]> {
return app._element.componentOnReady().then(() => {
return app._element.getTopNavs(rootNavId);
});
}
export function getNavByIdOrNameImpl(app: App, nameOrId: number | string): PublicNav {
if (app._element && app._element.getNavByIdOrName) {
return app._element.getNavByIdOrName(nameOrId);
}
return null;
}
export function getNavByIdOrNameAsyncImpl(app: App, nameOrId: number | string): Promise<PublicNav> {
return app._element.componentOnReady().then(() => {
return app._element.getNavByIdOrName(nameOrId);
});
}

View File

@ -1,31 +1,20 @@
import {
ComponentFactoryResolver,
Injectable,
Injector,
Type,
} from '@angular/core';
import {
FrameworkDelegate,
ModalDismissEvent,
ModalOptions
} from '@ionic/core';
import { AngularComponentMounter } from '../providers/angular-component-mounter';
import { AngularMountingData } from '../types/interfaces';
import { ensureElementInBody, hydrateElement } from '../util/util';
let modalId = 0;
@Injectable()
export class ModalController implements FrameworkDelegate {
constructor(private angularComponentMounter: AngularComponentMounter, private componentResolveFactory: ComponentFactoryResolver, private injector: Injector) {
}
export class ModalController {
create(opts?: ModalOptions): ModalProxy {
opts.delegate = this;
return getModalProxy(opts);
}
@ -36,14 +25,6 @@ export class ModalController implements FrameworkDelegate {
});
}
attachViewToDom(elementOrContainerToMountTo: HTMLElement, elementOrComponentToMount: Type<any>, data?: any, classesToAdd?: string[]): Promise<AngularMountingData> {
return this.angularComponentMounter.attachViewToDom(elementOrContainerToMountTo, null, elementOrComponentToMount, this.componentResolveFactory, this.injector, data, classesToAdd);
}
removeViewFromDom(parentElement: HTMLElement, childElement: HTMLElement) {
return this.angularComponentMounter.removeViewFromDom(parentElement, childElement);
}
}
export function getModalProxy(opts: ModalOptions) {

View File

@ -1,123 +0,0 @@
import { NavOptions, PublicNav, PublicViewController } from '@ionic/core';
import { hydrateElement } from '../util/util';
export class NavController implements PublicNav {
constructor(public element: HTMLIonNavElement) {
}
push(component: any, data?: any, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.push(component, data, opts);
});
}
pop(opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.pop(opts);
});
}
setRoot(component: any, data?: any, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.setRoot(component, data, opts);
});
}
insert(insertIndex: number, page: any, params?: any, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.insert(insertIndex, page, params, opts);
});
}
insertPages(insertIndex: number, insertPages: any[], opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.insertPages(insertIndex, insertPages, opts);
});
}
popToRoot(opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.popToRoot(opts);
});
}
popTo(indexOrViewCtrl: any, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.popTo(indexOrViewCtrl, opts);
});
}
removeIndex(startIndex: number, removeCount?: number, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.removeIndex(startIndex, removeCount, opts);
});
}
removeView(viewController: PublicViewController, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.removeView(viewController, opts);
});
}
setPages(componentDataPairs: any[], opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.setPages(componentDataPairs, opts);
});
}
getActive(): PublicViewController {
if (this.element.getActive) {
return this.element.getActive();
}
return null;
}
getPrevious(view?: PublicViewController): PublicViewController {
if (this.element.getPrevious) {
return this.element.getPrevious(view);
}
return null;
}
canGoBack(): boolean {
if (this.element.canGoBack) {
return this.element.canGoBack();
}
return false;
}
canSwipeBack(): boolean {
if (this.element.canSwipeBack) {
return this.element.canSwipeBack();
}
return false;
}
first(): PublicViewController {
if (this.element.first) {
return this.element.first();
}
return null;
}
last(): PublicViewController {
if (this.element.last) {
return this.element.last();
}
return null;
}
getViews(): PublicViewController[] {
if (this.element.getViews) {
return this.element.getViews();
}
return [];
}
getChildNavs(): PublicNav[] {
if (this.element.getChildNavs) {
return this.element.getChildNavs();
}
return [];
}
}

View File

@ -1,10 +0,0 @@
export class NavParams {
constructor(public data: any = {}) {
}
get(param: string): any {
return this.data[param];
}
}

View File

@ -1,31 +1,20 @@
import {
ComponentFactoryResolver,
Injectable,
Injector,
Type,
} from '@angular/core';
import {
FrameworkDelegate,
PopoverDismissEvent,
PopoverOptions
} from '@ionic/core';
import { AngularComponentMounter } from '../providers/angular-component-mounter';
import { AngularMountingData } from '../types/interfaces';
import { ensureElementInBody, hydrateElement } from '../util/util';
let popoverId = 0;
@Injectable()
export class PopoverController implements FrameworkDelegate {
constructor(private angularComponentMounter: AngularComponentMounter, private componentResolveFactory: ComponentFactoryResolver, private injector: Injector) {
}
export class PopoverController {
create(opts?: PopoverOptions): PopoverProxy {
opts.delegate = this;
return getPopoverProxy(opts);
}
@ -35,15 +24,6 @@ export class PopoverController implements FrameworkDelegate {
return popoverController.dismiss(data, role, id);
});
}
attachViewToDom(elementOrContainerToMountTo: HTMLElement, elementOrComponentToMount: Type<any>, data?: any, classesToAdd?: string[]): Promise<AngularMountingData> {
return this.angularComponentMounter.attachViewToDom(elementOrContainerToMountTo, null, elementOrComponentToMount, this.componentResolveFactory, this.injector, data, classesToAdd);
}
removeViewFromDom(parentElement: HTMLElement, childElement: HTMLElement) {
return this.angularComponentMounter.removeViewFromDom(parentElement, childElement);
}
}
export function getPopoverProxy(opts: PopoverOptions) {