@eui/components 18.2.1-snapshot-1729164911060 → 18.2.1

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.
@@ -244,11 +244,11 @@ export class EuiDropdownComponent {
244
244
  });
245
245
  }
246
246
  else {
247
- this.euiDropdownItemsEventSubscriptions[i] = fromEvent(euiDropdownItem.elementRef.nativeElement, 'click').subscribe(() => {
247
+ this.euiDropdownItemsEventSubscriptions[i] = fromEvent(euiDropdownItem.elementRef.nativeElement, 'click').pipe(takeUntil(this.destroy$)).subscribe(() => {
248
248
  this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);
249
- if (this.activeDescendantKeyManager.activeItem.subDropdown) {
250
- this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);
251
- this.activeDescendantKeyManager.activeItem.subDropdown.overlayRef.detachBackdrop();
249
+ if (this.activeDescendantKeyManager.activeItem?.subDropdown) {
250
+ this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);
251
+ this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();
252
252
  this.keydownListenerSubscription.unsubscribe();
253
253
  }
254
254
  const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');
@@ -489,4 +489,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
489
489
  type: HostBinding,
490
490
  args: ['class']
491
491
  }] } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFLTCxTQUFTLEVBRVQsZUFBZSxFQUlmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFFSCxzQkFBc0IsR0FPekIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFpQixNQUFNLG1CQUFtQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBV3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUE0QzdCLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxjQUFjO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQywrQkFB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U0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixNQUFNO3NCQUFmLE1BQU07Z0JBRTZCLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ1QsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUMyQyxnQkFBZ0I7c0JBQWpGLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQTJCNUQsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgT3V0cHV0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5UmVmLFxuICAgIFNjcm9sbERpc3BhdGNoZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLCBIaWdobGlnaHRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBvcGVuQ2xvc2UgfSBmcm9tICcuL2FuaW1hdGlvbnMvb3Blbi1jbG9zZSc7XG5pbXBvcnQgeyBFdWlEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWl0ZW0vZXVpLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV1aURyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZXVpLWRyb3Bkb3duLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW29wZW5DbG9zZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZHJvcGRvd24nO1xuICAgIEBJbnB1dCgpIHRhYkluZGV4ID0gLTE7XG4gICAgQElucHV0KCkgd2lkdGggPSAnYXV0byc7XG4gICAgQElucHV0KCkgcG9zaXRpb246ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ2JvdHRvbSc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQmxvY2sgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNEcm9wRG93blJpZ2h0QWxpZ25lZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNDbG9zZWRPbkNsaWNrSW5zaWRlID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRXhwYW5kT25Ib3ZlciA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUYWJOYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzUmlnaHRDbGlja0VuYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXVpRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBleHBhbmQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUG9ydGFsQ29udGVudCcpIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gICAgQFZpZXdDaGlsZCgndHJpZ2dlclJlZicpIHRyaWdnZXJSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGV1aURyb3Bkb3duSXRlbXM6IFF1ZXJ5TGlzdDxIaWdobGlnaHRhYmxlICYgRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyB0cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgcHVibGljIHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudDtcblxuICAgIHByaXZhdGUgbW91c2VQb3NpdGlvblggPSAwO1xuICAgIHByaXZhdGUgbW91c2VQb3NpdGlvblkgPSAwO1xuICAgIHByaXZhdGUgaW5pdGlhbFNjcm9sbFggPSAwO1xuICAgIHByaXZhdGUgaW5pdGlhbFNjcm9sbFkgPSAwO1xuICAgIHByaXZhdGUgb3JpZ2luWDogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgPSAnc3RhcnQnO1xuICAgIHByaXZhdGUgb3JpZ2luWTogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gJ2JvdHRvbSc7XG4gICAgcHJpdmF0ZSBvdmVybGF5WDogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgPSAnc3RhcnQnO1xuICAgIHByaXZhdGUgb3ZlcmxheVk6ICd0b3AnIHwgJ2JvdHRvbScgfCAnY2VudGVyJyA9ICd0b3AnO1xuICAgIHByaXZhdGUgdGVtcGxhdGVQb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGlzT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8RXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIG9yaWdpbjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBwb3NpdGlvblN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1kcm9wZG93bicsXG4gICAgICAgICAgICB0aGlzLmlzQmxvY2sgPyAnZXVpLWRyb3Bkb3duLS1ibG9jaycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNSaWdodENsaWNrRW5hYmxlZCA/ICdldWktZHJvcGRvd24tLWNvbnRleHR1YWwtbWVudScgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIGRyb3Bkb3duU2VydmljZTogRXVpRHJvcGRvd25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcm90ZWN0ZWQgcGxhdGZvcm1JZDogdW5rbm93bixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEN1cnJlbnRseSB0aGUgYGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlYCBpcyBvbmx5IGNoZWNrZWQgb25jZSBvbiBpbml0LlxuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhhc1RhYk5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5oYXNDbG9zZWRPbkNsaWNrSW5zaWRlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1JpZ2h0Q2xpY2tFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1RhYk5hdmlnYXRpb24gPSBmYWxzZTsgIC8vIFVYIHdpc2UsIGNvbnRleHR1YWwgbWVudSBjb250YWlucyBvbmx5IG1lbnUgaXRlbXMgYWNjZXNzaWJsZSB0aHJvdWdoIGFycm93IGtleXMgbmF2XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIGlmKHRoaXMudHJpZ2dlclJlZiAmJiB0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkKXtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkLCAnYXJpYS1oYXNwb3B1cCcsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9ucy5mb3JFYWNoKChldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb24pID0+IHtcbiAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgPSBudWxsO1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGV1aS1kcm9wZG93biBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQHVzYWdlTm90ZXNcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGV1aS1kcm9wZG93biAjZHJvcGRvd24+XG4gICAgICogICAgICA8bXktY29tcG9uZW50ICpuZ0lmPVwiZHJvcGRvd24uaXNPcGVuXCI+PC9teS1jb21wb25lbnQ+XG4gICAgICogPC9ldWktZHJvcGRvd24+XG4gICAgICogYGBgXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIHdpdGggdmFsdWUgYHRydWVgIHdoZW4gb3Blbiwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UcmlnZ2VyQ2xpY2tlZChlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKCcuZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignOmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlblxuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQmxvY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bihlLnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZC5lbWl0KHRydWUpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRyaWdnZXJSaWdodENsaWNrZWQoZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignLmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICEoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJzpkaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAhdGhpcy5pc09wZW5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Jsb2NrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uWCA9IChlIGFzIFBvaW50ZXJFdmVudCkuY2xpZW50WDtcbiAgICAgICAgICAgIHRoaXMubW91c2VQb3NpdGlvblkgPSAoZSBhcyBQb2ludGVyRXZlbnQpLmNsaWVudFk7XG4gICAgICAgICAgICBpZihpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsWCA9IHdpbmRvdy5wYWdlWE9mZnNldDtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bihlLnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaGFzQ2xvc2VkT25DbGlja0luc2lkZSAmJlxuICAgICAgICAgICAgIXRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24gJiZcbiAgICAgICAgICAgICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmRpc2FibGVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiBhIGRyb3Bkb3duXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBvZiB0aGUgZHJvcGRvd24gcG9zaXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbkRyb3Bkb3duKG9yaWdpbjogSFRNTEVsZW1lbnQsIHBvc2l0aW9uPzogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uWCA9IHBvc2l0aW9uLng7XG4gICAgICAgICAgICB0aGlzLm1vdXNlUG9zaXRpb25ZID0gcG9zaXRpb24ueTtcbiAgICAgICAgICAgIGlmKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxYID0gd2luZG93LnBhZ2VYT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1JpZ2h0Q2xpY2tFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKS5zdWJzY3JpYmUoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLmdldENvbnRleHR1YWxNZW51UG9zaXRpb25TdHJhdGVneSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVHJpZ2dlckZvY3VzYWJsZU9uQ2xvc2Uob3JpZ2luKSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW4uY2xvc2VzdCgnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScpIHx8ICh0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luLmNsb3Nlc3QoJ2EnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gdGhpcy5zY3JvbGxEaXNwYXRjaGVyXG4gICAgICAgICAgICAgICAgLmFuY2VzdG9yU2Nyb2xsZWQodGhpcy5vcmlnaW4pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDZGtTY3JvbGxhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUodGhpcy5vcmlnaW4sIGV2ZW50ID8gZXZlbnQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQgOiB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmlzUmlnaHRDbGlja0VuYWJsZWQgPyB0aGlzLmdldENvbnRleHR1YWxNZW51UG9zaXRpb25TdHJhdGVneSgpIDogdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oeyBzY3JvbGxUaHJvdHRsZTogMTAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnZXVpLWRyb3Bkb3duX19iYWNrZHJvcCcsXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ2V1aS1kcm9wZG93bl9fcGFuZWwnLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLnRlbXBsYXRlUG9ydGFsKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNSaWdodENsaWNrRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLmdldENvbnRleHR1YWxNZW51UG9zaXRpb25TdHJhdGVneSgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgICAua2V5ZG93bkV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQua2V5Py50b0xvd2VyQ2FzZSgpID09PSAnZXNjYXBlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtcy50b0FycmF5KCkuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRXhwYW5kT25Ib3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zW2ldID0gZnJvbUV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vdXNlZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzID0gKHN1YkRyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bj8ub3ZlcmxheVJlZj8uX291dHNpZGVQb2ludGVyRXZlbnRzLm5leHQoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkRyb3Bkb3duPy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bi5ldWlEcm9wZG93bkl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzKHMuc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhldWlEcm9wZG93bkl0ZW1IYXZpbmdTdWJEcm9wZG93bi5zdWJEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnNbaV0gPSBmcm9tRXZlbnQoZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uIC5ldWktbGFiZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtICYmIGxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0ID0gZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLmV1aURyb3Bkb3duSXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLndpdGhXcmFwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VEcm9wZG93bihyZWN1cnNpdmVseSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5leHBhbmQuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9ucy5mb3JFYWNoKChldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb24pID0+IHtcbiAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW4uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVjdXJzaXZlbHkgJiYgdGhpcy5wYXJlbnREcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnREcm9wZG93bi5jbG9zZURyb3Bkb3duKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHByb2plY3RDb250ZW50Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUmlnaHRDbGlja0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY29kZSA9PT0gJ0VudGVyJyAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5oYXNUYWJOYXZpZ2F0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmRpc2FibGVkXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0V4cGFuZE9uSG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5tb3VzZWVudGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5jbGljaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRXhwYW5kT25Ib3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLm1vdXNlZW50ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSAnVGFiJyAmJiAhdGhpcy5oYXNUYWJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJlbnREcm9wZG93bihwYXJlbnREcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJlbnREcm9wZG93biA9IHBhcmVudERyb3Bkb3duO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kocG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzRHJvcGRvd25JdGVtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRHJvcGRvd25JdGVtcz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMub3JpZ2luIGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbilcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgICAgICAgICAgICAgeyBvcmlnaW5YOiB0aGlzLm9yaWdpblgsIG9yaWdpblk6IHRoaXMub3JpZ2luWSB9LFxuICAgICAgICAgICAgICAgICAgICB7IG92ZXJsYXlYOiB0aGlzLm92ZXJsYXlYLCBvdmVybGF5WTogdGhpcy5vdmVybGF5WSB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29udGV4dHVhbE1lbnVQb3NpdGlvblN0cmF0ZWd5KCk6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBpZihpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZ2V0Q29udGV4dHVhbE1lbnVQb3NpdGlvblN0cmF0ZWd5IGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIHNlcnZlcicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhbmVsSGVpZ2h0ID0gdGhpcy5vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsWCA9IHdpbmRvdy5zY3JvbGxYIHx8IHdpbmRvdy5wYWdlWE9mZnNldDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZIHx8IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgICAgY29uc3QgbmV3WCA9IHRoaXMubW91c2VQb3NpdGlvblggKyAodGhpcy5pbml0aWFsU2Nyb2xsWCAtIHNjcm9sbFgpO1xuICAgICAgICBjb25zdCBuZXdZID0gdGhpcy5tb3VzZVBvc2l0aW9uWSArICh0aGlzLmluaXRpYWxTY3JvbGxZIC0gc2Nyb2xsWSk7XG4gICAgICAgIGNvbnN0IG1lbnVCb3R0b21Qb3NpdGlvbiA9IG5ld1kgKyBwYW5lbEhlaWdodDtcbiAgICAgICAgY29uc3QgaXNNZW51QmVsb3dXaW5kb3dCb3R0b20gPSBtZW51Qm90dG9tUG9zaXRpb24gPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5nbG9iYWwoKVxuICAgICAgICAgICAgLmxlZnQobmV3WCArICdweCcpO1xuXG4gICAgICAgIGlmIChpc01lbnVCZWxvd1dpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneS5ib3R0b20od2luZG93LmlubmVySGVpZ2h0IC0gbmV3WSArICdweCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneS50b3AobmV3WSArICdweCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUob3JpZ2luOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luWSA9IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55O1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50WSA9IE1hdGguYWJzKHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQgPSBzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIDUwO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAob3JpZ2luWSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpIHx8XG4gICAgICAgICAgICAob3JpZ2luWSAtIHNjcm9sbGFibGVQYXJlbnRZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudFkgKyBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUcmlnZ2VyRm9jdXNhYmxlT25DbG9zZShvcmlnaW46IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBvcmlnaW4ubWF0Y2hlcygnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScpIHx8IG9yaWdpbi5tYXRjaGVzKCdhJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblkgPSAndG9wJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnYm90dG9tJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93blJpZ2h0QWxpZ25lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ3N0YXJ0JztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnY2VudGVyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWSA9ICdib3R0b20nO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICd0b3AnO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Ryb3BEb3duUmlnaHRBbGlnbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdzdGFydCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2NlbnRlcic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICN0cmlnZ2VyUmVmIGNsYXNzPVwiZXVpLWRyb3Bkb3duX190cmlnZ2VyLWNvbnRhaW5lclwiXG4gICAgKGNsaWNrKT1cIiFpc1JpZ2h0Q2xpY2tFbmFibGVkID8gb25UcmlnZ2VyQ2xpY2tlZCgkZXZlbnQpIDogbnVsbFwiXG4gICAgKGNvbnRleHRtZW51KT1cImlzUmlnaHRDbGlja0VuYWJsZWQgPyBvblRyaWdnZXJSaWdodENsaWNrZWQoJGV2ZW50KSA6IG51bGxcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiXG4gICAgICAgIFtAb3BlbkNsb3NlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cmFwRm9jdXNBdXRvQ2FwdHVyZVwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiZVVJIGRyb3Bkb3duIHBhbmVsXCJcbiAgICAgICAgY2xhc3M9XCJldWktZHJvcGRvd25fX3BhbmVsLWNvbnRhaW5lciBldWktMThcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAgICAgKGNka09ic2VydmVDb250ZW50KT1cInByb2plY3RDb250ZW50Q2hhbmdlZCgpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1kcm9wZG93bi1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
