barsa-sap-ui 2.0.42 → 2.0.43

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.
@@ -100,6 +100,7 @@ export class UiUlvMainUiComponent extends BaseComponent {
100
100
  this.selectedSearchPanelSettings$ = this._ulvMainService.selectedSearchPanelSettings$;
101
101
  this.selectedSearchPanelSettingsId$ = this._ulvMainService.selectedSearchPanelSettingsId$;
102
102
  this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
103
+ this.context.fireEvent('render', this);
103
104
  }
104
105
  onClose() {
105
106
  this._router.navigate(['../..'], { relativeTo: this._activatedRoute });
@@ -286,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
286
287
  }], fullscreen: [{
287
288
  type: Input
288
289
  }] } });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRZCxpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7OztBQVN6SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQVVuRCxJQUNJLG9CQUFvQixDQUFDLEdBQUc7UUFDeEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENB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LEVBQUUsS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLElBQUksR0FBRyxFQUFFLENBQUM7d0JBQ04sUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDbEQsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDM0UsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F0U1Esb0JBQW9CO2tHQUFwQixvQkFBb0IsMFdBSGxCLENBQUMsY0FBYyxDQUFDLGdGQWFoQixvQkFBb0IsdUVDdERuQyx1M0RBd0NBOzsyRkRJYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksb0JBQW9CLGFBR25CLENBQUMsY0FBYyxDQUFDLG1CQUNWLHVCQUF1QixDQUFDLE1BQU07MFRBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVpQyxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDSixTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFFM0Isb0JBQW9CO3NCQUR2QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFPbEIsVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgUGFnaW5nU2V0dGluZyxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBTZWFyY2hQYW5lbFNldHRpbmdzLFxyXG4gICAgQnJlYWRDcnVtYkluZm8sXHJcbiAgICBCcmVhZGNydW1iU2VydmljZSxcclxuICAgIENvbHVtbkluZm9UeXBlLFxyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXHJcbiAgICBMYXlvdXRTZXR0aW5nXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWFuYWdlRmlsdGVyc1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL21hbmFnZS1maWx0ZXJzLXJlcG9ydC9tYW5hZ2UtZmlsdGVycy1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQgfSBmcm9tICcuLi9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUvcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS9yZXBvcnQtc2VhcmNoLWZpZWxkcy1tYW5hZ2UuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktdWx2LW1haW4tdWknLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtVbHZNYWluU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlVbHZNYWluVWlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGlzUmVwb3J0UGFnZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxheW91dEluZm86IExheW91dFNldHRpbmc7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLXJlYWRvbmx5JykgcmVhZG9ubHk7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRyb2wtZGlzYWJsZWQnKSBkaXNhYmxlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXJnaW4tdWx2JykgbWFyZ2luVWx2O1xyXG4gICAgQFZpZXdDaGlsZChTZWFyY2hQYW5lbENvbXBvbmVudClcclxuICAgIHNldCBzZWFyY2hQYW5lbENvbXBvbmVudCh2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUGFuZWxMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgc2V0IGZ1bGxzY3JlZW4odmFsOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0RnVsbHNjcmVlbih2YWwpO1xyXG4gICAgfVxyXG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzOiBTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkO1xyXG4gICAgZmlyc3RBcHBseUF1dG9tYXRpY2FsbHkgPSB0cnVlO1xyXG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICB2aXdlck1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgdmlld2VyJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgcGFnaW5nU2V0dGluZyQ6IE9ic2VydmFibGU8UGFnaW5nU2V0dGluZyB8IG51bGw+O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIHNlYXJjaFBhbmVsVWkkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBoaWRlU2VhcmNoUGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHJlcG9ydElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgc2VhcmNoUGFuZWxNb0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ6IE9ic2VydmFibGU8U2VhcmNoUGFuZWxTZXR0aW5nc1tdPjtcclxuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJDogT2JzZXJ2YWJsZTxTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkPjtcclxuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XHJcbiAgICBicmVhZENydW1icyQ6IE9ic2VydmFibGU8QnJlYWRDcnVtYkluZm9bXT47XHJcbiAgICBjYW5TYXZlR3JpZFNldHRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgc2VhcmNoUGFuZWxMb2FkZWQ6IGJvb2xlYW47XHJcbiAgICBpc0Fub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaGFzU2VhcmNoUGFuZWw6IGJvb2xlYW47XHJcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcclxuICAgIGxhbmRzY2FwZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBzdGFuZGFsb25lJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgICBwcml2YXRlIGRlZmF1bHREaWFsb2dDb25maWcgPSB7XHJcbiAgICAgICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxyXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICBtaW5XaWR0aDogZ2V0RGV2aWNlSXNNb2JpbGUoKSA/ICcnIDogJzUwcmVtJyxcclxuICAgICAgICBib2R5TWluSGVpZ2h0OiBnZXREZXZpY2VJc01vYmlsZSgpID8gJycgOiAnY2FsYyg1MHZoIC0gODhweCknLFxyXG4gICAgICAgIG1vYmlsZTogZ2V0RGV2aWNlSXNNb2JpbGUoKVxyXG4gICAgfTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIGNvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxyXG4gICAgICAgIF9icmFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IGNvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcclxuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xyXG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYnMkID0gX2JyYWRjcnVtYlNlcnZpY2UuYnJlYWRjcnVtYnMkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SW5EaWFsb2codGhpcy5pbkRpYWxvZyk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SXNNdWx0aVNlbGVjdCh0aGlzLmlzTXVsdGlTZWxlY3QpO1xyXG4gICAgICAgIC8vIGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJylcclxuICAgICAgICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxyXG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgZS50YXJnZXQgJiZcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgIT09IGUudGFyZ2V0ICYmXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgIXRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkgJiZcclxuICAgICAgICAvLyAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVxyXG4gICAgICAgIC8vICAgICAgICAgKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SW5saW5lRWRpdChmYWxzZSk7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5tYXJnaW5VbHYgPSAhdGhpcy5pc1JlcG9ydFBhZ2U7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHQuU2V0dGluZy5TZWFyY2hQYW5lbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0Fub255bW91cyQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmlzQW5vbnltb3VzJDtcclxuICAgICAgICB0aGlzLmhpZGVTZWFyY2hQYW5lbCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWwkO1xyXG5cclxuICAgICAgICB0aGlzLnRpdGxlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuVGl0bGUnLCAnJyk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0Q29udGV4dCh0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldExheW91dEluZm8odGhpcy5sYXlvdXRJbmZvKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5sb2FkU2VhcmNoUGFuZWxTZXR0aW5ncygpO1xyXG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tYXNrJDtcclxuICAgICAgICB0aGlzLnZpd2VyTWFzayQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aXdlck1hc2skO1xyXG4gICAgICAgIHRoaXMuY2FuU2F2ZUdyaWRTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNhblNhdmVHcmlkU2V0dGluZyQ7XHJcbiAgICAgICAgdGhpcy5wYWdpbmdTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2luZ1NldHRpbmckO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxNb0NoYW5nZWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQkO1xyXG4gICAgICAgIHRoaXMuaGFzU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpICE9PSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxVaSQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpJDtcclxuICAgICAgICB0aGlzLnN0YW5kYWxvbmUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5zdGFuZGFsb25lJDtcclxuICAgICAgICB0aGlzLmxhbmRzY2FwZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmxhbmRzY2FwZSQ7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRJZCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5yZXBvcnRJZCQ7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVhZG9ubHkkLnN1YnNjcmliZSgocmVhZG9ubHkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmVuYWJsZSQuc3Vic2NyaWJlKChlbmFibGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlID0gIWVuYWJsZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LlRpdGxlID09PSBiPy5UaXRsZSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuYXBwbHlTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5IaWRlU2VhcmNoUGFuZWwpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnZpZXdlciQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aWV3ZXIkO1xyXG4gICAgICAgIHRoaXMuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5hbGxTZWFyY2hQYW5lbFNldHRpbmdzJDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkO1xyXG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSB9KTtcclxuICAgIH1cclxuICAgIG9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0U2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBvblBhZ2VDaGFuZ2UoZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnZUNoYW5nZWQoZSk7XHJcbiAgICB9XHJcbiAgICBvbk9wZW5NYW5hZ2VGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBmb2N1c1RyYXBwZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIG1vYmlsZTogdGhpcy5pc01vYmlsZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvZ2dsZUhpZGVTZWFyY2hwYW5lbChjb2xsYXBzZWQpO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKHRydWUpO1xyXG4gICAgfVxyXG4gICAgb25IaWRlU2VhcmNoUGFuZWxDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbHRlclNhdmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2F2ZUZpbHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRmlsdGVyU2F2ZUFzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29wZW5TYXZlQXNGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29wZW5TZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRmlsdGVyc01hbmFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xlYXJTZWFyY2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuY2xlYXJTZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNlYXJjaCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNoYW5nZVNlbGVjdGVkU2VhcmNoUGFuZWwoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKEJhcnNhQXBpLkNvbW1vbi5VdGlsLlJlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGxpc3Q6IHsgaTogYW55OyBuOiBhbnk7IGE6IGFueSB9W10gPSBbXTtcclxuICAgICAgICBjb25zdCBoID0gZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGlzdFtpXSA9IHtcclxuICAgICAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgICAgICBuOiBoW2ldLFxyXG4gICAgICAgICAgICAgICAgYTogaFtpXS5pbm5lckhUTUxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGlzdCA9IGxpc3QucmV2ZXJzZSgpO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICAgICAgY29uc3QgdCA9IGAuZmQtdGFibGVfX2NlbGwtLWFjdGl2YWJsZTphY3RpdmUgKiwuZmQtdGFibGVfX3Jvdy0tYWN0aXZhYmxlLmlzLWFjdGl2ZSAqLC5mZC10YWJsZV9fcm93LS1hY3RpdmFibGU6YWN0aXZlICp7Y29sb3I6dmFyKC0tc2FwTGlzdF9BY3RpdmVfVGV4dENvbG9yKSFpbXBvcnRhbnR9YDtcclxuICAgICAgICAvKiBlc2xpbnQtZW5hYmxlICovXHJcbiAgICAgICAgY29uc3QgZiA9IGxpc3QuZmlsdGVyKChjKSA9PiBjLmEuaW5kZXhPZih0KSA+PSAwKTtcclxuICAgICAgICBpZiAoZi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlJlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgZlswXS5uLmlubmVySFRNTCA9IGZbMF0uYS5zbGljZSgwLCAxMDA1OCkgKyBmWzBdLmEuc2xpY2UoMTAwNTggKyB0Lmxlbmd0aCwgZlswXS5hLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2V0U2VhcmNoUGFuZWxNb0NoYW5nZWQoY2hhbmdlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQoY2hhbmdlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vcGVuU2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmllbGRzU2V0dGluZyA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdldFNlYXJjaFBhbmVsRmllbGRzU2V0dGluZygpO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxyXG4gICAgICAgICAgICBtaW5XaWR0aDogJzI1cmVtJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgZmllbGRzOiBbLi4uZmllbGRzU2V0dGluZ11cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50LCBjb25maWcpO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZXR0aW5nOiBDb2x1bW5JbmZvVHlwZVtdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRBbmRBcHBseVNlYXJjaFBhbmVsU2V0dGluZ0ZpZWxkc1NldHRpbmcoc2V0dGluZyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfb3BlblNhdmVBc0ZpbHRlcigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWFyY2hNbyA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdldFNlYXJjaFBhbmVsTW8oKTtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICBjb25zdCBmaWVsZHNTZXR0aW5nID0gc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5GaWVsZHNTZXR0aW5nO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxyXG4gICAgICAgICAgICBtaW5XaWR0aDogJzI1cmVtJyxcclxuICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgc2VhcmNoTW8sXHJcbiAgICAgICAgICAgICAgICBmaWVsZHNTZXR0aW5nLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0SWQ6IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQsIGNvbmZpZyk7XHJcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHNlYXJjaFBhbmVsU2V0dGluZzogU2VhcmNoUGFuZWxTZXR0aW5ncykgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc2VhcmNoUGFuZWxTZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hQYW5lbFNldHRpbmcuSGlkZVNlYXJjaFBhbmVsID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuYWRkU2VhcmNoUGFuZWxTZXR0aW5ncyhzZWFyY2hQYW5lbFNldHRpbmcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zYXZlRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyA9IHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpIHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzLkhpZGVTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbDtcclxuICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2F2ZVNlYXJjaFBhbmVsU2V0dGluZyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX29wZW5TZWFyY2hGaWx0ZXJzTWFuYWdlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLl91bHZNYWluU2VydmljZS5hbGxTZWFyY2hQYW5lbFNldHRpbmdzO1xyXG4gICAgICAgIGNvbnN0IHJlcG9ydElkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucmVwb3J0SWQ7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmRlZmF1bHREaWFsb2dDb25maWcsXHJcbiAgICAgICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogYWxsU2VhcmNoUGFuZWxTZXR0aW5ncy5tYXAoKGMpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgVGl0bGU6IGMuVGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgSXNEZWZhdWx0OiBjLklzRGVmYXVsdCxcclxuICAgICAgICAgICAgICAgICAgICBJc1B1YmxpYzogYy5Jc1B1YmxpYyxcclxuICAgICAgICAgICAgICAgICAgICBJc1ByaW1hcnk6ICEhYy5Jc1ByaW1hcnksXHJcbiAgICAgICAgICAgICAgICAgICAgQXBwbHlBdXRvbWF0aWNhbGx5OiBjLkFwcGx5QXV0b21hdGljYWxseSxcclxuICAgICAgICAgICAgICAgICAgICBSZXBvcnRJZDogcmVwb3J0SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgSWQ6IGMuSWRcclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoRmllbGRzTWFuYWdlQ29tcG9uZW50LCBjb25maWcpO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZXR0aW5nOiBTZWFyY2hQYW5lbFNldHRpbmdzW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKHNldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgIHNldHRpbmdcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5Jc1ByaW1hcnkpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKG5ld1NldHRpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BzID0gYWxsU2VhcmNoUGFuZWxTZXR0aW5ncy5maW5kKChjKSA9PiBjLklkID09PSBuZXdTZXR0aW5nLklkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5NZXJnZShzcHMsIG5ld1NldHRpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS51cGRhdGVTZWFyY2hQYW5lbFNldHRpbmdzKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGJzdS1iYXJzYS11bHYtbWFpblxuICAgIFtzdHlsZS5tYXJnaW5dPVwiaXNSZXBvcnRQYWdlID8gbnVsbCA6ICd2YXIoLS1mZElucHV0X0ZpZWxkX01hcmdpbiwgLjI1cmVtIDApJ1wiXG4gICAgW2xheW91dEluZm9dPVwibGF5b3V0SW5mb1wiXG4gICAgW2F0dHIuaXNSZXBvcnRQYWdlXT1cImlzUmVwb3J0UGFnZVwiXG4gICAgW3ZpZXdlckNvbnRyb2xdPVwidmlld2VyJCB8IGFzeW5jXCJcbiAgICBbbG9hZGluZ109XCIobWFzayQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFt2aWV3ZXJMb2FkaW5nXT1cIih2aXdlck1hc2skIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICBbc3RhbmRhbG9uZV09XCIoc3RhbmRhbG9uZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbc2VhcmNoUGFuZWxVaV09XCIoc2VhcmNoUGFuZWxVaSQgfCBhc3luYykhIVwiXG4gICAgW2JyZWFkQ3J1bWJzXT1cIihicmVhZENydW1icyQgfCBhc3luYykhIVwiXG4gICAgW2FsbFNlYXJjaFBhbmVsU2V0dGluZ3NdPVwiKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkIHwgYXN5bmMpISFcIlxuICAgIFtpc0Fub255bW91c109XCIoaXNBbm9ueW1vdXMkIHwgYXN5bmMpISFcIlxuICAgIFtjYW5TYXZlR3JpZFNldHRpbmddPVwiKGNhblNhdmVHcmlkU2V0dGluZyQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc109XCIoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VhcmNoUGFuZWxNb0NoYW5nZWRdPVwiKHNlYXJjaFBhbmVsTW9DaGFuZ2VkJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWRdPVwiKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCB8IGFzeW5jKSEhXCJcbiAgICBbaGlkZVNlYXJjaFBhbmVsXT1cIihoaWRlU2VhcmNoUGFuZWwkIHwgYXN5bmMpISFcIlxuICAgIFtwYWdpbmdTZXR0aW5nXT1cIihwYWdpbmdTZXR0aW5nJCB8IGFzeW5jKSEhXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHkkIHwgYXN5bmNcIlxuICAgIChjbG9zZUV2ZW50KT1cIm9uQ2xvc2UoKVwiXG4gICAgKHNlYXJjaFBhbmVsTW9DaGFuZ2UpPVwib25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpXCJcbiAgICAob3Blbk1hbmFnZUZpbHRlcnMpPVwib25PcGVuTWFuYWdlRmlsdGVycygpXCJcbiAgICAoY29sbGFwc2VkQ2hhbmdlKT1cIm9uQ29sbGFwc2VkQ2hhbmdlKCRldmVudClcIlxuICAgIChoaWRlU2VhcmNoUGFuZWxDbGljayk9XCJvbkhpZGVTZWFyY2hQYW5lbENsaWNrKClcIlxuICAgIChmaWx0ZXJTYXZlKT1cIm9uRmlsdGVyU2F2ZSgpXCJcbiAgICAoZmlsdGVyU2F2ZUFzKT1cIm9uRmlsdGVyU2F2ZUFzKClcIlxuICAgIChzaG93RmlsdGVyRmllbGRzU2V0dGluZyk9XCJvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKClcIlxuICAgIChtYW5hZ2VGaWx0ZXJzKT1cIm9uTWFuYWdlRmlsdGVycygpXCJcbiAgICAoY2xlYXJTZWFyY2gpPVwib25DbGVhclNlYXJjaCgpXCJcbiAgICAoc2VhcmNoKT1cIm9uU2VhcmNoKClcIlxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoc2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyk9XCJvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MoJGV2ZW50KVwiXG4+XG48L2JzdS1iYXJzYS11bHYtbWFpbj5cbiJdfQ==
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRZCxpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7OztBQVN6SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQVVuRCxJQUNJLG9CQUFvQixDQUFDLEdBQUc7UUFDeEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQWEsVUFBVSxDQUFDLEdBQVk7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQW1DRCxZQUNZLGNBQTZCLEVBQzdCLGVBQStCLEVBQ2hDLEVBQWMsRUFDYixPQUFlLEVBQ2YsY0FBNkIsRUFDN0IsSUFBdUIsRUFDdkIsZUFBK0IsRUFDdkMscUJBQTRDLEVBQzVDLGlCQUFvQztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQVZBLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQXhDM0MsNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBeUJ2Qix3QkFBbUIsR0FBRztZQUMxQixlQUFlLEVBQUUsSUFBSTtZQUNyQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUM1QyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7WUFDN0QsTUFBTSxFQUFFLGlCQUFpQixFQUFFO1NBQzlCLENBQUM7UUFhRSxJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLGNBQWMsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCwrQkFBK0I7UUFDL0IseUNBQXlDO1FBQ3pDLDBCQUEwQjtRQUMxQixlQUFlO1FBQ2YsMEJBQTBCO1FBQzFCLG9EQUFvRDtRQUNwRCwyREFBMkQ7UUFDM0QsOERBQThEO1FBQzlELGNBQWM7UUFDZCx5REFBeUQ7UUFDekQsWUFBWTtRQUNaLFVBQVU7UUFDVixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUU5RCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUNsRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO1FBQzFELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEI7YUFDNUMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQ3hEO2FBQ0EsU0FBUyxDQUFDLENBQUMsMkJBQTJCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsMkJBQTJCLENBQUM7WUFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsMkJBQTJCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDN0YsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzVDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDO1FBQzVFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDO1FBQ3RGLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDhCQUE4QixDQUFDO1FBQzFGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsT0FBTztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELHNCQUFzQjtRQUNsQixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNuRCxzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBa0I7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsMkJBQTJCLENBQUMsNkJBQXFDO1FBQzdELElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ08sMkJBQTJCO1FBQy9CLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNsRCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxHQUFpQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ04sQ0FBQztnQkFDRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDcEIsQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLG9CQUFvQjtRQUNwQixNQUFNLENBQUMsR0FBRywrSkFBK0osQ0FBQztRQUMxSyxtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLENBQUM7SUFDTCxDQUFDO0lBQ08sd0JBQXdCLENBQUMsTUFBZTtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTywrQkFBK0I7UUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsbUJBQW1CO1lBQzNCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRTtnQkFDRixNQUFNLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQzthQUM3QjtTQUNKLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFO1lBQzVGLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQywwQ0FBMEMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ08saUJBQWlCO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6RCxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRywyQkFBMkIsRUFBRSxhQUFhLENBQUM7UUFDakUsTUFBTSxNQUFNLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsUUFBUSxFQUFFLE9BQU87WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFO2dCQUNGLFFBQVE7Z0JBQ1IsYUFBYTtnQkFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRO2FBQzFDO1NBQ0osQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25GLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxrQkFBdUMsRUFBRSxFQUFFO1lBQzFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDckIsa0JBQWtCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO2dCQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNPLFdBQVc7UUFDZixNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQztRQUNyRSxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFDOUIsMkJBQTJCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ25GLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0wsQ0FBQztJQUNPLHdCQUF3QjtRQUM1QixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixlQUFlLEVBQUUsS0FBSztZQUN0QixJQUFJLEVBQUU7Z0JBQ0Ysc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN2RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7b0JBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO29CQUN0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3hCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxrQkFBa0I7b0JBQ3hDLFFBQVEsRUFBRSxRQUFRO29CQUNsQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7aUJBQ1gsQ0FBQyxDQUFDO2FBQ047U0FDSixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEYsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUNqRyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87cUJBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7cUJBQzNCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO29CQUNwQixNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN2RSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNOLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ2xELENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdlNRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDBXQUhsQixDQUFDLGNBQWMsQ0FBQyxnRkFhaEIsb0JBQW9CLHVFQ3REbkMsdTNEQXdDQTs7MkZESWEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLG9CQUFvQixhQUduQixDQUFDLGNBQWMsQ0FBQyxtQkFDVix1QkFBdUIsQ0FBQyxNQUFNOzBUQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFaUMsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0UsT0FBTztzQkFBN0MsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0osU0FBUztzQkFBekMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBRTNCLG9CQUFvQjtzQkFEdkIsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBT2xCLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhcnNhQXBpLFxuICAgIEJhc2VDb21wb25lbnQsXG4gICAgVWx2TWFpblNlcnZpY2UsXG4gICAgUGFnaW5nU2V0dGluZyxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIFNlYXJjaFBhbmVsU2V0dGluZ3MsXG4gICAgQnJlYWRDcnVtYkluZm8sXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgQ29sdW1uSW5mb1R5cGUsXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIGdldERldmljZUlzTW9iaWxlLFxuICAgIExheW91dFNldHRpbmdcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbXBvcnQgeyBNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLWZpbHRlcnMtcmVwb3J0L21hbmFnZS1maWx0ZXJzLXJlcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy9yZXBvcnQtc2VhcmNoLWZpZWxkcy1oaWRkZW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaFBhbmVsU2F2ZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS9yZXBvcnQtc2VhcmNoLWZpZWxkcy1tYW5hZ2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdWx2LW1haW4tdWknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS11bHYtbWFpbi11aS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtVbHZNYWluU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlVbHZNYWluVWlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogTGF5b3V0U2V0dGluZztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1yZWFkb25seScpIHJlYWRvbmx5O1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1kaXNhYmxlZCcpIGRpc2FibGU7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXJnaW4tdWx2JykgbWFyZ2luVWx2O1xuICAgIEBWaWV3Q2hpbGQoU2VhcmNoUGFuZWxDb21wb25lbnQpXG4gICAgc2V0IHNlYXJjaFBhbmVsQ29tcG9uZW50KHZhbCkge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgZnVsbHNjcmVlbih2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0RnVsbHNjcmVlbih2YWwpO1xuICAgIH1cbiAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M6IFNlYXJjaFBhbmVsU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG4gICAgZmlyc3RBcHBseUF1dG9tYXRpY2FsbHkgPSB0cnVlO1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHZpd2VyTWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdmlld2VyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHBhZ2luZ1NldHRpbmckOiBPYnNlcnZhYmxlPFBhZ2luZ1NldHRpbmcgfCBudWxsPjtcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xuICAgIHNlYXJjaFBhbmVsVWkkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgaGlkZVNlYXJjaFBhbmVsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlcG9ydElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHNlYXJjaFBhbmVsTW9DaGFuZ2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBhbGxTZWFyY2hQYW5lbFNldHRpbmdzJDogT2JzZXJ2YWJsZTxTZWFyY2hQYW5lbFNldHRpbmdzW10+O1xuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQ6IE9ic2VydmFibGU8U2VhcmNoUGFuZWxTZXR0aW5ncyB8IHVuZGVmaW5lZD47XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8QWJicmV2YXRpb25EZXZpY2VTaXplPjtcbiAgICBicmVhZENydW1icyQ6IE9ic2VydmFibGU8QnJlYWRDcnVtYkluZm9bXT47XG4gICAgY2FuU2F2ZUdyaWRTZXR0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBzZWFyY2hQYW5lbExvYWRlZDogYm9vbGVhbjtcbiAgICBpc0Fub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoYXNTZWFyY2hQYW5lbDogYm9vbGVhbjtcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcbiAgICBsYW5kc2NhcGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHN0YW5kYWxvbmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgIG1pbldpZHRoOiBnZXREZXZpY2VJc01vYmlsZSgpID8gJycgOiAnNTByZW0nLFxuICAgICAgICBib2R5TWluSGVpZ2h0OiBnZXREZXZpY2VJc01vYmlsZSgpID8gJycgOiAnY2FsYyg1MHZoIC0gODhweCknLFxuICAgICAgICBtb2JpbGU6IGdldERldmljZUlzTW9iaWxlKClcbiAgICB9O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIF9icmFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IGNvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcbiAgICAgICAgdGhpcy5ydGwkID0gX3BvcnRhbFNlcnZpY2UucnRsJDtcbiAgICAgICAgdGhpcy5icmVhZENydW1icyQgPSBfYnJhZGNydW1iU2VydmljZS5icmVhZGNydW1icyQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRJbkRpYWxvZyh0aGlzLmluRGlhbG9nKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SXNNdWx0aVNlbGVjdCh0aGlzLmlzTXVsdGlTZWxlY3QpO1xuICAgICAgICAvLyBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaWYgKFxuICAgICAgICAvLyAgICAgICAgICAgICBlLnRhcmdldCAmJlxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgIT09IGUudGFyZ2V0ICYmXG4gICAgICAgIC8vICAgICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpICYmXG4gICAgICAgIC8vICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAgIC8vICAgICAgICAgKSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldElubGluZUVkaXQoZmFsc2UpO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICB0aGlzLl9yZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSgpO1xuICAgICAgICB0aGlzLm1hcmdpblVsdiA9ICF0aGlzLmlzUmVwb3J0UGFnZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHQuU2V0dGluZy5TZWFyY2hQYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQYW5lbExvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Fub255bW91cyQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmlzQW5vbnltb3VzJDtcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNoUGFuZWwkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsJDtcblxuICAgICAgICB0aGlzLnRpdGxlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuVGl0bGUnLCAnJyk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldENvbnRleHQodGhpcy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0TGF5b3V0SW5mbyh0aGlzLmxheW91dEluZm8pO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5sb2FkU2VhcmNoUGFuZWxTZXR0aW5ncygpO1xuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubWFzayQ7XG4gICAgICAgIHRoaXMudml3ZXJNYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpd2VyTWFzayQ7XG4gICAgICAgIHRoaXMuY2FuU2F2ZUdyaWRTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNhblNhdmVHcmlkU2V0dGluZyQ7XG4gICAgICAgIHRoaXMucGFnaW5nU2V0dGluZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5wYWdpbmdTZXR0aW5nJDtcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCQ7XG4gICAgICAgIHRoaXMuaGFzU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpICE9PSBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaFBhbmVsVWkkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxVaSQ7XG4gICAgICAgIHRoaXMuc3RhbmRhbG9uZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnN0YW5kYWxvbmUkO1xuICAgICAgICB0aGlzLmxhbmRzY2FwZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmxhbmRzY2FwZSQ7XG4gICAgICAgIHRoaXMucmVwb3J0SWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucmVwb3J0SWQkO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZWFkb25seSQuc3Vic2NyaWJlKChyZWFkb25seSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJC5zdWJzY3JpYmUoKGVuYWJsZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlID0gIWVuYWJsZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYT8uVGl0bGUgPT09IGI/LlRpdGxlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuYXBwbHlTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uSGlkZVNlYXJjaFBhbmVsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpZXdlciQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aWV3ZXIkO1xuICAgICAgICB0aGlzLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQkO1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3JlbmRlcicsIHRoaXMpO1xuICAgIH1cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycuLi8uLiddLCB7IHJlbGF0aXZlVG86IHRoaXMuX2FjdGl2YXRlZFJvdXRlIH0pO1xuICAgIH1cbiAgICBvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRTZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcbiAgICB9XG4gICAgb25QYWdlQ2hhbmdlKGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5wYWdlQ2hhbmdlZChlKTtcbiAgICB9XG4gICAgb25PcGVuTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKE1hbmFnZUZpbHRlcnNSZXBvcnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IHRydWUsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgZm9jdXNUcmFwcGVkOiB0cnVlLFxuICAgICAgICAgICAgbW9iaWxlOiB0aGlzLmlzTW9iaWxlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoY29sbGFwc2VkKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XG4gICAgfVxuICAgIG9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvZ2dsZUhpZGVTZWFyY2hwYW5lbCgpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlclNhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NhdmVGaWx0ZXIoKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlclNhdmVBcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3BlblNhdmVBc0ZpbHRlcigpO1xuICAgIH1cblxuICAgIG9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wZW5TZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5ncygpO1xuICAgIH1cblxuICAgIG9uTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3BlblNlYXJjaEZpbHRlcnNNYW5hZ2UoKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jbGVhclNlYXJjaCgpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2goKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jaGFuZ2VTZWxlY3RlZFNlYXJjaFBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIGlmIChCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsaXN0OiB7IGk6IGFueTsgbjogYW55OyBhOiBhbnkgfVtdID0gW107XG4gICAgICAgIGNvbnN0IGggPSBkb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxpc3RbaV0gPSB7XG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBuOiBoW2ldLFxuICAgICAgICAgICAgICAgIGE6IGhbaV0uaW5uZXJIVE1MXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxpc3QgPSBsaXN0LnJldmVyc2UoKTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgY29uc3QgdCA9IGAuZmQtdGFibGVfX2NlbGwtLWFjdGl2YWJsZTphY3RpdmUgKiwuZmQtdGFibGVfX3Jvdy0tYWN0aXZhYmxlLmlzLWFjdGl2ZSAqLC5mZC10YWJsZV9fcm93LS1hY3RpdmFibGU6YWN0aXZlICp7Y29sb3I6dmFyKC0tc2FwTGlzdF9BY3RpdmVfVGV4dENvbG9yKSFpbXBvcnRhbnR9YDtcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICAgICAgICBjb25zdCBmID0gbGlzdC5maWx0ZXIoKGMpID0+IGMuYS5pbmRleE9mKHQpID49IDApO1xuICAgICAgICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICBmWzBdLm4uaW5uZXJIVE1MID0gZlswXS5hLnNsaWNlKDAsIDEwMDU4KSArIGZbMF0uYS5zbGljZSgxMDA1OCArIHQubGVuZ3RoLCBmWzBdLmEubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9zZXRTZWFyY2hQYW5lbE1vQ2hhbmdlZChjaGFuZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQoY2hhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vcGVuU2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkc1NldHRpbmcgPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbEZpZWxkc1NldHRpbmcoKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbLi4uZmllbGRzU2V0dGluZ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50LCBjb25maWcpO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogQ29sdW1uSW5mb1R5cGVbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRBbmRBcHBseVNlYXJjaFBhbmVsU2V0dGluZ0ZpZWxkc1NldHRpbmcoc2V0dGluZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIF9vcGVuU2F2ZUFzRmlsdGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWFyY2hNbyA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdldFNlYXJjaFBhbmVsTW8oKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XG4gICAgICAgIGNvbnN0IGZpZWxkc1NldHRpbmcgPSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LkZpZWxkc1NldHRpbmc7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMjVyZW0nLFxuICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBzZWFyY2hNbyxcbiAgICAgICAgICAgICAgICBmaWVsZHNTZXR0aW5nLFxuICAgICAgICAgICAgICAgIHJlcG9ydElkOiB0aGlzLl91bHZNYWluU2VydmljZS5yZXBvcnRJZFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50LCBjb25maWcpO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2VhcmNoUGFuZWxTZXR0aW5nOiBTZWFyY2hQYW5lbFNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2VhcmNoUGFuZWxTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgc2VhcmNoUGFuZWxTZXR0aW5nLkhpZGVTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbDtcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5hZGRTZWFyY2hQYW5lbFNldHRpbmdzKHNlYXJjaFBhbmVsU2V0dGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIF9zYXZlRmlsdGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcbiAgICAgICAgaWYgKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncykge1xuICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzLkhpZGVTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbDtcbiAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNhdmVTZWFyY2hQYW5lbFNldHRpbmcoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9vcGVuU2VhcmNoRmlsdGVyc01hbmFnZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3M7XG4gICAgICAgIGNvbnN0IHJlcG9ydElkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucmVwb3J0SWQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogYWxsU2VhcmNoUGFuZWxTZXR0aW5ncy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIFRpdGxlOiBjLlRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBJc0RlZmF1bHQ6IGMuSXNEZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICBJc1B1YmxpYzogYy5Jc1B1YmxpYyxcbiAgICAgICAgICAgICAgICAgICAgSXNQcmltYXJ5OiAhIWMuSXNQcmltYXJ5LFxuICAgICAgICAgICAgICAgICAgICBBcHBseUF1dG9tYXRpY2FsbHk6IGMuQXBwbHlBdXRvbWF0aWNhbGx5LFxuICAgICAgICAgICAgICAgICAgICBSZXBvcnRJZDogcmVwb3J0SWQsXG4gICAgICAgICAgICAgICAgICAgIElkOiBjLklkXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hGaWVsZHNNYW5hZ2VDb21wb25lbnQsIGNvbmZpZyk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZXR0aW5nOiBTZWFyY2hQYW5lbFNldHRpbmdzW10pID0+IHtcbiAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgc2V0dGluZ1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5Jc1ByaW1hcnkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChuZXdTZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcHMgPSBhbGxTZWFyY2hQYW5lbFNldHRpbmdzLmZpbmQoKGMpID0+IGMuSWQgPT09IG5ld1NldHRpbmcuSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuTWVyZ2Uoc3BzLCBuZXdTZXR0aW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudXBkYXRlU2VhcmNoUGFuZWxTZXR0aW5ncyhhbGxTZWFyY2hQYW5lbFNldHRpbmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJzdS1iYXJzYS11bHYtbWFpblxuICAgIFtzdHlsZS5tYXJnaW5dPVwiaXNSZXBvcnRQYWdlID8gbnVsbCA6ICd2YXIoLS1mZElucHV0X0ZpZWxkX01hcmdpbiwgLjI1cmVtIDApJ1wiXG4gICAgW2xheW91dEluZm9dPVwibGF5b3V0SW5mb1wiXG4gICAgW2F0dHIuaXNSZXBvcnRQYWdlXT1cImlzUmVwb3J0UGFnZVwiXG4gICAgW3ZpZXdlckNvbnRyb2xdPVwidmlld2VyJCB8IGFzeW5jXCJcbiAgICBbbG9hZGluZ109XCIobWFzayQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFt2aWV3ZXJMb2FkaW5nXT1cIih2aXdlck1hc2skIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICBbc3RhbmRhbG9uZV09XCIoc3RhbmRhbG9uZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbc2VhcmNoUGFuZWxVaV09XCIoc2VhcmNoUGFuZWxVaSQgfCBhc3luYykhIVwiXG4gICAgW2JyZWFkQ3J1bWJzXT1cIihicmVhZENydW1icyQgfCBhc3luYykhIVwiXG4gICAgW2FsbFNlYXJjaFBhbmVsU2V0dGluZ3NdPVwiKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkIHwgYXN5bmMpISFcIlxuICAgIFtpc0Fub255bW91c109XCIoaXNBbm9ueW1vdXMkIHwgYXN5bmMpISFcIlxuICAgIFtjYW5TYXZlR3JpZFNldHRpbmddPVwiKGNhblNhdmVHcmlkU2V0dGluZyQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc109XCIoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VhcmNoUGFuZWxNb0NoYW5nZWRdPVwiKHNlYXJjaFBhbmVsTW9DaGFuZ2VkJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWRdPVwiKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCB8IGFzeW5jKSEhXCJcbiAgICBbaGlkZVNlYXJjaFBhbmVsXT1cIihoaWRlU2VhcmNoUGFuZWwkIHwgYXN5bmMpISFcIlxuICAgIFtwYWdpbmdTZXR0aW5nXT1cIihwYWdpbmdTZXR0aW5nJCB8IGFzeW5jKSEhXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHkkIHwgYXN5bmNcIlxuICAgIChjbG9zZUV2ZW50KT1cIm9uQ2xvc2UoKVwiXG4gICAgKHNlYXJjaFBhbmVsTW9DaGFuZ2UpPVwib25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpXCJcbiAgICAob3Blbk1hbmFnZUZpbHRlcnMpPVwib25PcGVuTWFuYWdlRmlsdGVycygpXCJcbiAgICAoY29sbGFwc2VkQ2hhbmdlKT1cIm9uQ29sbGFwc2VkQ2hhbmdlKCRldmVudClcIlxuICAgIChoaWRlU2VhcmNoUGFuZWxDbGljayk9XCJvbkhpZGVTZWFyY2hQYW5lbENsaWNrKClcIlxuICAgIChmaWx0ZXJTYXZlKT1cIm9uRmlsdGVyU2F2ZSgpXCJcbiAgICAoZmlsdGVyU2F2ZUFzKT1cIm9uRmlsdGVyU2F2ZUFzKClcIlxuICAgIChzaG93RmlsdGVyRmllbGRzU2V0dGluZyk9XCJvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKClcIlxuICAgIChtYW5hZ2VGaWx0ZXJzKT1cIm9uTWFuYWdlRmlsdGVycygpXCJcbiAgICAoY2xlYXJTZWFyY2gpPVwib25DbGVhclNlYXJjaCgpXCJcbiAgICAoc2VhcmNoKT1cIm9uU2VhcmNoKClcIlxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoc2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyk9XCJvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MoJGV2ZW50KVwiXG4+XG48L2JzdS1iYXJzYS11bHYtbWFpbj5cbiJdfQ==
@@ -63,11 +63,11 @@ export class UlvToolbarComponent extends BaseComponent {
63
63
  }
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", icon: "icon", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", icon: "icon", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\r\n<fd-toolbar\r\n #toolbar\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n [ngClass]=\"deviceSize\"\r\n [hasTitle]=\"!hideTitle\"\r\n [forceOverflow]=\"true\"\r\n>\r\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\r\n <fd-icon [glyph]=\"icon\"></fd-icon>\r\n }\r\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\r\n } @if (deviceSize !== 's') {\r\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\r\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\r\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\r\n [ulvCommandHandler]=\"btn\"\r\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\r\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\r\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\r\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\r\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\r\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\r\n bodyClick\r\n >\r\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" />\r\n } @if (!btn.hideText || deviceSize === 's') {\r\n <span>{{ btn.text | bbbTranslate }}</span>\r\n }\r\n </button>\r\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\r\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\r\n } @if (btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n bodyClick\r\n >\r\n <fd-menu #menu>\r\n @for (btnCommand of btn.menu.items; track btnCommand) {\r\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"btn\"\r\n [component]=\"btn.Command?.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n bodyClick\r\n ></bnrc-dynamic-form-toolbaritem>\r\n } }\r\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\r\n @if (allowInlineEdit && access?.Edit) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\r\n [glyph]=\"'edit'\"\r\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\r\n (click)=\"onEditMode()\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n [title]=\"'Inline Edit In List' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onGroupbySettings()\"\r\n [label]=\"'Groups' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onSortSettings()\"\r\n [label]=\"'Sort' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onColumnSettings()\"\r\n [label]=\"'Columns' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (deviceSize !== 's') {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"'never'\"\r\n [fdMenu]=\"true\"\r\n fdType=\"transparent\"\r\n glyph=\"action-settings\"\r\n [title]=\"'Settings' | bbbTranslate\"\r\n [fdMenuTrigger]=\"tableMenuSettings\"\r\n bodyClick\r\n ></button>\r\n }\r\n <fd-menu #tableMenuSettings>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Columns' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Sort' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Groups' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n } @if (viewCollection && viewCollection.length > 1) {\r\n <fd-split-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\r\n [fdType]=\"'transparent'\"\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n @for (viewObject of viewCollection; track viewObject) {\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\r\n <span fd-menu-title>\r\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <ng-template #splitBtnTitle>\r\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\r\n </ng-template>\r\n <ng-template #splitBtnSettings>\r\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\r\n </ng-template>\r\n }\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
67
  }
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
70
+ args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\r\n<fd-toolbar\r\n #toolbar\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n [ngClass]=\"deviceSize\"\r\n [hasTitle]=\"!hideTitle\"\r\n [forceOverflow]=\"true\"\r\n>\r\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\r\n <fd-icon [glyph]=\"icon\"></fd-icon>\r\n }\r\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\r\n } @if (deviceSize !== 's') {\r\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\r\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\r\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\r\n [ulvCommandHandler]=\"btn\"\r\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\r\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\r\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\r\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\r\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\r\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\r\n bodyClick\r\n >\r\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" />\r\n } @if (!btn.hideText || deviceSize === 's') {\r\n <span>{{ btn.text | bbbTranslate }}</span>\r\n }\r\n </button>\r\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\r\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\r\n } @if (btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n bodyClick\r\n >\r\n <fd-menu #menu>\r\n @for (btnCommand of btn.menu.items; track btnCommand) {\r\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"btn\"\r\n [component]=\"btn.Command?.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n bodyClick\r\n ></bnrc-dynamic-form-toolbaritem>\r\n } }\r\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\r\n @if (allowInlineEdit && access?.Edit) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\r\n [glyph]=\"'edit'\"\r\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\r\n (click)=\"onEditMode()\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n [title]=\"'Inline Edit In List' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onGroupbySettings()\"\r\n [label]=\"'Groups' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onSortSettings()\"\r\n [label]=\"'Sort' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onColumnSettings()\"\r\n [label]=\"'Columns' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (deviceSize !== 's') {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"'never'\"\r\n [fdMenu]=\"true\"\r\n fdType=\"transparent\"\r\n glyph=\"action-settings\"\r\n [title]=\"'Settings' | bbbTranslate\"\r\n [fdMenuTrigger]=\"tableMenuSettings\"\r\n bodyClick\r\n ></button>\r\n }\r\n <fd-menu #tableMenuSettings>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Columns' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Sort' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Groups' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n } @if (viewCollection && viewCollection.length > 1) {\r\n <fd-split-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\r\n [fdType]=\"'transparent'\"\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n @for (viewObject of viewCollection; track viewObject) {\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\r\n <span fd-menu-title>\r\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <ng-template #splitBtnTitle>\r\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\r\n </ng-template>\r\n <ng-template #splitBtnSettings>\r\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\r\n </ng-template>\r\n }\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
71
71
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { _tlbCmp: [{
72
72
  type: ViewChild,
73
73
  args: [ToolbarComponent]
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
134
134
  }], createNewInlineMo: [{
135
135
  type: Output
136
136
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQ0gsYUFBYSxFQUtoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBbUNsRCxZQUFtQixFQUFjLEVBQVUsSUFBdUI7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUE5QnpELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFzQmpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNqRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSXZELENBQUM7SUFDRCxlQUFl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QU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBEZXZpY2VTaXplLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2Vcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdlRvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKFRvb2xiYXJDb21wb25lbnQpIF90bGJDbXA6IFRvb2xiYXJDb21wb25lbnQ7XG4gICAgQElucHV0KCkgYWxsb3dHcmlkQ29sdW1uU29ydDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB1c2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2w6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGFjY2VzczogRGVmYXVsdENvbW1hbmRzQWNjZXNzO1xuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJCdXR0b25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XG4gICAgQElucHV0KCkgaW5saW5lRWRpdE1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWxsb3dJbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGdyaWRTZXR0aW5nOiBhbnk7XG4gICAgQElucHV0KCkgdmlld0NvbGxlY3Rpb246IGFueVtdO1xuICAgIEBJbnB1dCgpIHJlcG9ydFZpZXc6IFVpUmVwb3J0Vmlld0Jhc2U7XG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbmZpZzogYW55O1xuICAgIEBJbnB1dCgpIGhpZGRlbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBidXR0b25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0Q291bnQ6IG51bWJlcjtcbiAgICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGdyb3VwYnlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBzb3J0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgY29sdW1uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdE1vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgdmlld0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVaVJlcG9ydFZpZXdCYXNlPigpO1xuICAgIEBPdXRwdXQoKSBjcmVhdGVOZXdJbmxpbmVNbyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgdG9vbGJhckJ1dHRvbnMgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0b29sYmFyQnV0dG9ucyAmJiAhdG9vbGJhckJ1dHRvbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUb29sYmFyKCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Hcm91cGJ5U2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBieUNsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25Tb3J0U2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc29ydENsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25Db2x1bW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5DbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XG4gICAgfVxuICAgIG9uRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdE1vZGVDbGljay5lbWl0KCk7XG4gICAgfVxuICAgIG9uQ2hhbmdlVmlldyh2aWV3OiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NsaWNrLmVtaXQodmlldyk7XG4gICAgfVxuICAgIF90cmFja0J5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0/Lml0ZW1JZDtcbiAgICB9XG4gICAgcHVibGljIGlkZW50aWZ5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGV4dDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRvb2xiYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90bGJDbXApIHtcbiAgICAgICAgICAgIHRoaXMuX3RsYkNtcC5mb3JjZU92ZXJmbG93ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl90bGJDbXAudXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICghdXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sICYmICFoaWRlVG9vbGJhcikge1xuPGZkLXRvb2xiYXJcbiAgICAjdG9vbGJhclxuICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgIFtuZ0NsYXNzXT1cImRldmljZVNpemVcIlxuICAgIFtoYXNUaXRsZV09XCIhaGlkZVRpdGxlXCJcbiAgICBbZm9yY2VPdmVyZmxvd109XCJ0cnVlXCJcbj5cbiAgICBAaWYoIWhpZGVUaXRsZSAmJiBkZXZpY2VTaXplICE9PSAncycgPyAodGl0bGUgfCBiYmJUcmFuc2xhdGUpIDogJycpeyBAaWYoaWNvbil7XG4gICAgPGZkLWljb24gW2dseXBoXT1cImljb25cIj48L2ZkLWljb24+XG4gICAgfVxuICAgIDxoNCBmZC10aXRsZT57eyB0aXRsZSB8IGJiYlRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgfSBAaWYgKGRldmljZVNpemUgIT09ICdzJykge1xuICAgIDxmZC10b29sYmFyLXNwYWNlciBmZC10b29sYmFyLWl0ZW0+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICB9IEBpZiAoIWhpZGVUb29sYmFyKSB7IEBmb3IgKGJ0biBvZiB0b29sYmFyQnV0dG9uczsgdHJhY2sgX3RyYWNrQnkoaSwgYnRuKTsgbGV0IGkgPSAkaW5kZXgpIHsgQGlmIChidG4gIT09ICctJyAmJlxuICAgIGJ0bi5Db21tYW5kICYmICFidG4uQ29tbWFuZC5DdXN0b21VaSAmJiAhYnRuLm1lbnUpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImJ0bi5pdGVtSWQgPT09ICdFZGl0JyA/ICdhbHdheXMnIDogYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdsb3cnIDogJ2hpZ2gnXCJcbiAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXG4gICAgICAgIFtkaXNhYmxlXT1cImlubGluZUVkaXRNb2RlICYmIGJ0bi5pdGVtSWQgPT09ICdOZXcnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5Db21tYW5kLl9pc0VuYWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICBbZmRUeXBlXT1cIiFidG4uQ29tbWFuZC5faXNFbmFibGUgPyAndHJhbnNwYXJlbnQnIDogYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uRGVzaWduIHx8ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICBbZ2x5cGhdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gbnVsbCA6IGJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/Lkljb25cIlxuICAgICAgICBbdGl0bGVdPVwiKGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyBidG4udGV4dCA6ICcnKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJpbmxpbmVFZGl0TW9kZSAmJiBidG4uaXRlbUlkID09PSAnTmV3JyAmJiBjcmVhdGVOZXdJbmxpbmVNby5lbWl0KClcIlxuICAgICAgICBib2R5Q2xpY2tcbiAgICA+XG4gICAgICAgIEBpZiAoIWJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gJiYgYnRuLmljb24pIHtcbiAgICAgICAgPGltZyB3aWR0aD1cIjE2XCIgW3NyY109XCJidG4uaWNvblwiIC8+XG4gICAgICAgIH0gQGlmICghYnRuLmhpZGVUZXh0IHx8IGRldmljZVNpemUgPT09ICdzJykge1xuICAgICAgICA8c3Bhbj57eyBidG4udGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvYnV0dG9uPlxuICAgIH0gQGlmICgoYnRuID09PSAnLScgfHwgYnRuLnR5cGUgPT09ICdzZXBlcmF0b3InKSAmJiBkZXZpY2VOYW1lICE9PSAnbW9iaWxlJykge1xuICAgIDxmZC10b29sYmFyLXNlcGFyYXRvciBmZC10b29sYmFyLWl0ZW0+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICB9IEBpZiAoYnRuLm1lbnUpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2ZkTWVudV09XCJ0cnVlXCJcbiAgICAgICAgW2ZkVHlwZV09XCJidG4uQ29tbWFuZD8uSXNCdWlsdGluID8gJ3N0YW5kYXJkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgICAgIGJvZHlDbGlja1xuICAgID5cbiAgICAgICAgPGZkLW1lbnUgI21lbnU+XG4gICAgICAgICAgICBAZm9yIChidG5Db21tYW5kIG9mIGJ0bi5tZW51Lml0ZW1zOyB0cmFjayBidG5Db21tYW5kKSB7XG4gICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5Db21tYW5kXCIgKGNsaWNrKT1cIm1lbnUuY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyBidG5Db21tYW5kLnRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLW1lbnU+XG4gICAgPC9idXR0b24+XG4gICAgfSBAaWYgKGJ0biAhPT0gJy0nICYmIGJ0bi5Db21tYW5kICYmIGJ0bi5Db21tYW5kLkN1c3RvbVVpKSB7XG4gICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuXCJcbiAgICAgICAgW2NvbXBvbmVudF09XCJidG4uQ29tbWFuZD8uQ3VzdG9tVWlcIlxuICAgICAgICBbY29udGV4dF09XCJidG5cIlxuICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XG4gICAgfSB9XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLXRvb2xiYXItaXRlbV1cIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChhbGxvd0lubGluZUVkaXQgJiYgYWNjZXNzPy5FZGl0KSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtmZFR5cGVdPVwiaW5saW5lRWRpdE1vZGUgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2dseXBoXT1cIidlZGl0J1wiXG4gICAgICAgIFtsYWJlbF09XCJkZXZpY2VTaXplID09PSAncycgPyAoJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgIFt0aXRsZV09XCInSW5saW5lIEVkaXQgSW4gTGlzdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBib2R5Q2xpY2tcbiAgICA+PC9idXR0b24+XG4gICAgfSBAaWYgKGdyaWRTZXR0aW5nICYmIGdyaWRTZXR0aW5nLkhpZGRlbiAhPT0gdHJ1ZSAmJiBhbGxvd0dyaWRDb2x1bW5Tb3J0KSB7IEBpZiAoZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidhbHdheXMnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uR3JvdXBieVNldHRpbmdzKClcIlxuICAgICAgICBbbGFiZWxdPVwiJ0dyb3VwcycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBib2R5Q2xpY2tcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidhbHdheXMnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU29ydFNldHRpbmdzKClcIlxuICAgICAgICBbbGFiZWxdPVwiJ1NvcnQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgIChjbGljayk9XCJvbkNvbHVtblNldHRpbmdzKClcIlxuICAgICAgICBbbGFiZWxdPVwiJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgYm9keUNsaWNrXG4gICAgPjwvYnV0dG9uPlxuICAgIH0gQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIiduZXZlcidcIlxuICAgICAgICBbZmRNZW51XT1cInRydWVcIlxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGdseXBoPVwiYWN0aW9uLXNldHRpbmdzXCJcbiAgICAgICAgW3RpdGxlXT1cIidTZXR0aW5ncycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbZmRNZW51VHJpZ2dlcl09XCJ0YWJsZU1lbnVTZXR0aW5nc1wiXG4gICAgICAgIGJvZHlDbGlja1xuICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgPGZkLW1lbnUgI3RhYmxlTWVudVNldHRpbmdzPlxuICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJ0YWJsZU1lbnVTZXR0aW5ncy5jbG9zZSgpOyBvbkNvbHVtblNldHRpbmdzKClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQ29sdW1ucycgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Tb3J0U2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwic29ydFwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7eyAnU29ydCcgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Hcm91cGJ5U2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZ3JvdXAtMlwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICB7eyAnR3JvdXBzJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIDwvZmQtbWVudT5cbiAgICB9IEBpZiAodmlld0NvbGxlY3Rpb24gJiYgdmlld0NvbGxlY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJkZXZpY2VTaXplID09PSAncycgPyAnYWx3YXlzJyA6ICdsb3cnXCJcbiAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW21haW5BY3Rpb25dPVwie1xuICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBtYWluQWN0aW9uVGl0bGU6IHNwbGl0QnRuVGl0bGVcbiAgICAgICAgfVwiXG4gICAgPlxuICAgICAgICA8ZmQtbWVudT5cbiAgICAgICAgICAgIEBmb3IgKHZpZXdPYmplY3Qgb2Ygdmlld0NvbGxlY3Rpb247IHRyYWNrIHZpZXdPYmplY3QpIHtcbiAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcodmlld09iamVjdClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwidmlld09iamVjdC5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSWNvblwiPiA8L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtbWVudT5cbiAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbiAgICB9XG4gICAgPG5nLXRlbXBsYXRlICNzcGxpdEJ0blRpdGxlPlxuICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwicmVwb3J0Vmlldy5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSWNvblwiPjwvZmQtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5TZXR0aW5ncz5cbiAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIidhY3Rpb24tc2V0dGluZ3MnXCI+PC9mZC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuPC9mZC10b29sYmFyPlxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RSxPQUFPLEVBQ0gsYUFBYSxFQUtoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBbUNsRCxZQUFtQixFQUFjLEVBQVUsSUFBdUI7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUE5QnpELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFzQmpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNqRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSXZELENBQUM7SUFDRCxlQUFl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QU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBEZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBEZXZpY2VTaXplLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LXRvb2xiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWx2VG9vbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSBfdGxiQ21wOiBUb29sYmFyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgYWxsb3dHcmlkQ29sdW1uU29ydDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHVzZUxheW91dEl0ZW1UZXh0Rm9yQ29udHJvbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcclxuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdG9vbGJhckJ1dHRvbnM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xyXG4gICAgQElucHV0KCkgaW5saW5lRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBncmlkU2V0dGluZzogYW55O1xyXG4gICAgQElucHV0KCkgdmlld0NvbGxlY3Rpb246IGFueVtdO1xyXG4gICAgQElucHV0KCkgcmVwb3J0VmlldzogVWlSZXBvcnRWaWV3QmFzZTtcclxuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbmZpZzogYW55O1xyXG4gICAgQElucHV0KCkgaGlkZGVuOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0Q291bnQ6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBncm91cGJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBzb3J0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBjb2x1bW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRNb2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdmlld0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVaVJlcG9ydFZpZXdCYXNlPigpO1xyXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld0lubGluZU1vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgZW5hYmxlOiBib29sZWFuO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IHRvb2xiYXJCdXR0b25zIH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmICh0b29sYmFyQnV0dG9ucyAmJiAhdG9vbGJhckJ1dHRvbnMuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRvb2xiYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Hcm91cGJ5U2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cGJ5Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xyXG4gICAgfVxyXG4gICAgb25Tb3J0U2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zb3J0Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xyXG4gICAgfVxyXG4gICAgb25Db2x1bW5TZXR0aW5ncygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbHVtbkNsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcclxuICAgIH1cclxuICAgIG9uRWRpdE1vZGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0TW9kZUNsaWNrLmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uQ2hhbmdlVmlldyh2aWV3OiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aWV3Q2xpY2suZW1pdCh2aWV3KTtcclxuICAgIH1cclxuICAgIF90cmFja0J5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gaXRlbT8uaXRlbUlkO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGlkZW50aWZ5KGluZGV4LCBpdGVtKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gaXRlbS50ZXh0O1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRvb2xiYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RsYkNtcCkge1xyXG4gICAgICAgICAgICB0aGlzLl90bGJDbXAuZm9yY2VPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl90bGJDbXAudXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAaWYgKCF1c2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2wgJiYgIWhpZGVUb29sYmFyKSB7XHJcbjxmZC10b29sYmFyXHJcbiAgICAjdG9vbGJhclxyXG4gICAgW3Nob3VsZE92ZXJmbG93XT1cImRldmljZVNpemUgPT09ICdzJ1wiXHJcbiAgICBbbmdDbGFzc109XCJkZXZpY2VTaXplXCJcclxuICAgIFtoYXNUaXRsZV09XCIhaGlkZVRpdGxlXCJcclxuICAgIFtmb3JjZU92ZXJmbG93XT1cInRydWVcIlxyXG4+XHJcbiAgICBAaWYoIWhpZGVUaXRsZSAmJiBkZXZpY2VTaXplICE9PSAncycgPyAodGl0bGUgfCBiYmJUcmFuc2xhdGUpIDogJycpeyBAaWYoaWNvbil7XHJcbiAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiaWNvblwiPjwvZmQtaWNvbj5cclxuICAgIH1cclxuICAgIDxoNCBmZC10aXRsZT57eyB0aXRsZSB8IGJiYlRyYW5zbGF0ZSB9fTwvaDQ+XHJcbiAgICB9IEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XHJcbiAgICA8ZmQtdG9vbGJhci1zcGFjZXIgZmQtdG9vbGJhci1pdGVtPjwvZmQtdG9vbGJhci1zcGFjZXI+XHJcbiAgICB9IEBpZiAoIWhpZGVUb29sYmFyKSB7IEBmb3IgKGJ0biBvZiB0b29sYmFyQnV0dG9uczsgdHJhY2sgX3RyYWNrQnkoaSwgYnRuKTsgbGV0IGkgPSAkaW5kZXgpIHsgQGlmIChidG4gIT09ICctJyAmJlxyXG4gICAgYnRuLkNvbW1hbmQgJiYgIWJ0bi5Db21tYW5kLkN1c3RvbVVpICYmICFidG4ubWVudSkge1xyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJidG4uaXRlbUlkID09PSAnRWRpdCcgPyAnYWx3YXlzJyA6IGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyAnbG93JyA6ICdoaWdoJ1wiXHJcbiAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYnRuLml0ZW1JZCA9PT0gJ05ldydcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJidG4uQ29tbWFuZC5faXNFbmFibGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICBbZmRUeXBlXT1cIiFidG4uQ29tbWFuZC5faXNFbmFibGUgPyAndHJhbnNwYXJlbnQnIDogYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uRGVzaWduIHx8ICd0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgIFtnbHlwaF09XCJkZXZpY2VTaXplID09PSAncycgPyBudWxsIDogYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uSWNvblwiXHJcbiAgICAgICAgW3RpdGxlXT1cIihidG4uQ29tbWFuZD8uSXNCdWlsdGluID8gYnRuLnRleHQgOiAnJykgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIChjbGljayk9XCJpbmxpbmVFZGl0TW9kZSAmJiBidG4uaXRlbUlkID09PSAnTmV3JyAmJiBjcmVhdGVOZXdJbmxpbmVNby5lbWl0KClcIlxyXG4gICAgICAgIGJvZHlDbGlja1xyXG4gICAgPlxyXG4gICAgICAgIEBpZiAoIWJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gJiYgYnRuLmljb24pIHtcclxuICAgICAgICA8aW1nIHdpZHRoPVwiMTZcIiBbc3JjXT1cImJ0bi5pY29uXCIgLz5cclxuICAgICAgICB9IEBpZiAoIWJ0bi5oaWRlVGV4dCB8fCBkZXZpY2VTaXplID09PSAncycpIHtcclxuICAgICAgICA8c3Bhbj57eyBidG4udGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH0gQGlmICgoYnRuID09PSAnLScgfHwgYnRuLnR5cGUgPT09ICdzZXBlcmF0b3InKSAmJiBkZXZpY2VOYW1lICE9PSAnbW9iaWxlJykge1xyXG4gICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yIGZkLXRvb2xiYXItaXRlbT48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxyXG4gICAgfSBAaWYgKGJ0bi5tZW51KSB7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW2ZkTWVudV09XCJ0cnVlXCJcclxuICAgICAgICBbZmRUeXBlXT1cImJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyAnc3RhbmRhcmQnIDogJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbYXJpYUxhYmVsXT1cImJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBbZmRNZW51VHJpZ2dlcl09XCJtZW51XCJcclxuICAgICAgICBib2R5Q2xpY2tcclxuICAgID5cclxuICAgICAgICA8ZmQtbWVudSAjbWVudT5cclxuICAgICAgICAgICAgQGZvciAoYnRuQ29tbWFuZCBvZiBidG4ubWVudS5pdGVtczsgdHJhY2sgYnRuQ29tbWFuZCkge1xyXG4gICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5Db21tYW5kXCIgKGNsaWNrKT1cIm1lbnUuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgYnRuQ29tbWFuZC50ZXh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLW1lbnU+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH0gQGlmIChidG4gIT09ICctJyAmJiBidG4uQ29tbWFuZCAmJiBidG4uQ29tbWFuZC5DdXN0b21VaSkge1xyXG4gICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXHJcbiAgICAgICAgW2NvbXBvbmVudF09XCJidG4uQ29tbWFuZD8uQ3VzdG9tVWlcIlxyXG4gICAgICAgIFtjb250ZXh0XT1cImJ0blwiXHJcbiAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxyXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIGJvZHlDbGlja1xyXG4gICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XHJcbiAgICB9IH1cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZC10b29sYmFyLWl0ZW1dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgQGlmIChhbGxvd0lubGluZUVkaXQgJiYgYWNjZXNzPy5FZGl0KSB7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW2ZkVHlwZV09XCJpbmxpbmVFZGl0TW9kZSA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgIFtnbHlwaF09XCInZWRpdCdcIlxyXG4gICAgICAgIFtsYWJlbF09XCJkZXZpY2VTaXplID09PSAncycgPyAoJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlKSA6ICcnXCJcclxuICAgICAgICAoY2xpY2spPVwib25FZGl0TW9kZSgpXCJcclxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxyXG4gICAgICAgIFt0aXRsZV09XCInSW5saW5lIEVkaXQgSW4gTGlzdCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIGJvZHlDbGlja1xyXG4gICAgPjwvYnV0dG9uPlxyXG4gICAgfSBAaWYgKGdyaWRTZXR0aW5nICYmIGdyaWRTZXR0aW5nLkhpZGRlbiAhPT0gdHJ1ZSAmJiBhbGxvd0dyaWRDb2x1bW5Tb3J0KSB7IEBpZiAoZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcclxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidhbHdheXMnXCJcclxuICAgICAgICAoY2xpY2spPVwib25Hcm91cGJ5U2V0dGluZ3MoKVwiXHJcbiAgICAgICAgW2xhYmVsXT1cIidHcm91cHMnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBib2R5Q2xpY2tcclxuICAgID48L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICBmZC1idXR0b25cclxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxyXG4gICAgICAgIChjbGljayk9XCJvblNvcnRTZXR0aW5ncygpXCJcclxuICAgICAgICBbbGFiZWxdPVwiJ1NvcnQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICBib2R5Q2xpY2tcclxuICAgID48L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICBmZC1idXR0b25cclxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbHVtblNldHRpbmdzKClcIlxyXG4gICAgICAgIFtsYWJlbF09XCInQ29sdW1ucycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIGJvZHlDbGlja1xyXG4gICAgPjwvYnV0dG9uPlxyXG4gICAgfSBAaWYgKGRldmljZVNpemUgIT09ICdzJykge1xyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInbmV2ZXInXCJcclxuICAgICAgICBbZmRNZW51XT1cInRydWVcIlxyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiXHJcbiAgICAgICAgW3RpdGxlXT1cIidTZXR0aW5ncycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cInRhYmxlTWVudVNldHRpbmdzXCJcclxuICAgICAgICBib2R5Q2xpY2tcclxuICAgID48L2J1dHRvbj5cclxuICAgIH1cclxuICAgIDxmZC1tZW51ICN0YWJsZU1lbnVTZXR0aW5ncz5cclxuICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cInRhYmxlTWVudVNldHRpbmdzLmNsb3NlKCk7IG9uQ29sdW1uU2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cclxuICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJhY3Rpb24tc2V0dGluZ3NcIj48L2ZkLW1lbnUtYWRkb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdDb2x1bW5zJyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Tb3J0U2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cclxuICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJzb3J0XCI+PC9mZC1tZW51LWFkZG9uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnU29ydCcgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cInRhYmxlTWVudVNldHRpbmdzLmNsb3NlKCk7IG9uR3JvdXBieVNldHRpbmdzKClcIiBib2R5Q2xpY2s+XHJcbiAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZ3JvdXAtMlwiPjwvZmQtbWVudS1hZGRvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ0dyb3VwcycgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvZmQtbWVudT5cclxuICAgIH0gQGlmICh2aWV3Q29sbGVjdGlvbiAmJiB2aWV3Q29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XHJcbiAgICA8ZmQtc3BsaXQtYnV0dG9uXHJcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImRldmljZVNpemUgPT09ICdzJyA/ICdhbHdheXMnIDogJ2xvdydcIlxyXG4gICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgW21haW5BY3Rpb25dPVwie1xyXG4gICAgICAgICAgICBrZWVwTWFpbkFjdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBzcGxpdEJ0blRpdGxlXHJcbiAgICAgICAgfVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGZkLW1lbnU+XHJcbiAgICAgICAgICAgIEBmb3IgKHZpZXdPYmplY3Qgb2Ygdmlld0NvbGxlY3Rpb247IHRyYWNrIHZpZXdPYmplY3QpIHtcclxuICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KHZpZXdPYmplY3QpXCIgYm9keUNsaWNrPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJ2aWV3T2JqZWN0LlVpQ29tcG9uZW50LlNldHRpbmdzPy5JY29uXCI+IDwvZmQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtbWVudT5cclxuICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG5nLXRlbXBsYXRlICNzcGxpdEJ0blRpdGxlPlxyXG4gICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJyZXBvcnRWaWV3LlVpQ29tcG9uZW50LlNldHRpbmdzPy5JY29uXCI+PC9mZC1pY29uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5TZXR0aW5ncz5cclxuICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiJ2FjdGlvbi1zZXR0aW5ncydcIj48L2ZkLWljb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG48L2ZkLXRvb2xiYXI+XHJcbn1cclxuIl19
@@ -2442,11 +2442,11 @@ class UlvToolbarComponent extends BaseComponent {
2442
2442
  }
2443
2443
  }
2444
2444
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2445
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", icon: "icon", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6$2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6$2.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i6$2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i6$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7$1.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2445
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", icon: "icon", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\r\n<fd-toolbar\r\n #toolbar\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n [ngClass]=\"deviceSize\"\r\n [hasTitle]=\"!hideTitle\"\r\n [forceOverflow]=\"true\"\r\n>\r\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\r\n <fd-icon [glyph]=\"icon\"></fd-icon>\r\n }\r\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\r\n } @if (deviceSize !== 's') {\r\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\r\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\r\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\r\n [ulvCommandHandler]=\"btn\"\r\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\r\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\r\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\r\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\r\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\r\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\r\n bodyClick\r\n >\r\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" />\r\n } @if (!btn.hideText || deviceSize === 's') {\r\n <span>{{ btn.text | bbbTranslate }}</span>\r\n }\r\n </button>\r\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\r\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\r\n } @if (btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n bodyClick\r\n >\r\n <fd-menu #menu>\r\n @for (btnCommand of btn.menu.items; track btnCommand) {\r\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"btn\"\r\n [component]=\"btn.Command?.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n bodyClick\r\n ></bnrc-dynamic-form-toolbaritem>\r\n } }\r\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\r\n @if (allowInlineEdit && access?.Edit) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\r\n [glyph]=\"'edit'\"\r\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\r\n (click)=\"onEditMode()\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n [title]=\"'Inline Edit In List' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onGroupbySettings()\"\r\n [label]=\"'Groups' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onSortSettings()\"\r\n [label]=\"'Sort' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onColumnSettings()\"\r\n [label]=\"'Columns' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (deviceSize !== 's') {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"'never'\"\r\n [fdMenu]=\"true\"\r\n fdType=\"transparent\"\r\n glyph=\"action-settings\"\r\n [title]=\"'Settings' | bbbTranslate\"\r\n [fdMenuTrigger]=\"tableMenuSettings\"\r\n bodyClick\r\n ></button>\r\n }\r\n <fd-menu #tableMenuSettings>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Columns' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Sort' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Groups' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n } @if (viewCollection && viewCollection.length > 1) {\r\n <fd-split-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\r\n [fdType]=\"'transparent'\"\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n @for (viewObject of viewCollection; track viewObject) {\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\r\n <span fd-menu-title>\r\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <ng-template #splitBtnTitle>\r\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\r\n </ng-template>\r\n <ng-template #splitBtnSettings>\r\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\r\n </ng-template>\r\n }\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6$2.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6$2.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i6$2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i6$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7$1.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i8.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2446
2446
  }
