diff --git a/packages/angular/common/src/index.ts b/packages/angular/common/src/index.ts index 69f0a345f6..6e5c909acf 100644 --- a/packages/angular/common/src/index.ts +++ b/packages/angular/common/src/index.ts @@ -1,4 +1,3 @@ -export { LoadingController } from './providers/loading-controller'; export { MenuController } from './providers/menu-controller'; export { DomController } from './providers/dom-controller'; export { NavController } from './providers/nav-controller'; diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index badb2088de..53075b7aab 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -20,7 +20,6 @@ export * from './directives/validators'; // PROVIDERS export { - LoadingController, DomController, NavController, Config, @@ -37,6 +36,7 @@ export { AlertController } from './providers/alert-controller'; export { AnimationController } from './providers/animation-controller'; export { ActionSheetController } from './providers/action-sheet-controller'; export { GestureController } from './providers/gesture-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'; diff --git a/packages/angular/src/providers/loading-controller.ts b/packages/angular/src/providers/loading-controller.ts new file mode 100644 index 0000000000..2bae3621bf --- /dev/null +++ b/packages/angular/src/providers/loading-controller.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; +import { OverlayBaseController } from '@ionic/angular/common'; +import type { LoadingOptions } from '@ionic/core'; +import { loadingController } from '@ionic/core'; + +@Injectable({ + providedIn: 'root', +}) +export class LoadingController extends OverlayBaseController { + constructor() { + super(loadingController); + } +} diff --git a/packages/angular/standalone/src/index.ts b/packages/angular/standalone/src/index.ts index 4b10fcb9bf..6857fb2f5b 100644 --- a/packages/angular/standalone/src/index.ts +++ b/packages/angular/standalone/src/index.ts @@ -9,13 +9,13 @@ export { ActionSheetController } from './providers/action-sheet-controller'; export { AlertController } from './providers/alert-controller'; export { AnimationController } from './providers/animation-controller'; export { GestureController } from './providers/gesture-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 { - LoadingController, DomController, NavController, Config, diff --git a/packages/angular/common/src/providers/loading-controller.ts b/packages/angular/standalone/src/providers/loading-controller.ts similarity index 62% rename from packages/angular/common/src/providers/loading-controller.ts rename to packages/angular/standalone/src/providers/loading-controller.ts index d34e09465b..03785983bf 100644 --- a/packages/angular/common/src/providers/loading-controller.ts +++ b/packages/angular/standalone/src/providers/loading-controller.ts @@ -1,8 +1,8 @@ import { Injectable } from '@angular/core'; +import { OverlayBaseController } from '@ionic/angular/common'; import type { LoadingOptions } from '@ionic/core/components'; import { loadingController } from '@ionic/core/components'; - -import { OverlayBaseController } from '../utils/overlay'; +import { defineCustomElement } from '@ionic/core/components/ion-loading.js'; @Injectable({ providedIn: 'root', @@ -10,5 +10,8 @@ import { OverlayBaseController } from '../utils/overlay'; export class LoadingController extends OverlayBaseController { constructor() { super(loadingController); + + // TODO: FW-5415 may remove the need for this + defineCustomElement(); } } diff --git a/packages/angular/test/base/e2e/src/lazy/providers.spec.ts b/packages/angular/test/base/e2e/src/lazy/providers.spec.ts index 70f01d9135..e298dd4c3c 100644 --- a/packages/angular/test/base/e2e/src/lazy/providers.spec.ts +++ b/packages/angular/test/base/e2e/src/lazy/providers.spec.ts @@ -46,6 +46,12 @@ describe('Providers', () => { cy.get('ion-alert').should('be.visible'); }); + it('should open a loading-indicator', () => { + cy.get('button#open-loading').click(); + + cy.get('ion-loading').should('be.visible'); + }); + it('should open a picker', () => { cy.get('button#open-picker').click(); diff --git a/packages/angular/test/base/e2e/src/standalone/overlay-controllers.spec.ts b/packages/angular/test/base/e2e/src/standalone/overlay-controllers.spec.ts index 271bc82eb7..599dc0e516 100644 --- a/packages/angular/test/base/e2e/src/standalone/overlay-controllers.spec.ts +++ b/packages/angular/test/base/e2e/src/standalone/overlay-controllers.spec.ts @@ -9,6 +9,12 @@ describe('Overlay Controllers', () => { cy.get('ion-alert').should('be.visible'); }); + it('should present a loading indicator', () => { + cy.get('button#open-loading').click(); + + cy.get('ion-loading').should('be.visible'); + }); + it('should present a modal', () => { cy.get('button#open-modal').click(); diff --git a/packages/angular/test/base/src/app/lazy/providers/providers.component.html b/packages/angular/test/base/src/app/lazy/providers/providers.component.html index 455ea17a99..0c1038369f 100644 --- a/packages/angular/test/base/src/app/lazy/providers/providers.component.html +++ b/packages/angular/test/base/src/app/lazy/providers/providers.component.html @@ -47,5 +47,6 @@ + diff --git a/packages/angular/test/base/src/app/lazy/providers/providers.component.ts b/packages/angular/test/base/src/app/lazy/providers/providers.component.ts index 27efdbf509..1ad6e8930a 100644 --- a/packages/angular/test/base/src/app/lazy/providers/providers.component.ts +++ b/packages/angular/test/base/src/app/lazy/providers/providers.component.ts @@ -34,7 +34,7 @@ export class ProvidersComponent { constructor( private actionSheetCtrl: ActionSheetController, private alertCtrl: AlertController, - loadingCtrl: LoadingController, + private loadingCtrl: LoadingController, private menuCtrl: MenuController, private pickerCtrl: PickerController, modalCtrl: ModalController, @@ -129,6 +129,15 @@ export class ProvidersComponent { await alert.present(); } + async openLoading() { + const loading = await this.loadingCtrl.create({ + message: 'Loading...', + duration: 2000, + }); + + await loading.present(); + } + async openPicker() { const picker = await this.pickerCtrl.create({ columns: [], diff --git a/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.html b/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.html index 15d7e93784..e3d7adbf54 100644 --- a/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.html +++ b/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.html @@ -1,5 +1,6 @@
+ diff --git a/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.ts b/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.ts index 213d800e7a..9b97dd2e45 100644 --- a/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.ts +++ b/packages/angular/test/base/src/app/standalone/overlay-controllers/overlay-controllers.component.ts @@ -1,5 +1,11 @@ import { Component } from '@angular/core'; -import { AlertController, ModalController, PickerController, PopoverController } from '@ionic/angular/standalone'; +import { + AlertController, + LoadingController, + ModalController, + PickerController, + PopoverController, +} from '@ionic/angular/standalone'; @Component({ selector: 'app-overlay-controllers', @@ -9,6 +15,7 @@ import { AlertController, ModalController, PickerController, PopoverController } export class OverlayControllersComponent { constructor( private alertCtrl: AlertController, + private loadingCtrl: LoadingController, private modalCtrl: ModalController, private pickerCtrl: PickerController, private popoverCtrl: PopoverController @@ -28,6 +35,15 @@ export class OverlayControllersComponent { await alert.present(); } + async openLoading() { + const loading = await this.loadingCtrl.create({ + message: 'Loading...', + duration: 2000, + }); + + await loading.present(); + } + async openModal() { const modal = await this.modalCtrl.create({ component: DialogComponent,