@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
137 lines • 17.3 kB
JavaScript
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=