UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

144 lines 16.1 kB
import { Directive, Injector } from '@angular/core'; import { of, Subject } from 'rxjs'; import { map, tap } from 'rxjs/operators'; import { BaseComponent } from '../../common/base.component'; import { WizardAsParent } from '../wizard-as-parent'; import * as i0 from "@angular/core"; import * as i1 from "../wizard-as-parent"; /** * A base class for dynamically rendered wizard steps */ // eslint-disable-next-line @angular-eslint/directive-class-suffix export class WizardStepComponent extends BaseComponent { /** * Constructs a new instance of the WizardStepComponent * @param injector The injector for the sme base component * @param wizard (Optional) The parent wizard reference. */ constructor(injector, wizard) { super(injector); this.submittedSubject = new Subject(); this.submitted = this.submittedSubject.asObservable(); this.modelChangedSubject = new Subject(); this.modelChanged = this.modelChangedSubject.asObservable(); this.navigationInformation = wizard && wizard.navigationInformation; } /** * Gets the model for the wizard */ get model() { return this.internalModel; } /** * @deprecated * Whether or not the component is skipped. * This is provided by the step component implementation, * defaults to false. */ get skipped() { return false; } /** * Whether or not the component is disabled. * A disabled step cannot update form fields and * is read-only. A disabled step will be skipped * automatically. * * This is provided by the step component implementation, * defaults to false. */ get disabled() { return this.skipped; } /** * Whether or not the component can be skipped. * This is provided by the step component implementation, * defaults to false. */ get canBeSkipped() { return false; } /** * Whether or not the component is busy. * A step is busy if it has progress that will be lost if * the wizard navigates to a different step. * * This is provided by the step component implementation, * defaults to false. */ get isBusy() { return false; } /** * Custom message provider by the wizard step when isBusy:true and user is trying to navigate away * from the wizard step. If null, it uses the standard message. */ get busyMessage() { return null; } /** * Whether or not there should be padding around the component */ get padContents() { return true; } /** * Whether or not the component is valid. */ get valid() { return this.getIsValid(); } /** * Angular Destroy life cycle hook */ ngOnDestroy() { super.ngOnDestroy(); this.submittedSubject.complete(); this.modelChangedSubject.complete(); } /** * Observable handler for determining if the step is valid * Override if you want to validate the entire step */ checkIsValid() { return of(true); } /** * Called from the wizard when the model changes */ onWizardModelChanged(value) { this.internalModel = value; } /** * Observable handler for determining if the step is valid */ validate() { return this.checkIsValid().pipe(tap(valid => this.internalValid = valid), map(valid => ({ isValid: valid }))); } /** * Submits the step to the wizard */ submit() { this.submittedSubject.next(); } /** * Submits updated model to the wizard */ emitModelChanged() { this.modelChangedSubject.next(this.model); } /** * Gets if the step is currently valid */ getIsValid() { return MsftSme.isNullOrUndefined(this.internalValid) || !!this.internalValid; } } /** @nocollapse */ WizardStepComponent.ɵfac = function WizardStepComponent_Factory(t) { return new (t || WizardStepComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.WizardAsParent)); }; /** @nocollapse */ WizardStepComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: WizardStepComponent, features: [i0.ɵɵInheritDefinitionFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WizardStepComponent, [{ type: Directive }], function () { return [{ type: i0.Injector }, { type: i1.WizardAsParent }]; }, null); })(); export class GenericWizardStepComponent extends WizardStepComponent { } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvd2l6YXJkL3dpemFyZC1zdGVwL3dpemFyZC1zdGVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUdyRDs7R0FFRztBQUVILGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG1CQUNsQixTQUFRLGFBQStCO0lBNEd2Qzs7OztPQUlHO0lBQ0gsWUFBWSxRQUFrQixFQUFFLE1BQXVCO1FBQ25ELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztJQUN4RSxDQUFDO0lBakdEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsWUFBWTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsTUFBTTtRQUNiLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUE0QkQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDbEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxFQUN4QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDckMsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNPLE1BQU07UUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNPLFVBQVU7UUFDaEIsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pGLENBQUM7O3lHQWhMaUIsbUJBQW1CO3FHQUFuQixtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQUZ4QyxTQUFTOztBQXFMVixNQUFNLE9BQWdCLDBCQUF1RCxTQUFRLG1CQUFnQztDQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2l6YXJkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvd2l6YXJkLW1vZGVsJztcclxuaW1wb3J0IHsgV2l6YXJkU3RlcFZhbGlkYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvd2l6YXJkLXN0ZXAtdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFdpemFyZEFzUGFyZW50IH0gZnJvbSAnLi4vd2l6YXJkLWFzLXBhcmVudCc7XHJcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25JbmZvcm1hdGlvbiB9IGZyb20gJy4uL3dpemFyZC1uYXZpZ2F0aW9uLWluZm9ybWF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGR5bmFtaWNhbGx5IHJlbmRlcmVkIHdpemFyZCBzdGVwc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2l6YXJkU3RlcENvbXBvbmVudDxUTW9kZWwgZXh0ZW5kcyBXaXphcmRNb2RlbCwgVFJlc291cmNlU3RyaW5ncz5cclxuICAgIGV4dGVuZHMgQmFzZUNvbXBvbmVudDxUUmVzb3VyY2VTdHJpbmdzPlxyXG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW50ZXJuYWwgcGxhY2Vob2xkZXIgZm9yIHRoZSBtb2RlbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGludGVybmFsTW9kZWw6IFRNb2RlbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGludGVybmFsIHBsYWNlaG9sZGVyIGZvciB0aGUgdmFsaWQgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFZhbGlkOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG5hdmlnYXRpb24gaW5mb3JtYXRpb24gaW5zdGFuY2UgcmVmZXJlbmNpbmcgaW5zaWRlIG9mIFdpemFyZENvbXBvbmVudCBjbGFzcyBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5hdmlnYXRpb25JbmZvcm1hdGlvbjogV2l6YXJkTmF2aWdhdGlvbkluZm9ybWF0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG9vbHRpcCB0byBiZSBkaXNwbGF5ZWQgd2hlbiBcIk5leHRcIiBidXR0b24gaXMgZGlzYWJsZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZXh0QnV0dG9uVG9vbHRpcDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbW9kZWwgZm9yIHRoZSB3aXphcmRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBtb2RlbCgpOiBUTW9kZWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsTW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVwcmVjYXRlZFxyXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGNvbXBvbmVudCBpcyBza2lwcGVkLlxyXG4gICAgICogVGhpcyBpcyBwcm92aWRlZCBieSB0aGUgc3RlcCBjb21wb25lbnQgaW1wbGVtZW50YXRpb24sXHJcbiAgICAgKiBkZWZhdWx0cyB0byBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBza2lwcGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXHJcbiAgICAgKiBBIGRpc2FibGVkIHN0ZXAgY2Fubm90IHVwZGF0ZSBmb3JtIGZpZWxkcyBhbmRcclxuICAgICAqIGlzIHJlYWQtb25seS4gQSBkaXNhYmxlZCBzdGVwIHdpbGwgYmUgc2tpcHBlZFxyXG4gICAgICogYXV0b21hdGljYWxseS5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGlzIHByb3ZpZGVkIGJ5IHRoZSBzdGVwIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbixcclxuICAgICAqIGRlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNraXBwZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY29tcG9uZW50IGNhbiBiZSBza2lwcGVkLlxyXG4gICAgICogVGhpcyBpcyBwcm92aWRlZCBieSB0aGUgc3RlcCBjb21wb25lbnQgaW1wbGVtZW50YXRpb24sXHJcbiAgICAgKiBkZWZhdWx0cyB0byBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBjYW5CZVNraXBwZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGNvbXBvbmVudCBpcyBidXN5LlxyXG4gICAgICogQSBzdGVwIGlzIGJ1c3kgaWYgaXQgaGFzIHByb2dyZXNzIHRoYXQgd2lsbCBiZSBsb3N0IGlmXHJcbiAgICAgKiB0aGUgd2l6YXJkIG5hdmlnYXRlcyB0byBhIGRpZmZlcmVudCBzdGVwLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgaXMgcHJvdmlkZWQgYnkgdGhlIHN0ZXAgY29tcG9uZW50IGltcGxlbWVudGF0aW9uLFxyXG4gICAgICogZGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNCdXN5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBtZXNzYWdlIHByb3ZpZGVyIGJ5IHRoZSB3aXphcmQgc3RlcCB3aGVuIGlzQnVzeTp0cnVlIGFuZCB1c2VyIGlzIHRyeWluZyB0byBuYXZpZ2F0ZSBhd2F5XHJcbiAgICAgKiBmcm9tIHRoZSB3aXphcmQgc3RlcC4gSWYgbnVsbCwgaXQgdXNlcyB0aGUgc3RhbmRhcmQgbWVzc2FnZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBidXN5TWVzc2FnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBvciBub3QgdGhlcmUgc2hvdWxkIGJlIHBhZGRpbmcgYXJvdW5kIHRoZSBjb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBwYWRDb250ZW50cygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjb21wb25lbnQgaXMgdmFsaWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXNWYWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gdGhpcyBzdGVwIHdhbnRzIHRvIHN1Ym1pdCBpdHNlbGZcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHN1Ym1pdHRlZDogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICAgIHByaXZhdGUgc3VibWl0dGVkU3ViamVjdDogU3ViamVjdDx2b2lkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIHRoZSB3aXphcmQgbW9kZWwgaGFzIGNoYW5nZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlZDogT2JzZXJ2YWJsZTxUTW9kZWw+O1xyXG4gICAgcHJpdmF0ZSBtb2RlbENoYW5nZWRTdWJqZWN0OiBTdWJqZWN0PFRNb2RlbD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBXaXphcmRTdGVwQ29tcG9uZW50XHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGluamVjdG9yIGZvciB0aGUgc21lIGJhc2UgY29tcG9uZW50XHJcbiAgICAgKiBAcGFyYW0gd2l6YXJkIChPcHRpb25hbCkgVGhlIHBhcmVudCB3aXphcmQgcmVmZXJlbmNlLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHdpemFyZD86IFdpemFyZEFzUGFyZW50KSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0aGlzLnN1Ym1pdHRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VE1vZGVsPigpO1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2VkID0gdGhpcy5tb2RlbENoYW5nZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkluZm9ybWF0aW9uID0gd2l6YXJkICYmIHdpemFyZC5uYXZpZ2F0aW9uSW5mb3JtYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyIERlc3Ryb3kgbGlmZSBjeWNsZSBob29rXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2VkU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSBoYW5kbGVyIGZvciBkZXRlcm1pbmluZyBpZiB0aGUgc3RlcCBpcyB2YWxpZFxyXG4gICAgICogT3ZlcnJpZGUgaWYgeW91IHdhbnQgdG8gdmFsaWRhdGUgdGhlIGVudGlyZSBzdGVwXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjaGVja0lzVmFsaWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGZyb20gdGhlIHdpemFyZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbldpemFyZE1vZGVsQ2hhbmdlZCh2YWx1ZTogVE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbE1vZGVsID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIGhhbmRsZXIgZm9yIGRldGVybWluaW5nIGlmIHRoZSBzdGVwIGlzIHZhbGlkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpOiBPYnNlcnZhYmxlPFdpemFyZFN0ZXBWYWxpZGF0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tJc1ZhbGlkKCkucGlwZShcclxuICAgICAgICAgICAgdGFwKHZhbGlkID0+IHRoaXMuaW50ZXJuYWxWYWxpZCA9IHZhbGlkKSxcclxuICAgICAgICAgICAgbWFwKHZhbGlkID0+ICh7IGlzVmFsaWQ6IHZhbGlkIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJtaXRzIHRoZSBzdGVwIHRvIHRoZSB3aXphcmRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHN1Ym1pdCgpIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZFN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VibWl0cyB1cGRhdGVkIG1vZGVsIHRvIHRoZSB3aXphcmRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGVtaXRNb2RlbENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZWRTdWJqZWN0Lm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGlmIHRoZSBzdGVwIGlzIGN1cnJlbnRseSB2YWxpZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLmludGVybmFsVmFsaWQpIHx8ICEhdGhpcy5pbnRlcm5hbFZhbGlkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY1dpemFyZFN0ZXBDb21wb25lbnQ8VE1vZGVsIGV4dGVuZHMgV2l6YXJkTW9kZWw+IGV4dGVuZHMgV2l6YXJkU3RlcENvbXBvbmVudDxUTW9kZWwsIGFueT4geyB9XHJcbiJdfQ==