@m3e/drawer-container 1.1.2 → 1.1.4

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.
@@ -362,15 +362,18 @@
362
362
  "members": [
363
363
  {
364
364
  "kind": "field",
365
- "name": "#clickHandler",
365
+ "name": "#drawerContainerChangeHandler",
366
366
  "privacy": "private",
367
367
  "readonly": true
368
368
  },
369
369
  {
370
370
  "kind": "field",
371
- "name": "#drawerContainerChangeHandler",
371
+ "name": "#togglingDrawer",
372
372
  "privacy": "private",
373
- "readonly": true
373
+ "type": {
374
+ "text": "boolean"
375
+ },
376
+ "default": "false"
374
377
  },
375
378
  {
376
379
  "kind": "method",
@@ -410,21 +413,12 @@
410
413
  },
411
414
  {
412
415
  "kind": "method",
413
- "name": "#handleClick",
414
- "privacy": "private",
416
+ "name": "_onClick",
415
417
  "return": {
416
418
  "type": {
417
419
  "text": "void"
418
420
  }
419
- },
420
- "parameters": [
421
- {
422
- "name": "e",
423
- "type": {
424
- "text": "Event"
425
- }
426
- }
427
- ]
421
+ }
428
422
  },
429
423
  {
430
424
  "kind": "method",
@@ -436,6 +430,16 @@
436
430
  }
437
431
  }
438
432
  },
433
+ {
434
+ "kind": "method",
435
+ "name": "#toggleDrawer",
436
+ "privacy": "private",
437
+ "return": {
438
+ "type": {
439
+ "text": "Promise<void>"
440
+ }
441
+ }
442
+ },
439
443
  {
440
444
  "kind": "method",
441
445
  "name": "#updateToggle",
@@ -451,6 +455,12 @@
451
455
  "type": {
452
456
  "text": "M3eDrawerContainerElement"
453
457
  }
458
+ },
459
+ {
460
+ "name": "syncToggle",
461
+ "type": {
462
+ "text": "boolean"
463
+ }
454
464
  }
455
465
  ]
456
466
  },
@@ -512,8 +522,8 @@
512
522
  }
513
523
  ],
514
524
  "superclass": {
515
- "name": "LitElement",
516
- "package": "lit"
525
+ "name": "ActionElementBase",
526
+ "package": "@m3e/core"
517
527
  },
518
528
  "tagName": "m3e-drawer-toggle",
519
529
  "customElement": true,
@@ -2249,12 +2259,51 @@
2249
2259
  "description": "Mixin to augment an element with behavior emits a click event on keyboard events.",
2250
2260
  "name": "KeyboardClick",
