@sbb-esta/lyne-elements 1.7.0 → 1.8.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 (88) hide show
  1. package/calendar/calendar.d.ts +5 -2
  2. package/calendar/calendar.d.ts.map +1 -1
  3. package/calendar.js +73 -66
  4. package/container/container.js +5 -5
  5. package/core/base-elements/open-close-base-element.d.ts +10 -0
  6. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  7. package/core/base-elements.js +4 -0
  8. package/core/controllers/inert-controller.d.ts +18 -0
  9. package/core/controllers/inert-controller.d.ts.map +1 -0
  10. package/core/controllers.d.ts +1 -0
  11. package/core/controllers.d.ts.map +1 -1
  12. package/core/controllers.js +67 -23
  13. package/core/overlay/overlay.d.ts +0 -13
  14. package/core/overlay/overlay.d.ts.map +1 -1
  15. package/core/overlay.js +36 -86
  16. package/custom-elements.json +369 -65
  17. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
  18. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  19. package/datepicker/datepicker-toggle.js +51 -41
  20. package/development/calendar/calendar.d.ts +5 -2
  21. package/development/calendar/calendar.d.ts.map +1 -1
  22. package/development/calendar.js +35 -19
  23. package/development/container/container.js +8 -4
  24. package/development/core/base-elements/open-close-base-element.d.ts +10 -0
  25. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  26. package/development/core/base-elements.js +5 -1
  27. package/development/core/controllers/inert-controller.d.ts +18 -0
  28. package/development/core/controllers/inert-controller.d.ts.map +1 -0
  29. package/development/core/controllers.d.ts +1 -0
  30. package/development/core/controllers.d.ts.map +1 -1
  31. package/development/core/controllers.js +90 -1
  32. package/development/core/overlay/overlay.d.ts +0 -13
  33. package/development/core/overlay/overlay.d.ts.map +1 -1
  34. package/development/core/overlay.js +1 -87
  35. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
  36. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  37. package/development/datepicker/datepicker-toggle.js +17 -2
  38. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  39. package/development/dialog/dialog.js +3 -4
  40. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  41. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  42. package/development/flip-card/flip-card-details.js +28 -9
  43. package/development/flip-card/flip-card-summary.js +6 -1
  44. package/development/flip-card/flip-card.js +43 -12
  45. package/development/form-field/form-field.js +4 -2
  46. package/development/lead-container.js +5 -1
  47. package/development/menu/menu/menu.d.ts +1 -0
  48. package/development/menu/menu/menu.d.ts.map +1 -1
  49. package/development/menu/menu.js +6 -9
  50. package/development/navigation/navigation/navigation.d.ts +1 -0
  51. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  52. package/development/navigation/navigation.js +6 -9
  53. package/development/overlay/overlay-base-element.d.ts +2 -1
  54. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  55. package/development/overlay/overlay.d.ts.map +1 -1
  56. package/development/overlay.js +5 -9
  57. package/development/popover/popover.js +2 -2
  58. package/development/toggle/toggle/toggle.d.ts +2 -1
  59. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  60. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  61. package/development/toggle/toggle-option.js +3 -2
  62. package/development/toggle/toggle.js +7 -7
  63. package/dialog/dialog/dialog.d.ts.map +1 -1
  64. package/dialog/dialog.js +11 -12
  65. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  66. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  67. package/flip-card/flip-card-details.js +19 -17
  68. package/flip-card/flip-card-summary.js +13 -13
  69. package/flip-card/flip-card.js +26 -24
  70. package/form-field/form-field.js +1 -1
  71. package/lead-container.js +1 -1
  72. package/menu/menu/menu.d.ts +1 -0
  73. package/menu/menu/menu.d.ts.map +1 -1
  74. package/menu/menu.js +30 -30
  75. package/navigation/navigation/navigation.d.ts +1 -0
  76. package/navigation/navigation/navigation.d.ts.map +1 -1
  77. package/navigation/navigation.js +37 -37
  78. package/overlay/overlay-base-element.d.ts +2 -1
  79. package/overlay/overlay-base-element.d.ts.map +1 -1
  80. package/overlay/overlay.d.ts.map +1 -1
  81. package/overlay.js +44 -45
  82. package/package.json +1 -1
  83. package/popover/popover.js +1 -1
  84. package/toggle/toggle/toggle.d.ts +2 -1
  85. package/toggle/toggle/toggle.d.ts.map +1 -1
  86. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  87. package/toggle/toggle-option.js +8 -8
  88. package/toggle/toggle.js +20 -21
@@ -45,10 +45,14 @@ const style = css`@charset "UTF-8";
45
45
  --sbb-container-padding: var(--sbb-spacing-responsive-xxl);
46
46
  }
47
47
 
48
- :host(:not([expanded])[background-expanded]) {
48
+ :host([background-expanded]:not([expanded])) {
49
49
  background-color: var(--sbb-container-background-color);
50
50
  }
51
51
 
52
+ :host([data-slot-names~=image][background-expanded]) {
53
+ position: relative;
54
+ }
55
+
52
56
  .sbb-container {
53
57
  background-color: var(--sbb-container-background-color);
54
58
  padding: var(--sbb-container-padding);
@@ -76,7 +80,7 @@ const style = css`@charset "UTF-8";
76
80
  :host([expanded]) .sbb-container {
77
81
  padding-inline: var(--sbb-spacing-responsive-xxs);
78
82
  }
