UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

137 lines 17.3 kB
import { Directive, Input } from '@angular/core'; import * as i0 from "@angular/core"; /** * Defines the model of an action item including which renderer to use. * The consumer can provide an array of these to the action bar 'actions' attribute. */ export class ActionItem { /** * Constructor for ActionItem. * @param renderer The renderer instance used with the ActionItem. */ constructor(renderer) { this.renderer = renderer; this.busyTargets = []; /** * Flag set to indicate the ActionItem is currently in the busy state (defaults to false). */ this.busy = false; /** * Flag set to indicate whether or not the ActionItem is enabled (defaults to true). */ this.enabled = true; /** * Flag set to indicate whether or not the ActionItem is toggled (defaults to false). */ this.toggled = false; /** * Flag set to indicate whether or not the ActionItem is hidden (defaults to false). */ this.hidden = false; /** * Flag set to indicate whether or not the ActionItem can be run (defaults to false and set to true once added to a container). */ this.ready = false; /** * Flag set to indicate whether or not the ActionItem should have a pop-out */ this.popOutEnabled = false; } /** * Method to set the state of the ActionItem. * @param target The target object to be used by the ActionItem. * @param container The ActionContainer to place the ActionItem in. */ setActionState(target, container) { this.target = target; this.container = container; const targetUniqueReference = this.getTargetUniqueReference(target); this.busy = this.busyTargets.indexOf(targetUniqueReference) !== -1; } /** * Sets the target and container of the ActionItem to null. */ clearActionState() { this.target = null; this.container = null; } /** * Adds the ActionItem to the given container and sets the ActionItem target. Sets ready to true. * @param target Target object to be used by the ActionItem. * @param container ActionContainer to set as the parent of the ActionItem. */ addedToContainer(target, container) { this.ready = true; this.setActionState(target, container); } /** * Removes the ActionItem from its current container and sets ready to false. */ removedFromContainer() { this.ready = false; this.clearActionState(); } getTargetUniqueReference(target) { return target; } } /** * The base class for the components that actually renders actions. * This is refereed to by the 'renderer' property of ActionItem * Internally it is used by the DynamicActionItemComponent to create an action item * */ export class ActionItemRendererComponent { itemChanged(item) { this.item = item; } } /** * Provides the ability to add action items from html best for simple scenarios without a complex command model */ // eslint-disable-next-line @angular-eslint/directive-class-suffix export class ActionItemComponent { /** * Constructor for ActionItemComponent. */ constructor() { this.strings = MsftSme.getStrings(); this.action = this.createActionItem(); } /** * Callback method run after default change detector has executed. */ ngOnChanges(changes) { const props = Object.keys(changes); props.forEach(prop => { const change = changes[prop]; this.action[prop] = change.currentValue; }); } } /** @nocollapse */ ActionItemComponent.ɵfac = function ActionItemComponent_Factory(t) { return new (t || ActionItemComponent)(); }; /** @nocollapse */ ActionItemComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: ActionItemComponent, inputs: { actionId: "actionId", hidden: "hidden", enabled: "enabled", toggled: "toggled", text: "text", name: "name", iconClass: "iconClass", popOutEnabled: "popOutEnabled", popOutUrl: "popOutUrl", popOutTitle: "popOutTitle" }, features: [i0.ɵɵNgOnChangesFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionItemComponent, [{ type: Directive }], function () { return []; }, { actionId: [{ type: Input }], hidden: [{ type: Input }], enabled: [{ type: Input }], toggled: [{ type: Input }], text: [{ type: Input }], name: [{ type: Input }], iconClass: [{ type: Input }], popOutEnabled: [{ type: Input }], popOutUrl: [{ type: Input }], popOutTitle: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWN0aW9ucy9pdGVtcy9hY3Rpb24taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtDLE1BQU0sZUFBZSxDQUFDOztBQUlqRjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQTJFbkI7OztPQUdHO0lBQ0gsWUFBNEIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlFckMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUF3QjNCOztXQUVHO1FBQ0ksU0FBSSxHQUFHLEtBQUssQ0FBQztRQUVwQjs7V0FFRztRQUNJLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFdEI7O1dBRUc7UUFDSSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXZCOztXQUVHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQVl0Qjs7V0FFRztRQUNJLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFckI7O1dBRUc7UUFDSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQWdCc0IsQ0FBQztJQUVwRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLE1BQVcsRUFBRSxTQUEwQjtRQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUzQixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsTUFBVyxFQUFFLFNBQTBCO1FBQzNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLG9CQUFvQjtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVMsd0JBQXdCLENBQUMsTUFBVztRQUMxQyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBRUo7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTywyQkFBMkI7SUFFN0IsV0FBVyxDQUFDLElBQU87UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBRUQ7O0dBRUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixtQkFBbUI7SUFrRXJDOztPQUVHO0lBQ0g7UUFuRU8sWUFBTyxHQUFZLE9BQU8sQ0FBQyxVQUFVLEVBQVcsQ0FBQztRQW9FcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBSUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBc0I7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzt5R0FwRmlCLG1CQUFtQjtxR0FBbkIsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FGeEMsU0FBUztzQ0FPQyxRQUFRO2tCQURkLEtBQUs7WUFPQyxNQUFNO2tCQURaLEtBQUs7WUFPQyxPQUFPO2tCQURiLEtBQUs7WUFPQyxPQUFPO2tCQURiLEtBQUs7WUFPQyxJQUFJO2tCQURWLEtBQUs7WUFPQyxJQUFJO2tCQURWLEtBQUs7WUFPQyxTQUFTO2tCQURmLEtBQUs7WUFPQyxhQUFhO2tCQURuQixLQUFLO1lBT0MsU0FBUztrQkFEZixLQUFLO1lBT0MsV0FBVztrQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBBY3Rpb25Db250YWluZXIgfSBmcm9tICcuLi9jb250YWluZXJzL2FjdGlvbi1jb250YWluZXInO1xyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgdGhlIG1vZGVsIG9mIGFuIGFjdGlvbiBpdGVtIGluY2x1ZGluZyB3aGljaCByZW5kZXJlciB0byB1c2UuXHJcbiAqIFRoZSBjb25zdW1lciBjYW4gcHJvdmlkZSBhbiBhcnJheSBvZiB0aGVzZSB0byB0aGUgYWN0aW9uIGJhciAnYWN0aW9ucycgYXR0cmlidXRlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFjdGlvbkl0ZW0ge1xyXG4gICAgcHJvdGVjdGVkIGJ1c3lUYXJnZXRzID0gW107XHJcblxyXG4gICAgcHVibGljIGFjdGlvbklkOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgY2xhc3MgZm9yIGljb24gdG8gYmUgZGlzcGxheWVkIHdpdGggdGhlIEFjdGlvbkl0ZW0uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpY29uQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgYWN0aW9uIGl0ZW0gdG8gYmUgcmVhZCBvdXQgYnkgc2NyZWVuIHJlYWRlci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIExhYmVsIHRvIGJlIGRpc3BsYXllZCBmb3IgdGhlIEFjdGlvbkl0ZW0uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXhlZCBwaXhlbCB3aWR0aCB0byBiZSB1c2VkIGZvciB0aGUgQWN0aW9uSXRlbS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHNldCB0byBpbmRpY2F0ZSB0aGUgQWN0aW9uSXRlbSBpcyBjdXJyZW50bHkgaW4gdGhlIGJ1c3kgc3RhdGUgKGRlZmF1bHRzIHRvIGZhbHNlKS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBBY3Rpb25JdGVtIGlzIGVuYWJsZWQgKGRlZmF1bHRzIHRvIHRydWUpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW5hYmxlZCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHNldCB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGUgQWN0aW9uSXRlbSBpcyB0b2dnbGVkIChkZWZhdWx0cyB0byBmYWxzZSkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b2dnbGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHNldCB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGUgQWN0aW9uSXRlbSBpcyBoaWRkZW4gKGRlZmF1bHRzIHRvIGZhbHNlKS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRhcmdldCBvYmplY3QgZm9yIHRoZSBBY3Rpb25JdGVtLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFyZ2V0OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcGFyZW50IEFjdGlvbkNvbnRhaW5lciBvZiB0aGUgQWN0aW9uSXRlbS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnRhaW5lcjogQWN0aW9uQ29udGFpbmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3QgdGhlIEFjdGlvbkl0ZW0gY2FuIGJlIHJ1biAoZGVmYXVsdHMgdG8gZmFsc2UgYW5kIHNldCB0byB0cnVlIG9uY2UgYWRkZWQgdG8gYSBjb250YWluZXIpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZHkgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBBY3Rpb25JdGVtIHNob3VsZCBoYXZlIGEgcG9wLW91dFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9wT3V0RW5hYmxlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVVJMIGZvciB0aGUgcG9wLW91dCB3aW5kb3cgaWYgdGhlIEZsYWcgcG9wT3V0RW5hYmxlZCBpcyBUcnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwb3BPdXRVcmw6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRpdGxlIGZvciB0aGUgcG9wLW91dCB3aW5kb3dcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvcE91dFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQWN0aW9uSXRlbS5cclxuICAgICAqIEBwYXJhbSByZW5kZXJlciBUaGUgcmVuZGVyZXIgaW5zdGFuY2UgdXNlZCB3aXRoIHRoZSBBY3Rpb25JdGVtLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZXI6IFR5cGU8YW55PikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gc2V0IHRoZSBzdGF0ZSBvZiB0aGUgQWN0aW9uSXRlbS5cclxuICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3QgdG8gYmUgdXNlZCBieSB0aGUgQWN0aW9uSXRlbS5cclxuICAgICAqIEBwYXJhbSBjb250YWluZXIgVGhlIEFjdGlvbkNvbnRhaW5lciB0byBwbGFjZSB0aGUgQWN0aW9uSXRlbSBpbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEFjdGlvblN0YXRlKHRhcmdldDogYW55LCBjb250YWluZXI6IEFjdGlvbkNvbnRhaW5lcikge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xyXG5cclxuICAgICAgICBjb25zdCB0YXJnZXRVbmlxdWVSZWZlcmVuY2UgPSB0aGlzLmdldFRhcmdldFVuaXF1ZVJlZmVyZW5jZSh0YXJnZXQpO1xyXG4gICAgICAgIHRoaXMuYnVzeSA9IHRoaXMuYnVzeVRhcmdldHMuaW5kZXhPZih0YXJnZXRVbmlxdWVSZWZlcmVuY2UpICE9PSAtMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHRhcmdldCBhbmQgY29udGFpbmVyIG9mIHRoZSBBY3Rpb25JdGVtIHRvIG51bGwuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhckFjdGlvblN0YXRlKCkge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIHRoZSBBY3Rpb25JdGVtIHRvIHRoZSBnaXZlbiBjb250YWluZXIgYW5kIHNldHMgdGhlIEFjdGlvbkl0ZW0gdGFyZ2V0LiBTZXRzIHJlYWR5IHRvIHRydWUuXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IFRhcmdldCBvYmplY3QgdG8gYmUgdXNlZCBieSB0aGUgQWN0aW9uSXRlbS5cclxuICAgICAqIEBwYXJhbSBjb250YWluZXIgQWN0aW9uQ29udGFpbmVyIHRvIHNldCBhcyB0aGUgcGFyZW50IG9mIHRoZSBBY3Rpb25JdGVtLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkZWRUb0NvbnRhaW5lcih0YXJnZXQ6IGFueSwgY29udGFpbmVyOiBBY3Rpb25Db250YWluZXIpIHtcclxuICAgICAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldEFjdGlvblN0YXRlKHRhcmdldCwgY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgdGhlIEFjdGlvbkl0ZW0gZnJvbSBpdHMgY3VycmVudCBjb250YWluZXIgYW5kIHNldHMgcmVhZHkgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVkRnJvbUNvbnRhaW5lcigpIHtcclxuICAgICAgICB0aGlzLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGlvblN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldFRhcmdldFVuaXF1ZVJlZmVyZW5jZSh0YXJnZXQ6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgdGhlIGNvbXBvbmVudHMgdGhhdCBhY3R1YWxseSByZW5kZXJzIGFjdGlvbnMuXHJcbiAqIFRoaXMgaXMgcmVmZXJlZWQgdG8gYnkgdGhlICdyZW5kZXJlcicgcHJvcGVydHkgb2YgQWN0aW9uSXRlbVxyXG4gKiBJbnRlcm5hbGx5IGl0IGlzIHVzZWQgYnkgdGhlIER5bmFtaWNBY3Rpb25JdGVtQ29tcG9uZW50IHRvIGNyZWF0ZSBhbiBhY3Rpb24gaXRlbVxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFjdGlvbkl0ZW1SZW5kZXJlckNvbXBvbmVudDxUIGV4dGVuZHMgQWN0aW9uSXRlbT4ge1xyXG4gICAgcHVibGljIGl0ZW06IFQ7XHJcbiAgICBwdWJsaWMgaXRlbUNoYW5nZWQoaXRlbTogVCkge1xyXG4gICAgICAgIHRoaXMuaXRlbSA9IGl0ZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBhZGQgYWN0aW9uIGl0ZW1zIGZyb20gaHRtbCBiZXN0IGZvciBzaW1wbGUgc2NlbmFyaW9zIHdpdGhvdXQgYSBjb21wbGV4IGNvbW1hbmQgbW9kZWxcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgcHJvdGVjdGVkIGxvZ1NvdXJjZU5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzdHJpbmdzOiBTdHJpbmdzID0gTXNmdFNtZS5nZXRTdHJpbmdzPFN0cmluZ3M+KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhY3Rpb25JZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyBzZXQgdG8gaGlkZSB0aGUgQWN0aW9uSXRlbUNvbXBvbmVudC4gVHJ1ZSBmb3IgaGlkZGVuLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGlkZGVuOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyBzZXQgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIEFjdGlvbkl0ZW1Db21wb25lbnQuIFRydWUgZm9yIGVuYWJsZWQsIGZhbHNlIGZvciBkaXNhYmxlZC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbmFibGVkOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyBzZXQgdG8gaW5kaWNhdGUgaWYgQWN0aW9uSXRlbUNvbXBvbmVudCBpcyBjdXJyZW50bHkgdG9nZ2xlZC4gVHJ1ZSBmb3IgdG9nZ2xlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRvZ2dsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYWJlbCB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBBY3Rpb25JdGVtLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgYWN0aW9uIGl0ZW0gdG8gYmUgcmVhZCBvdXQgYnkgc2NyZWVuIHJlYWRlci5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgY2xhc3MgZm9yIGljb24gdG8gYmUgZGlzcGxheWVkIHdpdGggdGhlIEFjdGlvbkl0ZW0uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWNvbkNsYXNzOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHRvIHNob3cgdGhlIHBvcC1vdXQgYnV0dG9uIG9uIHRoZSBBY3Rpb25JdGVtQ29tcG9uZW50LiBUcnVlIGZvciBlbmFibGluZyBwb3Atb3V0LCBmYWxzZSBpZiBub3RcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwb3BPdXRFbmFibGVkOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVVJMIGZvciB0aGUgcG9wLW91dCB3aW5kb3cgaWYgdGhlIEZsYWcgcG9wT3V0RW5hYmxlZCBpcyBUcnVlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9wT3V0VXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaXRsZSBmb3IgdGhlIHBvcC1vdXQgd2luZG93XHJcbiAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwb3BPdXRUaXRsZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWN0aW9uSXRlbSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQWN0aW9uSXRlbUNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGlvbjogQWN0aW9uSXRlbTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yIGZvciBBY3Rpb25JdGVtQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuY3JlYXRlQWN0aW9uSXRlbSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVBY3Rpb25JdGVtKCk6IEFjdGlvbkl0ZW07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBtZXRob2QgcnVuIGFmdGVyIGRlZmF1bHQgY2hhbmdlIGRldGVjdG9yIGhhcyBleGVjdXRlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBjb25zdCBwcm9wcyA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xyXG4gICAgICAgIHByb3BzLmZvckVhY2gocHJvcCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbcHJvcF07XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uW3Byb3BdID0gY2hhbmdlLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=