2251
2261
  "members": [
2262
+ {
2263
+ "kind": "field",
2264
+ "name": "#keyPressed",
2265
+ "privacy": "private",
2266
+ "type": {
2267
+ "text": "boolean"
2268
+ },
2269
+ "default": "false"
2270
+ },
2271
+ {
2272
+ "kind": "field",
2273
+ "name": "#keyDownHandler",
2274
+ "privacy": "private",
2275
+ "readonly": true
2276
+ },
2252
2277
  {
2253
2278
  "kind": "field",
2254
2279
  "name": "#keyUpHandler",
2255
2280
  "privacy": "private",
2256
2281
  "readonly": true
2257
2282
  },
2283
+ {
2284
+ "kind": "field",
2285
+ "name": "#focusOutHandler",
2286
+ "privacy": "private",
2287
+ "readonly": true
2288
+ },
2289
+ {
2290
+ "kind": "method",
2291
+ "name": "#handleKeyDown",
2292
+ "privacy": "private",
2293
+ "return": {
2294
+ "type": {
2295
+ "text": "void"
2296
+ }
2297
+ },
2298
+ "parameters": [
2299
+ {
2300
+ "name": "e",
2301
+ "type": {
2302
+ "text": "KeyboardEvent"
2303
+ }
2304
+ }
2305
+ ]
2306
+ },
2258
2307
  {
2259
2308
  "kind": "method",
2260
2309
  "name": "#handleKeyUp",
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * See LICENSE file in the project root for full license text.
5
5
  */
6
6
  import { unsafeCSS, css, LitElement, html } from 'lit';
7
- import { DesignToken, hasAssignedNodes, HtmlFor } from '@m3e/core';
7
+ import { DesignToken, hasAssignedNodes, HtmlFor, ActionElementBase } from '@m3e/core';
8
8
  import { M3eBreakpointObserver, Breakpoint } from '@m3e/core/layout';
9
9
  import { addAriaReferencedId, removeAriaReferencedId } from '@m3e/core/a11y';
10
10
 
@@ -703,7 +703,7 @@ __decorate([n({
703
703
  })], M3eDrawerContainerElement.prototype, "endDivider", void 0);
704
704
  M3eDrawerContainerElement = __decorate([t$1("m3e-drawer-container")], M3eDrawerContainerElement);
705
705
 
706
- var _M3eDrawerToggleElement_instances, _M3eDrawerToggleElement_clickHandler, _M3eDrawerToggleElement_drawerContainerChangeHandler, _M3eDrawerToggleElement_handleClick, _M3eDrawerToggleElement_handleDrawerContainerChange, _M3eDrawerToggleElement_updateToggle;
706
+ var _M3eDrawerToggleElement_instances, _M3eDrawerToggleElement_drawerContainerChangeHandler, _M3eDrawerToggleElement_togglingDrawer, _M3eDrawerToggleElement_handleDrawerContainerChange, _M3eDrawerToggleElement_toggleDrawer, _M3eDrawerToggleElement_updateToggle;
707
707
  /**
708
708
  * An element, nested within a clickable element, used to toggle the opened state of a drawer.
709
709
  *
@@ -728,24 +728,14 @@ var _M3eDrawerToggleElement_instances, _M3eDrawerToggleElement_clickHandler, _M3
728
728
  *
729
729
  * @tag m3e-drawer-toggle
730
730
  */
731
- let M3eDrawerToggleElement = class M3eDrawerToggleElement extends HtmlFor(LitElement) {
731
+ let M3eDrawerToggleElement = class M3eDrawerToggleElement extends HtmlFor(ActionElementBase) {
732
732
  constructor() {
733
733
  super(...arguments);
734
734
  _M3eDrawerToggleElement_instances.add(this);
735
735
  /** @private */
736
- _M3eDrawerToggleElement_clickHandler.set(this, e => __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_handleClick).call(this, e));
737
- /** @private */
738
736
  _M3eDrawerToggleElement_drawerContainerChangeHandler.set(this, () => __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_handleDrawerContainerChange).call(this));
739
- }
740
- /** @inheritdoc */
741
- connectedCallback() {
742
- super.connectedCallback();
743
- this.parentElement?.addEventListener("click", __classPrivateFieldGet(this, _M3eDrawerToggleElement_clickHandler, "f"));
744
- }
745
- /** @inheritdoc */
746
- disconnectedCallback() {
747
- super.disconnectedCallback();
748
- this.parentElement?.removeEventListener("click", __classPrivateFieldGet(this, _M3eDrawerToggleElement_clickHandler, "f"));
737
+ /** @private */
738
+ _M3eDrawerToggleElement_togglingDrawer.set(this, false);
749
739
  }
750
740
  /** @inheritdoc */
751
741
  attach(control) {
@@ -756,7 +746,7 @@ let M3eDrawerToggleElement = class M3eDrawerToggleElement extends HtmlFor(LitEle
756
746
  const container = control.closest("m3e-drawer-container");
757
747
  if (container) {
758
748
  container.addEventListener("change", __classPrivateFieldGet(this, _M3eDrawerToggleElement_drawerContainerChangeHandler, "f"));
759
- __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container);
749
+ __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container, true);
760
750
  }
761
751
  }
762
752
  /** @inheritdoc */
@@ -771,36 +761,46 @@ let M3eDrawerToggleElement = class M3eDrawerToggleElement extends HtmlFor(LitEle
771
761
  super.detach();
772
762
  }
773
763
  /** @inheritdoc */
774
- render() {
775
- return html`<slot></slot>`;
764
+ _onClick() {
765
+ __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_toggleDrawer).call(this);
776
766
  }
777
767
  };
