UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

146 lines 16.7 kB
import { Directive, Injector, Input, TemplateRef, ViewChild } from '@angular/core'; import { BaseComponent } from '../common/base.component'; import * as i0 from "@angular/core"; const _c0 = ["defaultTooltip"]; /** * The levels of severity dictates the icon and aria label that * will be used. */ export var BadgeSeverity; (function (BadgeSeverity) { BadgeSeverity[BadgeSeverity["Informational"] = 0] = "Informational"; BadgeSeverity[BadgeSeverity["Warning"] = 1] = "Warning"; BadgeSeverity[BadgeSeverity["Critical"] = 2] = "Critical"; })(BadgeSeverity || (BadgeSeverity = {})); /** * * @smeDoc {@label Badge @id sme-badge-component} * * @overview * @file {@filepath ./examples/badge-overview.md} * * @example {@label Basic Usage @id basic-usage} * @file {@filename component.html @filepath ./examples/basic-usage.component.html} * * @example {@label Badge with link in Tooltip @id link-tooltip} * @file {@filename component.html @filepath ./examples/link-tooltip-badge.component.html} * * @example {@label Badge with Header @id header-badge} * @file {@filename component.html @filepath ./examples/header-badge.component.html} */ /** * Defines a base component for badges */ // eslint-disable-next-line @angular-eslint/directive-class-suffix export class BadgeBaseComponent extends BaseComponent { /** * Initializes a new instance of the @see BadgeComponent class. * @param injector The angular injection service. required by @SmeInjectableBase() decorator in the base @see BaseComponent class */ constructor(injector) { super(injector); /** * Feedback link that is shown in the tooltip. Defaulted to a link for UserVoice feedback. */ this.feedbackLink = 'https://go.microsoft.com/fwlink/?linkid=2033442'; this.severity = BadgeSeverity.Informational; this.description = null; } /** * The title that we actually bind to */ get ariaLabel() { // we dont have proper typing for shell strings here, so we cast it to any then to strings. const badgeStrings = MsftSme.getStrings().MsftSmeShell.Angular.Badges.Common; let severityLabel = ''; switch (this.severity) { case BadgeSeverity.Warning: { severityLabel = badgeStrings.Severities.warn; break; } case BadgeSeverity.Critical: { severityLabel = badgeStrings.Severities.critical; break; } default: { return this.label; } } return badgeStrings.Aria.labelFormat.format(severityLabel, this.label); } /** * The title that we actually bind to */ get icon() { switch (this.severity) { case BadgeSeverity.Warning: { return 'sme-icon-warning'; } case BadgeSeverity.Critical: { return 'sme-icon-error'; } default: { return 'sme-icon-info'; } } } /** * The title that we actually bind to */ get resolvedTooltip() { // if we have a custom tooltip, then use it if (this.tooltip) { return this.tooltip; } return this.defaultTooltip; } /** * Gets the initial host classes to be applied to this element */ getInitialHostClasses() { return super.getInitialHostClasses().concat([ 'sme-badge', 'sme-focus-zone' ]); } } /** @nocollapse */ BadgeBaseComponent.ɵfac = function BadgeBaseComponent_Factory(t) { return new (t || BadgeBaseComponent)(i0.ɵɵdirectiveInject(i0.Injector)); }; /** @nocollapse */ BadgeBaseComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: BadgeBaseComponent, viewQuery: function BadgeBaseComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 7); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.defaultTooltip = _t.first); } }, inputs: { label: "label", description: "description", tooltip: "tooltip", learnMoreLink: "learnMoreLink", showFeedbackLink: "showFeedbackLink", feedbackLink: "feedbackLink", severity: "severity" }, features: [i0.ɵɵInheritDefinitionFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BadgeBaseComponent, [{ type: Directive }], function () { return [{ type: i0.Injector }]; }, { label: [{ type: Input }], description: [{ type: Input }], tooltip: [{ type: Input }], learnMoreLink: [{ type: Input }], showFeedbackLink: [{ type: Input }], feedbackLink: [{ type: Input }], severity: [{ type: Input }], defaultTooltip: [{ type: ViewChild, args: ['defaultTooltip', { static: true }] }] }); })(); /** * Internal base component for SME Core controls. It simply removes the need to supply the string type parameter * This class is exported from this file, but not meant to be exported from index.ts bundles. */ // eslint-disable-next-line @angular-eslint/directive-class-suffix export class CoreBadgeBaseComponent extends BadgeBaseComponent { } /** @nocollapse */ CoreBadgeBaseComponent.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵCoreBadgeBaseComponent_BaseFactory; return function CoreBadgeBaseComponent_Factory(t) { return (ɵCoreBadgeBaseComponent_BaseFactory || (ɵCoreBadgeBaseComponent_BaseFactory = i0.ɵɵgetInheritedFactory(CoreBadgeBaseComponent)))(t || CoreBadgeBaseComponent); }; }(); /** @nocollapse */ CoreBadgeBaseComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CoreBadgeBaseComponent, features: [i0.ɵɵInheritDefinitionFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CoreBadgeBaseComponent, [{ type: Directive }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9iYWRnZS9iYWRnZS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUV6RDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLG1FQUFpQixDQUFBO0lBQ2pCLHVEQUFXLENBQUE7SUFDWCx5REFBWSxDQUFBO0FBQ2hCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVIOztHQUVHO0FBRUgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0Isa0JBQTZCLFNBQVEsYUFBdUI7SUF3RzlFOzs7T0FHRztJQUNILFlBQVksUUFBa0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBN0VwQjs7V0FFRztRQUVJLGlCQUFZLEdBQTJCLGlEQUFpRCxDQUFDO1FBMEU1RixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQWxFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNoQiwyRkFBMkY7UUFDM0YsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN0RixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDdkIsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLEtBQUssYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QixhQUFhLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQzdDLE1BQU07YUFDVDtZQUNELEtBQUssYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6QixhQUFhLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pELE1BQU07YUFDVDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNyQjtTQUNKO1FBQ0QsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLE9BQU8sa0JBQWtCLENBQUM7YUFDN0I7WUFDRCxLQUFLLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsT0FBTyxnQkFBZ0IsQ0FBQzthQUMzQjtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNMLE9BQU8sZUFBZSxDQUFDO2FBQzFCO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDdEIsMkNBQTJDO1FBQzNDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN2QjtRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBa0JEOztPQUVHO0lBQ08scUJBQXFCO1FBQzNCLE9BQU8sS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3hDLFdBQVc7WUFDWCxnQkFBZ0I7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUdBMUhpQixrQkFBa0I7b0dBQWxCLGtCQUFrQjs7Ozs7O3VGQUFsQixrQkFBa0I7Y0FGdkMsU0FBUzsyREFPQyxLQUFLO2tCQURYLEtBQUs7WUFPQyxXQUFXO2tCQURqQixLQUFLO1lBT0MsT0FBTztrQkFEYixLQUFLO1lBUUMsYUFBYTtrQkFEbkIsS0FBSztZQU9DLGdCQUFnQjtrQkFEdEIsS0FBSztZQU9DLFlBQVk7a0JBRGxCLEtBQUs7WUFTQyxRQUFRO2tCQURkLEtBQUs7WUEyREMsY0FBYztrQkFEcEIsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O0FBd0JqRDs7O0dBR0c7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxrQkFBMkI7O3FTQUExRCxzQkFBc0IsU0FBdEIsc0JBQXNCO3dHQUF0QixzQkFBc0I7dUZBQXRCLHNCQUFzQjtjQUYzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXJsIH0gZnJvbSAndXJsJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBUaGUgbGV2ZWxzIG9mIHNldmVyaXR5IGRpY3RhdGVzIHRoZSBpY29uIGFuZCBhcmlhIGxhYmVsIHRoYXRcclxuICogd2lsbCBiZSB1c2VkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQmFkZ2VTZXZlcml0eSB7XHJcbiAgICBJbmZvcm1hdGlvbmFsID0gMCxcclxuICAgIFdhcm5pbmcgPSAxLFxyXG4gICAgQ3JpdGljYWwgPSAyXHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgQmFkZ2UgQGlkIHNtZS1iYWRnZS1jb21wb25lbnR9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvYmFkZ2Utb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2Jhc2ljLXVzYWdlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhZGdlIHdpdGggbGluayBpbiBUb29sdGlwIEBpZCBsaW5rLXRvb2x0aXB9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvbGluay10b29sdGlwLWJhZGdlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhZGdlIHdpdGggSGVhZGVyIEBpZCBoZWFkZXItYmFkZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvaGVhZGVyLWJhZGdlLmNvbXBvbmVudC5odG1sfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIGEgYmFzZSBjb21wb25lbnQgZm9yIGJhZGdlc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFkZ2VCYXNlQ29tcG9uZW50PFRTdHJpbmdzPiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VFN0cmluZ3M+IHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRpdGxlIGRpc3BsYXllZCBmb3IgdGhlIGJhZGdlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBzZW50ZW5jZSBvZiB0ZXh0IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gYSB0b29sdGlwIGFuZCB1c2VkIGZvciBhcmlhLWRlc2NyaWJlZGJ5LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9vbHRpcCBvZiB0aGUgYmFkZ2VcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0b29sdGlwOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yIHRoZSBkZWZhdWx0IHRvb2x0aXAsIGEgbGluayBmb3IgYW4gb3B0aW9uYWwgaHlwZXJsaW5rZWQgdGV4dFxyXG4gICAgICogbGFiZWxlZCAnTGVhcm4gTW9yZScgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsZWFybk1vcmVMaW5rOiBzdHJpbmcgfCBVcmwgfCBTYWZlVXJsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlcyBzcGVjaWZpYyBmZWVkYmFjayBsaW5rIHRvIFVzZXJWb2ljZSBpbiB0aGUgdG9vbHRpcC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93RmVlZGJhY2tMaW5rOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmVlZGJhY2sgbGluayB0aGF0IGlzIHNob3duIGluIHRoZSB0b29sdGlwLiBEZWZhdWx0ZWQgdG8gYSBsaW5rIGZvciBVc2VyVm9pY2UgZmVlZGJhY2suXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZmVlZGJhY2tMaW5rOiBzdHJpbmcgfCBVcmwgfCBTYWZlVXJsID0gJ2h0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP2xpbmtpZD0yMDMzNDQyJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZWQgdG8gaW5kaWNhdGUgdGhlIGltcG9ydGFuY2Ugb2YgdGhlIGNvbXBvbmVudCBiZWluZyBkaXNwbGF5ZWQuXHJcbiAgICAgKiBEZWZhdWx0cyB0byBpbmZvcm1hdGlvbmFsLiBJY29uIGFuZCBhcmlhLWxhYmVsIHdpbGwgYmUgdXBkYXRlZCBiYXNlZCBvblxyXG4gICAgICogc2V2ZXJpdHkgdGhhdCBpcyBhcHBsaWVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldmVyaXR5OiBCYWRnZVNldmVyaXR5O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRpdGxlIHRoYXQgd2UgYWN0dWFsbHkgYmluZCB0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIHdlIGRvbnQgaGF2ZSBwcm9wZXIgdHlwaW5nIGZvciBzaGVsbCBzdHJpbmdzIGhlcmUsIHNvIHdlIGNhc3QgaXQgdG8gYW55IHRoZW4gdG8gc3RyaW5ncy5cclxuICAgICAgICBjb25zdCBiYWRnZVN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKS5Nc2Z0U21lU2hlbGwuQW5ndWxhci5CYWRnZXMuQ29tbW9uO1xyXG4gICAgICAgIGxldCBzZXZlcml0eUxhYmVsID0gJyc7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQmFkZ2VTZXZlcml0eS5XYXJuaW5nOiB7XHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eUxhYmVsID0gYmFkZ2VTdHJpbmdzLlNldmVyaXRpZXMud2FybjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgQmFkZ2VTZXZlcml0eS5Dcml0aWNhbDoge1xyXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHlMYWJlbCA9IGJhZGdlU3RyaW5ncy5TZXZlcml0aWVzLmNyaXRpY2FsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFiZWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGJhZGdlU3RyaW5ncy5BcmlhLmxhYmVsRm9ybWF0LmZvcm1hdChzZXZlcml0eUxhYmVsLCB0aGlzLmxhYmVsKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aXRsZSB0aGF0IHdlIGFjdHVhbGx5IGJpbmQgdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpY29uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQmFkZ2VTZXZlcml0eS5XYXJuaW5nOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NtZS1pY29uLXdhcm5pbmcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgQmFkZ2VTZXZlcml0eS5Dcml0aWNhbDoge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdzbWUtaWNvbi1lcnJvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdzbWUtaWNvbi1pbmZvJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aXRsZSB0aGF0IHdlIGFjdHVhbGx5IGJpbmQgdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCByZXNvbHZlZFRvb2x0aXAoKTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGN1c3RvbSB0b29sdGlwLCB0aGVuIHVzZSBpdFxyXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRUb29sdGlwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlZmF1bHQgdG9vbHRpcCB0ZW1wbGF0ZVxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0VG9vbHRpcCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgZGVmYXVsdFRvb2x0aXA6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQHNlZSBCYWRnZUNvbXBvbmVudCBjbGFzcy5cclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBUaGUgYW5ndWxhciBpbmplY3Rpb24gc2VydmljZS4gcmVxdWlyZWQgYnkgQFNtZUluamVjdGFibGVCYXNlKCkgZGVjb3JhdG9yIGluIHRoZSBiYXNlIEBzZWUgQmFzZUNvbXBvbmVudCBjbGFzc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICAgICAgdGhpcy5zZXZlcml0eSA9IEJhZGdlU2V2ZXJpdHkuSW5mb3JtYXRpb25hbDtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGluaXRpYWwgaG9zdCBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRJbml0aWFsSG9zdENsYXNzZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpLmNvbmNhdChbXHJcbiAgICAgICAgICAgICdzbWUtYmFkZ2UnLFxyXG4gICAgICAgICAgICAnc21lLWZvY3VzLXpvbmUnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBiYXNlIGNvbXBvbmVudCBmb3IgU01FIENvcmUgY29udHJvbHMuIEl0IHNpbXBseSByZW1vdmVzIHRoZSBuZWVkIHRvIHN1cHBseSB0aGUgc3RyaW5nIHR5cGUgcGFyYW1ldGVyXHJcbiAqIFRoaXMgY2xhc3MgaXMgZXhwb3J0ZWQgZnJvbSB0aGlzIGZpbGUsIGJ1dCBub3QgbWVhbnQgdG8gYmUgZXhwb3J0ZWQgZnJvbSBpbmRleC50cyBidW5kbGVzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29yZUJhZGdlQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhZGdlQmFzZUNvbXBvbmVudDxTdHJpbmdzPiB7XHJcbiAgICAvLyBTaG91bGQgUmVtYWluIEVtcHR5LlxyXG59XHJcbiJdfQ==