@theseam/ui-common 0.4.13 → 0.4.15

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 (139) hide show
  1. package/buttons/public-api.d.ts +1 -0
  2. package/buttons/testing/anchor-badge-button.harness.d.ts +16 -0
  3. package/buttons/testing/anchor-button.harness.d.ts +16 -0
  4. package/buttons/testing/badge-button.harness.d.ts +15 -0
  5. package/buttons/testing/base-badge-button.harness.d.ts +15 -0
  6. package/buttons/testing/base-button.harness.d.ts +19 -0
  7. package/buttons/testing/button.harness.d.ts +15 -0
  8. package/buttons/testing/index.d.ts +5 -0
  9. package/buttons/testing/toggle-button.harness.d.ts +21 -0
  10. package/checkbox/checkbox.component.d.ts +1 -1
  11. package/checkbox/checkbox.module.d.ts +2 -3
  12. package/datatable/datatable.module.d.ts +1 -1
  13. package/esm2020/buttons/button/button.component.mjs +2 -1
  14. package/esm2020/buttons/public-api.mjs +2 -1
  15. package/esm2020/buttons/testing/anchor-badge-button.harness.mjs +18 -0
  16. package/esm2020/buttons/testing/anchor-button.harness.mjs +18 -0
  17. package/esm2020/buttons/testing/badge-button.harness.mjs +14 -0
  18. package/esm2020/buttons/testing/base-badge-button.harness.mjs +29 -0
  19. package/esm2020/buttons/testing/base-button.harness.mjs +41 -0
  20. package/esm2020/buttons/testing/button.harness.mjs +16 -0
  21. package/esm2020/buttons/testing/index.mjs +6 -0
  22. package/esm2020/buttons/testing/toggle-button.harness.mjs +25 -0
  23. package/esm2020/checkbox/checkbox.component.mjs +8 -3
  24. package/esm2020/checkbox/checkbox.module.mjs +5 -12
  25. package/esm2020/datatable/datatable.module.mjs +5 -5
  26. package/esm2020/form-field/form-field.component.mjs +4 -4
  27. package/esm2020/framework/schema-form/index.mjs +2 -1
  28. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +6 -3
  29. package/esm2020/framework/schema-form/schema-form-framework.mjs +62 -7
  30. package/esm2020/framework/schema-form/schema-form-widget.mjs +2 -0
  31. package/esm2020/framework/schema-form/schema-form.module.mjs +1 -8
  32. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +21 -11
  33. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +20 -0
  34. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +17 -8
  35. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +14 -5
  36. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +19 -9
  37. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +21 -13
  38. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +30 -18
  39. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +48 -0
  40. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +57 -0
  41. package/esm2020/google-maps/google-maps/google-maps.component.mjs +9 -2
  42. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +2 -1
  43. package/esm2020/menu/public-api.mjs +5 -1
  44. package/esm2020/menu/testing/menu-footer.harness.mjs +28 -0
  45. package/esm2020/menu/testing/menu-header.harness.mjs +23 -0
  46. package/esm2020/menu/testing/menu-item.harness.mjs +59 -0
  47. package/esm2020/menu/testing/menu.harness.mjs +163 -0
  48. package/esm2020/menu/testing/utils.mjs +13 -0
  49. package/esm2020/story-helpers/args-to-tpl.mjs +83 -0
  50. package/esm2020/story-helpers/public-api.mjs +2 -2
  51. package/esm2020/tel-input/public-api.mjs +2 -1
  52. package/esm2020/tel-input/tel-input/tel-input.component.mjs +22 -10
  53. package/esm2020/tel-input/tel-input.directive.mjs +12 -13
  54. package/esm2020/tel-input/tel-input.module.mjs +10 -9
  55. package/esm2020/tel-input/testing/tel-input.harness.mjs +49 -0
  56. package/esm2020/testing/harnesses/ng-select-dropdown.harness.mjs +39 -0
  57. package/esm2020/testing/harnesses/ng-select-option.harness.mjs +26 -0
  58. package/esm2020/testing/harnesses/ng-select.harness.mjs +104 -0
  59. package/esm2020/testing/public-api.mjs +4 -1
  60. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +1 -1
  61. package/fesm2015/theseam-ui-common-buttons.mjs +181 -3
  62. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  63. package/fesm2015/theseam-ui-common-checkbox.mjs +12 -14
  64. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  65. package/fesm2015/theseam-ui-common-datatable.mjs +4 -4
  66. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  67. package/fesm2015/theseam-ui-common-form-field.mjs +3 -3
  68. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  69. package/fesm2015/theseam-ui-common-framework.mjs +248 -164
  70. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  71. package/fesm2015/theseam-ui-common-google-maps.mjs +10 -1
  72. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  73. package/fesm2015/theseam-ui-common-menu.mjs +329 -3
  74. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  75. package/fesm2015/theseam-ui-common-story-helpers.mjs +86 -1
  76. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2015/theseam-ui-common-tel-input.mjs +105 -29
  78. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  79. package/fesm2015/theseam-ui-common-testing.mjs +197 -1
  80. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  81. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  82. package/fesm2020/theseam-ui-common-buttons.mjs +154 -2
  83. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  84. package/fesm2020/theseam-ui-common-checkbox.mjs +12 -14
  85. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  86. package/fesm2020/theseam-ui-common-datatable.mjs +4 -4
  87. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  88. package/fesm2020/theseam-ui-common-form-field.mjs +3 -3
  89. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  90. package/fesm2020/theseam-ui-common-framework.mjs +236 -162
  91. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  92. package/fesm2020/theseam-ui-common-google-maps.mjs +9 -1
  93. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  94. package/fesm2020/theseam-ui-common-menu.mjs +275 -2
  95. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  96. package/fesm2020/theseam-ui-common-story-helpers.mjs +84 -1
  97. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  98. package/fesm2020/theseam-ui-common-tel-input.mjs +89 -29
  99. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-testing.mjs +165 -1
  101. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  103. package/framework/schema-form/index.d.ts +1 -0
  104. package/framework/schema-form/schema-form-framework.d.ts +12 -1
  105. package/framework/schema-form/schema-form-widget.d.ts +61 -0
  106. package/framework/schema-form/schema-form.module.d.ts +1 -2
  107. package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +12 -11
  108. package/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.d.ts +12 -0
  109. package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +10 -9
  110. package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +8 -7
  111. package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +10 -9
  112. package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +10 -9
  113. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +10 -9
  114. package/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.d.ts +23 -0
  115. package/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.d.ts +32 -0
  116. package/google-maps/google-maps/google-maps.component.d.ts +2 -1
  117. package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +1 -0
  118. package/menu/menu-footer-action/menu-footer-action.component.d.ts +1 -1
  119. package/menu/public-api.d.ts +4 -0
  120. package/menu/testing/menu-footer.harness.d.ts +22 -0
  121. package/menu/testing/menu-header.harness.d.ts +18 -0
  122. package/menu/testing/menu-item.harness.d.ts +37 -0
  123. package/menu/testing/menu.harness.d.ts +74 -0
  124. package/menu/testing/utils.d.ts +5 -0
  125. package/package.json +1 -1
  126. package/story-helpers/args-to-tpl.d.ts +25 -0
  127. package/story-helpers/public-api.d.ts +1 -0
  128. package/tel-input/public-api.d.ts +1 -0
  129. package/tel-input/tel-input/tel-input.component.d.ts +2 -2
  130. package/tel-input/tel-input.directive.d.ts +1 -1
  131. package/tel-input/tel-input.module.d.ts +7 -7
  132. package/tel-input/testing/tel-input.harness.d.ts +19 -0
  133. package/testing/harnesses/ng-select-dropdown.harness.d.ts +23 -0
  134. package/testing/harnesses/ng-select-option.harness.d.ts +18 -0
  135. package/testing/harnesses/ng-select.harness.d.ts +50 -0
  136. package/testing/public-api.d.ts +3 -0
  137. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +10 -10
  138. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +0 -79
  139. package/framework/schema-form-controls/schema-form-controls.module.d.ts +0 -20
@@ -213,7 +213,14 @@ export class TheSeamGoogleMapsComponent extends _TheSeamGoogleMapsMixinBase {
213
213
  // or upgrade to a more recent version that may not have the issue anymore.
214
214
  // TODO: Check if the switch to '@angular/google-maps' fixed this problem.
215
215
  this._googleMaps.reCenterOnFeatures();
216
- this._googleMaps.googleMap?.setZoom(this.zoom);
216
+ // NOTE: the input zoom level was getting reset after this function ran,
217
+ // so putting in this idle listener to wait until the map is fully rendered
218
+ // to set the zoom.
219
+ this.idleListener = this._googleMaps.googleMap?.addListener('idle', () => {
220
+ this._googleMaps.googleMap?.setZoom(this.zoom);
221
+ this.idleListener?.remove();
222
+ });
223
+ this.mapReady.emit(this._googleMaps.googleMap);
217
224
  }