492
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFLTCxTQUFTLEVBRVQsZUFBZSxFQUlmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFFSCxzQkFBc0IsR0FPekIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFpQixNQUFNLG1CQUFtQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBV3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUE0QzdCLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxjQUFjO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQywrQkFB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QUFFLGdCQUFnQixFQUFFO2dCQUNFLDhCQUE4QjtzQkFBckUsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxtQkFBbUI7c0JBQTFELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFNUIsTUFBTTtzQkFBZixNQUFNO2dCQUU2QixxQkFBcUI7c0JBQXhELFNBQVM7dUJBQUMsdUJBQXVCO2dCQUNULFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDMkMsZ0JBQWdCO3NCQUFqRixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkEyQjVELFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbixcbiAgICBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheVJlZixcbiAgICBTY3JvbGxEaXNwYXRjaGVyLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciwgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgb3BlbkNsb3NlIH0gZnJvbSAnLi9hbmltYXRpb25zL29wZW4tY2xvc2UnO1xuaW1wb3J0IHsgRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1pdGVtL2V1aS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlEcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL2V1aS1kcm9wZG93bi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktZHJvcGRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtvcGVuQ2xvc2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWRyb3Bkb3duJztcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IC0xO1xuICAgIEBJbnB1dCgpIHdpZHRoID0gJ2F1dG8nO1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyA9ICdib3R0b20nO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0Jsb2NrID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRHJvcERvd25SaWdodEFsaWduZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2xvc2VkT25DbGlja0luc2lkZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0V4cGFuZE9uSG92ZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVGFiTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1JpZ2h0Q2xpY2tFbmFibGVkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV1aURpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgZXhwYW5kOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVBvcnRhbENvbnRlbnQnKSB0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIEBWaWV3Q2hpbGQoJ3RyaWdnZXJSZWYnKSB0cmlnZ2VyUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBldWlEcm9wZG93bkl0ZW1zOiBRdWVyeUxpc3Q8SGlnaGxpZ2h0YWJsZSAmIEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgdHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgIHB1YmxpYyBwYXJlbnREcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25YID0gMDtcbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25ZID0gMDtcbiAgICBwcml2YXRlIGluaXRpYWxTY3JvbGxYID0gMDtcbiAgICBwcml2YXRlIGluaXRpYWxTY3JvbGxZID0gMDtcbiAgICBwcml2YXRlIG9yaWdpblg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG9yaWdpblk6ICd0b3AnIHwgJ2JvdHRvbScgfCAnY2VudGVyJyA9ICdib3R0b20nO1xuICAgIHByaXZhdGUgb3ZlcmxheVg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG92ZXJsYXlZOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicgPSAndG9wJztcbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyQ2hhbmdlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBvcmlnaW46IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgcG9zaXRpb25TdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xuICAgIHByaXZhdGUgc2Nyb2xsU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdldWktZHJvcGRvd24nLFxuICAgICAgICAgICAgdGhpcy5pc0Jsb2NrID8gJ2V1aS1kcm9wZG93bi0tYmxvY2snIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzUmlnaHRDbGlja0VuYWJsZWQgPyAnZXVpLWRyb3Bkb3duLS1jb250ZXh0dWFsLW1lbnUnIDogJycsXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IEV1aURyb3Bkb3duU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJvdGVjdGVkIHBsYXRmb3JtSWQ6IHVua25vd24sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBDdXJyZW50bHkgdGhlIGBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZWAgaXMgb25seSBjaGVja2VkIG9uY2Ugb24gaW5pdC5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oYXNUYWJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2xvc2VkT25DbGlja0luc2lkZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSaWdodENsaWNrRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5oYXNUYWJOYXZpZ2F0aW9uID0gZmFsc2U7ICAvLyBVWCB3aXNlLCBjb250ZXh0dWFsIG1lbnUgY29udGFpbnMgb25seSBtZW51IGl0ZW1zIGFjY2Vzc2libGUgdGhyb3VnaCBhcnJvdyBrZXlzIG5hdlxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlUG9ydGFsQ29udGVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgICAgICBpZih0aGlzLnRyaWdnZXJSZWYgJiYgdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCl7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCwgJ2FyaWEtaGFzcG9wdXAnLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyID0gbnVsbDtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBldWktZHJvcGRvd24gaXMgb3Blbi5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktZHJvcGRvd24gI2Ryb3Bkb3duPlxuICAgICAqICAgICAgPG15LWNvbXBvbmVudCAqbmdJZj1cImRyb3Bkb3duLmlzT3BlblwiPjwvbXktY29tcG9uZW50PlxuICAgICAqIDwvZXVpLWRyb3Bkb3duPlxuICAgICAqIGBgYFxuICAgICAqIEByZXR1cm5zIEEgYm9vbGVhbiB3aXRoIHZhbHVlIGB0cnVlYCB3aGVuIG9wZW4sIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiQudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVHJpZ2dlckNsaWNrZWQoZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignLmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICEoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJzpkaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAhdGhpcy5pc09wZW5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Jsb2NrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5leHBhbmQuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25UcmlnZ2VyUmlnaHRDbGlja2VkKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJy5kaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAhKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKCc6ZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNPcGVuXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNCbG9jaykge1xuICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSB0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubW91c2VQb3NpdGlvblggPSAoZSBhcyBQb2ludGVyRXZlbnQpLmNsaWVudFg7XG4gICAgICAgICAgICB0aGlzLm1vdXNlUG9zaXRpb25ZID0gKGUgYXMgUG9pbnRlckV2ZW50KS5jbGllbnRZO1xuICAgICAgICAgICAgaWYoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFggPSB3aW5kb3cucGFnZVhPZmZzZXQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsWSA9IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmhhc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgJiZcbiAgICAgICAgICAgICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duICYmXG4gICAgICAgICAgICAhdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gYSBkcm9wZG93blxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIGRyb3Bkb3duIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bihvcmlnaW46IEhUTUxFbGVtZW50LCBwb3NpdGlvbj86IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcblxuICAgICAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VQb3NpdGlvblggPSBwb3NpdGlvbi54O1xuICAgICAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uWSA9IHBvc2l0aW9uLnk7XG4gICAgICAgICAgICBpZihpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsWCA9IHdpbmRvdy5wYWdlWE9mZnNldDtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSaWdodENsaWNrRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJykuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5nZXRDb250ZXh0dWFsTWVudVBvc2l0aW9uU3RyYXRlZ3koKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1RyaWdnZXJGb2N1c2FibGVPbkNsb3NlKG9yaWdpbikpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luLmNsb3Nlc3QoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCAodGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbi5jbG9zZXN0KCdhJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclxuICAgICAgICAgICAgICAgIC5hbmNlc3RvclNjcm9sbGVkKHRoaXMub3JpZ2luKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2RrU2Nyb2xsYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKHRoaXMub3JpZ2luLCBldmVudCA/IGV2ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50IDogdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5pc1JpZ2h0Q2xpY2tFbmFibGVkID8gdGhpcy5nZXRDb250ZXh0dWFsTWVudVBvc2l0aW9uU3RyYXRlZ3koKSA6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDEwIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2V1aS1kcm9wZG93bl9fYmFja2Ryb3AnLFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdldWktZHJvcGRvd25fX3BhbmVsJyxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmlnaHRDbGlja0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5nZXRDb250ZXh0dWFsTWVudVBvc2l0aW9uU3RyYXRlZ3koKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLmtleWRvd25FdmVudHMoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChrZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmtleT8udG9Mb3dlckNhc2UoKSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Ryb3Bkb3duSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXMudG9BcnJheSgpLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0V4cGFuZE9uSG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uc1tpXSA9IGZyb21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlEcm9wZG93bkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShldWlEcm9wZG93bkl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc3ViRHJvcGRvd24ub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyA9IChzdWJEcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRHJvcGRvd24/Lm92ZXJsYXlSZWY/Ll9vdXRzaWRlUG9pbnRlckV2ZW50cy5uZXh0KGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJEcm9wZG93bj8uaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRHJvcGRvd24uZXVpRHJvcGRvd25JdGVtcy50b0FycmF5KCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhzLnN1YkRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0FjdGl2ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbUhhdmluZ1N1YkRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyT3V0c2lkZVBvaW50ZXJFdmVudHMoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24uc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zW2ldID0gZnJvbUV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uIC5ldWktbGFiZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xhYmVsVXBkYXRlZEZyb21TZWxlY3RlZEl0ZW0gJiYgbGFiZWxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYWJlbEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCA9IGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMuZXVpRHJvcGRvd25JdGVtcylcbiAgICAgICAgICAgICAgICAgICAgLndpdGhIb21lQW5kRW5kKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoVmVydGljYWxPcmllbnRhdGlvbih0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFdyYXAoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5pc09wZW4kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgYSBkcm9wZG93blxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZURyb3Bkb3duKHJlY3Vyc2l2ZWx5ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW4kLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmV4cGFuZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbi5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnNpdmVseSAmJiB0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvamVjdENvbnRlbnRDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNSaWdodENsaWNrRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnBvc2l0aW9uU3RyYXRlZ3kpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBldmVudC5jb2RlID09PSAnRW50ZXInICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmhhc1RhYk5hdmlnYXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uZGlzYWJsZWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRXhwYW5kT25Ib3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLm1vdXNlZW50ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmNsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY29kZSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFyZW50RHJvcGRvd24uY3JlYXRlS2V5Ym9hcmRIYW5kbGVyU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY29kZSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ubW91c2VlbnRlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdUYWInICYmICF0aGlzLmhhc1RhYk5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmVudERyb3Bkb3duKHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duID0gcGFyZW50RHJvcGRvd247XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNEcm9wZG93bkl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlEcm9wZG93bkl0ZW1zPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4gYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICAgICAgICAgICAgICB7IG9yaWdpblg6IHRoaXMub3JpZ2luWCwgb3JpZ2luWTogdGhpcy5vcmlnaW5ZIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgb3ZlcmxheVg6IHRoaXMub3ZlcmxheVgsIG92ZXJsYXlZOiB0aGlzLm92ZXJsYXlZIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0dWFsTWVudVBvc2l0aW9uU3RyYXRlZ3koKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIGlmKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdnZXRDb250ZXh0dWFsTWVudVBvc2l0aW9uU3RyYXRlZ3kgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgc2VydmVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFuZWxIZWlnaHQgPSB0aGlzLm92ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwO1xuICAgICAgICBjb25zdCBzY3JvbGxYID0gd2luZG93LnNjcm9sbFggfHwgd2luZG93LnBhZ2VYT2Zmc2V0O1xuICAgICAgICBjb25zdCBzY3JvbGxZID0gd2luZG93LnNjcm9sbFkgfHwgd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICBjb25zdCBuZXdYID0gdGhpcy5tb3VzZVBvc2l0aW9uWCArICh0aGlzLmluaXRpYWxTY3JvbGxYIC0gc2Nyb2xsWCk7XG4gICAgICAgIGNvbnN0IG5ld1kgPSB0aGlzLm1vdXNlUG9zaXRpb25ZICsgKHRoaXMuaW5pdGlhbFNjcm9sbFkgLSBzY3JvbGxZKTtcbiAgICAgICAgY29uc3QgbWVudUJvdHRvbVBvc2l0aW9uID0gbmV3WSArIHBhbmVsSGVpZ2h0O1xuICAgICAgICBjb25zdCBpc01lbnVCZWxvd1dpbmRvd0JvdHRvbSA9IG1lbnVCb3R0b21Qb3NpdGlvbiA+IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgICAgICAubGVmdChuZXdYICsgJ3B4Jyk7XG5cbiAgICAgICAgaWYgKGlzTWVudUJlbG93V2luZG93Qm90dG9tKSB7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbSh3aW5kb3cuaW5uZXJIZWlnaHQgLSBuZXdZICsgJ3B4Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LnRvcChuZXdZICsgJ3B4Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZShvcmlnaW46IEhUTUxFbGVtZW50LCBzY3JvbGxhYmxlUGFyZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvcmlnaW5ZID0gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRZID0gTWF0aC5hYnMoc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCA9IHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gNTA7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChvcmlnaW5ZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCkgfHxcbiAgICAgICAgICAgIChvcmlnaW5ZIC0gc2Nyb2xsYWJsZVBhcmVudFkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50WSArIHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1RyaWdnZXJGb2N1c2FibGVPbkNsb3NlKG9yaWdpbjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbi5tYXRjaGVzKCdidXR0b246bm90KFtkaXNhYmxlZF0pJykgfHwgb3JpZ2luLm1hdGNoZXMoJ2EnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWSA9ICd0b3AnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICdib3R0b20nO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Ryb3BEb3duUmlnaHRBbGlnbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnZW5kJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnc3RhcnQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICdjZW50ZXInO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5ZID0gJ2JvdHRvbSc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ3RvcCc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcERvd25SaWdodEFsaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnZW5kJztcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ3N0YXJ0JztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnY2VudGVyJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgI3RyaWdnZXJSZWYgY2xhc3M9XCJldWktZHJvcGRvd25fX3RyaWdnZXItY29udGFpbmVyXCJcbiAgICAoY2xpY2spPVwiIWlzUmlnaHRDbGlja0VuYWJsZWQgPyBvblRyaWdnZXJDbGlja2VkKCRldmVudCkgOiBudWxsXCJcbiAgICAoY29udGV4dG1lbnUpPVwiaXNSaWdodENsaWNrRW5hYmxlZCA/IG9uVHJpZ2dlclJpZ2h0Q2xpY2tlZCgkZXZlbnQpIDogbnVsbFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUG9ydGFsQ29udGVudD5cbiAgICA8ZGl2XG4gICAgICAgIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCJcbiAgICAgICAgW0BvcGVuQ2xvc2VdPVwiaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgICBjZGtUcmFwRm9jdXNcbiAgICAgICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRyYXBGb2N1c0F1dG9DYXB0dXJlXCJcbiAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJlVUkgZHJvcGRvd24gcGFuZWxcIlxuICAgICAgICBjbGFzcz1cImV1aS1kcm9wZG93bl9fcGFuZWwtY29udGFpbmVyIGV1aS0xOFwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwicHJvamVjdENvbnRlbnRDaGFuZ2VkKClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWRyb3Bkb3duLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"eui-dropdown.component.d.ts","sourceRoot":"","sources":["../../eui-dropdown/eui-dropdown.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-dropdown.component.d.ts","sourceRoot":"","sources":["../../eui-dropdown/eui-dropdown.component.ts"],"names":[],"mappings":"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"}
@@ -336,11 +336,11 @@ class EuiDropdownComponent {
336
336
  });
