diff --git a/packages/angular/common/src/index.ts b/packages/angular/common/src/index.ts index e54c778cfe..69f0a345f6 100644 --- a/packages/angular/common/src/index.ts +++ b/packages/angular/common/src/index.ts @@ -1,4 +1,3 @@ -export { AlertController } from './providers/alert-controller'; export { LoadingController } from './providers/loading-controller'; export { MenuController } from './providers/menu-controller'; export { DomController } from './providers/dom-controller'; diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index cefc88d708..badb2088de 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -20,7 +20,6 @@ export * from './directives/validators'; // PROVIDERS export { - AlertController, LoadingController, DomController, NavController, @@ -34,6 +33,7 @@ export { ViewDidEnter, ViewDidLeave, } from '@ionic/angular/common'; +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'; diff --git a/packages/angular/src/providers/alert-controller.ts b/packages/angular/src/providers/alert-controller.ts new file mode 100644 index 0000000000..c7e9fff20a --- /dev/null +++ b/packages/angular/src/providers/alert-controller.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; +import { OverlayBaseController } from '@ionic/angular/common'; +import type { AlertOptions } from '@ionic/core'; +import { alertController } from '@ionic/core'; + +@Injectable({ + providedIn: 'root', +}) +export class AlertController extends OverlayBaseController { + constructor() { + super(alertController); + } +} diff --git a/packages/angular/standalone/src/index.ts b/packages/angular/standalone/src/index.ts index 49095b4705..4b10fcb9bf 100644 --- a/packages/angular/standalone/src/index.ts +++ b/packages/angular/standalone/src/index.ts @@ -6,6 +6,7 @@ export { IonRouterLink, IonRouterLinkWithHref } from './navigation/router-link-d export { IonTabs } from './navigation/tabs'; export { provideIonicAngular } from './providers/ionic-angular'; 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 { MenuController } from './providers/menu-controller'; @@ -14,7 +15,6 @@ export { PickerController } from './providers/picker-controller'; export { PopoverController } from './providers/popover-controller'; export { ToastController } from './providers/toast-controller'; export { - AlertController, LoadingController, DomController, NavController, diff --git a/packages/angular/common/src/providers/alert-controller.ts b/packages/angular/standalone/src/providers/alert-controller.ts similarity index 84% rename from packages/angular/common/src/providers/alert-controller.ts rename to packages/angular/standalone/src/providers/alert-controller.ts index 799da17a92..525d70ed27 100644 --- a/packages/angular/common/src/providers/alert-controller.ts +++ b/packages/angular/standalone/src/providers/alert-controller.ts @@ -1,9 +1,8 @@ import { Injectable } from '@angular/core'; +import { OverlayBaseController } from '@ionic/angular/common'; import type { AlertOptions } from '@ionic/core/components'; import { alertController } from '@ionic/core/components'; -import { OverlayBaseController } from '../utils/overlay'; - @Injectable({ providedIn: 'root', }) 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 eaba07fd99..70f01d9135 100644 --- a/packages/angular/test/base/e2e/src/lazy/providers.spec.ts +++ b/packages/angular/test/base/e2e/src/lazy/providers.spec.ts @@ -1,7 +1,7 @@ describe('Providers', () => { beforeEach(() => { cy.visit('/lazy/providers'); - }) + }); it('should load all providers', () => { cy.get('#is-loaded').should('have.text', 'true'); @@ -26,7 +26,7 @@ describe('Providers', () => { cy.visit('/lazy/providers?firstParam=abc&secondParam=true'); cy.get('#query-params').should('have.text', 'firstParam: abc, firstParam: true'); - }) + }); // https://github.com/ionic-team/ionic-framework/issues/28337 it('should register menus correctly', () => { @@ -40,10 +40,15 @@ describe('Providers', () => { cy.get('ion-action-sheet').should('be.visible'); }); + it('should open an alert', () => { + cy.get('button#open-alert').click(); + + cy.get('ion-alert').should('be.visible'); + }); + it('should open a picker', () => { cy.get('button#open-picker').click(); cy.get('ion-picker').should('be.visible'); }); }); - 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 e9ac5f08db..271bc82eb7 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 @@ -3,6 +3,12 @@ describe('Overlay Controllers', () => { cy.visit('/standalone/overlay-controllers'); }); + it('should present an alert', () => { + cy.get('button#open-alert').click(); + + cy.get('ion-alert').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 78d7fa1521..455ea17a99 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 @@ -45,6 +45,7 @@