218
225
  _onClickDeleteFeature() {
219
226
  this._googleMaps.deleteSelection();
@@ -319,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
319
326
  type: ViewChild,
320
327
  args: ['featureContextMenu', { static: true, read: MenuComponent }]
321
328
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQzlHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUE4QixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUd2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMzRSxPQUFPLEVBQ0wsK0NBQStDLEdBQ2hELE1BQU0sc0ZBQXNGLENBQUE7QUFDN0YsT0FBTyxFQUNMLDZDQUE2QyxHQUM5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TixVQUFVO3FCQUNYLGFBQ1U7d0JBQ1Qsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTt3QkFDdEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsZ0RBQWdEOzRCQUNoRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsZ0JBQWdCOzBPQXFDdEIsS0FBSztzQkFEUixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFVbUIsZUFBZTtzQkFBdkMsS0FBSztnQkFFbUIsd0JBQXdCO3NCQUFoRCxLQUFLO2dCQUNtQix3QkFBd0I7c0JBQWhELEtBQUs7Z0JBQ21CLHNCQUFzQjtzQkFBOUMsS0FBSztnQkFDbUIscUJBQXFCO3NCQUE3QyxLQUFLO2dCQUNtQix3QkFBd0I7c0JBQWhELEtBQUs7Z0JBRW1CLHlCQUF5QjtzQkFBakQsS0FBSztnQkFFbUIsY0FBYztzQkFBdEMsS0FBSztnQkFHRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBTUYsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxlQUFlO2dCQUl4QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7Z0JBTUosSUFBSTtzQkFBM0IsS0FBSztnQkFDa0IsU0FBUztzQkFBaEMsS0FBSztnQkFDa0IsUUFBUTtzQkFBL0IsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUV3RSxrQkFBa0I7c0JBQWhHLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFDcm9zc2hhaXJzLCBmYUZpbGVJbXBvcnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBDYW5EaXNhYmxlLCBDYW5EaXNhYmxlQ3RvciwgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciwgbWl4aW5EaXNhYmxlZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuXG5pbXBvcnQgeyBUaGVTZWFtR29vZ2xlTWFwc0FwaUxvYWRlciB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXIvZ29vZ2xlLW1hcHMtYXBpLWxvYWRlcidcbmltcG9ydCB7IEdvb2dsZU1hcHNDb250cm9sc1NlcnZpY2UgfSBmcm9tICcuLi9nb29nbGUtbWFwcy1jb250cm9scy5zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgVGhlU2VhbUdvb2dsZU1hcHNSZWNlbnRlckJ1dHRvbkNvbnRyb2xDb21wb25lbnQsXG59IGZyb20gJy4uL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIFRoZVNlYW1Hb29nbGVNYXBzVXBsb2FkQnV0dG9uQ29udHJvbENvbXBvbmVudCxcbn0gZnJvbSAnLi4vZ29vZ2xlLW1hcHMtdXBsb2FkLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXVwbG9hZC1idXR0b24tY29udHJvbC5jb21wb25lbnQnXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXBDb250cm9sLCBNQVBfQ09OVFJPTFNfU0VSVklDRSB9IGZyb20gJy4uL21hcC1jb250cm9scy1zZXJ2aWNlJ1xuaW1wb3J0IHsgTWFwVmFsdWUsIE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi4vbWFwLXZhbHVlLW1hbmFnZXIuc2VydmljZSdcblxuaW50ZXJmYWNlIFRoZVNlYW1NYXBDb250ZXh0TWVudUl0ZW0ge1xuICBsYWJlbDogc3RyaW5nXG4gIGFjdGlvbjogKGl0ZW06IFRoZVNlYW1NYXBDb250ZXh0TWVudUl0ZW0pID0+IHZvaWRcbn1cblxuY2xhc3MgVGhlU2VhbUdvb2dsZU1hcHNDb21wb25lbnRCYXNlIHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbn1cblxuY29uc3QgX1RoZVNlYW1Hb29nbGVNYXBzTWl4aW5CYXNlOiBDYW5EaXNhYmxlQ3RvciAmXG4gIHR5cGVvZiBUaGVTZWFtR29vZ2xlTWFwc0NvbXBvbmVudEJhc2UgPVxuICAgIG1peGluRGlzYWJsZWQoVGhlU2VhbUdvb2dsZU1hcHNDb21wb25lbnRCYXNlKVxuXG4vKipcbiAqIEEgd3JhcHBlciBmb3IgZ29vZ2xlbWFwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWdvb2dsZS1tYXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dvb2dsZS1tYXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ29vZ2xlLW1hcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTWFwVmFsdWVNYW5hZ2VyU2VydmljZSxcbiAgICBHb29nbGVNYXBzU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IE1BUF9DT05UUk9MU19TRVJWSUNFLCB1c2VDbGFzczogR29vZ2xlTWFwc0NvbnRyb2xzU2VydmljZSB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaGVTZWFtR29vZ2xlTWFwc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZXhwb3J0QXM6ICdzZWFtR29vZ2xlTWFwcycsXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzQ29tcG9uZW50IGV4dGVuZHMgX1RoZVNlYW1Hb29nbGVNYXBzTWl4aW5CYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ2FuRGlzYWJsZSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV96b29tOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbG9uZ2l0dWRlOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGF0aXR1ZGU6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9maWxlRHJvcEVuYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZmlsZVVwbG9hZENvbnRyb2xFbmFibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Z1bGxzY3JlZW5Db250cm9sRW5hYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZUNlbnRlckNvbnRyb2xFbmFibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21hcFR5cGVDb250cm9sRW5hYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdHJlZXRWaWV3Q29udHJvbEVuYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9lZGl0aW5nRW5hYmxlZDogQm9vbGVhbklucHV0XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICByZWFkb25seSBfZ21BcGlMb2FkZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICByZWFkb25seSBfZmlsZVVwbG9hZENvbnRyb2xEZWY6IE1hcENvbnRyb2wgPSB7XG4gICAgY29tcG9uZW50OiBUaGVTZWFtR29vZ2xlTWFwc1VwbG9hZEJ1dHRvbkNvbnRyb2xDb21wb25lbnQsXG4gICAgZGF0YTogeyBsYWJlbDogJ0ltcG9ydCBHZW8gRmlsZScsIGljb246IGZhRmlsZUltcG9ydCB9LFxuICAgIHBvc2l0aW9uOiA2IC8qIGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbi5MRUZUX0JPVFRPTSAqLyxcbiAgfVxuXG4gIHJlYWRvbmx5IF9yZUNlbnRlckNvbnRyb2xEZWY6IE1hcENvbnRyb2wgPSB7XG4gICAgY29tcG9uZW50OiBUaGVTZWFtR29vZ2xlTWFwc1JlY2VudGVyQnV0dG9uQ29udHJvbENvbXBvbmVudCxcbiAgICBkYXRhOiB7IGxhYmVsOiAnQ2VudGVyIG9uIEZpZWxkJywgaWNvbjogZmFDcm9zc2hhaXJzIH0sXG4gICAgcG9zaXRpb246IDkgLyogZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uLlJJR0hUX0JPVFRPTSAqLyxcbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9IG51bGxcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IE1hcFZhbHVlKSB7XG4gICAgdGhpcy5fbWFwVmFsdWVNYW5hZ2VyLnNldFZhbHVlKHZhbHVlLCBNYXBWYWx1ZVNvdXJjZS5JbnB1dClcbiAgfVxuICBnZXQgdmFsdWUoKTogTWFwVmFsdWUge1xuICAgIHJldHVybiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIudmFsdWVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuX3RhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpIH1cbiAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl90YWJJbmRleCB9XG4gIC8qKlxuICAgKiBTZXQgdGhlIHRhYiBpbmRleCB0byBgLTFgIHRvIGFsbG93IHRoZSByb290IGVsZW1lbnQgb2YgdGhlXG4gICAqIGNvbXBvbmVudCB0byByZWNlaXZlIGBmb2N1c2AgZXZlbnQgZnJvbSBqYXZhc2NyaXB0LCBidXQgbm90IGdldCBmb2N1c2VkIGJ5XG4gICAqIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAqL1xuICBwcml2YXRlIF90YWJJbmRleCA9IC0xXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGZpbGVEcm9wRW5hYmxlZCA9IHRydWVcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZmlsZVVwbG9hZENvbnRyb2xFbmFibGVkID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGZ1bGxzY3JlZW5Db250cm9sRW5hYmxlZCA9IHRydWVcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlQ2VudGVyQ29udHJvbEVuYWJsZWQgPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBtYXBUeXBlQ29udHJvbEVuYWJsZWQgPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzdHJlZXRWaWV3Q29udHJvbEVuYWJsZWQgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gZmFsc2VcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZWRpdGluZ0VuYWJsZWQgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IGZpbGVJbXBvcnRIYW5kbGVyKHZhbHVlOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RmlsZUlucHV0SGFuZGxlcih2YWx1ZSlcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gIGdldCBfYXR0ckRpc2FibGVkKCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCBudWxsIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBnZXQgX2F0dHJUYWJJbmRleCgpIHsgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6ICh0aGlzLnRhYkluZGV4IHx8IDApIH1cblxuICBvbkNoYW5nZTogYW55XG4gIG9uVG91Y2hlZDogYW55XG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgem9vbSA9IDE0XG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGxvbmdpdHVkZSA9IC05OC41NzAyMDlcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgbGF0aXR1ZGUgPSAzNy42MzM4MTRcblxuICBAT3V0cHV0KCkgbWFwUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcblxuICBAVmlld0NoaWxkKCdmZWF0dXJlQ29udGV4dE1lbnUnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogTWVudUNvbXBvbmVudCB9KSBwdWJsaWMgZmVhdHVyZUNvbnRleHRNZW51ITogTWVudUNvbXBvbmVudFxuXG4gIF9vcHRpb25zID0ge1xuICAgIG1hcFR5cGVDb250cm9sOiB0cnVlLFxuICAgIG1hcFR5cGVJZDogJ2h5YnJpZCcsXG4gICAgc3RyZWV0Vmlld0NvbnRyb2w6IGZhbHNlLFxuICAgIGZ1bGxzY3JlZW5Db250cm9sOiB0aGlzLmZ1bGxzY3JlZW5Db250cm9sRW5hYmxlZCxcbiAgfVxuXG4gIHJlYWRvbmx5IF9jb250ZXh0TWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxUaGVTZWFtTWFwQ29udGV4dE1lbnVJdGVtW10+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9nb29nbGVNYXBzOiBHb29nbGVNYXBzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tYXBWYWx1ZU1hbmFnZXI6IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwc0FwaUxvYWRlcjogVGhlU2VhbUdvb2dsZU1hcHNBcGlMb2FkZXIsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpXG5cbiAgICB0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKS5waXBlKFxuICAgICAgdGFwKG9yaWdpbiA9PiB7IHRoaXMuX2ZvY3VzT3JpZ2luID0gb3JpZ2luIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpLFxuICAgICkuc3Vic2NyaWJlKClcblxuICAgIHRoaXMuX21hcFZhbHVlTWFuYWdlci52YWx1ZUNoYW5nZWQucGlwZShcbiAgICAgIHRhcChjaGFuZ2UgPT4ge1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkgeyB0aGlzLm9uQ2hhbmdlKGNoYW5nZS52YWx1ZSkgfVxuICAgICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHsgdGhpcy5vblRvdWNoZWQoKSB9XG4gICAgICB9KSxcbiAgICAgIHRhcChjaGFuZ2VkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2dvb2dsZU1hcHMubWFwUmVhZHkgJiYgY2hhbmdlZC5zb3VyY2UgIT09IE1hcFZhbHVlU291cmNlLkZlYXR1cmVDaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLl9nb29nbGVNYXBzLnNldERhdGEoY2hhbmdlZC52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5fY29udGV4dE1lbnVJdGVtcyQgPSB0aGlzLl9nb29nbGVNYXBzLmVkaXRpbmdFbmFibGVkJC5waXBlKFxuICAgICAgbWFwKGVuYWJsZWQgPT4ge1xuICAgICAgICBjb25zdCBpdGVtczogVGhlU2VhbU1hcENvbnRleHRNZW51SXRlbVtdID0gW11cbiAgICAgICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgICAgICBpdGVtcy5wdXNoKHsgbGFiZWw6ICdEZWxldGUnLCBhY3Rpb246ICgpID0+IHRoaXMuX29uQ2xpY2tEZWxldGVGZWF0dXJlKCkgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICAgIH0pLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RmVhdHVyZUNvbnRleHRNZW51KG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRGZWF0dXJlQ29udGV4dE1lbnUodGhpcy5mZWF0dXJlQ29udGV4dE1lbnUpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRCYXNlTGF0TG5nKHRoaXMubGF0aXR1ZGUsIHRoaXMubG9uZ2l0dWRlKVxuXG4gICAgdGhpcy5fZ21BcGlMb2FkZWQgPSB0aGlzLl9nb29nbGVNYXBzQXBpTG9hZGVyLmxvYWQoKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpLFxuICAgIClcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih3aW5kb3csICdrZXlkb3duJykucGlwZShcbiAgICAgIHRhcCgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgICAgIGlmICh0aGlzLl9nb29nbGVNYXBzLmlzRWRpdGluZ0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICB0aGlzLl9nb29nbGVNYXBzLmRlbGV0ZVNlbGVjdGlvbigpXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnRXNjYXBlJzogdGhpcy5fZ29vZ2xlTWFwcy5zdG9wRHJhd2luZygpOyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgYnJlYWtcbiAgICAgICAgICBjYXNlICdDb250ZXh0TWVudSc6IHRoaXMuX2dvb2dsZU1hcHMub3BlbkNvbnRleHRNZW51KCk7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBicmVha1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSxcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZilcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgbGV0IHVwZGF0ZUJhc2UgPSBmYWxzZVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2xhdGl0dWRlJykpIHtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSBjaGFuZ2VzLmxhdGl0dWRlLmN1cnJlbnRWYWx1ZVxuICAgICAgdXBkYXRlQmFzZSA9IHRydWVcbiAgICB9XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnbG9uZ2l0dWRlJykpIHtcbiAgICAgIHRoaXMubG9uZ2l0dWRlID0gY2hhbmdlcy5sb25naXR1ZGUuY3VycmVudFZhbHVlXG4gICAgICB1cGRhdGVCYXNlID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAodXBkYXRlQmFzZSkge1xuICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRCYXNlTGF0TG5nKHRoaXMubGF0aXR1ZGUsIHRoaXMubG9uZ2l0dWRlKVxuICAgIH1cblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2FsbG93RHJhd2luZ0hvbGVJblBvbHlnb24nKSkge1xuICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uKHRoaXMuYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbilcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdmdWxsc2NyZWVuQ29udHJvbEVuYWJsZWQnKSkge1xuICAgICAgY29uc3QgZnVsbHNjcmVlbkNvbnRyb2wgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlcy5mdWxsc2NyZWVuQ29udHJvbEVuYWJsZWQuY3VycmVudFZhbHVlKVxuICAgICAgaWYgKGZ1bGxzY3JlZW5Db250cm9sICE9PSB0aGlzLl9vcHRpb25zLmZ1bGxzY3JlZW5Db250cm9sKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7XG4gICAgICAgICAgLi4udGhpcy5fb3B0aW9ucyxcbiAgICAgICAgICBmdWxsc2NyZWVuQ29udHJvbCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2VkaXRpbmdFbmFibGVkJykpIHtcbiAgICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RWRpdGluZ0VuYWJsZWQodGhpcy5lZGl0aW5nRW5hYmxlZClcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBNYXBWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmblxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkXG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9nb29nbGVNYXBzLmZpdEJvdW5kcyhib3VuZHMsIHBhZGRpbmcpXG4gIH1cblxuICBwdWJsaWMgZ2V0R2VvSnNvbigpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLl9nb29nbGVNYXBzLmdldEdlb0pzb24oKVxuICB9XG5cbiAgcHVibGljIGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c09yaWdpbiAhPT0gbnVsbCAmJiB0aGlzLl9mb2N1c09yaWdpbiAhPT0gdW5kZWZpbmVkXG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgYnV0dG9uLiAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cygpXG4gIH1cblxuICBwcml2YXRlIF9nZXRIb3N0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gIH1cblxuICBfb25NYXBSZWFkeSh0aGVNYXA6IGdvb2dsZS5tYXBzLk1hcCkge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0TWFwKHRoZU1hcClcbiAgICB0aGlzLl9nb29nbGVNYXBzLnNldERhdGEodGhpcy5fbWFwVmFsdWVNYW5hZ2VyLnZhbHVlKVxuICAgIC8vIE5PVEU6IEFnbU1hcCBoYXMgYSByYWNlIGNvbmRpdGlvbiBwcm9ibGVtIHRoYXQgY2F1c2VzIHRoZSBpbnB1dCBsYXRpdHVkZSxcbiAgICAvLyBsb25naXR1ZGUsIGFuZCB6b29tIHRvIGdldCBpZ25vcmVkLCBiZWZvcmUgZ29vZ2xlbWFwcyBlbWl0c1xuICAgIC8vICdjZW50ZXJfY2hhbmdlZCcuIFRoaXMgc2hvdWxkIGF2b2lkIHRoZSBpc3N1ZSwgdW50aWwgd2Ugc3RvcCB1c2luZyBBZ21NYXBcbiAgICAvLyBvciB1cGdyYWRlIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiB0aGF0IG1heSBub3QgaGF2ZSB0aGUgaXNzdWUgYW55bW9yZS5cbiAgICAvLyBUT0RPOiBDaGVjayBpZiB0aGUgc3dpdGNoIHRvICdAYW5ndWxhci9nb29nbGUtbWFwcycgZml4ZWQgdGhpcyBwcm9ibGVtLlxuICAgIHRoaXMuX2dvb2dsZU1hcHMucmVDZW50ZXJPbkZlYXR1cmVzKClcbiAgICB0aGlzLl9nb29nbGVNYXBzLmdvb2dsZU1hcD8uc2V0Wm9vbSh0aGlzLnpvb20pXG4gIH1cblxuICBfb25DbGlja0RlbGV0ZUZlYXR1cmUoKSB7XG4gICAgdGhpcy5fZ29vZ2xlTWFwcy5kZWxldGVTZWxlY3Rpb24oKVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJfZ21BcGlMb2FkZWQgfCBhc3luY1wiPlxuICA8Z29vZ2xlLW1hcFxuICAgIGhlaWdodD1cIjEwMCVcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgW2NlbnRlcl09XCJ7IGxhdDogbGF0aXR1ZGUsIGxuZzogbG9uZ2l0dWRlIH1cIlxuICAgIFt6b29tXT1cInpvb21cIlxuICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAobWFwSW5pdGlhbGl6ZWQpPVwiX29uTWFwUmVhZHkoJGFueSgkZXZlbnQpKVwiXG4gICAgPlxuICA8L2dvb2dsZS1tYXA+XG48L25nLWNvbnRhaW5lcj5cbjxzZWFtLW1lbnUgI2ZlYXR1cmVDb250ZXh0TWVudT5cbiAgPGJ1dHRvbiBzZWFtTWVudUl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2NvbnRleHRNZW51SXRlbXMkIHwgYXN5bmNcIiAoY2xpY2spPVwiaXRlbS5hY3Rpb24oaXRlbSlcIj57eyBpdGVtLmxhYmVsIH19PC9idXR0b24+XG48L3NlYW0tbWVudT5cbjxzZWFtLW1hcC1maWxlLWRyb3AgKm5nSWY9XCJmaWxlRHJvcEVuYWJsZWRcIj48L3NlYW0tbWFwLWZpbGUtZHJvcD5cblxuPHNlYW0tbWFwLWNvbnRyb2wgKm5nSWY9XCJmaWxlVXBsb2FkQ29udHJvbEVuYWJsZWRcIiBbZGVmXT1cIl9maWxlVXBsb2FkQ29udHJvbERlZlwiPjwvc2VhbS1tYXAtY29udHJvbD5cbjxzZWFtLW1hcC1jb250cm9sICpuZ0lmPVwicmVDZW50ZXJDb250cm9sRW5hYmxlZFwiIFtkZWZdPVwiX3JlQ2VudGVyQ29udHJvbERlZlwiPjwvc2VhbS1tYXAtY29udHJvbD5cbiJdfQ==
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQzlHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUE4QixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUd2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMzRSxPQUFPLEVBQ0wsK0NBQStDLEdBQ2hELE1BQU0sc0ZBQXNGLENBQUE7QUFDN0YsT0FBTyxFQUNMLDZDQUE2QyxHQUM5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UztzQkFBaEMsS0FBSztnQkFDa0IsUUFBUTtzQkFBL0IsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUV3RSxrQkFBa0I7c0JBQWhHLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFDcm9zc2hhaXJzLCBmYUZpbGVJbXBvcnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBDYW5EaXNhYmxlLCBDYW5EaXNhYmxlQ3RvciwgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciwgbWl4aW5EaXNhYmxlZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuXG5pbXBvcnQgeyBUaGVTZWFtR29vZ2xlTWFwc0FwaUxvYWRlciB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXIvZ29vZ2xlLW1hcHMtYXBpLWxvYWRlcidcbmltcG9ydCB7IEdvb2dsZU1hcHNDb250cm9sc1NlcnZpY2UgfSBmcm9tICcuLi9nb29nbGUtbWFwcy1jb250cm9scy5zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgVGhlU2VhbUdvb2dsZU1hcHNSZWNlbnRlckJ1dHRvbkNvbnRyb2xDb21wb25lbnQsXG59IGZyb20gJy4uL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXJlY2VudGVyLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIFRoZVNlYW1Hb29nbGVNYXBzVXBsb2FkQnV0dG9uQ29udHJvbENvbXBvbmVudCxcbn0gZnJvbSAnLi4vZ29vZ2xlLW1hcHMtdXBsb2FkLWJ1dHRvbi1jb250cm9sL2dvb2dsZS1tYXBzLXVwbG9hZC1idXR0b24tY29udHJvbC5jb21wb25lbnQnXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXBDb250cm9sLCBNQVBfQ09OVFJPTFNfU0VSVklDRSB9IGZyb20gJy4uL21hcC1jb250cm9scy1zZXJ2aWNlJ1xuaW1wb3J0IHsgTWFwVmFsdWUsIE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi4vbWFwLXZhbHVlLW1hbmFnZXIuc2VydmljZSdcblxuaW50ZXJmYWNlIFRoZVNlYW1NYXBDb250ZXh0TWVudUl0ZW0ge1xuICBsYWJlbDogc3RyaW5nXG4gIGFjdGlvbjogKGl0ZW06IFRoZVNlYW1NYXBDb250ZXh0TWVudUl0ZW0pID0+IHZvaWRcbn1cblxuY2xhc3MgVGhlU2VhbUdvb2dsZU1hcHNDb21wb25lbnRCYXNlIHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbn1cblxuY29uc3QgX1RoZVNlYW1Hb29nbGVNYXBzTWl4aW5CYXNlOiBDYW5EaXNhYmxlQ3RvciAmXG4gIHR5cGVvZiBUaGVTZWFtR29vZ2xlTWFwc0NvbXBvbmVudEJhc2UgPVxuICAgIG1peGluRGlzYWJsZWQoVGhlU2VhbUdvb2dsZU1hcHNDb21wb25lbnRCYXNlKVxuXG4vKipcbiAqIEEgd3JhcHBlciBmb3IgZ29vZ2xlbWFwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWdvb2dsZS1tYXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dvb2dsZS1tYXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ29vZ2xlLW1hcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTWFwVmFsdWVNYW5hZ2VyU2VydmljZSxcbiAgICBHb29nbGVNYXBzU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IE1BUF9DT05UUk9MU19TRVJWSUNFLCB1c2VDbGFzczogR29vZ2xlTWFwc0NvbnRyb2xzU2VydmljZSB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaGVTZWFtR29vZ2xlTWFwc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZXhwb3J0QXM6ICdzZWFtR29vZ2xlTWFwcycsXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzQ29tcG9uZW50IGV4dGVuZHMgX1RoZVNlYW1Hb29nbGVNYXBzTWl4aW5CYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ2FuRGlzYWJsZSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV96b29tOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbG9uZ2l0dWRlOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGF0aXR1ZGU6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9maWxlRHJvcEVuYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZmlsZVVwbG9hZENvbnRyb2xFbmFibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Z1bGxzY3JlZW5Db250cm9sRW5hYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZUNlbnRlckNvbnRyb2xFbmFibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21hcFR5cGVDb250cm9sRW5hYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdHJlZXRWaWV3Q29udHJvbEVuYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9lZGl0aW5nRW5hYmxlZDogQm9vbGVhbklucHV0XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICByZWFkb25seSBfZ21BcGlMb2FkZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICByZWFkb25seSBfZmlsZVVwbG9hZENvbnRyb2xEZWY6IE1hcENvbnRyb2wgPSB7XG4gICAgY29tcG9uZW50OiBUaGVTZWFtR29vZ2xlTWFwc1VwbG9hZEJ1dHRvbkNvbnRyb2xDb21wb25lbnQsXG4gICAgZGF0YTogeyBsYWJlbDogJ0ltcG9ydCBHZW8gRmlsZScsIGljb246IGZhRmlsZUltcG9ydCB9LFxuICAgIHBvc2l0aW9uOiA2IC8qIGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbi5MRUZUX0JPVFRPTSAqLyxcbiAgfVxuXG4gIHJlYWRvbmx5IF9yZUNlbnRlckNvbnRyb2xEZWY6IE1hcENvbnRyb2wgPSB7XG4gICAgY29tcG9uZW50OiBUaGVTZWFtR29vZ2xlTWFwc1JlY2VudGVyQnV0dG9uQ29udHJvbENvbXBvbmVudCxcbiAgICBkYXRhOiB7IGxhYmVsOiAnQ2VudGVyIG9uIEZpZWxkJywgaWNvbjogZmFDcm9zc2hhaXJzIH0sXG4gICAgcG9zaXRpb246IDkgLyogZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uLlJJR0hUX0JPVFRPTSAqLyxcbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9IG51bGxcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IE1hcFZhbHVlKSB7XG4gICAgdGhpcy5fbWFwVmFsdWVNYW5hZ2VyLnNldFZhbHVlKHZhbHVlLCBNYXBWYWx1ZVNvdXJjZS5JbnB1dClcbiAgfVxuICBnZXQgdmFsdWUoKTogTWFwVmFsdWUge1xuICAgIHJldHVybiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIudmFsdWVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuX3RhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpIH1cbiAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl90YWJJbmRleCB9XG4gIC8qKlxuICAgKiBTZXQgdGhlIHRhYiBpbmRleCB0byBgLTFgIHRvIGFsbG93IHRoZSByb290IGVsZW1lbnQgb2YgdGhlXG4gICAqIGNvbXBvbmVudCB0byByZWNlaXZlIGBmb2N1c2AgZXZlbnQgZnJvbSBqYXZhc2NyaXB0LCBidXQgbm90IGdldCBmb2N1c2VkIGJ5XG4gICAqIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAqL1xuICBwcml2YXRlIF90YWJJbmRleCA9IC0xXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGZpbGVEcm9wRW5hYmxlZCA9IHRydWVcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZmlsZVVwbG9hZENvbnRyb2xFbmFibGVkID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGZ1bGxzY3JlZW5Db250cm9sRW5hYmxlZCA9IHRydWVcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlQ2VudGVyQ29udHJvbEVuYWJsZWQgPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBtYXBUeXBlQ29udHJvbEVuYWJsZWQgPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzdHJlZXRWaWV3Q29udHJvbEVuYWJsZWQgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gZmFsc2VcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZWRpdGluZ0VuYWJsZWQgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IGZpbGVJbXBvcnRIYW5kbGVyKHZhbHVlOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RmlsZUlucHV0SGFuZGxlcih2YWx1ZSlcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gIGdldCBfYXR0ckRpc2FibGVkKCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCBudWxsIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBnZXQgX2F0dHJUYWJJbmRleCgpIHsgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6ICh0aGlzLnRhYkluZGV4IHx8IDApIH1cblxuICBvbkNoYW5nZTogYW55XG4gIG9uVG91Y2hlZDogYW55XG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgem9vbSA9IDE0XG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGxvbmdpdHVkZSA9IC05OC41NzAyMDlcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgbGF0aXR1ZGUgPSAzNy42MzM4MTRcblxuICBAT3V0cHV0KCkgbWFwUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcCB8IHVuZGVmaW5lZD4oKVxuXG4gIEBWaWV3Q2hpbGQoJ2ZlYXR1cmVDb250ZXh0TWVudScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBNZW51Q29tcG9uZW50IH0pIHB1YmxpYyBmZWF0dXJlQ29udGV4dE1lbnUhOiBNZW51Q29tcG9uZW50XG5cbiAgX29wdGlvbnMgPSB7XG4gICAgbWFwVHlwZUNvbnRyb2w6IHRydWUsXG4gICAgbWFwVHlwZUlkOiAnaHlicmlkJyxcbiAgICBzdHJlZXRWaWV3Q29udHJvbDogZmFsc2UsXG4gICAgZnVsbHNjcmVlbkNvbnRyb2w6IHRoaXMuZnVsbHNjcmVlbkNvbnRyb2xFbmFibGVkLFxuICB9XG5cbiAgcmVhZG9ubHkgX2NvbnRleHRNZW51SXRlbXMkOiBPYnNlcnZhYmxlPFRoZVNlYW1NYXBDb250ZXh0TWVudUl0ZW1bXT5cblxuICBwcml2YXRlIGlkbGVMaXN0ZW5lcjogZ29vZ2xlLm1hcHMuTWFwc0V2ZW50TGlzdGVuZXIgfCB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2dvb2dsZU1hcHM6IEdvb2dsZU1hcHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21hcFZhbHVlTWFuYWdlcjogTWFwVmFsdWVNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9nb29nbGVNYXBzQXBpTG9hZGVyOiBUaGVTZWFtR29vZ2xlTWFwc0FwaUxvYWRlcixcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcblxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIHRydWUpLnBpcGUoXG4gICAgICB0YXAob3JpZ2luID0+IHsgdGhpcy5fZm9jdXNPcmlnaW4gPSBvcmlnaW4gfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5fbWFwVmFsdWVNYW5hZ2VyLnZhbHVlQ2hhbmdlZC5waXBlKFxuICAgICAgdGFwKGNoYW5nZSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7IHRoaXMub25DaGFuZ2UoY2hhbmdlLnZhbHVlKSB9XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkgeyB0aGlzLm9uVG91Y2hlZCgpIH1cbiAgICAgIH0pLFxuICAgICAgdGFwKGNoYW5nZWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZ29vZ2xlTWFwcy5tYXBSZWFkeSAmJiBjaGFuZ2VkLnNvdXJjZSAhPT0gTWFwVmFsdWVTb3VyY2UuRmVhdHVyZUNoYW5nZSkge1xuICAgICAgICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RGF0YShjaGFuZ2VkLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSxcbiAgICApLnN1YnNjcmliZSgpXG5cbiAgICB0aGlzLl9jb250ZXh0TWVudUl0ZW1zJCA9IHRoaXMuX2dvb2dsZU1hcHMuZWRpdGluZ0VuYWJsZWQkLnBpcGUoXG4gICAgICBtYXAoZW5hYmxlZCA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBUaGVTZWFtTWFwQ29udGV4dE1lbnVJdGVtW10gPSBbXVxuICAgICAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgICAgIGl0ZW1zLnB1c2goeyBsYWJlbDogJ0RlbGV0ZScsIGFjdGlvbjogKCkgPT4gdGhpcy5fb25DbGlja0RlbGV0ZUZlYXR1cmUoKSB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtc1xuICAgICAgfSksXG4gICAgICB0YXAoaXRlbXMgPT4ge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRGZWF0dXJlQ29udGV4dE1lbnUobnVsbClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9nb29nbGVNYXBzLnNldEZlYXR1cmVDb250ZXh0TWVudSh0aGlzLmZlYXR1cmVDb250ZXh0TWVudSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICB0aGlzLl9nb29nbGVNYXBzLnNldEJhc2VMYXRMbmcodGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpXG5cbiAgICB0aGlzLl9nbUFwaUxvYWRlZCA9IHRoaXMuX2dvb2dsZU1hcHNBcGlMb2FkZXIubG9hZCgpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGZhbHNlKSksXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHdpbmRvdywgJ2tleWRvd24nKS5waXBlKFxuICAgICAgdGFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICAgICAgaWYgKHRoaXMuX2dvb2dsZU1hcHMuaXNFZGl0aW5nRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2dvb2dsZU1hcHMuZGVsZXRlU2VsZWN0aW9uKClcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdFc2NhcGUnOiB0aGlzLl9nb29nbGVNYXBzLnN0b3BEcmF3aW5nKCk7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBicmVha1xuICAgICAgICAgIGNhc2UgJ0NvbnRleHRNZW51JzogdGhpcy5fZ29vZ2xlTWFwcy5vcGVuQ29udGV4dE1lbnUoKTsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpLFxuICAgICkuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKVxuXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBsZXQgdXBkYXRlQmFzZSA9IGZhbHNlXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnbGF0aXR1ZGUnKSkge1xuICAgICAgdGhpcy5sYXRpdHVkZSA9IGNoYW5nZXMubGF0aXR1ZGUuY3VycmVudFZhbHVlXG4gICAgICB1cGRhdGVCYXNlID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdsb25naXR1ZGUnKSkge1xuICAgICAgdGhpcy5sb25naXR1ZGUgPSBjaGFuZ2VzLmxvbmdpdHVkZS5jdXJyZW50VmFsdWVcbiAgICAgIHVwZGF0ZUJhc2UgPSB0cnVlXG4gICAgfVxuICAgIGlmICh1cGRhdGVCYXNlKSB7XG4gICAgICB0aGlzLl9nb29nbGVNYXBzLnNldEJhc2VMYXRMbmcodGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbicpKSB7XG4gICAgICB0aGlzLl9nb29nbGVNYXBzLmFsbG93RHJhd2luZ0hvbGVJblBvbHlnb24odGhpcy5hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uKVxuICAgIH1cblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Z1bGxzY3JlZW5Db250cm9sRW5hYmxlZCcpKSB7XG4gICAgICBjb25zdCBmdWxsc2NyZWVuQ29udHJvbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzLmZ1bGxzY3JlZW5Db250cm9sRW5hYmxlZC5jdXJyZW50VmFsdWUpXG4gICAgICBpZiAoZnVsbHNjcmVlbkNvbnRyb2wgIT09IHRoaXMuX29wdGlvbnMuZnVsbHNjcmVlbkNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHtcbiAgICAgICAgICAuLi50aGlzLl9vcHRpb25zLFxuICAgICAgICAgIGZ1bGxzY3JlZW5Db250cm9sLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnZWRpdGluZ0VuYWJsZWQnKSkge1xuICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRFZGl0aW5nRW5hYmxlZCh0aGlzLmVkaXRpbmdFbmFibGVkKVxuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IE1hcFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuXG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWRcbiAgfVxuXG4gIHB1YmxpYyBmaXRCb3VuZHMoYm91bmRzOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMgfCBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgZ29vZ2xlLm1hcHMuUGFkZGluZyk6IHZvaWQge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIHB1YmxpYyBnZXRHZW9Kc29uKCk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2dvb2dsZU1hcHMuZ2V0R2VvSnNvbigpXG4gIH1cblxuICBwdWJsaWMgaGFzRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzT3JpZ2luICE9PSBudWxsICYmIHRoaXMuX2ZvY3VzT3JpZ2luICE9PSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBidXR0b24uICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmZvY3VzKClcbiAgfVxuXG4gIHByaXZhdGUgX2dldEhvc3RFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIF9vbk1hcFJlYWR5KHRoZU1hcDogZ29vZ2xlLm1hcHMuTWFwKSB7XG4gICAgdGhpcy5fZ29vZ2xlTWFwcy5zZXRNYXAodGhlTWFwKVxuICAgIHRoaXMuX2dvb2dsZU1hcHMuc2V0RGF0YSh0aGlzLl9tYXBWYWx1ZU1hbmFnZXIudmFsdWUpXG4gICAgLy8gTk9URTogQWdtTWFwIGhhcyBhIHJhY2UgY29uZGl0aW9uIHByb2JsZW0gdGhhdCBjYXVzZXMgdGhlIGlucHV0IGxhdGl0dWRlLFxuICAgIC8vIGxvbmdpdHVkZSwgYW5kIHpvb20gdG8gZ2V0IGlnbm9yZWQsIGJlZm9yZSBnb29nbGVtYXBzIGVtaXRzXG4gICAgLy8gJ2NlbnRlcl9jaGFuZ2VkJy4gVGhpcyBzaG91bGQgYXZvaWQgdGhlIGlzc3VlLCB1bnRpbCB3ZSBzdG9wIHVzaW5nIEFnbU1hcFxuICAgIC8vIG9yIHVwZ3JhZGUgdG8gYSBtb3JlIHJlY2VudCB2ZXJzaW9uIHRoYXQgbWF5IG5vdCBoYXZlIHRoZSBpc3N1ZSBhbnltb3JlLlxuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoZSBzd2l0Y2ggdG8gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJyBmaXhlZCB0aGlzIHByb2JsZW0uXG4gICAgdGhpcy5fZ29vZ2xlTWFwcy5yZUNlbnRlck9uRmVhdHVyZXMoKVxuXG4gICAgLy8gTk9URTogdGhlIGlucHV0IHpvb20gbGV2ZWwgd2FzIGdldHRpbmcgcmVzZXQgYWZ0ZXIgdGhpcyBmdW5jdGlvbiByYW4sXG4gICAgLy8gc28gcHV0dGluZyBpbiB0aGlzIGlkbGUgbGlzdGVuZXIgdG8gd2FpdCB1bnRpbCB0aGUgbWFwIGlzIGZ1bGx5IHJlbmRlcmVkXG4gICAgLy8gdG8gc2V0IHRoZSB6b29tLlxuICAgIHRoaXMuaWRsZUxpc3RlbmVyID0gdGhpcy5fZ29vZ2xlTWFwcy5nb29nbGVNYXA/LmFkZExpc3RlbmVyKCdpZGxlJywgKCkgPT4ge1xuICAgICAgdGhpcy5fZ29vZ2xlTWFwcy5nb29nbGVNYXA/LnNldFpvb20odGhpcy56b29tKVxuICAgICAgdGhpcy5pZGxlTGlzdGVuZXI/LnJlbW92ZSgpXG4gICAgfSlcblxuICAgIHRoaXMubWFwUmVhZHkuZW1pdCh0aGlzLl9nb29nbGVNYXBzLmdvb2dsZU1hcClcbiAgfVxuXG4gIF9vbkNsaWNrRGVsZXRlRmVhdHVyZSgpIHtcbiAgICB0aGlzLl9nb29nbGVNYXBzLmRlbGV0ZVNlbGVjdGlvbigpXG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9nbUFwaUxvYWRlZCB8IGFzeW5jXCI+XG4gIDxnb29nbGUtbWFwXG4gICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBbY2VudGVyXT1cInsgbGF0OiBsYXRpdHVkZSwgbG5nOiBsb25naXR1ZGUgfVwiXG4gICAgW3pvb21dPVwiem9vbVwiXG4gICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgIChtYXBJbml0aWFsaXplZCk9XCJfb25NYXBSZWFkeSgkYW55KCRldmVudCkpXCJcbiAgICA+XG4gIDwvZ29vZ2xlLW1hcD5cbjwvbmctY29udGFpbmVyPlxuPHNlYW0tbWVudSAjZmVhdHVyZUNvbnRleHRNZW51PlxuICA8YnV0dG9uIHNlYW1NZW51SXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfY29udGV4dE1lbnVJdGVtcyQgfCBhc3luY1wiIChjbGljayk9XCJpdGVtLmFjdGlvbihpdGVtKVwiPnt7IGl0ZW0ubGFiZWwgfX08L2J1dHRvbj5cbjwvc2VhbS1tZW51PlxuPHNlYW0tbWFwLWZpbGUtZHJvcCAqbmdJZj1cImZpbGVEcm9wRW5hYmxlZFwiPjwvc2VhbS1tYXAtZmlsZS1kcm9wPlxuXG48c2VhbS1tYXAtY29udHJvbCAqbmdJZj1cImZpbGVVcGxvYWRDb250cm9sRW5hYmxlZFwiIFtkZWZdPVwiX2ZpbGVVcGxvYWRDb250cm9sRGVmXCI+PC9zZWFtLW1hcC1jb250cm9sPlxuPHNlYW0tbWFwLWNvbnRyb2wgKm5nSWY9XCJyZUNlbnRlckNvbnRyb2xFbmFibGVkXCIgW2RlZl09XCJfcmVDZW50ZXJDb250cm9sRGVmXCI+PC9zZWFtLW1hcC1jb250cm9sPlxuIl19
@@ -66,6 +66,7 @@ export class TheSeamLazyMapsApiLoader extends TheSeamGoogleMapsApiLoader {
66
66
  libraries: this._config.libraries,
67
67
  region: this._config.region,
68
68
  language: this._config.language || (this._localeId !== 'en-US' ? this._localeId : null),
69
+ loading: this._config.loading || 'async'
69
70
  };
70
71
  const params = Object.keys(queryParams)
71
72
  // Remove undefined or null params.
@@ -100,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
100
101
  type: Inject,
101
102
  args: [THESEAM_LAZY_MAPS_API_CONFIG]
102
103
  }] }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1nb29nbGUtbWFwcy1hcGktbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXIvbGF6eS1nb29nbGUtbWFwcy1hcGktbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZGLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFBOztBQVNyRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBaUMsOEJBQThCLENBQUMsQ0FBQTtBQTREOUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDBCQUEwQjtJQU10RSxZQUNzQyxTQUFpQixFQUNNLE1BQXVDO1FBRWxHLEtBQUssRUFBRSxDQUFBO1FBSDZCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDTSxXQUFNLEdBQU4sTUFBTSxDQUFpQztRQUxqRixlQUFVLEdBQVcseUJBQXlCLENBQUE7UUFDOUMsaUJBQVksR0FBVywrQkFBK0IsQ0FBQTtRQU92RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDdkMsMENBQTBDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQ3JCO1FBRUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFD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QUksV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUMvRSx1QkFBdUI7YUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2xELENBQUMsQ0FBQztZQUNGLDBDQUEwQzthQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUNqQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBb0MsQ0FBQTtRQUM1RyxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsQ0FBQyxLQUFxQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3RDLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVaLE9BQU8sR0FBRyxXQUFXLElBQUksTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQzs7cUhBNUZVLHdCQUF3QixrQkFPekIsU0FBUyxhQUNHLDRCQUE0Qjt5SEFSdkMsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7OzBCQVFOLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IFRoZVNlYW1Hb29nbGVNYXBzQXBpTG9hZGVyIH0gZnJvbSAnLi9nb29nbGUtbWFwcy1hcGktbG9hZGVyJ1xuXG5pbnRlcmZhY2UgR29vZ2xlTWFwc1dpbmRvdyBleHRlbmRzIFdpbmRvdyB7XG4gIGdtX2F1dGhGYWlsdXJlPzogKCkgPT4gdm9pZFxuICBnb29nbGU/OiB0eXBlb2YgZ29vZ2xlXG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBHb29nbGVNYXBzV2luZG93XG5cbi8qKlxuICogVG9rZW4gZm9yIHRoZSBjb25maWcgb2YgdGhlIExhenlNYXBzQVBJTG9hZGVyLiBQbGVhc2UgcHJvdmlkZSBhbiBvYmplY3Qgb2ZcbiAqIHR5cGUge0BsaW5rIFRoZVNlYW1MYXp5TWFwc0FwaUxvYWRlcn0uXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVTRUFNX0xBWllfTUFQU19BUElfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFRoZVNlYW1MYXp5TWFwc0FwaUxvYWRlckNvbmZpZz4oJ1RIRVNFQU1fTEFaWV9NQVBTX0FQSV9DT05GSUcnKVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgVGhlU2VhbUxhenlNYXBzQXBpTG9hZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtTGF6eU1hcHNBcGlMb2FkZXJDb25maWcge1xuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSBLZXkgKHNlZTpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvZ2V0LWFwaS1rZXkpXG4gICAqL1xuICBhcGlLZXk/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIGNsaWVudCBJRCAoZm9yIHByZW1pdW0gcGxhbnMpLiBXaGVuIHlvdSBoYXZlIGEgR29vZ2xlIE1hcHNcbiAgICogQVBJcyBQcmVtaXVtIFBsYW4gbGljZW5zZSwgeW91IG11c3QgYXV0aGVudGljYXRlIHlvdXIgYXBwbGljYXRpb24gd2l0aFxuICAgKiBlaXRoZXIgYW4gQVBJIGtleSBvciBhIGNsaWVudCBJRC4gVGhlIEdvb2dsZSBNYXBzIEFQSSB3aWxsIGZhaWwgdG8gbG9hZCBpZlxuICAgKiBib3RoIGEgY2xpZW50IElEIGFuZCBhbiBBUEkga2V5IGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGNsaWVudElkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBjaGFubmVsIG5hbWUgKGZvciBwcmVtaXVtIHBsYW5zKS4gQSBjaGFubmVsIHBhcmFtZXRlciBpcyBhblxuICAgKiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgeW91IHRvIHRyYWNrIHVzYWdlIHVuZGVyIHlvdXIgY2xpZW50IElEIGJ5XG4gICAqIGFzc2lnbmluZyBhIGRpc3RpbmN0IGNoYW5uZWwgdG8gZWFjaCBvZiB5b3VyIGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIGNoYW5uZWw/OiBzdHJpbmdcblxuICAvKipcbiAgICogR29vZ2xlIE1hcHMgQVBJIHZlcnNpb24uXG4gICAqL1xuICBhcGlWZXJzaW9uPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFVybCB1c2VkIGZvciB0aGUgYDxzY3JpcHQ+YCB0YWcuXG4gICAqL1xuICB1cmw/OiBzdHJpbmdcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGljaCBHb29nbGUgTWFwcyBsaWJyYXJpZXMgc2hvdWxkIGdldCBsb2FkZWQuXG4gICAqL1xuICBsaWJyYXJpZXM/OiBzdHJpbmdbXVxuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiaWFzIGZvciB0aGUgbWFwIGJlaGF2aW9yIGlzIFVTLiBJZiB5b3Ugd2lzaCB0byBhbHRlciB5b3VyXG4gICAqIGFwcGxpY2F0aW9uIHRvIHNlcnZlIGRpZmZlcmVudCBtYXAgdGlsZXMgb3IgYmlhcyB0aGUgYXBwbGljYXRpb24sIHlvdSBjYW5cbiAgICogb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIChVUykgYnkgZGVmaW5pbmcgYSBgcmVnaW9uYC4gU2VlXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Jhc2ljcyNSZWdpb25cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIHVzZXMgdGhlIGJyb3dzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Ugd2hlbiBkaXNwbGF5aW5nXG4gICAqIHRleHR1YWwgaW5mb3JtYXRpb24uIElmIHlvdSB3aXNoIHRvIG92ZXJ3cml0ZSB0aGlzIGJlaGF2aW9yIGFuZCBmb3JjZSB0aGVcbiAgICogQVBJIHRvIHVzZSBhIGdpdmVuIGxhbmd1YWdlLCB5b3UgY2FuIHVzZSB0aGlzIHNldHRpbmcuIFNlZVxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9iYXNpY3MjTGFuZ3VhZ2VcbiAgICovXG4gIGxhbmd1YWdlPzogc3RyaW5nXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVTZWFtTGF6eU1hcHNBcGlMb2FkZXIgZXh0ZW5kcyBUaGVTZWFtR29vZ2xlTWFwc0FwaUxvYWRlciB7XG4gIHByb3RlY3RlZCBfc2NyaXB0TG9hZGluZ1Byb21pc2U/OiBQcm9taXNlPHZvaWQ+XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uZmlnOiBUaGVTZWFtTGF6eU1hcHNBcGlMb2FkZXJDb25maWdcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9TQ1JJUFRfSUQ6IHN0cmluZyA9ICdzZWFtR29vZ2xlTWFwc0FwaVNjcmlwdCdcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGxiYWNrTmFtZTogc3RyaW5nID0gYF9fc2VhbUxhenlHb29nbGVNYXBzQXBpTG9hZGVyYFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGVJZDogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9MQVpZX01BUFNfQVBJX0NPTkZJRykgcmVhZG9ubHkgY29uZmlnPzogVGhlU2VhbUxhenlNYXBzQXBpTG9hZGVyQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnIHx8IHt9XG4gIH1cblxuICBwdWJsaWMgbG9hZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMpIHtcbiAgICAgIC8vIEdvb2dsZSBtYXBzIGFscmVhZHkgbG9hZGVkIG9uIHRoZSBwYWdlLlxuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2UpIHtcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBITVIgc2l0dWF0aW9ucyBvciBTdGFja2JsaXR6LmlvIGVkaXRvcnMuXG4gICAgY29uc3Qgc2NyaXB0T25QYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5fU0NSSVBUX0lEKVxuICAgIGlmIChzY3JpcHRPblBhZ2UpIHtcbiAgICAgIHRoaXMuX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdE9uUGFnZSlcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuX2dldFNjcmlwdExvYWRpbmdQcm9taXNlKCkpXG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnXG4gICAgc2NyaXB0LmFzeW5jID0gdHJ1ZVxuICAgIHNjcmlwdC5kZWZlciA9IHRydWVcbiAgICBzY3JpcHQuaWQgPSB0aGlzLl9TQ1JJUFRfSURcbiAgICBzY3JpcHQuc3JjID0gdGhpcy5fZ2V0U2NyaXB0U3JjKHRoaXMuY2FsbGJhY2tOYW1lKVxuICAgIHRoaXMuX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdClcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdClcbiAgICByZXR1cm4gZnJvbSh0aGlzLl9nZXRTY3JpcHRMb2FkaW5nUHJvbWlzZSgpKVxuICB9XG5cbiAgcHJpdmF0ZSBfYXNzaWduU2NyaXB0TG9hZGluZ1Byb21pc2Uoc2NyaXB0RWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHdpbiA9IHdpbmRvdyBhcyBhbnlcbiAgICAgIHdpblt0aGlzLmNhbGxiYWNrTmFtZV0gPSAoKSA9PiB7IHJlc29sdmUoKSB9XG5cbiAgICAgIHNjcmlwdEVsZW0ub25lcnJvciA9IChlcnJvcjogRXZlbnQgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9nZXRTY3JpcHRMb2FkaW5nUHJvbWlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlKSB7XG4gICAgICB0aHJvdyBFcnJvcihgX3NjcmlwdExvYWRpbmdQcm9taXNlIGhhcyBub3QgYmVlbiBhc3NpZ25lZC5gKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2VcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ2V0U2NyaXB0U3JjKGNhbGxiYWNrTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3N0QW5kUGF0aDogc3RyaW5nID0gdGhpcy5fY29uZmlnLnVybCB8fCAnaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzJ1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCB9ID0ge1xuICAgICAgdjogdGhpcy5fY29uZmlnLmFwaVZlcnNpb24gfHwgJ3F1YXJ0ZXJseScsXG4gICAgICBjYWxsYmFjazogY2FsbGJhY2tOYW1lLFxuICAgICAga2V5OiB0aGlzLl9jb25maWcuYXBpS2V5LFxuICAgICAgY2xpZW50OiB0aGlzLl9jb25maWcuY2xpZW50SWQsXG4gICAgICBjaGFubmVsOiB0aGlzLl9jb25maWcuY2hhbm5lbCxcbiAgICAgIGxpYnJhcmllczogdGhpcy5fY29uZmlnLmxpYnJhcmllcyxcbiAgICAgIHJlZ2lvbjogdGhpcy5fY29uZmlnLnJlZ2lvbixcbiAgICAgIGxhbmd1YWdlOiB0aGlzLl9jb25maWcubGFuZ3VhZ2UgfHwgKHRoaXMuX2xvY2FsZUlkICE9PSAnZW4tVVMnID8gdGhpcy5fbG9jYWxlSWQgOiBudWxsKSxcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IHN0cmluZyA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKVxuICAgICAgLy8gUmVtb3ZlIHVuZGVmaW5lZCBvciBudWxsIHBhcmFtcy5cbiAgICAgIC5maWx0ZXIoKGs6IHN0cmluZykgPT4gcXVlcnlQYXJhbXNba10gIT09IHVuZGVmaW5lZCAmJiBxdWVyeVBhcmFtc1trXSAhPT0gbnVsbClcbiAgICAgIC8vIFJlbW92ZSBlbXB0eSBhcnJheXMuXG4gICAgICAuZmlsdGVyKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW0gPSBxdWVyeVBhcmFtc1trXVxuICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkocGFyYW0pIHx8IHBhcmFtLmxlbmd0aCA+IDBcbiAgICAgIH0pXG4gICAgICAvLyBKb2luIGFycmF5cyBhcyBjb21tYSBzZXBlcmF0ZWQgc3RyaW5ncy5cbiAgICAgIC5tYXAoKGs6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbSA9IHF1ZXJ5UGFyYW1zW2tdXG4gICAgICAgIHJldHVybiB7IGtleTogaywgdmFsdWU6IEFycmF5LmlzQXJyYXkocGFyYW0pID8gcGFyYW0uam9pbignLCcpIDogcGFyYW0gfSBhcyB7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1cbiAgICAgIH0pXG4gICAgICAubWFwKChlbnRyeTogeyBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBgJHtlbnRyeS5rZXl9PSR7ZW50cnkudmFsdWV9YFxuICAgICAgfSlcbiAgICAgIC5qb2luKCcmJylcblxuICAgIHJldHVybiBgJHtob3N0QW5kUGF0aH0/JHtwYXJhbXN9YFxuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1nb29nbGUtbWFwcy1hcGktbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLWFwaS1sb2FkZXIvbGF6eS1nb29nbGUtbWFwcy1hcGktbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZGLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFBOztBQVNyRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBaUMsOEJBQThCLENBQUMsQ0FBQTtBQThEOUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDBCQUEwQjtJQU10RSxZQUNzQyxTQUFpQixFQUNNLE1BQXVDO1FBRWxHLEtBQUssRUFBRSxDQUFBO1FBSDZCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDTSxXQUFNLEdBQU4sTUFBTSxDQUFpQztRQUxqRixlQUFVLEdBQVcseUJBQXlCLENBQUE7UUFDOUMsaUJBQVksR0FBVywrQkFBK0IsQ0FBQTtRQU92RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDdkMsMENBQTBDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQ3JCO1FBRUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFD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b3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IFRoZVNlYW1Hb29nbGVNYXBzQXBpTG9hZGVyIH0gZnJvbSAnLi9nb29nbGUtbWFwcy1hcGktbG9hZGVyJ1xuXG5pbnRlcmZhY2UgR29vZ2xlTWFwc1dpbmRvdyBleHRlbmRzIFdpbmRvdyB7XG4gIGdtX2F1dGhGYWlsdXJlPzogKCkgPT4gdm9pZFxuICBnb29nbGU/OiB0eXBlb2YgZ29vZ2xlXG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBHb29nbGVNYXBzV2luZG93XG5cbi8qKlxuICogVG9rZW4gZm9yIHRoZSBjb25maWcgb2YgdGhlIExhenlNYXBzQVBJTG9hZGVyLiBQbGVhc2UgcHJvdmlkZSBhbiBvYmplY3Qgb2ZcbiAqIHR5cGUge0BsaW5rIFRoZVNlYW1MYXp5TWFwc0FwaUxvYWRlcn0uXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVTRUFNX0xBWllfTUFQU19BUElfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFRoZVNlYW1MYXp5TWFwc0FwaUxvYWRlckNvbmZpZz4oJ1RIRVNFQU1fTEFaWV9NQVBTX0FQSV9DT05GSUcnKVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgVGhlU2VhbUxhenlNYXBzQXBpTG9hZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtTGF6eU1hcHNBcGlMb2FkZXJDb25maWcge1xuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSBLZXkgKHNlZTpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvZ2V0LWFwaS1rZXkpXG4gICAqL1xuICBhcGlLZXk/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIGNsaWVudCBJRCAoZm9yIHByZW1pdW0gcGxhbnMpLiBXaGVuIHlvdSBoYXZlIGEgR29vZ2xlIE1hcHNcbiAgICogQVBJcyBQcmVtaXVtIFBsYW4gbGljZW5zZSwgeW91IG11c3QgYXV0aGVudGljYXRlIHlvdXIgYXBwbGljYXRpb24gd2l0aFxuICAgKiBlaXRoZXIgYW4gQVBJIGtleSBvciBhIGNsaWVudCBJRC4gVGhlIEdvb2dsZSBNYXBzIEFQSSB3aWxsIGZhaWwgdG8gbG9hZCBpZlxuICAgKiBib3RoIGEgY2xpZW50IElEIGFuZCBhbiBBUEkga2V5IGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGNsaWVudElkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBjaGFubmVsIG5hbWUgKGZvciBwcmVtaXVtIHBsYW5zKS4gQSBjaGFubmVsIHBhcmFtZXRlciBpcyBhblxuICAgKiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgeW91IHRvIHRyYWNrIHVzYWdlIHVuZGVyIHlvdXIgY2xpZW50IElEIGJ5XG4gICAqIGFzc2lnbmluZyBhIGRpc3RpbmN0IGNoYW5uZWwgdG8gZWFjaCBvZiB5b3VyIGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIGNoYW5uZWw/OiBzdHJpbmdcblxuICAvKipcbiAgICogR29vZ2xlIE1hcHMgQVBJIHZlcnNpb24uXG4gICAqL1xuICBhcGlWZXJzaW9uPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFVybCB1c2VkIGZvciB0aGUgYDxzY3JpcHQ+YCB0YWcuXG4gICAqL1xuICB1cmw/OiBzdHJpbmdcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGljaCBHb29nbGUgTWFwcyBsaWJyYXJpZXMgc2hvdWxkIGdldCBsb2FkZWQuXG4gICAqL1xuICBsaWJyYXJpZXM/OiBzdHJpbmdbXVxuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiaWFzIGZvciB0aGUgbWFwIGJlaGF2aW9yIGlzIFVTLiBJZiB5b3Ugd2lzaCB0byBhbHRlciB5b3VyXG4gICAqIGFwcGxpY2F0aW9uIHRvIHNlcnZlIGRpZmZlcmVudCBtYXAgdGlsZXMgb3IgYmlhcyB0aGUgYXBwbGljYXRpb24sIHlvdSBjYW5cbiAgICogb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIChVUykgYnkgZGVmaW5pbmcgYSBgcmVnaW9uYC4gU2VlXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Jhc2ljcyNSZWdpb25cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIHVzZXMgdGhlIGJyb3dzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Ugd2hlbiBkaXNwbGF5aW5nXG4gICAqIHRleHR1YWwgaW5mb3JtYXRpb24uIElmIHlvdSB3aXNoIHRvIG92ZXJ3cml0ZSB0aGlzIGJlaGF2aW9yIGFuZCBmb3JjZSB0aGVcbiAgICogQVBJIHRvIHVzZSBhIGdpdmVuIGxhbmd1YWdlLCB5b3UgY2FuIHVzZSB0aGlzIHNldHRpbmcuIFNlZVxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9iYXNpY3MjTGFuZ3VhZ2VcbiAgICovXG4gIGxhbmd1YWdlPzogc3RyaW5nXG5cbiAgbG9hZGluZz86IHN0cmluZ1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlU2VhbUxhenlNYXBzQXBpTG9hZGVyIGV4dGVuZHMgVGhlU2VhbUdvb2dsZU1hcHNBcGlMb2FkZXIge1xuICBwcm90ZWN0ZWQgX3NjcmlwdExvYWRpbmdQcm9taXNlPzogUHJvbWlzZTx2b2lkPlxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbmZpZzogVGhlU2VhbUxhenlNYXBzQXBpTG9hZGVyQ29uZmlnXG4gIHByb3RlY3RlZCByZWFkb25seSBfU0NSSVBUX0lEOiBzdHJpbmcgPSAnc2VhbUdvb2dsZU1hcHNBcGlTY3JpcHQnXG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxsYmFja05hbWU6IHN0cmluZyA9IGBfX3NlYW1MYXp5R29vZ2xlTWFwc0FwaUxvYWRlcmBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxlSWQ6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fTEFaWV9NQVBTX0FQSV9DT05GSUcpIHJlYWRvbmx5IGNvbmZpZz86IFRoZVNlYW1MYXp5TWFwc0FwaUxvYWRlckNvbmZpZyxcbiAgKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZyB8fCB7fVxuICB9XG5cbiAgcHVibGljIGxvYWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKHdpbmRvdy5nb29nbGUgJiYgd2luZG93Lmdvb2dsZS5tYXBzKSB7XG4gICAgICAvLyBHb29nbGUgbWFwcyBhbHJlYWR5IGxvYWRlZCBvbiB0aGUgcGFnZS5cbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlKSB7XG4gICAgICByZXR1cm4gZnJvbSh0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZSlcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaW4gSE1SIHNpdHVhdGlvbnMgb3IgU3RhY2tibGl0ei5pbyBlZGl0b3JzLlxuICAgIGNvbnN0IHNjcmlwdE9uUGFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX1NDUklQVF9JRClcbiAgICBpZiAoc2NyaXB0T25QYWdlKSB7XG4gICAgICB0aGlzLl9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHRPblBhZ2UpXG4gICAgICByZXR1cm4gZnJvbSh0aGlzLl9nZXRTY3JpcHRMb2FkaW5nUHJvbWlzZSgpKVxuICAgIH1cblxuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpXG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0J1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWVcbiAgICBzY3JpcHQuZGVmZXIgPSB0cnVlXG4gICAgc2NyaXB0LmlkID0gdGhpcy5fU0NSSVBUX0lEXG4gICAgc2NyaXB0LnNyYyA9IHRoaXMuX2dldFNjcmlwdFNyYyh0aGlzLmNhbGxiYWNrTmFtZSlcbiAgICB0aGlzLl9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHQpXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpXG4gICAgcmV0dXJuIGZyb20odGhpcy5fZ2V0U2NyaXB0TG9hZGluZ1Byb21pc2UoKSlcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdEVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCB3aW4gPSB3aW5kb3cgYXMgYW55XG4gICAgICB3aW5bdGhpcy5jYWxsYmFja05hbWVdID0gKCkgPT4geyByZXNvbHZlKCkgfVxuXG4gICAgICBzY3JpcHRFbGVtLm9uZXJyb3IgPSAoZXJyb3I6IEV2ZW50IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2NyaXB0TG9hZGluZ1Byb21pc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZSkge1xuICAgICAgdGhyb3cgRXJyb3IoYF9zY3JpcHRMb2FkaW5nUHJvbWlzZSBoYXMgbm90IGJlZW4gYXNzaWduZWQuYClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlXG4gIH1cblxuICBwcm90ZWN0ZWQgX2dldFNjcmlwdFNyYyhjYWxsYmFja05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgaG9zdEFuZFBhdGg6IHN0cmluZyA9IHRoaXMuX2NvbmZpZy51cmwgfHwgJ2h0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcydcbiAgICBjb25zdCBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwgfSA9IHtcbiAgICAgIHY6IHRoaXMuX2NvbmZpZy5hcGlWZXJzaW9uIHx8ICdxdWFydGVybHknLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrTmFtZSxcbiAgICAgIGtleTogdGhpcy5fY29uZmlnLmFwaUtleSxcbiAgICAgIGNsaWVudDogdGhpcy5fY29uZmlnLmNsaWVudElkLFxuICAgICAgY2hhbm5lbDogdGhpcy5fY29uZmlnLmNoYW5uZWwsXG4gICAgICBsaWJyYXJpZXM6IHRoaXMuX2NvbmZpZy5saWJyYXJpZXMsXG4gICAgICByZWdpb246IHRoaXMuX2NvbmZpZy5yZWdpb24sXG4gICAgICBsYW5ndWFnZTogdGhpcy5fY29uZmlnLmxhbmd1YWdlIHx8ICh0aGlzLl9sb2NhbGVJZCAhPT0gJ2VuLVVTJyA/IHRoaXMuX2xvY2FsZUlkIDogbnVsbCksXG4gICAgICBsb2FkaW5nOiB0aGlzLl9jb25maWcubG9hZGluZyB8fCAnYXN5bmMnXG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zOiBzdHJpbmcgPSBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcylcbiAgICAgIC8vIFJlbW92ZSB1bmRlZmluZWQgb3IgbnVsbCBwYXJhbXMuXG4gICAgICAuZmlsdGVyKChrOiBzdHJpbmcpID0+IHF1ZXJ5UGFyYW1zW2tdICE9PSB1bmRlZmluZWQgJiYgcXVlcnlQYXJhbXNba10gIT09IG51bGwpXG4gICAgICAvLyBSZW1vdmUgZW1wdHkgYXJyYXlzLlxuICAgICAgLmZpbHRlcigoazogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtID0gcXVlcnlQYXJhbXNba11cbiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHBhcmFtKSB8fCBwYXJhbS5sZW5ndGggPiAwXG4gICAgICB9KVxuICAgICAgLy8gSm9pbiBhcnJheXMgYXMgY29tbWEgc2VwZXJhdGVkIHN0cmluZ3MuXG4gICAgICAubWFwKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW0gPSBxdWVyeVBhcmFtc1trXVxuICAgICAgICByZXR1cm4geyBrZXk6IGssIHZhbHVlOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IHBhcmFtLmpvaW4oJywnKSA6IHBhcmFtIH0gYXMgeyBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9XG4gICAgICB9KVxuICAgICAgLm1hcCgoZW50cnk6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7ZW50cnkua2V5fT0ke2VudHJ5LnZhbHVlfWBcbiAgICAgIH0pXG4gICAgICAuam9pbignJicpXG5cbiAgICByZXR1cm4gYCR7aG9zdEFuZFBhdGh9PyR7cGFyYW1zfWBcbiAgfVxufVxuIl19
