UNPKG

cdk-monitoring-constructs

Version:

[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://m

41 lines 5.79 kB
"use strict"; 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