UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

109 lines 17.5 kB
import { Injectable } from '@angular/core'; import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/log-level'; import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging'; import * as i0 from "@angular/core"; /** * The wizard lite service that mainly handles the wizard button with the pivot relationship from internal shell. */ export class WizardLiteService { refreshComponents(wizardLiteComponent) { this.refreshContentComponents(wizardLiteComponent); this.refreshFooterComponent(wizardLiteComponent); this.setupEmitterSubscriptions(wizardLiteComponent); this.checkActive(wizardLiteComponent); } /** * It refreshes the internal object for the footer component. * @param wizardLiteComponent the wizard lite component. */ refreshFooterComponent(wizardLiteComponent) { if (!wizardLiteComponent.customFooter && wizardLiteComponent.wizardLiteFooterTemplateElement && wizardLiteComponent.wizardLiteFooterTemplateElement.toArray().length) { if (wizardLiteComponent.wizardLiteFooterTemplateElement.toArray().length !== 1) { Logging.log({ consoleGroupHeader: 'WizardLiteComponent', level: LogLevel.Error, message: 'illegal count of wizard button was found.', source: 'WizardLiteComponent.ngAfterContentInit()' }); } const wizardLiteFooterTemplateElement = wizardLiteComponent.wizardLiteFooterTemplateElement.toArray()[0]; wizardLiteComponent.wizardLiteFooterTemplate = wizardLiteFooterTemplateElement; wizardLiteComponent.wizardButton = wizardLiteFooterTemplateElement.wizardButton; wizardLiteFooterTemplateElement.buttons = wizardLiteComponent.buttons; } else if (wizardLiteComponent.customFooter && wizardLiteComponent.wizardButtonElement && wizardLiteComponent.wizardButtonElement.toArray().length) { if (wizardLiteComponent.wizardButtonElement.toArray().length !== 1) { Logging.log({ consoleGroupHeader: 'WizardLiteComponent', level: LogLevel.Error, message: 'illegal count of wizard button was found.', source: 'WizardLiteComponent.ngAfterContentInit()' }); } const wizardButtonElement = wizardLiteComponent.wizardButtonElement.toArray()[0]; wizardLiteComponent.wizardButton = wizardButtonElement; wizardButtonElement.buttons = wizardLiteComponent.buttons; } } /** * It refreshes the internal object for the content component. * @param wizardLiteComponent the wizard lite component. */ refreshContentComponents(wizardLiteComponent) { if (wizardLiteComponent.pivotElement && wizardLiteComponent.pivotElement.toArray().length) { if (wizardLiteComponent.pivotElement.toArray().length !== 1) { Logging.log({ consoleGroupHeader: 'WizardLiteComponent', level: LogLevel.Error, message: 'illegal count of pivot tab was found.', source: 'WizardLiteComponent.ngAfterContentInit()' }); } wizardLiteComponent.pivotComponent = wizardLiteComponent.pivotElement.toArray()[0]; // CoreBaseComponent will destroy wizardLiteComponent.subscriptions on destroy event wizardLiteComponent.getSubscriptions().push(wizardLiteComponent.pivotComponent.selectionChange.subscribe(($event) => { wizardLiteComponent.onSelectionChanged($event); })); } } /** * It sets up the interaction between the pivot component and the footer space wizard button from internal shell. * @param wizardLiteComponent the wizard lite component. */ setupEmitterSubscriptions(wizardLiteComponent) { if (!wizardLiteComponent) { return; } const pivotComponent = wizardLiteComponent.pivotComponent; if (!pivotComponent) { return; } const wizardLiteFooterTemplateElement = wizardLiteComponent.wizardLiteFooterTemplate; if (!wizardLiteFooterTemplateElement) { return; } wizardLiteFooterTemplateElement.prevButtonClickedEventEmitter.subscribe(() => { pivotComponent.selectTabByLabel(wizardLiteFooterTemplateElement.wizardButton.getCurrentActivatedButtonLabel()); }); wizardLiteFooterTemplateElement.nextButtonClickedEventEmitter.subscribe(() => { pivotComponent.selectTabByLabel(wizardLiteFooterTemplateElement.wizardButton.getCurrentActivatedButtonLabel()); }); } /** * It checks whether the component has been active. * @param wizardLiteComponent the wizard lite component. */ checkActive(wizardLiteComponent) { wizardLiteComponent.active = !!wizardLiteComponent.wizardButton && !!wizardLiteComponent.pivotComponent; } } /** @nocollapse */ WizardLiteService.ɵfac = function WizardLiteService_Factory(t) { return new (t || WizardLiteService)(); }; /** @nocollapse */ WizardLiteService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: WizardLiteService, factory: WizardLiteService.ɵfac }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WizardLiteService, [{ type: Injectable }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWxpdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3dpemFyZC1saXRlL3dpemFyZC1saXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhEQUE4RCxDQUFDOztBQUd2Rjs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsaUJBQWlCLENBQUMsbUJBQXdDO1FBQzdELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksc0JBQXNCLENBQUMsbUJBQXdDO1FBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZO1lBQ2pDLG1CQUFtQixDQUFDLCtCQUErQjtZQUNuRCxtQkFBbUIsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDdEUsSUFBSSxtQkFBbUIsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDO29CQUNSLGtCQUFrQixFQUFFLHFCQUFxQjtvQkFDekMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUNyQixPQUFPLEVBQUUsMkNBQTJDO29CQUNwRCxNQUFNLEVBQUUsMENB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LDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLCtCQUErQixDQUFDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLG1CQUF3QztRQUN2RCxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDO0lBQzVHLENBQUM7O3FHQXpHUSxpQkFBaUI7c0dBQWpCLGlCQUFpQixXQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nLWxldmVsJztcclxuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nZ2luZyc7XHJcbmltcG9ydCB7IFdpemFyZExpdGVDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC1saXRlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogVGhlIHdpemFyZCBsaXRlIHNlcnZpY2UgdGhhdCBtYWlubHkgaGFuZGxlcyB0aGUgd2l6YXJkIGJ1dHRvbiB3aXRoIHRoZSBwaXZvdCByZWxhdGlvbnNoaXAgZnJvbSBpbnRlcm5hbCBzaGVsbC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdpemFyZExpdGVTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyByZWZyZXNoQ29tcG9uZW50cyh3aXphcmRMaXRlQ29tcG9uZW50OiBXaXphcmRMaXRlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ29udGVudENvbXBvbmVudHMod2l6YXJkTGl0ZUNvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoRm9vdGVyQ29tcG9uZW50KHdpemFyZExpdGVDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBFbWl0dGVyU3Vic2NyaXB0aW9ucyh3aXphcmRMaXRlQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmNoZWNrQWN0aXZlKHdpemFyZExpdGVDb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgcmVmcmVzaGVzIHRoZSBpbnRlcm5hbCBvYmplY3QgZm9yIHRoZSBmb290ZXIgY29tcG9uZW50LlxyXG4gICAgICogQHBhcmFtIHdpemFyZExpdGVDb21wb25lbnQgdGhlIHdpemFyZCBsaXRlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZnJlc2hGb290ZXJDb21wb25lbnQod2l6YXJkTGl0ZUNvbXBvbmVudDogV2l6YXJkTGl0ZUNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmICghd2l6YXJkTGl0ZUNvbXBvbmVudC5jdXN0b21Gb290ZXIgJiZcclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50ICYmXHJcbiAgICAgICAgICAgIHdpemFyZExpdGVDb21wb25lbnQud2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlRWxlbWVudC50b0FycmF5KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICh3aXphcmRMaXRlQ29tcG9uZW50LndpemFyZExpdGVGb290ZXJUZW1wbGF0ZUVsZW1lbnQudG9BcnJheSgpLmxlbmd0aCAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVHcm91cEhlYWRlcjogJ1dpemFyZExpdGVDb21wb25lbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsOiBMb2dMZXZlbC5FcnJvcixcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnaWxsZWdhbCBjb3VudCBvZiB3aXphcmQgYnV0dG9uIHdhcyBmb3VuZC4nLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogJ1dpemFyZExpdGVDb21wb25lbnQubmdBZnRlckNvbnRlbnRJbml0KCknXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgd2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlRWxlbWVudCA9IHdpemFyZExpdGVDb21wb25lbnQud2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlRWxlbWVudC50b0FycmF5KClbMF07XHJcbiAgICAgICAgICAgIHdpemFyZExpdGVDb21wb25lbnQud2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlID0gd2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlRWxlbWVudDtcclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRCdXR0b24gPSB3aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50LndpemFyZEJ1dHRvbjtcclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUZvb3RlclRlbXBsYXRlRWxlbWVudC5idXR0b25zID0gd2l6YXJkTGl0ZUNvbXBvbmVudC5idXR0b25zO1xyXG4gICAgICAgIH0gZWxzZSBpZiAod2l6YXJkTGl0ZUNvbXBvbmVudC5jdXN0b21Gb290ZXIgJiZcclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRCdXR0b25FbGVtZW50ICYmXHJcbiAgICAgICAgICAgIHdpemFyZExpdGVDb21wb25lbnQud2l6YXJkQnV0dG9uRWxlbWVudC50b0FycmF5KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICh3aXphcmRMaXRlQ29tcG9uZW50LndpemFyZEJ1dHRvbkVsZW1lbnQudG9BcnJheSgpLmxlbmd0aCAhPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVHcm91cEhlYWRlcjogJ1dpemFyZExpdGVDb21wb25lbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsOiBMb2dMZXZlbC5FcnJvcixcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnaWxsZWdhbCBjb3VudCBvZiB3aXphcmQgYnV0dG9uIHdhcyBmb3VuZC4nLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogJ1dpemFyZExpdGVDb21wb25lbnQubmdBZnRlckNvbnRlbnRJbml0KCknXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB3aXphcmRCdXR0b25FbGVtZW50ID0gd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRCdXR0b25FbGVtZW50LnRvQXJyYXkoKVswXTtcclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRCdXR0b24gPSB3aXphcmRCdXR0b25FbGVtZW50O1xyXG4gICAgICAgICAgICB3aXphcmRCdXR0b25FbGVtZW50LmJ1dHRvbnMgPSB3aXphcmRMaXRlQ29tcG9uZW50LmJ1dHRvbnM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgcmVmcmVzaGVzIHRoZSBpbnRlcm5hbCBvYmplY3QgZm9yIHRoZSBjb250ZW50IGNvbXBvbmVudC5cclxuICAgICAqIEBwYXJhbSB3aXphcmRMaXRlQ29tcG9uZW50IHRoZSB3aXphcmQgbGl0ZSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoQ29udGVudENvbXBvbmVudHMod2l6YXJkTGl0ZUNvbXBvbmVudDogV2l6YXJkTGl0ZUNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmICh3aXphcmRMaXRlQ29tcG9uZW50LnBpdm90RWxlbWVudCAmJiB3aXphcmRMaXRlQ29tcG9uZW50LnBpdm90RWxlbWVudC50b0FycmF5KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICh3aXphcmRMaXRlQ29tcG9uZW50LnBpdm90RWxlbWVudC50b0FycmF5KCkubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBMb2dnaW5nLmxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZUdyb3VwSGVhZGVyOiAnV2l6YXJkTGl0ZUNvbXBvbmVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IExvZ0xldmVsLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdpbGxlZ2FsIGNvdW50IG9mIHBpdm90IHRhYiB3YXMgZm91bmQuJyxcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdXaXphcmRMaXRlQ29tcG9uZW50Lm5nQWZ0ZXJDb250ZW50SW5pdCgpJ1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC5waXZvdENvbXBvbmVudCA9IHdpemFyZExpdGVDb21wb25lbnQucGl2b3RFbGVtZW50LnRvQXJyYXkoKVswXTtcclxuXHJcbiAgICAgICAgICAgIC8vIENvcmVCYXNlQ29tcG9uZW50IHdpbGwgZGVzdHJveSB3aXphcmRMaXRlQ29tcG9uZW50LnN1YnNjcmlwdGlvbnMgb24gZGVzdHJveSBldmVudFxyXG4gICAgICAgICAgICB3aXphcmRMaXRlQ29tcG9uZW50LmdldFN1YnNjcmlwdGlvbnMoKS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC5waXZvdENvbXBvbmVudC5zZWxlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB3aXphcmRMaXRlQ29tcG9uZW50Lm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBzZXRzIHVwIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBwaXZvdCBjb21wb25lbnQgYW5kIHRoZSBmb290ZXIgc3BhY2Ugd2l6YXJkIGJ1dHRvbiBmcm9tIGludGVybmFsIHNoZWxsLlxyXG4gICAgICogQHBhcmFtIHdpemFyZExpdGVDb21wb25lbnQgdGhlIHdpemFyZCBsaXRlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldHVwRW1pdHRlclN1YnNjcmlwdGlvbnMod2l6YXJkTGl0ZUNvbXBvbmVudDogV2l6YXJkTGl0ZUNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmICghd2l6YXJkTGl0ZUNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwaXZvdENvbXBvbmVudCA9IHdpemFyZExpdGVDb21wb25lbnQucGl2b3RDb21wb25lbnQ7XHJcbiAgICAgICAgaWYgKCFwaXZvdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB3aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50ID0gd2l6YXJkTGl0ZUNvbXBvbmVudC53aXphcmRMaXRlRm9vdGVyVGVtcGxhdGU7XHJcbiAgICAgICAgaWYgKCF3aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHdpemFyZExpdGVGb290ZXJUZW1wbGF0ZUVsZW1lbnQucHJldkJ1dHRvbkNsaWNrZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgcGl2b3RDb21wb25lbnQuc2VsZWN0VGFiQnlMYWJlbCh3aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50LndpemFyZEJ1dHRvbi5nZXRDdXJyZW50QWN0aXZhdGVkQnV0dG9uTGFiZWwoKSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHdpemFyZExpdGVGb290ZXJUZW1wbGF0ZUVsZW1lbnQubmV4dEJ1dHRvbkNsaWNrZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgcGl2b3RDb21wb25lbnQuc2VsZWN0VGFiQnlMYWJlbCh3aXphcmRMaXRlRm9vdGVyVGVtcGxhdGVFbGVtZW50LndpemFyZEJ1dHRvbi5nZXRDdXJyZW50QWN0aXZhdGVkQnV0dG9uTGFiZWwoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBjaGVja3Mgd2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGFjdGl2ZS5cclxuICAgICAqIEBwYXJhbSB3aXphcmRMaXRlQ29tcG9uZW50IHRoZSB3aXphcmQgbGl0ZSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGVja0FjdGl2ZSh3aXphcmRMaXRlQ29tcG9uZW50OiBXaXphcmRMaXRlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgd2l6YXJkTGl0ZUNvbXBvbmVudC5hY3RpdmUgPSAhIXdpemFyZExpdGVDb21wb25lbnQud2l6YXJkQnV0dG9uICYmICEhd2l6YXJkTGl0ZUNvbXBvbmVudC5waXZvdENvbXBvbmVudDtcclxuICAgIH1cclxufVxyXG4iXX0=