mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
Issue number: N/A --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Ionic Framework currently only generates the lazy/hydrated Angular component wrappers for the web components. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Generates Angular standalone component wrappers for the web components, using the CE build. - Adds manual component wrapper for `ion-icon` with the CE build. - Migrates the `ion-back-button` and `ion-nav` to be manual component wrappers - Continues to generate the lazy/hydrated Angular component wrappers. - Refactors "NavDelegate" etc. language to `IonNav` to avoid exporting as and simplify navigating the code. ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change, please describe the impact and migration path for existing applications below. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Related output targets PR: https://github.com/ionic-team/stencil-ds-output-targets/pull/367
82 lines
2.2 KiB
TypeScript
82 lines
2.2 KiB
TypeScript
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
import { ModuleWithProviders, APP_INITIALIZER, NgModule, NgZone } from '@angular/core';
|
|
import {
|
|
ModalController,
|
|
PopoverController,
|
|
ConfigToken,
|
|
AngularDelegate,
|
|
provideComponentInputBinding,
|
|
} from '@ionic/angular/common';
|
|
import { IonicConfig } from '@ionic/core';
|
|
|
|
import { appInitialize } from './app-initialize';
|
|
import {
|
|
BooleanValueAccessorDirective,
|
|
NumericValueAccessorDirective,
|
|
RadioValueAccessorDirective,
|
|
SelectValueAccessorDirective,
|
|
TextValueAccessorDirective,
|
|
} from './directives/control-value-accessors';
|
|
import { IonBackButton } from './directives/navigation/ion-back-button';
|
|
import { IonNav } from './directives/navigation/ion-nav';
|
|
import { IonRouterOutlet } from './directives/navigation/ion-router-outlet';
|
|
import { IonTabs } from './directives/navigation/ion-tabs';
|
|
import {
|
|
RouterLinkDelegateDirective,
|
|
RouterLinkWithHrefDelegateDirective,
|
|
} from './directives/navigation/router-link-delegate';
|
|
import { IonModal } from './directives/overlays/modal';
|
|
import { IonPopover } from './directives/overlays/popover';
|
|
import { DIRECTIVES } from './directives/proxies-list';
|
|
|
|
const DECLARATIONS = [
|
|
// generated proxies
|
|
...DIRECTIVES,
|
|
|
|
// manual proxies
|
|
IonModal,
|
|
IonPopover,
|
|
|
|
// ngModel accessors
|
|
BooleanValueAccessorDirective,
|
|
NumericValueAccessorDirective,
|
|
RadioValueAccessorDirective,
|
|
SelectValueAccessorDirective,
|
|
TextValueAccessorDirective,
|
|
|
|
// navigation
|
|
IonTabs,
|
|
IonRouterOutlet,
|
|
IonBackButton,
|
|
IonNav,
|
|
RouterLinkDelegateDirective,
|
|
RouterLinkWithHrefDelegateDirective,
|
|
];
|
|
|
|
@NgModule({
|
|
declarations: DECLARATIONS,
|
|
exports: DECLARATIONS,
|
|
providers: [AngularDelegate, ModalController, PopoverController],
|
|
imports: [CommonModule],
|
|
})
|
|
export class IonicModule {
|
|
static forRoot(config?: IonicConfig): ModuleWithProviders<IonicModule> {
|
|
return {
|
|
ngModule: IonicModule,
|
|
providers: [
|
|
{
|
|
provide: ConfigToken,
|
|
useValue: config,
|
|
},
|
|
{
|
|
provide: APP_INITIALIZER,
|
|
useFactory: appInitialize,
|
|
multi: true,
|
|
deps: [ConfigToken, DOCUMENT, NgZone],
|
|
},
|
|
provideComponentInputBinding(),
|
|
],
|
|
};
|
|
}
|
|
}
|