@@ -1,3 +1,7 @@
1
+ export * from './testing/menu-footer.harness';
2
+ export * from './testing/menu-header.harness';
3
+ export * from './testing/menu-item.harness';
4
+ export * from './testing/menu.harness';
1
5
  export * from './menu-animations';
2
6
  export * from './menu-divider.component';
3
7
  export * from './menu-item.component';
@@ -9,4 +13,4 @@ export * from './menu.module';
9
13
  export * from './menu-header/menu-header.component';
10
14
  export * from './menu-footer/menu-footer.component';
11
15
  export * from './menu-footer-action/menu-footer-action.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxlQUFlLENBQUE7QUFFN0IsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsbURBQW1ELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lbnUtYW5pbWF0aW9ucydcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1kaXZpZGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1wYW5lbC10b2tlbidcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1wYW5lbCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS10b2dnbGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbWVudS1oZWFkZXIvbWVudS1oZWFkZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWZvb3Rlci9tZW51LWZvb3Rlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL21lbnUtZm9vdGVyLWFjdGlvbi9tZW51LWZvb3Rlci1hY3Rpb24uY29tcG9uZW50J1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQTtBQUV0QyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGVBQWUsQ0FBQTtBQUU3QixjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxtREFBbUQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVzdGluZy9tZW51LWZvb3Rlci5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0aW5nL21lbnUtaGVhZGVyLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL3Rlc3RpbmcvbWVudS1pdGVtLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL3Rlc3RpbmcvbWVudS5oYXJuZXNzJ1xuXG5leHBvcnQgKiBmcm9tICcuL21lbnUtYW5pbWF0aW9ucydcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1kaXZpZGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1wYW5lbC10b2tlbidcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1wYW5lbCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS10b2dnbGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWVudS5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vbWVudS1oZWFkZXIvbWVudS1oZWFkZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LWZvb3Rlci9tZW51LWZvb3Rlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL21lbnUtZm9vdGVyLWFjdGlvbi9tZW51LWZvb3Rlci1hY3Rpb24uY29tcG9uZW50J1xuIl19