337
337
  }
338
338
  else {
339
- this.euiDropdownItemsEventSubscriptions[i] = fromEvent(euiDropdownItem.elementRef.nativeElement, 'click').subscribe(() => {
339
+ this.euiDropdownItemsEventSubscriptions[i] = fromEvent(euiDropdownItem.elementRef.nativeElement, 'click').pipe(takeUntil(this.destroy$)).subscribe(() => {
340
340
  this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);
341
- if (this.activeDescendantKeyManager.activeItem.subDropdown) {
342
- this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);
343
- this.activeDescendantKeyManager.activeItem.subDropdown.overlayRef.detachBackdrop();
341
+ if (this.activeDescendantKeyManager.activeItem?.subDropdown) {
342
+ this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);
343
+ this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();
344
344
  this.keydownListenerSubscription.unsubscribe();
345
345
  }
346
346
  const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-dropdown.mjs","sources":["../../eui-dropdown/dropdown-item/eui-dropdown-item.component.ts","../../eui-dropdown/dropdown-item/eui-dropdown-item.component.html","../../eui-dropdown/directives/eui-dropdown-content.directive.ts","../../eui-dropdown/animations/open-close.ts","../../eui-dropdown/eui-dropdown.service.ts","../../eui-dropdown/eui-dropdown.component.ts","../../eui-dropdown/eui-dropdown.component.html","../../eui-dropdown/eui-dropdown.module.ts","../../eui-dropdown/eui-components-eui-dropdown.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ElementRef,\n booleanAttribute,\n} from '@angular/core';\nimport { FocusableOption, Highlightable } from '@angular/cdk/a11y';\n\nimport { EuiDropdownComponent } from '../eui-dropdown.component';\n\n@Component({\n selector: 'eui-dropdown-item, [euiDropdownItem]',\n templateUrl: './eui-dropdown-item.component.html',\n styleUrls: ['../styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDropdownItemComponent implements Highlightable, FocusableOption {\n @Input() subDropdown: EuiDropdownComponent;\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-dropdown-item',\n this.isActive ? 'eui-dropdown-item--active' : '',\n this.subDropdown ? 'eui-dropdown-item--has-subdropdown' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @Input({ transform: booleanAttribute }) isActive: boolean;\n\n constructor(public elementRef: ElementRef) {}\n\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public click(): void {\n this.elementRef.nativeElement.click();\n }\n\n public mouseenter(): void {\n const mouseenterEvent = new Event('mouseenter');\n this.elementRef.nativeElement.dispatchEvent(mouseenterEvent);\n }\n}\n","<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"chevron-forward:sharp\" size=\"s\" fillColor=\"neutral\"></eui-icon-svg>\n </div>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'eui-dropdown-content' })\nexport class EuiDropdownContentDirective {\n @HostBinding('attr.role') role = 'menu';\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const openClose = trigger('openClose', [\n state(\n 'open',\n style({\n opacity: 1,\n transform: 'scale(1)',\n }),\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n transform: 'scale(0.9)',\n }),\n ),\n transition('closed => open', [animate('50ms 25ms linear')]),\n]);\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class EuiDropdownService {\n isDropdownOpen = new EventEmitter<boolean>();\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ViewContainerRef,\n ViewChild,\n TemplateRef,\n ContentChildren,\n QueryList,\n ElementRef,\n Renderer2,\n booleanAttribute,\n EventEmitter,\n Inject,\n PLATFORM_ID,\n Output,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport {\n CdkScrollable,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n GlobalPositionStrategy,\n Overlay,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, fromEvent, Subject, Subscription, takeUntil } from 'rxjs';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\n\nimport { openClose } from './animations/open-close';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownService } from './eui-dropdown.service';\n\n@Component({\n selector: 'eui-dropdown',\n templateUrl: './eui-dropdown.component.html',\n styleUrls: ['./styles/_index.scss'],\n animations: [openClose],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDropdownComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() e2eAttr = 'eui-dropdown';\n @Input() tabIndex = -1;\n @Input() width = 'auto';\n @Input() position: 'top' | 'right' | 'bottom' | 'left' = 'bottom';\n @Input({ transform: booleanAttribute }) isBlock = false;\n @Input({ transform: booleanAttribute }) isDropDownRightAligned = false;\n @Input({ transform: booleanAttribute }) hasClosedOnClickInside = true;\n @Input({ transform: booleanAttribute }) isLabelUpdatedFromSelectedItem = false;\n @Input({ transform: booleanAttribute }) isExpandOnHover = false;\n @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n @Input({ transform: booleanAttribute }) isRightClickEnabled = false;\n @Input({ transform: booleanAttribute }) euiDisabled = false;\n\n @Output() expand: EventEmitter<boolean> = new EventEmitter();\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n @ViewChild('triggerRef') triggerRef: ElementRef<HTMLElement>;\n @ContentChildren(EuiDropdownItemComponent, { descendants: true }) euiDropdownItems: QueryList<Highlightable & EuiDropdownItemComponent>;\n\n public trapFocusAutoCapture = true;\n public parentDropdown: EuiDropdownComponent;\n\n private mousePositionX = 0;\n private mousePositionY = 0;\n private initialScrollX = 0;\n private initialScrollY = 0;\n private originX: 'start' | 'end' | 'center' = 'start';\n private originY: 'top' | 'bottom' | 'center' = 'bottom';\n private overlayX: 'start' | 'end' | 'center' = 'start';\n private overlayY: 'top' | 'bottom' | 'center' = 'top';\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$ = new Subject<boolean>();\n private isOpen$ = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private keydownListenerSubscription = new Subscription();\n private euiDropdownItemsEventSubscriptions: Subscription[] = [];\n private activeDescendantKeyManagerChangeSubscription = new Subscription();\n private activeDescendantKeyManager: ActiveDescendantKeyManager<EuiDropdownItemComponent>;\n private origin: HTMLElement;\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private scrollSubscription = new Subscription();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-dropdown',\n this.isBlock ? 'eui-dropdown--block' : '',\n this.isRightClickEnabled ? 'eui-dropdown--contextual-menu' : '',\n ].join(' ').trim();\n }\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private dropdownService: EuiDropdownService,\n private cd: ChangeDetectorRef,\n protected _renderer: Renderer2,\n @Inject(PLATFORM_ID) protected platformId: unknown,\n @Inject(DOCUMENT) private document: Document,\n ) {\n }\n\n ngOnInit(): void {\n // Currently the `cdkTrapFocusAutoCapture` is only checked once on init.\n if (this.hasDropdownItems) {\n this.trapFocusAutoCapture = false;\n } else {\n this.trapFocusAutoCapture = true;\n }\n\n if (this.hasTabNavigation) {\n this.trapFocusAutoCapture = true;\n this.hasClosedOnClickInside = false;\n }\n\n if (this.isRightClickEnabled) {\n this.hasTabNavigation = false; // UX wise, contextual menu contains only menu items accessible through arrow keys nav\n }\n\n this.setPosition();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n\n if(this.triggerRef && this.triggerRef.nativeElement.firstChild){\n this._renderer.setAttribute(this.triggerRef.nativeElement.firstChild, 'aria-haspopup', 'true');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n euiDropdownItemsEventSubscription.unsubscribe();\n });\n this.keydownListenerSubscription.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.activeDescendantKeyManager = null;\n this.scrollSubscription.unsubscribe();\n }\n\n /**\n * Whether the eui-dropdown is open.\n *\n * @usageNotes\n * ```html\n * <eui-dropdown #dropdown>\n * <my-component *ngIf=\"dropdown.isOpen\"></my-component>\n * </eui-dropdown>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n public onTriggerClicked(e: Event): void {\n if (\n !(e.target as HTMLElement).querySelector('.disabled') &&\n !(e.target as HTMLElement).querySelector(':disabled') &&\n !this.isOpen\n ) {\n if (this.isBlock) {\n this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n }\n\n this.openDropdown(e.target as HTMLElement);\n this.expand.emit(true);\n e.stopPropagation();\n }\n }\n\n public onTriggerRightClicked(e: Event): void {\n if (\n !(e.target as HTMLElement).querySelector('.disabled') &&\n !(e.target as HTMLElement).querySelector(':disabled') &&\n !this.isOpen\n ) {\n if (this.isBlock) {\n this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n }\n\n this.mousePositionX = (e as PointerEvent).clientX;\n this.mousePositionY = (e as PointerEvent).clientY;\n if(isPlatformBrowser(this.platformId)) {\n this.initialScrollX = window.pageXOffset;\n this.initialScrollY = window.pageYOffset;\n }\n\n this.openDropdown(e.target as HTMLElement);\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n public onClick(): void {\n if (\n this.hasClosedOnClickInside &&\n !this.activeDescendantKeyManager?.activeItem.subDropdown &&\n !this.activeDescendantKeyManager?.activeItem.elementRef?.nativeElement?.disabled\n ) {\n this.closeDropdown(true);\n }\n }\n\n /**\n * Open a dropdown\n *\n * @param origin Origin of the dropdown position\n */\n public openDropdown(origin: HTMLElement, position?: { x: number, y: number }): void {\n this.origin = origin;\n\n if (position) {\n this.mousePositionX = position.x;\n this.mousePositionY = position.y;\n if(isPlatformBrowser(this.platformId)) {\n this.initialScrollX = window.pageXOffset;\n this.initialScrollY = window.pageYOffset;\n }\n }\n\n if (this.isRightClickEnabled) {\n this.scrollSubscription = fromEvent(window, 'scroll').subscribe((event: Event) => {\n this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n });\n }\n\n if (!this.isTriggerFocusableOnClose(origin)) {\n this.origin = origin.closest('button:not([disabled])') || (this.triggerRef.nativeElement.firstChild as HTMLElement);\n\n if (!this.origin) {\n this.origin = origin.closest('a');\n }\n\n if (!this.origin) {\n this.origin = origin;\n }\n }\n\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher\n .ancestorScrolled(this.origin)\n .pipe(takeUntil(this.destroy$))\n .subscribe((event: CdkScrollable) => {\n if (!this.isVisible(this.origin, event ? event.getElementRef().nativeElement : this.document.querySelector('body'))) {\n this.closeDropdown();\n }\n });\n\n const positionStrategy = this.isRightClickEnabled ? this.getContextualMenuPositionStrategy() : this.getPositionStrategy();\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n backdropClass: 'eui-dropdown__backdrop',\n panelClass: 'eui-dropdown__panel',\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n });\n this.overlayRef.attach(this.templatePortal);\n\n if (this.isRightClickEnabled) {\n this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n }\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.closeDropdown();\n });\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.closeDropdown();\n });\n this.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe((keyboardEvent) => {\n if (keyboardEvent.key?.toLowerCase() === 'escape') {\n this.closeDropdown();\n }\n });\n\n if (this.hasDropdownItems) {\n this.euiDropdownItems.toArray().forEach((euiDropdownItem, i) => {\n if (this.isExpandOnHover) {\n this.euiDropdownItemsEventSubscriptions[i] = fromEvent(\n euiDropdownItem.elementRef.nativeElement,\n 'mouseenter',\n ).pipe(takeUntil(this.destroy$)).subscribe((e: MouseEvent) => {\n this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n if (this.activeDescendantKeyManager.activeItem?.subDropdown) {\n this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);\n this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();\n this.keydownListenerSubscription.unsubscribe();\n }\n\n const triggerOutsidePointerEvents = (subDropdown: EuiDropdownComponent): void => {\n subDropdown?.overlayRef?._outsidePointerEvents.next(e);\n\n if (subDropdown?.hasDropdownItems) {\n subDropdown.euiDropdownItems.toArray().forEach((s) => {\n triggerOutsidePointerEvents(s.subDropdown);\n });\n }\n };\n\n this.euiDropdownItems\n .filter((item) => !item.isActive)\n .forEach((euiDropdownItemHavingSubDropdown) => {\n triggerOutsidePointerEvents(euiDropdownItemHavingSubDropdown.subDropdown);\n });\n });\n } else {\n this.euiDropdownItemsEventSubscriptions[i] = fromEvent(euiDropdownItem.elementRef.nativeElement, 'click').subscribe(\n () => {\n this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n if (this.activeDescendantKeyManager.activeItem.subDropdown) {\n this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n this.activeDescendantKeyManager.activeItem.subDropdown.overlayRef.detachBackdrop();\n this.keydownListenerSubscription.unsubscribe();\n }\n\n const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');\n if (this.isLabelUpdatedFromSelectedItem && labelElement) {\n (labelElement as HTMLElement).innerText = euiDropdownItem.elementRef.nativeElement.innerText;\n }\n },\n );\n }\n });\n\n this.activeDescendantKeyManager = new ActiveDescendantKeyManager(this.euiDropdownItems)\n .withHomeAndEnd(true)\n .withVerticalOrientation(true)\n .withWrap();\n this.activeDescendantKeyManager.setFirstItemActive();\n }\n\n this.createKeyboardHandlerSubscription();\n this.isOpen$.next(true);\n this.dropdownService.isDropdownOpen.emit(true);\n }\n }\n\n /**\n * Close a dropdown\n */\n public closeDropdown(recursively = false): void {\n this.isOpen$.next(false);\n this.expand.emit(false);\n this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n euiDropdownItemsEventSubscription.unsubscribe();\n });\n this.keydownListenerSubscription.unsubscribe();\n if (this.hasDropdownItems) {\n this.activeDescendantKeyManager?.setFirstItemActive();\n }\n this.scrollDispatcherSubscription.unsubscribe();\n this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n this.scrollSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.activeDescendantKeyManager = null;\n if (this.trapFocusAutoCapture) {\n this.origin.focus();\n }\n if (recursively && this.parentDropdown) {\n this.parentDropdown.closeDropdown(true);\n }\n\n this.dropdownService.isDropdownOpen.emit(false);\n }\n\n public projectContentChanged(): void {\n if (!this.isRightClickEnabled) {\n this.positionStrategy = this.getPositionStrategy();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n }\n\n public createKeyboardHandlerSubscription(): void {\n this.keydownListenerSubscription = fromEvent(document, 'keydown').subscribe((event: KeyboardEvent) => {\n if (this.isOpen) {\n if (\n event.code === 'Enter' &&\n !this.hasTabNavigation &&\n !this.activeDescendantKeyManager?.activeItem.elementRef?.nativeElement?.disabled\n ) {\n this.activeDescendantKeyManager?.activeItem.focus();\n this.isExpandOnHover\n ? this.activeDescendantKeyManager?.activeItem.mouseenter()\n : this.activeDescendantKeyManager?.activeItem.click();\n\n if (this.activeDescendantKeyManager?.activeItem.subDropdown) {\n this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n this.keydownListenerSubscription.unsubscribe();\n } else {\n this.closeDropdown();\n }\n event.preventDefault();\n } else if (event.code === 'ArrowLeft') {\n if (this.parentDropdown) {\n this.parentDropdown.createKeyboardHandlerSubscription();\n this.closeDropdown();\n }\n event.preventDefault();\n } else if (event.code === 'ArrowRight') {\n if (this.activeDescendantKeyManager?.activeItem.subDropdown) {\n this.activeDescendantKeyManager.activeItem.focus();\n this.isExpandOnHover\n ? this.activeDescendantKeyManager.activeItem.mouseenter()\n : this.activeDescendantKeyManager.activeItem.click();\n this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n this.keydownListenerSubscription.unsubscribe();\n }\n event.preventDefault();\n } else if (event.code === 'Tab' && !this.hasTabNavigation) {\n this.closeDropdown(true);\n } else {\n this.activeDescendantKeyManager?.onKeydown(event);\n }\n\n this.cd.markForCheck();\n }\n });\n }\n\n public setParentDropdown(parentDropdown: EuiDropdownComponent): void {\n this.parentDropdown = parentDropdown;\n this.position = 'right';\n this.setPosition();\n\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef.updatePositionStrategy(positionStrategy);\n }\n\n private get hasDropdownItems(): boolean {\n return this.euiDropdownItems?.length > 0;\n }\n\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions([\n new ConnectionPositionPair(\n { originX: this.originX, originY: this.originY },\n { overlayX: this.overlayX, overlayY: this.overlayY },\n ),\n ])\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n private getContextualMenuPositionStrategy(): GlobalPositionStrategy {\n if(isPlatformServer(this.platformId)) {\n throw new Error('getContextualMenuPositionStrategy is not supported on the server');\n }\n const panelHeight = this.overlayRef?.overlayElement.clientHeight || 0;\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n const newX = this.mousePositionX + (this.initialScrollX - scrollX);\n const newY = this.mousePositionY + (this.initialScrollY - scrollY);\n const menuBottomPosition = newY + panelHeight;\n const isMenuBelowWindowBottom = menuBottomPosition > window.innerHeight;\n\n const positionStrategy = this.overlay\n .position()\n .global()\n .left(newX + 'px');\n\n if (isMenuBelowWindowBottom) {\n positionStrategy.bottom(window.innerHeight - newY + 'px');\n } else {\n positionStrategy.top(newY + 'px');\n }\n\n return positionStrategy;\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private isTriggerFocusableOnClose(origin: HTMLElement): boolean {\n return origin.matches('button:not([disabled])') || origin.matches('a');\n }\n\n private setPosition(): void {\n if (this.position === 'top') {\n this.originY = 'top';\n this.overlayY = 'bottom';\n\n if (this.isDropDownRightAligned) {\n this.originX = 'end';\n this.overlayX = 'end';\n }\n }\n if (this.position === 'right') {\n this.originX = 'end';\n this.overlayX = 'start';\n this.overlayY = 'center';\n }\n if (this.position === 'bottom') {\n this.originY = 'bottom';\n this.overlayY = 'top';\n\n if (this.isDropDownRightAligned) {\n this.originX = 'end';\n this.overlayX = 'end';\n }\n }\n if (this.position === 'left') {\n this.originX = 'start';\n this.overlayX = 'end';\n this.overlayY = 'center';\n }\n }\n}\n","<div #triggerRef class=\"eui-dropdown__trigger-container\"\n (click)=\"!isRightClickEnabled ? onTriggerClicked($event) : null\"\n (contextmenu)=\"isRightClickEnabled ? onTriggerRightClicked($event) : null\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container eui-18\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\"\n (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiDropdownComponent } from './eui-dropdown.component';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownContentDirective } from './directives/eui-dropdown-content.directive';\nimport { EuiDropdownService } from './eui-dropdown.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, ScrollingModule, A11yModule, EuiIconModule, ObserversModule],\n declarations: [EuiDropdownComponent, EuiDropdownItemComponent, EuiDropdownContentDirective],\n exports: [EuiDropdownComponent, EuiDropdownItemComponent, EuiDropdownContentDirective],\n providers: [EuiDropdownService],\n})\nexport class EuiDropdownModule {}\n\n@NgModule({})\nexport class EuiDropdownContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.EuiDropdownService"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-dropdown.mjs","sources":["../../eui-dropdown/dropdown-item/eui-dropdown-item.component.ts","../../eui-dropdown/dropdown-item/eui-dropdown-item.component.html","../../eui-dropdown/directives/eui-dropdown-content.directive.ts","../../eui-dropdown/animations/open-close.ts","../../eui-dropdown/eui-dropdown.service.ts","../../eui-dropdown/eui-dropdown.component.ts","../../eui-dropdown/eui-dropdown.component.html","../../eui-dropdown/eui-dropdown.module.ts","../../eui-dropdown/eui-components-eui-dropdown.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ElementRef,\n booleanAttribute,\n} from '@angular/core';\nimport { FocusableOption, Highlightable } from '@angular/cdk/a11y';\n\nimport { EuiDropdownComponent } from '../eui-dropdown.component';\n\n@Component({\n selector: 'eui-dropdown-item, [euiDropdownItem]',\n templateUrl: './eui-dropdown-item.component.html',\n styleUrls: ['../styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDropdownItemComponent implements Highlightable, FocusableOption {\n @Input() subDropdown: EuiDropdownComponent;\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-dropdown-item',\n this.isActive ? 'eui-dropdown-item--active' : '',\n this.subDropdown ? 'eui-dropdown-item--has-subdropdown' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @Input({ transform: booleanAttribute }) isActive: boolean;\n\n constructor(public elementRef: ElementRef) {}\n\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public click(): void {\n this.elementRef.nativeElement.click();\n }\n\n public mouseenter(): void {\n const mouseenterEvent = new Event('mouseenter');\n this.elementRef.nativeElement.dispatchEvent(mouseenterEvent);\n }\n}\n","<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"chevron-forward:sharp\" size=\"s\" fillColor=\"neutral\"></eui-icon-svg>\n </div>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'eui-dropdown-content' })\nexport class EuiDropdownContentDirective {\n @HostBinding('attr.role') role = 'menu';\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const openClose = trigger('openClose', [\n state(\n 'open',\n style({\n opacity: 1,\n transform: 'scale(1)',\n }),\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n transform: 'scale(0.9)',\n }),\n ),\n transition('closed => open', [animate('50ms 25ms linear')]),\n]);\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class EuiDropdownService {\n isDropdownOpen = new EventEmitter<boolean>();\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ViewContainerRef,\n ViewChild,\n TemplateRef,\n ContentChildren,\n QueryList,\n ElementRef,\n Renderer2,\n booleanAttribute,\n EventEmitter,\n Inject,\n PLATFORM_ID,\n Output,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport {\n CdkScrollable,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n GlobalPositionStrategy,\n Overlay,\n OverlayRef,\n ScrollDispatcher,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, fromEvent, Subject, Subscription, takeUntil } from 'rxjs';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\n\nimport { openClose } from './animations/open-close';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownService } from './eui-dropdown.service';\n\n@Component({\n selector: 'eui-dropdown',\n templateUrl: './eui-dropdown.component.html',\n styleUrls: ['./styles/_index.scss'],\n animations: [openClose],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDropdownComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() e2eAttr = 'eui-dropdown';\n @Input() tabIndex = -1;\n @Input() width = 'auto';\n @Input() position: 'top' | 'right' | 'bottom' | 'left' = 'bottom';\n @Input({ transform: booleanAttribute }) isBlock = false;\n @Input({ transform: booleanAttribute }) isDropDownRightAligned = false;\n @Input({ transform: booleanAttribute }) hasClosedOnClickInside = true;\n @Input({ transform: booleanAttribute }) isLabelUpdatedFromSelectedItem = false;\n @Input({ transform: booleanAttribute }) isExpandOnHover = false;\n @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n @Input({ transform: booleanAttribute }) isRightClickEnabled = false;\n @Input({ transform: booleanAttribute }) euiDisabled = false;\n\n @Output() expand: EventEmitter<boolean> = new EventEmitter();\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n @ViewChild('triggerRef') triggerRef: ElementRef<HTMLElement>;\n @ContentChildren(EuiDropdownItemComponent, { descendants: true }) euiDropdownItems: QueryList<Highlightable & EuiDropdownItemComponent>;\n\n public trapFocusAutoCapture = true;\n public parentDropdown: EuiDropdownComponent;\n\n private mousePositionX = 0;\n private mousePositionY = 0;\n private initialScrollX = 0;\n private initialScrollY = 0;\n private originX: 'start' | 'end' | 'center' = 'start';\n private originY: 'top' | 'bottom' | 'center' = 'bottom';\n private overlayX: 'start' | 'end' | 'center' = 'start';\n private overlayY: 'top' | 'bottom' | 'center' = 'top';\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$ = new Subject<boolean>();\n private isOpen$ = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private keydownListenerSubscription = new Subscription();\n private euiDropdownItemsEventSubscriptions: Subscription[] = [];\n private activeDescendantKeyManagerChangeSubscription = new Subscription();\n private activeDescendantKeyManager: ActiveDescendantKeyManager<EuiDropdownItemComponent>;\n private origin: HTMLElement;\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private scrollSubscription = new Subscription();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-dropdown',\n this.isBlock ? 'eui-dropdown--block' : '',\n this.isRightClickEnabled ? 'eui-dropdown--contextual-menu' : '',\n ].join(' ').trim();\n }\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private dropdownService: EuiDropdownService,\n private cd: ChangeDetectorRef,\n protected _renderer: Renderer2,\n @Inject(PLATFORM_ID) protected platformId: unknown,\n @Inject(DOCUMENT) private document: Document,\n ) {\n }\n\n ngOnInit(): void {\n // Currently the `cdkTrapFocusAutoCapture` is only checked once on init.\n if (this.hasDropdownItems) {\n this.trapFocusAutoCapture = false;\n } else {\n this.trapFocusAutoCapture = true;\n }\n\n if (this.hasTabNavigation) {\n this.trapFocusAutoCapture = true;\n this.hasClosedOnClickInside = false;\n }\n\n if (this.isRightClickEnabled) {\n this.hasTabNavigation = false; // UX wise, contextual menu contains only menu items accessible through arrow keys nav\n }\n\n this.setPosition();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n\n if(this.triggerRef && this.triggerRef.nativeElement.firstChild){\n this._renderer.setAttribute(this.triggerRef.nativeElement.firstChild, 'aria-haspopup', 'true');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n euiDropdownItemsEventSubscription.unsubscribe();\n });\n this.keydownListenerSubscription.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.activeDescendantKeyManager = null;\n this.scrollSubscription.unsubscribe();\n }\n\n /**\n * Whether the eui-dropdown is open.\n *\n * @usageNotes\n * ```html\n * <eui-dropdown #dropdown>\n * <my-component *ngIf=\"dropdown.isOpen\"></my-component>\n * </eui-dropdown>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n public onTriggerClicked(e: Event): void {\n if (\n !(e.target as HTMLElement).querySelector('.disabled') &&\n !(e.target as HTMLElement).querySelector(':disabled') &&\n !this.isOpen\n ) {\n if (this.isBlock) {\n this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n }\n\n this.openDropdown(e.target as HTMLElement);\n this.expand.emit(true);\n e.stopPropagation();\n }\n }\n\n public onTriggerRightClicked(e: Event): void {\n if (\n !(e.target as HTMLElement).querySelector('.disabled') &&\n !(e.target as HTMLElement).querySelector(':disabled') &&\n !this.isOpen\n ) {\n if (this.isBlock) {\n this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n }\n\n this.mousePositionX = (e as PointerEvent).clientX;\n this.mousePositionY = (e as PointerEvent).clientY;\n if(isPlatformBrowser(this.platformId)) {\n this.initialScrollX = window.pageXOffset;\n this.initialScrollY = window.pageYOffset;\n }\n\n this.openDropdown(e.target as HTMLElement);\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n public onClick(): void {\n if (\n this.hasClosedOnClickInside &&\n !this.activeDescendantKeyManager?.activeItem.subDropdown &&\n !this.activeDescendantKeyManager?.activeItem.elementRef?.nativeElement?.disabled\n ) {\n this.closeDropdown(true);\n }\n }\n\n /**\n * Open a dropdown\n *\n * @param origin Origin of the dropdown position\n */\n public openDropdown(origin: HTMLElement, position?: { x: number, y: number }): void {\n this.origin = origin;\n\n if (position) {\n this.mousePositionX = position.x;\n this.mousePositionY = position.y;\n if(isPlatformBrowser(this.platformId)) {\n this.initialScrollX = window.pageXOffset;\n this.initialScrollY = window.pageYOffset;\n }\n }\n\n if (this.isRightClickEnabled) {\n this.scrollSubscription = fromEvent(window, 'scroll').subscribe((event: Event) => {\n this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n });\n }\n\n if (!this.isTriggerFocusableOnClose(origin)) {\n this.origin = origin.closest('button:not([disabled])') || (this.triggerRef.nativeElement.firstChild as HTMLElement);\n\n if (!this.origin) {\n this.origin = origin.closest('a');\n }\n\n if (!this.origin) {\n this.origin = origin;\n }\n }\n\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher\n .ancestorScrolled(this.origin)\n .pipe(takeUntil(this.destroy$))\n .subscribe((event: CdkScrollable) => {\n if (!this.isVisible(this.origin, event ? event.getElementRef().nativeElement : this.document.querySelector('body'))) {\n this.closeDropdown();\n }\n });\n\n const positionStrategy = this.isRightClickEnabled ? this.getContextualMenuPositionStrategy() : this.getPositionStrategy();\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n backdropClass: 'eui-dropdown__backdrop',\n panelClass: 'eui-dropdown__panel',\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n });\n this.overlayRef.attach(this.templatePortal);\n\n if (this.isRightClickEnabled) {\n this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n }\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.closeDropdown();\n });\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.closeDropdown();\n });\n this.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe((keyboardEvent) => {\n if (keyboardEvent.key?.toLowerCase() === 'escape') {\n this.closeDropdown();\n }\n });\n\n if (this.hasDropdownItems) {\n this.euiDropdownItems.toArray().forEach((euiDropdownItem, i) => {\n if (this.isExpandOnHover) {\n this.euiDropdownItemsEventSubscriptions[i] = fromEvent(\n euiDropdownItem.elementRef.nativeElement,\n 'mouseenter',\n ).pipe(takeUntil(this.destroy$)).subscribe((e: MouseEvent) => {\n this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n if (this.activeDescendantKeyManager.activeItem?.subDropdown) {\n this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);\n this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();\n this.keydownListenerSubscription.unsubscribe();\n }\n\n const triggerOutsidePointerEvents = (subDropdown: EuiDropdownComponent): void => {\n subDropdown?.overlayRef?._outsidePointerEvents.next(e);\n\n if (subDropdown?.hasDropdownItems) {\n subDropdown.euiDropdownItems.toArray().forEach((s) => {\n triggerOutsidePointerEvents(s.subDropdown);\n });\n }\n };\n\n this.euiDropdownItems\n .filter((item) => !item.isActive)\n .forEach((euiDropdownItemHavingSubDropdown) => {\n triggerOutsidePointerEvents(euiDropdownItemHavingSubDropdown.subDropdown);\n });\n });\n } else {\n this.euiDropdownItemsEventSubscriptions[i] = fromEvent(\n euiDropdownItem.elementRef.nativeElement,\n 'click',\n ).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n if (this.activeDescendantKeyManager.activeItem?.subDropdown) {\n this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);\n this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();\n this.keydownListenerSubscription.unsubscribe();\n }\n\n const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');\n if (this.isLabelUpdatedFromSelectedItem && labelElement) {\n (labelElement as HTMLElement).innerText = euiDropdownItem.elementRef.nativeElement.innerText;\n }\n });\n }\n });\n\n this.activeDescendantKeyManager = new ActiveDescendantKeyManager(this.euiDropdownItems)\n .withHomeAndEnd(true)\n .withVerticalOrientation(true)\n .withWrap();\n this.activeDescendantKeyManager.setFirstItemActive();\n }\n\n this.createKeyboardHandlerSubscription();\n this.isOpen$.next(true);\n this.dropdownService.isDropdownOpen.emit(true);\n }\n }\n\n /**\n * Close a dropdown\n */\n public closeDropdown(recursively = false): void {\n this.isOpen$.next(false);\n this.expand.emit(false);\n this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n euiDropdownItemsEventSubscription.unsubscribe();\n });\n this.keydownListenerSubscription.unsubscribe();\n if (this.hasDropdownItems) {\n this.activeDescendantKeyManager?.setFirstItemActive();\n }\n this.scrollDispatcherSubscription.unsubscribe();\n this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n this.scrollSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.activeDescendantKeyManager = null;\n if (this.trapFocusAutoCapture) {\n this.origin.focus();\n }\n if (recursively && this.parentDropdown) {\n this.parentDropdown.closeDropdown(true);\n }\n\n this.dropdownService.isDropdownOpen.emit(false);\n }\n\n public projectContentChanged(): void {\n if (!this.isRightClickEnabled) {\n this.positionStrategy = this.getPositionStrategy();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n }\n\n public createKeyboardHandlerSubscription(): void {\n this.keydownListenerSubscription = fromEvent(document, 'keydown').subscribe((event: KeyboardEvent) => {\n if (this.isOpen) {\n if (\n event.code === 'Enter' &&\n !this.hasTabNavigation &&\n !this.activeDescendantKeyManager?.activeItem.elementRef?.nativeElement?.disabled\n ) {\n this.activeDescendantKeyManager?.activeItem.focus();\n this.isExpandOnHover\n ? this.activeDescendantKeyManager?.activeItem.mouseenter()\n : this.activeDescendantKeyManager?.activeItem.click();\n\n if (this.activeDescendantKeyManager?.activeItem.subDropdown) {\n this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n this.keydownListenerSubscription.unsubscribe();\n } else {\n this.closeDropdown();\n }\n event.preventDefault();\n } else if (event.code === 'ArrowLeft') {\n if (this.parentDropdown) {\n this.parentDropdown.createKeyboardHandlerSubscription();\n this.closeDropdown();\n }\n event.preventDefault();\n } else if (event.code === 'ArrowRight') {\n if (this.activeDescendantKeyManager?.activeItem.subDropdown) {\n this.activeDescendantKeyManager.activeItem.focus();\n this.isExpandOnHover\n ? this.activeDescendantKeyManager.activeItem.mouseenter()\n : this.activeDescendantKeyManager.activeItem.click();\n this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n this.keydownListenerSubscription.unsubscribe();\n }\n event.preventDefault();\n } else if (event.code === 'Tab' && !this.hasTabNavigation) {\n this.closeDropdown(true);\n } else {\n this.activeDescendantKeyManager?.onKeydown(event);\n }\n\n this.cd.markForCheck();\n }\n });\n }\n\n public setParentDropdown(parentDropdown: EuiDropdownComponent): void {\n this.parentDropdown = parentDropdown;\n this.position = 'right';\n this.setPosition();\n\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef.updatePositionStrategy(positionStrategy);\n }\n\n private get hasDropdownItems(): boolean {\n return this.euiDropdownItems?.length > 0;\n }\n\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions([\n new ConnectionPositionPair(\n { originX: this.originX, originY: this.originY },\n { overlayX: this.overlayX, overlayY: this.overlayY },\n ),\n ])\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n private getContextualMenuPositionStrategy(): GlobalPositionStrategy {\n if(isPlatformServer(this.platformId)) {\n throw new Error('getContextualMenuPositionStrategy is not supported on the server');\n }\n const panelHeight = this.overlayRef?.overlayElement.clientHeight || 0;\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n const newX = this.mousePositionX + (this.initialScrollX - scrollX);\n const newY = this.mousePositionY + (this.initialScrollY - scrollY);\n const menuBottomPosition = newY + panelHeight;\n const isMenuBelowWindowBottom = menuBottomPosition > window.innerHeight;\n\n const positionStrategy = this.overlay\n .position()\n .global()\n .left(newX + 'px');\n\n if (isMenuBelowWindowBottom) {\n positionStrategy.bottom(window.innerHeight - newY + 'px');\n } else {\n positionStrategy.top(newY + 'px');\n }\n\n return positionStrategy;\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private isTriggerFocusableOnClose(origin: HTMLElement): boolean {\n return origin.matches('button:not([disabled])') || origin.matches('a');\n }\n\n private setPosition(): void {\n if (this.position === 'top') {\n this.originY = 'top';\n this.overlayY = 'bottom';\n\n if (this.isDropDownRightAligned) {\n this.originX = 'end';\n this.overlayX = 'end';\n }\n }\n if (this.position === 'right') {\n this.originX = 'end';\n this.overlayX = 'start';\n this.overlayY = 'center';\n }\n if (this.position === 'bottom') {\n this.originY = 'bottom';\n this.overlayY = 'top';\n\n if (this.isDropDownRightAligned) {\n this.originX = 'end';\n this.overlayX = 'end';\n }\n }\n if (this.position === 'left') {\n this.originX = 'start';\n this.overlayX = 'end';\n this.overlayY = 'center';\n }\n }\n}\n","<div #triggerRef class=\"eui-dropdown__trigger-container\"\n (click)=\"!isRightClickEnabled ? onTriggerClicked($event) : null\"\n (contextmenu)=\"isRightClickEnabled ? onTriggerRightClicked($event) : null\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container eui-18\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\"\n (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiDropdownComponent } from './eui-dropdown.component';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownContentDirective } from './directives/eui-dropdown-content.directive';\nimport { EuiDropdownService } from './eui-dropdown.service';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, ScrollingModule, A11yModule, EuiIconModule, ObserversModule],\n declarations: [EuiDropdownComponent, EuiDropdownItemComponent, EuiDropdownContentDirective],\n exports: [EuiDropdownComponent, EuiDropdownItemComponent, EuiDropdownContentDirective],\n providers: [EuiDropdownService],\n})\nexport class EuiDropdownModule {}\n\n@NgModule({})\nexport class EuiDropdownContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.EuiDropdownService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eui/components",
3
- "version": "18.2.1-snapshot-1729164911060",
4
- "tag": "snapshot",
3
+ "version": "18.2.1",
4
+ "tag": "latest",
5
5
  "description": "eUI components package",
6
6
  "homepage": "https://eui.ecdevops.eu",
7
7
  "author": "ec.europa.eui@gmail.com",
@@ -10,8 +10,8 @@
10
10
  "url": "https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/eui"
11
11
  },
12
12
  "peerDependencies": {
13
- "@eui/core": "18.2.1-snapshot-1729164911060",
14
- "@eui/base": "18.2.1-snapshot-1729164911060",
13
+ "@eui/core": "18.2.1",
14
+ "@eui/base": "18.2.1",
15
15
  "@angular/common": "^18.0.0",
16
16
  "@angular/core": "^18.0.0",
17
17
  "@angular/forms": "^18.0.0",