@angular/cdk 13.2.4 → 13.2.5

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.
Files changed (50) hide show
  1. package/drag-drop/drag-ref.d.ts +3 -1
  2. package/esm2020/drag-drop/drag-ref.mjs +13 -12
  3. package/esm2020/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +24 -6
  4. package/esm2020/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +31 -10
  5. package/esm2020/testing/protractor/protractor-element.mjs +8 -3
  6. package/esm2020/testing/public-api.mjs +2 -1
  7. package/esm2020/testing/selenium-webdriver/selenium-web-driver-element.mjs +8 -3
  8. package/esm2020/testing/test-element-errors.mjs +15 -0
  9. package/esm2020/testing/test-element.mjs +1 -1
  10. package/esm2020/testing/testbed/fake-events/type-in-element.mjs +12 -3
  11. package/esm2020/testing/testbed/unit-test-element.mjs +19 -5
  12. package/esm2020/version.mjs +1 -1
  13. package/fesm2015/cdk.mjs +1 -1
  14. package/fesm2015/cdk.mjs.map +1 -1
  15. package/fesm2015/drag-drop.mjs +12 -11
  16. package/fesm2015/drag-drop.mjs.map +1 -1
  17. package/fesm2015/overlay.mjs +52 -13
  18. package/fesm2015/overlay.mjs.map +1 -1
  19. package/fesm2015/testing/protractor.mjs +7 -2
  20. package/fesm2015/testing/protractor.mjs.map +1 -1
  21. package/fesm2015/testing/selenium-webdriver.mjs +7 -2
  22. package/fesm2015/testing/selenium-webdriver.mjs.map +1 -1
  23. package/fesm2015/testing/testbed.mjs +29 -7
  24. package/fesm2015/testing/testbed.mjs.map +1 -1
  25. package/fesm2015/testing.mjs +16 -1
  26. package/fesm2015/testing.mjs.map +1 -1
  27. package/fesm2020/cdk.mjs +1 -1
  28. package/fesm2020/cdk.mjs.map +1 -1
  29. package/fesm2020/drag-drop.mjs +12 -11
  30. package/fesm2020/drag-drop.mjs.map +1 -1
  31. package/fesm2020/overlay.mjs +52 -13
  32. package/fesm2020/overlay.mjs.map +1 -1
  33. package/fesm2020/testing/protractor.mjs +7 -2
  34. package/fesm2020/testing/protractor.mjs.map +1 -1
  35. package/fesm2020/testing/selenium-webdriver.mjs +7 -2
  36. package/fesm2020/testing/selenium-webdriver.mjs.map +1 -1
  37. package/fesm2020/testing/testbed.mjs +29 -7
  38. package/fesm2020/testing/testbed.mjs.map +1 -1
  39. package/fesm2020/testing.mjs +16 -1
  40. package/fesm2020/testing.mjs.map +1 -1
  41. package/overlay/dispatchers/overlay-keyboard-dispatcher.d.ts +7 -2
  42. package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +8 -2
  43. package/package.json +1 -1
  44. package/schematics/ng-add/index.js +1 -1
  45. package/schematics/ng-add/index.mjs +1 -1
  46. package/testing/public-api.d.ts +1 -0
  47. package/testing/test-element-errors.d.ts +12 -0
  48. package/testing/test-element.d.ts +4 -2
  49. package/testing/testbed/fake-events/type-in-element.d.ts +2 -2
  50. package/testing/testbed/unit-test-element.d.ts +4 -1
@@ -4,7 +4,7 @@ export { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scr
4
4
  import * as i6 from '@angular/common';
5
5
  import { DOCUMENT } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
- import { Injectable, Inject, ElementRef, ApplicationRef, InjectionToken, Directive, EventEmitter, Optional, Input, Output, NgModule } from '@angular/core';
7
+ import { Injectable, Inject, ElementRef, Optional, ApplicationRef, InjectionToken, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';
8
8
  import { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';
9
9
  import * as i1$1 from '@angular/cdk/platform';
10
10
  import { supportsScrollBehavior, _isTestEnvironment, _getEventTarget } from '@angular/cdk/platform';
@@ -2212,8 +2212,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
2212
2212
  * on event target and order of overlay opens.
2213
2213
  */
2214
2214
  class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
2215
- constructor(document) {
2215
+ constructor(document,
2216
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2217
+ _ngZone) {
2216
2218
  super(document);
2219
+ this._ngZone = _ngZone;
2217
2220
  /** Keyboard event listener that will be attached to the body. */
2218
2221
  this._keydownListener = (event) => {
2219
2222
  const overlays = this._attachedOverlays;
@@ -2225,7 +2228,14 @@ class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
2225
2228
  // because we don't want overlays that don't handle keyboard events to block the ones below
2226
2229
  // them that do.
2227
2230
  if (overlays[i]._keydownEvents.observers.length > 0) {
2228
- overlays[i]._keydownEvents.next(event);
2231
+ const keydownEvents = overlays[i]._keydownEvents;
2232
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2233
+ if (this._ngZone) {
2234
+ this._ngZone.run(() => keydownEvents.next(event));
2235
+ }
2236
+ else {
2237
+ keydownEvents.next(event);
2238
+ }
2229
2239
  break;
2230
2240
  }
2231
2241
  }
@@ -2236,7 +2246,13 @@ class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
2236
2246
  super.add(overlayRef);
2237
2247
  // Lazily start dispatcher once first overlay is added
2238
2248
  if (!this._isAttached) {
2239
- this._document.body.addEventListener('keydown', this._keydownListener);
2249
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2250
+ if (this._ngZone) {
2251
+ this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));
2252
+ }
2253
+ else {
2254
+ this._document.body.addEventListener('keydown', this._keydownListener);
2255
+ }
2240
2256
  this._isAttached = true;
2241
2257
  }
2242
2258
  }
@@ -2248,7 +2264,7 @@ class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
2248
2264
  }
2249
2265
  }
