@sbb-esta/lyne-elements 1.7.0 → 1.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 (119) 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/clock.js +5 -5
  5. package/container/container.js +18 -18
  6. package/core/base-elements/open-close-base-element.d.ts +10 -0
  7. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  8. package/core/base-elements.js +4 -0
  9. package/core/controllers/inert-controller.d.ts +18 -0
  10. package/core/controllers/inert-controller.d.ts.map +1 -0
  11. package/core/controllers.d.ts +1 -0
  12. package/core/controllers.d.ts.map +1 -1
  13. package/core/controllers.js +67 -23
  14. package/core/dom/platform.d.ts +2 -3
  15. package/core/dom/platform.d.ts.map +1 -1
  16. package/core/dom.js +38 -40
  17. package/core/overlay/overlay.d.ts +0 -13
  18. package/core/overlay/overlay.d.ts.map +1 -1
  19. package/core/overlay.js +36 -86
  20. package/core/styles/core.scss +6 -0
  21. package/core/styles/mixins/lists.scss +11 -1
  22. package/core/testing/wait-for-image-ready.d.ts.map +1 -1
  23. package/core/testing.js +61 -54
  24. package/core.css +5 -0
  25. package/custom-elements.json +492 -66
  26. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
  27. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  28. package/datepicker/datepicker-toggle.js +52 -42
  29. package/development/calendar/calendar.d.ts +5 -2
  30. package/development/calendar/calendar.d.ts.map +1 -1
  31. package/development/calendar.js +35 -19
  32. package/development/clock.js +1 -1
  33. package/development/container/container.js +9 -5
  34. package/development/core/base-elements/open-close-base-element.d.ts +10 -0
  35. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  36. package/development/core/base-elements.js +5 -1
  37. package/development/core/controllers/inert-controller.d.ts +18 -0
  38. package/development/core/controllers/inert-controller.d.ts.map +1 -0
  39. package/development/core/controllers.d.ts +1 -0
  40. package/development/core/controllers.d.ts.map +1 -1
  41. package/development/core/controllers.js +90 -1
  42. package/development/core/dom/platform.d.ts +2 -3
  43. package/development/core/dom/platform.d.ts.map +1 -1
  44. package/development/core/dom.js +4 -5
  45. package/development/core/overlay/overlay.d.ts +0 -13
  46. package/development/core/overlay/overlay.d.ts.map +1 -1
  47. package/development/core/overlay.js +1 -87
  48. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
  49. package/development/core/testing.js +16 -2
  50. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +4 -0
  51. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  52. package/development/datepicker/datepicker-toggle.js +19 -4
  53. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  54. package/development/dialog/dialog.js +3 -4
  55. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  56. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  57. package/development/flip-card/flip-card-details.js +28 -9
  58. package/development/flip-card/flip-card-summary.js +6 -1
  59. package/development/flip-card/flip-card.js +43 -12
  60. package/development/form-field/form-field.js +4 -2
  61. package/development/lead-container.js +5 -1
  62. package/development/menu/menu/menu.d.ts +1 -0
  63. package/development/menu/menu/menu.d.ts.map +1 -1
  64. package/development/menu/menu.js +6 -9
  65. package/development/navigation/navigation/navigation.d.ts +1 -0
  66. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  67. package/development/navigation/navigation.js +6 -9
  68. package/development/overlay/overlay-base-element.d.ts +2 -1
  69. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  70. package/development/overlay/overlay.d.ts.map +1 -1
  71. package/development/overlay.js +6 -17
  72. package/development/popover/popover.js +2 -2
  73. package/development/select/select.d.ts +3 -1
  74. package/development/select/select.d.ts.map +1 -1
  75. package/development/select.js +20 -6
  76. package/development/stepper/step-label.js +20 -2
  77. package/development/stepper/stepper/stepper.d.ts +3 -0
  78. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  79. package/development/stepper/stepper.js +16 -1
  80. package/development/toggle/toggle/toggle.d.ts +2 -1
  81. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  82. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  83. package/development/toggle/toggle-option.js +4 -2
  84. package/development/toggle/toggle.js +7 -7
  85. package/dialog/dialog/dialog.d.ts.map +1 -1
  86. package/dialog/dialog.js +11 -12
  87. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  88. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  89. package/flip-card/flip-card-details.js +19 -17
  90. package/flip-card/flip-card-summary.js +13 -13
  91. package/flip-card/flip-card.js +26 -24
  92. package/form-field/form-field.js +1 -1
  93. package/lead-container.js +1 -1
  94. package/lists.css +9 -1
  95. package/menu/menu/menu.d.ts +1 -0
  96. package/menu/menu/menu.d.ts.map +1 -1
  97. package/menu/menu.js +30 -30
  98. package/navigation/navigation/navigation.d.ts +1 -0
  99. package/navigation/navigation/navigation.d.ts.map +1 -1
  100. package/navigation/navigation.js +37 -37
  101. package/overlay/overlay-base-element.d.ts +2 -1
  102. package/overlay/overlay-base-element.d.ts.map +1 -1
  103. package/overlay/overlay.d.ts.map +1 -1
  104. package/overlay.js +44 -45
  105. package/package.json +1 -1
  106. package/popover/popover.js +1 -1
  107. package/select/select.d.ts +3 -1
  108. package/select/select.d.ts.map +1 -1
  109. package/select.js +61 -50
  110. package/standard-theme.css +14 -1
  111. package/stepper/step-label.js +10 -10
  112. package/stepper/stepper/stepper.d.ts +3 -0
  113. package/stepper/stepper/stepper.d.ts.map +1 -1
  114. package/stepper/stepper.js +34 -25
  115. package/toggle/toggle/toggle.d.ts +2 -1
  116. package/toggle/toggle/toggle.d.ts.map +1 -1
  117. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  118. package/toggle/toggle-option.js +9 -8
  119. package/toggle/toggle.js +20 -21
