cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
41 lines • 5.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
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.recommendedWidgetWidth = recommendedWidgetWidth;
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];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUJBLHdEQWdCQztBQXpDWSxRQUFBLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDZixRQUFBLFNBQVMsR0FBRyxpQkFBUyxHQUFHLENBQUMsQ0FBQztBQUMxQixRQUFBLFVBQVUsR0FBRyxpQkFBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixRQUFBLFlBQVksR0FBRyxpQkFBUyxHQUFHLENBQUMsQ0FBQztBQUM3QixRQUFBLGdCQUFnQixHQUFHLG9CQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFFBQUEsVUFBVSxHQUFHLGlCQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLFFBQUEsY0FBYyxHQUFHLENBQUMsR0FBRyxrQkFBVSxDQUFDO0FBQ2hDLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLG9CQUFZLENBQUM7QUFFbkQsaUJBQWlCO0FBRUosUUFBQSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsUUFBQSxnQ0FBZ0MsR0FBRyxDQUFDLENBQUM7QUFDckMsUUFBQSxvQ0FBb0MsR0FBRyxDQUFDLENBQUM7QUFDekMsUUFBQSwwQkFBMEIsR0FBRyxDQUFDLENBQUM7QUFDL0IsUUFBQSx1QkFBdUIsR0FBRyxDQUFDLENBQUM7QUFDNUIsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFFeEM7Ozs7O0dBS0c7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxlQUF1QjtJQUM1RCxTQUFTLFlBQVksQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxpQkFBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sTUFBTSxHQUFHLENBQUMsb0JBQVksRUFBRSxrQkFBVSxFQUFFLGlCQUFTLEVBQUUsaUJBQVMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLE9BQ0UsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUNyQixZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDeEMsQ0FBQztRQUNELENBQUMsRUFBRSxDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRnVsbFdpZHRoID0gMjQ7XG5leHBvcnQgY29uc3QgSGFsZldpZHRoID0gRnVsbFdpZHRoIC8gMjtcbmV4cG9ydCBjb25zdCBUaGlyZFdpZHRoID0gRnVsbFdpZHRoIC8gMztcbmV4cG9ydCBjb25zdCBRdWFydGVyV2lkdGggPSBGdWxsV2lkdGggLyA0O1xuZXhwb3J0IGNvbnN0IEhhbGZRdWFydGVyV2lkdGggPSBRdWFydGVyV2lkdGggLyAyO1xuZXhwb3J0IGNvbnN0IFNpeHRoV2lkdGggPSBGdWxsV2lkdGggLyA2O1xuZXhwb3J0IGNvbnN0IFR3b1RoaXJkc1dpZHRoID0gMiAqIFRoaXJkV2lkdGg7XG5leHBvcnQgY29uc3QgVGhyZWVRdWFydGVyc1dpZHRoID0gMyAqIFF1YXJ0ZXJXaWR0aDtcblxuLy8gV2lkZ2V0IEhlaWdodHNcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRHcmFwaFdpZGdldEhlaWdodCA9IDU7XG5leHBvcnQgY29uc3QgRGVmYXVsdFR3b0xpbmVyR3JhcGhXaWRnZXRIZWlnaHQgPSA2O1xuZXhwb3J0IGNvbnN0IERlZmF1bHRUd29MaW5lckdyYXBoV2lkZ2V0SGFsZkhlaWdodCA9IDM7XG5leHBvcnQgY29uc3QgRGVmYXVsdFN1bW1hcnlXaWRnZXRIZWlnaHQgPSA2O1xuZXhwb3J0IGNvbnN0IERlZmF1bHRBbGFybVdpZGdldFdpZHRoID0gNjtcbmV4cG9ydCBjb25zdCBEZWZhdWx0QWxhcm1XaWRnZXRIZWlnaHQgPSA0O1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMb2dXaWRnZXRIZWlnaHQgPSA3O1xuXG4vKipcbiAqIFN1Z2dlc3RzIHRoZSBiZXN0IHdpZGdldCB3aWR0aCwgZ2l2ZW4gdGhlIHRvdGFsIG51bWJlciBvZiB3aWRnZXRzLlxuICogVGhlIG1haW4gcG9pbnQgaXMgdG8gbWFrZSB3aWRnZXRzIGFzIHdpZGUgYXMgcG9zc2libGUsIHdoaWxlIHNhdmluZyB2ZXJ0aWNhbCBzcGFjZSBhbmQgbWluaW1pemluZyBudW1iZXIgb2YgZ2Fwcy5cbiAqXG4gKiBAcGFyYW0gbnVtVG90YWxXaWRnZXRzIHRvdGFsIG51bWJlciBvZiB3aWRnZXRzIHRvIGJlIHBsYWNlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjb21tZW5kZWRXaWRnZXRXaWR0aChudW1Ub3RhbFdpZGdldHM6IG51bWJlcikge1xuICBmdW5jdGlvbiBudW1Sb3dzVGFrZW4obnVtSXRlbXM6IG51bWJlciwgaXRlbVNpemU6IG51bWJlcikge1xuICAgIHJldHVybiBNYXRoLmNlaWwoKG51bUl0ZW1zICogaXRlbVNpemUpIC8gRnVsbFdpZHRoKTtcbiAgfVxuXG4gIGNvbnN0IG51bUl0ZW1zRml4ZWQgPSBNYXRoLm1heCgxLCBudW1Ub3RhbFdpZGdldHMpO1xuICBjb25zdCB3aWR0aHMgPSBbUXVhcnRlcldpZHRoLCBUaGlyZFdpZHRoLCBIYWxmV2lkdGgsIEZ1bGxXaWR0aF07XG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKFxuICAgIGkgPCB3aWR0aHMubGVuZ3RoIC0gMSAmJlxuICAgIG51bVJvd3NUYWtlbihudW1JdGVtc0ZpeGVkLCB3aWR0aHNbaSArIDFdKSA9PT1cbiAgICAgIG51bVJvd3NUYWtlbihudW1JdGVtc0ZpeGVkLCB3aWR0aHNbaV0pXG4gICkge1xuICAgIGkrKztcbiAgfVxuICByZXR1cm4gd2lkdGhzW2ldO1xufVxuIl19