@angular/core 18.0.0-rc.0 → 18.0.0-rc.2
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 +2 -2
- package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +221 -0
- package/esm2022/primitives/event-dispatch/src/attribute.mjs +63 -65
- package/esm2022/primitives/event-dispatch/src/cache.mjs +10 -10
- package/esm2022/primitives/event-dispatch/src/dispatcher.mjs +52 -176
- package/esm2022/primitives/event-dispatch/src/earlyeventcontract.mjs +15 -9
- package/esm2022/primitives/event-dispatch/src/event_contract_defines.mjs +1 -19
- package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +24 -362
- package/esm2022/primitives/event-dispatch/src/key_code.mjs +11 -13
- package/esm2022/primitives/event-dispatch/src/legacy_dispatcher.mjs +252 -2
- package/esm2022/primitives/event-dispatch/src/property.mjs +30 -27
- package/esm2022/primitives/event-dispatch/src/register_events.mjs +16 -17
- package/esm2022/primitives/event-dispatch/src/restriction.mjs +2 -2
- package/esm2022/src/application/application_ref.mjs +6 -3
- package/esm2022/src/application/create_application.mjs +12 -5
- package/esm2022/src/change_detection/scheduling/exhaustive_check_no_changes.mjs +150 -0
- package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +6 -4
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +3 -1
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +9 -6
- package/esm2022/src/core.mjs +2 -1
- package/esm2022/src/core_private_export.mjs +2 -1
- package/esm2022/src/core_reactivity_export_internal.mjs +1 -3
- package/esm2022/src/core_render3_private_export.mjs +1 -3
- package/esm2022/src/defer/instructions.mjs +20 -12
- package/esm2022/src/defer/interfaces.mjs +1 -3
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/hydration/event_replay.mjs +67 -79
- package/esm2022/src/hydration/utils.mjs +1 -2
- package/esm2022/src/metadata/directives.mjs +1 -1
- package/esm2022/src/platform/platform_ref.mjs +10 -4
- package/esm2022/src/render3/after_render_hooks.mjs +4 -2
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/render3/index.mjs +1 -3
- package/esm2022/src/render3/instructions/change_detection.mjs +13 -10
- package/esm2022/src/render3/instructions/listener.mjs +12 -1
- package/esm2022/src/render3/interfaces/public_definitions.mjs +1 -1
- package/esm2022/src/render3/state.mjs +14 -4
- package/esm2022/src/render3/view_ref.mjs +3 -2
- package/esm2022/src/util/callback_scheduler.mjs +12 -26
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/src/zone/ng_zone.mjs +9 -23
- package/esm2022/testing/src/component_fixture.mjs +2 -4
- package/esm2022/testing/src/defer.mjs +1 -2
- package/esm2022/testing/src/logger.mjs +3 -3
- package/esm2022/testing/src/test_bed.mjs +1 -3
- package/esm2022/testing/src/test_bed_compiler.mjs +3 -6
- package/event-dispatch-contract.min.js +1 -1
- package/fesm2022/core.mjs +800 -660
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +484 -807
- 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 +4 -10
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +36 -4
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +111 -162
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/http-providers/bundle.js +110 -71
- package/schematics/migrations/http-providers/bundle.js.map +3 -3
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +197 -167
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
- package/schematics/ng-generate/control-flow-migration/bundle.js +205 -175
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
- package/schematics/ng-generate/standalone-migration/bundle.js +481 -451
- package/schematics/ng-generate/standalone-migration/bundle.js.map +2 -2
- package/testing/index.d.ts +1 -4
- package/esm2022/primitives/event-dispatch/src/base_dispatcher.mjs +0 -96
- package/esm2022/primitives/event-dispatch/src/custom_events.mjs +0 -63
- package/esm2022/primitives/event-dispatch/src/replay.mjs +0 -389
package/testing/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.0.0-rc.
|
|
2
|
+
* @license Angular v18.0.0-rc.2
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -96,8 +96,6 @@ export declare abstract class ComponentFixture<T> {
|
|
|
96
96
|
whenStable(): Promise<any>;
|
|
97
97
|
/**
|
|
98
98
|
* Retrieves all defer block fixtures in the component fixture.
|
|
99
|
-
*
|
|
100
|
-
* @developerPreview
|
|
101
99
|
*/
|
|
102
100
|
getDeferBlocks(): Promise<DeferBlockFixture[]>;
|
|
103
101
|
private _getRenderer;
|
|
@@ -127,7 +125,6 @@ export { DeferBlockBehavior }
|
|
|
127
125
|
* Represents an individual defer block for testing purposes.
|
|
128
126
|
*
|
|
129
127
|
* @publicApi
|
|
130
|
-
* @developerPreview
|
|
131
128
|
*/
|
|
132
129
|
export declare class DeferBlockFixture {
|
|
133
130
|
private block;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { EventInfoWrapper } from './event_info';
|
|
9
|
-
import { Restriction } from './restriction';
|
|
10
|
-
/**
|
|
11
|
-
* Receives a DOM event, determines the jsaction associated with the source
|
|
12
|
-
* element of the DOM event, and invokes the handler associated with the
|
|
13
|
-
* jsaction.
|
|
14
|
-
*/
|
|
15
|
-
export class BaseDispatcher {
|
|
16
|
-
/**
|
|
17
|
-
* Options are:
|
|
18
|
-
* 1. `eventReplayer`: When the event contract dispatches replay events
|
|
19
|
-
* to the Dispatcher, the Dispatcher collects them and in the next tick
|
|
20
|
-
* dispatches them to the `eventReplayer`.
|
|
21
|
-
* @param dispatchDelegate A function that should handle dispatching an `EventInfoWrapper` to handlers.
|
|
22
|
-
*/
|
|
23
|
-
constructor(dispatchDelegate, { eventReplayer = undefined } = {}) {
|
|
24
|
-
this.dispatchDelegate = dispatchDelegate;
|
|
25
|
-
/** The queue of events. */
|
|
26
|
-
this.queuedEventInfoWrappers = [];
|
|
27
|
-
/** Whether the event replay is scheduled. */
|
|
28
|
-
this.eventReplayScheduled = false;
|
|
29
|
-
this.eventReplayer = eventReplayer;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Receives an event or the event queue from the EventContract. The event
|
|
33
|
-
* queue is copied and it attempts to replay.
|
|
34
|
-
* If event info is passed in it looks for an action handler that can handle
|
|
35
|
-
* the given event. If there is no handler registered queues the event and
|
|
36
|
-
* checks if a loader is registered for the given namespace. If so, calls it.
|
|
37
|
-
*
|
|
38
|
-
* Alternatively, if in global dispatch mode, calls all registered global
|
|
39
|
-
* handlers for the appropriate event type.
|
|
40
|
-
*
|
|
41
|
-
* The three functionalities of this call are deliberately not split into
|
|
42
|
-
* three methods (and then declared as an abstract interface), because the
|
|
43
|
-
* interface is used by EventContract, which lives in a different jsbinary.
|
|
44
|
-
* Therefore the interface between the three is defined entirely in terms that
|
|
45
|
-
* are invariant under jscompiler processing (Function and Array, as opposed
|
|
46
|
-
* to a custom type with method names).
|
|
47
|
-
*
|
|
48
|
-
* @param eventInfo The info for the event that triggered this call or the
|
|
49
|
-
* queue of events from EventContract.
|
|
50
|
-
* @param isGlobalDispatch If true, dispatches a global event instead of a
|
|
51
|
-
* regular jsaction handler.
|
|
52
|
-
*/
|
|
53
|
-
dispatch(eventInfo, isGlobalDispatch) {
|
|
54
|
-
const eventInfoWrapper = new EventInfoWrapper(eventInfo);
|
|
55
|
-
if (eventInfoWrapper.getIsReplay()) {
|
|
56
|
-
if (isGlobalDispatch || !this.eventReplayer) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this.queueEventInfoWrapper(eventInfoWrapper);
|
|
60
|
-
this.scheduleEventReplay();
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.dispatchDelegate(eventInfoWrapper, isGlobalDispatch);
|
|
64
|
-
}
|
|
65
|
-
/** Queue an `EventInfoWrapper` for replay. */
|
|
66
|
-
queueEventInfoWrapper(eventInfoWrapper) {
|
|
67
|
-
this.queuedEventInfoWrappers.push(eventInfoWrapper);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Replays queued events, if any. The replaying will happen in its own
|
|
71
|
-
* stack once the current flow cedes control. This is done to mimic
|
|
72
|
-
* browser event handling.
|
|
73
|
-
*/
|
|
74
|
-
scheduleEventReplay() {
|
|
75
|
-
if (this.eventReplayScheduled ||
|
|
76
|
-
!this.eventReplayer ||
|
|
77
|
-
this.queuedEventInfoWrappers.length === 0) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.eventReplayScheduled = true;
|
|
81
|
-
Promise.resolve().then(() => {
|
|
82
|
-
this.eventReplayScheduled = false;
|
|
83
|
-
this.eventReplayer(this.queuedEventInfoWrappers);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Registers deferred functionality for an EventContract and a Jsaction
|
|
89
|
-
* Dispatcher.
|
|
90
|
-
*/
|
|
91
|
-
export function registerDispatcher(eventContract, dispatcher) {
|
|
92
|
-
eventContract.ecrd((eventInfo, globalDispatch) => {
|
|
93
|
-
dispatcher.dispatch(eventInfo, globalDispatch);
|
|
94
|
-
}, Restriction.I_AM_THE_JSACTION_FRAMEWORK);
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9kaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9wcmltaXRpdmVzL2V2ZW50LWRpc3BhdGNoL3NyYy9iYXNlX2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFZLGdCQUFnQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVMUM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBUXpCOzs7Ozs7T0FNRztJQUNILFlBQ21CLGdCQUdSLEVBQ1QsRUFBQyxhQUFhLEdBQUcsU0FBUyxLQUFnQyxFQUFFO1FBSjNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FHeEI7UUFsQlgsMkJBQTJCO1FBQ1YsNEJBQXVCLEdBQXVCLEVBQUUsQ0FBQztRQUdsRSw2Q0FBNkM7UUFDckMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBZ0JuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILFFBQVEsQ0FBQyxTQUFvQixFQUFFLGdCQUEwQjtRQUN2RCxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzVDLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLHFCQUFxQixDQUFDLGdCQUFrQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUI7UUFDakIsSUFDRSxJQUFJLENBQUMsb0JBQW9CO1lBQ3pCLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDbkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQ3pDLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxhQUFxQyxFQUNyQyxVQUEwQjtJQUUxQixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBb0IsRUFBRSxjQUF3QixFQUFFLEVBQUU7UUFDcEUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQyxFQUFFLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFdmVudEluZm8sIEV2ZW50SW5mb1dyYXBwZXJ9IGZyb20gJy4vZXZlbnRfaW5mbyc7XG5pbXBvcnQge1VucmVuYW1lZEV2ZW50Q29udHJhY3R9IGZyb20gJy4vZXZlbnRjb250cmFjdCc7XG5pbXBvcnQge1Jlc3RyaWN0aW9ufSBmcm9tICcuL3Jlc3RyaWN0aW9uJztcbi8qKlxuICogQSByZXBsYXllciBpcyBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIHF1ZXVlZCBldmVudHMsXG4gKiBlaXRoZXIgZnJvbSB0aGUgYEV2ZW50Q29udHJhY3RgIG9yIHdoZW4gdGhlcmUgYXJlIG5vIGRldGVjdGVkIGhhbmRsZXJzLlxuICovXG5leHBvcnQgdHlwZSBSZXBsYXllciA9IChldmVudEluZm9XcmFwcGVyczogRXZlbnRJbmZvV3JhcHBlcltdKSA9PiB2b2lkO1xuLyoqXG4gKiBBIGhhbmRsZXIgaXMgZGlzcGF0Y2hlZCB0byBkdXJpbmcgbm9ybWFsIGhhbmRsaW5nLlxuICovXG5leHBvcnQgdHlwZSBFdmVudEluZm9XcmFwcGVySGFuZGxlciA9IChldmVudEluZm9XcmFwcGVyOiBFdmVudEluZm9XcmFwcGVyKSA9PiB2b2lkO1xuLyoqXG4gKiBSZWNlaXZlcyBhIERPTSBldmVudCwgZGV0ZXJtaW5lcyB0aGUganNhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzb3VyY2VcbiAqIGVsZW1lbnQgb2YgdGhlIERPTSBldmVudCwgYW5kIGludm9rZXMgdGhlIGhhbmRsZXIgYXNzb2NpYXRlZCB3aXRoIHRoZVxuICoganNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlRGlzcGF0Y2hlciB7XG4gIC8qKiBUaGUgcXVldWUgb2YgZXZlbnRzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXVlZEV2ZW50SW5mb1dyYXBwZXJzOiBFdmVudEluZm9XcmFwcGVyW10gPSBbXTtcbiAgLyoqIFRoZSByZXBsYXllciBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgcXVldWVkIGV2ZW50cy4gKi9cbiAgcHJpdmF0ZSBldmVudFJlcGxheWVyPzogUmVwbGF5ZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBldmVudCByZXBsYXkgaXMgc2NoZWR1bGVkLiAqL1xuICBwcml2YXRlIGV2ZW50UmVwbGF5U2NoZWR1bGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgYXJlOlxuICAgKiAgIDEuIGBldmVudFJlcGxheWVyYDogV2hlbiB0aGUgZXZlbnQgY29udHJhY3QgZGlzcGF0Y2hlcyByZXBsYXkgZXZlbnRzXG4gICAqICAgICAgdG8gdGhlIERpc3BhdGNoZXIsIHRoZSBEaXNwYXRjaGVyIGNvbGxlY3RzIHRoZW0gYW5kIGluIHRoZSBuZXh0IHRpY2tcbiAgICogICAgICBkaXNwYXRjaGVzIHRoZW0gdG8gdGhlIGBldmVudFJlcGxheWVyYC5cbiAgICogQHBhcmFtIGRpc3BhdGNoRGVsZWdhdGUgQSBmdW5jdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgZGlzcGF0Y2hpbmcgYW4gYEV2ZW50SW5mb1dyYXBwZXJgIHRvIGhhbmRsZXJzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwYXRjaERlbGVnYXRlOiAoXG4gICAgICBldmVudEluZm9XcmFwcGVyOiBFdmVudEluZm9XcmFwcGVyLFxuICAgICAgaXNHbG9iYWxEaXNwYXRjaD86IGJvb2xlYW4sXG4gICAgKSA9PiB2b2lkLFxuICAgIHtldmVudFJlcGxheWVyID0gdW5kZWZpbmVkfToge2V2ZW50UmVwbGF5ZXI/OiBSZXBsYXllcn0gPSB7fSxcbiAgKSB7XG4gICAgdGhpcy5ldmVudFJlcGxheWVyID0gZXZlbnRSZXBsYXllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNlaXZlcyBhbiBldmVudCBvciB0aGUgZXZlbnQgcXVldWUgZnJvbSB0aGUgRXZlbnRDb250cmFjdC4gVGhlIGV2ZW50XG4gICAqIHF1ZXVlIGlzIGNvcGllZCBhbmQgaXQgYXR0ZW1wdHMgdG8gcmVwbGF5LlxuICAgKiBJZiBldmVudCBpbmZvIGlzIHBhc3NlZCBpbiBpdCBsb29rcyBmb3IgYW4gYWN0aW9uIGhhbmRsZXIgdGhhdCBjYW4gaGFuZGxlXG4gICAqIHRoZSBnaXZlbiBldmVudC4gIElmIHRoZXJlIGlzIG5vIGhhbmRsZXIgcmVnaXN0ZXJlZCBxdWV1ZXMgdGhlIGV2ZW50IGFuZFxuICAgKiBjaGVja3MgaWYgYSBsb2FkZXIgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZS4gSWYgc28sIGNhbGxzIGl0LlxuICAgKlxuICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiBpbiBnbG9iYWwgZGlzcGF0Y2ggbW9kZSwgY2FsbHMgYWxsIHJlZ2lzdGVyZWQgZ2xvYmFsXG4gICAqIGhhbmRsZXJzIGZvciB0aGUgYXBwcm9wcmlhdGUgZXZlbnQgdHlwZS5cbiAgICpcbiAgICogVGhlIHRocmVlIGZ1bmN0aW9uYWxpdGllcyBvZiB0aGlzIGNhbGwgYXJlIGRlbGliZXJhdGVseSBub3Qgc3BsaXQgaW50b1xuICAgKiB0aHJlZSBtZXRob2RzIChhbmQgdGhlbiBkZWNsYXJlZCBhcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UpLCBiZWNhdXNlIHRoZVxuICAgKiBpbnRlcmZhY2UgaXMgdXNlZCBieSBFdmVudENvbnRyYWN0LCB3aGljaCBsaXZlcyBpbiBhIGRpZmZlcmVudCBqc2JpbmFyeS5cbiAgICogVGhlcmVmb3JlIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgdGhyZWUgaXMgZGVmaW5lZCBlbnRpcmVseSBpbiB0ZXJtcyB0aGF0XG4gICAqIGFyZSBpbnZhcmlhbnQgdW5kZXIganNjb21waWxlciBwcm9jZXNzaW5nIChGdW5jdGlvbiBhbmQgQXJyYXksIGFzIG9wcG9zZWRcbiAgICogdG8gYSBjdXN0b20gdHlwZSB3aXRoIG1ldGhvZCBuYW1lcykuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudEluZm8gVGhlIGluZm8gZm9yIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGlzIGNhbGwgb3IgdGhlXG4gICAqICAgICBxdWV1ZSBvZiBldmVudHMgZnJvbSBFdmVudENvbnRyYWN0LlxuICAgKiBAcGFyYW0gaXNHbG9iYWxEaXNwYXRjaCBJZiB0cnVlLCBkaXNwYXRjaGVzIGEgZ2xvYmFsIGV2ZW50IGluc3RlYWQgb2YgYVxuICAgKiAgICAgcmVndWxhciBqc2FjdGlvbiBoYW5kbGVyLlxuICAgKi9cbiAgZGlzcGF0Y2goZXZlbnRJbmZvOiBFdmVudEluZm8sIGlzR2xvYmFsRGlzcGF0Y2g/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRJbmZvV3JhcHBlciA9IG5ldyBFdmVudEluZm9XcmFwcGVyKGV2ZW50SW5mbyk7XG4gICAgaWYgKGV2ZW50SW5mb1dyYXBwZXIuZ2V0SXNSZXBsYXkoKSkge1xuICAgICAgaWYgKGlzR2xvYmFsRGlzcGF0Y2ggfHwgIXRoaXMuZXZlbnRSZXBsYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnF1ZXVlRXZlbnRJbmZvV3JhcHBlcihldmVudEluZm9XcmFwcGVyKTtcbiAgICAgIHRoaXMuc2NoZWR1bGVFdmVudFJlcGxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRGVsZWdhdGUoZXZlbnRJbmZvV3JhcHBlciwgaXNHbG9iYWxEaXNwYXRjaCk7XG4gIH1cblxuICAvKiogUXVldWUgYW4gYEV2ZW50SW5mb1dyYXBwZXJgIGZvciByZXBsYXkuICovXG4gIHF1ZXVlRXZlbnRJbmZvV3JhcHBlcihldmVudEluZm9XcmFwcGVyOiBFdmVudEluZm9XcmFwcGVyKSB7XG4gICAgdGhpcy5xdWV1ZWRFdmVudEluZm9XcmFwcGVycy5wdXNoKGV2ZW50SW5mb1dyYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxheXMgcXVldWVkIGV2ZW50cywgaWYgYW55LiBUaGUgcmVwbGF5aW5nIHdpbGwgaGFwcGVuIGluIGl0cyBvd25cbiAgICogc3RhY2sgb25jZSB0aGUgY3VycmVudCBmbG93IGNlZGVzIGNvbnRyb2wuIFRoaXMgaXMgZG9uZSB0byBtaW1pY1xuICAgKiBicm93c2VyIGV2ZW50IGhhbmRsaW5nLlxuICAgKi9cbiAgc2NoZWR1bGVFdmVudFJlcGxheSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmV2ZW50UmVwbGF5U2NoZWR1bGVkIHx8XG4gICAgICAhdGhpcy5ldmVudFJlcGxheWVyIHx8XG4gICAgICB0aGlzLnF1ZXVlZEV2ZW50SW5mb1dyYXBwZXJzLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50UmVwbGF5U2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRSZXBsYXlTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXZlbnRSZXBsYXllciEodGhpcy5xdWV1ZWRFdmVudEluZm9XcmFwcGVycyk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgZGVmZXJyZWQgZnVuY3Rpb25hbGl0eSBmb3IgYW4gRXZlbnRDb250cmFjdCBhbmQgYSBKc2FjdGlvblxuICogRGlzcGF0Y2hlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGlzcGF0Y2hlcihcbiAgZXZlbnRDb250cmFjdDogVW5yZW5hbWVkRXZlbnRDb250cmFjdCxcbiAgZGlzcGF0Y2hlcjogQmFzZURpc3BhdGNoZXIsXG4pIHtcbiAgZXZlbnRDb250cmFjdC5lY3JkKChldmVudEluZm86IEV2ZW50SW5mbywgZ2xvYmFsRGlzcGF0Y2g/OiBib29sZWFuKSA9PiB7XG4gICAgZGlzcGF0Y2hlci5kaXNwYXRjaChldmVudEluZm8sIGdsb2JhbERpc3BhdGNoKTtcbiAgfSwgUmVzdHJpY3Rpb24uSV9BTV9USEVfSlNBQ1RJT05fRlJBTUVXT1JLKTtcbn1cbiJdfQ==
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { EventType } from './/event_type';
|
|
9
|
-
/**
|
|
10
|
-
* Create a custom event with the specified data.
|
|
11
|
-
* @param type The type of the action, e.g., 'submit'.
|
|
12
|
-
* @param data An optional data payload.
|
|
13
|
-
* @param triggeringEvent The event that triggers this custom event. This can be
|
|
14
|
-
* accessed from the custom event's action flow like so:
|
|
15
|
-
* actionFlow.event().detail.triggeringEvent.
|
|
16
|
-
* @return The new custom event.
|
|
17
|
-
*/
|
|
18
|
-
export function createCustomEvent(type, data, triggeringEvent) {
|
|
19
|
-
let event;
|
|
20
|
-
const unrenamedDetail = {
|
|
21
|
-
'_type': type,
|
|
22
|
-
};
|
|
23
|
-
const renamedDetail = {
|
|
24
|
-
type,
|
|
25
|
-
data,
|
|
26
|
-
triggeringEvent,
|
|
27
|
-
};
|
|
28
|
-
const detail = { ...unrenamedDetail, ...renamedDetail };
|
|
29
|
-
try {
|
|
30
|
-
// We don't use the CustomEvent constructor directly since it isn't
|
|
31
|
-
// supported in IE 9 or 10 and initCustomEvent below works just fine.
|
|
32
|
-
event = document.createEvent('CustomEvent');
|
|
33
|
-
event.initCustomEvent(EventType.CUSTOM, true, false, detail);
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
// If custom events aren't supported, fall back to custom-named HTMLEvent.
|
|
37
|
-
// Fallback used by Android Gingerbread, FF4-5.
|
|
38
|
-
// Hack to emulate `CustomEvent`, `HTMLEvents` doesn't satisfy `CustomEvent`
|
|
39
|
-
// type.
|
|
40
|
-
// tslint:disable-next-line:no-any
|
|
41
|
-
event = document.createEvent('HTMLEvents');
|
|
42
|
-
event.initEvent(EventType.CUSTOM, true, false);
|
|
43
|
-
// Hack to emulate `CustomEvent`, `detail` is readonly on `CustomEvent`.
|
|
44
|
-
// tslint:disable-next-line:no-any
|
|
45
|
-
event['detail'] = detail;
|
|
46
|
-
}
|
|
47
|
-
return event;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Fires a custom event with an optional payload. Only intended to be consumed
|
|
51
|
-
* by jsaction itself. Supported in Firefox 6+, IE 9+, and all Chrome versions.
|
|
52
|
-
*
|
|
53
|
-
* @param target The target element.
|
|
54
|
-
* @param type The type of the action, e.g., 'submit'.
|
|
55
|
-
* @param data An optional data payload.
|
|
56
|
-
* @param triggeringEvent An optional data for the Event triggered this custom
|
|
57
|
-
* event.
|
|
58
|
-
*/
|
|
59
|
-
export function fireCustomEvent(target, type, data, triggeringEvent) {
|
|
60
|
-
const event = createCustomEvent(type, data, triggeringEvent);
|
|
61
|
-
target.dispatchEvent(event);
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tX2V2ZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcHJpbWl0aXZlcy9ldmVudC1kaXNwYXRjaC9zcmMvY3VzdG9tX2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBZXhDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFJLElBQVksRUFBRSxJQUFRLEVBQUUsZUFBdUI7SUFDbEYsSUFBSSxLQUFxRSxDQUFDO0lBQzFFLE1BQU0sZUFBZSxHQUErQjtRQUNsRCxPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7SUFDRixNQUFNLGFBQWEsR0FBeUI7UUFDMUMsSUFBSTtRQUNKLElBQUk7UUFDSixlQUFlO0tBQ2hCLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxFQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxFQUFDLENBQUM7SUFDdEQsSUFBSSxDQUFDO1FBQ0gsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLDBFQUEwRTtRQUMxRSwrQ0FBK0M7UUFFL0MsNEVBQTRFO1FBQzVFLFFBQVE7UUFDUixrQ0FBa0M7UUFDbEMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFRLENBQUM7UUFDbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyx3RUFBd0U7UUFDeEUsa0NBQWtDO1FBQ2pDLEtBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQWUsRUFDZixJQUFZLEVBQ1osSUFBUSxFQUNSLGVBQXVCO0lBRXZCLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDN0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RXZlbnRUeXBlfSBmcm9tICcuLy9ldmVudF90eXBlJztcblxuLy8gV2UgdXNlICdfdHlwZScgZm9yIHRoZSBldmVudCBjb250cmFjdCwgd2hpY2ggbGl2ZXMgaW4gYSBzZXBhcmF0ZVxuLy8gY29tcGlsYXRpb24gdW5pdC5cbmRlY2xhcmUgaW50ZXJmYWNlIFVucmVuYW1lZEN1c3RvbUV2ZW50RGV0YWlsIHtcbiAgX3R5cGU6IHN0cmluZztcbn1cblxuLyoqIFRoZSBkZXRhaWwgaW50ZXJmYWNlIHByb3ZpZGVkIGZvciBjdXN0b20gZXZlbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21FdmVudERldGFpbDxUPiB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGF0YT86IFQ7XG4gIHRyaWdnZXJpbmdFdmVudD86IEV2ZW50O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGN1c3RvbSBldmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgZGF0YS5cbiAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBhY3Rpb24sIGUuZy4sICdzdWJtaXQnLlxuICogQHBhcmFtIGRhdGEgQW4gb3B0aW9uYWwgZGF0YSBwYXlsb2FkLlxuICogQHBhcmFtIHRyaWdnZXJpbmdFdmVudCBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VycyB0aGlzIGN1c3RvbSBldmVudC4gVGhpcyBjYW4gYmVcbiAqICAgICBhY2Nlc3NlZCBmcm9tIHRoZSBjdXN0b20gZXZlbnQncyBhY3Rpb24gZmxvdyBsaWtlIHNvOlxuICogICAgIGFjdGlvbkZsb3cuZXZlbnQoKS5kZXRhaWwudHJpZ2dlcmluZ0V2ZW50LlxuICogQHJldHVybiBUaGUgbmV3IGN1c3RvbSBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUV2ZW50PFQ+KHR5cGU6IHN0cmluZywgZGF0YT86IFQsIHRyaWdnZXJpbmdFdmVudD86IEV2ZW50KTogRXZlbnQge1xuICBsZXQgZXZlbnQ6IEN1c3RvbUV2ZW50PEN1c3RvbUV2ZW50RGV0YWlsPFQ+ICYgVW5yZW5hbWVkQ3VzdG9tRXZlbnREZXRhaWw+O1xuICBjb25zdCB1bnJlbmFtZWREZXRhaWw6IFVucmVuYW1lZEN1c3RvbUV2ZW50RGV0YWlsID0ge1xuICAgICdfdHlwZSc6IHR5cGUsXG4gIH07XG4gIGNvbnN0IHJlbmFtZWREZXRhaWw6IEN1c3RvbUV2ZW50RGV0YWlsPFQ+ID0ge1xuICAgIHR5cGUsXG4gICAgZGF0YSxcbiAgICB0cmlnZ2VyaW5nRXZlbnQsXG4gIH07XG4gIGNvbnN0IGRldGFpbCA9IHsuLi51bnJlbmFtZWREZXRhaWwsIC4uLnJlbmFtZWREZXRhaWx9O1xuICB0cnkge1xuICAgIC8vIFdlIGRvbid0IHVzZSB0aGUgQ3VzdG9tRXZlbnQgY29uc3RydWN0b3IgZGlyZWN0bHkgc2luY2UgaXQgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgaW4gSUUgOSBvciAxMCBhbmQgaW5pdEN1c3RvbUV2ZW50IGJlbG93IHdvcmtzIGp1c3QgZmluZS5cbiAgICBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgIGV2ZW50LmluaXRDdXN0b21FdmVudChFdmVudFR5cGUuQ1VTVE9NLCB0cnVlLCBmYWxzZSwgZGV0YWlsKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIElmIGN1c3RvbSBldmVudHMgYXJlbid0IHN1cHBvcnRlZCwgZmFsbCBiYWNrIHRvIGN1c3RvbS1uYW1lZCBIVE1MRXZlbnQuXG4gICAgLy8gRmFsbGJhY2sgdXNlZCBieSBBbmRyb2lkIEdpbmdlcmJyZWFkLCBGRjQtNS5cblxuICAgIC8vIEhhY2sgdG8gZW11bGF0ZSBgQ3VzdG9tRXZlbnRgLCBgSFRNTEV2ZW50c2AgZG9lc24ndCBzYXRpc2Z5IGBDdXN0b21FdmVudGBcbiAgICAvLyB0eXBlLlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgICBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJykgYXMgYW55O1xuICAgIGV2ZW50LmluaXRFdmVudChFdmVudFR5cGUuQ1VTVE9NLCB0cnVlLCBmYWxzZSk7XG4gICAgLy8gSGFjayB0byBlbXVsYXRlIGBDdXN0b21FdmVudGAsIGBkZXRhaWxgIGlzIHJlYWRvbmx5IG9uIGBDdXN0b21FdmVudGAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICAgIChldmVudCBhcyBhbnkpWydkZXRhaWwnXSA9IGRldGFpbDtcbiAgfVxuXG4gIHJldHVybiBldmVudDtcbn1cblxuLyoqXG4gKiBGaXJlcyBhIGN1c3RvbSBldmVudCB3aXRoIGFuIG9wdGlvbmFsIHBheWxvYWQuIE9ubHkgaW50ZW5kZWQgdG8gYmUgY29uc3VtZWRcbiAqIGJ5IGpzYWN0aW9uIGl0c2VsZi4gU3VwcG9ydGVkIGluIEZpcmVmb3ggNissIElFIDkrLCBhbmQgYWxsIENocm9tZSB2ZXJzaW9ucy5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgZWxlbWVudC5cbiAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBhY3Rpb24sIGUuZy4sICdzdWJtaXQnLlxuICogQHBhcmFtIGRhdGEgQW4gb3B0aW9uYWwgZGF0YSBwYXlsb2FkLlxuICogQHBhcmFtIHRyaWdnZXJpbmdFdmVudCBBbiBvcHRpb25hbCBkYXRhIGZvciB0aGUgRXZlbnQgdHJpZ2dlcmVkIHRoaXMgY3VzdG9tXG4gKiAgICAgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlQ3VzdG9tRXZlbnQ8VD4oXG4gIHRhcmdldDogRWxlbWVudCxcbiAgdHlwZTogc3RyaW5nLFxuICBkYXRhPzogVCxcbiAgdHJpZ2dlcmluZ0V2ZW50PzogRXZlbnQsXG4pIHtcbiAgY29uc3QgZXZlbnQgPSBjcmVhdGVDdXN0b21FdmVudCh0eXBlLCBkYXRhLCB0cmlnZ2VyaW5nRXZlbnQpO1xuICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG4iXX0=
|