2447
2447
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvToolbarComponent, decorators: [{
2448
2448
  type: Component,
2449
- args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\n<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"true\"\n>\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\n <fd-icon [glyph]=\"icon\"></fd-icon>\n }\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\n <img width=\"16\" [src]=\"btn.icon\" />\n } @if (!btn.hideText || deviceSize === 's') {\n <span>{{ btn.text | bbbTranslate }}</span>\n }\n </button>\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n } @if (btn.menu) {\n <button\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n @for (btnCommand of btn.menu.items; track btnCommand) {\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </button>\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n } }\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n @if (allowInlineEdit && access?.Edit) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n } @if (deviceSize !== 's') {\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n }\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n } @if (viewCollection && viewCollection.length > 1) {\n <fd-split-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n @for (viewObject of viewCollection; track viewObject) {\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n }\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n }\n</fd-toolbar>\n}\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
2449
+ args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!useLayoutItemTextForControl && !hideToolbar) {\r\n<fd-toolbar\r\n #toolbar\r\n [shouldOverflow]=\"deviceSize === 's'\"\r\n [ngClass]=\"deviceSize\"\r\n [hasTitle]=\"!hideTitle\"\r\n [forceOverflow]=\"true\"\r\n>\r\n @if(!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''){ @if(icon){\r\n <fd-icon [glyph]=\"icon\"></fd-icon>\r\n }\r\n <h4 fd-title>{{ title | bbbTranslate }}</h4>\r\n } @if (deviceSize !== 's') {\r\n <fd-toolbar-spacer fd-toolbar-item></fd-toolbar-spacer>\r\n } @if (!hideToolbar) { @for (btn of toolbarButtons; track _trackBy(i, btn); let i = $index) { @if (btn !== '-' &&\r\n btn.Command && !btn.Command.CustomUi && !btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\r\n [ulvCommandHandler]=\"btn\"\r\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\r\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\r\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\r\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\r\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\r\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\r\n bodyClick\r\n >\r\n @if (!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" />\r\n } @if (!btn.hideText || deviceSize === 's') {\r\n <span>{{ btn.text | bbbTranslate }}</span>\r\n }\r\n </button>\r\n } @if ((btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile') {\r\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\r\n } @if (btn.menu) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n bodyClick\r\n >\r\n <fd-menu #menu>\r\n @for (btnCommand of btn.menu.items; track btnCommand) {\r\n <li fd-menu-item [ulvCommandHandler]=\"btnCommand\" (click)=\"menu.close()\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } @if (btn !== '-' && btn.Command && btn.Command.CustomUi) {\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [ulvCommandHandler]=\"btn\"\r\n [component]=\"btn.Command?.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n bodyClick\r\n ></bnrc-dynamic-form-toolbaritem>\r\n } }\r\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\r\n @if (allowInlineEdit && access?.Edit) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\r\n [glyph]=\"'edit'\"\r\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\r\n (click)=\"onEditMode()\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n [title]=\"'Inline Edit In List' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (gridSetting && gridSetting.Hidden !== true && allowGridColumnSort) { @if (deviceSize === 's') {\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onGroupbySettings()\"\r\n [label]=\"'Groups' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onSortSettings()\"\r\n [label]=\"'Sort' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [contentDensity]=\"contentDensity\"\r\n fdType=\"transparent\"\r\n [attr.fdOverflowPriority]=\"'always'\"\r\n (click)=\"onColumnSettings()\"\r\n [label]=\"'Columns' | bbbTranslate\"\r\n bodyClick\r\n ></button>\r\n } @if (deviceSize !== 's') {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"'never'\"\r\n [fdMenu]=\"true\"\r\n fdType=\"transparent\"\r\n glyph=\"action-settings\"\r\n [title]=\"'Settings' | bbbTranslate\"\r\n [fdMenuTrigger]=\"tableMenuSettings\"\r\n bodyClick\r\n ></button>\r\n }\r\n <fd-menu #tableMenuSettings>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Columns' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Sort' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\r\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\r\n <span fd-menu-title>\r\n {{ 'Groups' | bbbTranslate }}\r\n </span>\r\n </div>\r\n </li>\r\n </fd-menu>\r\n } @if (viewCollection && viewCollection.length > 1) {\r\n <fd-split-button\r\n fd-toolbar-item\r\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\r\n [fdType]=\"'transparent'\"\r\n [mainAction]=\"{\r\n keepMainAction: true,\r\n mainActionTitle: splitBtnTitle\r\n }\"\r\n >\r\n <fd-menu>\r\n @for (viewObject of viewCollection; track viewObject) {\r\n <li fd-menu-item>\r\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\" bodyClick>\r\n <span fd-menu-title>\r\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\r\n </span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <ng-template #splitBtnTitle>\r\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\r\n </ng-template>\r\n <ng-template #splitBtnSettings>\r\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\r\n </ng-template>\r\n }\r\n</fd-toolbar>\r\n}\r\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
2450
2450
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { _tlbCmp: [{
2451
2451
  type: ViewChild,
2452
2452
  args: [ToolbarComponent]
@@ -6622,6 +6622,7 @@ class UiUlvMainUiComponent extends BaseComponent {
6622
6622
  this.selectedSearchPanelSettings$ = this._ulvMainService.selectedSearchPanelSettings$;
6623
6623
  this.selectedSearchPanelSettingsId$ = this._ulvMainService.selectedSearchPanelSettingsId$;
6624
6624
  this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
6625
+ this.context.fireEvent('render', this);
6625
6626
  }
6626
6627
  onClose() {
6627
6628
  this._router.navigate(['../..'], { relativeTo: this._activatedRoute });