@sbb-esta/lyne-elements 3.8.0 → 3.9.0

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 (65) hide show
  1. package/core/base-elements/open-close-base-element.d.ts +2 -0
  2. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  3. package/core/base-elements/open-close-base-element.js +4 -0
  4. package/core/controllers/escapable-overlay-controller.js +3 -3
  5. package/core/controllers/inert-controller.d.ts +8 -1
  6. package/core/controllers/inert-controller.d.ts.map +1 -1
  7. package/core/controllers/inert-controller.js +25 -13
  8. package/core/overlay/position.d.ts +20 -0
  9. package/core/overlay/position.d.ts.map +1 -1
  10. package/core/overlay/position.js +34 -23
  11. package/core/overlay.js +11 -10
  12. package/core/styles/core.scss +7 -0
  13. package/core.css +6 -0
  14. package/custom-elements.json +612 -138
  15. package/development/core/base-elements/open-close-base-element.d.ts +2 -0
  16. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  17. package/development/core/base-elements/open-close-base-element.js +5 -1
  18. package/development/core/controllers/escapable-overlay-controller.js +2 -2
  19. package/development/core/controllers/inert-controller.d.ts +8 -1
  20. package/development/core/controllers/inert-controller.d.ts.map +1 -1
  21. package/development/core/controllers/inert-controller.js +49 -30
  22. package/development/core/overlay/position.d.ts +20 -0
  23. package/development/core/overlay/position.d.ts.map +1 -1
  24. package/development/core/overlay/position.js +41 -1
  25. package/development/core/overlay.js +2 -1
  26. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  27. package/development/menu/common/menu-action-common.js +20 -3
  28. package/development/menu/menu/menu.component.d.ts +21 -10
  29. package/development/menu/menu/menu.component.d.ts.map +1 -1
  30. package/development/menu/menu/menu.component.js +203 -61
  31. package/development/option/option/option.component.js +4 -2
  32. package/development/tabs/tab/tab.component.d.ts +10 -4
  33. package/development/tabs/tab/tab.component.d.ts.map +1 -1
  34. package/development/tabs/tab/tab.component.js +15 -16
  35. package/development/tabs/tab-group/tab-group.component.d.ts +15 -14
  36. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  37. package/development/tabs/tab-group/tab-group.component.js +46 -175
  38. package/development/tabs/tab-label/tab-label.component.d.ts +21 -2
  39. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  40. package/development/tabs/tab-label/tab-label.component.js +91 -6
  41. package/development/tooltip/tooltip.component.d.ts +6 -6
  42. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  43. package/development/tooltip/tooltip.component.js +14 -7
  44. package/menu/common/menu-action-common.d.ts.map +1 -1
  45. package/menu/common/menu-action-common.js +15 -12
  46. package/menu/menu/menu.component.d.ts +21 -10
  47. package/menu/menu/menu.component.d.ts.map +1 -1
  48. package/menu/menu/menu.component.js +144 -80
  49. package/off-brand-theme.css +6 -0
  50. package/option/option/option.component.js +1 -1
  51. package/package.json +1 -1
  52. package/safety-theme.css +6 -0
  53. package/standard-theme.css +6 -0
  54. package/tabs/tab/tab.component.d.ts +10 -4
  55. package/tabs/tab/tab.component.d.ts.map +1 -1
  56. package/tabs/tab/tab.component.js +22 -24
  57. package/tabs/tab-group/tab-group.component.d.ts +15 -14
  58. package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  59. package/tabs/tab-group/tab-group.component.js +68 -122
  60. package/tabs/tab-label/tab-label.component.d.ts +21 -2
  61. package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  62. package/tabs/tab-label/tab-label.component.js +88 -46
  63. package/tooltip/tooltip.component.d.ts +6 -6
  64. package/tooltip/tooltip.component.d.ts.map +1 -1
  65. package/tooltip/tooltip.component.js +59 -54
@@ -21,6 +21,8 @@ export declare abstract class SbbOpenCloseBaseElement extends SbbOpenCloseBaseEl
21
21
  /** Closes the component. */
22
22
  abstract close(): void;
23
23
  connectedCallback(): void;
24
+ /** The method which is called on escape key press. Defaults to calling close() */
25
+ escapeStrategy(): void;
24
26
  protected dispatchBeforeOpenEvent(): boolean;
25
27
  protected dispatchOpenEvent(): boolean;
26
28
  protected dispatchBeforeCloseEvent(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"open-close-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/open-close-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;;AAG7D;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAoC;IACxF,gBAAuB,MAAM;;;;;MAKlB;IAEX,kCAAkC;IAClC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAE9C;IACD,SAAS,KAAK,KAAK,IAAI,oBAAoB,CAE1C;IAED,mCAAmC;IACnC,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,2BAA2B;aACX,IAAI,IAAI,IAAI;IAC5B,4BAA4B;aACZ,KAAK,IAAI,IAAI;IAEb,iBAAiB,IAAI,IAAI;IAKzC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAK5C,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAKtC,SAAS,CAAC,wBAAwB,IAAI,OAAO;IAK7C,SAAS,CAAC,kBAAkB,IAAI,OAAO;CAIxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,UAAU,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;KACd;CACF"}
1
+ {"version":3,"file":"open-close-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/open-close-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;;AAG7D;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAoC;IACxF,gBAAuB,MAAM;;;;;MAKlB;IAEX,kCAAkC;IAClC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAE9C;IACD,SAAS,KAAK,KAAK,IAAI,oBAAoB,CAE1C;IAED,mCAAmC;IACnC,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,2BAA2B;aACX,IAAI,IAAI,IAAI;IAC5B,4BAA4B;aACZ,KAAK,IAAI,IAAI;IAEb,iBAAiB,IAAI,IAAI;IAKzC,kFAAkF;IAC3E,cAAc,IAAI,IAAI;IAI7B,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAK5C,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAKtC,SAAS,CAAC,wBAAwB,IAAI,OAAO;IAK7C,SAAS,CAAC,kBAAkB,IAAI,OAAO;CAIxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,UAAU,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;KACd;CACF"}
@@ -16,6 +16,10 @@ const _SbbOpenCloseBaseElement = class _SbbOpenCloseBaseElement extends SbbEleme
16
16
  super.connectedCallback();
17
17
  this.state ||= "closed";
18
18
  }
19
+ /** The method which is called on escape key press. Defaults to calling close() */
20
+ escapeStrategy() {
21
+ this.close();
22
+ }
19
23
  dispatchBeforeOpenEvent() {
20
24
  return this.dispatchEvent(new Event("beforeopen", { cancelable: true }));
21
25
  }
@@ -39,4 +43,4 @@ let SbbOpenCloseBaseElement = _SbbOpenCloseBaseElement;
39
43
  export {
40
44
  SbbOpenCloseBaseElement
41
45
  };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4uL21peGlucy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3BlbigpOiB2b2lkO1xuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc3RhdGUgfHw9ICdjbG9zZWQnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoT3BlbkV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JlY2xvc2UnLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoQ2xvc2VFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Nsb3NlJykpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgYmVmb3Jlb3BlbjogRXZlbnQ7XG4gICAgYmVmb3JlY2xvc2U6IEV2ZW50O1xuICAgIG9wZW46IEV2ZW50O1xuICAgIGNsb3NlOiBFdmVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BUXNCLGlDQUFBLGlDQUFnQyx5QkFBeUIsVUFBVSxFQUFDO0FBQUE7QUFBQSxFQVN4RixJQUFjLE1BQU0sT0FBMkI7QUFDN0MsU0FBSyxhQUFhLGNBQWMsS0FBSztBQUFBLEVBQ3ZDO0FBQUEsRUFDQSxJQUFjLFFBQUs7QUFDakIsV0FBTyxLQUFLLGFBQWEsWUFBWTtBQUFBLEVBQ3ZDO0FBQUE7QUFBQSxFQUdBLElBQVcsU0FBTTtBQUNmLFdBQU8sS0FBSyxVQUFVO0FBQUEsRUFDeEI7QUFBQSxFQU9nQixvQkFBaUI7QUFDL0IsVUFBTSxrQkFBQTtBQUNOLFNBQUssVUFBVTtBQUFBLEVBQ2pCO0FBQUEsRUFFVSwwQkFBdUI7QUFFL0IsV0FBTyxLQUFLLGNBQWMsSUFBSSxNQUFNLGNBQWMsRUFBRSxZQUFZLEtBQUEsQ0FBTSxDQUFDO0FBQUEsRUFDekU7QUFBQSxFQUVVLG9CQUFpQjtBQUV6QixXQUFPLEtBQUssY0FBYyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQUEsRUFDN0M7QUFBQSxFQUVVLDJCQUF3QjtBQUVoQyxXQUFPLEtBQUssY0FBYyxJQUFJLE1BQU0sZUFBZSxFQUFFLFlBQVksS0FBQSxDQUFNLENBQUM7QUFBQSxFQUMxRTtBQUFBLEVBRVUscUJBQWtCO0FBRTFCLFdBQU8sS0FBSyxjQUFjLElBQUksTUFBTSxPQUFPLENBQUM7QUFBQSxFQUM5Qzs7QUFoRHVCLHlCQUFBLFNBQVM7QUFBQSxFQUM5QixZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUE7SUFMVzsifQ==
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4uL21peGlucy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3BlbigpOiB2b2lkO1xuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc3RhdGUgfHw9ICdjbG9zZWQnO1xuICB9XG5cbiAgLyoqIFRoZSBtZXRob2Qgd2hpY2ggaXMgY2FsbGVkIG9uIGVzY2FwZSBrZXkgcHJlc3MuIERlZmF1bHRzIHRvIGNhbGxpbmcgY2xvc2UoKSAqL1xuICBwdWJsaWMgZXNjYXBlU3RyYXRlZ3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoT3BlbkV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JlY2xvc2UnLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BhdGNoQ2xvc2VFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Nsb3NlJykpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgYmVmb3Jlb3BlbjogRXZlbnQ7XG4gICAgYmVmb3JlY2xvc2U6IEV2ZW50O1xuICAgIG9wZW46IEV2ZW50O1xuICAgIGNsb3NlOiBFdmVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BUXNCLGlDQUFBLGlDQUFnQyx5QkFBeUIsVUFBVSxFQUFDO0FBQUE7QUFBQSxFQVN4RixJQUFjLE1BQU0sT0FBMkI7QUFDN0MsU0FBSyxhQUFhLGNBQWMsS0FBSztBQUFBLEVBQ3ZDO0FBQUEsRUFDQSxJQUFjLFFBQUs7QUFDakIsV0FBTyxLQUFLLGFBQWEsWUFBWTtBQUFBLEVBQ3ZDO0FBQUE7QUFBQSxFQUdBLElBQVcsU0FBTTtBQUNmLFdBQU8sS0FBSyxVQUFVO0FBQUEsRUFDeEI7QUFBQSxFQU9nQixvQkFBaUI7QUFDL0IsVUFBTSxrQkFBQTtBQUNOLFNBQUssVUFBVTtBQUFBLEVBQ2pCO0FBQUE7QUFBQSxFQUdPLGlCQUFjO0FBQ25CLFNBQUssTUFBQTtBQUFBLEVBQ1A7QUFBQSxFQUVVLDBCQUF1QjtBQUUvQixXQUFPLEtBQUssY0FBYyxJQUFJLE1BQU0sY0FBYyxFQUFFLFlBQVksS0FBQSxDQUFNLENBQUM7QUFBQSxFQUN6RTtBQUFBLEVBRVUsb0JBQWlCO0FBRXpCLFdBQU8sS0FBSyxjQUFjLElBQUksTUFBTSxNQUFNLENBQUM7QUFBQSxFQUM3QztBQUFBLEVBRVUsMkJBQXdCO0FBRWhDLFdBQU8sS0FBSyxjQUFjLElBQUksTUFBTSxlQUFlLEVBQUUsWUFBWSxLQUFBLENBQU0sQ0FBQztBQUFBLEVBQzFFO0FBQUEsRUFFVSxxQkFBa0I7QUFFMUIsV0FBTyxLQUFLLGNBQWMsSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUFBLEVBQzlDOztBQXJEdUIseUJBQUEsU0FBUztBQUFBLEVBQzlCLFlBQVk7QUFBQSxFQUNaLE1BQU07QUFBQSxFQUNOLGFBQWE7QUFBQSxFQUNiLE9BQU87QUFBQTtJQUxXOyJ9
@@ -4,7 +4,7 @@ if (!isServer) {
4
4
  window.addEventListener("keydown", (event) => {
5
5
  if (event.key === "Escape" && !event.defaultPrevented) {
6
6
  event.preventDefault();
7
- overlayStack.at(-1)?.close();
7
+ overlayStack.at(-1)?.escapeStrategy();
8
8
  }
9
9
  });
10
10
  }
