import { Injector, Injectable, EnvironmentInjector, inject } from '@angular/core'; import { AngularDelegate, OverlayBaseController } from '@ionic/angular/common'; import type { ModalOptions } from '@ionic/core/components'; import { modalController } from '@ionic/core/components'; import { defineCustomElement } from '@ionic/core/components/ion-modal.js'; @Injectable() export class ModalController extends OverlayBaseController { private angularDelegate = inject(AngularDelegate); private injector = inject(Injector); private environmentInjector = inject(EnvironmentInjector); constructor() { super(modalController); defineCustomElement(); } create(opts: ModalOptions): Promise { return super.create({ ...opts, delegate: this.angularDelegate.create(this.environmentInjector, this.injector, 'modal'), }); } }