@angular/core 18.2.0-next.0 → 18.2.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/primitives/event-dispatch/contract_binary.mjs +3 -3
- package/esm2022/primitives/event-dispatch/index.mjs +6 -7
- package/esm2022/primitives/event-dispatch/src/a11y_click.mjs +1 -1
- package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +1 -1
- package/esm2022/primitives/event-dispatch/src/bootstrap_app_scoped.mjs +29 -0
- package/esm2022/primitives/event-dispatch/src/bootstrap_global.mjs +21 -0
- package/esm2022/primitives/event-dispatch/src/cache.mjs +10 -21
- package/esm2022/primitives/event-dispatch/src/earlyeventcontract.mjs +32 -21
- package/esm2022/primitives/event-dispatch/src/event.mjs +3 -3
- package/esm2022/primitives/event-dispatch/src/event_contract_defines.mjs +1 -6
- package/esm2022/primitives/event-dispatch/src/event_type.mjs +19 -21
- package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +6 -8
- package/esm2022/primitives/event-dispatch/src/property.mjs +1 -1
- package/esm2022/src/event_delegation_utils.mjs +10 -10
- package/esm2022/src/hydration/event_replay.mjs +17 -22
- package/esm2022/src/render3/after_render_hooks.mjs +7 -2
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/event-dispatch-contract.min.js +1 -1
- package/fesm2022/core.mjs +33 -33
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +452 -529
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +4 -4
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +23 -37
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +40 -31
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
- package/schematics/ng-generate/control-flow-migration/bundle.js +47 -31
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
- package/schematics/ng-generate/standalone-migration/bundle.js +611 -65
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
- package/esm2022/primitives/event-dispatch/src/register_events.mjs +0 -31
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.2.0-next.
|
|
2
|
+
* @license Angular v18.2.0-next.1
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
|
|
8
8
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
9
9
|
import { map, first } from 'rxjs/operators';
|
|
10
|
-
import { Attribute as Attribute$1,
|
|
10
|
+
import { Attribute as Attribute$1, isEarlyEventType, getActionCache, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Base URL for the error details page.
|
|
@@ -16381,19 +16381,24 @@ function afterRenderImpl(callbackOrSpec, injector, once, phase) {
|
|
|
16381
16381
|
unregisterFn();
|
|
16382
16382
|
};
|
|
16383
16383
|
const unregisterFn = injector.get(DestroyRef).onDestroy(destroy);
|
|
16384
|
+
let callbacksLeftToRun = 0;
|
|
16384
16385
|
const registerCallback = (phase, phaseCallback) => {
|
|
16385
16386
|
if (!phaseCallback) {
|
|
16386
16387
|
return;
|
|
16387
16388
|
}
|
|
16388
16389
|
const callback = once
|
|
16389
16390
|
? (...args) => {
|
|
16390
|
-
|
|
16391
|
+
callbacksLeftToRun--;
|
|
16392
|
+
if (callbacksLeftToRun < 1) {
|
|
16393
|
+
destroy();
|
|
16394
|
+
}
|
|
16391
16395
|
phaseCallback(...args);
|
|
16392
16396
|
}
|
|
16393
16397
|
: phaseCallback;
|
|
16394
16398
|
const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, pipelinedArgs, callback));
|
|
16395
16399
|
callbackHandler.register(instance);
|
|
16396
16400
|
instances.push(instance);
|
|
16401
|
+
callbacksLeftToRun++;
|
|
16397
16402
|
};
|
|
16398
16403
|
registerCallback(AfterRenderPhase.EarlyRead, spec.earlyRead);
|
|
16399
16404
|
registerCallback(AfterRenderPhase.Write, spec.write);
|
|
@@ -17200,7 +17205,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
17200
17205
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
17201
17206
|
if (rootSelectorOrNode) {
|
|
17202
17207
|
// The placeholder will be replaced with the actual version at build time.
|
|
17203
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.0-next.
|
|
17208
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.0-next.1']);
|
|
17204
17209
|
}
|
|
17205
17210
|
else {
|
|
17206
17211
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -30998,7 +31003,7 @@ class Version {
|
|
|
30998
31003
|
/**
|
|
30999
31004
|
* @publicApi
|
|
31000
31005
|
*/
|
|
31001
|
-
const VERSION = new Version('18.2.0-next.
|
|
31006
|
+
const VERSION = new Version('18.2.0-next.1');
|
|
31002
31007
|
|
|
31003
31008
|
/*
|
|
31004
31009
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
@@ -36814,16 +36819,16 @@ class GlobalEventDelegation {
|
|
|
36814
36819
|
ngOnDestroy() {
|
|
36815
36820
|
this.eventContractDetails.instance?.cleanUp();
|
|
36816
36821
|
}
|
|
36817
|
-
supports(
|
|
36818
|
-
return
|
|
36822
|
+
supports(eventType) {
|
|
36823
|
+
return isEarlyEventType(eventType);
|
|
36819
36824
|
}
|
|
36820
|
-
addEventListener(element,
|
|
36821
|
-
this.eventContractDetails.instance.addEvent(
|
|
36822
|
-
|
|
36823
|
-
return () => this.removeEventListener(element,
|
|
36825
|
+
addEventListener(element, eventType, handler) {
|
|
36826
|
+
this.eventContractDetails.instance.addEvent(eventType);
|
|
36827
|
+
getActionCache(element)[eventType] = '';
|
|
36828
|
+
return () => this.removeEventListener(element, eventType, handler);
|
|
36824
36829
|
}
|
|
36825
|
-
removeEventListener(element,
|
|
36826
|
-
|
|
36830
|
+
removeEventListener(element, eventType, callback) {
|
|
36831
|
+
getActionCache(element)[eventType] = undefined;
|
|
36827
36832
|
}
|
|
36828
36833
|
static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
|
|
36829
36834
|
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
|
|
@@ -36841,7 +36846,6 @@ const initGlobalEventDelegation = (eventContractDetails, injector) => {
|
|
|
36841
36846
|
registerDispatcher(eventContract, dispatcher);
|
|
36842
36847
|
};
|
|
36843
36848
|
|
|
36844
|
-
const CONTRACT_PROPERTY = 'ngContracts';
|
|
36845
36849
|
/**
|
|
36846
36850
|
* A set of DOM elements with `jsaction` attributes.
|
|
36847
36851
|
*/
|
|
@@ -36871,7 +36875,7 @@ function withEventReplay() {
|
|
|
36871
36875
|
// is enabled, but there are no events configured in this application, in which case
|
|
36872
36876
|
// we don't activate this feature, since there are no events to replay.
|
|
36873
36877
|
const appId = inject(APP_ID);
|
|
36874
|
-
isEnabled = !!
|
|
36878
|
+
isEnabled = !!window._ejsas?.[appId];
|
|
36875
36879
|
}
|
|
36876
36880
|
if (isEnabled) {
|
|
36877
36881
|
performanceMarkFeature('NgEventReplay');
|
|
@@ -36921,15 +36925,10 @@ function withEventReplay() {
|
|
|
36921
36925
|
},
|
|
36922
36926
|
];
|
|
36923
36927
|
}
|
|
36924
|
-
// TODO: Upstream this back into event-dispatch.
|
|
36925
|
-
function getJsactionData(container) {
|
|
36926
|
-
return container._ejsa;
|
|
36927
|
-
}
|
|
36928
36928
|
const initEventReplay = (eventDelegation, injector) => {
|
|
36929
36929
|
const appId = injector.get(APP_ID);
|
|
36930
36930
|
// This is set in packages/platform-server/src/utils.ts
|
|
36931
|
-
const
|
|
36932
|
-
const earlyJsactionData = getJsactionData(container);
|
|
36931
|
+
const earlyJsactionData = window._ejsas[appId];
|
|
36933
36932
|
const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
|
|
36934
36933
|
/* useActionResolver= */ false));
|
|
36935
36934
|
for (const et of earlyJsactionData.et) {
|
|
@@ -36938,7 +36937,8 @@ const initEventReplay = (eventDelegation, injector) => {
|
|
|
36938
36937
|
for (const et of earlyJsactionData.etc) {
|
|
36939
36938
|
eventContract.addEvent(et);
|
|
36940
36939
|
}
|
|
36941
|
-
eventContract.replayEarlyEvents(
|
|
36940
|
+
eventContract.replayEarlyEvents(earlyJsactionData);
|
|
36941
|
+
window._ejsas[appId] = undefined;
|
|
36942
36942
|
const dispatcher = new EventDispatcher(invokeRegisteredListeners);
|
|
36943
36943
|
registerDispatcher(eventContract, dispatcher);
|
|
36944
36944
|
};
|
|
@@ -36947,11 +36947,11 @@ const initEventReplay = (eventDelegation, injector) => {
|
|
|
36947
36947
|
* LView. Maps collected events to a corresponding DOM element (an element is used as a key).
|
|
36948
36948
|
*/
|
|
36949
36949
|
function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
36950
|
-
const
|
|
36950
|
+
const domEventsInfo = new Map();
|
|
36951
36951
|
const lCleanup = lView[CLEANUP];
|
|
36952
36952
|
const tCleanup = tView.cleanup;
|
|
36953
36953
|
if (!tCleanup || !lCleanup) {
|
|
36954
|
-
return
|
|
36954
|
+
return domEventsInfo;
|
|
36955
36955
|
}
|
|
36956
36956
|
for (let i = 0; i < tCleanup.length;) {
|
|
36957
36957
|
const firstParam = tCleanup[i++];
|
|
@@ -36959,15 +36959,15 @@ function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
|
36959
36959
|
if (typeof firstParam !== 'string') {
|
|
36960
36960
|
continue;
|
|
36961
36961
|
}
|
|
36962
|
-
const
|
|
36963
|
-
if (!
|
|
36962
|
+
const eventType = firstParam;
|
|
36963
|
+
if (!isEarlyEventType(eventType)) {
|
|
36964
36964
|
continue;
|
|
36965
36965
|
}
|
|
36966
|
-
if (
|
|
36967
|
-
eventTypesToReplay.capture.add(
|
|
36966
|
+
if (isCaptureEventType(eventType)) {
|
|
36967
|
+
eventTypesToReplay.capture.add(eventType);
|
|
36968
36968
|
}
|
|
36969
36969
|
else {
|
|
36970
|
-
eventTypesToReplay.regular.add(
|
|
36970
|
+
eventTypesToReplay.regular.add(eventType);
|
|
36971
36971
|
}
|
|
36972
36972
|
const listenerElement = unwrapRNode(lView[secondParam]);
|
|
36973
36973
|
i++; // move the cursor to the next position (location of the listener idx)
|
|
@@ -36979,14 +36979,14 @@ function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
|
36979
36979
|
if (!isDomEvent) {
|
|
36980
36980
|
continue;
|
|
36981
36981
|
}
|
|
36982
|
-
if (!
|
|
36983
|
-
|
|
36982
|
+
if (!domEventsInfo.has(listenerElement)) {
|
|
36983
|
+
domEventsInfo.set(listenerElement, [eventType]);
|
|
36984
36984
|
}
|
|
36985
36985
|
else {
|
|
36986
|
-
|
|
36986
|
+
domEventsInfo.get(listenerElement).push(eventType);
|
|
36987
36987
|
}
|
|
36988
36988
|
}
|
|
36989
|
-
return
|
|
36989
|
+
return domEventsInfo;
|
|
36990
36990
|
}
|
|
36991
36991
|
|
|
36992
36992
|
/**
|