2250
2266
  }
2251
- OverlayKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2267
+ OverlayKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2252
2268
  OverlayKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' });
2253
2269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{
2254
2270
  type: Injectable,
@@ -2257,6 +2273,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
2257
2273
  return [{ type: undefined, decorators: [{
2258
2274
  type: Inject,
2259
2275
  args: [DOCUMENT]
2276
+ }] }, { type: i0.NgZone, decorators: [{
2277
+ type: Optional
2260
2278
  }] }];
2261
2279
  } });
2262
2280
 
@@ -2273,9 +2291,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
2273
2291
  * on event target and order of overlay opens.
2274
2292
  */
2275
2293
  class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
2276
- constructor(document, _platform) {
2294
+ constructor(document, _platform,
2295
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2296
+ _ngZone) {
2277
2297
  super(document);
2278
2298
  this._platform = _platform;
2299
+ this._ngZone = _ngZone;
2279
2300
  this._cursorStyleIsSet = false;
2280
2301
  /** Store pointerdown event target to track origin of click. */
2281
2302
  this._pointerDownListener = (event) => {
@@ -2316,7 +2337,14 @@ class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
2316
2337
  overlayRef.overlayElement.contains(origin)) {
2317
2338
  break;
2318
2339
  }
2319
- overlayRef._outsidePointerEvents.next(event);
2340
+ const outsidePointerEvents = overlayRef._outsidePointerEvents;
2341
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2342
+ if (this._ngZone) {
2343
+ this._ngZone.run(() => outsidePointerEvents.next(event));
2344
+ }
2345
+ else {
2346
+ outsidePointerEvents.next(event);
2347
+ }
2320
2348
  }
2321
2349
  };
2322
2350
  }
@@ -2331,10 +2359,13 @@ class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
2331
2359
  // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html
2332
2360
  if (!this._isAttached) {
2333
2361
  const body = this._document.body;
2334
- body.addEventListener('pointerdown', this._pointerDownListener, true);
2335
- body.addEventListener('click', this._clickListener, true);
2336
- body.addEventListener('auxclick', this._clickListener, true);
2337
- body.addEventListener('contextmenu', this._clickListener, true);
2362
+ /** @breaking-change 14.0.0 _ngZone will be required. */
2363
+ if (this._ngZone) {
2364
+ this._ngZone.runOutsideAngular(() => this._addEventListeners(body));
2365
+ }
2366
+ else {
2367
+ this._addEventListeners(body);
2368
+ }
2338
2369
  // click event is not fired on iOS. To make element "clickable" we are
2339
2370
  // setting the cursor to pointer
2340
2371
  if (this._platform.IOS && !this._cursorStyleIsSet) {
@@ -2360,8 +2391,14 @@ class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
2360
2391
  this._isAttached = false;
2361
2392
  }
2362
2393
  }
2394
+ _addEventListeners(body) {
2395
+ body.addEventListener('pointerdown', this._pointerDownListener, true);
2396
+ body.addEventListener('click', this._clickListener, true);
2397
+ body.addEventListener('auxclick', this._clickListener, true);
2398
+ body.addEventListener('contextmenu', this._clickListener, true);
2399
+ }
2363
2400
  }
2364
- OverlayOutsideClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
2401
+ OverlayOutsideClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2365
2402
  OverlayOutsideClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' });
2366
2403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{
2367
2404
  type: Injectable,
@@ -2370,7 +2407,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
2370
2407
  return [{ type: undefined, decorators: [{
2371
2408
  type: Inject,
2372
2409
  args: [DOCUMENT]
2373
- }] }, { type: i1$1.Platform }];
2410
+ }] }, { type: i1$1.Platform }, { type: i0.NgZone, decorators: [{
2411
+ type: Optional
2412
+ }] }];
2374
2413
  } });
2375
2414
 
2376
2415
  /** Next overlay unique ID. */