@@ -76,6 +76,10 @@ const style = css`/**
76
76
  margin-block-start: 0;
77
77
  }
78
78
 
79
+ ::slotted(sbb-notification.sbb-lead-container-spacing) {
80
+ margin-block-end: var(--sbb-spacing-responsive-xxxs);
81
+ }
82
+
79
83
  ::slotted(.sbb-lead-container-lead-text) {
80
84
  margin-block: 0 var(--sbb-spacing-responsive-s);
81
85
  }
@@ -170,4 +174,4 @@ SbbLeadContainerElement = __decorateClass([
170
174
  export {
171
175
  SbbLeadContainerElement
172
176
  };
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZC1jb250YWluZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9sZWFkLWNvbnRhaW5lci9sZWFkLWNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBMaXRFbGVtZW50LCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2xlYWQtY29udGFpbmVyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVGhlIGBzYmItbGVhZC1jb250YWluZXJgIGNhbiBiZSB1c2VkIGZvciBwcm9kdWN0IHBhZ2VzIHRvIGRpc3BsYXkgYSBsZWFkIGltYWdlIGFuZCBmb2xsb3dpbmcgY29udGVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhbnkgY29udGVudCB0byB0aGUgY29udGFpbmVyLlxuICogQHNsb3QgaW1hZ2UgLSBVc2UgdGhlIGltYWdlIHNsb3QgdG8gcHJvdmlkZSB0aGUgbGVhZCBpbWFnZS5cbiAqIGBzYmItaW1hZ2VgLCBgaW1nYCBhbmQgYHBpY3R1cmVgIGVsZW1lbnRzIGFyZSBzdXBwb3J0ZWQuXG4gKiBGb3Igb3RoZXIgZWxlbWVudHMgdGhlIGFzcGVjdCByYXRpbyBoYXMgdG8gYmUgc2V0IG1hbnVhbGx5LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWxlYWQtY29udGFpbmVyJylcbmV4cG9ydCBjbGFzcyBTYmJMZWFkQ29udGFpbmVyRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbGVhZC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sZWFkLWNvbnRhaW5lci1pbWFnZVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJpbWFnZVwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ29udGVudCB3cmFwcGVyIG5lZWRlZCBiZWNhdXNlIGdyaWQgbmVlZHMgdG8gYmUgYXBwbGllZCBidXQgY29udGFpbmVyIGltYWdlIHNob3VsZCBub3QgYmUgdG91Y2hlZCBieSBncmlkLiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sZWFkLWNvbnRhaW5lci1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWxlYWQtY29udGFpbmVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbGVhZC1jb250YWluZXInOiBTYmJMZWFkQ29udGFpbmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjYSxJQUFBLDBCQUFOLGNBQXNDLFdBQVc7QUFBQSxFQUduQyxTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFhVDtBQUNGO0FBbEJhLHdCQUNZLFNBQXlCO0FBRHJDLDBCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLG9CQUFvQjtBQUFBLEdBQ3RCLHVCQUFBOyJ9
177
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZC1jb250YWluZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9sZWFkLWNvbnRhaW5lci9sZWFkLWNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBMaXRFbGVtZW50LCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2xlYWQtY29udGFpbmVyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVGhlIGBzYmItbGVhZC1jb250YWluZXJgIGNhbiBiZSB1c2VkIGZvciBwcm9kdWN0IHBhZ2VzIHRvIGRpc3BsYXkgYSBsZWFkIGltYWdlIGFuZCBmb2xsb3dpbmcgY29udGVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhbnkgY29udGVudCB0byB0aGUgY29udGFpbmVyLlxuICogQHNsb3QgaW1hZ2UgLSBVc2UgdGhlIGltYWdlIHNsb3QgdG8gcHJvdmlkZSB0aGUgbGVhZCBpbWFnZS5cbiAqIGBzYmItaW1hZ2VgLCBgaW1nYCBhbmQgYHBpY3R1cmVgIGVsZW1lbnRzIGFyZSBzdXBwb3J0ZWQuXG4gKiBGb3Igb3RoZXIgZWxlbWVudHMgdGhlIGFzcGVjdCByYXRpbyBoYXMgdG8gYmUgc2V0IG1hbnVhbGx5LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWxlYWQtY29udGFpbmVyJylcbmV4cG9ydCBjbGFzcyBTYmJMZWFkQ29udGFpbmVyRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbGVhZC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sZWFkLWNvbnRhaW5lci1pbWFnZVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJpbWFnZVwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ29udGVudCB3cmFwcGVyIG5lZWRlZCBiZWNhdXNlIGdyaWQgbmVlZHMgdG8gYmUgYXBwbGllZCBidXQgY29udGFpbmVyIGltYWdlIHNob3VsZCBub3QgYmUgdG91Y2hlZCBieSBncmlkLiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sZWFkLWNvbnRhaW5lci1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWxlYWQtY29udGFpbmVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbGVhZC1jb250YWluZXInOiBTYmJMZWFkQ29udGFpbmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY2EsSUFBQSwwQkFBTixjQUFzQyxXQUFXO0FBQUEsRUFHbkMsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBYVQ7QUFDRjtBQWxCYSx3QkFDWSxTQUF5QjtBQURyQywwQkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxvQkFBb0I7QUFBQSxHQUN0Qix1QkFBQTsifQ==
@@ -38,6 +38,7 @@ export declare class SbbMenuElement extends SbbMenuElement_base {
38
38
  private _abort;
39
39
  private _focusHandler;
40
40
  private _scrollHandler;
41
+ private _inertController;
41
42
  /**
42
43
  * Opens the menu on trigger click.
43
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/menu/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAYrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAYtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAkB1D;;;;;;;;;;;GAWG;AACH,qBACa,cAAe,SAAQ,mBAGV;IACxB,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAwC;IAEvF;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;;OAGG;IACyD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAE5F,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAEhD;;OAEG;IACI,IAAI,IAAI,IAAI;IAmBnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;YAsBR,eAAe;IAY7B,OAAO,CAAC,2BAA2B;IAWnB,iBAAiB,IAAI,IAAI;IAoBzB,oBAAoB,IAAI,IAAI;IAS5C,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,oBAAoB,CAE1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAMF,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;cAyBL,MAAM,IAAI,cAAc;CAqB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../../../src/elements/menu/menu/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAYrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAUtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAkB1D;;;;;;;;;;;GAWG;AACH,qBACa,cAAe,SAAQ,mBAGV;IACxB,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAwC;IAEvF;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;;OAGG;IACyD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAE5F,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAgC;IAExD;;OAEG;IACI,IAAI,IAAI,IAAI;IAmBnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;YAsBR,eAAe;IAY7B,OAAO,CAAC,2BAA2B;IAWnB,iBAAiB,IAAI,IAAI;IAgBzB,oBAAoB,IAAI,IAAI;IAQ5C,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,oBAAoB,CAE1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAMF,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;cAyBL,MAAM,IAAI,cAAc;CAqB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
@@ -3,10 +3,10 @@ import { property, customElement } from "lit/decorators.js";
3
3
  import { ref } from "lit/directives/ref.js";
4
4
  import { SbbFocusHandler, isArrowKeyPressed, interactivityChecker, getNextElementIndex, setModalityOnNextFocus, IS_FOCUSABLE_QUERY } from "../core/a11y.js";
5
5
  import { SbbOpenCloseBaseElement } from "../core/base-elements.js";
6
- import { SbbConnectedAbortController } from "../core/controllers.js";
6
+ import { SbbConnectedAbortController, SbbInertController } from "../core/controllers.js";
7
7
  import { SbbScrollHandler, isBreakpoint, findReferencedElement } from "../core/dom.js";
8
8
  import { SbbNamedSlotListMixin } from "../core/mixins.js";
9
- import { isEventOnElement, applyInertMechanism, removeInertMechanism, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes, getElementPosition } from "../core/overlay.js";
9
+ import { isEventOnElement, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes, getElementPosition } from "../core/overlay.js";
10
10
  const style = css`/**
11
11
  * Better font rendering (on OS X)
12
12
  * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
@@ -284,6 +284,7 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
284
284
  this._abort = new SbbConnectedAbortController(this);
285
285
  this._focusHandler = new SbbFocusHandler();
286
286
  this._scrollHandler = new SbbScrollHandler();
287
+ this._inertController = new SbbInertController(this);
287
288
  this._pointerDownListener = (event) => {
288
289
  this._isPointerDownEventOnMenu = isEventOnElement(this._menu, event);
289
290
  };
@@ -388,9 +389,6 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
388
389
  capture: true
389
390
  });
390
391
  this._configure(this.trigger);
391
- if (this.state === "opened") {
392
- applyInertMechanism(this);
393
- }
394
392
  }
395
393
  disconnectedCallback() {
396
394
  var _a, _b;
@@ -398,7 +396,6 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
398
396
  (_a = this._menuController) == null ? void 0 : _a.abort();
399
397
  (_b = this._windowEventsController) == null ? void 0 : _b.abort();
400
398
  this._focusHandler.disconnect();
401
- removeInertMechanism();
402
399
  this._scrollHandler.enableScroll();
403
400
  }
404
401
  _checkListCase(event) {
@@ -469,14 +466,14 @@ let SbbMenuElement = class extends SbbNamedSlotListMixin(SbbOpenCloseBaseElement
469
466
  if (event.animationName === "open" && this.state === "opening") {
470
467
  this.state = "opened";
471
468
  this.didOpen.emit();
472
- applyInertMechanism(this);
469
+ this._inertController.activate();
473
470
  this._setMenuFocus();
474
471
  this._focusHandler.trap(this);
475
472
  this._attachWindowEvents();
476
473
  } else if (event.animationName === "close" && this.state === "closing") {
477
474
  this.state = "closed";
478
475
  (_b = (_a = this._menu) == null ? void 0 : _a.firstElementChild) == null ? void 0 : _b.scrollTo(0, 0);
479
- removeInertMechanism();
476
+ this._inertController.deactivate();
480
477
  setModalityOnNextFocus(this._triggerElement);
481
478
  (_c = this._triggerElement) == null ? void 0 : _c.focus({
482
479
  // When inside the sbb-header, we prevent the scroll to avoid the snapping to the top of the page
@@ -543,4 +540,4 @@ SbbMenuElement = __decorateClass([
543
540
  export {
544
541
  SbbMenuElement
545
542
  };
546
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRm9jdXNIYW5kbGVyLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsIGlzQnJlYWtwb2ludCwgU2JiU2Nyb2xsSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYk5hbWVkU2xvdExpc3RNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIGFwcGx5SW5lcnRNZWNoYW5pc20sXG4gIGdldEVsZW1lbnRQb3NpdGlvbixcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgcmVtb3ZlSW5lcnRNZWNoYW5pc20sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk1lbnVCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbWVudS1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNZW51TGlua0VsZW1lbnQgfSBmcm9tICcuLi9tZW51LWxpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9tZW51LnNjc3M/bGl0JmlubGluZSc7XG5cbmNvbnN0IE1FTlVfT0ZGU0VUID0gODtcbmNvbnN0IElOVEVSQUNUSVZFX0VMRU1FTlRTID0gW1xuICAnQScsXG4gICdCVVRUT04nLFxuICAnU0JCLUJVVFRPTicsXG4gICdTQkItQlVUVE9OLUxJTksnLFxuICAnU0JCLUxJTksnLFxuICAnU0JCLUJMT0NLLUxJTksnLFxuICAnU0JCLUxJTkstQlVUVE9OJyxcbiAgJ1NCQi1CTE9DSy1MSU5LLUJVVFRPTicsXG5dO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNvbnRleHR1YWwgbWVudSB3aXRoIG9uZSBvciBtb3JlIGFjdGlvbiBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbWVudS1idXR0b25gL2BzYmItbWVudS1saW5rYCBvciBvdGhlciBlbGVtZW50cyB0byB0aGUgbWVudS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1tZW51YCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItbWVudS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItbWVudScpXG5leHBvcnQgY2xhc3MgU2JiTWVudUVsZW1lbnQgZXh0ZW5kcyBTYmJOYW1lZFNsb3RMaXN0TWl4aW48XG4gIFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50LFxuICB0eXBlb2YgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnRcbj4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItbWVudS1idXR0b24nLCAnc2JiLW1lbnUtbGluayddO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbWVudSBvdmVybGF5LlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBsaXN0LlxuICAgKiBVc2VkIG9ubHkgaWYgdGhlIG1lbnUgYXV0b21hdGljYWxseSByZW5kZXJzIHRoZSBhY3Rpb25zIGluc2lkZSBhcyBhIGxpc3QuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsaXN0LWFjY2Vzc2liaWxpdHktbGFiZWwnIH0pIHB1YmxpYyBsaXN0QWNjZXNzaWJpbGl0eUxhYmVsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX21lbnUhOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9tZW51Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c0hhbmRsZXIgPSBuZXcgU2JiRm9jdXNIYW5kbGVyKCk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgbWVudSBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJyB8fCAhdGhpcy5fbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy53aWxsT3Blbi5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX3NldE1lbnVQb3NpdGlvbigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuXG4gICAgLy8gU3RhcnRpbmcgZnJvbSBicmVha3BvaW50IG1lZGl1bSwgZGlzYWJsZSBzY3JvbGxcbiAgICBpZiAoIWlzQnJlYWtwb2ludCgnbWVkaXVtJykpIHtcbiAgICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy53aWxsQ2xvc2UuZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBjbGljayBhbmQgY2hlY2tzIGlmIGl0cyB0YXJnZXQgaXMgYSBzYmItbWVudS1idXR0b24vc2JiLW1lbnUtbGluay5cbiAgICovXG4gIHByaXZhdGUgX29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0YXJnZXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1tZW51LWJ1dHRvbicgfHwgdGFyZ2V0Py5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1saW5rJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZW5hYmxlZEFjdGlvbnM6IEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTWVudUJ1dHRvbkVsZW1lbnQgfCBTYmJNZW51TGlua0VsZW1lbnQ+KFxuICAgICAgICAnc2JiLW1lbnUtYnV0dG9uLCBzYmItbWVudS1saW5rJyxcbiAgICAgICksXG4gICAgKS5maWx0ZXIoXG4gICAgICAoZWw6IFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50KSA9PlxuICAgICAgICAhZWwuZGlzYWJsZWQgJiYgaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNWaXNpYmxlKGVsKSxcbiAgICApO1xuXG4gICAgY29uc3QgY3VycmVudCA9IGVuYWJsZWRBY3Rpb25zLmZpbmRJbmRleCgoZTogRWxlbWVudCkgPT4gZSA9PT0gZXZ0LnRhcmdldCk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRBY3Rpb25zLmxlbmd0aCk7XG5cbiAgICAoZW5hYmxlZEFjdGlvbnNbbmV4dEluZGV4XSBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbWVudSBvbiBcIkVzY1wiIGtleSBwcmVzc2VkIGFuZCB0cmFwcyBmb2N1cyB3aXRoaW4gdGhlIG1lbnUuXG4gIHByaXZhdGUgYXN5bmMgX29uS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJDbGlja0xpc3RlbmVyKFxuICAgIG5ld1ZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgb2xkVmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fbWVudUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4gdGhpcy5fb25DbGljayhlKSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIC8vIER1ZSB0byB0aGUgZmFjdCB0aGF0IG1lbnUgY2FuIGJvdGggYmUgYSBsaXN0IGFuZCBqdXN0IGEgY29udGFpbmVyLCB3ZSBuZWVkIHRvIGNoZWNrIGl0c1xuICAgIC8vIHN0YXRlIGJlZm9yZSB0aGUgU2JiTmFtZWRTbG90TGlzdE1peGluIGhhbmRsZXMgdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgLy8gaXQgaW50ZXJwcmV0aW5nIHRoZSBub24gbGlzdCBjYXNlIGFzIGEgbGlzdC5cbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCAoZSkgPT4gdGhpcy5fY2hlY2tMaXN0Q2FzZShlKSwge1xuICAgICAgc2lnbmFsLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUodGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgYXBwbHlJbmVydE1lY2hhbmlzbSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9tZW51Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgcmVtb3ZlSW5lcnRNZWNoYW5pc20oKTtcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tMaXN0Q2FzZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBJZiBhbGwgY2hpbGRyZW4gYXJlIHNiYi1tZW51LWJ1dHRvbi9tZW51LWxpbmsgaW5zdGFuY2VzLCB3ZSByZW5kZXIgdGhlbSBhcyBhIGxpc3QuXG4gICAgaWYgKFxuICAgICAgdGhpcy5jaGlsZHJlbj8ubGVuZ3RoICYmXG4gICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pLmV2ZXJ5KFxuICAgICAgICAoYykgPT4gYy5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1idXR0b24nIHx8IGMubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtbGluaycsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4uZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmUodHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAoIXRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCBgc2JiLW1lbnUtJHtuZXh0SWQrK31gO1xuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5pZCwgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fbWVudUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fbWVudUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9tZW51Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldE1lbnVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2UgbWVudSBhdCBhbnkgY2xpY2sgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCBpbnNpZGUgdGhlIDxzYmItbWVudT4gdGhhdCBidWJibGVzIHRvIHRoZSBjb250YWluZXIuXG4gIHByaXZhdGUgX2Nsb3NlT25JbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKElOVEVSQUNUSVZFX0VMRU1FTlRTLmluY2x1ZGVzKHRhcmdldC5ub2RlTmFtZSkgJiYgIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbWVudSBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX21lbnUsIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiAoeCwgeSkgdG8gJzAnIG9uY2UgdGhlIG1lbnUgaXMgY2xvc2VkIGFuZCB0aGUgdHJhbnNpdGlvbiBlbmRlZCB0byBwcmV2ZW50IHRoZVxuICAvLyB2aWV3cG9ydCBmcm9tIG92ZXJmbG93aW5nLiBBbmQgc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgb25jZSB0aGUgbWVudSBpcyBvcGVuLlxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uTWVudUFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgICAgIGFwcGx5SW5lcnRNZWNoYW5pc20odGhpcyk7XG4gICAgICB0aGlzLl9zZXRNZW51Rm9jdXMoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci50cmFwKHRoaXMpO1xuICAgICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fbWVudT8uZmlyc3RFbGVtZW50Q2hpbGQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgcmVtb3ZlSW5lcnRNZWNoYW5pc20oKTtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cyh7XG4gICAgICAgIC8vIFdoZW4gaW5zaWRlIHRoZSBzYmItaGVhZGVyLCB3ZSBwcmV2ZW50IHRoZSBzY3JvbGwgdG8gYXZvaWQgdGhlIHNuYXBwaW5nIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2VcbiAgICAgICAgcHJldmVudFNjcm9sbDpcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUgPT09ICdzYmItaGVhZGVyLWJ1dHRvbicgfHxcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5sb2NhbE5hbWUgPT09ICdzYmItaGVhZGVyLWxpbmsnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoKTtcbiAgICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbWVkaXVtLCBlbmFibGUgc2Nyb2xsXG4gICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldE1lbnVGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IHRoaXMucXVlcnlTZWxlY3RvcihJU19GT0NVU0FCTEVfUVVFUlkpIGFzIEhUTUxFbGVtZW50O1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlLmZvY3VzKCk7XG4gIH1cblxuICAvLyBTZXQgbWVudSBwb3NpdGlvbiBhbmQgbWF4IGhlaWdodCBpZiB0aGUgYnJlYWtwb2ludCBpcyBtZWRpdW0tdWx0cmEuXG4gIHByaXZhdGUgX3NldE1lbnVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAvLyBTdGFydGluZyBmcm9tIGJyZWFrcG9pbnQgbWVkaXVtXG4gICAgaWYgKFxuICAgICAgIWlzQnJlYWtwb2ludCgnbWVkaXVtJykgfHxcbiAgICAgICF0aGlzLl9tZW51IHx8XG4gICAgICAhdGhpcy5fdHJpZ2dlckVsZW1lbnQgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVQb3NpdGlvbiA9IGdldEVsZW1lbnRQb3NpdGlvbihcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250ZW50JykhLFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItbWVudV9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogTUVOVV9PRkZTRVQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LXBvc2l0aW9uLXgnLCBgJHttZW51UG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtcG9zaXRpb24teScsIGAke21lbnVQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1tZW51LW1heC1oZWlnaHQnLCBtZW51UG9zaXRpb24ubWF4SGVpZ2h0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFRPRE86IEhhbmRsZSBjYXNlIHdpdGggb3RoZXIgZWxlbWVudHMgdGhhbiBzYmItbWVudS1idXR0b24vc2JiLW1lbnUtbGluay5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWVudV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5fb25NZW51QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1tZW51XCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fbWVudSA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9jbG9zZU9uSW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItbWVudV9fY29udGVudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlckxpc3QoeyBjbGFzczogJ3NiYi1tZW51LWxpc3QnLCBhcmlhTGFiZWw6IHRoaXMubGlzdEFjY2Vzc2liaWxpdHlMYWJlbCB9KVxuICAgICAgICAgICAgICA6IGh0bWxgPHNsb3Q+PC9zbG90PmB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW1lbnUnOiBTYmJNZW51RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCQSxNQUFNLGNBQWM7QUFDcEIsTUFBTSx1QkFBdUI7QUFBQSxFQUMzQjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQUVBLElBQUksU0FBUztBQWVOLElBQU0saUJBQU4sY0FBNkIsc0JBR2xDLHVCQUF1QixFQUFFO0FBQUEsRUFIcEIsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBS3VCLFNBQUEsc0JBQXNCLENBQUMsbUJBQW1CLGVBQWU7QUFlckYsU0FBUSxXQUF3QztB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
543
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21lbnUvbWVudS9tZW51LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRm9jdXNIYW5kbGVyLFxuICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzLFxufSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJJbmVydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZpbmRSZWZlcmVuY2VkRWxlbWVudCwgaXNCcmVha3BvaW50LCBTYmJTY3JvbGxIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgU2JiTmFtZWRTbG90TGlzdE1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxufSBmcm9tICcuLi8uLi9jb3JlL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNZW51QnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL21lbnUtYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiTWVudUxpbmtFbGVtZW50IH0gZnJvbSAnLi4vbWVudS1saW5rLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWVudS5zY3NzP2xpdCZpbmxpbmUnO1xuXG5jb25zdCBNRU5VX09GRlNFVCA9IDg7XG5jb25zdCBJTlRFUkFDVElWRV9FTEVNRU5UUyA9IFtcbiAgJ0EnLFxuICAnQlVUVE9OJyxcbiAgJ1NCQi1CVVRUT04nLFxuICAnU0JCLUJVVFRPTi1MSU5LJyxcbiAgJ1NCQi1MSU5LJyxcbiAgJ1NCQi1CTE9DSy1MSU5LJyxcbiAgJ1NCQi1MSU5LLUJVVFRPTicsXG4gICdTQkItQkxPQ0stTElOSy1CVVRUT04nLFxuXTtcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjb250ZXh0dWFsIG1lbnUgd2l0aCBvbmUgb3IgbW9yZSBhY3Rpb24gZWxlbWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW1lbnUtYnV0dG9uYC9gc2JiLW1lbnUtbGlua2Agb3Igb3RoZXIgZWxlbWVudHMgdG8gdGhlIG1lbnUuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW1lbnVgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbWVudWAgaXMgY2xvc2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLW1lbnUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLW1lbnUnKVxuZXhwb3J0IGNsYXNzIFNiYk1lbnVFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJNZW51QnV0dG9uRWxlbWVudCB8IFNiYk1lbnVMaW5rRWxlbWVudCxcbiAgdHlwZW9mIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50XG4+KFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLW1lbnUtYnV0dG9uJywgJ3NiYi1tZW51LWxpbmsnXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG1lbnUgb3ZlcmxheS5cbiAgICogQWNjZXB0cyBib3RoIGEgc3RyaW5nIChpZCBvZiBhbiBlbGVtZW50KSBvciBhbiBIVE1MIGVsZW1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdHJpZ2dlcjtcbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckNsaWNrTGlzdGVuZXIodGhpcy5fdHJpZ2dlciwgb2xkVmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgdHJpZ2dlcigpOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgaW5uZXIgbGlzdC5cbiAgICogVXNlZCBvbmx5IGlmIHRoZSBtZW51IGF1dG9tYXRpY2FsbHkgcmVuZGVycyB0aGUgYWN0aW9ucyBpbnNpZGUgYXMgYSBsaXN0LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbGlzdC1hY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KSBwdWJsaWMgbGlzdEFjY2Vzc2liaWxpdHlMYWJlbD86IHN0cmluZztcblxuICBwcml2YXRlIF9tZW51ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbWVudUNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9zY3JvbGxIYW5kbGVyID0gbmV3IFNiYlNjcm9sbEhhbmRsZXIoKTtcbiAgcHJpdmF0ZSBfaW5lcnRDb250cm9sbGVyID0gbmV3IFNiYkluZXJ0Q29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG1lbnUgb24gdHJpZ2dlciBjbGljay5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgIXRoaXMuX21lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcblxuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW0sIGRpc2FibGUgc2Nyb2xsXG4gICAgaWYgKCFpc0JyZWFrcG9pbnQoJ21lZGl1bScpKSB7XG4gICAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtZW51LlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2xpY2sgYW5kIGNoZWNrcyBpZiBpdHMgdGFyZ2V0IGlzIGEgc2JiLW1lbnUtYnV0dG9uL3NiYi1tZW51LWxpbmsuXG4gICAqL1xuICBwcml2YXRlIF9vbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGFyZ2V0Py5sb2NhbE5hbWUgPT09ICdzYmItbWVudS1idXR0b24nIHx8IHRhcmdldD8ubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtbGluaycpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGVuYWJsZWRBY3Rpb25zOiBFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPFNiYk1lbnVCdXR0b25FbGVtZW50IHwgU2JiTWVudUxpbmtFbGVtZW50PihcbiAgICAgICAgJ3NiYi1tZW51LWJ1dHRvbiwgc2JiLW1lbnUtbGluaycsXG4gICAgICApLFxuICAgICkuZmlsdGVyKFxuICAgICAgKGVsOiBTYmJNZW51QnV0dG9uRWxlbWVudCB8IFNiYk1lbnVMaW5rRWxlbWVudCkgPT5cbiAgICAgICAgIWVsLmRpc2FibGVkICYmIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgKTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBlbmFibGVkQWN0aW9ucy5maW5kSW5kZXgoKGU6IEVsZW1lbnQpID0+IGUgPT09IGV2dC50YXJnZXQpO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkQWN0aW9ucy5sZW5ndGgpO1xuXG4gICAgKGVuYWJsZWRBY3Rpb25zW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG1lbnUgb24gXCJFc2NcIiBrZXkgcHJlc3NlZCBhbmQgdHJhcHMgZm9jdXMgd2l0aGluIHRoZSBtZW51LlxuICBwcml2YXRlIGFzeW5jIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIG9sZFZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX21lbnVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHRoaXMuX29uQ2xpY2soZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpLCB7IHNpZ25hbCB9KTtcbiAgICAvLyBEdWUgdG8gdGhlIGZhY3QgdGhhdCBtZW51IGNhbiBib3RoIGJlIGEgbGlzdCBhbmQganVzdCBhIGNvbnRhaW5lciwgd2UgbmVlZCB0byBjaGVjayBpdHNcbiAgICAvLyBzdGF0ZSBiZWZvcmUgdGhlIFNiYk5hbWVkU2xvdExpc3RNaXhpbiBoYW5kbGVzIHRoZSBzbG90Y2hhbmdlIGV2ZW50LCBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGl0IGludGVycHJldGluZyB0aGUgbm9uIGxpc3QgY2FzZSBhcyBhIGxpc3QuXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKGUpID0+IHRoaXMuX2NoZWNrTGlzdENhc2UoZSksIHtcbiAgICAgIHNpZ25hbCxcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gVmFsaWRhdGUgdHJpZ2dlciBlbGVtZW50IGFuZCBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5fY29uZmlndXJlKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9tZW51Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrTGlzdENhc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gSWYgYWxsIGNoaWxkcmVuIGFyZSBzYmItbWVudS1idXR0b24vbWVudS1saW5rIGluc3RhbmNlcywgd2UgcmVuZGVyIHRoZW0gYXMgYSBsaXN0LlxuICAgIGlmIChcbiAgICAgIHRoaXMuY2hpbGRyZW4/Lmxlbmd0aCAmJlxuICAgICAgQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuID8/IFtdKS5ldmVyeShcbiAgICAgICAgKGMpID0+IGMubG9jYWxOYW1lID09PSAnc2JiLW1lbnUtYnV0dG9uJyB8fCBjLmxvY2FsTmFtZSA9PT0gJ3NiYi1tZW51LWxpbmsnLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMpID0+IGMucmVtb3ZlQXR0cmlidXRlKCdzbG90JykpO1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4gPSBbXTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlKHRyaWdnZXI6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodHJpZ2dlcik7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgYHNiYi1tZW51LSR7bmV4dElkKyt9YDtcbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuaWQsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX21lbnVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX21lbnVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbWVudUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0TWVudVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRNZW51UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENsb3NlIG1lbnUgYXQgYW55IGNsaWNrIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgaW5zaWRlIHRoZSA8c2JiLW1lbnU+IHRoYXQgYnViYmxlcyB0byB0aGUgY29udGFpbmVyLlxuICBwcml2YXRlIF9jbG9zZU9uSW50ZXJhY3RpdmVFbGVtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChJTlRFUkFDVElWRV9FTEVNRU5UUy5pbmNsdWRlcyh0YXJnZXQubm9kZU5hbWUpICYmICF0YXJnZXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG1lbnUuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fbWVudSwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJiAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9tZW51LCBldmVudCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IG1lbnUgcG9zaXRpb24gKHgsIHkpIHRvICcwJyBvbmNlIHRoZSBtZW51IGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gZW5kZWQgdG8gcHJldmVudCB0aGVcbiAgLy8gdmlld3BvcnQgZnJvbSBvdmVyZmxvd2luZy4gQW5kIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgb3Blbi5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbk1lbnVBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuX3NldE1lbnVGb2N1cygpO1xuICAgICAgdGhpcy5fZm9jdXNIYW5kbGVyLnRyYXAodGhpcyk7XG4gICAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLl9tZW51Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBNYW51YWxseSBmb2N1cyBsYXN0IGZvY3VzZWQgZWxlbWVudFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKHtcbiAgICAgICAgLy8gV2hlbiBpbnNpZGUgdGhlIHNiYi1oZWFkZXIsIHdlIHByZXZlbnQgdGhlIHNjcm9sbCB0byBhdm9pZCB0aGUgc25hcHBpbmcgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZVxuICAgICAgICBwcmV2ZW50U2Nyb2xsOlxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSA9PT0gJ3NiYi1oZWFkZXItYnV0dG9uJyB8fFxuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmxvY2FsTmFtZSA9PT0gJ3NiYi1oZWFkZXItbGluaycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG5cbiAgICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW0sIGVuYWJsZSBzY3JvbGxcbiAgICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0TWVudUZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gdGhpcy5xdWVyeVNlbGVjdG9yKElTX0ZPQ1VTQUJMRV9RVUVSWSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhmaXJzdEZvY3VzYWJsZSk7XG4gICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIFNldCBtZW51IHBvc2l0aW9uIGFuZCBtYXggaGVpZ2h0IGlmIHRoZSBicmVha3BvaW50IGlzIG1lZGl1bS11bHRyYS5cbiAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vIFN0YXJ0aW5nIGZyb20gYnJlYWtwb2ludCBtZWRpdW1cbiAgICBpZiAoXG4gICAgICAhaXNCcmVha3BvaW50KCdtZWRpdW0nKSB8fFxuICAgICAgIXRoaXMuX21lbnUgfHxcbiAgICAgICF0aGlzLl90cmlnZ2VyRWxlbWVudCB8fFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudVBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLW1lbnVfX2NvbnRlbnQnKSEsXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1tZW51X19jb250YWluZXInKSEsXG4gICAgICB7XG4gICAgICAgIHZlcnRpY2FsT2Zmc2V0OiBNRU5VX09GRlNFVCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtcG9zaXRpb24teCcsIGAke21lbnVQb3NpdGlvbi5sZWZ0fXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbWVudS1wb3NpdGlvbi15JywgYCR7bWVudVBvc2l0aW9uLnRvcH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW1lbnUtbWF4LWhlaWdodCcsIG1lbnVQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gVE9ETzogSGFuZGxlIGNhc2Ugd2l0aCBvdGhlciBlbGVtZW50cyB0aGFuIHNiYi1tZW51LWJ1dHRvbi9zYmItbWVudS1saW5rLlxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tZW51X19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbk1lbnVBbmltYXRpb25FbmQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLW1lbnVcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9tZW51ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuX2Nsb3NlT25JbnRlcmFjdGl2ZUVsZW1lbnRDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1tZW51X19jb250ZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyTGlzdCh7IGNsYXNzOiAnc2JiLW1lbnUtbGlzdCcsIGFyaWFMYWJlbDogdGhpcy5saXN0QWNjZXNzaWJpbGl0eUxhYmVsIH0pXG4gICAgICAgICAgICAgIDogaHRtbGA8c2xvdD48L3Nsb3Q+YH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWVudSc6IFNiYk1lbnVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLE1BQU0sY0FBYztBQUNwQixNQUFNLHVCQUF1QjtBQUFBLEVBQzNCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRUEsSUFBSSxTQUFTO0FBZU4sSUFBTSxpQkFBTixjQUE2QixzQkFHbEMsdUJBQXVCLEVBQUU7QUFBQSxFQUhwQixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFLdUIsU0FBQSxzQkFBc0IsQ0FBQyxtQkFBbUIsZUFBZTtBQWVyRixTQUFRLFdBQXdDO0FBU2hELFNBQVEsa0JBQXNDO0FBQzlDLFNBQVEsNEJBQXFDO0FBR3JDLFNBQUEsU0FBUyxJQUFJLDRC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
@@ -38,6 +38,7 @@ export declare class SbbNavigationElement extends SbbNavigationElement_base {
38
38
  private _windowEventsController;
39
39
  private _abort;
40
40
  private _language;
41
+ private _inertController;
41
42
  private _focusHandler;
42
43
  private _scrollHandler;
43
44
  private _isPointerDownEventOnNavigation;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAmBtE,OAAO,oCAAoC,CAAC;;AAW5C;;;;;;;;;;;GAWG;AACH,qBAIa,oBAAqB,SAAQ,yBAAgD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;OAEG;IAC0D,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd;;OAEG;IACM,OAAO,CAAC,wBAAwB,CAA4B;IAErE,IAAW,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAEvD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,yBAAyB,CAAe;IAChD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,yBAAyB,CAAgE;IAEjG;;OAEG;IACI,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACI,KAAK,IAAI,IAAI;IAcpB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB,CAEtB;IAIF,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAGF,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAgBzB,oBAAoB,IAAI,IAAI;cAWzB,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/elements/navigation/navigation/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAqBtE,OAAO,oCAAoC,CAAC;;AAW5C;;;;;;;;;;;GAWG;AACH,qBAIa,oBAAqB,SAAQ,yBAAgD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;OAGG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAIpD;IACD,IAAW,OAAO,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAEhD;IACD,OAAO,CAAC,QAAQ,CAAqC;IAErD;;OAEG;IAC0D,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd;;OAEG;IACM,OAAO,CAAC,wBAAwB,CAA4B;IAErE,IAAW,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAEvD;IAED,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,yBAAyB,CAAe;IAChD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,yBAAyB,CAAgE;IAEjG;;OAEG;IACI,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACI,KAAK,IAAI,IAAI;IAcpB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB,CAEtB;IAIF,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAI3B;IAGF,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,mBAAmB;IAkBX,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;cAUzB,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -3,13 +3,13 @@ import { property, state, customElement } from "lit/decorators.js";
3
3
  import { ref } from "lit/directives/ref.js";
4
4
  import { SbbFocusHandler, setModalityOnNextFocus } from "../core/a11y.js";
5
5
  import { SbbOpenCloseBaseElement } from "../core/base-elements.js";
6
- import { SbbConnectedAbortController, SbbLanguageController } from "../core/controllers.js";
6
+ import { SbbConnectedAbortController, SbbLanguageController, SbbInertController } from "../core/controllers.js";
7
7
  import { hostAttributes } from "../core/decorators.js";
8
8
  import { SbbScrollHandler, findReferencedElement } from "../core/dom.js";
9
9
  import { i18nCloseNavigation } from "../core/i18n.js";
10
10
  import { SbbUpdateSchedulerMixin } from "../core/mixins.js";
11
11
  import { AgnosticMutationObserver, AgnosticResizeObserver } from "../core/observers.js";
12
- import { isEventOnElement, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes, applyInertMechanism, removeInertMechanism } from "../core/overlay.js";
12
+ import { isEventOnElement, removeAriaOverlayTriggerAttributes, setAriaOverlayTriggerAttributes } from "../core/overlay.js";
13
13
  import "../button/transparent-button.js";
14
14
  const style = css`/**
15
15
  * Better font rendering (on OS X)
@@ -319,6 +319,7 @@ let SbbNavigationElement = class extends SbbUpdateSchedulerMixin(SbbOpenCloseBas
319
319
  this._triggerElement = null;
320
320
  this._abort = new SbbConnectedAbortController(this);
321
321
  this._language = new SbbLanguageController(this);
322
+ this._inertController = new SbbInertController(this);
322
323
  this._focusHandler = new SbbFocusHandler();
323
324
  this._scrollHandler = new SbbScrollHandler();
324
325
  this._isPointerDownEventOnNavigation = false;
@@ -440,7 +441,7 @@ let SbbNavigationElement = class extends SbbUpdateSchedulerMixin(SbbOpenCloseBas
440
441
  this.state = "opened";
441
442
  this.didOpen.emit();
442
443
  this._navigationResizeObserver.observe(this);
443
- applyInertMechanism(this);
444
+ this._inertController.activate();
444
445
  this._focusHandler.trap(this, { filter: this._trapFocusFilter });
445
446
  this._attachWindowEvents();
446
447
  this._setNavigationFocus();
@@ -448,7 +449,7 @@ let SbbNavigationElement = class extends SbbUpdateSchedulerMixin(SbbOpenCloseBas
448
449
  this.state = "closed";
449
450
  this._navigationContentElement.scrollTo(0, 0);
450
451
  setModalityOnNextFocus(this._triggerElement);
451
- removeInertMechanism();
452
+ this._inertController.deactivate();
452
453
  (_a = this._triggerElement) == null ? void 0 : _a.focus();
453
454
  this.didClose.emit();
454
455
  this._navigationResizeObserver.unobserve(this);
@@ -532,9 +533,6 @@ let SbbNavigationElement = class extends SbbUpdateSchedulerMixin(SbbOpenCloseBas
532
533
  this._navigationObserver.observe(this, navigationObserverConfig);
533
534
  this.addEventListener("pointerup", (event) => this._closeOnBackdropClick(event), { signal });
534
535
  this.addEventListener("pointerdown", (event) => this._pointerDownListener(event), { signal });
535
- if (this.state === "opened") {
536
- applyInertMechanism(this);
537
- }
538
536
  }
539
537
  disconnectedCallback() {
540
538
  var _a, _b;
@@ -544,7 +542,6 @@ let SbbNavigationElement = class extends SbbUpdateSchedulerMixin(SbbOpenCloseBas
544
542
  this._focusHandler.disconnect();
545
543
  this._navigationObserver.disconnect();
546
544
  this._navigationResizeObserver.disconnect();
547
- removeInertMechanism();
548
545
  this._scrollHandler.enableScroll();
549
546
  }
550
547
  render() {
@@ -603,4 +600,4 @@ SbbNavigationElement = __decorateClass([
603
600
  export {
604
601
  SbbNavigationElement
605
602
  };
606
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiRm9jdXNIYW5kbGVyLCBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQsIFNiYlNjcm9sbEhhbmRsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyLCBBZ25vc3RpY1Jlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHtcbiAgYXBwbHlJbmVydE1lY2hhbmlzbSxcbiAgaXNFdmVudE9uRWxlbWVudCxcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyxcbiAgcmVtb3ZlSW5lcnRNZWNoYW5pc20sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3RyYW5zcGFyZW50LWJ1dHRvbi5qcyc7XG5cbi8qKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXR0cmlidXRlIHRvIGxvb2sgYXQgaWYgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkICovXG5jb25zdCBuYXZpZ2F0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBzdWJ0cmVlOiB0cnVlLFxuICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGF0YS1zdGF0ZSddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5jb25zdCBERUJPVU5DRV9USU1FID0gMTUwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbmF2aWdhdGlvbiBtZW51LCB3cmFwcGluZyBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tKmAgY29tcG9uZW50cy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2AgZWxlbWVudHMgaW50byB0aGUgc2JiLW5hdmlnYXRpb24gbWVudS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbmF2aWdhdGlvbmAgYmVnaW5zIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItbmF2aWdhdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnbmF2aWdhdGlvbicsXG59KVxuZXhwb3J0IGNsYXNzIFNiYk5hdmlnYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBuYXZpZ2F0aW9uLlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbmF2aWdhdGlvbiBzZWN0aW9uIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX25hdmlnYXRpb25Db250ZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbkNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c0hhbmRsZXIgPSBuZXcgU2JiRm9jdXNIYW5kbGVyKCk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uT2JzZXJ2ZXIgPSBuZXcgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKSA9PlxuICAgIHRoaXMuX29uTmF2aWdhdGlvblNlY3Rpb25DaGFuZ2UobXV0YXRpb25zTGlzdCksXG4gICk7XG4gIHByaXZhdGUgX25hdmlnYXRpb25SZXNpemVPYnNlcnZlciA9IG5ldyBBZ25vc3RpY1Jlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuX25hdmlnYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fY2hlY2tBY3RpdmVBY3Rpb25zKCk7XG4gICAgdGhpcy5fY2hlY2tBY3RpdmVTZWN0aW9uKCk7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuXG4gICAgLy8gRGlzYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlU2VjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uLnNiYi1hY3RpdmUnLFxuICAgICkgYXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQ7XG4gICAgYWN0aXZlQWN0aW9uPy5jb25uZWN0ZWRTZWN0aW9uPy5vcGVuKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnNlbGVjdChhY3Rpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIG9sZFZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmUodHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAoIXRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuaWQsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbmF2aWdhdGlvbkNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJhcEZvY3VzRmlsdGVyID0gKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBlbC5ub2RlTmFtZSAhPT0gJ1NCQi1OQVZJR0FUSU9OLVNFQ1RJT04nIHx8IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpID09PSAnb3BlbmVkJztcbiAgfTtcblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICBhcHBseUluZXJ0TWVjaGFuaXNtKHRoaXMpO1xuICAgICAgdGhpcy5fZm9jdXNIYW5kbGVyLnRyYXAodGhpcywgeyBmaWx0ZXI6IHRoaXMuX3RyYXBGb2N1c0ZpbHRlciB9KTtcbiAgICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkZvY3VzKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvbkNvbnRlbnRFbGVtZW50LnNjcm9sbFRvKDAsIDApO1xuICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG4gICAgICByZW1vdmVJbmVydE1lY2hhbmlzbSgpO1xuICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgICAgdGhpcy5kaWRDbG9zZS5lbWl0KCk7XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMpO1xuICAgICAgdGhpcy5fcmVzZXRNYXJrZXJzKCk7XG4gICAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fZm9jdXNIYW5kbGVyLmRpc2Nvbm5lY3QoKTtcblxuICAgICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICB9XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaylbZGF0YS1hY3Rpb24tYWN0aXZlXTpub3QoLnNiYi1hY3RpdmUpJyxcbiAgICAgICksXG4gICAgKSBhcyAoU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQpW107XG4gICAgYWN0aXZlQWN0aW9ucz8uZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24ubWFya2VyPy5yZXNldCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9vbktleWRvd25FdmVudChldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2xvc2VzIHRoZSBuYXZpZ2F0aW9uIG9uIFwiRXNjXCIga2V5IHByZXNzZWQuXG4gIHByaXZhdGUgX29uS2V5ZG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50LlxuICBwcml2YXRlIF9zZXROYXZpZ2F0aW9uRm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnI3NiYi1uYXZpZ2F0aW9uLWNsb3NlLWJ1dHRvbicsXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKGNsb3NlQnV0dG9uKTtcbiAgICBjbG9zZUJ1dHRvbi5mb2N1cygpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICdzYmItbmF2aWdhdGlvbi1zZWN0aW9uW2RhdGEtc3RhdGU9XCJvcGVuZWRcIl0nLFxuICAgICAgICApPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCduYXYuc2JiLW5hdmlnYXRpb24tc2VjdGlvbicpIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBPYnNlcnZlIGNoYW5nZXMgb24gbmF2aWdhdGlvbiBzZWN0aW9uIGRhdGEtc3RhdGUuXG4gIHByaXZhdGUgX29uTmF2aWdhdGlvblNlY3Rpb25DaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLm5vZGVOYW1lID09PSAnU0JCLU5BVklHQVRJT04tU0VDVElPTicpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb25bZGF0YS1zdGF0ZT1cIm9wZW5pbmdcIl0sIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25bZGF0YS1zdGF0ZT1cIm9wZW5lZFwiXScsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1uYXZpZ2F0aW9uLXNlY3Rpb24nLCAhIXRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtcmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJywgdHJ1ZSk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXJlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pZCB8fD0gYHNiYi1uYXZpZ2F0aW9uLSR7bmV4dElkKyt9YDtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB0aGlzLl9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZSksIHsgc2lnbmFsIH0pO1xuICAgIC8vIFZhbGlkYXRlIHRyaWdnZXIgZWxlbWVudCBhbmQgYXR0YWNoIGV2ZW50IGxpc3RlbmVyc1xuICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICAgIHRoaXMuX25hdmlnYXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMsIG5hdmlnYXRpb25PYnNlcnZlckNvbmZpZyk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIChldmVudCkgPT4gdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lcihldmVudCksIHsgc2lnbmFsIH0pO1xuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICBhcHBseUluZXJ0TWVjaGFuaXNtKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZm9jdXNIYW5kbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgcmVtb3ZlSW5lcnRNZWNoYW5pc20oKTtcbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSBodG1sYFxuICAgICAgPHNiYi10cmFuc3BhcmVudC1idXR0b25cbiAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1jbG9zZS1idXR0b25cIlxuICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jbG9zZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsIHx8IGkxOG5DbG9zZU5hdmlnYXRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgIGFyaWEtY29udHJvbHM9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgbmVnYXRpdmVcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5fb25BbmltYXRpb25FbmQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25cIlxuICAgICAgICAgICR7cmVmKChuYXZpZ2F0aW9uUmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb24gPSBuYXZpZ2F0aW9uUmVmIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2hlYWRlclwiPiR7Y2xvc2VCdXR0b259PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRlbnRcIlxuICAgICAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbkNvbnRlbnRFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2xvdCBuYW1lPVwibmF2aWdhdGlvbi1zZWN0aW9uXCI+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24nOiBTYmJOYXZpZ2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkEsTUFBTSwyQkFBaUQ7QUFBQSxFQUNyRCxTQUFTO0FBQUEsRUFDVCxpQkFBaUIsQ0FBQyxZQUFZO0FBQ2hDO0FBRUEsSUFBSSxTQUFTO0FBQ2IsTUFBTSxnQkFBZ0I7QUFrQmYsSUFBTSx1QkFBTixjQUFtQyx3QkFBd0IsdUJBQXVCLEVBQUU7QUFBQSxFQUFwRixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFnQkwsU0FBUSxXQUF3QztBQVl2QyxTQUFRLDJCQUErQztBQVFoRSxTQUFRLGtCQUFzQztBQUd0QyxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUM3QyxTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUMxQyxTQUFBLGdCQUFnQixJQUFJO0FBQ3BCLFNBQUEsaUJBQWlCLElBQUk7QUFDN0IsU0FBUSxrQ0FBMkM7QUFDbkQsU0FBUSx5QkFBK0Q7QUFDdkUsU0FBUSxzQkFBc0IsSUFBSTtBQUFBLE1BQXlCLENBQUMsa0JBQzFELEtB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
603
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiRm9jdXNIYW5kbGVyLCBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7XG4gIFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50LCBTYmJTY3JvbGxIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bkNsb3NlTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlciwgQWdub3N0aWNSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uLy4uL2NvcmUvb2JzZXJ2ZXJzLmpzJztcbmltcG9ydCB7XG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1idXR0b24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3RyYW5zcGFyZW50LWJ1dHRvbi5qcyc7XG5cbi8qKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXR0cmlidXRlIHRvIGxvb2sgYXQgaWYgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkICovXG5jb25zdCBuYXZpZ2F0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBzdWJ0cmVlOiB0cnVlLFxuICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGF0YS1zdGF0ZSddLFxufTtcblxubGV0IG5leHRJZCA9IDA7XG5jb25zdCBERUJPVU5DRV9USU1FID0gMTUwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbmF2aWdhdGlvbiBtZW51LCB3cmFwcGluZyBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tKmAgY29tcG9uZW50cy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2AgZWxlbWVudHMgaW50byB0aGUgc2JiLW5hdmlnYXRpb24gbWVudS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItbmF2aWdhdGlvbmAgYmVnaW5zIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1uYXZpZ2F0aW9uYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItbmF2aWdhdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnbmF2aWdhdGlvbicsXG59KVxuZXhwb3J0IGNsYXNzIFNiYk5hdmlnYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBuYXZpZ2F0aW9uLlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl90cmlnZ2VyO1xuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcih0aGlzLl90cmlnZ2VyLCBvbGRWYWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbmF2aWdhdGlvbiBzZWN0aW9uIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX25hdmlnYXRpb25Db250ZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbkNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9pbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c0hhbmRsZXIgPSBuZXcgU2JiRm9jdXNIYW5kbGVyKCk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uT2JzZXJ2ZXIgPSBuZXcgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKSA9PlxuICAgIHRoaXMuX29uTmF2aWdhdGlvblNlY3Rpb25DaGFuZ2UobXV0YXRpb25zTGlzdCksXG4gICk7XG4gIHByaXZhdGUgX25hdmlnYXRpb25SZXNpemVPYnNlcnZlciA9IG5ldyBBZ25vc3RpY1Jlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpKTtcblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuX25hdmlnYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fY2hlY2tBY3RpdmVBY3Rpb25zKCk7XG4gICAgdGhpcy5fY2hlY2tBY3RpdmVTZWN0aW9uKCk7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuXG4gICAgLy8gRGlzYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlU2VjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uLnNiYi1hY3RpdmUnLFxuICAgICkgYXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQ7XG4gICAgYWN0aXZlQWN0aW9uPy5jb25uZWN0ZWRTZWN0aW9uPy5vcGVuKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnKSxcbiAgICApIGFzIChTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudClbXTtcbiAgICBhY3RpdmVBY3Rpb25zPy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi5tYXJrZXI/LnNlbGVjdChhY3Rpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIG9sZFZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSh0aGlzLnRyaWdnZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmUodHJpZ2dlcjogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLl90cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAoIXRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuaWQsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fbmF2aWdhdGlvbkNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJhcEZvY3VzRmlsdGVyID0gKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBlbC5ub2RlTmFtZSAhPT0gJ1NCQi1OQVZJR0FUSU9OLVNFQ1RJT04nIHx8IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpID09PSAnb3BlbmVkJztcbiAgfTtcblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gICAgICB0aGlzLl9pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci50cmFwKHRoaXMsIHsgZmlsdGVyOiB0aGlzLl90cmFwRm9jdXNGaWx0ZXIgfSk7XG4gICAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25Gb2N1cygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICAgIHRoaXMuX25hdmlnYXRpb25Db250ZW50RWxlbWVudC5zY3JvbGxUbygwLCAwKTtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgdGhpcy5faW5lcnRDb250cm9sbGVyLmRlYWN0aXZhdGUoKTtcbiAgICAgIC8vIFRvIGVuYWJsZSBmb2N1c2luZyBvdGhlciBlbGVtZW50IHRoYW4gdGhlIHRyaWdnZXIsIHdlIG5lZWQgdG8gY2FsbCBmb2N1cygpIGEgc2Vjb25kIHRpbWUuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICAgICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICAgIHRoaXMuX3Jlc2V0TWFya2VycygpO1xuICAgICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG5cbiAgICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TWFya2VycygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspW2RhdGEtYWN0aW9uLWFjdGl2ZV06bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hXaW5kb3dFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fb25LZXlkb3duRXZlbnQoZXZlbnQpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlTmF2aWdhdGlvbkNsb3NlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvc2VkUGF0aEVsZW1lbnRzID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KTtcbiAgICBpZiAoY29tcG9zZWRQYXRoRWxlbWVudHMuc29tZSgoZWwpID0+IHRoaXMuX2lzQ2xvc2VFbGVtZW50KGVsIGFzIEhUTUxFbGVtZW50KSkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0Nsb3NlRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lID09PSAnQScgfHxcbiAgICAgIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLW5hdmlnYXRpb24tY2xvc2UnKSAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpXG4gICAgKTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKFxuICAgICAgJyNzYmItbmF2aWdhdGlvbi1jbG9zZS1idXR0b24nLFxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhjbG9zZUJ1dHRvbik7XG4gICAgY2xvc2VCdXR0b24uZm9jdXMoKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb24gPVxuICAgICAgaXNFdmVudE9uRWxlbWVudCh0aGlzLl9uYXZpZ2F0aW9uLCBldmVudCkgfHxcbiAgICAgIGlzRXZlbnRPbkVsZW1lbnQoXG4gICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbltkYXRhLXN0YXRlPVwib3BlbmVkXCJdJyxcbiAgICAgICAgKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nKSBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgZXZlbnQsXG4gICAgICApO1xuICB9O1xuXG4gIC8vIENsb3NlIG5hdmlnYXRpb24gb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiAmJiAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9uYXZpZ2F0aW9uLCBldmVudCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gT2JzZXJ2ZSBjaGFuZ2VzIG9uIG5hdmlnYXRpb24gc2VjdGlvbiBkYXRhLXN0YXRlLlxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25TZWN0aW9uQ2hhbmdlKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgIGlmICgobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5ub2RlTmFtZSA9PT0gJ1NCQi1OQVZJR0FUSU9OLVNFQ1RJT04nKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gdGhpcy5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICdzYmItbmF2aWdhdGlvbi1zZWN0aW9uW2RhdGEtc3RhdGU9XCJvcGVuaW5nXCJdLCBzYmItbmF2aWdhdGlvbi1zZWN0aW9uW2RhdGEtc3RhdGU9XCJvcGVuZWRcIl0nLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1oYXMtbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25OYXZpZ2F0aW9uUmVzaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXJlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicsIHRydWUpO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdGhlIG5hdmlnYXRpb24gdG8gYXZvaWQgc3RyYW5nZSBoZWlnaHQgdHJhbnNpdGlvbiBlZmZlY3RzLlxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1yZXNpemUtZGlzYWJsZS1hbmltYXRpb24nKSxcbiAgICAgIERFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItbmF2aWdhdGlvbi0ke25leHRJZCsrfWA7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4gdGhpcy5faGFuZGxlTmF2aWdhdGlvbkNsb3NlKGUpLCB7IHNpZ25hbCB9KTtcbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUodGhpcy50cmlnZ2VyKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCBuYXZpZ2F0aW9uT2JzZXJ2ZXJDb25maWcpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2ZW50KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldmVudCksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXZlbnQpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXZlbnQpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX25hdmlnYXRpb25Db250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fZm9jdXNIYW5kbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLW5hdmlnYXRpb24tY2xvc2VcbiAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG4gICAgYDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0keyhldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHRoaXMuX29uQW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uXCJcbiAgICAgICAgICAke3JlZigobmF2aWdhdGlvblJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9uYXZpZ2F0aW9uID0gbmF2aWdhdGlvblJlZiBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19oZWFkZXJcIj4ke2Nsb3NlQnV0dG9ufTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250ZW50XCJcbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb25Db250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3QgbmFtZT1cIm5hdmlnYXRpb24tc2VjdGlvblwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uJzogU2JiTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLE1BQU0sMkJBQWlEO0FBQUEsRUFDckQsU0FBUztBQUFBLEVBQ1QsaUJBQWlCLENBQUMsWUFBWTtBQUNoQztBQUVBLElBQUksU0FBUztBQUNiLE1BQU0sZ0JBQWdCO0FBa0JmLElBQU0sdUJBQU4sY0FBbUMsd0JBQXdCLHVCQUF1QixFQUFFO0FBQUEsRUFBcEYsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBZ0JMLFNBQVEsV0FBd0M7QUFZdkMsU0FBUSwyQkFBK0M7QUFRaEUsU0FBUSxrQkFBc0M7QUFHdEMsU0FBQSxTQUFTLElBQUksNEJBQTRCLElBQUk7QUFDN0MsU0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFDMUMsU0FBQSxtQkFBbUIsSUFBSSxtQkFBbUIsSUFBSTtBQUM5QyxTQUFBLGdCQUFnQixJQUFJO0FBQ3BCLFNBQUEsaUJBQWlCLElBQUk7QUFDN0IsU0FBUSxrQ0FBMkM7QUFDbkQsU0FBUSx5QkFBK0Q7QUFDdkUsU0FBUSxzQkFBc0IsSUFBSTtBQUFBLE1BQXlCLENBQUMsa0JBQzFELEtBQUssMkJBQTJCLGFB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
@@ -1,7 +1,7 @@
1
1
  import { PropertyValues } from 'lit';
2
2
  import { SbbFocusHandler } from '../core/a11y.js';
3
3
  import { SbbOpenCloseBaseElement } from '../core/base-elements.js';
4
- import { SbbLanguageController } from '../core/controllers.js';
4
+ import { SbbInertController, SbbLanguageController } from '../core/controllers.js';
5
5
  import { SbbScrollHandler } from '../core/dom.js';
6
6
  import { EventEmitter } from '../core/eventing.js';
7
7
  import { SbbOverlayCloseEventDetails } from '../core/interfaces.js';
@@ -23,6 +23,7 @@ export declare abstract class SbbOverlayBaseElement extends SbbOverlayBaseElemen
23
23
  protected ariaLiveRefToggle: boolean;
24
24
  protected ariaLiveRef: SbbScreenReaderOnlyElement;
25
25
  protected language: SbbLanguageController;
26
+ protected inertController: SbbInertController;
26
27
  protected abstract onOverlayAnimationEnd(event: AnimationEvent): void;
27
28
  protected abstract setOverlayFocus(): void;
28
29
  protected abstract closeAttribute: string;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAAsB,qBAAsB,SAAQ,0BAAyC;IAC3F,kHAAkH;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IAErD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAE1C,4BAA4B;IACrB,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG;IAmBrC,iBAAiB,IAAI,IAAI;cAUtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAU5C,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAkBzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWpD,SAAS,CAAC,kCAAkC,IAAI,IAAI;IAKpD,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoBzD,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAI1C,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAStD"}
1
+ {"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAAsB,qBAAsB,SAAQ,0BAAyC;IAC3F,kHAAkH;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,eAAe,qBAAgC;IAEzD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAE1C,4BAA4B;IACrB,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG;IAmBrC,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAS5C,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAkBzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWpD,SAAS,CAAC,kCAAkC,IAAI,IAAI;IAKpD,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoBzD,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAI1C,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAStD"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAU1D,OAAO,EAAe,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAC1D,OAAuB,MAAM,EAAE,cAAc,CAAS;IAGtD,gBAAgC,MAAM;;;;;;MAM3B;IAEX;;;OAGG;IACgD,QAAQ,UAAS;IAEpE,4DAA4D;IACE,UAAU,UAAS;IAEjF,wEAAwE;IACX,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd,uEAAuE;IACX,sBAAsB,EAC9E,MAAM,GACN,SAAS,CAAC;IAEd,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuB;IAEvD,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,sBAAsB,CAA4B;IAE1D,2BAA2B;IACpB,IAAI,IAAI,IAAI;IAyBnB,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAgC5D,SAAS,CAAC,eAAe,IAAI,IAAI;cAUd,MAAM,IAAI,cAAc;CAyD5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAS1D,OAAO,EAAe,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAC1D,OAAuB,MAAM,EAAE,cAAc,CAAS;IAGtD,gBAAgC,MAAM;;;;;;MAM3B;IAEX;;;OAGG;IACgD,QAAQ,UAAS;IAEpE,4DAA4D;IACE,UAAU,UAAS;IAEjF,wEAAwE;IACX,uBAAuB,EAChF,MAAM,GACN,SAAS,CAAC;IAEd,uEAAuE;IACX,sBAAsB,EAC9E,MAAM,GACN,SAAS,CAAC;IAEd,SAAS,CAAC,cAAc,EAAE,MAAM,CAAuB;IAEvD,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,sBAAsB,CAA4B;IAE1D,2BAA2B;IACpB,IAAI,IAAI,IAAI;IAyBnB,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAgC5D,SAAS,CAAC,eAAe,IAAI,IAAI;cAUd,MAAM,IAAI,cAAc;CAyD5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}