cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
39 lines • 4.12 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlarmMatrixWidget = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
const widget_1 = require("../../common/widget");
const AlarmsPerRow = 6;
const MinHeight = 2;
const MaxHeight = 8;
/**
* Wrapper of Alarm Status Widget which auto-calcultes height based on the number of alarms.
* Always takes the maximum width.
*/
class AlarmMatrixWidget extends aws_cloudwatch_1.AlarmStatusWidget {
constructor(props) {
super({
alarms: props.alarms,
title: props.title,
width: widget_1.FullWidth,
height: props.height ??
AlarmMatrixWidget.getRecommendedHeight(props.alarms.length),
});
}
static getRecommendedHeight(numAlarms) {
const rows = Math.ceil(numAlarms / AlarmsPerRow);
if (rows < MinHeight) {
return MinHeight;
}
if (rows > MaxHeight) {
return MaxHeight;
}
return rows;
}
}
exports.AlarmMatrixWidget = AlarmMatrixWidget;
_a = JSII_RTTI_SYMBOL_1;
AlarmMatrixWidget[_a] = { fqn: "cdk-monitoring-constructs.AlarmMatrixWidget", version: "10.0.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxhcm1NYXRyaXhXaWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBbGFybU1hdHJpeFdpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtEQUF1RTtBQUV2RSxnREFBZ0Q7QUFFaEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNwQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFtQnBCOzs7R0FHRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsa0NBQWlCO0lBQ3RELFlBQVksS0FBNkI7UUFDdkMsS0FBSyxDQUFDO1lBQ0osTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixLQUFLLEVBQUUsa0JBQVM7WUFDaEIsTUFBTSxFQUNKLEtBQUssQ0FBQyxNQUFNO2dCQUNaLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQzlELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUM7WUFDckIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O0FBckJILDhDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsYXJtU3RhdHVzV2lkZ2V0LCBJQWxhcm0gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHsgRnVsbFdpZHRoIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi93aWRnZXRcIjtcblxuY29uc3QgQWxhcm1zUGVyUm93ID0gNjtcbmNvbnN0IE1pbkhlaWdodCA9IDI7XG5jb25zdCBNYXhIZWlnaHQgPSA4O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtTWF0cml4V2lkZ2V0UHJvcHMge1xuICAvKipcbiAgICogd2lkZ2V0IHRpdGxlXG4gICAqIEBkZWZhdWx0IC0gbm8gdGl0bGVcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVzaXJlZCBoZWlnaHRcbiAgICogQGRlZmF1bHQgLSBhdXRvIGNhbGN1bGF0ZWQgYmFzZWQgb24gYWxhcm0gbnVtYmVyICgzIHRvIDgpXG4gICAqL1xuICByZWFkb25seSBoZWlnaHQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBsaXN0IG9mIGFsYXJtcyB0byBzaG93XG4gICAqL1xuICByZWFkb25seSBhbGFybXM6IElBbGFybVtdO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgb2YgQWxhcm0gU3RhdHVzIFdpZGdldCB3aGljaCBhdXRvLWNhbGN1bHRlcyBoZWlnaHQgYmFzZWQgb24gdGhlIG51bWJlciBvZiBhbGFybXMuXG4gKiBBbHdheXMgdGFrZXMgdGhlIG1heGltdW0gd2lkdGguXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGFybU1hdHJpeFdpZGdldCBleHRlbmRzIEFsYXJtU3RhdHVzV2lkZ2V0IHtcbiAgY29uc3RydWN0b3IocHJvcHM6IEFsYXJtTWF0cml4V2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcih7XG4gICAgICBhbGFybXM6IHByb3BzLmFsYXJtcyxcbiAgICAgIHRpdGxlOiBwcm9wcy50aXRsZSxcbiAgICAgIHdpZHRoOiBGdWxsV2lkdGgsXG4gICAgICBoZWlnaHQ6XG4gICAgICAgIHByb3BzLmhlaWdodCA/P1xuICAgICAgICBBbGFybU1hdHJpeFdpZGdldC5nZXRSZWNvbW1lbmRlZEhlaWdodChwcm9wcy5hbGFybXMubGVuZ3RoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFJlY29tbWVuZGVkSGVpZ2h0KG51bUFsYXJtczogbnVtYmVyKSB7XG4gICAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChudW1BbGFybXMgLyBBbGFybXNQZXJSb3cpO1xuICAgIGlmIChyb3dzIDwgTWluSGVpZ2h0KSB7XG4gICAgICByZXR1cm4gTWluSGVpZ2h0O1xuICAgIH1cbiAgICBpZiAocm93cyA+IE1heEhlaWdodCkge1xuICAgICAgcmV0dXJuIE1heEhlaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cbn1cbiJdfQ==