diff --git a/packages/angular/src/directives/navigation/nav-params.ts b/packages/angular/common/src/directives/navigation/nav-params.ts similarity index 100% rename from packages/angular/src/directives/navigation/nav-params.ts rename to packages/angular/common/src/directives/navigation/nav-params.ts diff --git a/packages/angular/common/src/index.ts b/packages/angular/common/src/index.ts index a5a128b251..9ed4b00979 100644 --- a/packages/angular/common/src/index.ts +++ b/packages/angular/common/src/index.ts @@ -1,3 +1,21 @@ -// This is required to get ng-packagr to build. -// Remove this when you actually have something to export -export const placeholder = true; +export { ActionSheetController } from './providers/action-sheet-controller'; +export { AlertController } from './providers/alert-controller'; +export { LoadingController } from './providers/loading-controller'; +export { MenuController } from './providers/menu-controller'; +export { ModalController } from './providers/modal-controller'; +export { PickerController } from './providers/picker-controller'; +export { PopoverController } from './providers/popover-controller'; +export { ToastController } from './providers/toast-controller'; + +export { AnimationController } from './providers/animation-controller'; +export { GestureController } from './providers/gesture-controller'; +export { DomController } from './providers/dom-controller'; + +export { Config, ConfigToken } from './providers/config'; +export { Platform } from './providers/platform'; + +export { bindLifecycleEvents, AngularDelegate } from './providers/angular-delegate'; + +export type { IonicWindow } from './types/interfaces'; + +export { NavParams } from './directives/navigation/nav-params'; diff --git a/packages/angular/src/providers/action-sheet-controller.ts b/packages/angular/common/src/providers/action-sheet-controller.ts similarity index 57% rename from packages/angular/src/providers/action-sheet-controller.ts rename to packages/angular/common/src/providers/action-sheet-controller.ts index d2c92bd8e0..7b42cede95 100644 --- a/packages/angular/src/providers/action-sheet-controller.ts +++ b/packages/angular/common/src/providers/action-sheet-controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; -import { ActionSheetOptions, actionSheetController } from '@ionic/core'; +import type { ActionSheetOptions } from '@ionic/core/components'; +import { actionSheetController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/alert-controller.ts b/packages/angular/common/src/providers/alert-controller.ts similarity index 56% rename from packages/angular/src/providers/alert-controller.ts rename to packages/angular/common/src/providers/alert-controller.ts index abffc7577c..799da17a92 100644 --- a/packages/angular/src/providers/alert-controller.ts +++ b/packages/angular/common/src/providers/alert-controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; -import { AlertOptions, alertController } from '@ionic/core'; +import type { AlertOptions } from '@ionic/core/components'; +import { alertController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/angular-delegate.ts b/packages/angular/common/src/providers/angular-delegate.ts similarity index 99% rename from packages/angular/src/providers/angular-delegate.ts rename to packages/angular/common/src/providers/angular-delegate.ts index 603a646af8..c1524e8b72 100644 --- a/packages/angular/src/providers/angular-delegate.ts +++ b/packages/angular/common/src/providers/angular-delegate.ts @@ -16,7 +16,7 @@ import { LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD, -} from '@ionic/core'; +} from '@ionic/core/components'; import { NavParams } from '../directives/navigation/nav-params'; diff --git a/packages/angular/src/providers/animation-controller.ts b/packages/angular/common/src/providers/animation-controller.ts similarity index 86% rename from packages/angular/src/providers/animation-controller.ts rename to packages/angular/common/src/providers/animation-controller.ts index abd620c571..647613ef53 100644 --- a/packages/angular/src/providers/animation-controller.ts +++ b/packages/angular/common/src/providers/animation-controller.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; -import { Animation, createAnimation, getTimeGivenProgression } from '@ionic/core'; +import type { Animation } from '@ionic/core/components'; +import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/config.ts b/packages/angular/common/src/providers/config.ts similarity index 92% rename from packages/angular/src/providers/config.ts rename to packages/angular/common/src/providers/config.ts index a312a82709..2c5966fc06 100644 --- a/packages/angular/src/providers/config.ts +++ b/packages/angular/common/src/providers/config.ts @@ -1,5 +1,5 @@ import { Injectable, InjectionToken } from '@angular/core'; -import { Config as CoreConfig, IonicConfig } from '@ionic/core'; +import type { Config as CoreConfig, IonicConfig } from '@ionic/core/components'; import { IonicWindow } from '../types/interfaces'; diff --git a/packages/angular/src/providers/dom-controller.ts b/packages/angular/common/src/providers/dom-controller.ts similarity index 100% rename from packages/angular/src/providers/dom-controller.ts rename to packages/angular/common/src/providers/dom-controller.ts diff --git a/packages/angular/src/providers/gesture-controller.ts b/packages/angular/common/src/providers/gesture-controller.ts similarity index 82% rename from packages/angular/src/providers/gesture-controller.ts rename to packages/angular/common/src/providers/gesture-controller.ts index 6450c7bff5..6a1564d655 100644 --- a/packages/angular/src/providers/gesture-controller.ts +++ b/packages/angular/common/src/providers/gesture-controller.ts @@ -1,5 +1,6 @@ import { NgZone, Injectable } from '@angular/core'; -import { Gesture, GestureConfig, createGesture } from '@ionic/core'; +import type { Gesture, GestureConfig } from '@ionic/core/components'; +import { createGesture } from '@ionic/core/components'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/loading-controller.ts b/packages/angular/common/src/providers/loading-controller.ts similarity index 57% rename from packages/angular/src/providers/loading-controller.ts rename to packages/angular/common/src/providers/loading-controller.ts index a132949ccc..d34e09465b 100644 --- a/packages/angular/src/providers/loading-controller.ts +++ b/packages/angular/common/src/providers/loading-controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; -import { LoadingOptions, loadingController } from '@ionic/core'; +import type { LoadingOptions } from '@ionic/core/components'; +import { loadingController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/menu-controller.ts b/packages/angular/common/src/providers/menu-controller.ts similarity index 98% rename from packages/angular/src/providers/menu-controller.ts rename to packages/angular/common/src/providers/menu-controller.ts index 9898100613..ba1876e23b 100644 --- a/packages/angular/src/providers/menu-controller.ts +++ b/packages/angular/common/src/providers/menu-controller.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { menuController } from '@ionic/core'; +import { menuController } from '@ionic/core/components'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/modal-controller.ts b/packages/angular/common/src/providers/modal-controller.ts similarity index 79% rename from packages/angular/src/providers/modal-controller.ts rename to packages/angular/common/src/providers/modal-controller.ts index 77053d99b8..49a69e804a 100644 --- a/packages/angular/src/providers/modal-controller.ts +++ b/packages/angular/common/src/providers/modal-controller.ts @@ -1,7 +1,8 @@ import { Injector, Injectable, EnvironmentInjector, inject } from '@angular/core'; -import { ModalOptions, modalController } from '@ionic/core'; +import type { ModalOptions } from '@ionic/core/components'; +import { modalController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; import { AngularDelegate } from './angular-delegate'; diff --git a/packages/angular/src/providers/picker-controller.ts b/packages/angular/common/src/providers/picker-controller.ts similarity index 58% rename from packages/angular/src/providers/picker-controller.ts rename to packages/angular/common/src/providers/picker-controller.ts index a67fb3f7db..2baef2f4d4 100644 --- a/packages/angular/src/providers/picker-controller.ts +++ b/packages/angular/common/src/providers/picker-controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; -import { PickerOptions, pickerController } from '@ionic/core'; +import type { PickerOptions } from '@ionic/core'; +import { pickerController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/providers/platform.ts b/packages/angular/common/src/providers/platform.ts similarity index 98% rename from packages/angular/src/providers/platform.ts rename to packages/angular/common/src/providers/platform.ts index 727aca2681..c8e27c1e26 100644 --- a/packages/angular/src/providers/platform.ts +++ b/packages/angular/common/src/providers/platform.ts @@ -1,6 +1,7 @@ import { DOCUMENT } from '@angular/common'; import { NgZone, Inject, Injectable } from '@angular/core'; -import { BackButtonEventDetail, KeyboardEventDetail, Platforms, getPlatforms, isPlatform } from '@ionic/core'; +import { getPlatforms, isPlatform } from '@ionic/core/components'; +import type { BackButtonEventDetail, KeyboardEventDetail, Platforms } from '@ionic/core/components'; import { Subscription, Subject } from 'rxjs'; // TODO(FW-2827): types diff --git a/packages/angular/src/providers/popover-controller.ts b/packages/angular/common/src/providers/popover-controller.ts similarity index 79% rename from packages/angular/src/providers/popover-controller.ts rename to packages/angular/common/src/providers/popover-controller.ts index 700233ee35..c4c7ccc725 100644 --- a/packages/angular/src/providers/popover-controller.ts +++ b/packages/angular/common/src/providers/popover-controller.ts @@ -1,7 +1,8 @@ import { Injector, Injectable, inject, EnvironmentInjector } from '@angular/core'; -import { PopoverOptions, popoverController } from '@ionic/core'; +import type { PopoverOptions } from '@ionic/core/components'; +import { popoverController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; import { AngularDelegate } from './angular-delegate'; diff --git a/packages/angular/src/providers/toast-controller.ts b/packages/angular/common/src/providers/toast-controller.ts similarity index 56% rename from packages/angular/src/providers/toast-controller.ts rename to packages/angular/common/src/providers/toast-controller.ts index d967b77b9f..297ee3a2b7 100644 --- a/packages/angular/src/providers/toast-controller.ts +++ b/packages/angular/common/src/providers/toast-controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; -import { ToastOptions, toastController } from '@ionic/core'; +import type { ToastOptions } from '@ionic/core/components'; +import { toastController } from '@ionic/core/components'; -import { OverlayBaseController } from '../util/overlay'; +import { OverlayBaseController } from '../utils/overlay'; @Injectable({ providedIn: 'root', diff --git a/packages/angular/src/types/interfaces.ts b/packages/angular/common/src/types/interfaces.ts similarity index 66% rename from packages/angular/src/types/interfaces.ts rename to packages/angular/common/src/types/interfaces.ts index b86fa899f3..3595fdb03c 100644 --- a/packages/angular/src/types/interfaces.ts +++ b/packages/angular/common/src/types/interfaces.ts @@ -7,8 +7,3 @@ export interface IonicWindow extends Window { Ionic: IonicGlobal; __zone_symbol__requestAnimationFrame?: (ts: FrameRequestCallback) => number; } - -export interface HTMLStencilElement extends HTMLElement { - componentOnReady?(): Promise; - forceUpdate?(): void; -} diff --git a/packages/angular/src/util/overlay.ts b/packages/angular/common/src/utils/overlay.ts similarity index 100% rename from packages/angular/src/util/overlay.ts rename to packages/angular/common/src/utils/overlay.ts diff --git a/packages/angular/src/app-initialize.ts b/packages/angular/src/app-initialize.ts index 0838a6d9b4..557777eaf6 100644 --- a/packages/angular/src/app-initialize.ts +++ b/packages/angular/src/app-initialize.ts @@ -1,9 +1,8 @@ import { NgZone } from '@angular/core'; +import type { Config, IonicWindow } from '@ionic/angular/common'; import { setupConfig } from '@ionic/core'; import { applyPolyfills, defineCustomElements } from '@ionic/core/loader'; -import { Config } from './providers/config'; -import { IonicWindow } from './types/interfaces'; import { raf } from './util/util'; // TODO(FW-2827): types diff --git a/packages/angular/src/directives/navigation/ion-back-button.ts b/packages/angular/src/directives/navigation/ion-back-button.ts index 7dad73bb9d..210096f598 100644 --- a/packages/angular/src/directives/navigation/ion-back-button.ts +++ b/packages/angular/src/directives/navigation/ion-back-button.ts @@ -1,7 +1,7 @@ import { Directive, HostListener, Input, Optional } from '@angular/core'; +import { Config } from '@ionic/angular/common'; import { AnimationBuilder } from '@ionic/core'; -import { Config } from '../../providers/config'; import { NavController } from '../../providers/nav-controller'; import { IonRouterOutlet } from './ion-router-outlet'; diff --git a/packages/angular/src/directives/navigation/ion-router-outlet.ts b/packages/angular/src/directives/navigation/ion-router-outlet.ts index c54eaa17f3..cef96a1c67 100644 --- a/packages/angular/src/directives/navigation/ion-router-outlet.ts +++ b/packages/angular/src/directives/navigation/ion-router-outlet.ts @@ -21,12 +21,12 @@ import { reflectComponentType, } from '@angular/core'; import { OutletContext, Router, ActivatedRoute, ChildrenOutletContexts, PRIMARY_OUTLET, Data } from '@angular/router'; +import { Config } from '@ionic/angular/common'; import { componentOnReady } from '@ionic/core'; import { Observable, BehaviorSubject, Subscription, combineLatest, of } from 'rxjs'; import { distinctUntilChanged, filter, switchMap } from 'rxjs/operators'; import { AnimationBuilder } from '../../ionic-core'; -import { Config } from '../../providers/config'; import { NavController } from '../../providers/nav-controller'; import { StackController } from './stack-controller'; diff --git a/packages/angular/src/directives/navigation/nav-delegate.ts b/packages/angular/src/directives/navigation/nav-delegate.ts index 051701674f..bdf7613b85 100644 --- a/packages/angular/src/directives/navigation/nav-delegate.ts +++ b/packages/angular/src/directives/navigation/nav-delegate.ts @@ -1,6 +1,6 @@ import { ElementRef, Injector, Directive, EnvironmentInjector } from '@angular/core'; +import { AngularDelegate } from '@ionic/angular/common'; -import { AngularDelegate } from '../../providers/angular-delegate'; import { ProxyCmp, proxyOutputs } from '../angular-component-lib/utils'; @ProxyCmp({ diff --git a/packages/angular/src/directives/navigation/stack-controller.ts b/packages/angular/src/directives/navigation/stack-controller.ts index 93520c0a66..809b67315f 100644 --- a/packages/angular/src/directives/navigation/stack-controller.ts +++ b/packages/angular/src/directives/navigation/stack-controller.ts @@ -1,9 +1,9 @@ import { Location } from '@angular/common'; import { ComponentRef, NgZone } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +import { bindLifecycleEvents } from '@ionic/angular/common'; import { AnimationBuilder, RouterDirection } from '@ionic/core'; -import { bindLifecycleEvents } from '../../providers/angular-delegate'; import { NavController } from '../../providers/nav-controller'; import { diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index b92167e481..77860a8daa 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -13,27 +13,29 @@ export { RouterLinkWithHrefDelegateDirective as RouterLinkWithHrefDelegate, } from './directives/navigation/router-link-delegate'; -export { NavParams } from './directives/navigation/nav-params'; export { IonModal } from './directives/overlays/modal'; export { IonPopover } from './directives/overlays/popover'; export * from './directives/proxies'; // PROVIDERS -export { AngularDelegate } from './providers/angular-delegate'; -export { ActionSheetController } from './providers/action-sheet-controller'; -export { AlertController } from './providers/alert-controller'; -export { LoadingController } from './providers/loading-controller'; -export { MenuController } from './providers/menu-controller'; -export { PickerController } from './providers/picker-controller'; -export { ModalController } from './providers/modal-controller'; -export { Platform } from './providers/platform'; -export { PopoverController } from './providers/popover-controller'; -export { ToastController } from './providers/toast-controller'; +export { + ActionSheetController, + AlertController, + LoadingController, + MenuController, + ModalController, + PickerController, + PopoverController, + ToastController, + AnimationController, + GestureController, + DomController, + Config, + Platform, + AngularDelegate, + NavParams, +} from '@ionic/angular/common'; export { NavController } from './providers/nav-controller'; -export { DomController } from './providers/dom-controller'; -export { Config } from './providers/config'; -export { AnimationController } from './providers/animation-controller'; -export { GestureController } from './providers/gesture-controller'; // ROUTER STRATEGY export { IonicRouteStrategy } from './util/ionic-router-reuse-strategy'; diff --git a/packages/angular/src/ionic-module.ts b/packages/angular/src/ionic-module.ts index 32ad4eaa4d..b30fb8b97d 100644 --- a/packages/angular/src/ionic-module.ts +++ b/packages/angular/src/ionic-module.ts @@ -1,6 +1,7 @@ import { CommonModule, DOCUMENT } from '@angular/common'; import { ModuleWithProviders, APP_INITIALIZER, NgModule, NgZone } from '@angular/core'; import { Router } from '@angular/router'; +import { ModalController, PopoverController, ConfigToken, AngularDelegate } from '@ionic/angular/common'; import { IonicConfig } from '@ionic/core'; import { appInitialize } from './app-initialize'; @@ -22,10 +23,6 @@ import { import { IonModal } from './directives/overlays/modal'; import { IonPopover } from './directives/overlays/popover'; import { DIRECTIVES } from './directives/proxies-list'; -import { AngularDelegate } from './providers/angular-delegate'; -import { ConfigToken } from './providers/config'; -import { ModalController } from './providers/modal-controller'; -import { PopoverController } from './providers/popover-controller'; const DECLARATIONS = [ // generated proxies diff --git a/packages/angular/src/providers/nav-controller.ts b/packages/angular/src/providers/nav-controller.ts index 101967f0f2..b5859d5249 100644 --- a/packages/angular/src/providers/nav-controller.ts +++ b/packages/angular/src/providers/nav-controller.ts @@ -1,12 +1,11 @@ import { Location } from '@angular/common'; import { Injectable, Optional } from '@angular/core'; import { NavigationExtras, Router, UrlSerializer, UrlTree, NavigationStart } from '@angular/router'; +import { Platform } from '@ionic/angular/common'; import { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core'; import { IonRouterOutlet } from '../directives/navigation/ion-router-outlet'; -import { Platform } from './platform'; - export interface AnimationOptions { animated?: boolean; animation?: AnimationBuilder;