UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

94 lines 15.3 kB
import { Directive, Injector, Input } from '@angular/core'; import { CoreBaseComponent } from './base.component'; import * as i0 from "@angular/core"; // eslint-disable-next-line @angular-eslint/directive-class-suffix export class CapacityBase extends CoreBaseComponent { constructor(injector) { super(injector); this.warningThreshold = CapacityBase.defaults.warningThreshold; this.criticalThreshold = CapacityBase.defaults.criticalThreshold; this.normalColorScheme = CapacityBase.defaults.greenColorScheme; this.warningColorScheme = CapacityBase.defaults.yellowColorScheme; this.criticalColorScheme = CapacityBase.defaults.redColorScheme; this.freeColor = CapacityBase.defaults.freeColor; } /** * Sets the yellow threshold. Default is 0.75, use yellowThreshold='disabled' to disable * @deprecated since 07/23/18. Please use 'CapacityBase.warningThreshold' instead */ set yellowThreshold(value) { this.internalYellowThreshold = value; } get yellowThreshold() { return this.internalYellowThreshold; } /** * Sets the red threshold. Default is 0.9, use redThreshold='disabled' to disable * @deprecated since 07/23/18. Please use 'CapacityBase.criticalThreshold' instead */ set redThreshold(value) { this.internalRedThreshold = value; } get redThreshold() { return this.internalRedThreshold; } getColorScheme(amountUsed) { if (this.isAboveThreshold(amountUsed, this.redThreshold || this.criticalThreshold)) { return this.reverseThresholdOrder ? this.normalColorScheme : this.criticalColorScheme; } if (this.isAboveThreshold(amountUsed, this.yellowThreshold || this.warningThreshold)) { return this.warningColorScheme; } return this.reverseThresholdOrder ? this.criticalColorScheme : this.normalColorScheme; } getStateString(amountUsed) { if (this.isAboveThreshold(amountUsed, this.redThreshold || this.criticalThreshold)) { return this.reverseThresholdOrder ? this.strings.MsftSmeShell.Angular.Common.Capacity.normalState : this.strings.MsftSmeShell.Angular.Common.Capacity.criticalState; } if (this.isAboveThreshold(amountUsed, this.yellowThreshold || this.warningThreshold)) { return this.strings.MsftSmeShell.Angular.Common.Capacity.warningState; } return this.reverseThresholdOrder ? this.strings.MsftSmeShell.Angular.Common.Capacity.criticalState : this.strings.MsftSmeShell.Angular.Common.Capacity.normalState; } isAboveThreshold(amountUsed, threshold) { return threshold !== 'disabled' && amountUsed / this.total > threshold; } } CapacityBase.defaults = { warningThreshold: 0.75, criticalThreshold: 0.9, greenColorScheme: ['#02a28c', '#1bdbb6'], redColorScheme: ['#f64747', '#ffb6b6'], yellowColorScheme: ['#Fbbc05', '#FFEB4D'], freeColor: '#DDD' }; /** @nocollapse */ CapacityBase.ɵfac = function CapacityBase_Factory(t) { return new (t || CapacityBase)(i0.ɵɵdirectiveInject(i0.Injector)); }; /** @nocollapse */ CapacityBase.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CapacityBase, inputs: { yellowThreshold: "yellowThreshold", redThreshold: "redThreshold", warningThreshold: "warningThreshold", criticalThreshold: "criticalThreshold", reverseThresholdOrder: "reverseThresholdOrder", total: "total", normalColorScheme: "normalColorScheme", warningColorScheme: "warningColorScheme", criticalColorScheme: "criticalColorScheme", freeColor: "freeColor" }, features: [i0.ɵɵInheritDefinitionFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CapacityBase, [{ type: Directive }], function () { return [{ type: i0.Injector }]; }, { yellowThreshold: [{ type: Input }], redThreshold: [{ type: Input }], warningThreshold: [{ type: Input }], criticalThreshold: [{ type: Input }], reverseThresholdOrder: [{ type: Input }], total: [{ type: Input }], normalColorScheme: [{ type: Input }], warningColorScheme: [{ type: Input }], criticalColorScheme: [{ type: Input }], freeColor: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWNpdHktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9jb21tb24vY2FwYWNpdHktYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUdyRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixZQUFhLFNBQVEsaUJBQWlCO0lBbUZ4RCxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0lBaEZEOzs7T0FHRztJQUNILElBQ1csZUFBZSxDQUFDLEtBQXNCO1FBQzdDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUNELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7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QkFBcEIsS0FBSztZQUtVLGlCQUFpQjtrQkFBaEMsS0FBSztZQU1VLGtCQUFrQjtrQkFBakMsS0FBSztZQU1VLG1CQUFtQjtrQkFBbEMsS0FBSztZQU1VLFNBQVM7a0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FwYWNpdHlCYXNlIGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdHMgPSB7XHJcbiAgICAgICAgd2FybmluZ1RocmVzaG9sZDogMC43NSxcclxuICAgICAgICBjcml0aWNhbFRocmVzaG9sZDogMC45LFxyXG4gICAgICAgIGdyZWVuQ29sb3JTY2hlbWU6IFsnIzAyYTI4YycsICcjMWJkYmI2J10sXHJcbiAgICAgICAgcmVkQ29sb3JTY2hlbWU6IFsnI2Y2NDc0NycsICcjZmZiNmI2J10sXHJcbiAgICAgICAgeWVsbG93Q29sb3JTY2hlbWU6IFsnI0ZiYmMwNScsICcjRkZFQjREJ10sXHJcbiAgICAgICAgZnJlZUNvbG9yOiAnI0RERCdcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB5ZWxsb3cgdGhyZXNob2xkLiBEZWZhdWx0IGlzIDAuNzUsIHVzZSB5ZWxsb3dUaHJlc2hvbGQ9J2Rpc2FibGVkJyB0byBkaXNhYmxlXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSAwNy8yMy8xOC4gUGxlYXNlIHVzZSAnQ2FwYWNpdHlCYXNlLndhcm5pbmdUaHJlc2hvbGQnIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgeWVsbG93VGhyZXNob2xkKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmludGVybmFsWWVsbG93VGhyZXNob2xkID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IHllbGxvd1RocmVzaG9sZCgpOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsWWVsbG93VGhyZXNob2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcmVkIHRocmVzaG9sZC4gRGVmYXVsdCBpcyAwLjksIHVzZSByZWRUaHJlc2hvbGQ9J2Rpc2FibGVkJyB0byBkaXNhYmxlXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSAwNy8yMy8xOC4gUGxlYXNlIHVzZSAnQ2FwYWNpdHlCYXNlLmNyaXRpY2FsVGhyZXNob2xkJyBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlZFRocmVzaG9sZCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFJlZFRocmVzaG9sZCA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCByZWRUaHJlc2hvbGQoKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFJlZFRocmVzaG9sZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHdhcm5pbmcgdGhyZXNob2xkLiBEZWZhdWx0IGlzIDAuNzUsIHVzZSB3YXJuaW5nVGhyZXNob2xkPSdkaXNhYmxlZCcgdG8gZGlzYWJsZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHdhcm5pbmdUaHJlc2hvbGQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBjcml0aWNhbCB0aHJlc2hvbGQuIERlZmF1bHQgaXMgMC45LCB1c2UgY3JpdGljYWxUaHJlc2hvbGQ9J2Rpc2FibGVkJyB0byBkaXNhYmxlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY3JpdGljYWxUaHJlc2hvbGQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBjb2xvciBjaGFuZ2UgdGhyZXNob2xkcyBpbiByZXZlcnNlIG9yZGVyIChyZWQgaXMgbG93IGFuZCBncmVlbiBpcyBoaWdoKVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcmV2ZXJzZVRocmVzaG9sZE9yZGVyPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0b3RhbCBjYXBhY2l0eSBvZiB0aGUgY2hhcnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHRvdGFsPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRoZSBjb2xvciBzY2hlbWUgZm9yIHZhbHVlcyBsZXNzIHRoYW4gdGhlIHllbGxvdyB0aHJlc2hvbGQgdmFsdWUuIERlZmF1bHRzIHRvIGRlZmF1bHQgZ3JlZW4gY29sb3Igc2NoZW1lXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBub3JtYWxDb2xvclNjaGVtZT86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRoZSBjb2xvciBzY2hlbWUgZm9yIHZhbHVlcyBncmVhdGVyIHRoYW4gdGhlIHllbGxvdyB0aHJlc2hvbGQgdmFsdWUgYnV0IGVzcyB0aGFuIHRoZSByZWQgdGhyZXNob2xkLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZGVmYXVsdCB5ZWxsb3cgY29sb3Igc2NoZW1lXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB3YXJuaW5nQ29sb3JTY2hlbWU/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aGUgY29sb3Igc2NoZW1lIGZvciB2YWx1ZXMgZ3JlYXRlciB0aGFuIHRoYW4gdGhlIHllbGxvdyB0aHJlc2hvbGQgdmFsdWUuXHJcbiAgICAgKiBEZWZhdWx0cyB0byBkZWZhdWx0IHJlZCBjb2xvciBzY2hlbWVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNyaXRpY2FsQ29sb3JTY2hlbWU/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aGUgY29sb3Igc2NoZW1lIGZvciB0aGUgYmFja2dyb3VuZCBiYXIgY29sb3JcclxuICAgICAqIERlZmF1bHRzIHRvIGRlZmF1bHQgZnJlZSBjb2xvclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZnJlZUNvbG9yPzogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBpbnRlcm5hbFJlZFRocmVzaG9sZDogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgcHVibGljIGludGVybmFsWWVsbG93VGhyZXNob2xkOiBudW1iZXIgfCBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMud2FybmluZ1RocmVzaG9sZCA9IENhcGFjaXR5QmFzZS5kZWZhdWx0cy53YXJuaW5nVGhyZXNob2xkO1xyXG4gICAgICAgIHRoaXMuY3JpdGljYWxUaHJlc2hvbGQgPSBDYXBhY2l0eUJhc2UuZGVmYXVsdHMuY3JpdGljYWxUaHJlc2hvbGQ7XHJcbiAgICAgICAgdGhpcy5ub3JtYWxDb2xvclNjaGVtZSA9IENhcGFjaXR5QmFzZS5kZWZhdWx0cy5ncmVlbkNvbG9yU2NoZW1lO1xyXG4gICAgICAgIHRoaXMud2FybmluZ0NvbG9yU2NoZW1lID0gQ2FwYWNpdHlCYXNlLmRlZmF1bHRzLnllbGxvd0NvbG9yU2NoZW1lO1xyXG4gICAgICAgIHRoaXMuY3JpdGljYWxDb2xvclNjaGVtZSA9IENhcGFjaXR5QmFzZS5kZWZhdWx0cy5yZWRDb2xvclNjaGVtZTtcclxuICAgICAgICB0aGlzLmZyZWVDb2xvciA9IENhcGFjaXR5QmFzZS5kZWZhdWx0cy5mcmVlQ29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldENvbG9yU2NoZW1lKGFtb3VudFVzZWQ6IG51bWJlcik6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Fib3ZlVGhyZXNob2xkKGFtb3VudFVzZWQsIHRoaXMucmVkVGhyZXNob2xkIHx8IHRoaXMuY3JpdGljYWxUaHJlc2hvbGQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VUaHJlc2hvbGRPcmRlciA/IHRoaXMubm9ybWFsQ29sb3JTY2hlbWUgOiB0aGlzLmNyaXRpY2FsQ29sb3JTY2hlbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0Fib3ZlVGhyZXNob2xkKGFtb3VudFVzZWQsIHRoaXMueWVsbG93VGhyZXNob2xkIHx8IHRoaXMud2FybmluZ1RocmVzaG9sZCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FybmluZ0NvbG9yU2NoZW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZVRocmVzaG9sZE9yZGVyID8gdGhpcy5jcml0aWNhbENvbG9yU2NoZW1lIDogdGhpcy5ub3JtYWxDb2xvclNjaGVtZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U3RhdGVTdHJpbmcoYW1vdW50VXNlZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Fib3ZlVGhyZXNob2xkKGFtb3VudFVzZWQsIHRoaXMucmVkVGhyZXNob2xkIHx8IHRoaXMuY3JpdGljYWxUaHJlc2hvbGQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VUaHJlc2hvbGRPcmRlciA/XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ29tbW9uLkNhcGFjaXR5Lm5vcm1hbFN0YXRlXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uQ2FwYWNpdHkuY3JpdGljYWxTdGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBYm92ZVRocmVzaG9sZChhbW91bnRVc2VkLCB0aGlzLnllbGxvd1RocmVzaG9sZCB8fCB0aGlzLndhcm5pbmdUaHJlc2hvbGQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ29tbW9uLkNhcGFjaXR5Lndhcm5pbmdTdGF0ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VUaHJlc2hvbGRPcmRlciA/XHJcbiAgICAgICAgICAgIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uQ2FwYWNpdHkuY3JpdGljYWxTdGF0ZVxyXG4gICAgICAgICAgICA6IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uQ2FwYWNpdHkubm9ybWFsU3RhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0Fib3ZlVGhyZXNob2xkKGFtb3VudFVzZWQ6IG51bWJlciwgdGhyZXNob2xkOiBudW1iZXIgfCBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhyZXNob2xkICE9PSAnZGlzYWJsZWQnICYmIGFtb3VudFVzZWQgLyB0aGlzLnRvdGFsID4gdGhyZXNob2xkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=