778
- _M3eDrawerToggleElement_clickHandler = new WeakMap();
779
768
  _M3eDrawerToggleElement_drawerContainerChangeHandler = new WeakMap();
769
+ _M3eDrawerToggleElement_togglingDrawer = new WeakMap();
780
770
  _M3eDrawerToggleElement_instances = new WeakSet();
781
- _M3eDrawerToggleElement_handleClick = function _M3eDrawerToggleElement_handleClick(e) {
782
- if (!e.defaultPrevented && this.control && this.parentElement) {
771
+ _M3eDrawerToggleElement_handleDrawerContainerChange = function _M3eDrawerToggleElement_handleDrawerContainerChange() {
772
+ if (this.control && !__classPrivateFieldGet(this, _M3eDrawerToggleElement_togglingDrawer, "f")) {
783
773
  const container = this.control.closest("m3e-drawer-container");
784
774
  if (container) {
775
+ __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container, true);
776
+ }
777
+ }
778
+ };
779
+ _M3eDrawerToggleElement_toggleDrawer = /** @private */
780
+ async function _M3eDrawerToggleElement_toggleDrawer() {
781
+ if (!this.parentElement || !this.control) {
782
+ return;
783
+ }
784
+ const container = this.control.closest("m3e-drawer-container");
785
+ if (container) {
786
+ __classPrivateFieldSet(this, _M3eDrawerToggleElement_togglingDrawer, true, "f");
787
+ try {
785
788
  if (this.control.slot === "start") {
786
789
  container.start = !container.start;
787
790
  } else if (this.control.slot === "end") {
788
791
  container.end = !container.end;
789
792
  }
790
- __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container);
791
- }
792
- }
793
- };
794
- _M3eDrawerToggleElement_handleDrawerContainerChange = function _M3eDrawerToggleElement_handleDrawerContainerChange() {
795
- if (this.control) {
796
- const container = this.control.closest("m3e-drawer-container");
797
- if (container) {
798
- __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container);
793
+ if (container.isUpdatePending) {
794
+ await container.updateComplete;
795
+ }
796
+ await __classPrivateFieldGet(this, _M3eDrawerToggleElement_instances, "m", _M3eDrawerToggleElement_updateToggle).call(this, container, false);
797
+ } finally {
798
+ __classPrivateFieldSet(this, _M3eDrawerToggleElement_togglingDrawer, false, "f");
799
799
  }
800
800
  }
801
801
  };
802
802
  _M3eDrawerToggleElement_updateToggle = /** @private */
803
- async function _M3eDrawerToggleElement_updateToggle(container) {
803
+ async function _M3eDrawerToggleElement_updateToggle(container, syncToggle) {
804
804
  if (!this.parentElement || !this.control) {
805
805
  return;
806
806
  }
@@ -811,7 +811,7 @@ async function _M3eDrawerToggleElement_updateToggle(container) {
811
811
  selected = container.end;
812
812
  }
813
813
  this.parentElement.ariaExpanded = `${selected}`;
814
- if (this.parentElement.hasAttribute("toggle")) {
814
+ if (syncToggle && this.parentElement.hasAttribute("toggle")) {
815
815
  this.parentElement.toggleAttribute("selected", selected);
816
816
  }
817
817
  if (this.parentElement instanceof LitElement) {
@@ -820,8 +820,6 @@ async function _M3eDrawerToggleElement_updateToggle(container) {
820
820
  this.parentElement.ariaPressed = null;
821
821
  }
822
822
  };
823
- /** The styles of the element. */
824
- M3eDrawerToggleElement.styles = css`:host { display: contents; } ::slotted(.material-icons) { font-size: inherit !important; }`;
825
823
  M3eDrawerToggleElement = __decorate([t$1("m3e-drawer-toggle")], M3eDrawerToggleElement);
826
824
 
827
825
  export { M3eDrawerContainerElement, M3eDrawerToggleElement };