diff --git a/aio/scripts/_payload-limits.json b/aio/scripts/_payload-limits.json index ad9cc918ef..6de9bf06e5 100755 --- a/aio/scripts/_payload-limits.json +++ b/aio/scripts/_payload-limits.json @@ -28,8 +28,8 @@ "uncompressed": { "runtime-es5": 2932, "runtime-es2015": 2938, - "main-es5": 554068, - "main-es2015": 495320, + "main-es5": 552068, + "main-es2015": 493320, "polyfills-es5": 131024, "polyfills-es2015": 52433 } diff --git a/integration/_payload-limits.json b/integration/_payload-limits.json index a8de81aab5..58fb24e623 100644 --- a/integration/_payload-limits.json +++ b/integration/_payload-limits.json @@ -3,7 +3,7 @@ "master": { "uncompressed": { "runtime": 1497, - "main": 164387, + "main": 161490, "polyfills": 45399 } } @@ -21,7 +21,7 @@ "master": { "uncompressed": { "runtime": 1440, - "main": 130975, + "main": 128448, "polyfills": 45340 } } diff --git a/packages/core/test/linker/integration_spec.ts b/packages/core/test/linker/integration_spec.ts index e5b6dab56b..23727dbea7 100644 --- a/packages/core/test/linker/integration_spec.ts +++ b/packages/core/test/linker/integration_spec.ts @@ -19,7 +19,7 @@ import {EmbeddedViewRef} from '@angular/core/src/linker/view_ref'; import {Attribute, Component, ContentChildren, Directive, HostBinding, HostListener, Input, Output, Pipe} from '@angular/core/src/metadata'; import {TestBed, async, fakeAsync, getTestBed, tick} from '@angular/core/testing'; import {getDOM} from '@angular/platform-browser/src/dom/dom_adapter'; -import {dispatchEvent, el, isCommentNode} from '@angular/platform-browser/testing/src/browser_util'; +import {createMouseEvent, dispatchEvent, el, isCommentNode} from '@angular/platform-browser/testing/src/browser_util'; import {expect} from '@angular/platform-browser/testing/src/matchers'; import {modifiedInIvy, obsoleteInIvy, onlyInIvy} from '@angular/private/testing'; @@ -1000,12 +1000,12 @@ function declareTests(config?: {useJit: boolean}) { TestBed.overrideComponent(MyComp, {set: {template}}); const fixture = TestBed.createComponent(MyComp); - const dispatchedEvent = getDOM().createMouseEvent('click'); - const dispatchedEvent2 = getDOM().createMouseEvent('click'); + const dispatchedEvent = createMouseEvent('click'); + const dispatchedEvent2 = createMouseEvent('click'); getDOM().dispatchEvent(fixture.debugElement.children[0].nativeElement, dispatchedEvent); getDOM().dispatchEvent(fixture.debugElement.children[1].nativeElement, dispatchedEvent2); - expect(getDOM().isPrevented(dispatchedEvent)).toBe(true); - expect(getDOM().isPrevented(dispatchedEvent2)).toBe(false); + expect(isPrevented(dispatchedEvent)).toBe(true); + expect(isPrevented(dispatchedEvent2)).toBe(false); expect(fixture.debugElement.children[0].nativeElement.checked).toBeFalsy(); expect(fixture.debugElement.children[1].nativeElement.checked).toBeTruthy(); }); @@ -1493,9 +1493,8 @@ function declareTests(config?: {useJit: boolean}) { expect(noSelectorComponentFactory.selector).toBe('ng-component'); - expect( - noSelectorComponentFactory.create(Injector.NULL).location.nativeElement.nodeName - .toLowerCase()) + expect(noSelectorComponentFactory.create(Injector.NULL) + .location.nativeElement.nodeName.toLowerCase()) .toEqual('ng-component'); }); }); @@ -1961,7 +1960,7 @@ function declareTests(config?: {useJit: boolean}) { fixture.detectChanges(); const dir = fixture.debugElement.children[0].injector.get(DirectiveWithPropDecorators); const native = fixture.debugElement.children[0].nativeElement; - getDOM().dispatchEvent(native, getDOM().createMouseEvent('click')); + getDOM().dispatchEvent(native, createMouseEvent('click')); expect(dir.target).toBe(native); }); @@ -2745,3 +2744,7 @@ export class ParentCmp { class SomeCmpWithInput { @Input() test$: any; } + +function isPrevented(evt: Event): boolean { + return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue; +} diff --git a/packages/platform-browser/src/browser/browser_adapter.ts b/packages/platform-browser/src/browser/browser_adapter.ts index 29eba32db0..e68933fb8f 100644 --- a/packages/platform-browser/src/browser/browser_adapter.ts +++ b/packages/platform-browser/src/browser/browser_adapter.ts @@ -113,7 +113,6 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter { contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); } querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); } querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); } - on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); } onAndCancel(el: Node, evt: any, listener: any): Function { el.addEventListener(evt, listener, false); // Needed to follow Dart's subscription semantic, until fix of @@ -121,23 +120,6 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter { return () => { el.removeEventListener(evt, listener, false); }; } dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); } - createMouseEvent(eventType: string): MouseEvent { - const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent'); - evt.initEvent(eventType, true, true); - return evt; - } - createEvent(eventType: any): Event { - const evt: Event = this.getDefaultDocument().createEvent('Event'); - evt.initEvent(eventType, true, true); - return evt; - } - preventDefault(evt: Event) { - evt.preventDefault(); - evt.returnValue = false; - } - isPrevented(evt: Event): boolean { - return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue; - } nextSibling(el: Node): Node|null { return el.nextSibling; } parentElement(el: Node): Node|null { return el.parentNode; } clearNodes(el: Node) { diff --git a/packages/platform-browser/src/dom/dom_adapter.ts b/packages/platform-browser/src/dom/dom_adapter.ts index 2303f684e8..b049f22947 100644 --- a/packages/platform-browser/src/dom/dom_adapter.ts +++ b/packages/platform-browser/src/dom/dom_adapter.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.io/license */ -import {Type} from '@angular/core'; let _DOM: DomAdapter = null !; @@ -45,13 +44,7 @@ export abstract class DomAdapter { abstract parse(templateHtml: string): any; abstract querySelector(el: any, selector: string): any; abstract querySelectorAll(el: any, selector: string): any[]; - abstract on(el: any, evt: any, listener: any): any; - abstract onAndCancel(el: any, evt: any, listener: any): Function; abstract dispatchEvent(el: any, evt: any): any; - abstract createMouseEvent(eventType: any): any; - abstract createEvent(eventType: string): any; - abstract preventDefault(evt: any): any; - abstract isPrevented(evt: any): boolean; // Used by Meta abstract remove(el: any): Node; @@ -95,6 +88,7 @@ export abstract class DomAdapter { abstract getHost(el: any): any; // Used by KeyEventsPlugin + abstract onAndCancel(el: any, evt: any, listener: any): Function; abstract getEventKey(event: any): string; abstract supportsDOMEvents(): boolean; diff --git a/packages/platform-browser/test/dom/events/event_manager_spec.ts b/packages/platform-browser/test/dom/events/event_manager_spec.ts index a1da0f2e49..3510d4f146 100644 --- a/packages/platform-browser/test/dom/events/event_manager_spec.ts +++ b/packages/platform-browser/test/dom/events/event_manager_spec.ts @@ -11,7 +11,8 @@ import {beforeEach, describe, expect, it} from '@angular/core/testing/src/testin import {getDOM} from '@angular/platform-browser/src/dom/dom_adapter'; import {DomEventsPlugin} from '@angular/platform-browser/src/dom/events/dom_events'; import {EventManager, EventManagerPlugin} from '@angular/platform-browser/src/dom/events/event_manager'; -import {el} from '../../../testing/src/browser_util'; + +import {createMouseEvent, el} from '../../../testing/src/browser_util'; (function() { if (isNode) return; @@ -63,8 +64,8 @@ import {el} from '../../../testing/src/browser_util'; // Workaround for https://bugs.webkit.org/show_bug.cgi?id=122755 getDOM().appendChild(doc.body, element); - const child = element.firstChild; - const dispatchedEvent = getDOM().createMouseEvent('click'); + const child = element.firstChild as Element; + const dispatchedEvent = createMouseEvent('click'); let receivedEvent: any /** TODO #9100 */ = null; const handler = (e: any /** TODO #9100 */) => { receivedEvent = e; }; const manager = new EventManager([domEventPlugin], new FakeNgZone()); @@ -77,7 +78,7 @@ import {el} from '../../../testing/src/browser_util'; it('should add and remove global event listeners', () => { const element = el('