@vaadin/app-layout 24.0.10 → 24.0.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/app-layout",
3
- "version": "24.0.10",
3
+ "version": "24.0.11",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -36,15 +36,15 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@polymer/polymer": "^3.0.0",
39
- "@vaadin/button": "~24.0.10",
40
- "@vaadin/component-base": "~24.0.10",
41
- "@vaadin/vaadin-lumo-styles": "~24.0.10",
42
- "@vaadin/vaadin-material-styles": "~24.0.10",
43
- "@vaadin/vaadin-themable-mixin": "~24.0.10"
39
+ "@vaadin/button": "~24.0.11",
40
+ "@vaadin/component-base": "~24.0.11",
41
+ "@vaadin/vaadin-lumo-styles": "~24.0.11",
42
+ "@vaadin/vaadin-material-styles": "~24.0.11",
43
+ "@vaadin/vaadin-themable-mixin": "~24.0.11"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@esm-bundle/chai": "^4.3.4",
47
- "@vaadin/tabs": "~24.0.10",
47
+ "@vaadin/tabs": "~24.0.11",
48
48
  "@vaadin/testing-helpers": "^0.4.0",
49
49
  "sinon": "^13.0.2"
50
50
  },
@@ -52,5 +52,5 @@
52
52
  "web-types.json",
53
53
  "web-types.lit.json"
54
54
  ],
55
- "gitHead": "0e2bc6342436b434a466d266e75366cc645e5e49"
55
+ "gitHead": "f53b1ae603a55a4fb02ce4f72f0fb314e1a1c95f"
56
56
  }
@@ -300,7 +300,7 @@ class AppLayout extends ElementMixin(ThemableMixin(ControllerMixin(PolymerElemen
300
300
  <slot name="navbar"></slot>
301
301
  </div>
302
302
  <div part="backdrop" on-click="_onBackdropClick" on-touchend="_onBackdropTouchend"></div>
303
- <div part="drawer" id="drawer" on-keydown="__onDrawerKeyDown">
303
+ <div part="drawer" id="drawer">
304
304
  <slot name="drawer" id="drawerSlot"></slot>
305
305
  </div>
306
306
  <div content>
@@ -423,6 +423,7 @@ class AppLayout extends ElementMixin(ThemableMixin(ControllerMixin(PolymerElemen
423
423
  // TODO(jouni): might want to debounce
424
424
  this.__boundResizeListener = this._resize.bind(this);
425
425
  this.__drawerToggleClickListener = this._drawerToggleClick.bind(this);
426
+ this.__onDrawerKeyDown = this.__onDrawerKeyDown.bind(this);
426
427
  this.__closeOverlayDrawerListener = this.__closeOverlayDrawer.bind(this);
427
428
  this.__trapFocusInDrawer = this.__trapFocusInDrawer.bind(this);
428
429
  this.__releaseFocusFromDrawer = this.__releaseFocusFromDrawer.bind(this);
@@ -459,14 +460,20 @@ class AppLayout extends ElementMixin(ThemableMixin(ControllerMixin(PolymerElemen
459
460
 
460
461
  this._navbarSizeObserver = new ResizeObserver(() => {
461
462
  requestAnimationFrame(() => {
462
- this._blockAnimationUntilAfterNextRender();
463
- this._updateOffsetSize();
463
+ // Prevent updating offset size multiple times
464
+ // during the drawer open / close transition.
465
+ if (this.__isDrawerAnimating) {
466
+ this.__updateOffsetSizePending = true;
467
+ } else {
468
+ this._updateOffsetSize();
469
+ }
464
470
  });
465
471
  });
466
472
  this._navbarSizeObserver.observe(this.$.navbarTop);
467
473
  this._navbarSizeObserver.observe(this.$.navbarBottom);
468
474
 
469
475
  window.addEventListener('close-overlay-drawer', this.__closeOverlayDrawerListener);
476
+ window.addEventListener('keydown', this.__onDrawerKeyDown);
470
477
  }
471
478
 
472
479
  /** @protected */
@@ -474,6 +481,24 @@ class AppLayout extends ElementMixin(ThemableMixin(ControllerMixin(PolymerElemen
474
481
  super.ready();
475
482
  this.addController(this.__focusTrapController);
476
483
  this.__setAriaExpanded();
484
+
485
+ this.$.drawer.addEventListener('transitionstart', () => {
486
+ this.__isDrawerAnimating = true;
487
+ });
488
+
489
+ this.$.drawer.addEventListener('transitionend', () => {
490
+ // Update offset size after drawer animation.
491
+ if (this.__updateOffsetSizePending) {
492
+ this.__updateOffsetSizePending = false;
493
+ this._updateOffsetSize();
494
+ }
495
+
496
+ // Delay resetting the flag until animation frame
497
+ // to avoid updating offset size again on resize.
498
+ requestAnimationFrame(() => {
499
+ this.__isDrawerAnimating = false;
500
+ });
501
+ });
477
502
  }
478
503
 
479
504
  /** @protected */
@@ -493,6 +518,7 @@ class AppLayout extends ElementMixin(ThemableMixin(ControllerMixin(PolymerElemen
493
518
  window.removeEventListener('resize', this.__boundResizeListener);
494
519
  this.removeEventListener('drawer-toggle-click', this.__drawerToggleClickListener);
495
520
  window.removeEventListener('close-overlay-drawer', this.__drawerToggleClickListener);
521
+ window.removeEventListener('keydown', this.__onDrawerKeyDown);
496
522
  }
497
523
 
498
524
  /**
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/app-layout",
4
- "version": "24.0.10",
4
+ "version": "24.0.11",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/app-layout",
4
- "version": "24.0.10",
4
+ "version": "24.0.11",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {