@nova-ui/dashboards
Version:
Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and
33 lines • 6.03 kB
JavaScript
// © 2022 SolarWinds Worldwide, LLC. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import get from "lodash/get";
export const fieldMapper = (origin, properties) => {
const chartSeriesDataFieldId = properties?.chartSeriesDataFieldId || "data[0]";
let metric = origin[0];
if (properties?.activeMetricId) {
metric = origin.find((entry) => entry.id === properties?.activeMetricId);
if (!metric) {
console.warn(`No metric with id: ${properties?.activeMetricId} found. Taking first available.`);
}
}
return get(metric, chartSeriesDataFieldId);
};
fieldMapper.aggregatorType = "fieldMapper";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mdW5jdGlvbnMvcHJvcG9ydGlvbmFsLWFnZ3JlZ2F0b3JzL2ZpZWxkLW1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBYTdCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBOEIsQ0FDbEQsTUFBcUMsRUFDckMsVUFBNkMsRUFDMUMsRUFBRTtJQUNMLE1BQU0sc0JBQXNCLEdBQ3hCLFVBQVUsRUFBRSxzQkFBc0IsSUFBSSxTQUFTLENBQUM7SUFFcEQsSUFBSSxNQUFNLEdBQVEsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLElBQUksVUFBVSxFQUFFLGNBQWMsRUFBRTtRQUM1QixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDaEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVSxFQUFFLGNBQWMsQ0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLENBQUMsSUFBSSxDQUNSLHNCQUFzQixVQUFVLEVBQUUsY0FBYyxpQ0FBaUMsQ0FDcEYsQ0FBQztTQUNMO0tBQ0o7SUFFRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixXQUFXLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCI7XG5cbmltcG9ydCB7XG4gICAgSVByb3BvcnRpb25hbEFnZ3JlZ2F0b3JGbixcbiAgICBJUHJvcG9ydGlvbmFsQWdncmVnYXRvck9yaWdpbixcbiAgICBJUHJvcG9ydGlvbmFsRG9udXRDb250ZW50QWdncmVnYXRvclByb3BlcnRpZXMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkTWFwcGVyQWdncmVnYXRvclByb3BlcnRpZXNcbiAgICBleHRlbmRzIElQcm9wb3J0aW9uYWxEb251dENvbnRlbnRBZ2dyZWdhdG9yUHJvcGVydGllcyB7XG4gICAgY2hhcnRTZXJpZXNEYXRhRmllbGRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGZpZWxkTWFwcGVyOiBJUHJvcG9ydGlvbmFsQWdncmVnYXRvckZuID0gKFxuICAgIG9yaWdpbjogSVByb3BvcnRpb25hbEFnZ3JlZ2F0b3JPcmlnaW4sXG4gICAgcHJvcGVydGllcz86IElGaWVsZE1hcHBlckFnZ3JlZ2F0b3JQcm9wZXJ0aWVzXG4pOiBhbnkgPT4ge1xuICAgIGNvbnN0IGNoYXJ0U2VyaWVzRGF0YUZpZWxkSWQgPVxuICAgICAgICBwcm9wZXJ0aWVzPy5jaGFydFNlcmllc0RhdGFGaWVsZElkIHx8IFwiZGF0YVswXVwiO1xuXG4gICAgbGV0IG1ldHJpYzogYW55ID0gb3JpZ2luWzBdO1xuICAgIGlmIChwcm9wZXJ0aWVzPy5hY3RpdmVNZXRyaWNJZCkge1xuICAgICAgICBtZXRyaWMgPSBvcmlnaW4uZmluZChcbiAgICAgICAgICAgIChlbnRyeSkgPT4gZW50cnkuaWQgPT09IHByb3BlcnRpZXM/LmFjdGl2ZU1ldHJpY0lkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFtZXRyaWMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgTm8gbWV0cmljIHdpdGggaWQ6ICR7cHJvcGVydGllcz8uYWN0aXZlTWV0cmljSWR9IGZvdW5kLiBUYWtpbmcgZmlyc3QgYXZhaWxhYmxlLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0KG1ldHJpYywgY2hhcnRTZXJpZXNEYXRhRmllbGRJZCk7XG59O1xuXG5maWVsZE1hcHBlci5hZ2dyZWdhdG9yVHlwZSA9IFwiZmllbGRNYXBwZXJcIjtcbiJdfQ==