@vaadin/app-layout 24.0.10 → 24.0.12
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 +8 -8
- package/src/vaadin-app-layout.js +29 -3
- package/web-types.json +1 -1
- package/web-types.lit.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/app-layout",
|
|
3
|
-
"version": "24.0.
|
|
3
|
+
"version": "24.0.12",
|
|
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.
|
|
40
|
-
"@vaadin/component-base": "~24.0.
|
|
41
|
-
"@vaadin/vaadin-lumo-styles": "~24.0.
|
|
42
|
-
"@vaadin/vaadin-material-styles": "~24.0.
|
|
43
|
-
"@vaadin/vaadin-themable-mixin": "~24.0.
|
|
39
|
+
"@vaadin/button": "~24.0.12",
|
|
40
|
+
"@vaadin/component-base": "~24.0.12",
|
|
41
|
+
"@vaadin/vaadin-lumo-styles": "~24.0.12",
|
|
42
|
+
"@vaadin/vaadin-material-styles": "~24.0.12",
|
|
43
|
+
"@vaadin/vaadin-themable-mixin": "~24.0.12"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@esm-bundle/chai": "^4.3.4",
|
|
47
|
-
"@vaadin/tabs": "~24.0.
|
|
47
|
+
"@vaadin/tabs": "~24.0.12",
|
|
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": "
|
|
55
|
+
"gitHead": "5c75eeaabb6717cf6c200aba76e1062b78dfbaac"
|
|
56
56
|
}
|
package/src/vaadin-app-layout.js
CHANGED
|
@@ -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"
|
|
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
|
-
|
|
463
|
-
|
|
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