@@ -0,0 +1,28 @@
1
+ import { ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { animatingWait } from './utils';
3
+ export class TheSeamMenuFooterHarness extends ContentContainerComponentHarness {
4
+ /**
5
+ * Gets a `HarnessPredicate` that can be used to search for a menu item with specific attributes.
6
+ * @param options Options for filtering which menu item instances are considered a match.
7
+ * @return a `HarnessPredicate` configured with the given options.
8
+ */
9
+ static with(options = {}) {
10
+ return new HarnessPredicate(this, options)
11
+ .addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text));
12
+ }
13
+ /** Gets the text of the menu item. */
14
+ async getText() {
15
+ return (await this.host()).text();
16
+ }
17
+ /** Clicks the menu item. */
18
+ async click() {
19
+ return (await this.host()).click().then(() => animatingWait());
20
+ }
21
+ /** Hovers the menu item. */
22
+ async hover() {
23
+ return (await this.host()).hover().then(() => animatingWait());
24
+ }
25
+ }
26
+ /** The selector for the host element of a `MenuFooterComponent` instance. */
27
+ TheSeamMenuFooterHarness.hostSelector = 'seam-menu-footer';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1mb290ZXIuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L3Rlc3RpbmcvbWVudS1mb290ZXIuaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1ELGdDQUFnQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFMUksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQVF2QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0NBQXdDO0lBSXBGOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUVULFVBQTJDLEVBQUU7UUFFN0MsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdkMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ2pELGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQ3hELENBQUE7SUFDTCxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLEtBQUssQ0FBQyxPQUFPO1FBQ1gsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixLQUFLLENBQUMsS0FBSztRQUNULE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsS0FBSyxDQUFDLEtBQUs7UUFDVCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDOztBQS9CRCw2RUFBNkU7QUFDdEUscUNBQVksR0FBRyxrQkFBa0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycywgQ29tcG9uZW50SGFybmVzc0NvbnN0cnVjdG9yLCBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuXG5pbXBvcnQgeyBhbmltYXRpbmdXYWl0IH0gZnJvbSAnLi91dGlscydcblxuLyoqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgVGhlU2VhbU1lbnVGb290ZXJIYXJuZXNzYCBpbnN0YW5jZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1NZW51Rm9vdGVySGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge1xuICAvKiogT25seSBmaW5kIGluc3RhbmNlcyB3aG9zZSB0ZXh0IG1hdGNoZXMgdGhlIGdpdmVuIHZhbHVlLiAqL1xuICB0ZXh0Pzogc3RyaW5nIHwgUmVnRXhwO1xufVxuXG5leHBvcnQgY2xhc3MgVGhlU2VhbU1lbnVGb290ZXJIYXJuZXNzIGV4dGVuZHMgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3M8c3RyaW5nPiB7XG4gIC8qKiBUaGUgc2VsZWN0b3IgZm9yIHRoZSBob3N0IGVsZW1lbnQgb2YgYSBgTWVudUZvb3RlckNvbXBvbmVudGAgaW5zdGFuY2UuICovXG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2VhbS1tZW51LWZvb3RlcidcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYSBtZW51IGl0ZW0gd2l0aCBzcGVjaWZpYyBhdHRyaWJ1dGVzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBmaWx0ZXJpbmcgd2hpY2ggbWVudSBpdGVtIGluc3RhbmNlcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoLlxuICAgKiBAcmV0dXJuIGEgYEhhcm5lc3NQcmVkaWNhdGVgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAgICovXG4gIHN0YXRpYyB3aXRoPFQgZXh0ZW5kcyBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3M+KFxuICAgIHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcbiAgICBvcHRpb25zOiBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3NGaWx0ZXJzID0ge30sXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8VD4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZSh0aGlzLCBvcHRpb25zKVxuICAgICAgLmFkZE9wdGlvbigndGV4dCcsIG9wdGlvbnMudGV4dCwgKGhhcm5lc3MsIHRleHQpID0+XG4gICAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFRleHQoKSwgdGV4dCksXG4gICAgICApXG4gIH1cblxuICAvKiogR2V0cyB0aGUgdGV4dCBvZiB0aGUgbWVudSBpdGVtLiAqL1xuICBhc3luYyBnZXRUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkudGV4dCgpXG4gIH1cblxuICAvKiogQ2xpY2tzIHRoZSBtZW51IGl0ZW0uICovXG4gIGFzeW5jIGNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmNsaWNrKCkudGhlbigoKSA9PiBhbmltYXRpbmdXYWl0KCkpXG4gIH1cblxuICAvKiogSG92ZXJzIHRoZSBtZW51IGl0ZW0uICovXG4gIGFzeW5jIGhvdmVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmhvdmVyKCkudGhlbigoKSA9PiBhbmltYXRpbmdXYWl0KCkpXG4gIH1cblxufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { animatingWait } from './utils';
3
+ export class TheSeamMenuHeaderHarness extends ContentContainerComponentHarness {
4
+ /**
5
+ * Gets a `HarnessPredicate` that can be used to search for a menu item with specific attributes.
6
+ * @param options Options for filtering which menu item instances are considered a match.
7
+ * @return a `HarnessPredicate` configured with the given options.
8
+ */
9
+ static with(options = {}) {
10
+ return new HarnessPredicate(this, options);
11
+ }
12
+ /** Clicks the menu item. */
13
+ async click() {
14
+ return (await this.host()).click().then(() => animatingWait());
15
+ }
16
+ /** Hovers the menu item. */
17
+ async hover() {
18
+ return (await this.host()).hover().then(() => animatingWait());
19
+ }
20
+ }
21
+ /** The selector for the host element of a `MenuHeaderComponent` instance. */
22
+ TheSeamMenuHeaderHarness.hostSelector = 'seam-menu-header';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1oZWFkZXIuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tZW51L3Rlc3RpbmcvbWVudS1oZWFkZXIuaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1ELGdDQUFnQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFMUksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUt2QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0NBQXdDO0lBSXBGOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUVULFVBQTJDLEVBQUU7UUFFN0MsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixLQUFLLENBQUMsS0FBSztRQUNULE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7O0FBdkJELDZFQUE2RTtBQUN0RSxxQ0FBWSxHQUFHLGtCQUFrQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUhhcm5lc3NGaWx0ZXJzLCBDb21wb25lbnRIYXJuZXNzQ29uc3RydWN0b3IsIENvbnRlbnRDb250YWluZXJDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnXG5cbmltcG9ydCB7IGFuaW1hdGluZ1dhaXQgfSBmcm9tICcuL3V0aWxzJ1xuXG4vKiogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIGBUaGVTZWFtTWVudUhlYWRlckhhcm5lc3NgIGluc3RhbmNlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbU1lbnVIZWFkZXJIYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7IH1cblxuZXhwb3J0IGNsYXNzIFRoZVNlYW1NZW51SGVhZGVySGFybmVzcyBleHRlbmRzIENvbnRlbnRDb250YWluZXJDb21wb25lbnRIYXJuZXNzPHN0cmluZz4ge1xuICAvKiogVGhlIHNlbGVjdG9yIGZvciB0aGUgaG9zdCBlbGVtZW50IG9mIGEgYE1lbnVIZWFkZXJDb21wb25lbnRgIGluc3RhbmNlLiAqL1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NlYW0tbWVudS1oZWFkZXInXG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGEgbWVudSBpdGVtIHdpdGggc3BlY2lmaWMgYXR0cmlidXRlcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZmlsdGVyaW5nIHdoaWNoIG1lbnUgaXRlbSBpbnN0YW5jZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaC5cbiAgICogQHJldHVybiBhIGBIYXJuZXNzUHJlZGljYXRlYCBjb25maWd1cmVkIHdpdGggdGhlIGdpdmVuIG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgd2l0aDxUIGV4dGVuZHMgVGhlU2VhbU1lbnVIZWFkZXJIYXJuZXNzPihcbiAgICB0aGlzOiBDb21wb25lbnRIYXJuZXNzQ29uc3RydWN0b3I8VD4sXG4gICAgb3B0aW9uczogVGhlU2VhbU1lbnVIZWFkZXJIYXJuZXNzRmlsdGVycyA9IHt9LFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFQ+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUodGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKiBDbGlja3MgdGhlIG1lbnUgaXRlbS4gKi9cbiAgYXN5bmMgY2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuY2xpY2soKS50aGVuKCgpID0+IGFuaW1hdGluZ1dhaXQoKSlcbiAgfVxuXG4gIC8qKiBIb3ZlcnMgdGhlIG1lbnUgaXRlbS4gKi9cbiAgYXN5bmMgaG92ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaG92ZXIoKS50aGVuKCgpID0+IGFuaW1hdGluZ1dhaXQoKSlcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
3
+ import { TheSeamMenuHarness } from './menu.harness';
4
+ import { animatingWait } from './utils';
5
+ export class TheSeamMenuItemHarness extends ContentContainerComponentHarness {
6
+ /**
7
+ * Gets a `HarnessPredicate` that can be used to search for a menu item with specific attributes.
8
+ * @param options Options for filtering which menu item instances are considered a match.
9
+ * @return a `HarnessPredicate` configured with the given options.
10
+ */
11
+ static with(options = {}) {
12
+ return new HarnessPredicate(this, options)
13
+ .addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text))
14
+ .addOption('hasSubmenu', options.hasSubmenu, async (harness, hasSubmenu) => (await harness.hasSubmenu()) === hasSubmenu);
15
+ }
16
+ /** Whether the menu is disabled. */
17
+ async isDisabled() {
18
+ const disabled = (await this.host()).getAttribute('disabled');
19
+ return coerceBooleanProperty(await disabled);
20
+ }
21
+ /** Gets the text of the menu item. */
22
+ async getText() {
23
+ return (await this.host()).text();
24
+ }
25
+ /** Focuses the menu item. */
26
+ async focus() {
27
+ return (await this.host()).focus().then(() => animatingWait());
28
+ }
29
+ /** Blurs the menu item. */
30
+ async blur() {
31
+ return (await this.host()).blur().then(() => animatingWait());
32
+ }
33
+ /** Whether the menu item is focused. */
34
+ async isFocused() {
35
+ return (await this.host()).isFocused();
36
+ }
37
+ /** Clicks the menu item. */
38
+ async click() {
39
+ return (await this.host()).click().then(() => animatingWait());
40
+ }
41
+ /** Hovers the menu item. */
42
+ async hover() {
43
+ return (await this.host()).hover().then(() => animatingWait());
44
+ }
45
+ /** Whether this item has a submenu. */
46
+ async hasSubmenu() {
47
+ return (await this.host()).matchesSelector(TheSeamMenuHarness.hostSelector);
48
+ }
49
+ /** Gets the submenu associated with this menu item, or null if none. */
50
+ async getSubmenu() {
51
+ if (await this.hasSubmenu()) {
52
+ return new TheSeamMenuHarness(this.locatorFactory);
53
+ }
54
+ return null;
55
+ }
56
+ }
57
+ /** The selector for the host element of a `MenuItemComponent` instance. */
58
+ TheSeamMenuItemHarness.hostSelector = '.seam-menu-item';
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vbWVudS90ZXN0aW5nL21lbnUtaXRlbS5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdELE9BQU8sRUFBbUQsZ0NBQWdDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUUxSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBVXZDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQ0FBd0M7SUFJbEY7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBRVQsVUFBeUMsRUFBRTtRQUUzQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN2QyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDakQsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FDeEQ7YUFDQSxTQUFTLENBQ1IsWUFBWSxFQUNaLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssVUFBVSxDQUMzRSxDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDN0QsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsS0FBSyxDQUFDLE9BQU87UUFDWCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsSUFBSTtRQUNSLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsS0FBSyxDQUFDLFNBQVM7UUFDYixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixLQUFLLENBQUMsS0FBSztRQUNULE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsS0FBSyxDQUFDLFVBQVU7UUFDZCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDM0IsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUNuRDtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7QUF0RUQsMkVBQTJFO0FBQ3BFLG1DQUFZLEdBQUcsaUJBQWlCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBCYXNlSGFybmVzc0ZpbHRlcnMsIENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvciwgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZydcblxuaW1wb3J0IHsgVGhlU2VhbU1lbnVIYXJuZXNzIH0gZnJvbSAnLi9tZW51Lmhhcm5lc3MnXG5pbXBvcnQgeyBhbmltYXRpbmdXYWl0IH0gZnJvbSAnLi91dGlscydcblxuLyoqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgVGhlU2VhbU1lbnVJdGVtSGFybmVzc2AgaW5zdGFuY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7XG4gIC8qKiBPbmx5IGZpbmQgaW5zdGFuY2VzIHdob3NlIHRleHQgbWF0Y2hlcyB0aGUgZ2l2ZW4gdmFsdWUuICovXG4gIHRleHQ/OiBzdHJpbmcgfCBSZWdFeHA7XG4gIC8qKiBPbmx5IGZpbmQgaW5zdGFuY2VzIHRoYXQgaGF2ZSBhIHN1Yi1tZW51LiAqL1xuICBoYXNTdWJtZW51PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFRoZVNlYW1NZW51SXRlbUhhcm5lc3MgZXh0ZW5kcyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50SGFybmVzczxzdHJpbmc+IHtcbiAgLyoqIFRoZSBzZWxlY3RvciBmb3IgdGhlIGhvc3QgZWxlbWVudCBvZiBhIGBNZW51SXRlbUNvbXBvbmVudGAgaW5zdGFuY2UuICovXG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNlYW0tbWVudS1pdGVtJ1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhIG1lbnUgaXRlbSB3aXRoIHNwZWNpZmljIGF0dHJpYnV0ZXMuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGZpbHRlcmluZyB3aGljaCBtZW51IGl0ZW0gaW5zdGFuY2VzIGFyZSBjb25zaWRlcmVkIGEgbWF0Y2guXG4gICAqIEByZXR1cm4gYSBgSGFybmVzc1ByZWRpY2F0ZWAgY29uZmlndXJlZCB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgKi9cbiAgc3RhdGljIHdpdGg8VCBleHRlbmRzIFRoZVNlYW1NZW51SXRlbUhhcm5lc3M+KFxuICAgIHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcbiAgICBvcHRpb25zOiBUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycyA9IHt9LFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFQ+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUodGhpcywgb3B0aW9ucylcbiAgICAgIC5hZGRPcHRpb24oJ3RleHQnLCBvcHRpb25zLnRleHQsIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy5nZXRUZXh0KCksIHRleHQpLFxuICAgICAgKVxuICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgJ2hhc1N1Ym1lbnUnLFxuICAgICAgICBvcHRpb25zLmhhc1N1Ym1lbnUsXG4gICAgICAgIGFzeW5jIChoYXJuZXNzLCBoYXNTdWJtZW51KSA9PiAoYXdhaXQgaGFybmVzcy5oYXNTdWJtZW51KCkpID09PSBoYXNTdWJtZW51LFxuICAgICAgKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXMgZGlzYWJsZWQuICovXG4gIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGlzYWJsZWQgPSAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKVxuICAgIHJldHVybiBjb2VyY2VCb29sZWFuUHJvcGVydHkoYXdhaXQgZGlzYWJsZWQpXG4gIH1cblxuICAvKiogR2V0cyB0aGUgdGV4dCBvZiB0aGUgbWVudSBpdGVtLiAqL1xuICBhc3luYyBnZXRUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkudGV4dCgpXG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgbWVudSBpdGVtLiAqL1xuICBhc3luYyBmb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaG9zdCgpKS5mb2N1cygpLnRoZW4oKCkgPT4gYW5pbWF0aW5nV2FpdCgpKVxuICB9XG5cbiAgLyoqIEJsdXJzIHRoZSBtZW51IGl0ZW0uICovXG4gIGFzeW5jIGJsdXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuYmx1cigpLnRoZW4oKCkgPT4gYW5pbWF0aW5nV2FpdCgpKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXRlbSBpcyBmb2N1c2VkLiAqL1xuICBhc3luYyBpc0ZvY3VzZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaXNGb2N1c2VkKClcbiAgfVxuXG4gIC8qKiBDbGlja3MgdGhlIG1lbnUgaXRlbS4gKi9cbiAgYXN5bmMgY2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuY2xpY2soKS50aGVuKCgpID0+IGFuaW1hdGluZ1dhaXQoKSlcbiAgfVxuXG4gIC8qKiBIb3ZlcnMgdGhlIG1lbnUgaXRlbS4gKi9cbiAgYXN5bmMgaG92ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuaG92ZXIoKS50aGVuKCgpID0+IGFuaW1hdGluZ1dhaXQoKSlcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXRlbSBoYXMgYSBzdWJtZW51LiAqL1xuICBhc3luYyBoYXNTdWJtZW51KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLm1hdGNoZXNTZWxlY3RvcihUaGVTZWFtTWVudUhhcm5lc3MuaG9zdFNlbGVjdG9yKVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIHN1Ym1lbnUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWVudSBpdGVtLCBvciBudWxsIGlmIG5vbmUuICovXG4gIGFzeW5jIGdldFN1Ym1lbnUoKTogUHJvbWlzZTxUaGVTZWFtTWVudUhhcm5lc3MgfCBudWxsPiB7XG4gICAgaWYgKGF3YWl0IHRoaXMuaGFzU3VibWVudSgpKSB7XG4gICAgICByZXR1cm4gbmV3IFRoZVNlYW1NZW51SGFybmVzcyh0aGlzLmxvY2F0b3JGYWN0b3J5KVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXX0=
@@ -0,0 +1,163 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { ContentContainerComponentHarness, HarnessPredicate, TestKey, } from '@angular/cdk/testing';
3
+ import { TheSeamMenuItemHarness } from './menu-item.harness';
4
+ import { TheSeamMenuFooterHarness } from './menu-footer.harness';
5
+ import { TheSeamMenuHeaderHarness } from './menu-header.harness';
6
+ import { animatingWait } from './utils';
7
+ export class TheSeamMenuHarness extends ContentContainerComponentHarness {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._documentRootLocator = this.documentRootLocatorFactory();
11
+ }
12
+ /**
13
+ * Gets a `HarnessPredicate` that can be used to search for a menu with specific attributes.
14
+ * @param options Options for filtering which menu instances are considered a match.
15
+ * @return a `HarnessPredicate` configured with the given options.
16
+ */
17
+ static with(options = {}) {
18
+ return new HarnessPredicate(this, options).addOption('triggerText', options.triggerText, (harness, text) => HarnessPredicate.stringMatches(harness.getTriggerText(), text));
19
+ }
20
+ /** Whether the menu is disabled. */
21
+ async isDisabled() {
22
+ const disabled = (await this.host()).getAttribute('disabled');
23
+ return coerceBooleanProperty(await disabled);
24
+ }
25
+ /** Whether the menu is open. */
26
+ async isOpen() {
27
+ return !!(await this._getMenuPanel());
28
+ }
29
+ /** Gets the text of the menu's trigger element. */
30
+ async getTriggerText() {
31
+ return (await this.host()).text();
32
+ }
33
+ /** Focuses the menu. */
34
+ async focus() {
35
+ return (await this.host()).focus().then(() => animatingWait());
36
+ }
37
+ /** Blurs the menu. */
38
+ async blur() {
39
+ return (await this.host()).blur().then(() => animatingWait());
40
+ }
41
+ /** Whether the menu is focused. */
42
+ async isFocused() {
43
+ return (await this.host()).isFocused();
44
+ }
45
+ /** Opens the menu. */
46
+ async open() {
47
+ if (!(await this.isOpen())) {
48
+ return (await this.host()).click().then(() => animatingWait());
49
+ }
50
+ }
51
+ /** Closes the menu. */
52
+ async close() {
53
+ const panel = await this._getMenuPanel();
54
+ if (panel) {
55
+ return panel.sendKeys(TestKey.ESCAPE).then(() => animatingWait());
56
+ }
57
+ }
58
+ /**
59
+ * Gets a list of `TheSeamMenuItemHarness` representing the items in the menu.
60
+ * @param filters Optionally filters which menu items are included.
61
+ */
62
+ async getItems(filters) {
63
+ const panelId = await this._getPanelId();
64
+ if (panelId) {
65
+ return this._documentRootLocator.locatorForAll(TheSeamMenuItemHarness.with({
66
+ ...(filters || {}),
67
+ ancestor: `#${panelId}`,
68
+ }))();
69
+ }
70
+ return [];
71
+ }
72
+ /**
73
+ * Clicks an item in the menu, and optionally continues clicking items in subsequent sub-menus.
74
+ * @param itemFilter A filter used to represent which item in the menu should be clicked. The
75
+ * first matching menu item will be clicked.
76
+ * @param subItemFilters A list of filters representing the items to click in any subsequent
77
+ * sub-menus. The first item in the sub-menu matching the corresponding filter in
78
+ * `subItemFilters` will be clicked.
79
+ */
80
+ async clickItem(itemFilter, ...subItemFilters) {
81
+ await this.open();
82
+ const items = await this.getItems(itemFilter);
83
+ if (!items.length) {
84
+ throw Error(`Could not find item matching ${JSON.stringify(itemFilter)}`);
85
+ }
86
+ if (!subItemFilters.length) {
87
+ return items[0].click();
88
+ }
89
+ const menu = await items[0].getSubmenu();
90
+ if (!menu) {
91
+ throw Error(`Item matching ${JSON.stringify(itemFilter)} does not have a submenu`);
92
+ }
93
+ return menu.clickItem(...subItemFilters);
94
+ }
95
+ /**
96
+ * Hovers an item in the menu, and optionally continues hovering items in subsequent sub-menus.
97
+ * @param itemFilter A filter used to represent which item in the menu should be hovered. The
98
+ * first matching menu item will be hovered.
99
+ * @param subItemFilters A list of filters representing the items to hover in any subsequent
100
+ * sub-menus. The first item in the sub-menu matching the corresponding filter in
101
+ * `subItemFilters` will be hovered.
102
+ */
103
+ async hoverItem(itemFilter, ...subItemFilters) {
104
+ await this.open();
105
+ const items = await this.getItems(itemFilter);
106
+ if (!items.length) {
107
+ throw Error(`Could not find item matching ${JSON.stringify(itemFilter)}`);
108
+ }
109
+ if (!subItemFilters.length) {
110
+ return items[0].hover();
111
+ }
112
+ const menu = await items[0].getSubmenu();
113
+ if (!menu) {
114
+ throw Error(`Item matching ${JSON.stringify(itemFilter)} does not have a submenu`);
115
+ }
116
+ return menu.hoverItem(...subItemFilters);
117
+ }
118
+ /**
119
+ * Gets a `TheSeamMenuHeaderHarness` representing the header in the menu.
120
+ * @param filters Optionally filters which menu items are included.
121
+ */
122
+ async getHeader(filters) {
123
+ const panelId = await this._getPanelId();
124
+ if (panelId) {
125
+ return this._documentRootLocator.locatorForOptional(TheSeamMenuHeaderHarness.with({
126
+ ...(filters || {}),
127
+ ancestor: `#${panelId}`,
128
+ }))();
129
+ }
130
+ return null;
131
+ }
132
+ /**
133
+ * Gets a `TheSeamMenuFooterHarness` representing the footer in the menu.
134
+ * @param filters Optionally filters which menu items are included.
135
+ */
136
+ async getFooter(filters) {
137
+ const panelId = await this._getPanelId();
138
+ if (panelId) {
139
+ return this._documentRootLocator.locatorForOptional(TheSeamMenuFooterHarness.with({
140
+ ...(filters || {}),
141
+ ancestor: `#${panelId}`,
142
+ }))();
143
+ }
144
+ return null;
145
+ }
146
+ async getRootHarnessLoader() {
147
+ const panelId = await this._getPanelId();
148
+ return this.documentRootLocatorFactory().harnessLoaderFor(`#${panelId}`);
149
+ }
150
+ /** Gets the menu panel associated with this menu. */
151
+ async _getMenuPanel() {
152
+ const panelId = await this._getPanelId();
153
+ return panelId ? this._documentRootLocator.locatorForOptional(`#${panelId}`)() : null;
154
+ }
155
+ /** Gets the id of the menu panel associated with this menu. */
156
+ async _getPanelId() {
157
+ const panelId = await (await this.host()).getAttribute('aria-controls');
158
+ return panelId || null;
159
+ }
160
+ }
161
+ /** The selector for the host element of a `MenuComponent` instance. */
162
+ TheSeamMenuHarness.hostSelector = '.seam-menu-toggle';
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL21lbnUvdGVzdGluZy9tZW51Lmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0QsT0FBTyxFQUVMLGdDQUFnQyxFQUVoQyxnQkFBZ0IsRUFFaEIsT0FBTyxHQUVSLE1BQU0sc0JBQXNCLENBQUE7QUFFN0IsT0FBTyxFQUFFLHNCQUFzQixFQUFpQyxNQUFNLHFCQUFxQixDQUFBO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBbUMsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQW1DLE1BQU0sdUJBQXVCLENBQUE7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQVF2QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0NBQXdDO0lBQWhGOztRQUNVLHlCQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFBO0lBdU1sRSxDQUFDO0lBbE1DOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUVULFVBQXFDLEVBQUU7UUFFdkMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ2xELGFBQWEsRUFDYixPQUFPLENBQUMsV0FBVyxFQUNuQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQ2xGLENBQUE7SUFDSCxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVks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QUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUN2RixDQUFDO0lBRUQsK0RBQStEO0lBQ3ZELEtBQUssQ0FBQyxXQUFXO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2RSxPQUFPLE9BQU8sSUFBSSxJQUFJLENBQUE7SUFDeEIsQ0FBQzs7QUFuTUQsdUVBQXVFO0FBQ2hFLCtCQUFZLEdBQUcsbUJBQW1CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDb21wb25lbnRIYXJuZXNzQ29uc3RydWN0b3IsXG4gIENvbnRlbnRDb250YWluZXJDb21wb25lbnRIYXJuZXNzLFxuICBIYXJuZXNzTG9hZGVyLFxuICBIYXJuZXNzUHJlZGljYXRlLFxuICBUZXN0RWxlbWVudCxcbiAgVGVzdEtleSxcbiAgQmFzZUhhcm5lc3NGaWx0ZXJzLFxufSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZydcblxuaW1wb3J0IHsgVGhlU2VhbU1lbnVJdGVtSGFybmVzcywgVGhlU2VhbU1lbnVJdGVtSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21lbnUtaXRlbS5oYXJuZXNzJ1xuaW1wb3J0IHsgVGhlU2VhbU1lbnVGb290ZXJIYXJuZXNzLCBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tZW51LWZvb3Rlci5oYXJuZXNzJ1xuaW1wb3J0IHsgVGhlU2VhbU1lbnVIZWFkZXJIYXJuZXNzLCBUaGVTZWFtTWVudUhlYWRlckhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tZW51LWhlYWRlci5oYXJuZXNzJ1xuaW1wb3J0IHsgYW5pbWF0aW5nV2FpdCB9IGZyb20gJy4vdXRpbHMnXG5cbi8qKiBBIHNldCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhIGxpc3Qgb2YgYFRoZVNlYW1NZW51SGFybmVzc2AgaW5zdGFuY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtTWVudUhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgQmFzZUhhcm5lc3NGaWx0ZXJzIHtcbiAgLyoqIE9ubHkgZmluZCBpbnN0YW5jZXMgd2hvc2UgdHJpZ2dlciB0ZXh0IG1hdGNoZXMgdGhlIGdpdmVuIHZhbHVlLiAqL1xuICB0cmlnZ2VyVGV4dD86IHN0cmluZyB8IFJlZ0V4cDtcbn1cblxuZXhwb3J0IGNsYXNzIFRoZVNlYW1NZW51SGFybmVzcyBleHRlbmRzIENvbnRlbnRDb250YWluZXJDb21wb25lbnRIYXJuZXNzPHN0cmluZz4ge1xuICBwcml2YXRlIF9kb2N1bWVudFJvb3RMb2NhdG9yID0gdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpXG5cbiAgLyoqIFRoZSBzZWxlY3RvciBmb3IgdGhlIGhvc3QgZWxlbWVudCBvZiBhIGBNZW51Q29tcG9uZW50YCBpbnN0YW5jZS4gKi9cbiAgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcuc2VhbS1tZW51LXRvZ2dsZSdcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYSBtZW51IHdpdGggc3BlY2lmaWMgYXR0cmlidXRlcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZmlsdGVyaW5nIHdoaWNoIG1lbnUgaW5zdGFuY2VzIGFyZSBjb25zaWRlcmVkIGEgbWF0Y2guXG4gICAqIEByZXR1cm4gYSBgSGFybmVzc1ByZWRpY2F0ZWAgY29uZmlndXJlZCB3aXRoIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgKi9cbiAgc3RhdGljIHdpdGg8VCBleHRlbmRzIFRoZVNlYW1NZW51SGFybmVzcz4oXG4gICAgdGhpczogQ29tcG9uZW50SGFybmVzc0NvbnN0cnVjdG9yPFQ+LFxuICAgIG9wdGlvbnM6IFRoZVNlYW1NZW51SGFybmVzc0ZpbHRlcnMgPSB7fSxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKHRoaXMsIG9wdGlvbnMpLmFkZE9wdGlvbihcbiAgICAgICd0cmlnZ2VyVGV4dCcsXG4gICAgICBvcHRpb25zLnRyaWdnZXJUZXh0LFxuICAgICAgKGhhcm5lc3MsIHRleHQpID0+IEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFRyaWdnZXJUZXh0KCksIHRleHQpLFxuICAgIClcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBtZW51IGlzIGRpc2FibGVkLiAqL1xuICBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRpc2FibGVkID0gKGF3YWl0IHRoaXMuaG9zdCgpKS5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJylcbiAgICByZXR1cm4gY29lcmNlQm9vbGVhblByb3BlcnR5KGF3YWl0IGRpc2FibGVkKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXMgb3Blbi4gKi9cbiAgYXN5bmMgaXNPcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhIShhd2FpdCB0aGlzLl9nZXRNZW51UGFuZWwoKSlcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB0ZXh0IG9mIHRoZSBtZW51J3MgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBhc3luYyBnZXRUcmlnZ2VyVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLnRleHQoKVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIG1lbnUuICovXG4gIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmZvY3VzKCkudGhlbigoKSA9PiBhbmltYXRpbmdXYWl0KCkpXG4gIH1cblxuICAvKiogQmx1cnMgdGhlIG1lbnUuICovXG4gIGFzeW5jIGJsdXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuYmx1cigpLnRoZW4oKCkgPT4gYW5pbWF0aW5nV2FpdCgpKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG1lbnUgaXMgZm9jdXNlZC4gKi9cbiAgYXN5bmMgaXNGb2N1c2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmlzRm9jdXNlZCgpXG4gIH1cblxuICAvKiogT3BlbnMgdGhlIG1lbnUuICovXG4gIGFzeW5jIG9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCEoYXdhaXQgdGhpcy5pc09wZW4oKSkpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmNsaWNrKCkudGhlbigoKSA9PiBhbmltYXRpbmdXYWl0KCkpXG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbWVudS4gKi9cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFuZWwgPSBhd2FpdCB0aGlzLl9nZXRNZW51UGFuZWwoKVxuICAgIGlmIChwYW5lbCkge1xuICAgICAgcmV0dXJuIHBhbmVsLnNlbmRLZXlzKFRlc3RLZXkuRVNDQVBFKS50aGVuKCgpID0+IGFuaW1hdGluZ1dhaXQoKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGxpc3Qgb2YgYFRoZVNlYW1NZW51SXRlbUhhcm5lc3NgIHJlcHJlc2VudGluZyB0aGUgaXRlbXMgaW4gdGhlIG1lbnUuXG4gICAqIEBwYXJhbSBmaWx0ZXJzIE9wdGlvbmFsbHkgZmlsdGVycyB3aGljaCBtZW51IGl0ZW1zIGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGFzeW5jIGdldEl0ZW1zKFxuICAgIGZpbHRlcnM/OiBPbWl0PFRoZVNlYW1NZW51SXRlbUhhcm5lc3NGaWx0ZXJzLCAnYW5jZXN0b3InPixcbiAgKTogUHJvbWlzZTxUaGVTZWFtTWVudUl0ZW1IYXJuZXNzW10+IHtcbiAgICBjb25zdCBwYW5lbElkID0gYXdhaXQgdGhpcy5fZ2V0UGFuZWxJZCgpXG4gICAgaWYgKHBhbmVsSWQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kb2N1bWVudFJvb3RMb2NhdG9yLmxvY2F0b3JGb3JBbGwoXG4gICAgICAgIFRoZVNlYW1NZW51SXRlbUhhcm5lc3Mud2l0aCh7XG4gICAgICAgICAgLi4uKGZpbHRlcnMgfHwge30pLFxuICAgICAgICAgIGFuY2VzdG9yOiBgIyR7cGFuZWxJZH1gLFxuICAgICAgICB9IHNhdGlzZmllcyBUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycyksXG4gICAgICApKClcbiAgICB9XG4gICAgcmV0dXJuIFtdXG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIGFuIGl0ZW0gaW4gdGhlIG1lbnUsIGFuZCBvcHRpb25hbGx5IGNvbnRpbnVlcyBjbGlja2luZyBpdGVtcyBpbiBzdWJzZXF1ZW50IHN1Yi1tZW51cy5cbiAgICogQHBhcmFtIGl0ZW1GaWx0ZXIgQSBmaWx0ZXIgdXNlZCB0byByZXByZXNlbnQgd2hpY2ggaXRlbSBpbiB0aGUgbWVudSBzaG91bGQgYmUgY2xpY2tlZC4gVGhlXG4gICAqICAgICBmaXJzdCBtYXRjaGluZyBtZW51IGl0ZW0gd2lsbCBiZSBjbGlja2VkLlxuICAgKiBAcGFyYW0gc3ViSXRlbUZpbHRlcnMgQSBsaXN0IG9mIGZpbHRlcnMgcmVwcmVzZW50aW5nIHRoZSBpdGVtcyB0byBjbGljayBpbiBhbnkgc3Vic2VxdWVudFxuICAgKiAgICAgc3ViLW1lbnVzLiBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgc3ViLW1lbnUgbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZmlsdGVyIGluXG4gICAqICAgICBgc3ViSXRlbUZpbHRlcnNgIHdpbGwgYmUgY2xpY2tlZC5cbiAgICovXG4gIGFzeW5jIGNsaWNrSXRlbShcbiAgICBpdGVtRmlsdGVyOiBPbWl0PFRoZVNlYW1NZW51SXRlbUhhcm5lc3NGaWx0ZXJzLCAnYW5jZXN0b3InPixcbiAgICAuLi5zdWJJdGVtRmlsdGVyczogT21pdDxUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycywgJ2FuY2VzdG9yJz5bXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm9wZW4oKVxuICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5nZXRJdGVtcyhpdGVtRmlsdGVyKVxuICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBFcnJvcihgQ291bGQgbm90IGZpbmQgaXRlbSBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KGl0ZW1GaWx0ZXIpfWApXG4gICAgfVxuXG4gICAgaWYgKCFzdWJJdGVtRmlsdGVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBpdGVtc1swXS5jbGljaygpXG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IGF3YWl0IGl0ZW1zWzBdLmdldFN1Ym1lbnUoKVxuICAgIGlmICghbWVudSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEl0ZW0gbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShpdGVtRmlsdGVyKX0gZG9lcyBub3QgaGF2ZSBhIHN1Ym1lbnVgKVxuICAgIH1cbiAgICByZXR1cm4gbWVudS5jbGlja0l0ZW0oLi4uKHN1Ykl0ZW1GaWx0ZXJzIGFzIFtPbWl0PFRoZVNlYW1NZW51SXRlbUhhcm5lc3NGaWx0ZXJzLCAnYW5jZXN0b3InPl0pKVxuICB9XG5cbiAgLyoqXG4gICAqIEhvdmVycyBhbiBpdGVtIGluIHRoZSBtZW51LCBhbmQgb3B0aW9uYWxseSBjb250aW51ZXMgaG92ZXJpbmcgaXRlbXMgaW4gc3Vic2VxdWVudCBzdWItbWVudXMuXG4gICAqIEBwYXJhbSBpdGVtRmlsdGVyIEEgZmlsdGVyIHVzZWQgdG8gcmVwcmVzZW50IHdoaWNoIGl0ZW0gaW4gdGhlIG1lbnUgc2hvdWxkIGJlIGhvdmVyZWQuIFRoZVxuICAgKiAgICAgZmlyc3QgbWF0Y2hpbmcgbWVudSBpdGVtIHdpbGwgYmUgaG92ZXJlZC5cbiAgICogQHBhcmFtIHN1Ykl0ZW1GaWx0ZXJzIEEgbGlzdCBvZiBmaWx0ZXJzIHJlcHJlc2VudGluZyB0aGUgaXRlbXMgdG8gaG92ZXIgaW4gYW55IHN1YnNlcXVlbnRcbiAgICogICAgIHN1Yi1tZW51cy4gVGhlIGZpcnN0IGl0ZW0gaW4gdGhlIHN1Yi1tZW51IG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIGZpbHRlciBpblxuICAgKiAgICAgYHN1Ykl0ZW1GaWx0ZXJzYCB3aWxsIGJlIGhvdmVyZWQuXG4gICAqL1xuICBhc3luYyBob3Zlckl0ZW0oXG4gICAgaXRlbUZpbHRlcjogT21pdDxUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycywgJ2FuY2VzdG9yJz4sXG4gICAgLi4uc3ViSXRlbUZpbHRlcnM6IE9taXQ8VGhlU2VhbU1lbnVJdGVtSGFybmVzc0ZpbHRlcnMsICdhbmNlc3Rvcic+W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5vcGVuKClcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0SXRlbXMoaXRlbUZpbHRlcilcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGl0ZW0gbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShpdGVtRmlsdGVyKX1gKVxuICAgIH1cblxuICAgIGlmICghc3ViSXRlbUZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gaXRlbXNbMF0uaG92ZXIoKVxuICAgIH1cblxuICAgIGNvbnN0IG1lbnUgPSBhd2FpdCBpdGVtc1swXS5nZXRTdWJtZW51KClcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHRocm93IEVycm9yKGBJdGVtIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkoaXRlbUZpbHRlcil9IGRvZXMgbm90IGhhdmUgYSBzdWJtZW51YClcbiAgICB9XG4gICAgcmV0dXJuIG1lbnUuaG92ZXJJdGVtKC4uLihzdWJJdGVtRmlsdGVycyBhcyBbT21pdDxUaGVTZWFtTWVudUl0ZW1IYXJuZXNzRmlsdGVycywgJ2FuY2VzdG9yJz5dKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYFRoZVNlYW1NZW51SGVhZGVySGFybmVzc2AgcmVwcmVzZW50aW5nIHRoZSBoZWFkZXIgaW4gdGhlIG1lbnUuXG4gICAqIEBwYXJhbSBmaWx0ZXJzIE9wdGlvbmFsbHkgZmlsdGVycyB3aGljaCBtZW51IGl0ZW1zIGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGFzeW5jIGdldEhlYWRlcihcbiAgICBmaWx0ZXJzPzogT21pdDxUaGVTZWFtTWVudUhlYWRlckhhcm5lc3NGaWx0ZXJzLCAnYW5jZXN0b3InPixcbiAgKTogUHJvbWlzZTxUaGVTZWFtTWVudUhlYWRlckhhcm5lc3MgfCBudWxsPiB7XG4gICAgY29uc3QgcGFuZWxJZCA9IGF3YWl0IHRoaXMuX2dldFBhbmVsSWQoKVxuICAgIGlmIChwYW5lbElkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICAgIFRoZVNlYW1NZW51SGVhZGVySGFybmVzcy53aXRoKHtcbiAgICAgICAgICAuLi4oZmlsdGVycyB8fCB7fSksXG4gICAgICAgICAgYW5jZXN0b3I6IGAjJHtwYW5lbElkfWAsXG4gICAgICAgIH0gc2F0aXNmaWVzIFRoZVNlYW1NZW51SGVhZGVySGFybmVzc0ZpbHRlcnMpLFxuICAgICAgKSgpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3NgIHJlcHJlc2VudGluZyB0aGUgZm9vdGVyIGluIHRoZSBtZW51LlxuICAgKiBAcGFyYW0gZmlsdGVycyBPcHRpb25hbGx5IGZpbHRlcnMgd2hpY2ggbWVudSBpdGVtcyBhcmUgaW5jbHVkZWQuXG4gICAqL1xuICBhc3luYyBnZXRGb290ZXIoXG4gICAgZmlsdGVycz86IE9taXQ8VGhlU2VhbU1lbnVGb290ZXJIYXJuZXNzRmlsdGVycywgJ2FuY2VzdG9yJz4sXG4gICk6IFByb21pc2U8VGhlU2VhbU1lbnVGb290ZXJIYXJuZXNzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHBhbmVsSWQgPSBhd2FpdCB0aGlzLl9nZXRQYW5lbElkKClcbiAgICBpZiAocGFuZWxJZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICAgICBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3Mud2l0aCh7XG4gICAgICAgICAgLi4uKGZpbHRlcnMgfHwge30pLFxuICAgICAgICAgIGFuY2VzdG9yOiBgIyR7cGFuZWxJZH1gLFxuICAgICAgICB9IHNhdGlzZmllcyBUaGVTZWFtTWVudUZvb3Rlckhhcm5lc3NGaWx0ZXJzKSxcbiAgICAgICkoKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGdldFJvb3RIYXJuZXNzTG9hZGVyKCk6IFByb21pc2U8SGFybmVzc0xvYWRlcj4ge1xuICAgIGNvbnN0IHBhbmVsSWQgPSBhd2FpdCB0aGlzLl9nZXRQYW5lbElkKClcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpLmhhcm5lc3NMb2FkZXJGb3IoYCMke3BhbmVsSWR9YClcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtZW51IHBhbmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1lbnUuICovXG4gIHByaXZhdGUgYXN5bmMgX2dldE1lbnVQYW5lbCgpOiBQcm9taXNlPFRlc3RFbGVtZW50IHwgbnVsbD4ge1xuICAgIGNvbnN0IHBhbmVsSWQgPSBhd2FpdCB0aGlzLl9nZXRQYW5lbElkKClcbiAgICByZXR1cm4gcGFuZWxJZCA/IHRoaXMuX2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvck9wdGlvbmFsKGAjJHtwYW5lbElkfWApKCkgOiBudWxsXG4gIH1cblxuICAvKiogR2V0cyB0aGUgaWQgb2YgdGhlIG1lbnUgcGFuZWwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWVudS4gKi9cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGFuZWxJZCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBwYW5lbElkID0gYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKVxuICAgIHJldHVybiBwYW5lbElkIHx8IG51bGxcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { waitOnConditionAsync } from '@theseam/ui-common/utils';
2
+ /**
3
+ * Workaround to wait on the animation to finish in browser, until a generic
4
+ * broswer-based solution is added, for Storybook interactions.
5
+ */
6
+ export async function animatingWait() {
7
+ const selectAnimating = () => document.querySelectorAll('.seam-menu-container .ng-animating');
8
+ if (selectAnimating().length === 0) {
9
+ return;
10
+ }
11
+ await waitOnConditionAsync(() => selectAnimating().length === 0, 1000);
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vbWVudS90ZXN0aW5nL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRS9EOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYTtJQUNqQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtJQUM3RixJQUFJLGVBQWUsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDbEMsT0FBTTtLQUNQO0lBQ0QsTUFBTSxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YWl0T25Db25kaXRpb25Bc3luYyB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuLyoqXG4gKiBXb3JrYXJvdW5kIHRvIHdhaXQgb24gdGhlIGFuaW1hdGlvbiB0byBmaW5pc2ggaW4gYnJvd3NlciwgdW50aWwgYSBnZW5lcmljXG4gKiBicm9zd2VyLWJhc2VkIHNvbHV0aW9uIGlzIGFkZGVkLCBmb3IgU3Rvcnlib29rIGludGVyYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFuaW1hdGluZ1dhaXQoKSB7XG4gIGNvbnN0IHNlbGVjdEFuaW1hdGluZyA9ICgpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZWFtLW1lbnUtY29udGFpbmVyIC5uZy1hbmltYXRpbmcnKVxuICBpZiAoc2VsZWN0QW5pbWF0aW5nKCkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgYXdhaXQgd2FpdE9uQ29uZGl0aW9uQXN5bmMoKCkgPT4gc2VsZWN0QW5pbWF0aW5nKCkubGVuZ3RoID09PSAwLCAxMDAwKVxufVxuIl19