cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
41 lines • 5.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.recommendedWidgetWidth = exports.DefaultLogWidgetHeight = exports.DefaultAlarmWidgetHeight = exports.DefaultAlarmWidgetWidth = exports.DefaultSummaryWidgetHeight = exports.DefaultTwoLinerGraphWidgetHalfHeight = exports.DefaultTwoLinerGraphWidgetHeight = exports.DefaultGraphWidgetHeight = exports.ThreeQuartersWidth = exports.TwoThirdsWidth = exports.SixthWidth = exports.HalfQuarterWidth = exports.QuarterWidth = exports.ThirdWidth = exports.HalfWidth = exports.FullWidth = void 0;
exports.FullWidth = 24;
exports.HalfWidth = exports.FullWidth / 2;
exports.ThirdWidth = exports.FullWidth / 3;
exports.QuarterWidth = exports.FullWidth / 4;
exports.HalfQuarterWidth = exports.QuarterWidth / 2;
exports.SixthWidth = exports.FullWidth / 6;
exports.TwoThirdsWidth = 2 * exports.ThirdWidth;
exports.ThreeQuartersWidth = 3 * exports.QuarterWidth;
// Widget Heights
exports.DefaultGraphWidgetHeight = 5;
exports.DefaultTwoLinerGraphWidgetHeight = 6;
exports.DefaultTwoLinerGraphWidgetHalfHeight = 3;
exports.DefaultSummaryWidgetHeight = 6;
exports.DefaultAlarmWidgetWidth = 6;
exports.DefaultAlarmWidgetHeight = 4;
exports.DefaultLogWidgetHeight = 7;
/**
* Suggests the best widget width, given the total number of widgets.
* The main point is to make widgets as wide as possible, while saving vertical space and minimizing number of gaps.
*
* @param numTotalWidgets total number of widgets to be placed
*/
function recommendedWidgetWidth(numTotalWidgets) {
function numRowsTaken(numItems, itemSize) {
return Math.ceil((numItems * itemSize) / exports.FullWidth);
}
const numItemsFixed = Math.max(1, numTotalWidgets);
const widths = [exports.QuarterWidth, exports.ThirdWidth, exports.HalfWidth, exports.FullWidth];
let i = 0;
while (i < widths.length - 1 &&
numRowsTaken(numItemsFixed, widths[i + 1]) ===
numRowsTaken(numItemsFixed, widths[i])) {
i++;
}
return widths[i];
}
exports.recommendedWidgetWidth = recommendedWidgetWidth;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ2YsUUFBQSxTQUFTLEdBQUcsaUJBQVMsR0FBRyxDQUFDLENBQUM7QUFDMUIsUUFBQSxVQUFVLEdBQUcsaUJBQVMsR0FBRyxDQUFDLENBQUM7QUFDM0IsUUFBQSxZQUFZLEdBQUcsaUJBQVMsR0FBRyxDQUFDLENBQUM7QUFDN0IsUUFBQSxnQkFBZ0IsR0FBRyxvQkFBWSxHQUFHLENBQUMsQ0FBQztBQUNwQyxRQUFBLFVBQVUsR0FBRyxpQkFBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixRQUFBLGNBQWMsR0FBRyxDQUFDLEdBQUcsa0JBQVUsQ0FBQztBQUNoQyxRQUFBLGtCQUFrQixHQUFHLENBQUMsR0FBRyxvQkFBWSxDQUFDO0FBRW5ELGlCQUFpQjtBQUVKLFFBQUEsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLFFBQUEsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLFFBQUEsb0NBQW9DLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLFFBQUEsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLFFBQUEsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLFFBQUEsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBRXhDOzs7OztHQUtHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsZUFBdUI7SUFDNUQsU0FBUyxZQUFZLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxDQUFDLG9CQUFZLEVBQUUsa0JBQVUsRUFBRSxpQkFBUyxFQUFFLGlCQUFTLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUNFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDckIsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hDO1FBQ0EsQ0FBQyxFQUFFLENBQUM7S0FDTDtJQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFoQkQsd0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZ1bGxXaWR0aCA9IDI0O1xuZXhwb3J0IGNvbnN0IEhhbGZXaWR0aCA9IEZ1bGxXaWR0aCAvIDI7XG5leHBvcnQgY29uc3QgVGhpcmRXaWR0aCA9IEZ1bGxXaWR0aCAvIDM7XG5leHBvcnQgY29uc3QgUXVhcnRlcldpZHRoID0gRnVsbFdpZHRoIC8gNDtcbmV4cG9ydCBjb25zdCBIYWxmUXVhcnRlcldpZHRoID0gUXVhcnRlcldpZHRoIC8gMjtcbmV4cG9ydCBjb25zdCBTaXh0aFdpZHRoID0gRnVsbFdpZHRoIC8gNjtcbmV4cG9ydCBjb25zdCBUd29UaGlyZHNXaWR0aCA9IDIgKiBUaGlyZFdpZHRoO1xuZXhwb3J0IGNvbnN0IFRocmVlUXVhcnRlcnNXaWR0aCA9IDMgKiBRdWFydGVyV2lkdGg7XG5cbi8vIFdpZGdldCBIZWlnaHRzXG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0R3JhcGhXaWRnZXRIZWlnaHQgPSA1O1xuZXhwb3J0IGNvbnN0IERlZmF1bHRUd29MaW5lckdyYXBoV2lkZ2V0SGVpZ2h0ID0gNjtcbmV4cG9ydCBjb25zdCBEZWZhdWx0VHdvTGluZXJHcmFwaFdpZGdldEhhbGZIZWlnaHQgPSAzO1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTdW1tYXJ5V2lkZ2V0SGVpZ2h0ID0gNjtcbmV4cG9ydCBjb25zdCBEZWZhdWx0QWxhcm1XaWRnZXRXaWR0aCA9IDY7XG5leHBvcnQgY29uc3QgRGVmYXVsdEFsYXJtV2lkZ2V0SGVpZ2h0ID0gNDtcbmV4cG9ydCBjb25zdCBEZWZhdWx0TG9nV2lkZ2V0SGVpZ2h0ID0gNztcblxuLyoqXG4gKiBTdWdnZXN0cyB0aGUgYmVzdCB3aWRnZXQgd2lkdGgsIGdpdmVuIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2lkZ2V0cy5cbiAqIFRoZSBtYWluIHBvaW50IGlzIHRvIG1ha2Ugd2lkZ2V0cyBhcyB3aWRlIGFzIHBvc3NpYmxlLCB3aGlsZSBzYXZpbmcgdmVydGljYWwgc3BhY2UgYW5kIG1pbmltaXppbmcgbnVtYmVyIG9mIGdhcHMuXG4gKlxuICogQHBhcmFtIG51bVRvdGFsV2lkZ2V0cyB0b3RhbCBudW1iZXIgb2Ygd2lkZ2V0cyB0byBiZSBwbGFjZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29tbWVuZGVkV2lkZ2V0V2lkdGgobnVtVG90YWxXaWRnZXRzOiBudW1iZXIpIHtcbiAgZnVuY3Rpb24gbnVtUm93c1Rha2VuKG51bUl0ZW1zOiBudW1iZXIsIGl0ZW1TaXplOiBudW1iZXIpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKChudW1JdGVtcyAqIGl0ZW1TaXplKSAvIEZ1bGxXaWR0aCk7XG4gIH1cblxuICBjb25zdCBudW1JdGVtc0ZpeGVkID0gTWF0aC5tYXgoMSwgbnVtVG90YWxXaWRnZXRzKTtcbiAgY29uc3Qgd2lkdGhzID0gW1F1YXJ0ZXJXaWR0aCwgVGhpcmRXaWR0aCwgSGFsZldpZHRoLCBGdWxsV2lkdGhdO1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlIChcbiAgICBpIDwgd2lkdGhzLmxlbmd0aCAtIDEgJiZcbiAgICBudW1Sb3dzVGFrZW4obnVtSXRlbXNGaXhlZCwgd2lkdGhzW2kgKyAxXSkgPT09XG4gICAgICBudW1Sb3dzVGFrZW4obnVtSXRlbXNGaXhlZCwgd2lkdGhzW2ldKVxuICApIHtcbiAgICBpKys7XG4gIH1cbiAgcmV0dXJuIHdpZHRoc1tpXTtcbn1cbiJdfQ==