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.82 kB
"use strict"; 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==