+ 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 6d3b0e4d2f..27efdbf509 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 @@ -1,8 +1,17 @@ import { Component, NgZone } from '@angular/core'; import { - Platform, ModalController, AlertController, ActionSheetController, - PopoverController, ToastController, PickerController, MenuController, - LoadingController, NavController, DomController, Config + Platform, + ModalController, + AlertController, + ActionSheetController, + PopoverController, + ToastController, + PickerController, + MenuController, + LoadingController, + NavController, + DomController, + Config, } from '@ionic/angular'; @Component({ @@ -10,7 +19,6 @@ import { templateUrl: './providers.component.html', }) export class ProvidersComponent { - isLoaded = false; isReady = false; isResumed = false; @@ -25,7 +33,7 @@ export class ProvidersComponent { constructor( private actionSheetCtrl: ActionSheetController, - alertCtrl: AlertController, + private alertCtrl: AlertController, loadingCtrl: LoadingController, private menuCtrl: MenuController, private pickerCtrl: PickerController, @@ -40,11 +48,21 @@ export class ProvidersComponent { ) { // test all providers load if ( - actionSheetCtrl && alertCtrl && loadingCtrl && menuCtrl && pickerCtrl && - modalCtrl && platform && popoverCtrl && toastCtrl && navCtrl && domCtrl && config - ) { - this.isLoaded = true; - } + actionSheetCtrl && + alertCtrl && + loadingCtrl && + menuCtrl && + pickerCtrl && + modalCtrl && + platform && + popoverCtrl && + toastCtrl && + navCtrl && + domCtrl && + config + ) { + this.isLoaded = true; + } // test platform ready() platform.ready().then(() => { @@ -91,12 +109,26 @@ export class ProvidersComponent { async openActionSheet() { const actionSheet = await this.actionSheetCtrl.create({ - buttons: ['Button'] + buttons: ['Button'], }); await actionSheet.present(); } + async openAlert() { + const alert = await this.alertCtrl.create({ + buttons: [ + { + text: 'Cancel', + role: 'cancel', + }, + ], + header: 'Alert!', + }); + + await alert.present(); + } + async openPicker() { const picker = await this.pickerCtrl.create({ columns: [], @@ -105,7 +137,7 @@ export class ProvidersComponent { text: 'Cancel', role: 'cancel', }, - ] + ], }); await picker.present(); 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 a3611cf082..15d7e93784 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,4 +1,5 @@
+ 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 6572b39e26..213d800e7a 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,5 @@ import { Component } from '@angular/core'; -import { ModalController, PickerController, PopoverController } from '@ionic/angular/standalone'; +import { AlertController, ModalController, PickerController, PopoverController } from '@ionic/angular/standalone'; @Component({ selector: 'app-overlay-controllers', @@ -8,14 +8,29 @@ import { ModalController, PickerController, PopoverController } from '@ionic/ang }) export class OverlayControllersComponent { constructor( + private alertCtrl: AlertController, private modalCtrl: ModalController, private pickerCtrl: PickerController, private popoverCtrl: PopoverController ) {} + async openAlert() { + const alert = await this.alertCtrl.create({ + buttons: [ + { + text: 'Cancel', + role: 'cancel', + }, + ], + header: 'Alert!', + }); + + await alert.present(); + } + async openModal() { const modal = await this.modalCtrl.create({ - component: DialogComponent + component: DialogComponent, }); await modal.present(); @@ -38,7 +53,7 @@ export class OverlayControllersComponent { async openPopover(ev: MouseEvent) { const popover = await this.popoverCtrl.create({ component: DialogComponent, - event: ev + event: ev, }); await popover.present(); @@ -50,5 +65,4 @@ export class OverlayControllersComponent { template: '
Dialog Content
', standalone: true, }) -class DialogComponent { -} +class DialogComponent {}