mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-09 08:09:32 +08:00
We have shipped various of improvements to the Stencil project and runtime. You can take a close look at our [changelog](https://github.com/ionic-team/stencil/blob/main/CHANGELOG.md) but since `v4.20.0` we mainly shipped improvements on the following issues: ## Major Improvements: - Enhanced Shadow DOM and hydration support - Improved client-side hydration for SSR - Better handling of shadow root styles and component hydration - More reliable serialization of Shadow DOM components ## Key Bug Fixes: - Resolved performance issues due to detached nodes in memory - Fixed several critical issues with scoped slots and component styling - Improved handling of SVG class attributes and template tags - Enhanced runtime decorator functionality - Better handling of form-associated callbacks ## Technical Updates: - Updated to TypeScript 5.5 - Added support for customizable Mermaid diagram colors in documentation I don't see any critical changes that may impact Ionic users and feel confident we can ship this. ## Dev Build `8.5.4-dev.11744646756.1244bf71` --------- Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { NgZone } from '@angular/core';
|
|
import type { Config, IonicWindow } from '@ionic/angular/common';
|
|
import { raf } from '@ionic/angular/common';
|
|
import { setupConfig } from '@ionic/core';
|
|
import { defineCustomElements } from '@ionic/core/loader';
|
|
|
|
// TODO(FW-2827): types
|
|
|
|
export const appInitialize = (config: Config, doc: Document, zone: NgZone) => {
|
|
return (): any => {
|
|
const win: IonicWindow | undefined = doc.defaultView as any;
|
|
if (win && typeof (window as any) !== 'undefined') {
|
|
setupConfig({
|
|
...config,
|
|
_zoneGate: (h: any) => zone.run(h),
|
|
});
|
|
|
|
const aelFn =
|
|
'__zone_symbol__addEventListener' in (doc.body as any) ? '__zone_symbol__addEventListener' : 'addEventListener';
|
|
|
|
return defineCustomElements(win, {
|
|
exclude: ['ion-tabs'],
|
|
syncQueue: true,
|
|
raf,
|
|
jmp: (h: any) => zone.runOutsideAngular(h),
|
|
ael(elm, eventName, cb, opts) {
|
|
(elm as any)[aelFn](eventName, cb, opts);
|
|
},
|
|
rel(elm, eventName, cb, opts) {
|
|
elm.removeEventListener(eventName, cb, opts);
|
|
},
|
|
});
|
|
}
|
|
};
|
|
};
|