@@ -35,4 +35,4 @@ class SbbEscapableOverlayController {
35
35
  export {
36
36
  SbbEscapableOverlayController
37
37
  };
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL29wZW4tY2xvc2UtYmFzZS1lbGVtZW50LmpzJztcblxuY29uc3Qgb3ZlcmxheVN0YWNrID0gbmV3IEFycmF5PFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50PigpO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvdmVybGF5U3RhY2suYXQoLTEpPy5jbG9zZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVN0YWNrOiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudFtdID0gb3ZlcmxheVN0YWNrLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuIHRoZSBvdmVybGF5IGlzIG9wZW5lZFxuICBwdWJsaWMgY29ubmVjdCgpOiB2b2lkIHtcbiAgICAvLyBEdWUgdG8gY29ubmVjdCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHRoZSBzYW1lIGhvc3QsXG4gICAgLy8gd2UgaGF2ZSB0byByZW1vdmUgYSBwb3RlbnRpYWwgZW50cnkgb2YgdGhlIGhvc3QgZnJvbSB0aGUgc3RhY2suXG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fb3ZlcmxheVN0YWNrLnB1c2godGhpcy5faG9zdCk7XG4gIH1cblxuICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgY2xvc2VkXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vdmVybGF5U3RhY2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaW5kRWxJbmRleCA9IHRoaXMuX292ZXJsYXlTdGFjay5maW5kSW5kZXgoKGUpID0+IGUgPT09IHRoaXMuX2hvc3QpO1xuICAgICAgaWYgKGZpbmRFbEluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLl9vdmVybGF5U3RhY2suc3BsaWNlKGZpbmRFbEluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBSUEsTUFBTSxlQUFlLElBQUksTUFBQTtBQUV6QixJQUFJLENBQUMsVUFBVTtBQUNiLFNBQU8saUJBQWlCLFdBQVcsQ0FBQyxVQUF3QjtBQUMxRCxRQUFJLE1BQU0sUUFBUSxZQUFZLENBQUMsTUFBTSxrQkFBa0I7QUFDckQsWUFBTSxlQUFBO0FBQ04sbUJBQWEsR0FBRyxFQUFFLEdBQUcsTUFBQTtBQUFBLElBQ3ZCO0FBQUEsRUFDRixDQUFDO0FBQ0g7TUFFYSw4QkFBNkI7QUFBQSxFQUN4QyxZQUNVLE9BQ0EsZ0JBQTJDLGNBQVk7QUFEdkQsU0FBQSxRQUFBO0FBQ0EsU0FBQSxnQkFBQTtBQUVSLFNBQUssTUFBTSxnQkFBZ0IsSUFBSTtBQUFBLEVBQ2pDO0FBQUEsRUFFTyxtQkFBZ0I7QUFDckIsU0FBSyxXQUFBO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFHTyxVQUFPO0FBR1osU0FBSyxXQUFBO0FBQ0wsU0FBSyxjQUFjLEtBQUssS0FBSyxLQUFLO0FBQUEsRUFDcEM7QUFBQTtBQUFBLEVBR08sYUFBVTtBQUNmLFFBQUksS0FBSyxjQUFjLFFBQVE7QUFDN0IsWUFBTSxjQUFjLEtBQUssY0FBYyxVQUFVLENBQUMsTUFBTSxNQUFNLEtBQUssS0FBSztBQUN4RSxVQUFJLGdCQUFnQixJQUFJO0FBQ3RCLGFBQUssY0FBYyxPQUFPLGFBQWEsQ0FBQztBQUFBLE1BQzFDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRDsifQ==
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvZXNjYXBhYmxlLW92ZXJsYXktY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL29wZW4tY2xvc2UtYmFzZS1lbGVtZW50LmpzJztcblxuY29uc3Qgb3ZlcmxheVN0YWNrID0gbmV3IEFycmF5PFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50PigpO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvdmVybGF5U3RhY2suYXQoLTEpPy5lc2NhcGVTdHJhdGVneSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVN0YWNrOiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudFtdID0gb3ZlcmxheVN0YWNrLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuIHRoZSBvdmVybGF5IGlzIG9wZW5lZFxuICBwdWJsaWMgY29ubmVjdCgpOiB2b2lkIHtcbiAgICAvLyBEdWUgdG8gY29ubmVjdCgpIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHRoZSBzYW1lIGhvc3QsXG4gICAgLy8gd2UgaGF2ZSB0byByZW1vdmUgYSBwb3RlbnRpYWwgZW50cnkgb2YgdGhlIGhvc3QgZnJvbSB0aGUgc3RhY2suXG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fb3ZlcmxheVN0YWNrLnB1c2godGhpcy5faG9zdCk7XG4gIH1cblxuICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgY2xvc2VkXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vdmVybGF5U3RhY2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaW5kRWxJbmRleCA9IHRoaXMuX292ZXJsYXlTdGFjay5maW5kSW5kZXgoKGUpID0+IGUgPT09IHRoaXMuX2hvc3QpO1xuICAgICAgaWYgKGZpbmRFbEluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLl9vdmVybGF5U3RhY2suc3BsaWNlKGZpbmRFbEluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBSUEsTUFBTSxlQUFlLElBQUksTUFBQTtBQUV6QixJQUFJLENBQUMsVUFBVTtBQUNiLFNBQU8saUJBQWlCLFdBQVcsQ0FBQyxVQUF3QjtBQUMxRCxRQUFJLE1BQU0sUUFBUSxZQUFZLENBQUMsTUFBTSxrQkFBa0I7QUFDckQsWUFBTSxlQUFBO0FBQ04sbUJBQWEsR0FBRyxFQUFFLEdBQUcsZUFBQTtBQUFBLElBQ3ZCO0FBQUEsRUFDRixDQUFDO0FBQ0g7TUFFYSw4QkFBNkI7QUFBQSxFQUN4QyxZQUNVLE9BQ0EsZ0JBQTJDLGNBQVk7QUFEdkQsU0FBQSxRQUFBO0FBQ0EsU0FBQSxnQkFBQTtBQUVSLFNBQUssTUFBTSxnQkFBZ0IsSUFBSTtBQUFBLEVBQ2pDO0FBQUEsRUFFTyxtQkFBZ0I7QUFDckIsU0FBSyxXQUFBO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFHTyxVQUFPO0FBR1osU0FBSyxXQUFBO0FBQ0wsU0FBSyxjQUFjLEtBQUssS0FBSyxLQUFLO0FBQUEsRUFDcEM7QUFBQTtBQUFBLEVBR08sYUFBVTtBQUNmLFFBQUksS0FBSyxjQUFjLFFBQVE7QUFDN0IsWUFBTSxjQUFjLEtBQUssY0FBYyxVQUFVLENBQUMsTUFBTSxNQUFNLEtBQUssS0FBSztBQUN4RSxVQUFJLGdCQUFnQixJQUFJO0FBQ3RCLGFBQUssY0FBYyxPQUFPLGFBQWEsQ0FBQztBQUFBLE1BQzFDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRDsifQ==
@@ -4,7 +4,8 @@ export declare class SbbInertController implements ReactiveController {
4
4
  private _host;
5
5
  private _inertElements;
6
6
  private _inertOverlays;
7
- constructor(_host: ReactiveControllerHost & SbbOpenCloseBaseElement, _inertElements?: Set<HTMLElement>, _inertOverlays?: Set<HTMLElement>);
7
+ private _exemptedElements;
8
+ constructor(_host: ReactiveControllerHost & SbbOpenCloseBaseElement, _inertElements?: Set<HTMLElement>, _inertOverlays?: Set<HTMLElement>, _exemptedElements?: Set<HTMLElement>);
8
9
  hostConnected(): void;
9
10
  hostDisconnected(): void;
10
11
  /** Applies inert state to every other element on the page except the overlay. */
@@ -13,8 +14,14 @@ export declare class SbbInertController implements ReactiveController {
13
14
  deactivate(): void;
14
15
  /** Whether the assigned host is currently inert */
15
16
  isInert(): boolean;
17
+ /** Temporarily removes all inert attributes from a given element. */
18
+ exempt(element: HTMLElement): void;
19
+ /** Inerts an element currently exempted from inert. */
20
+ restoreAllExempted(): void;
16
21
  private _currentOverlay;
22
+ private _removeAllInertAttributes;
17
23
  private _removeInertAttributes;
24
+ private _addAllInertAttributes;
18
25
  private _addInertAttributes;
19
26
  }
20
27
  //# sourceMappingURL=inert-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inert-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/inert-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAMnE,qBAAa,kBAAmB,YAAW,kBAAkB;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;gBAFd,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,EACvD,cAAc,mBAAgB,EAC9B,cAAc,mBAAgB;IAKjC,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;IAM/B,iFAAiF;IAC1E,QAAQ,IAAI,IAAI;IAUvB,2BAA2B;IACpB,UAAU,IAAI,IAAI;IAyBzB,mDAAmD;IAC5C,OAAO,IAAI,OAAO;IAIzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;CA8B5B"}
1
+ {"version":3,"file":"inert-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/inert-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAOnE,qBAAa,kBAAmB,YAAW,kBAAkB;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB;gBAHjB,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,EACvD,cAAc,mBAAgB,EAC9B,cAAc,mBAAgB,EAC9B,iBAAiB,mBAAmB;IAKvC,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;IAM/B,iFAAiF;IAC1E,QAAQ,IAAI,IAAI;IAUvB,2BAA2B;IACpB,UAAU,IAAI,IAAI;IAyBzB,mDAAmD;IAC5C,OAAO,IAAI,OAAO;IAIzB,qEAAqE;IAC9D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQzC,uDAAuD;IAChD,kBAAkB,IAAI,IAAI;IAKjC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,mBAAmB;CAa5B"}
@@ -1,11 +1,13 @@
1
1
  const IGNORED_ELEMENTS = ["script", "head", "template", "style"];
2
2
  const inertElements = /* @__PURE__ */ new Set();
3
+ const exemptedElements = /* @__PURE__ */ new Set();
3
4
  const inertOverlays = /* @__PURE__ */ new Set();
4
5
  class SbbInertController {
5
- constructor(_host, _inertElements = inertElements, _inertOverlays = inertOverlays) {
6
+ constructor(_host, _inertElements = inertElements, _inertOverlays = inertOverlays, _exemptedElements = exemptedElements) {
6
7
  this._host = _host;
7
8
  this._inertElements = _inertElements;
8
9
  this._inertOverlays = _inertOverlays;
10
+ this._exemptedElements = _exemptedElements;
9
11
  this._host.addController?.(this);
10
12
  }
11
13
  hostConnected() {
@@ -21,10 +23,10 @@ class SbbInertController {
21
23
  /** Applies inert state to every other element on the page except the overlay. */
22
24
  activate() {
23
25
  if (this._inertOverlays.size) {
24
- this._removeInertAttributes();
26
+ this._removeAllInertAttributes();
25
27
  }
26
28
  this._inertOverlays.add(this._host);
27
- this._addInertAttributes();
29
+ this._addAllInertAttributes();
28
30
  }
29
31
  /** Removes inert state. */
30
32
  deactivate() {
@@ -36,54 +38,71 @@ class SbbInertController {
36
38
  }
37
39
  return;
38
40
  }
39
- this._removeInertAttributes();
41
+ this._removeAllInertAttributes();
40
42
  this._inertOverlays.delete(this._host);
41
43
  if (this._inertOverlays.size) {
42
- this._addInertAttributes();
44
+ this._addAllInertAttributes();
43
45
  }
44
46
  }
45
47
  /** Whether the assigned host is currently inert */
46
48
  isInert() {
47
49
  return this._inertOverlays.has(this._host);
48
50
  }
51
+ /** Temporarily removes all inert attributes from a given element. */
52
+ exempt(element) {
53
+ if (this._inertElements.has(element) && !this._exemptedElements.has(element)) {
54
+ this._removeInertAttributes(element);
55
+ this._inertElements.delete(element);
56
+ this._exemptedElements.add(element);
57
+ }
58
+ }
59
+ /** Inerts an element currently exempted from inert. */
60
+ restoreAllExempted() {
61
+ this._exemptedElements.forEach((e) => this._addInertAttributes(e));
62
+ this._exemptedElements.clear();
63
+ }
49
64
  _currentOverlay() {
50
65
  return [...this._inertOverlays].pop() ?? null;
51
66
  }
52
- _removeInertAttributes() {
53
- this._inertElements.forEach((element) => {
54
- if (!element) {
55
- return;
56
- }
57
- if (element.hasAttribute("data-sbb-inert")) {
58
- element.inert = false;
59
- element.removeAttribute("data-sbb-inert");
60
- }
61
- if (element.hasAttribute("data-sbb-aria-hidden")) {
62
- element.removeAttribute("aria-hidden");
63
- element.removeAttribute("data-sbb-aria-hidden");
64
- }
65
- });
67
+ _removeAllInertAttributes() {
68
+ this._inertElements.forEach((element) => this._removeInertAttributes(element));
66
69
  this._inertElements.clear();
67
70
  }
68
- _addInertAttributes() {
71
+ _removeInertAttributes(element) {
72
+ if (!element) {
73
+ return;
74
+ }
75
+ if (element.hasAttribute("data-sbb-inert")) {
76
+ element.inert = false;
77
+ element.removeAttribute("data-sbb-inert");
78
+ }
79
+ if (element.hasAttribute("data-sbb-aria-hidden")) {
80
+ element.removeAttribute("aria-hidden");
81
+ element.removeAttribute("data-sbb-aria-hidden");
82
+ }
83
+ }
84
+ _addAllInertAttributes() {
69
85
  let element = this._currentOverlay();
70
86
  while (element !== document.documentElement && element !== null) {
71
87
  Array.from((element?.parentElement ?? element?.getRootNode())?.childNodes ?? []).filter((child) => child !== element && child instanceof window.HTMLElement && !IGNORED_ELEMENTS.includes(child.localName) && !child.classList.contains("sbb-live-announcer-element")).forEach((element2) => {
72
- this._inertElements.add(element2);
73
- if (!element2.inert) {
74
- element2.inert = true;
75
- element2.toggleAttribute("data-sbb-inert", true);
76
- }
77
- if (!element2.hasAttribute("aria-hidden")) {
78
- element2.setAttribute("aria-hidden", "true");
79
- element2.toggleAttribute("data-sbb-aria-hidden", true);
80
- }
88
+ this._addInertAttributes(element2);
81
89
  });
82
90
  element = element?.parentElement ?? element?.getRootNode()?.host ?? null;
83
91
  }
84
92
  }
93
+ _addInertAttributes(element) {
94
+ this._inertElements.add(element);
95
+ if (!element.inert) {
96
+ element.inert = true;
97
+ element.toggleAttribute("data-sbb-inert", true);
98
+ }
99
+ if (!element.hasAttribute("aria-hidden")) {
100
+ element.setAttribute("aria-hidden", "true");
101
+ element.toggleAttribute("data-sbb-aria-hidden", true);
102
+ }
103
+ }
85
104
  }
86
105
  export {
87
106
  SbbInertController
88
107
  };
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5lcnQtY29udHJvbGxlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzLmpzJztcblxuY29uc3QgSUdOT1JFRF9FTEVNRU5UUyA9IFsnc2NyaXB0JywgJ2hlYWQnLCAndGVtcGxhdGUnLCAnc3R5bGUnXTtcbmNvbnN0IGluZXJ0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuY29uc3QgaW5lcnRPdmVybGF5cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJJbmVydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICAgIHByaXZhdGUgX2luZXJ0RWxlbWVudHMgPSBpbmVydEVsZW1lbnRzLFxuICAgIHByaXZhdGUgX2luZXJ0T3ZlcmxheXMgPSBpbmVydE92ZXJsYXlzLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9ob3N0LmlzT3Blbikge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW5lcnQoKSkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGxpZXMgaW5lcnQgc3RhdGUgdG8gZXZlcnkgb3RoZXIgZWxlbWVudCBvbiB0aGUgcGFnZSBleGNlcHQgdGhlIG92ZXJsYXkuICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgaW5lcnQgc3RhdGUgZnJvbSBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheVxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuYWRkKHRoaXMuX2hvc3QpO1xuICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcygpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgaW5lcnQgc3RhdGUuICovXG4gIHB1YmxpYyBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50T3ZlcmxheSgpICE9PSB0aGlzLl9ob3N0KSB7XG4gICAgICAvLyBJZiBlLmcuIGEgY29tcG9uZW50IGdldHMgZGlzY29ubmVjdGVkLCBpdCBjb3VsZCBiZSB0aGF0IGl0IGlzIG5vdCB0aGUgdG9wIG1vc3QuXG4gICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIGNhbiBkaXJlY3RseSByZW1vdmUgaXQsIGFzIHRoZXJlIGlzIGN1cnJlbnRseSBubyBpbmVydCBzdGF0ZSBhcHBsaWVkLlxuICAgICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpKSB7XG4gICAgICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnVHJ5aW5nIHRvIHJlbW92ZSBpbmVydCBzdGF0ZSBvZiBhbiBvdmVybGF5IHdoaWNoIG5ldmVyIGhhZCBhbiBhcHBsaWVkIGluZXJ0IHN0YXRlLicsXG4gICAgICAgICAgdGhpcy5faG9zdCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYXMgcHJldmlvdXMgb3BlbmVkIG92ZXJsYXksIHNldCBpdHMgaW5lcnQgc3RhdGUgYWdhaW4uXG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGFzc2lnbmVkIGhvc3QgaXMgY3VycmVudGx5IGluZXJ0ICovXG4gIHB1YmxpYyBpc0luZXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2N1cnJlbnRPdmVybGF5KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9pbmVydE92ZXJsYXlzXS5wb3AoKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKSkge1xuICAgICAgICBlbGVtZW50LmluZXJ0ID0gZmFsc2U7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJyk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSB0aGlzLl9jdXJyZW50T3ZlcmxheSgpO1xuXG4gICAgd2hpbGUgKGVsZW1lbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBlbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBBcnJheS5mcm9tKChlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkpPy5jaGlsZE5vZGVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChjaGlsZCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+XG4gICAgICAgICAgICBjaGlsZCAhPT0gZWxlbWVudCAmJlxuICAgICAgICAgICAgY2hpbGQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgICFJR05PUkVEX0VMRU1FTlRTLmluY2x1ZGVzKGNoaWxkLmxvY2FsTmFtZSkgJiZcbiAgICAgICAgICAgICFjaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoJ3NiYi1saXZlLWFubm91bmNlci1lbGVtZW50JyksXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgICAgICAgIGlmICghZWxlbWVudC5pbmVydCkge1xuICAgICAgICAgICAgZWxlbWVudC5pbmVydCA9IHRydWU7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBwaWVyY2UgdGhyb3VnaCBTaGFkb3cgRE9NIGJvdW5kYXJ5XG4gICAgICBlbGVtZW50ID0gZWxlbWVudD8ucGFyZW50RWxlbWVudCA/PyAoZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KT8uaG9zdCA/PyBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sbUJBQW1CLENBQUMsVUFBVSxRQUFRLFlBQVksT0FBTztBQUMvRCxNQUFNLG9DQUFvQixJQUFBO0FBQzFCLE1BQU0sb0NBQW9CLElBQUE7TUFFYixtQkFBa0I7QUFBQSxFQUM3QixZQUNVLE9BQ0EsaUJBQWlCLGVBQ2pCLGlCQUFpQixlQUFhO0FBRjlCLFNBQUEsUUFBQTtBQUNBLFNBQUEsaUJBQUE7QUFDQSxTQUFBLGlCQUFBO0FBRVIsU0FBSyxNQUFNLGdCQUFnQixJQUFJO0FBQUEsRUFDakM7QUFBQSxFQUVPLGdCQUFhO0FBQ2xCLFFBQUksS0FBSyxNQUFNLFFBQVE7QUFDckIsV0FBSyxTQUFBO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUVPLG1CQUFnQjtBQUNyQixRQUFJLEtBQUssV0FBVztBQUNsQixXQUFLLFdBQUE7QUFBQSxJQUNQO0FBQUEsRUFDRjtBQUFBO0FBQUEsRUFHTyxXQUFRO0FBRWIsUUFBSSxLQUFLLGVBQWUsTUFBTTtBQUM1QixXQUFLLHVCQUFBO0FBQUEsSUFDUDtBQUVBLFNBQUssZUFBZSxJQUFJLEtBQUssS0FBSztBQUNsQyxTQUFLLG9CQUFBO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFHTyxhQUFVO0FBQ2YsUUFBSSxLQUFLLHNCQUFzQixLQUFLLE9BQU87QUFHekMsVUFBSSxLQUFLLGVBQWUsSUFBSSxLQUFLLEtBQUssR0FBRztBQUN2QyxhQUFLLGVBQWUsT0FBTyxLQUFLLEtBQUs7QUFBQSxNQUN2QyxPQUFnQztBQUM5QixnQkFBUSxLQUNOLHNGQUNBLEtBQUssS0FBSztBQUFBLE1BRWQ7QUFFQTtBQUFBLElBQ0Y7QUFFQSxTQUFLLHVCQUFBO0FBQ0wsU0FBSyxlQUFlLE9BQU8sS0FBSyxLQUFLO0FBR3JDLFFBQUksS0FBSyxlQUFlLE1BQU07QUFDNUIsV0FBSyxvQkFBQTtBQUFBLElBQ1A7QUFBQSxFQUNGO0FBQUE7QUFBQSxFQUdPLFVBQU87QUFDWixXQUFPLEtBQUssZUFBZSxJQUFJLEtBQUssS0FBSztBQUFBLEVBQzNDO0FBQUEsRUFFUSxrQkFBZTtBQUNyQixXQUFPLENBQUMsR0FBRyxLQUFLLGNBQWMsRUFBRSxTQUFTO0FBQUEsRUFDM0M7QUFBQSxFQUVRLHlCQUFzQjtBQUM1QixTQUFLLGVBQWUsUUFBUSxDQUFDLFlBQThCO0FBQ3pELFVBQUksQ0FBQyxTQUFTO0FBQ1o7QUFBQSxNQUNGO0FBRUEsVUFBSSxRQUFRLGFBQWEsZ0JBQWdCLEdBQUc7QUFDMUMsZ0JBQVEsUUFBUTtBQUNoQixnQkFBUSxnQkFBZ0IsZ0JBQWdCO0FBQUEsTUFDMUM7QUFFQSxVQUFJLFFBQVEsYUFBYSxzQkFBc0IsR0FBRztBQUNoRCxnQkFBUSxnQkFBZ0IsYUFBYTtBQUNyQyxnQkFBUSxnQkFBZ0Isc0JBQXNCO0FBQUEsTUFDaEQ7QUFBQSxJQUNGLENBQUM7QUFDRCxTQUFLLGVBQWUsTUFBQTtBQUFBLEVBQ3RCO0FBQUEsRUFFUSxzQkFBbUI7QUFDekIsUUFBSSxVQUEwQixLQUFLLGdCQUFBO0FBRW5DLFdBQU8sWUFBWSxTQUFTLG1CQUFtQixZQUFZLE1BQU07QUFDL0QsWUFBTSxNQUFNLFNBQVMsaUJBQWlCLFNBQVMsZ0JBQWdCLGNBQWMsQ0FBQSxDQUFFLEVBQzVFLE9BQ0MsQ0FBQyxVQUNDLFVBQVUsV0FDVixpQkFBaUIsT0FBTyxlQUN4QixDQUFDLGlCQUFpQixTQUFTLE1BQU0sU0FBUyxLQUMxQyxDQUFDLE1BQU0sVUFBVSxTQUFTLDRCQUE0QixDQUFDLEVBRTFELFFBQVEsQ0FBQ0EsYUFBVztBQUNuQixhQUFLLGVBQWUsSUFBSUEsUUFBTztBQUUvQixZQUFJLENBQUNBLFNBQVEsT0FBTztBQUNsQkEsbUJBQVEsUUFBUTtBQUNoQkEsbUJBQVEsZ0JBQWdCLGtCQUFrQixJQUFJO0FBQUEsUUFDaEQ7QUFFQSxZQUFJLENBQUNBLFNBQVEsYUFBYSxhQUFhLEdBQUc7QUFDeENBLG1CQUFRLGFBQWEsZUFBZSxNQUFNO0FBQzFDQSxtQkFBUSxnQkFBZ0Isd0JBQXdCLElBQUk7QUFBQSxRQUN0RDtBQUFBLE1BQ0YsQ0FBQztBQUdILGdCQUFVLFNBQVMsaUJBQWtCLFNBQVMsWUFBQSxHQUE4QixRQUFRO0FBQUEsSUFDdEY7QUFBQSxFQUNGO0FBQ0Q7In0=
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5lcnQtY29udHJvbGxlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzLmpzJztcblxuY29uc3QgSUdOT1JFRF9FTEVNRU5UUyA9IFsnc2NyaXB0JywgJ2hlYWQnLCAndGVtcGxhdGUnLCAnc3R5bGUnXTtcbmNvbnN0IGluZXJ0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuY29uc3QgZXhlbXB0ZWRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5jb25zdCBpbmVydE92ZXJsYXlzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuZXhwb3J0IGNsYXNzIFNiYkluZXJ0Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfaW5lcnRFbGVtZW50cyA9IGluZXJ0RWxlbWVudHMsXG4gICAgcHJpdmF0ZSBfaW5lcnRPdmVybGF5cyA9IGluZXJ0T3ZlcmxheXMsXG4gICAgcHJpdmF0ZSBfZXhlbXB0ZWRFbGVtZW50cyA9IGV4ZW1wdGVkRWxlbWVudHMsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcj8uKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2hvc3QuaXNPcGVuKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbmVydCgpKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQXBwbGllcyBpbmVydCBzdGF0ZSB0byBldmVyeSBvdGhlciBlbGVtZW50IG9uIHRoZSBwYWdlIGV4Y2VwdCB0aGUgb3ZlcmxheS4gKi9cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBpbmVydCBzdGF0ZSBmcm9tIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5XG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlQWxsSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5hZGQodGhpcy5faG9zdCk7XG4gICAgdGhpcy5fYWRkQWxsSW5lcnRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICAvKiogUmVtb3ZlcyBpbmVydCBzdGF0ZS4gKi9cbiAgcHVibGljIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPdmVybGF5KCkgIT09IHRoaXMuX2hvc3QpIHtcbiAgICAgIC8vIElmIGUuZy4gYSBjb21wb25lbnQgZ2V0cyBkaXNjb25uZWN0ZWQsIGl0IGNvdWxkIGJlIHRoYXQgaXQgaXMgbm90IHRoZSB0b3AgbW9zdC5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2UgY2FuIGRpcmVjdGx5IHJlbW92ZSBpdCwgYXMgdGhlcmUgaXMgY3VycmVudGx5IG5vIGluZXJ0IHN0YXRlIGFwcGxpZWQuXG4gICAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCkpIHtcbiAgICAgICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG4gICAgICB9IGVsc2UgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdUcnlpbmcgdG8gcmVtb3ZlIGluZXJ0IHN0YXRlIG9mIGFuIG92ZXJsYXkgd2hpY2ggbmV2ZXIgaGFkIGFuIGFwcGxpZWQgaW5lcnQgc3RhdGUuJyxcbiAgICAgICAgICB0aGlzLl9ob3N0LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVtb3ZlQWxsSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhcyBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheSwgc2V0IGl0cyBpbmVydCBzdGF0ZSBhZ2Fpbi5cbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9hZGRBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYXNzaWduZWQgaG9zdCBpcyBjdXJyZW50bHkgaW5lcnQgKi9cbiAgcHVibGljIGlzSW5lcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpO1xuICB9XG5cbiAgLyoqIFRlbXBvcmFyaWx5IHJlbW92ZXMgYWxsIGluZXJ0IGF0dHJpYnV0ZXMgZnJvbSBhIGdpdmVuIGVsZW1lbnQuICovXG4gIHB1YmxpYyBleGVtcHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5lcnRFbGVtZW50cy5oYXMoZWxlbWVudCkgJiYgIXRoaXMuX2V4ZW1wdGVkRWxlbWVudHMuaGFzKGVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoZWxlbWVudCk7XG4gICAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgIHRoaXMuX2V4ZW1wdGVkRWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJbmVydHMgYW4gZWxlbWVudCBjdXJyZW50bHkgZXhlbXB0ZWQgZnJvbSBpbmVydC4gKi9cbiAgcHVibGljIHJlc3RvcmVBbGxFeGVtcHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9leGVtcHRlZEVsZW1lbnRzLmZvckVhY2goKGUpID0+IHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcyhlKSk7XG4gICAgdGhpcy5fZXhlbXB0ZWRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudE92ZXJsYXkoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2luZXJ0T3ZlcmxheXNdLnBvcCgpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVBbGxJbmVydEF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgPT5cbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcyhlbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUluZXJ0QXR0cmlidXRlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKSkge1xuICAgICAgZWxlbWVudC5pbmVydCA9IGZhbHNlO1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0Jyk7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpKSB7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FkZEFsbEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSB0aGlzLl9jdXJyZW50T3ZlcmxheSgpO1xuXG4gICAgd2hpbGUgKGVsZW1lbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBlbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBBcnJheS5mcm9tKChlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkpPy5jaGlsZE5vZGVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChjaGlsZCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+XG4gICAgICAgICAgICBjaGlsZCAhPT0gZWxlbWVudCAmJlxuICAgICAgICAgICAgY2hpbGQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgICFJR05PUkVEX0VMRU1FTlRTLmluY2x1ZGVzKGNoaWxkLmxvY2FsTmFtZSkgJiZcbiAgICAgICAgICAgICFjaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoJ3NiYi1saXZlLWFubm91bmNlci1lbGVtZW50JyksXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9hZGRJbmVydEF0dHJpYnV0ZXMoZWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBpZXJjZSB0aHJvdWdoIFNoYWRvdyBET00gYm91bmRhcnlcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IChlbGVtZW50Py5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpPy5ob3N0ID8/IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWRkSW5lcnRBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5hZGQoZWxlbWVudCk7XG5cbiAgICBpZiAoIWVsZW1lbnQuaW5lcnQpIHtcbiAgICAgIGVsZW1lbnQuaW5lcnQgPSB0cnVlO1xuICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0JywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKSkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicsIHRydWUpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sbUJBQW1CLENBQUMsVUFBVSxRQUFRLFlBQVksT0FBTztBQUMvRCxNQUFNLG9DQUFvQixJQUFBO0FBQzFCLE1BQU0sdUNBQXVCLElBQUE7QUFDN0IsTUFBTSxvQ0FBb0IsSUFBQTtNQUViLG1CQUFrQjtBQUFBLEVBQzdCLFlBQ1UsT0FDQSxpQkFBaUIsZUFDakIsaUJBQWlCLGVBQ2pCLG9CQUFvQixrQkFBZ0I7QUFIcEMsU0FBQSxRQUFBO0FBQ0EsU0FBQSxpQkFBQTtBQUNBLFNBQUEsaUJBQUE7QUFDQSxTQUFBLG9CQUFBO0FBRVIsU0FBSyxNQUFNLGdCQUFnQixJQUFJO0FBQUEsRUFDakM7QUFBQSxFQUVPLGdCQUFhO0FBQ2xCLFFBQUksS0FBSyxNQUFNLFFBQVE7QUFDckIsV0FBSyxTQUFBO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUVPLG1CQUFnQjtBQUNyQixRQUFJLEtBQUssV0FBVztBQUNsQixXQUFLLFdBQUE7QUFBQSxJ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
@@ -38,4 +38,24 @@ export declare function getElementPosition(element: HTMLElement, trigger: HTMLEl
38
38
  centered?: boolean;
39
39
  responsiveHeight?: boolean;
40
40
  }): SbbElementPositionInfos;
41
+ /**
42
+ * Determines the position of an element relative to a trigger element by evaluating
43
+ * the optimal position based on the available space.
44
+ *
45
+ * @param element The element of which to calculate the position.
46
+ * @param trigger The element relative to which to calculate the position.
47
+ * @param container The element which has the position:fixed applied.
48
+ * @param properties Properties to take into account in calculations (optional).
49
+ * @param properties.verticalOffset The distance to be added between the element and the trigger (optional).
50
+ * @param properties.horizontalOffset The horizontal offset to be applied to the element (optional).
51
+ * @param properties.responsiveHeight Whether the element calculates its height based on its content (optional).
52
+ * @returns Returns an object containing the left position, the top position, the maximum height
53
+ * of the element and the current alignment object.
54
+ */
55
+ export declare function getElementPositionHorizontal(element: HTMLElement, trigger: HTMLElement, container: HTMLElement, properties?: {
56
+ verticalOffset?: number;
57
+ horizontalOffset?: number;
58
+ responsiveHeight?: boolean;
59
+ contentSelector?: string;
60
+ }): SbbElementPositionInfos;
41
61
  //# sourceMappingURL=position.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACA,uBAAuB,CAqGzB"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACA,uBAAuB,CAqGzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,uBAAuB,CAgEzB"}
@@ -76,9 +76,49 @@ function getElementPosition(element, trigger, container, properties) {
76
76
  alignment
77
77
  };
78
78
  }
79
+ function getElementPositionHorizontal(element, trigger, container, properties) {
80
+ const maxHeightOffset = 16;
81
+ const verticalOffset = properties?.verticalOffset || 0;
82
+ const horizontalOffset = properties?.horizontalOffset || 0;
83
+ const triggerRec = trigger.getBoundingClientRect();
84
+ const elementRec = getElementRectangle(element);
85
+ const triggerParentRec = trigger.parentElement.shadowRoot.querySelector(properties?.contentSelector ?? `.${element.className}`).getBoundingClientRect();
86
+ const containerRect = container.getBoundingClientRect();
87
+ const availableSpaceRight = document.documentElement.clientWidth - triggerParentRec.right;
88
+ const availableSpaceBelow = document.documentElement.clientHeight - (triggerRec.top - verticalOffset);
89
+ const availableVerticalSpace = document.documentElement.clientHeight;
90
+ const elementMaxHeight = `${availableVerticalSpace - maxHeightOffset * 2}px`;
91
+ const alignment = { horizontal: "end", vertical: "above" };
92
+ const elementXOverflow = elementRec.offsetWidth + horizontalOffset;
93
+ let elementXPosition = triggerParentRec.right;
94
+ let elementYPosition = triggerRec.top + verticalOffset;
95
+ if (availableSpaceRight < elementXOverflow && triggerRec.left > elementXOverflow) {
96
+ elementXPosition = elementXPosition - triggerParentRec.width - elementRec.offsetWidth;
97
+ alignment.horizontal = "start";
98
+ }
99
+ if (horizontalOffset && alignment.horizontal !== "center") {
100
+ elementXPosition += horizontalOffset * (alignment.horizontal === "start" ? -1 : 1);
101
+ }
102
+ if (availableSpaceBelow < elementRec.scrollHeight) {
103
+ elementYPosition = availableVerticalSpace - elementRec.clientHeight - maxHeightOffset;
104
+ }
105
+ if (containerRect.left < 0) {
106
+ elementXPosition -= containerRect.left;
107
+ }
108
+ if (containerRect.top < 0) {
109
+ elementYPosition -= containerRect.top;
110
+ }
111
+ return {
112
+ top: elementYPosition,
113
+ left: elementXPosition,
114
+ maxHeight: elementMaxHeight,
115
+ alignment
116
+ };
117
+ }
79
118
  export {
80
119
  getElementPosition,
120
+ getElementPositionHorizontal,
81
121
  getElementRectangle,
82
122
  isEventOnElement
83
123
  };
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL292ZXJsYXkvcG9zaXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRWxlbWVudFJlY3RhbmdsZSA9IFBpY2s8XG4gIEhUTUxFbGVtZW50LFxuICAnc2Nyb2xsSGVpZ2h0JyB8ICdjbGllbnRIZWlnaHQnIHwgJ29mZnNldEhlaWdodCcgfCAnc2Nyb2xsV2lkdGgnIHwgJ2NsaWVudFdpZHRoJyB8ICdvZmZzZXRXaWR0aCdcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiQWxpZ25tZW50IHtcbiAgaG9yaXpvbnRhbDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XG4gIHZlcnRpY2FsOiAnYWJvdmUnIHwgJ2JlbG93Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIG1heEhlaWdodDogc3RyaW5nO1xuICBhbGlnbm1lbnQ6IFNiYkFsaWdubWVudDtcbn1cblxuLyoqXG4gKiBHZXRzIGhlaWdodCBhbmQgd2lkdGggb2YgYW4gZWxlbWVudCBldmVuIGlmIGl0J3MgaGlkZGVuIChgZGlzcGxheTogbm9uZWApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFJlY3RhbmdsZShlbDogSFRNTEVsZW1lbnQpOiBFbGVtZW50UmVjdGFuZ2xlIHtcbiAgY29uc3QgZWxlbWVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLFxuICAgIGVsZW1lbnREaXNwbGF5ID0gZWxlbWVudFN0eWxlLmRpc3BsYXksXG4gICAgZWxlbWVudE1heEhlaWdodCA9IHBhcnNlSW50KGVsZW1lbnRTdHlsZS5tYXhIZWlnaHQsIDEwKS50b1N0cmluZygpO1xuXG4gIC8vIElmIGl0IGlzIG5vdCBoaWRkZW4gd2UganVzdCByZXR1cm4gbm9ybWFsIGhlaWdodFxuICBpZiAoZWxlbWVudERpc3BsYXkgIT09ICdub25lJyAmJiBlbGVtZW50TWF4SGVpZ2h0ICE9PSAnMCcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Nyb2xsSGVpZ2h0OiBlbC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQ6IGVsLmNsaWVudEhlaWdodCxcbiAgICAgIG9mZnNldEhlaWdodDogZWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgc2Nyb2xsV2lkdGg6IGVsLnNjcm9sbFdpZHRoLFxuICAgICAgY2xpZW50V2lkdGg6IGVsLmNsaWVudFdpZHRoLFxuICAgICAgb2Zmc2V0V2lkdGg6IGVsLm9mZnNldFdpZHRoLFxuICAgIH07XG4gIH1cblxuICAvLyBUaGUgZWxlbWVudCBpcyBoaWRkZW4gc286XG4gIC8vIG1ha2UgdGhlIGVsIGJsb2NrIGluIG9yZGVyIHRvIG1lYXN1cmUgaXRzIGhlaWdodCBidXQgc3RpbGwgYmUgaGlkZGVuXG4gIGVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICBlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICBjb25zdCBzY3JvbGxIZWlnaHQgPSBlbC5zY3JvbGxIZWlnaHQsXG4gICAgY2xpZW50SGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0LFxuICAgIG9mZnNldEhlaWdodCA9IGVsLm9mZnNldEhlaWdodCxcbiAgICBzY3JvbGxXaWR0aCA9IGVsLnNjcm9sbFdpZHRoLFxuICAgIGNsaWVudFdpZHRoID0gZWwuY2xpZW50V2lkdGgsXG4gICAgb2Zmc2V0V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcblxuICAvLyBSZXZlcnRpbmcgdG8gdGhlIG9yaWdpbmFsIHZhbHVlc1xuICBlbC5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gIGVsLnN0eWxlLnBvc2l0aW9uID0gJyc7XG4gIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAnJztcblxuICByZXR1cm4geyBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCwgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGgsIG9mZnNldFdpZHRoIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGV2ZW50IGlzIGZpcmVkIG9uIGEgc3BlY2lmaWMgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXZlbnRPbkVsZW1lbnQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQsXG4pOiBib29sZWFuIHtcbiAgaWYgKCFlbGVtZW50IHx8ICFldmVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICByZXR1cm4gKFxuICAgIHJlY3QudG9wIDw9IGV2ZW50LmNsaWVudFkgJiZcbiAgICBldmVudC5jbGllbnRZIDw9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgJiZcbiAgICByZWN0LmxlZnQgPD0gZXZlbnQuY2xpZW50WCAmJlxuICAgIGV2ZW50LmNsaWVudFggPD0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aFxuICApO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gYSB0cmlnZ2VyIGVsZW1lbnQgYnkgZXZhbHVhdGluZ1xuICogdGhlIG9wdGltYWwgcG9zaXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBvZiB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbi5cbiAqIEBwYXJhbSBjb250YWluZXIgVGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBwb3NpdGlvbjpmaXhlZCBhcHBsaWVkLlxuICogQHBhcmFtIHByb3BlcnRpZXMgUHJvcGVydGllcyB0byB0YWtlIGludG8gYWNjb3VudCBpbiBjYWxjdWxhdGlvbnMgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzLnZlcnRpY2FsT2Zmc2V0IFRoZSBkaXN0YW5jZSB0byBiZSBhZGRlZCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdHJpZ2dlciAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuaG9yaXpvbnRhbE9mZnNldCBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuY2VudGVyZWQgV2hldGhlciB0aGUgZWxlbWVudCBzaG91bGQgYmUgcGxhY2VkIGluIHRoZSBjZW50ZXIgYnkgZGVmYXVsdCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMucmVzcG9uc2l2ZUhlaWdodCBXaGV0aGVyIHRoZSBlbGVtZW50IGNhbGN1bGF0ZXMgaXRzIGhlaWdodCBiYXNlZCBvbiBpdHMgY29udGVudCAob3B0aW9uYWwpLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGVmdCBwb3NpdGlvbiwgdGhlIHRvcCBwb3NpdGlvbiwgdGhlIG1heGltdW0gaGVpZ2h0XG4gKiBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGN1cnJlbnQgYWxpZ25tZW50IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQb3NpdGlvbihcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuICAgIGhvcml6b250YWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgY2VudGVyZWQ/OiBib29sZWFuO1xuICAgIHJlc3BvbnNpdmVIZWlnaHQ/OiBib29sZWFuO1xuICB9LFxuKTogU2JiRWxlbWVudFBvc2l0aW9uSW5mb3Mge1xuICBjb25zdCBtYXhXaWR0aE9mZnNldCA9IDE2O1xuICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHByb3BlcnRpZXM/LnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy5ob3Jpem9udGFsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IHJlc3BvbnNpdmVIZWlnaHQgPSBwcm9wZXJ0aWVzPy5yZXNwb25zaXZlSGVpZ2h0IHx8IGZhbHNlO1xuXG4gIGNvbnN0IHRyaWdnZXJSZWMgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBlbGVtZW50UmVjID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbGVtZW50KTtcblxuICBjb25zdCB0cmlnZ2VyTGVmdCA9IHRyaWdnZXJSZWMubGVmdDtcbiAgY29uc3QgdHJpZ2dlclRvcCA9IHRyaWdnZXJSZWMudG9wO1xuXG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlUmlnaHQgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAtICh0cmlnZ2VyTGVmdCArIHRyaWdnZXJSZWMud2lkdGgpO1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUFib3ZlID0gdHJpZ2dlclRvcCAtIHZlcnRpY2FsT2Zmc2V0O1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUJlbG93ID1cbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gKHRyaWdnZXJUb3AgKyB0cmlnZ2VyUmVjLmhlaWdodCArIHZlcnRpY2FsT2Zmc2V0KTtcblxuICAvLyBEZWZhdWx0IGVsZW1lbnQgYWxpZ25tZW50IGlzIFwic3RhcnQvYmVsb3dcIlxuICBsZXQgZWxlbWVudFhQb3NpdGlvbiA9IHRyaWdnZXJMZWZ0O1xuICBsZXQgZWxlbWVudFlQb3NpdGlvbiA9IHRyaWdnZXJUb3AgKyB0cmlnZ2VyUmVjLmhlaWdodCArIHZlcnRpY2FsT2Zmc2V0O1xuICBsZXQgZWxlbWVudFhPdmVyZmxvdyA9IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGggLSB0cmlnZ2VyUmVjLndpZHRoO1xuICBjb25zdCBhbGlnbm1lbnQ6IFNiYkFsaWdubWVudCA9IHsgaG9yaXpvbnRhbDogJ3N0YXJ0JywgdmVydGljYWw6ICdiZWxvdycgfTtcblxuICAvLyBDYWxjdWxhdGUgZWxlbWVudCBtYXgtaGVpZ2h0XG4gIGxldCBlbGVtZW50TWF4SGVpZ2h0ID0gYCR7YXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0fXB4YDtcblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiY2VudGVyXCJcbiAgaWYgKFxuICAgIHByb3BlcnRpZXM/LmNlbnRlcmVkICYmXG4gICAgdHJpZ2dlckxlZnQgLSBtYXhXaWR0aE9mZnNldCArIHRyaWdnZXJSZWMud2lkdGggLyAyID4gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAvIDIgJiZcbiAgICBhdmFpbGFibGVTcGFjZVJpZ2h0IC0gbWF4V2lkdGhPZmZzZXQgPiBlbGVtZW50WE92ZXJmbG93IC8gMlxuICApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uIC09IGVsZW1lbnRYT3ZlcmZsb3cgLz0gMjtcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdjZW50ZXInO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgaG9yaXpvbnRhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImVuZFwiXG4gIGlmIChhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiB0cmlnZ2VyTGVmdCA+IGVsZW1lbnRYT3ZlcmZsb3cpIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uID0gZWxlbWVudFhQb3NpdGlvbiAtIGVsZW1lbnRYT3ZlcmZsb3c7XG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgPSAnZW5kJztcbiAgfVxuXG4gIC8vIEFkZCBob3Jpem9udGFsIG9mZnNldFxuICBpZiAoXG4gICAgaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGFsaWdubWVudC5ob3Jpem9udGFsICE9PSAnY2VudGVyJyAmJlxuICAgIHRyaWdnZXJSZWMud2lkdGggLyAyIDwgaG9yaXpvbnRhbE9mZnNldFxuICApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uICs9IGhvcml6b250YWxPZmZzZXQgKiAoYWxpZ25tZW50Lmhvcml6b250YWwgPT09ICdzdGFydCcgPyAtMSA6IDEpO1xuICB9XG5cbiAgLy8gQ2hlY2sgd2hldGhlciB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgc3BhY2Ugb24gYm90aCBzaWRlc1xuICBpZiAoXG4gICAgKHRyaWdnZXJMZWZ0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiBhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdykgfHxcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggPCBlbGVtZW50UmVjLm9mZnNldFdpZHRoXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAvIDI7XG4gIH1cblxuICAvLyBDaGVjayBpZiB2ZXJ0aWNhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImFib3ZlXCI6XG4gIGlmIChcbiAgICAoYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQgJiZcbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+XG4gICAgICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkpIHx8XG4gICAgKGF2YWlsYWJsZVNwYWNlQWJvdmUgPiBhdmFpbGFibGVTcGFjZUJlbG93ICYmXG4gICAgICBhdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXQgPCBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAmJlxuICAgICAgIXJlc3BvbnNpdmVIZWlnaHQpXG4gICkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gPVxuICAgICAgYXZhaWxhYmxlU3BhY2VBYm92ZSA8IGVsZW1lbnRSZWMuc2Nyb2xsSGVpZ2h0XG4gICAgICAgID8gZWxlbWVudFlQb3NpdGlvbiAtIHRyaWdnZXJSZWMuaGVpZ2h0IC0gYXZhaWxhYmxlU3BhY2VBYm92ZSAtIHZlcnRpY2FsT2Zmc2V0XG4gICAgICAgIDogdHJpZ2dlclRvcCAtIGVsZW1lbnRSZWMuY2xpZW50SGVpZ2h0IC0gdmVydGljYWxPZmZzZXQ7XG5cbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gYCR7YXZhaWxhYmxlU3BhY2VBYm92ZSAtIHZlcnRpY2FsT2Zmc2V0fXB4YDtcbiAgICBhbGlnbm1lbnQudmVydGljYWwgPSAnYWJvdmUnO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAvLyBXaGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoZSBjb250YWluZXIgcmVjdGFuZ2xlIGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcyBmb3IgdGhlIHBvc2l0aW9uXG4gIC8vIGFuZCB3ZSBuZWVkIHRvIHJlLWFkZCB0aGVtIHRvIHRoZSBjYWxjdWxhdGVkIGNvb3JkaW5hdGVzLlxuICBpZiAoY29udGFpbmVyUmVjdC5sZWZ0IDwgMCkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICB9XG5cbiAgLy8gTm9ybWFsbHkgdGhlIGNvbnRhaW5lclJlY3QncyB0b3AgdmFsdWUgd291bGQgYmUgemVybywgaG93ZXZlciB3aGVuIHRoZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvIGFuIGlucHV0XG4gIC8vIChlLmcuIGluIGFuIGF1dG9jb21wbGV0ZSksIG1vYmlsZSBicm93c2VycyB3aWxsIHNoaWZ0IGV2ZXJ5dGhpbmcgaW4gb3JkZXIgdG8gcHV0IHRoZSBpbnB1dCBpbiB0aGUgbWlkZGxlXG4gIC8vIG9mIHRoZSBzY3JlZW4gYW5kIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSB2aXJ0dWFsIGtleWJvYXJkLiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgb2Zmc2V0LFxuICAvLyBvdGhlcndpc2Ugb3VyIHBvc2l0aW9uaW5nIHdpbGwgYmUgdGhyb3duIG9mZi5cbiAgLy8gQWRkaXRpb25hbGx5LCB3aGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoaXMgZml4ZXMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uLlxuICBpZiAoY29udGFpbmVyUmVjdC50b3AgPCAwKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LnRvcDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdG9wOiBlbGVtZW50WVBvc2l0aW9uLFxuICAgIGxlZnQ6IGVsZW1lbnRYUG9zaXRpb24sXG4gICAgbWF4SGVpZ2h0OiBlbGVtZW50TWF4SGVpZ2h0LFxuICAgIGFsaWdubWVudDogYWxpZ25tZW50LFxuICB9O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CTSxTQUFVLG9CQUFvQixJQUFlO0FBQ2pELFFBQU0sZUFBZSxPQUFPLGlCQUFpQixFQUFFLEdBQzdDLGlCQUFpQixhQUFhLFNBQzlCLG1CQUFtQixTQUFTLGFBQWEsV0FBVyxFQUFFLEVBQUUsU0FBQTtBQUcxRCxNQUFJLG1CQUFtQixVQUFVLHFCQUFxQixLQUFLO0FBQ3pELFdBQU87QUFBQSxNQUNMLGNBQWMsR0FBRztBQUFBLE1BQ2pCLGNBQWMsR0FBRztBQUFBLE1BQ2pCLGNBQWMsR0FBRztBQUFBLE1BQ2pCLGFBQWEsR0FBRztBQUFBLE1BQ2hCLGFBQWEsR0FBRztBQUFBLE1BQ2hCLGFBQWEsR0FBRztBQUFBLElBQUE7QUFBQSxFQUVw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
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL292ZXJsYXkvcG9zaXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRWxlbWVudFJlY3RhbmdsZSA9IFBpY2s8XG4gIEhUTUxFbGVtZW50LFxuICAnc2Nyb2xsSGVpZ2h0JyB8ICdjbGllbnRIZWlnaHQnIHwgJ29mZnNldEhlaWdodCcgfCAnc2Nyb2xsV2lkdGgnIHwgJ2NsaWVudFdpZHRoJyB8ICdvZmZzZXRXaWR0aCdcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiQWxpZ25tZW50IHtcbiAgaG9yaXpvbnRhbDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XG4gIHZlcnRpY2FsOiAnYWJvdmUnIHwgJ2JlbG93Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIG1heEhlaWdodDogc3RyaW5nO1xuICBhbGlnbm1lbnQ6IFNiYkFsaWdubWVudDtcbn1cblxuLyoqXG4gKiBHZXRzIGhlaWdodCBhbmQgd2lkdGggb2YgYW4gZWxlbWVudCBldmVuIGlmIGl0J3MgaGlkZGVuIChgZGlzcGxheTogbm9uZWApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFJlY3RhbmdsZShlbDogSFRNTEVsZW1lbnQpOiBFbGVtZW50UmVjdGFuZ2xlIHtcbiAgY29uc3QgZWxlbWVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLFxuICAgIGVsZW1lbnREaXNwbGF5ID0gZWxlbWVudFN0eWxlLmRpc3BsYXksXG4gICAgZWxlbWVudE1heEhlaWdodCA9IHBhcnNlSW50KGVsZW1lbnRTdHlsZS5tYXhIZWlnaHQsIDEwKS50b1N0cmluZygpO1xuXG4gIC8vIElmIGl0IGlzIG5vdCBoaWRkZW4gd2UganVzdCByZXR1cm4gbm9ybWFsIGhlaWdodFxuICBpZiAoZWxlbWVudERpc3BsYXkgIT09ICdub25lJyAmJiBlbGVtZW50TWF4SGVpZ2h0ICE9PSAnMCcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Nyb2xsSGVpZ2h0OiBlbC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQ6IGVsLmNsaWVudEhlaWdodCxcbiAgICAgIG9mZnNldEhlaWdodDogZWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgc2Nyb2xsV2lkdGg6IGVsLnNjcm9sbFdpZHRoLFxuICAgICAgY2xpZW50V2lkdGg6IGVsLmNsaWVudFdpZHRoLFxuICAgICAgb2Zmc2V0V2lkdGg6IGVsLm9mZnNldFdpZHRoLFxuICAgIH07XG4gIH1cblxuICAvLyBUaGUgZWxlbWVudCBpcyBoaWRkZW4gc286XG4gIC8vIG1ha2UgdGhlIGVsIGJsb2NrIGluIG9yZGVyIHRvIG1lYXN1cmUgaXRzIGhlaWdodCBidXQgc3RpbGwgYmUgaGlkZGVuXG4gIGVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICBlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICBjb25zdCBzY3JvbGxIZWlnaHQgPSBlbC5zY3JvbGxIZWlnaHQsXG4gICAgY2xpZW50SGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0LFxuICAgIG9mZnNldEhlaWdodCA9IGVsLm9mZnNldEhlaWdodCxcbiAgICBzY3JvbGxXaWR0aCA9IGVsLnNjcm9sbFdpZHRoLFxuICAgIGNsaWVudFdpZHRoID0gZWwuY2xpZW50V2lkdGgsXG4gICAgb2Zmc2V0V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcblxuICAvLyBSZXZlcnRpbmcgdG8gdGhlIG9yaWdpbmFsIHZhbHVlc1xuICBlbC5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gIGVsLnN0eWxlLnBvc2l0aW9uID0gJyc7XG4gIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAnJztcblxuICByZXR1cm4geyBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCwgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGgsIG9mZnNldFdpZHRoIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGV2ZW50IGlzIGZpcmVkIG9uIGEgc3BlY2lmaWMgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXZlbnRPbkVsZW1lbnQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQsXG4pOiBib29sZWFuIHtcbiAgaWYgKCFlbGVtZW50IHx8ICFldmVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICByZXR1cm4gKFxuICAgIHJlY3QudG9wIDw9IGV2ZW50LmNsaWVudFkgJiZcbiAgICBldmVudC5jbGllbnRZIDw9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgJiZcbiAgICByZWN0LmxlZnQgPD0gZXZlbnQuY2xpZW50WCAmJlxuICAgIGV2ZW50LmNsaWVudFggPD0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aFxuICApO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gYSB0cmlnZ2VyIGVsZW1lbnQgYnkgZXZhbHVhdGluZ1xuICogdGhlIG9wdGltYWwgcG9zaXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBvZiB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbi5cbiAqIEBwYXJhbSBjb250YWluZXIgVGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBwb3NpdGlvbjpmaXhlZCBhcHBsaWVkLlxuICogQHBhcmFtIHByb3BlcnRpZXMgUHJvcGVydGllcyB0byB0YWtlIGludG8gYWNjb3VudCBpbiBjYWxjdWxhdGlvbnMgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzLnZlcnRpY2FsT2Zmc2V0IFRoZSBkaXN0YW5jZSB0byBiZSBhZGRlZCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdHJpZ2dlciAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuaG9yaXpvbnRhbE9mZnNldCBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuY2VudGVyZWQgV2hldGhlciB0aGUgZWxlbWVudCBzaG91bGQgYmUgcGxhY2VkIGluIHRoZSBjZW50ZXIgYnkgZGVmYXVsdCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMucmVzcG9uc2l2ZUhlaWdodCBXaGV0aGVyIHRoZSBlbGVtZW50IGNhbGN1bGF0ZXMgaXRzIGhlaWdodCBiYXNlZCBvbiBpdHMgY29udGVudCAob3B0aW9uYWwpLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGVmdCBwb3NpdGlvbiwgdGhlIHRvcCBwb3NpdGlvbiwgdGhlIG1heGltdW0gaGVpZ2h0XG4gKiBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGN1cnJlbnQgYWxpZ25tZW50IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQb3NpdGlvbihcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuICAgIGhvcml6b250YWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgY2VudGVyZWQ/OiBib29sZWFuO1xuICAgIHJlc3BvbnNpdmVIZWlnaHQ/OiBib29sZWFuO1xuICB9LFxuKTogU2JiRWxlbWVudFBvc2l0aW9uSW5mb3Mge1xuICBjb25zdCBtYXhXaWR0aE9mZnNldCA9IDE2O1xuICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHByb3BlcnRpZXM/LnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy5ob3Jpem9udGFsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IHJlc3BvbnNpdmVIZWlnaHQgPSBwcm9wZXJ0aWVzPy5yZXNwb25zaXZlSGVpZ2h0IHx8IGZhbHNlO1xuXG4gIGNvbnN0IHRyaWdnZXJSZWMgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBlbGVtZW50UmVjID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbGVtZW50KTtcblxuICBjb25zdCB0cmlnZ2VyTGVmdCA9IHRyaWdnZXJSZWMubGVmdDtcbiAgY29uc3QgdHJpZ2dlclRvcCA9IHRyaWdnZXJSZWMudG9wO1xuXG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlUmlnaHQgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAtICh0cmlnZ2VyTGVmdCArIHRyaWdnZXJSZWMud2lkdGgpO1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUFib3ZlID0gdHJpZ2dlclRvcCAtIHZlcnRpY2FsT2Zmc2V0O1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUJlbG93ID1cbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gKHRyaWdnZXJUb3AgKyB0cmlnZ2VyUmVjLmhlaWdodCArIHZlcnRpY2FsT2Zmc2V0KTtcblxuICAvLyBEZWZhdWx0IGVsZW1lbnQgYWxpZ25tZW50IGlzIFwic3RhcnQvYmVsb3dcIlxuICBsZXQgZWxlbWVudFhQb3NpdGlvbiA9IHRyaWdnZXJMZWZ0O1xuICBsZXQgZWxlbWVudFlQb3NpdGlvbiA9IHRyaWdnZXJUb3AgKyB0cmlnZ2VyUmVjLmhlaWdodCArIHZlcnRpY2FsT2Zmc2V0O1xuICBsZXQgZWxlbWVudFhPdmVyZmxvdyA9IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGggLSB0cmlnZ2VyUmVjLndpZHRoO1xuICBjb25zdCBhbGlnbm1lbnQ6IFNiYkFsaWdubWVudCA9IHsgaG9yaXpvbnRhbDogJ3N0YXJ0JywgdmVydGljYWw6ICdiZWxvdycgfTtcblxuICAvLyBDYWxjdWxhdGUgZWxlbWVudCBtYXgtaGVpZ2h0XG4gIGxldCBlbGVtZW50TWF4SGVpZ2h0ID0gYCR7YXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0fXB4YDtcblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiY2VudGVyXCJcbiAgaWYgKFxuICAgIHByb3BlcnRpZXM/LmNlbnRlcmVkICYmXG4gICAgdHJpZ2dlckxlZnQgLSBtYXhXaWR0aE9mZnNldCArIHRyaWdnZXJSZWMud2lkdGggLyAyID4gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAvIDIgJiZcbiAgICBhdmFpbGFibGVTcGFjZVJpZ2h0IC0gbWF4V2lkdGhPZmZzZXQgPiBlbGVtZW50WE92ZXJmbG93IC8gMlxuICApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uIC09IGVsZW1lbnRYT3ZlcmZsb3cgLz0gMjtcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdjZW50ZXInO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgaG9yaXpvbnRhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImVuZFwiXG4gIGlmIChhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiB0cmlnZ2VyTGVmdCA+IGVsZW1lbnRYT3ZlcmZsb3cpIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uID0gZWxlbWVudFhQb3NpdGlvbiAtIGVsZW1lbnRYT3ZlcmZsb3c7XG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgPSAnZW5kJztcbiAgfVxuXG4gIC8vIEFkZCBob3Jpem9udGFsIG9mZnNldFxuICBpZiAoXG4gICAgaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGFsaWdubWVudC5ob3Jpem9udGFsICE9PSAnY2VudGVyJyAmJlxuICAgIHRyaWdnZXJSZWMud2lkdGggLyAyIDwgaG9yaXpvbnRhbE9mZnNldFxuICApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uICs9IGhvcml6b250YWxPZmZzZXQgKiAoYWxpZ25tZW50Lmhvcml6b250YWwgPT09ICdzdGFydCcgPyAtMSA6IDEpO1xuICB9XG5cbiAgLy8gQ2hlY2sgd2hldGhlciB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgc3BhY2Ugb24gYm90aCBzaWRlc1xuICBpZiAoXG4gICAgKHRyaWdnZXJMZWZ0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiBhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdykgfHxcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggPCBlbGVtZW50UmVjLm9mZnNldFdpZHRoXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAvIDI7XG4gIH1cblxuICAvLyBDaGVjayBpZiB2ZXJ0aWNhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImFib3ZlXCI6XG4gIGlmIChcbiAgICAoYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQgJiZcbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+XG4gICAgICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkpIHx8XG4gICAgKGF2YWlsYWJsZVNwYWNlQWJvdmUgPiBhdmFpbGFibGVTcGFjZUJlbG93ICYmXG4gICAgICBhdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXQgPCBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAmJlxuICAgICAgIXJlc3BvbnNpdmVIZWlnaHQpXG4gICkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gPVxuICAgICAgYXZhaWxhYmxlU3BhY2VBYm92ZSA8IGVsZW1lbnRSZWMuc2Nyb2xsSGVpZ2h0XG4gICAgICAgID8gZWxlbWVudFlQb3NpdGlvbiAtIHRyaWdnZXJSZWMuaGVpZ2h0IC0gYXZhaWxhYmxlU3BhY2VBYm92ZSAtIHZlcnRpY2FsT2Zmc2V0XG4gICAgICAgIDogdHJpZ2dlclRvcCAtIGVsZW1lbnRSZWMuY2xpZW50SGVpZ2h0IC0gdmVydGljYWxPZmZzZXQ7XG5cbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gYCR7YXZhaWxhYmxlU3BhY2VBYm92ZSAtIHZlcnRpY2FsT2Zmc2V0fXB4YDtcbiAgICBhbGlnbm1lbnQudmVydGljYWwgPSAnYWJvdmUnO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAvLyBXaGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoZSBjb250YWluZXIgcmVjdGFuZ2xlIGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcyBmb3IgdGhlIHBvc2l0aW9uXG4gIC8vIGFuZCB3ZSBuZWVkIHRvIHJlLWFkZCB0aGVtIHRvIHRoZSBjYWxjdWxhdGVkIGNvb3JkaW5hdGVzLlxuICBpZiAoY29udGFpbmVyUmVjdC5sZWZ0IDwgMCkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICB9XG5cbiAgLy8gTm9ybWFsbHkgdGhlIGNvbnRhaW5lclJlY3QncyB0b3AgdmFsdWUgd291bGQgYmUgemVybywgaG93ZXZlciB3aGVuIHRoZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvIGFuIGlucHV0XG4gIC8vIChlLmcuIGluIGFuIGF1dG9jb21wbGV0ZSksIG1vYmlsZSBicm93c2VycyB3aWxsIHNoaWZ0IGV2ZXJ5dGhpbmcgaW4gb3JkZXIgdG8gcHV0IHRoZSBpbnB1dCBpbiB0aGUgbWlkZGxlXG4gIC8vIG9mIHRoZSBzY3JlZW4gYW5kIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSB2aXJ0dWFsIGtleWJvYXJkLiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgb2Zmc2V0LFxuICAvLyBvdGhlcndpc2Ugb3VyIHBvc2l0aW9uaW5nIHdpbGwgYmUgdGhyb3duIG9mZi5cbiAgLy8gQWRkaXRpb25hbGx5LCB3aGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoaXMgZml4ZXMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uLlxuICBpZiAoY29udGFpbmVyUmVjdC50b3AgPCAwKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LnRvcDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdG9wOiBlbGVtZW50WVBvc2l0aW9uLFxuICAgIGxlZnQ6IGVsZW1lbnRYUG9zaXRpb24sXG4gICAgbWF4SGVpZ2h0OiBlbGVtZW50TWF4SGVpZ2h0LFxuICAgIGFsaWdubWVudDogYWxpZ25tZW50LFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gYSB0cmlnZ2VyIGVsZW1lbnQgYnkgZXZhbHVhdGluZ1xuICogdGhlIG9wdGltYWwgcG9zaXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBvZiB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbi5cbiAqIEBwYXJhbSBjb250YWluZXIgVGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBwb3NpdGlvbjpmaXhlZCBhcHBsaWVkLlxuICogQHBhcmFtIHByb3BlcnRpZXMgUHJvcGVydGllcyB0byB0YWtlIGludG8gYWNjb3VudCBpbiBjYWxjdWxhdGlvbnMgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzLnZlcnRpY2FsT2Zmc2V0IFRoZSBkaXN0YW5jZSB0byBiZSBhZGRlZCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdHJpZ2dlciAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuaG9yaXpvbnRhbE9mZnNldCBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMucmVzcG9uc2l2ZUhlaWdodCBXaGV0aGVyIHRoZSBlbGVtZW50IGNhbGN1bGF0ZXMgaXRzIGhlaWdodCBiYXNlZCBvbiBpdHMgY29udGVudCAob3B0aW9uYWwpLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGVmdCBwb3NpdGlvbiwgdGhlIHRvcCBwb3NpdGlvbiwgdGhlIG1heGltdW0gaGVpZ2h0XG4gKiBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGN1cnJlbnQgYWxpZ25tZW50IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQb3NpdGlvbkhvcml6b250YWwoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyOiBIVE1MRWxlbWVudCxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgcHJvcGVydGllcz86IHtcbiAgICB2ZXJ0aWNhbE9mZnNldD86IG51bWJlcjtcbiAgICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyO1xuICAgIHJlc3BvbnNpdmVIZWlnaHQ/OiBib29sZWFuO1xuICAgIGNvbnRlbnRTZWxlY3Rvcj86IHN0cmluZztcbiAgfSxcbik6IFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgY29uc3QgbWF4SGVpZ2h0T2Zmc2V0ID0gMTY7XG5cbiAgY29uc3QgdmVydGljYWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICBjb25zdCBob3Jpem9udGFsT2Zmc2V0ID0gcHJvcGVydGllcz8uaG9yaXpvbnRhbE9mZnNldCB8fCAwO1xuXG4gIGNvbnN0IHRyaWdnZXJSZWMgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBlbGVtZW50UmVjID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbGVtZW50KTtcbiAgY29uc3QgdHJpZ2dlclBhcmVudFJlYyA9IHRyaWdnZXJcbiAgICAucGFyZW50RWxlbWVudCEuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgIHByb3BlcnRpZXM/LmNvbnRlbnRTZWxlY3RvciA/PyBgLiR7ZWxlbWVudC5jbGFzc05hbWV9YCxcbiAgICApIVxuICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBhdmFpbGFibGVTcGFjZVJpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gdHJpZ2dlclBhcmVudFJlYy5yaWdodDtcbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VCZWxvdyA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtICh0cmlnZ2VyUmVjLnRvcCAtIHZlcnRpY2FsT2Zmc2V0KTtcbiAgY29uc3QgYXZhaWxhYmxlVmVydGljYWxTcGFjZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIGNvbnN0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVWZXJ0aWNhbFNwYWNlIC0gbWF4SGVpZ2h0T2Zmc2V0ICogMn1weGA7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnZW5kJywgdmVydGljYWw6ICdhYm92ZScgfTtcbiAgY29uc3QgZWxlbWVudFhPdmVyZmxvdyA9IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGggKyBob3Jpem9udGFsT2Zmc2V0O1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJlbmQvYWJvdmVcIlxuICBsZXQgZWxlbWVudFhQb3NpdGlvbiA9IHRyaWdnZXJQYXJlbnRSZWMucmlnaHQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclJlYy50b3AgKyB2ZXJ0aWNhbE9mZnNldDtcblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwic3RhcnRcIlxuICBpZiAoYXZhaWxhYmxlU3BhY2VSaWdodCA8IGVsZW1lbnRYT3ZlcmZsb3cgJiYgdHJpZ2dlclJlYy5sZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gdHJpZ2dlclBhcmVudFJlYy53aWR0aCAtIGVsZW1lbnRSZWMub2Zmc2V0V2lkdGg7XG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgPSAnc3RhcnQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChob3Jpem9udGFsT2Zmc2V0ICYmIGFsaWdubWVudC5ob3Jpem9udGFsICE9PSAnY2VudGVyJykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB2ZXJ0aWNhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImFib3ZlXCI6XG4gIGlmIChhdmFpbGFibGVTcGFjZUJlbG93IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQpIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uID0gYXZhaWxhYmxlVmVydGljYWxTcGFjZSAtIGVsZW1lbnRSZWMuY2xpZW50SGVpZ2h0IC0gbWF4SGVpZ2h0T2Zmc2V0O1xuICB9XG5cbiAgLy8gV2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGUgY29udGFpbmVyIHJlY3RhbmdsZSBjb250YWlucyBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBwb3NpdGlvblxuICAvLyBhbmQgd2UgbmVlZCB0byByZS1hZGQgdGhlbSB0byB0aGUgY2FsY3VsYXRlZCBjb29yZGluYXRlcy5cbiAgaWYgKGNvbnRhaW5lclJlY3QubGVmdCA8IDApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QubGVmdDtcbiAgfVxuXG4gIC8vIE5vcm1hbGx5IHRoZSBjb250YWluZXJSZWN0J3MgdG9wIHZhbHVlIHdvdWxkIGJlIHplcm8sIGhvd2V2ZXIgd2hlbiB0aGUgb3ZlcmxheSBpcyBhdHRhY2hlZCB0byBhbiBpbnB1dFxuICAvLyAoZS5nLiBpbiBhbiBhdXRvY29tcGxldGUpLCBtb2JpbGUgYnJvd3NlcnMgd2lsbCBzaGlmdCBldmVyeXRoaW5nIGluIG9yZGVyIHRvIHB1dCB0aGUgaW5wdXQgaW4gdGhlIG1pZGRsZVxuICAvLyBvZiB0aGUgc2NyZWVuIGFuZCB0byBtYWtlIHNwYWNlIGZvciB0aGUgdmlydHVhbCBrZXlib2FyZC4gV2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIG9mZnNldCxcbiAgLy8gb3RoZXJ3aXNlIG91ciBwb3NpdGlvbmluZyB3aWxsIGJlIHRocm93biBvZmYuXG4gIC8vIEFkZGl0aW9uYWxseSwgd2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGlzIGZpeGVzIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbi5cbiAgaWYgKGNvbnRhaW5lclJlY3QudG9wIDwgMCkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC50b3A7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvcDogZWxlbWVudFlQb3NpdGlvbixcbiAgICBsZWZ0OiBlbGVtZW50WFBvc2l0aW9uLFxuICAgIG1heEhlaWdodDogZWxlbWVudE1heEhlaWdodCxcbiAgICBhbGlnbm1lbnQ6IGFsaWdubWVudCxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQk0sU0FBVSxvQkFBb0IsSUFBZTtBQUNqRCxRQUFNLGVBQWUsT0FBTyxpQkFBaUIsRUFBRSxHQUM3QyxpQkFBaUIsYUFBYSxTQUM5QixtQkFBbUIsU0FBUyxhQUFhLFdBQVcsRUFBRSxFQUFFLFNBQUE7QUFHMUQsTUFBSSxtQkFBbUIsVUFBVSxxQkFBcUIsS0FBSztBQUN6RCxXQUFPO0FBQUEsTUFDTCxjQUFjLEdBQUc7QUFBQSxNQUNqQixjQUFjLEdBQUc7QUFBQSxNQUNqQixjQUFjLEdBQUc7QUFBQSxNQUNqQixhQUFhLEdBQUc7QUFBQSxNQUNoQixhQUFhLEdBQUc7QUFBQSxNQUNoQixhQUFhLEdBQUc7QUFBQSxJQUFBO0FBQUEsRUFFcEI7QUFJQSxLQUFHLE1BQU0sV0FBVztBQUNwQixLQUFHLE1BQU0sYUFBYTtBQUN0QixLQUFHLE1BQU0sVUFBVTtBQUVuQixRQUFNLGVBQWUsR0FBRyxjQUN0QixlQUFlLEdBQUcsY0FDbEIsZUFBZSxHQUFHLGNBQ2xCLGNBQWMsR0FBRyxhQUNqQixjQUFjLEdBQUcsYUFDakIsY0FBYyxHQUFHO0FBR25CLEtBQUcsTUFBTSxVQUFVO0FBQ25CLEtBQUcsTUFBTSxXQUFXO0FBQ3BCLEtBQUcsTUFBTSxhQUFhO0FBRXRCLFNBQU8sRUFBRSxjQUFjLGNBQWMsY0FBYyxhQUFhLGFBQWEsWUFBQTtBQUMvRTtBQUtNLFNBQVUsaUJBQ2QsU0FDQSxPQUFnQztBQUVoQyxNQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87QUFDdEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLE9BQU8sUUFBUSxzQkFBQTtBQUNyQixTQUNFLEtBQUssT0FBTyxNQUFNLFdBQ2xCLE1BQU0sV0FBVyxLQUFLLE1BQU0sS0FBSyxVQUNqQyxLQUFLLFFBQVEsTUFBTSxXQUNu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
@@ -2,10 +2,11 @@ import { overlayGapFixCorners } from "./overlay/overlay.js";
2
2
  import { setOverlayPosition } from "./overlay/overlay-option-panel.js";
3
3
  import { SbbOverlayOutsidePointerEventListener, sbbOverlayOutsidePointerEventListener } from "./overlay/overlay-outside-pointer-event-listener.js";
4
4
  import { removeAriaComboBoxAttributes, removeAriaOverlayTriggerAttributes, setAriaComboBoxAttributes, setAriaOverlayTriggerAttributes } from "./overlay/overlay-trigger-attributes.js";
5
- import { getElementPosition, getElementRectangle, isEventOnElement } from "./overlay/position.js";
5
+ import { getElementPosition, getElementPositionHorizontal, getElementRectangle, isEventOnElement } from "./overlay/position.js";
6
6
  export {
7
7
  SbbOverlayOutsidePointerEventListener,
8
8
  getElementPosition,
9
+ getElementPositionHorizontal,
9
10
  getElementRectangle,
10
11
  isEventOnElement,
11
12
  overlayGapFixCorners,
@@ -1 +1 @@
1
- {"version":3,"file":"menu-action-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/common/menu-action-common.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;;AAKlF,MAAM,CAAC,OAAO,OAAO,mCAAoC,SAAQ,wCAEhE;CAAG;AAGJ,eAAO,MAAM,+BAA+B,GAC1C,CAAC,SAAS,mBAAmB,CAAC,oBAAoB,CAAC,EAEnD,YAAY,CAAC,KACZ,mBAAmB,CAAC,mCAAmC,CAAC,GAAG,CAqB7D,CAAC"}
1
+ {"version":3,"file":"menu-action-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/common/menu-action-common.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;;AAKlF,MAAM,CAAC,OAAO,OAAO,mCAAoC,SAAQ,wCAEhE;CAAG;AAGJ,eAAO,MAAM,+BAA+B,GAC1C,CAAC,SAAS,mBAAmB,CAAC,oBAAoB,CAAC,EAEnD,YAAY,CAAC,KACZ,mBAAmB,CAAC,mCAAmC,CAAC,GAAG,CAwB7D,CAAC"}
@@ -25,7 +25,7 @@ const style = css`*,
25
25
  }
26
26
 
27
27
  @media (any-hover: hover) {
28
- :host(:hover:not([disabled], :disabled, [disabled-interactive])) {
28
+ :host(:is(:hover:not([disabled], :disabled, [disabled-interactive]), [aria-expanded=true])) {
29
29
  --sbb-menu-background-color: var(--sbb-color-iron);
30
30
  --sbb-menu-background-color: light-dark(var(--sbb-color-iron), var(--sbb-color-milk));
31
31
  --sbb-menu-action-forced-color-border-color: Highlight;
@@ -46,6 +46,10 @@ const style = css`*,
46
46
  }
47
47
  }
48
48
 
49
+ :host([data-sbb-menu-trigger]) {
50
+ --sbb-menu-action-cursor: default;
51
+ }
52
+
49
53
  @media (forced-colors: active) {
50
54
  :host([data-button]) {
51
55
  --sbb-menu-action-color: ButtonText;
@@ -61,6 +65,10 @@ const style = css`*,
61
65
  inset: calc(var(--sbb-menu-action-outer-vertical-padding) + var(--sbb-menu-action-content-padding-block) + var(--sbb-badge-position-offset)) calc(100% - var(--sbb-menu-action-outer-horizontal-padding) - var(--sbb-menu-action-content-padding-inline) - var(--sbb-size-icon-ui-small) + var(--sbb-badge-position-offset)) auto auto !important;
62
66
  }
63
67
 
68
+ :host([aria-controls*=sbb-menu]) {
69
+ --sbb-menu-action-submenu-icon-display: flex;
70
+ }
71
+
64
72
  :is(.sbb-menu-button, .sbb-menu-link) {
65
73
  text-decoration: none;
66
74
  display: block;
@@ -97,12 +105,18 @@ const style = css`*,
97
105
  }
98
106
  }
99
107
 
100
- .sbb-menu-action__icon {
108
+ .sbb-menu-action__icon,
109
+ .sbb-menu-submenu__icon {
101
110
  display: flex;
102
111
  min-width: var(--sbb-size-icon-ui-small);
103
112
  min-height: var(--sbb-size-icon-ui-small);
104
113
  }
105
114
 
115
+ .sbb-menu-submenu__icon {
116
+ display: var(--sbb-menu-action-submenu-icon-display, none);
117
+ margin-inline-start: auto;
118
+ }
119
+
106
120
  .sbb-menu-action__label {
107
121
  overflow: hidden;
108
122
  white-space: nowrap;
@@ -127,6 +141,9 @@ const SbbMenuActionCommonElementMixin = (superClass) => {
127
141
  <span class="sbb-menu-action__label">
128
142
  <slot></slot>
129
143
  </span>
144
+ <span class="sbb-menu-submenu__icon">
145
+ <sbb-icon name="chevron-small-right-small"></sbb-icon>
146
+ </span>
130
147
  </span>
131
148
  `;
132
149
  }
@@ -143,4 +160,4 @@ const SbbMenuActionCommonElementMixin = (superClass) => {
143
160
  export {
144
161
  SbbMenuActionCommonElementMixin
145
162
  };
146
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1hY3Rpb24tY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvbWVudS9jb21tb24vbWVudS1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQWJzdHJhY3RDb25zdHJ1Y3RvciwgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWVudS1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiTWVudUFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGUgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFxuICBTYmJEaXNhYmxlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSxcbikge31cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiTWVudUFjdGlvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbWVudS1hY3Rpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1tZW51LWFjdGlvbl9faWNvblwiPiAke3N1cGVyLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1tZW51LWFjdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJNZW51QWN0aW9uQ29tbW9uRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTWVudUFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVPLE1BQU0sa0NBQWtDLENBRzdDLGVBQ2dFO01BRWpELDhCQUEwQixNQUFBOztBQUR4QyxRQUFBLG1CQUFBLENBQUEsV0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUEsTUFLbkMsaUJBQWM7QUFDL0IsZUFBTztBQUFBO0FBQUEsaURBRW9DLE1BQU0sZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTW5FO0FBQUE7O0FBZkYsbUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztVQUlnQixHQUFBLFNBQXlCLE9BSjFCLGtCQUFBLFlBQUEsdUJBQUEsR0FDYjs7O0FBZ0JGLFNBQU87QUFFVDsifQ==
163
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1hY3Rpb24tY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvbWVudS9jb21tb24vbWVudS1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQWJzdHJhY3RDb25zdHJ1Y3RvciwgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWVudS1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiTWVudUFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGUgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFxuICBTYmJEaXNhYmxlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSxcbikge31cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiTWVudUFjdGlvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbWVudS1hY3Rpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1tZW51LWFjdGlvbl9faWNvblwiPiAke3N1cGVyLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1tZW51LWFjdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbWVudS1zdWJtZW51X19pY29uXCI+XG4gICAgICAgICAgICA8c2JiLWljb24gbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIj48L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYk1lbnVBY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJNZW51QWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlTyxNQUFNLGtDQUFrQyxDQUc3QyxlQUNnRTtNQUVqRCw4QkFBMEIsTUFBQTs7QUFEeEMsUUFBQSxtQkFBQSxDQUFBLFdBQVc7Ozs7QUFFRixRQUFBLGNBQUEsaUJBQWlCLGlCQUFpQixVQUFVLENBQUM7QUFBckQsSUFBQSxtQkFBUSxZQUE4QztBQUFBLE1BS25DLGlCQUFjO0FBQy9CLGVBQU87QUFBQTtBQUFBLGlEQUVvQyxNQUFNLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQVNuRTtBQUFBOztBQWxCRixtQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1VBSWdCLEdBQUEsU0FBeUIsT0FKMUIsa0JBQUEsWUFBQSx1QkFBQSxHQUNiOzs7QUFtQkYsU0FBTztBQUVUOyJ9
@@ -1,7 +1,7 @@
1
1
  import { CSSResultGroup, PropertyDeclaration, PropertyValues, TemplateResult } from 'lit';
2
2
  import { SbbOpenCloseBaseElement } from '../../core/base-elements.js';
3
3
  import { SbbMenuButtonElement } from '../menu-button.js';
4
- import { SbbMenuLinkElement } from '../menu-link.js';
4
+ import { SbbMenuLinkElement } from '../menu-link/menu-link.component.js';
5
5
  declare const SbbMenuElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNamedSlotListMixinType<SbbMenuButtonElement | SbbMenuLinkElement>> & typeof SbbOpenCloseBaseElement;
6
6
  /**
7
7
  * It displays a contextual menu with one or more action element.
@@ -35,39 +35,50 @@ export declare class SbbMenuElement extends SbbMenuElement_base {
35
35
  private _focusTrapController;
36
36
  private _scrollHandler;
37
37
  private _inertController;
38
+ private _mobileBreakpoint;
38
39
  private _mediaMatcher;
39
40
  private _darkModeController;
41
+ private _language;
42
+ private _nestedMenu;
40
43
  constructor();
44
+ protected firstUpdated(changedProperties: PropertyValues<this>): void;
45
+ escapeStrategy(): void;
41
46
  /**
42
47
  * Opens the menu on trigger click.
43
48
  */
44
49
  open(): void;
45
- /**
46
- * Closes the menu.
47
- */
50
+ /** Closes the menu and all its nested menus. */
48
51
  close(): void;
52
+ /** Closes the menu and all related menus nested and parent menus). */
53
+ closeAll(): void;
54
+ /** @param [closeAll='false'] - If true, it ensures animations are correct by toggling some states when closing all related menus at once. */
55
+ private _close;
49
56
  private _isZeroAnimationDuration;
50
57
  private _handleOpening;
51
58
  private _handleClosing;
52
- /**
53
- * Handles click and checks if its target is a sbb-menu-button/sbb-menu-link.
54
- */
55
- private _onClick;
56
59
  private _handleKeyDown;
57
60
  protected createRenderRoot(): HTMLElement | DocumentFragment;
58
61
  connectedCallback(): void;
59
62
  disconnectedCallback(): void;
60
63
  requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void;
61
- protected firstUpdated(changedProperties: PropertyValues<this>): void;
62
64
  private _checkListCase;
63
65
  private _configureTrigger;
64
66
  private _attachWindowEvents;
65
- private _closeOnInteractiveElementClick;
67
+ private _interactiveElementClick;
66
68
  private _pointerDownListener;
67
69
  private _closeOnBackdropClick;
70
+ /** Converts the linked list into an array of SbbMenuElement. */
71
+ private _nestedMenus;
72
+ private _parentMenu;
73
+ /** The outermost menu. */
74
+ private _mainMenu;
75
+ private _isNested;
76
+ private _updateNestedInert;
77
+ private _handleMouseOver;
68
78
  private _onMenuAnimationEnd;
69
79
  private _setMenuPosition;
70
80
  private _syncNegative;
81
+ private _isMobile;
71
82
  protected render(): TemplateResult;
72
83
  }
73
84
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"menu.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/menu/menu.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAUb,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAkBtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAkB1D;;;;;;;GAOG;AACH,qBAEM,cAAe,SAAQ,mBAGH;IACxB,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAgC,IAAI,UAAU;IAC9C,mBAA4B,mBAAmB,WAAwC;IAEvF;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD;;;OAGG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,2BAA2B,CAA2C;IAC9E,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,aAAa,CAQlB;IACH,OAAO,CAAC,mBAAmB,CAA+D;;IAQ1F;;OAEG;IACI,IAAI,IAAI,IAAI;IAyBnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAepB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;cA2CH,gBAAgB,IAAI,WAAW,GAAG,gBAAgB;IAkBrD,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAQ5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAQY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAK9E,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,oBAAoB,CAE1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAMF,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,aAAa;cAQF,MAAM,IAAI,cAAc;CAsB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
1
+ {"version":3,"file":"menu.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/menu/menu.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAUb,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAqBtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;;AAmB3B;;;;;;;GAOG;AACH,qBAEM,cAAe,SAAQ,mBAGH;IACxB,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAgC,IAAI,UAAU;IAC9C,mBAA4B,mBAAmB,WAAwC;IAEvF;;;;OAIG;IACH,SAEgB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnD;;;OAGG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,2BAA2B,CAA2C;IAC9E,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,iBAAiB,CAAwC;IACjE,OAAO,CAAC,aAAa,CAQlB;IACH,OAAO,CAAC,mBAAmB,CAA+D;IAC1F,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,WAAW,CAA+B;;cAO/B,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9D,cAAc,IAAI,IAAI;IAItC;;OAEG;IACI,IAAI,IAAI,IAAI;IAuCnB,gDAAgD;IACzC,KAAK,IAAI,IAAI;IAIpB,uEAAuE;IAChE,QAAQ,IAAI,IAAI;IAIvB,6IAA6I;IAC7I,OAAO,CAAC,MAAM;IA0Bd,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,cAAc;cAqDH,gBAAgB,IAAI,WAAW,GAAG,gBAAgB;IAkBrD,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAQ5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAQP,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,oBAAoB,CAM1B;IAGF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,gEAAgE;IAChE,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAInB,0BAA0B;IAC1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,SAAS;cAIE,MAAM,IAAI,cAAc;CA+B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}