79
- :host([data-slot-names~=image]) .sbb-container {
83
+ :host([data-slot-names~=image]:not([background-expanded])) .sbb-container {
80
84
  position: relative;
81
85
  }
82
86
 
@@ -90,7 +94,7 @@ const style = css`@charset "UTF-8";
90
94
  inset: 0;
91
95
  }
92
96
  @media (min-width: calc(90rem)) {
93
- :host(:not([expanded])) ::slotted([slot=image]) {
97
+ :host(:not([expanded], [background-expanded])) ::slotted([slot=image]) {
94
98
  --sbb-image-border-radius: var(--sbb-border-radius-4x);
95
99
  border-radius: var(--sbb-border-radius-4x);
96
100
  }
@@ -154,4 +158,4 @@ SbbContainerElement = __decorateClass([
154
158
  export {
155
159
  SbbContainerElement
156
160
  };
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL2NvbnRhaW5lci9jb250YWluZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jb250YWluZXIuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aXRoIHRoZSBkZWZhdWx0IHBhZ2Ugc3BhY2luZy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhbnl0aGluZyB0byB0aGUgY29udGFpbmVyLlxuICogQHNsb3Qgc3RpY2t5LWJhciAtIFRoZSBzbG90IHVzZWQgYnkgdGhlIHNiYi1zdGlja3ktYmFyIGNvbXBvbmVudC5cbiAqIEBzbG90IGltYWdlIC0gVGhlIHNsb3QgdXNlZCB0byBzbG90IGFuIGBzYmItaW1hZ2VgIHRvIHVzZSBhcyBiYWNrZ3JvdW5kLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWNvbnRhaW5lcicpXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBjbGFzcyBTYmJDb250YWluZXJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250YWluZXIgaXMgZXhwYW5kZWQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJhY2tncm91bmQgY29sb3IgaXMgc2hvd24gb24gZnVsbCBjb250YWluZXIgd2lkdGggb24gbGFyZ2Ugc2NyZWVucy4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgYXR0cmlidXRlOiAnYmFja2dyb3VuZC1leHBhbmRlZCcgfSlcbiAgcHVibGljIGJhY2tncm91bmRFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGNvbG9yOiAndHJhbnNwYXJlbnQnIHwgJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdleHBhbmRlZCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXN0aWNreS1iYXInKT8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJywgdGhpcy5leHBhbmRlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWNvbnRhaW5lclwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiaW1hZ2VcIj48L3Nsb3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItY29udGFpbmVyX19jb250ZW50XCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNsb3QgbmFtZT1cInN0aWNreS1iYXJcIj48L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNvbnRhaW5lcic6IFNiYkNvbnRhaW5lckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCYSxJQUFBLHNCQUFOLGNBQWtDLFdBQVc7QUFBQSxFQUE3QyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFJdUMsU0FBTyxXQUFXO0FBSTlELFNBQU8scUJBQXFCO0FBR0MsU0FBTyxRQUEwQztBQUFBLEVBQUE7QUFBQSxFQUUzRCxXQUFXLG1CQUErQzs7QUFDM0UsVUFBTSxXQUFXLGlCQUFpQjtBQUU5QixRQUFBLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyx1QkFBSyxrQkFBTCw4QkFBcUIsc0JBQXJCLG1CQUF3QyxnQkFBZ0IsaUJBQWlCLEtBQUs7QUFBQSxJQUNoRjtBQUFBLEVBQ0Y7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU1Q7QUFDRjtBQWhDYSxvQkFDWSxTQUF5QjtBQUdHLGdCQUFBO0FBQUEsRUFBbEQsU0FBUyxFQUFFLE1BQU0sU0FBUyxTQUFTLE1BQU07QUFBQSxHQUovQixvQkFJd0MsV0FBQSxZQUFBLENBQUE7QUFJNUMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxNQUFNLFNBQVMsU0FBUyxNQUFNLFdBQVcsdUJBQXVCO0FBQUEsR0FQakUsb0JBUUosV0FBQSxzQkFBQSxDQUFBO0FBRzZCLGdCQUFBO0FBQUEsRUFBbkMsU0FBUyxFQUFFLFNBQVMsTUFBTTtBQUFBLEdBWGhCLG9CQVd5QixXQUFBLFNBQUEsQ0FBQTtBQVh6QixzQkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxlQUFlO0FBQUEsRUFDN0IsVUFBVTtBQUFBLEdBQ0UsbUJBQUE7In0=
161
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL2NvbnRhaW5lci9jb250YWluZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jb250YWluZXIuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aXRoIHRoZSBkZWZhdWx0IHBhZ2Ugc3BhY2luZy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhbnl0aGluZyB0byB0aGUgY29udGFpbmVyLlxuICogQHNsb3Qgc3RpY2t5LWJhciAtIFRoZSBzbG90IHVzZWQgYnkgdGhlIHNiYi1zdGlja3ktYmFyIGNvbXBvbmVudC5cbiAqIEBzbG90IGltYWdlIC0gVGhlIHNsb3QgdXNlZCB0byBzbG90IGFuIGBzYmItaW1hZ2VgIHRvIHVzZSBhcyBiYWNrZ3JvdW5kLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWNvbnRhaW5lcicpXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBjbGFzcyBTYmJDb250YWluZXJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250YWluZXIgaXMgZXhwYW5kZWQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJhY2tncm91bmQgY29sb3IgaXMgc2hvd24gb24gZnVsbCBjb250YWluZXIgd2lkdGggb24gbGFyZ2Ugc2NyZWVucy4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSwgYXR0cmlidXRlOiAnYmFja2dyb3VuZC1leHBhbmRlZCcgfSlcbiAgcHVibGljIGJhY2tncm91bmRFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGNvbG9yOiAndHJhbnNwYXJlbnQnIHwgJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdleHBhbmRlZCcpKSB7XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXN0aWNreS1iYXInKT8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJywgdGhpcy5leHBhbmRlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWNvbnRhaW5lclwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiaW1hZ2VcIj48L3Nsb3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItY29udGFpbmVyX19jb250ZW50XCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNsb3QgbmFtZT1cInN0aWNreS1iYXJcIj48L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNvbnRhaW5lcic6IFNiYkNvbnRhaW5lckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQmEsSUFBQSxzQkFBTixjQUFrQyxXQUFXO0FBQUEsRUFBN0MsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBSXVDLFNBQU8sV0FBVztBQUk5RCxTQUFPLHFCQUFxQjtBQUdDLFNBQU8sUUFBMEM7QUFBQSxFQUFBO0FBQUEsRUFFM0QsV0FBVyxtQkFBK0M7O0FBQzNFLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDckMsdUJBQUssa0JBQUwsOEJBQXFCLHNCQUFyQixtQkFBd0MsZ0JBQWdCLGlCQUFpQixLQUFLO0FBQUEsSUFDaEY7QUFBQSxFQUNGO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNUO0FBQ0Y7QUFoQ2Esb0JBQ1ksU0FBeUI7QUFHRyxnQkFBQTtBQUFBLEVBQWxELFNBQVMsRUFBRSxNQUFNLFNBQVMsU0FBUyxNQUFNO0FBQUEsR0FKL0Isb0JBSXdDLFdBQUEsWUFBQSxDQUFBO0FBSTVDLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsTUFBTSxTQUFTLFNBQVMsTUFBTSxXQUFXLHVCQUF1QjtBQUFBLEdBUGpFLG9CQVFKLFdBQUEsc0JBQUEsQ0FBQTtBQUc2QixnQkFBQTtBQUFBLEVBQW5DLFNBQVMsRUFBRSxTQUFTLE1BQU07QUFBQSxHQVhoQixvQkFXeUIsV0FBQSxTQUFBLENBQUE7QUFYekIsc0JBQU4sZ0JBQUE7QUFBQSxFQUZOLGNBQWMsZUFBZTtBQUFBLEVBQzdCLFVBQVU7QUFBQSxHQUNFLG1CQUFBOyJ9
@@ -19,6 +19,8 @@ export declare abstract class SbbOpenCloseBaseElement extends LitElement {
19
19
  /** The state of the component. */
20
20
  protected set state(state: SbbOpenedClosedState);
21
21
  protected get state(): SbbOpenedClosedState;
22
+ /** Whether the element is open. */
23
+ get isOpen(): boolean;
22
24
  /** Emits whenever the component starts the opening transition. */
23
25
  protected willOpen: EventEmitter;
24
26
  /** Emits whenever the component is opened. */
@@ -33,4 +35,12 @@ export declare abstract class SbbOpenCloseBaseElement extends LitElement {
33
35
  abstract close(): void;
34
36
  connectedCallback(): void;
35
37
  }
38
+ declare global {
39
+ interface GlobalEventHandlersEventMap {
40
+ willOpen: CustomEvent<void>;
41
+ willClose: CustomEvent<void>;
42
+ didOpen: CustomEvent<void>;
43
+ didClose: CustomEvent<void>;
44
+ }
45
+ }
36
46
  //# sourceMappingURL=open-close-base-element.d.ts.map
@@ -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,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;;;GAOG;AACH,8BAAsB,uBAAwB,SAAQ,UAAU;IAC9D,gBAAuB,MAAM;;;;;MAKlB;IAEX,kCAAkC;IAClC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAE9C;IACD,SAAS,KAAK,KAAK,IAAI,oBAAoB,CAE1C;IAED,kEAAkE;IAClE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAG9B;IAEF,8CAA8C;IAC9C,SAAS,CAAC,OAAO,EAAE,YAAY,CAAkE;IAEjG,kEAAkE;IAClE,SAAS,CAAC,SAAS,EAAE,YAAY,CAG/B;IAEF,8CAA8C;IAC9C,SAAS,CAAC,QAAQ,EAAE,YAAY,CAG9B;IAEF,2BAA2B;aACX,IAAI,IAAI,IAAI;IAC5B,4BAA4B;aACZ,KAAK,IAAI,IAAI;IAEb,iBAAiB,IAAI,IAAI;CAI1C"}
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,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;;;GAOG;AACH,8BAAsB,uBAAwB,SAAQ,UAAU;IAC9D,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,kEAAkE;IAClE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAG9B;IAEF,8CAA8C;IAC9C,SAAS,CAAC,OAAO,EAAE,YAAY,CAAkE;IAEjG,kEAAkE;IAClE,SAAS,CAAC,SAAS,EAAE,YAAY,CAG/B;IAEF,8CAA8C;IAC9C,SAAS,CAAC,QAAQ,EAAE,YAAY,CAG9B;IAEF,2BAA2B;aACX,IAAI,IAAI,IAAI;IAC5B,4BAA4B;aACZ,KAAK,IAAI,IAAI;IAEb,iBAAiB,IAAI,IAAI;CAI1C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;KAC7B;CACF"}
@@ -268,6 +268,10 @@ const _SbbOpenCloseBaseElement = class _SbbOpenCloseBaseElement extends LitEleme
268
268
  get state() {
269
269
  return this.getAttribute("data-state");
270
270
  }
271
+ /** Whether the element is open. */
272
+ get isOpen() {
273
+ return this.state === "opened";
274
+ }
271
275
  connectedCallback() {
272
276
  super.connectedCallback();
273
277
  this.state || (this.state = "closed");
@@ -286,4 +290,4 @@ export {
286
290
  SbbLinkBaseElement,
287
291
  SbbOpenCloseBaseElement
288
292
  };
289
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBnZXREb2N1bWVudFdyaXRpbmdNb2RlLCBnZXRMb2NhbE5hbWUgfSBmcm9tICcuLi9kb20uanMnO1xuXG4vKipcbiAqIFdoZW5ldmVyIGFuIGVsZW1lbnQgY2FuIGJlIGRpc2FibGVkIGl0IGhhcyBkaXNhYmxlZCBwcm9wZXJ0eVxuICogb3IgZm9ybURpc2FibGVkIGlmIGl0J3MgYSBmb3JtIGVsZW1lbnQuXG4gKiBCZWNhdXNlIHdlIGNhbid0IHVzZSB0eXBlcyBoZXJlIGRpcmVjdGx5IHdlIGNyZWF0ZWQgdGhpcyBoZWxwZXIgdHlwZS5cbiAqL1xudHlwZSBNYXliZURpc2FibGVkID0ge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGZvcm1EaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICBkaXI6IGdldERvY3VtZW50V3JpdGluZ01vZGUoKSxcbiAgJ2RhdGEtYWN0aW9uJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGNhcHR1cmUgaXMgbmVjZXNzYXJ5IGhlcmUsIGFzIHRoaXMgZXZlbnQgaGFuZGxlciBuZWVkcyB0byBiZSBleGVjdXRlZCBiZWZvcmUgYW55IG90aGVyXG4gICAgICAvLyBpbiBvcmRlciB0byBzdG9wIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBpbiB0aGUgZGlzYWJsZWQgY2FzZS5cbiAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmVuZGVyIHRoZSBjb21wb25lbnQgdGVtcGxhdGUuICovXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsZW1lbnRhdGlvbiBuZWVkZWQhJyk7XG4gIH1cblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBidXR0b24tbGlrZSBjb21wb25lbnRzLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWUgPz8gZ2V0TG9jYWxOYW1lKHRoaXMpfVwiPlxuICAgICAgICAke3RoaXMucmVuZGVyVGVtcGxhdGUoKX1cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzRXZlbnRQcmV2ZW50ZWQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciB0eXBlIGF0dHJpYnV0ZSBpbiA8YnV0dG9uPiBIVE1MIHRhZy4gKi9cbmV4cG9ydCB0eXBlIFNiYkJ1dHRvblR5cGUgPSAnYnV0dG9uJyB8ICdyZXNldCcgfCAnc3VibWl0JztcblxuLyoqIEJ1dHRvbiBiYXNlIGNsYXNzLiAqL1xuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ2J1dHRvbicsXG4gIHRhYmluZGV4OiAnMCcsXG4gICdkYXRhLWJ1dHRvbic6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJCdXR0b25CYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSB0eXBlIGF0dHJpYnV0ZSB0byB1c2UgZm9yIHRoZSBidXR0b24uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0eXBlOiBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gZWxlbWVudC5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcyBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7bmFtZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICB9XG5cbiAgLyoqIFRoZSA8Zm9ybT4gZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgZm9ybT86IHN0cmluZztcblxuICBwcml2YXRlIF9oYW5kbGVCdXR0b25DbGljayA9IGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdidXR0b24nIHx8IChhd2FpdCBpc0V2ZW50UHJldmVudGVkKGV2ZW50KSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtXG4gICAgICA/ICh0aGlzLm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihgZm9ybSMke3RoaXMuZm9ybX1gKSBhcyBIVE1MRm9ybUVsZW1lbnQpXG4gICAgICA6IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmICghZm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnc3VibWl0Jykge1xuICAgICAgLy8gYGZvcm0ucmVxdWVzdFN1Ym1pdChlbGVtZW50KTtgIHNlZW1zIG5vdCB0byB3b3JrIGZvciBDdXN0b21FbGVtZW50cywgc28gdGhlIGBlbGVtZW50YCBwYXJhbWV0ZXIgaGFzIGJlZW4gcmVtb3ZlZDtcbiAgICAgIC8vIFRPRE86IENoZWNrIGlmIHNvbHZlZCBpbiBhbnkgd2F5LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvd2ViY29tcG9uZW50cy9pc3N1ZXMvODE0I2lzc3VlY29tbWVudC0xMjE4NDUyMTM3XG4gICAgICBmb3JtLnJlcXVlc3RTdWJtaXQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGh0bWwsIGlzU2VydmVyLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxOYW1lIH0gZnJvbSAnLi4vZG9tLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWxpbmsnOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiTGlua0Jhc2VFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uQmFzZUVsZW1lbnQge1xuICAvKiogVGhlIGhyZWYgdmFsdWUgeW91IHdhbnQgdG8gbGluayB0by4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGhyZWY/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0YXJnZXQ/OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZztcblxuICAvKiogVGhlIHJlbGF0aW9uc2hpcCBvZiB0aGUgbGlua2VkIFVSTCBhcyBzcGFjZS1zZXBhcmF0ZWQgbGluayB0eXBlcy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHJlbD86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGUgYnJvd3NlciB3aWxsIHNob3cgdGhlIGRvd25sb2FkIGRpYWxvZyBvbiBjbGljay4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZG93bmxvYWQ/OiBib29sZWFuO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLnNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5ibHVyKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSA9ICgpOiBzdHJpbmcgfCB0eXBlb2Ygbm90aGluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsID8gdGhpcy5yZWwgOiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaycgPyAnZXh0ZXJuYWwgbm9vcGVuZXIgbm9mb2xsb3cnIDogbm90aGluZztcbiAgfTtcblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBsaW5rLWxpa2UgY29tcG9uZW50cy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIExpbmtSZW5kZXJWYXJpYWJsZXMgYXJlIG5vdCBuZWVkZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZSA/PyBnZXRMb2NhbE5hbWUodGhpcyl9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5yZW5kZXJUZW1wbGF0ZSgpfVxuICAgICAgICAkeyEhdGhpcy5ocmVmICYmIHRoaXMudGFyZ2V0ID09PSAnX2JsYW5rJ1xuICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICA+LiAke2kxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93W3RoaXMubGFuZ3VhZ2UuY3VycmVudF19PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICA+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvYT5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG92ZXJsYXkgY29tcG9uZW50cy5cbiAqXG4gKiBAZXZlbnQgd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLlxuICogQGV2ZW50IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgd2lsbE9wZW46ICd3aWxsT3BlbicsXG4gICAgZGlkT3BlbjogJ2RpZE9wZW4nLFxuICAgIHdpbGxDbG9zZTogJ3dpbGxDbG9zZScsXG4gICAgZGlkQ2xvc2U6ICdkaWRDbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcm90ZWN0ZWQgc2V0IHN0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uICovXG4gIHByb3RlY3RlZCB3aWxsT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsT3BlbixcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuICovXG4gIHByb3RlY3RlZCBkaWRPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRPcGVuKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1Cc0IsSUFBQSx1QkFBZixjQUE0QyxXQUFXO0FBQUEsRUFDNUQsSUFBYyxnQkFBcUM7QUFDakQsVUFBTSxnQkFBZ0I7QUFDZixXQUFBLGNBQWMsWUFBWSxjQUFjO0FBQUEsRUFDakQ7QUFBQSxFQUVVLHlCQUErQjtBQUNsQyxTQUFBO0FBQUEsTUFDSDtBQUFBLE1BQ0EsQ0FBQyxVQUFVO0FBQ1QsWUFBSSxLQUFLLGVBQWU7QUFDdEIsZ0JBQU0sZUFBZTtBQUNyQixnQkFBTSx5QkFBeUI7QUFBQSxRQUNqQztBQUFBLE1BQ0Y7QUFBQTtBQUFBO0FBQUEsTUFHQSxFQUFFLFNBQVMsS0FBSztBQUFBLElBQUE7QUFBQSxFQUVwQjtBQUFBO0FBQUEsRUFHVSxpQkFBaUM7QUFDbkMsVUFBQSxJQUFJLE1BQU0sd0JBQXdCO0FBQUEsRUFDMUM7QUFBQTtBQUFBLEVBR21CLFNBQXlCO0FBQ25DLFdBQUE7QUFBQSxxQ0FDMEIsS0FBSyxhQUFhLGFBQWEsSUFBSSxDQUFDO0FBQUEsVUFDL0QsS0FBSyxnQkFBZ0I7QUFBQTtBQUFBO0FBQUEsRUFHN0I7QUFDRjtBQWxDc0IsdUJBQWZBLGtCQUFBO0FBQUEsRUFKTixlQUFlO0FBQUEsSUFDZCxLQUFLLHVCQUF1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
293
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBnZXREb2N1bWVudFdyaXRpbmdNb2RlLCBnZXRMb2NhbE5hbWUgfSBmcm9tICcuLi9kb20uanMnO1xuXG4vKipcbiAqIFdoZW5ldmVyIGFuIGVsZW1lbnQgY2FuIGJlIGRpc2FibGVkIGl0IGhhcyBkaXNhYmxlZCBwcm9wZXJ0eVxuICogb3IgZm9ybURpc2FibGVkIGlmIGl0J3MgYSBmb3JtIGVsZW1lbnQuXG4gKiBCZWNhdXNlIHdlIGNhbid0IHVzZSB0eXBlcyBoZXJlIGRpcmVjdGx5IHdlIGNyZWF0ZWQgdGhpcyBoZWxwZXIgdHlwZS5cbiAqL1xudHlwZSBNYXliZURpc2FibGVkID0ge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGZvcm1EaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICBkaXI6IGdldERvY3VtZW50V3JpdGluZ01vZGUoKSxcbiAgJ2RhdGEtYWN0aW9uJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGNhcHR1cmUgaXMgbmVjZXNzYXJ5IGhlcmUsIGFzIHRoaXMgZXZlbnQgaGFuZGxlciBuZWVkcyB0byBiZSBleGVjdXRlZCBiZWZvcmUgYW55IG90aGVyXG4gICAgICAvLyBpbiBvcmRlciB0byBzdG9wIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBpbiB0aGUgZGlzYWJsZWQgY2FzZS5cbiAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmVuZGVyIHRoZSBjb21wb25lbnQgdGVtcGxhdGUuICovXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsZW1lbnRhdGlvbiBuZWVkZWQhJyk7XG4gIH1cblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBidXR0b24tbGlrZSBjb21wb25lbnRzLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWUgPz8gZ2V0TG9jYWxOYW1lKHRoaXMpfVwiPlxuICAgICAgICAke3RoaXMucmVuZGVyVGVtcGxhdGUoKX1cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzRXZlbnRQcmV2ZW50ZWQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciB0eXBlIGF0dHJpYnV0ZSBpbiA8YnV0dG9uPiBIVE1MIHRhZy4gKi9cbmV4cG9ydCB0eXBlIFNiYkJ1dHRvblR5cGUgPSAnYnV0dG9uJyB8ICdyZXNldCcgfCAnc3VibWl0JztcblxuLyoqIEJ1dHRvbiBiYXNlIGNsYXNzLiAqL1xuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ2J1dHRvbicsXG4gIHRhYmluZGV4OiAnMCcsXG4gICdkYXRhLWJ1dHRvbic6ICcnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJCdXR0b25CYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSB0eXBlIGF0dHJpYnV0ZSB0byB1c2UgZm9yIHRoZSBidXR0b24uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0eXBlOiBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gZWxlbWVudC5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcyBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7bmFtZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICB9XG5cbiAgLyoqIFRoZSA8Zm9ybT4gZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgZm9ybT86IHN0cmluZztcblxuICBwcml2YXRlIF9oYW5kbGVCdXR0b25DbGljayA9IGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdidXR0b24nIHx8IChhd2FpdCBpc0V2ZW50UHJldmVudGVkKGV2ZW50KSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtXG4gICAgICA/ICh0aGlzLm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihgZm9ybSMke3RoaXMuZm9ybX1gKSBhcyBIVE1MRm9ybUVsZW1lbnQpXG4gICAgICA6IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmICghZm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnc3VibWl0Jykge1xuICAgICAgLy8gYGZvcm0ucmVxdWVzdFN1Ym1pdChlbGVtZW50KTtgIHNlZW1zIG5vdCB0byB3b3JrIGZvciBDdXN0b21FbGVtZW50cywgc28gdGhlIGBlbGVtZW50YCBwYXJhbWV0ZXIgaGFzIGJlZW4gcmVtb3ZlZDtcbiAgICAgIC8vIFRPRE86IENoZWNrIGlmIHNvbHZlZCBpbiBhbnkgd2F5LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvd2ViY29tcG9uZW50cy9pc3N1ZXMvODE0I2lzc3VlY29tbWVudC0xMjE4NDUyMTM3XG4gICAgICBmb3JtLnJlcXVlc3RTdWJtaXQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGh0bWwsIGlzU2VydmVyLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxOYW1lIH0gZnJvbSAnLi4vZG9tLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWxpbmsnOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiTGlua0Jhc2VFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uQmFzZUVsZW1lbnQge1xuICAvKiogVGhlIGhyZWYgdmFsdWUgeW91IHdhbnQgdG8gbGluayB0by4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGhyZWY/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0YXJnZXQ/OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZztcblxuICAvKiogVGhlIHJlbGF0aW9uc2hpcCBvZiB0aGUgbGlua2VkIFVSTCBhcyBzcGFjZS1zZXBhcmF0ZWQgbGluayB0eXBlcy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHJlbD86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGUgYnJvd3NlciB3aWxsIHNob3cgdGhlIGRvd25sb2FkIGRpYWxvZyBvbiBjbGljay4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZG93bmxvYWQ/OiBib29sZWFuO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLnNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5ibHVyKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSA9ICgpOiBzdHJpbmcgfCB0eXBlb2Ygbm90aGluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsID8gdGhpcy5yZWwgOiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaycgPyAnZXh0ZXJuYWwgbm9vcGVuZXIgbm9mb2xsb3cnIDogbm90aGluZztcbiAgfTtcblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBsaW5rLWxpa2UgY29tcG9uZW50cy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIExpbmtSZW5kZXJWYXJpYWJsZXMgYXJlIG5vdCBuZWVkZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZSA/PyBnZXRMb2NhbE5hbWUodGhpcyl9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5yZW5kZXJUZW1wbGF0ZSgpfVxuICAgICAgICAkeyEhdGhpcy5ocmVmICYmIHRoaXMudGFyZ2V0ID09PSAnX2JsYW5rJ1xuICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICA+LiAke2kxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93W3RoaXMubGFuZ3VhZ2UuY3VycmVudF19PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICA+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvYT5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG92ZXJsYXkgY29tcG9uZW50cy5cbiAqXG4gKiBAZXZlbnQgd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLlxuICogQGV2ZW50IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgd2lsbE9wZW46ICd3aWxsT3BlbicsXG4gICAgZGlkT3BlbjogJ2RpZE9wZW4nLFxuICAgIHdpbGxDbG9zZTogJ3dpbGxDbG9zZScsXG4gICAgZGlkQ2xvc2U6ICdkaWRDbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcm90ZWN0ZWQgc2V0IHN0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgb3Blbi4gKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uICovXG4gIHByb3RlY3RlZCB3aWxsT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsT3BlbixcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuICovXG4gIHByb3RlY3RlZCBkaWRPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRPcGVuKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICB3aWxsT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgd2lsbENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1Cc0IsSUFBQSx1QkFBZixjQUE0QyxXQUFXO0FBQUEsRUFDNUQsSUFBYyxnQkFBcUM7QUFDakQsVUFBTSxnQkFBZ0I7QUFDZixXQUFBLGNBQWMsWUFBWSxjQUFjO0FBQUEsRUFDakQ7QUFBQSxFQUVVLHlCQUErQjtBQUNsQyxTQUFBO0FBQUEsTUFDSDtBQUFBLE1BQ0EsQ0FBQyxVQUFVO0FBQ1QsWUFBSSxLQUFLLGVBQWU7QUFDdEIsZ0JBQU0sZUFBZTtBQUNyQixn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
@@ -0,0 +1,18 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import { SbbOpenCloseBaseElement } from '../base-elements/open-close-base-element.js';
3
+ export declare class SbbInertController implements ReactiveController {
4
+ private _host;
5
+ private _inertElements;
6
+ private _inertOverlays;
7
+ constructor(_host: ReactiveControllerHost & SbbOpenCloseBaseElement, _inertElements?: Set<HTMLElement>, _inertOverlays?: Set<HTMLElement>);
8
+ hostConnected(): void;
9
+ hostDisconnected(): void;
10
+ /** Applies inert state to every other element on the page except the overlay. */
11
+ activate(): void;
12
+ /** Removes inert state. */
13
+ deactivate(): void;
14
+ private _currentOverlay;
15
+ private _removeInertAttributes;
16
+ private _addInertAttributes;
17
+ }
18
+ //# sourceMappingURL=inert-controller.d.ts.map
@@ -0,0 +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,6CAA6C,CAAC;AAM3F,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,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;CA6B5B"}
@@ -1,4 +1,5 @@
1
1
  export * from './controllers/connected-abort-controller.js';
2
+ export * from './controllers/inert-controller.js';
2
3
  export * from './controllers/language-controller.js';
3
4
  export * from './controllers/slot-state-controller.js';
4
5
  //# sourceMappingURL=controllers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC"}
@@ -22,6 +22,94 @@ class SbbConnectedAbortController {
22
22
  this._abortController = void 0;
23
23
  }
24
24
  }
25
+ const IGNORED_ELEMENTS = ["script", "head", "template", "style"];
26
+ const inertElements = /* @__PURE__ */ new Set();
27
+ const inertOverlays = /* @__PURE__ */ new Set();
28
+ class SbbInertController {
29
+ constructor(_host, _inertElements = inertElements, _inertOverlays = inertOverlays) {
30
+ var _a, _b;
31
+ this._host = _host;
32
+ this._inertElements = _inertElements;
33
+ this._inertOverlays = _inertOverlays;
34
+ (_b = (_a = this._host).addController) == null ? void 0 : _b.call(_a, this);
35
+ }
36
+ hostConnected() {
37
+ if (this._host.isOpen) {
38
+ this.activate();
39
+ }
40
+ }
41
+ hostDisconnected() {
42
+ if (this._inertOverlays.has(this._host)) {
43
+ this.deactivate();
44
+ }
45
+ }
46
+ /** Applies inert state to every other element on the page except the overlay. */
47
+ activate() {
48
+ if (this._inertOverlays.size) {
49
+ this._removeInertAttributes();
50
+ }
51
+ this._inertOverlays.add(this._host);
52
+ this._addInertAttributes();
53
+ }
54
+ /** Removes inert state. */
55
+ deactivate() {
56
+ if (this._currentOverlay() !== this._host) {
57
+ if (this._inertOverlays.has(this._host)) {
58
+ this._inertOverlays.delete(this._host);
59
+ } else {
60
+ console.warn(
61
+ "Trying to remove inert state of an overlay which never had an applied inert state.",
62
+ this._host
63
+ );
64
+ }
65
+ return;
66
+ }
67
+ this._removeInertAttributes();
68
+ this._inertOverlays.delete(this._host);
69
+ if (this._inertOverlays.size) {
70
+ this._addInertAttributes();
71
+ }
72
+ }
73
+ _currentOverlay() {
74
+ return [...this._inertOverlays].pop() ?? null;
75
+ }
76
+ _removeInertAttributes() {
77
+ this._inertElements.forEach((element) => {
78
+ if (!element) {
79
+ return;
80
+ }
81
+ if (element.hasAttribute("data-sbb-inert")) {
82
+ element.inert = false;
83
+ element.removeAttribute("data-sbb-inert");
84
+ }
85
+ if (element.hasAttribute("data-sbb-aria-hidden")) {
86
+ element.removeAttribute("aria-hidden");
87
+ element.removeAttribute("data-sbb-aria-hidden");
88
+ }
89
+ });
90
+ this._inertElements.clear();
91
+ }
92
+ _addInertAttributes() {
93
+ var _a, _b;
94
+ let element = this._currentOverlay();
95
+ while (element !== document.documentElement && element !== null) {
96
+ Array.from(((_a = (element == null ? void 0 : element.parentElement) ?? (element == null ? void 0 : element.getRootNode())) == null ? void 0 : _a.childNodes) ?? []).filter(
97
+ (child) => child !== element && child instanceof window.HTMLElement && !IGNORED_ELEMENTS.includes(child.localName)
98
+ ).forEach((element2) => {
99
+ this._inertElements.add(element2);
100
+ if (!element2.inert) {
101
+ element2.inert = true;
102
+ element2.toggleAttribute("data-sbb-inert", true);
103
+ }
104
+ if (!element2.hasAttribute("aria-hidden")) {
105
+ element2.setAttribute("aria-hidden", "true");
106
+ element2.toggleAttribute("data-sbb-aria-hidden", true);
107
+ }
108
+ });
109
+ element = (element == null ? void 0 : element.parentElement) ?? ((_b = element == null ? void 0 : element.getRootNode()) == null ? void 0 : _b.host) ?? null;
110
+ }
111
+ }
112
+ }
25
113
  const _SbbLanguageController = class _SbbLanguageController {
26
114
  constructor(_host) {
27
115
  this._host = _host;
@@ -128,7 +216,8 @@ class SbbSlotStateController {
128
216
  }
129
217
  export {
130
218
  SbbConnectedAbortController,
219
+ SbbInertController,
131
220
  SbbLanguageController,
132
221
  SbbSlotStateController
133
222
  };
134
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvbGFuZ3VhZ2UtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjbGFzcyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9hYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIGdldCBzaWduYWwoKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LnNpZ25hbDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vb2JzZXJ2ZXJzLmpzJztcblxuLyoqXG4gKiBUaGUgTGFuZ3VhZ2VDb250cm9sbGVyIGlzIGEgcmVhY3RpdmUgY29udHJvbGxlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGVcbiAqIG9mIHRoZSA8aHRtbD4gdGFnLlxuICogT24gY2hhbmdlIG9mIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUsIGl0IHdpbGwgcmVxdWVzdCBhbiB1cGRhdGUgb2YgY29ubmVjdGVkXG4gKiBjb21wb25lbnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9HbG9iYWxfYXR0cmlidXRlcy9sYW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfZGVmYXVsdExhbmd1YWdlID0gJ2VuJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX3N1cHBvcnRlZExvY2FsZXMgPSBbJ2VuJywgJ2RlJywgJ2ZyJywgJ2l0J107XG5cbiAgLyoqIEEgc2V0IG9mIGNvbm5lY3RlZCBjb21wb25lbnRzIHRoYXQgc2hvdWxkIGJlIG5vdGlmaWVkIG9uIGxhbmd1YWdlIGNoYW5nZS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2xpc3RlbmVycyA9IG5ldyBTZXQ8U2JiTGFuZ3VhZ2VDb250cm9sbGVyPigpO1xuXG4gIC8qKiBNdXRhdGlvbk9ic2VydmVyIHRoYXQgb2JzZXJ2ZXMgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZSBvZiB0aGUgPGh0bWw+IGVsZW1lbnQuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlciA9IG5ldyBBZ25vc3RpY011dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgIGlmIChtdXRhdGlvbnNbMF0ub2xkVmFsdWUgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZm9yRWFjaCgobCkgPT4gbC5fY2FsbEhhbmRsZXJzKCkpO1xuICAgIH1cbiAgfSk7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnbGFuZyddLFxuICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICB9O1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9XG4gICAgICAocmVhZENvbmZpZygpLmxhbmd1YWdlID8/XG4gICAgICAgIChpc1NlcnZlclxuICAgICAgICAgID8gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkpIHx8XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcblxuICAgIC8vIFN1cHBvcnQgZS5nLiBjYXNlcyBsaWtlIGBkZS1jaGAuXG4gICAgY29uc3QgbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQgPSBsYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX3N1cHBvcnRlZExvY2FsZXMuaW5jbHVkZXMobGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQpXG4gICAgICA/IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkXG4gICAgICA6IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNMYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKiogQWRkIGEgbGFuZ3VhZ2UgY2hhbmdlIGhhbmRsZXIuICovXG4gIHB1YmxpYyB3aXRoSGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgLy8gV2UgdXNlIHVuc2hpZnQgaGVyZSwgdG8gcHJlcGVuZCBhZGRpdGlvbmFsIGhhbmRsZXJzLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHJlcXVlc3RVcGRhdGUgaXMgY2FsbGVkIGFmdGVyIHRoZSBvdGhlciBoYW5kbGVycy5cbiAgICB0aGlzLl9oYW5kbGVycy51bnNoaWZ0KGhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyLm9ic2VydmUoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlckNvbmZpZyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuYWRkKHRoaXMpO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c0xhbmd1YWdlICE9PSB0aGlzLmN1cnJlbnQpIHtcbiAgICAgIHRoaXMuX2NhbGxIYW5kbGVycyh0aGlzLl9wcmV2aW91c0xhbmd1YWdlICE9PSB1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnQ7XG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsbEhhbmRsZXJzKHJlcXVlc3RVcGRhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaCgpKTtcbiAgICBpZiAocmVxdWVzdFVwZGF0ZSkge1xuICAgICAgdGhpcy5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCBnZW5lcmF0ZXNcbiAqIGEgbGlzdCBvZiB1c2VkIHNsb3QgbmFtZXMgKGB1bm5hbWVkYCBmb3IgY2hpbGRyZW4gd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlKVxuICogYW5kIGFkZHMgdGhpcyB0byB0aGUgYGRhdGEtc2xvdC1uYW1lc2AgYXR0cmlidXRlLCBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LlxuICpcbiAqIFRoaXMgYWxsb3dzIENTUyBhdHRyaWJ1dGUgc2VsZWN0b3IgdG8gZGlzcGxheS9oaWRlL2NvbmZpZ3VyZSBhIHNlY3Rpb25cbiAqIG9mIHRoZSBjb21wb25lbnQgYXMgcmVxdWlyZWQgKHNlZSBbYXR0cn49dmFsdWVdIHNlbGVjdG9yIHNwZWNpZmljYWxseSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC5leGFtcGxlIHtcbiAqICAgZGlzcGxheTogbm9uZTtcbiAqXG4gKiAgIDpob3N0KFtkYXRhLXNsb3QtbmFtZXN+PVwiaWNvblwiXSkgJiB7XG4gKiAgICAgZGlzcGxheTogaW5saW5lO1xuICogICB9XG4gKiB9XG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0F0dHJpYnV0ZV9zZWxlY3RvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgc2xvdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvLyBXZSBhdm9pZCB1c2luZyBBYm9ydENvbnRyb2xsZXIgaGVyZSwgYXMgaXQgd291bGQgbWVhbiBjcmVhdGluZ1xuICAvLyBhIG5ldyBpbnN0YW5jZSBmb3IgZXZlcnkgTmFtZWRTbG90U3RhdGVDb250cm9sbGVyIGluc3RhbmNlLlxuICBwcml2YXRlIF9zbG90Y2hhbmdlSGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9zeW5jU2xvdHMoZXZlbnQudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCk7XG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyByZWFsbHkgbmVlZGVkIHdpdGggU1NSLlxuICAgIHRoaXMuX3N5bmNTbG90cyguLi50aGlzLl9ob3N0LnF1ZXJ5U2VsZWN0b3JBbGwhKCdzbG90JykpO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNTbG90cyguLi5zbG90czogSFRNTFNsb3RFbGVtZW50W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHNsb3Qgb2Ygc2xvdHMpIHtcbiAgICAgIGNvbnN0IHNsb3ROYW1lID0gc2xvdC5uYW1lIHx8ICd1bm5hbWVkJztcbiAgICAgIC8vIFdlIHdhbnQgdG8gY2hlY2ssIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzbG90dGVkIG9yIGEgdGV4dCBub2RlIHdpdGggYWN0dWFsIGNvbnRlbnQuXG4gICAgICBpZiAoc2xvdC5hc3NpZ25lZE5vZGVzKCkuc29tZSgobikgPT4gJ3RhZ05hbWUnIGluIG4gfHwgbi50ZXh0Q29udGVudD8udHJpbSgpKSkge1xuICAgICAgICB0aGlzLnNsb3RzLmFkZChzbG90TmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNsb3RzLmRlbGV0ZShzbG90TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgY29uc3Qgam9pbmVkU2xvdE5hbWVzID0gWy4uLnRoaXMuc2xvdHNdLnNvcnQoKS5qb2luKCcgJyk7XG4gICAgaWYgKCFqb2luZWRTbG90TmFtZXMpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hvc3QuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKSAhPT0gam9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJywgam9pbmVkU2xvdE5hbWVzKTtcbiAgICB9XG5cbiAgICBpZiAoam9pbmVkU2xvdE5hbWVzICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz8uKCk7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7OztBQUVPLE1BQU0sNEJBQTBEO0FBQUEsRUFPOUQsWUFBb0IsT0FBK0I7QUFBL0IsU0FBQSxRQUFBO0FBTm5CLFNBQUEsbUJBQXFDLElBQUk7QUFPMUMsU0FBQSxNQUFNLGNBQWMsSUFBSTtBQUFBLEVBQy9CO0FBQUEsRUFOQSxJQUFXLFNBQWtDOztBQUMzQyxZQUFPLFVBQUsscUJBQUwsbUJBQXVCO0FBQUEsRUFDaEM7QUFBQSxFQU1PLGdCQUFzQjtBQUN2QixRQUFBLENBQUMsS0FBSyxrQkFBa0I7QUFDckIsV0FBQSxtQkFBbUIsSUFBSTtJQUM5QjtBQUFBLEVBQ0Y7QUFBQSxFQUVPLG1CQUF5Qjs7QUFDOUIsZUFBSyxxQkFBTCxtQkFBdUI7QUFDdkIsU0FBSyxtQkFBbUI7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
223
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5leHBvcnQgY2xhc3MgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIHB1YmxpYyBnZXQgc2lnbmFsKCk6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRDb250cm9sbGVyPy5zaWduYWw7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWJvcnRDb250cm9sbGVyKSB7XG4gICAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9vcGVuLWNsb3NlLWJhc2UtZWxlbWVudC5qcyc7XG5cbmNvbnN0IElHTk9SRURfRUxFTUVOVFMgPSBbJ3NjcmlwdCcsICdoZWFkJywgJ3RlbXBsYXRlJywgJ3N0eWxlJ107XG5jb25zdCBpbmVydEVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbmNvbnN0IGluZXJ0T3ZlcmxheXMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiSW5lcnRDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgICBwcml2YXRlIF9pbmVydEVsZW1lbnRzID0gaW5lcnRFbGVtZW50cyxcbiAgICBwcml2YXRlIF9pbmVydE92ZXJsYXlzID0gaW5lcnRPdmVybGF5cyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyPy4odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faG9zdC5pc09wZW4pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCkpIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBcHBsaWVzIGluZXJ0IHN0YXRlIHRvIGV2ZXJ5IG90aGVyIGVsZW1lbnQgb24gdGhlIHBhZ2UgZXhjZXB0IHRoZSBvdmVybGF5LiAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGluZXJ0IHN0YXRlIGZyb20gcHJldmlvdXMgb3BlbmVkIG92ZXJsYXlcbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmFkZCh0aGlzLl9ob3N0KTtcbiAgICB0aGlzLl9hZGRJbmVydEF0dHJpYnV0ZXMoKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmVzIGluZXJ0IHN0YXRlLiAqL1xuICBwdWJsaWMgZGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudE92ZXJsYXkoKSAhPT0gdGhpcy5faG9zdCkge1xuICAgICAgLy8gSWYgZS5nLiBhIGNvbXBvbmVudCBnZXRzIGRpc2Nvbm5lY3RlZCwgaXQgY291bGQgYmUgdGhhdCBpdCBpcyBub3QgdGhlIHRvcCBtb3N0LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBjYW4gZGlyZWN0bHkgcmVtb3ZlIGl0LCBhcyB0aGVyZSBpcyBjdXJyZW50bHkgbm8gaW5lcnQgc3RhdGUgYXBwbGllZC5cbiAgICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KSkge1xuICAgICAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcbiAgICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1RyeWluZyB0byByZW1vdmUgaW5lcnQgc3RhdGUgb2YgYW4gb3ZlcmxheSB3aGljaCBuZXZlciBoYWQgYW4gYXBwbGllZCBpbmVydCBzdGF0ZS4nLFxuICAgICAgICAgIHRoaXMuX2hvc3QsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGFzIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5LCBzZXQgaXRzIGluZXJ0IHN0YXRlIGFnYWluLlxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2N1cnJlbnRPdmVybGF5KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9pbmVydE92ZXJsYXlzXS5wb3AoKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKSkge1xuICAgICAgICBlbGVtZW50LmluZXJ0ID0gZmFsc2U7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJyk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSB0aGlzLl9jdXJyZW50T3ZlcmxheSgpO1xuXG4gICAgd2hpbGUgKGVsZW1lbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBlbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBBcnJheS5mcm9tKChlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkpPy5jaGlsZE5vZGVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChjaGlsZCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+XG4gICAgICAgICAgICBjaGlsZCAhPT0gZWxlbWVudCAmJlxuICAgICAgICAgICAgY2hpbGQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgICFJR05PUkVEX0VMRU1FTlRTLmluY2x1ZGVzKGNoaWxkLmxvY2FsTmFtZSksXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgICAgICAgIGlmICghZWxlbWVudC5pbmVydCkge1xuICAgICAgICAgICAgZWxlbWVudC5pbmVydCA9IHRydWU7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBwaWVyY2UgdGhyb3VnaCBTaGFkb3cgRE9NIGJvdW5kYXJ5XG4gICAgICBlbGVtZW50ID0gZWxlbWVudD8ucGFyZW50RWxlbWVudCA/PyAoZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KT8uaG9zdCA/PyBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlciB9IGZyb20gJy4uL29ic2VydmVycy5qcyc7XG5cbi8qKlxuICogVGhlIExhbmd1YWdlQ29udHJvbGxlciBpcyBhIHJlYWN0aXZlIGNvbnRyb2xsZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlXG4gKiBvZiB0aGUgPGh0bWw+IHRhZy5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgXCJsYW5nXCIgYXR0cmlidXRlLCBpdCB3aWxsIHJlcXVlc3QgYW4gdXBkYXRlIG9mIGNvbm5lY3RlZFxuICogY29tcG9uZW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvbGFuZ1xuICovXG5leHBvcnQgY2xhc3MgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2RlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9zdXBwb3J0ZWRMb2NhbGVzID0gWydlbicsICdkZScsICdmcicsICdpdCddO1xuXG4gIC8qKiBBIHNldCBvZiBjb25uZWN0ZWQgY29tcG9uZW50cyB0aGF0IHNob3VsZCBiZSBub3RpZmllZCBvbiBsYW5ndWFnZSBjaGFuZ2UuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9saXN0ZW5lcnMgPSBuZXcgU2V0PFNiYkxhbmd1YWdlQ29udHJvbGxlcj4oKTtcblxuICAvKiogTXV0YXRpb25PYnNlcnZlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUgb2YgdGhlIDxodG1sPiBlbGVtZW50LiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXIgPSBuZXcgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICBpZiAobXV0YXRpb25zWzBdLm9sZFZhbHVlICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdsYW5nJykpIHtcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmZvckVhY2goKGwpID0+IGwuX2NhbGxIYW5kbGVycygpKTtcbiAgICB9XG4gIH0pO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXJDb25maWcgPSB7XG4gICAgYXR0cmlidXRlRmlsdGVyOiBbJ2xhbmcnXSxcbiAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgfTtcblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlLiAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPVxuICAgICAgKHJlYWRDb25maWcoKS5sYW5ndWFnZSA/P1xuICAgICAgICAoaXNTZXJ2ZXJcbiAgICAgICAgICA/IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlXG4gICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdsYW5nJykpKSB8fFxuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgICAvLyBTdXBwb3J0IGUuZy4gY2FzZXMgbGlrZSBgZGUtY2hgLlxuICAgIGNvbnN0IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkID0gbGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcbiAgICByZXR1cm4gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9zdXBwb3J0ZWRMb2NhbGVzLmluY2x1ZGVzKGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkKVxuICAgICAgPyBsYW5nQXR0cmlidXRlTm9ybWFsaXplZFxuICAgICAgOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudDtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZXZpb3VzTGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2hhbmRsZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgLyoqIEFkZCBhIGxhbmd1YWdlIGNoYW5nZSBoYW5kbGVyLiAqL1xuICBwdWJsaWMgd2l0aEhhbmRsZXIoaGFuZGxlcjogKCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIC8vIFdlIHVzZSB1bnNoaWZ0IGhlcmUsIHRvIHByZXBlbmQgYWRkaXRpb25hbCBoYW5kbGVycy5cbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCByZXF1ZXN0VXBkYXRlIGlzIGNhbGxlZCBhZnRlciB0aGUgb3RoZXIgaGFuZGxlcnMuXG4gICAgdGhpcy5faGFuZGxlcnMudW5zaGlmdChoYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlci5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdGhpcy5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jYWxsSGFuZGxlcnModGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2aW91c0xhbmd1YWdlID0gdGhpcy5jdXJyZW50O1xuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmRlbGV0ZSh0aGlzKTtcbiAgICBpZiAoIVNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLnNpemUpIHtcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGxIYW5kbGVycyhyZXF1ZXN0VXBkYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2hhbmRsZXJzLmZvckVhY2goKGgpID0+IGgoKSk7XG4gICAgaWYgKHJlcXVlc3RVcGRhdGUpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIFRoaXMgY29udHJvbGxlciBjaGVja3MgZm9yIHNsb3R0ZWQgY2hpbGRyZW4uIEZyb20gdGhlc2UgaXQgZ2VuZXJhdGVzXG4gKiBhIGxpc3Qgb2YgdXNlZCBzbG90IG5hbWVzIChgdW5uYW1lZGAgZm9yIGNoaWxkcmVuIHdpdGhvdXQgYSBzbG90IGF0dHJpYnV0ZSlcbiAqIGFuZCBhZGRzIHRoaXMgdG8gdGhlIGBkYXRhLXNsb3QtbmFtZXNgIGF0dHJpYnV0ZSwgYXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdC5cbiAqXG4gKiBUaGlzIGFsbG93cyBDU1MgYXR0cmlidXRlIHNlbGVjdG9yIHRvIGRpc3BsYXkvaGlkZS9jb25maWd1cmUgYSBzZWN0aW9uXG4gKiBvZiB0aGUgY29tcG9uZW50IGFzIHJlcXVpcmVkIChzZWUgW2F0dHJ+PXZhbHVlXSBzZWxlY3RvciBzcGVjaWZpY2FsbHkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiAuZXhhbXBsZSB7XG4gKiAgIGRpc3BsYXk6IG5vbmU7XG4gKlxuICogICA6aG9zdChbZGF0YS1zbG90LW5hbWVzfj1cImljb25cIl0pICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9BdHRyaWJ1dGVfc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTbG90U3RhdGVDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHNsb3RzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gV2UgYXZvaWQgdXNpbmcgQWJvcnRDb250cm9sbGVyIGhlcmUsIGFzIGl0IHdvdWxkIG1lYW4gY3JlYXRpbmdcbiAgLy8gYSBuZXcgaW5zdGFuY2UgZm9yIGV2ZXJ5IE5hbWVkU2xvdFN0YXRlQ29udHJvbGxlciBpbnN0YW5jZS5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5fc3luY1Nsb3RzKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpO1xuICB9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgcmVhbGx5IG5lZWRlZCB3aXRoIFNTUi5cbiAgICB0aGlzLl9zeW5jU2xvdHMoLi4udGhpcy5faG9zdC5xdWVyeVNlbGVjdG9yQWxsISgnc2xvdCcpKTtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jU2xvdHMoLi4uc2xvdHM6IEhUTUxTbG90RWxlbWVudFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzbG90IG9mIHNsb3RzKSB7XG4gICAgICBjb25zdCBzbG90TmFtZSA9IHNsb3QubmFtZSB8fCAndW5uYW1lZCc7XG4gICAgICAvLyBXZSB3YW50IHRvIGNoZWNrLCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc2xvdHRlZCBvciBhIHRleHQgbm9kZSB3aXRoIGFjdHVhbCBjb250ZW50LlxuICAgICAgaWYgKHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG4pID0+ICd0YWdOYW1lJyBpbiBuIHx8IG4udGV4dENvbnRlbnQ/LnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5zbG90cy5hZGQoc2xvdE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbG90cy5kZWxldGUoc2xvdE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIGNvbnN0IGpvaW5lZFNsb3ROYW1lcyA9IFsuLi50aGlzLnNsb3RzXS5zb3J0KCkuam9pbignICcpO1xuICAgIGlmICgham9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJykgIT09IGpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycsIGpvaW5lZFNsb3ROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKGpvaW5lZFNsb3ROYW1lcyAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s/LigpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnQiLCJfYSJdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSw0QkFBMEQ7QUFBQSxFQU85RCxZQUFvQixPQUErQjtBQUEvQixTQUFB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
@@ -4,17 +4,4 @@ import { TemplateResult } from 'lit';
4
4
  * Works in conjunction with the 'overlayGapFixCorners()' function in 'overlay.ts'
5
5
  */
6
6
  export declare function overlayGapFixCorners(): TemplateResult;
7
- /**
8
- * Applies inert to every other element on the page except the overlay.
9
- */
10
- export declare function applyInertMechanism(overlay: HTMLElement): void;
11
- export declare function removeInertMechanism(): void;
12
- declare global {
13
- interface GlobalEventHandlersEventMap {
14
- willOpen: CustomEvent<void>;
15
- willClose: CustomEvent<void>;
16
- didOpen: CustomEvent<void>;
17
- didClose: CustomEvent<void>;
18
- }
19
- }
20
7
  //# sourceMappingURL=overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1C;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CASrD;AA4DD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAyB9D;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAqB3C;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CASrD"}