X Tutup
Skip to content

Commit c2a38c0

Browse files
jteplitzrkirov
authored andcommitted
fix(WebWorkers): Add support for transitionend events.
Closes #6649
1 parent 8bea667 commit c2a38c0

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

modules/angular2/src/web_workers/ui/event_dispatcher.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import {
33
serializeMouseEvent,
44
serializeKeyboardEvent,
55
serializeGenericEvent,
6-
serializeEventWithTarget
6+
serializeEventWithTarget,
7+
serializeTransitionEvent
78
} from 'angular2/src/web_workers/ui/event_serializer';
89
import {BaseException, WrappedException} from 'angular2/src/facade/exceptions';
910
import {StringMapWrapper} from 'angular2/src/facade/collection';
@@ -89,6 +90,9 @@ export class EventDispatcher {
8990
case "waiting":
9091
serializedEvent = serializeGenericEvent(event);
9192
break;
93+
case "transitionend":
94+
serializedEvent = serializeTransitionEvent(event);
95+
break;
9296
default:
9397
throw new BaseException(eventName + " not supported on WebWorkers");
9498
}

modules/angular2/src/web_workers/ui/event_serializer.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ Map<String, dynamic> serializeKeyboardEvent(dynamic e) {
8686
return serialized;
8787
}
8888

89+
Map<String, dynamic> serializeTransitionEvent(dynamic e) {
90+
var serialized = serializeGenericEvent(e);
91+
serialized['propertyName'] = e.propertyName;
92+
serialized['elapsedTime'] = e.elapsedTime;
93+
serialized['pseudoElement'] = e.pseudoElement;
94+
return addTarget(e, serialized);
95+
}
96+
8997
// TODO(jteplitz602): #3374. See above.
9098
Map<String, dynamic> addTarget(
9199
dynamic e, Map<String, dynamic> serializedEvent) {

modules/angular2/src/web_workers/ui/event_serializer.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ const KEYBOARD_EVENT_PROPERTIES = [
3232
'which'
3333
];
3434

35+
const TRANSITION_EVENT_PROPERTIES = ['propertyName', 'elapsedTime', 'pseudoElement'];
36+
3537
const EVENT_PROPERTIES = ['type', 'bubbles', 'cancelable'];
3638

3739
const NODES_WITH_VALUE =
@@ -57,6 +59,11 @@ export function serializeKeyboardEvent(e: KeyboardEvent): {[key: string]: any} {
5759
return addTarget(e, serializedEvent);
5860
}
5961

62+
export function serializeTransitionEvent(e: TransitionEvent): {[key: string]: any} {
63+
var serializedEvent = serializeEvent(e, TRANSITION_EVENT_PROPERTIES);
64+
return addTarget(e, serializedEvent);
65+
}
66+
6067
// TODO(jteplitz602): #3374. See above.
6168
function addTarget(e: Event, serializedEvent: {[key: string]: any}): {[key: string]: any} {
6269
if (NODES_WITH_VALUE.has((<HTMLElement>e.target).tagName.toLowerCase())) {

modules/angular2/src/web_workers/worker/event_deserializer.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ class GenericEvent {
3131
Point get page => _getPoint('page');
3232
Point get screen => _getPoint('screen');
3333

34+
String get propertyName => properties['propertyName'];
35+
num get elapsedTime => properties['elapsedTime'];
36+
String get pseudoElement => properties['pseudoElement'];
37+
3438
EventTarget get target {
3539
if (_target != null) {
3640
return _target;

0 commit comments

Comments
 (0)
X Tutup