diff --git a/dist/app/app.js b/dist/app/app.js index dcaad72..024dfec 100644 --- a/dist/app/app.js +++ b/dist/app/app.js @@ -1,92 +1,92 @@ -System.register(["lodash", "./boom/index"], function (exports_1, context_1) { - "use strict"; - var lodash_1, index_1, defaultPattern, seriesToTable; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - }, - function (index_1_1) { - index_1 = index_1_1; - } - ], - execute: function () { - defaultPattern = new index_1.BoomPattern({ - bgColors: "green|orange|red", - bgColors_overrides: "0->green|2->red|1->yellow", - clickable_cells_link: "", - col_name: "Value", - decimals: 2, - delimiter: ".", - format: "none", - name: "Default Pattern", - null_color: "darkred", - null_textcolor: "white", - null_value: "No data", - pattern: "*", - row_name: "_series_", - textColor: "red|orange|green", - textColors_overrides: "0->red|2->green|1->yellow", - thresholds: "70,90", - time_based_thresholds: [], - transform_values: "_value_|_value_|_value_", - transform_values_overrides: "0->down|1->up", - valueName: "avg" - }); - exports_1("defaultPattern", defaultPattern); - seriesToTable = function (inputdata, options) { - var rows_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name; })); - var rows_without_token = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name_raw; })); - var cols_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.col_name; })); - var output = []; - lodash_1.default.each(rows_found, function (row_name) { - var cols = []; - lodash_1.default.each(cols_found, function (col_name) { - var matched_items = lodash_1.default.filter(inputdata, function (o) { - return o.row_name === row_name && o.col_name === col_name; - }); - if (!matched_items || matched_items.length === 0) { - cols.push({ - "col_name": col_name, - "color_bg": options.non_matching_cells_color_bg, - "color_text": options.non_matching_cells_color_text, - "display_value": index_1.replaceTokens(options.non_matching_cells_text), - "hidden": false, - "link": "-", - "row_name": row_name, - "tooltip": "-", - "value": NaN - }); - } - else if (matched_items && matched_items.length === 1) { - cols.push(matched_items[0]); - } - else if (matched_items && matched_items.length > 1) { - cols.push({ - "col_name": col_name, - "color_bg": "darkred", - "color_text": "white", - "display_value": "Duplicate matches", - "hidden": false, - "link": "-", - "row_name": row_name, - "tooltip": "-", - "value": NaN - }); - } - }); - output.push(cols); - }); - return { - cols_found: cols_found, - output: output, - rows_found: rows_found, - rows_without_token: rows_without_token - }; - }; - exports_1("seriesToTable", seriesToTable); - } - }; -}); +System.register(["lodash", "./boom/index"], function (exports_1, context_1) { + "use strict"; + var lodash_1, index_1, defaultPattern, seriesToTable; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (lodash_1_1) { + lodash_1 = lodash_1_1; + }, + function (index_1_1) { + index_1 = index_1_1; + } + ], + execute: function () { + defaultPattern = new index_1.BoomPattern({ + bgColors: "green|orange|red", + bgColors_overrides: "0->green|2->red|1->yellow", + clickable_cells_link: "", + col_name: "Value", + decimals: 2, + delimiter: ".", + format: "none", + name: "Default Pattern", + null_color: "darkred", + null_textcolor: "white", + null_value: "No data", + pattern: "*", + row_name: "_series_", + textColor: "red|orange|green", + textColors_overrides: "0->red|2->green|1->yellow", + thresholds: "70,90", + time_based_thresholds: [], + transform_values: "_value_|_value_|_value_", + transform_values_overrides: "0->down|1->up", + valueName: "avg" + }); + exports_1("defaultPattern", defaultPattern); + seriesToTable = function (inputdata, options) { + var rows_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name; })); + var rows_without_token = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name_raw; })); + var cols_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.col_name; })); + var output = []; + lodash_1.default.each(rows_found, function (row_name) { + var cols = []; + lodash_1.default.each(cols_found, function (col_name) { + var matched_items = lodash_1.default.filter(inputdata, function (o) { + return o.row_name === row_name && o.col_name === col_name; + }); + if (!matched_items || matched_items.length === 0) { + cols.push({ + "col_name": col_name, + "color_bg": options.non_matching_cells_color_bg, + "color_text": options.non_matching_cells_color_text, + "display_value": index_1.replaceTokens(options.non_matching_cells_text), + "hidden": false, + "link": "-", + "row_name": row_name, + "tooltip": "-", + "value": NaN + }); + } + else if (matched_items && matched_items.length === 1) { + cols.push(matched_items[0]); + } + else if (matched_items && matched_items.length > 1) { + cols.push({ + "col_name": col_name, + "color_bg": "darkred", + "color_text": "white", + "display_value": "Duplicate matches", + "hidden": false, + "link": "-", + "row_name": row_name, + "tooltip": "-", + "value": NaN + }); + } + }); + output.push(cols); + }); + return { + cols_found: cols_found, + output: output, + rows_found: rows_found, + rows_without_token: rows_without_token + }; + }; + exports_1("seriesToTable", seriesToTable); + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7WUFJTSxjQUFjLEdBQUcsSUFBSSxtQkFBVyxDQUFDO2dCQUNuQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixrQkFBa0IsRUFBRSwyQkFBMkI7Z0JBQy9DLG9CQUFvQixFQUFFLEVBQUU7Z0JBQ3hCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxTQUFTLEVBQUUsR0FBRztnQkFDZCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixVQUFVLEVBQUUsU0FBUztnQkFDckIsY0FBYyxFQUFFLE9BQU87Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixPQUFPLEVBQUUsR0FBRztnQkFDWixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0Isb0JBQW9CLEVBQUUsMkJBQTJCO2dCQUNqRCxVQUFVLEVBQUUsT0FBTztnQkFDbkIscUJBQXFCLEVBQUUsRUFBRTtnQkFDekIsZ0JBQWdCLEVBQUUseUJBQXlCO2dCQUMzQywwQkFBMEIsRUFBRSxlQUFlO2dCQUMzQyxTQUFTLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7O1lBQ0csYUFBYSxHQUFHLFVBQVUsU0FBd0IsRUFBRSxPQUF3QztnQkFDOUYsSUFBSSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBVixDQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLGtCQUFrQixHQUFHLGdCQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxZQUFZLEVBQWQsQ0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBVixDQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLE1BQU0sR0FBeUIsRUFBRSxDQUFDO2dCQUN0QyxnQkFBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBQSxRQUFRO29CQUN2QixJQUFJLElBQUksR0FBdUIsRUFBRSxDQUFDO29CQUNsQyxnQkFBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBQSxRQUFRO3dCQUN2QixJQUFJLGFBQWEsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBQSxDQUFDOzRCQUNyQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO3dCQUM5RCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDO2dDQUNOLFVBQVUsRUFBRSxRQUFRO2dDQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLDJCQUEyQjtnQ0FDL0MsWUFBWSxFQUFFLE9BQU8sQ0FBQyw2QkFBNkI7Z0NBQ25ELGVBQWUsRUFBRSxxQkFBYSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztnQ0FDL0QsUUFBUSxFQUFFLEtBQUs7Z0NBQ2YsTUFBTSxFQUFFLEdBQUc7Z0NBQ1gsVUFBVSxFQUFFLFFBQVE7Z0NBQ3BCLFNBQVMsRUFBRSxHQUFHO2dDQUNkLE9BQU8sRUFBRSxHQUFHOzZCQUNmLENBQUMsQ0FBQzt5QkFDTjs2QkFBTSxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs0QkFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDL0I7NkJBQU0sSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQ2xELElBQUksQ0FBQyxJQUFJLENBQUM7Z0NBQ04sVUFBVSxFQUFFLFFBQVE7Z0NBQ3BCLFVBQVUsRUFBRSxTQUFTO2dDQUNyQixZQUFZLEVBQUUsT0FBTztnQ0FDckIsZUFBZSxFQUFFLG1CQUFtQjtnQ0FDcEMsUUFBUSxFQUFFLEtBQUs7Z0NBQ2YsTUFBTSxFQUFFLEdBQUc7Z0NBQ1gsVUFBVSxFQUFFLFFBQVE7Z0NBQ3BCLFNBQVMsRUFBRSxHQUFHO2dDQUNkLE9BQU8sRUFBRSxHQUFHOzZCQUNmLENBQUMsQ0FBQzt5QkFDTjtvQkFDTCxDQUFDLENBQUMsQ0FBQztvQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPO29CQUNILFVBQVUsWUFBQTtvQkFDVixNQUFNLFFBQUE7b0JBQ04sVUFBVSxZQUFBO29CQUNWLGtCQUFrQixvQkFBQTtpQkFDckIsQ0FBQztZQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IElCb29tU2VyaWVzLCBJQm9vbUNlbGxEZXRhaWxzLCBJQm9vbVRhYmxlLCBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zIH0gZnJvbSBcIi4vYm9vbS9pbmRleFwiO1xuaW1wb3J0IHsgQm9vbVBhdHRlcm4sIHJlcGxhY2VUb2tlbnMgfSBmcm9tICcuL2Jvb20vaW5kZXgnO1xuXG5jb25zdCBkZWZhdWx0UGF0dGVybiA9IG5ldyBCb29tUGF0dGVybih7XG4gICAgYmdDb2xvcnM6IFwiZ3JlZW58b3JhbmdlfHJlZFwiLFxuICAgIGJnQ29sb3JzX292ZXJyaWRlczogXCIwLT5ncmVlbnwyLT5yZWR8MS0+eWVsbG93XCIsXG4gICAgY2xpY2thYmxlX2NlbGxzX2xpbms6IFwiXCIsXG4gICAgY29sX25hbWU6IFwiVmFsdWVcIixcbiAgICBkZWNpbWFsczogMixcbiAgICBkZWxpbWl0ZXI6IFwiLlwiLFxuICAgIGZvcm1hdDogXCJub25lXCIsXG4gICAgbmFtZTogXCJEZWZhdWx0IFBhdHRlcm5cIixcbiAgICBudWxsX2NvbG9yOiBcImRhcmtyZWRcIixcbiAgICBudWxsX3RleHRjb2xvcjogXCJ3aGl0ZVwiLFxuICAgIG51bGxfdmFsdWU6IFwiTm8gZGF0YVwiLFxuICAgIHBhdHRlcm46IFwiKlwiLFxuICAgIHJvd19uYW1lOiBcIl9zZXJpZXNfXCIsXG4gICAgdGV4dENvbG9yOiBcInJlZHxvcmFuZ2V8Z3JlZW5cIixcbiAgICB0ZXh0Q29sb3JzX292ZXJyaWRlczogXCIwLT5yZWR8Mi0+Z3JlZW58MS0+eWVsbG93XCIsXG4gICAgdGhyZXNob2xkczogXCI3MCw5MFwiLFxuICAgIHRpbWVfYmFzZWRfdGhyZXNob2xkczogW10sXG4gICAgdHJhbnNmb3JtX3ZhbHVlczogXCJfdmFsdWVffF92YWx1ZV98X3ZhbHVlX1wiLFxuICAgIHRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzOiBcIjAtPmRvd258MS0+dXBcIixcbiAgICB2YWx1ZU5hbWU6IFwiYXZnXCJcbn0pO1xuY29uc3Qgc2VyaWVzVG9UYWJsZSA9IGZ1bmN0aW9uIChpbnB1dGRhdGE6IElCb29tU2VyaWVzW10sIG9wdGlvbnM6IElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMpOiBJQm9vbVRhYmxlIHtcbiAgICBsZXQgcm93c19mb3VuZCA9IF8udW5pcShfLm1hcChpbnB1dGRhdGEsIGQgPT4gZC5yb3dfbmFtZSkpO1xuICAgIGxldCByb3dzX3dpdGhvdXRfdG9rZW4gPSBfLnVuaXEoXy5tYXAoaW5wdXRkYXRhLCBkID0+IGQucm93X25hbWVfcmF3KSk7XG4gICAgbGV0IGNvbHNfZm91bmQgPSBfLnVuaXEoXy5tYXAoaW5wdXRkYXRhLCBkID0+IGQuY29sX25hbWUpKTtcbiAgICBsZXQgb3V0cHV0OiBJQm9vbUNlbGxEZXRhaWxzW11bXSA9IFtdO1xuICAgIF8uZWFjaChyb3dzX2ZvdW5kLCByb3dfbmFtZSA9PiB7XG4gICAgICAgIGxldCBjb2xzOiBJQm9vbUNlbGxEZXRhaWxzW10gPSBbXTtcbiAgICAgICAgXy5lYWNoKGNvbHNfZm91bmQsIGNvbF9uYW1lID0+IHtcbiAgICAgICAgICAgIGxldCBtYXRjaGVkX2l0ZW1zID0gXy5maWx0ZXIoaW5wdXRkYXRhLCBvID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gby5yb3dfbmFtZSA9PT0gcm93X25hbWUgJiYgby5jb2xfbmFtZSA9PT0gY29sX25hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghbWF0Y2hlZF9pdGVtcyB8fCBtYXRjaGVkX2l0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIFwiY29sX25hbWVcIjogY29sX25hbWUsXG4gICAgICAgICAgICAgICAgICAgIFwiY29sb3JfYmdcIjogb3B0aW9ucy5ub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfYmcsXG4gICAgICAgICAgICAgICAgICAgIFwiY29sb3JfdGV4dFwiOiBvcHRpb25zLm5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl90ZXh0LFxuICAgICAgICAgICAgICAgICAgICBcImRpc3BsYXlfdmFsdWVcIjogcmVwbGFjZVRva2VucyhvcHRpb25zLm5vbl9tYXRjaGluZ19jZWxsc190ZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgXCJoaWRkZW5cIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwibGlua1wiOiBcIi1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJyb3dfbmFtZVwiOiByb3dfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0b29sdGlwXCI6IFwiLVwiLFxuICAgICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IE5hTlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaGVkX2l0ZW1zICYmIG1hdGNoZWRfaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgY29scy5wdXNoKG1hdGNoZWRfaXRlbXNbMF0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaGVkX2l0ZW1zICYmIG1hdGNoZWRfaXRlbXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIFwiY29sX25hbWVcIjogY29sX25hbWUsXG4gICAgICAgICAgICAgICAgICAgIFwiY29sb3JfYmdcIjogXCJkYXJrcmVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY29sb3JfdGV4dFwiOiBcIndoaXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGlzcGxheV92YWx1ZVwiOiBcIkR1cGxpY2F0ZSBtYXRjaGVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGlkZGVuXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcImxpbmtcIjogXCItXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicm93X25hbWVcIjogcm93X25hbWUsXG4gICAgICAgICAgICAgICAgICAgIFwidG9vbHRpcFwiOiBcIi1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBOYU5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG91dHB1dC5wdXNoKGNvbHMpO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbHNfZm91bmQsXG4gICAgICAgIG91dHB1dCxcbiAgICAgICAgcm93c19mb3VuZCxcbiAgICAgICAgcm93c193aXRob3V0X3Rva2VuXG4gICAgfTtcbn07XG5cbmV4cG9ydCB7XG4gICAgZGVmYXVsdFBhdHRlcm4sXG4gICAgc2VyaWVzVG9UYWJsZVxufTtcbiJdfQ== \ No newline at end of file diff --git a/dist/app/boom/Boom.interface.js b/dist/app/boom/Boom.interface.js index be910b3..6d51dad 100644 --- a/dist/app/boom/Boom.interface.js +++ b/dist/app/boom/Boom.interface.js @@ -1,10 +1,10 @@ -System.register([], function (exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - return { - setters: [], - execute: function () { - } - }; -}); +System.register([], function (exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBJQm9vbVBhdHRlcm4ge1xyXG4gICAgYmdDb2xvcnM6IHN0cmluZztcclxuICAgIGJnQ29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xyXG4gICAgY2xpY2thYmxlX2NlbGxzX2xpbms6IHN0cmluZztcclxuICAgIGNvbF9uYW1lOiBzdHJpbmc7XHJcbiAgICBkZWNpbWFsczogTnVtYmVyO1xyXG4gICAgZGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBlbmFibGVfYmdDb2xvcjogQm9vbGVhbjtcclxuICAgIGVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlczogQm9vbGVhbjtcclxuICAgIGVuYWJsZV9jbGlja2FibGVfY2VsbHM6IEJvb2xlYW47XHJcbiAgICBlbmFibGVfdGV4dENvbG9yOiBCb29sZWFuO1xyXG4gICAgZW5hYmxlX3RleHRDb2xvcl9vdmVycmlkZXM6IEJvb2xlYW47XHJcbiAgICBlbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzOiBCb29sZWFuO1xyXG4gICAgZW5hYmxlX3RyYW5zZm9ybTogQm9vbGVhbjtcclxuICAgIGVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzOiBCb29sZWFuO1xyXG4gICAgZGlzcGxheVRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0QkdDb2xvcjogc3RyaW5nO1xyXG4gICAgZGVmYXVsdFRleHRDb2xvcjogc3RyaW5nO1xyXG4gICAgZmlsdGVyOiB7XHJcbiAgICAgICAgdmFsdWVfYWJvdmU6IHN0cmluZztcclxuICAgICAgICB2YWx1ZV9iZWxvdzogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIGZvcm1hdDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgbnVsbF9jb2xvcjogc3RyaW5nO1xyXG4gICAgbnVsbF92YWx1ZTogc3RyaW5nO1xyXG4gICAgbnVsbF90ZXh0Y29sb3I6IHN0cmluZztcclxuICAgIHBhdHRlcm46IHN0cmluZztcclxuICAgIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3JzOiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xyXG4gICAgdGhyZXNob2xkczogc3RyaW5nO1xyXG4gICAgdGltZV9iYXNlZF90aHJlc2hvbGRzOiBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZFtdO1xyXG4gICAgdHJhbnNmb3JtX3ZhbHVlczogc3RyaW5nO1xyXG4gICAgdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXM6IHN0cmluZztcclxuICAgIHRvb2x0aXBUZW1wbGF0ZTogc3RyaW5nO1xyXG4gICAgdmFsdWVOYW1lOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tU2VyaWVzIHtcclxuICAgIGhpZGRlbjogQm9vbGVhbjtcclxuICAgIGNvbF9uYW1lOiBzdHJpbmc7XHJcbiAgICByb3dfbmFtZTogc3RyaW5nO1xyXG4gICAgcm93X25hbWVfcmF3OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5X3ZhbHVlOiBzdHJpbmc7XHJcbiAgICBjb2xvcl9iZzogc3RyaW5nO1xyXG4gICAgY29sb3JfdGV4dDogc3RyaW5nO1xyXG4gICAgdG9vbHRpcDogc3RyaW5nO1xyXG4gICAgdmFsdWVfZm9ybWF0dGVkOiBzdHJpbmc7XHJcbiAgICBsaW5rOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tVGltZUJhc2VkVGhyZXNob2xkIHtcclxuICAgIGVuYWJsZWREYXlzOiBzdHJpbmc7XHJcbiAgICBmcm9tOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB0aHJlc2hvbGQ6IHN0cmluZztcclxuICAgIHRvOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMge1xyXG4gICAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnOiBzdHJpbmc7XHJcbiAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dDogc3RyaW5nO1xyXG4gICAgbm9uX21hdGNoaW5nX2NlbGxzX3RleHQ6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgSUJvb21SZW5kZXJpbmdPcHRpb25zIHtcclxuICAgIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6IFN0cmluZztcclxuICAgIGhpZGVfZmlyc3RfY29sdW1uOiBCb29sZWFuO1xyXG4gICAgaGlkZV9oZWFkZXJzOiBCb29sZWFuO1xyXG4gICAgdGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW46IFN0cmluZztcclxuICAgIHRleHRfYWxpZ25tZW50X3ZhbHVlczogU3RyaW5nO1xyXG4gICAgZmlyc3RfY29sdW1uX2xpbms6IFN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgSUJvb21DZWxsRGV0YWlscyB7XHJcbiAgICBoaWRkZW46IEJvb2xlYW47XHJcbiAgICBjb2xfbmFtZTogc3RyaW5nO1xyXG4gICAgcm93X25hbWU6IHN0cmluZztcclxuICAgIGNvbG9yX2JnOiBzdHJpbmc7XHJcbiAgICBjb2xvcl90ZXh0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5X3ZhbHVlOiBzdHJpbmc7XHJcbiAgICBsaW5rOiBzdHJpbmc7XHJcbiAgICB0b29sdGlwOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogbnVtYmVyO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbVRhYmxlIHtcclxuICAgIHJvd3Nfd2l0aG91dF90b2tlbjogc3RyaW5nW107XHJcbiAgICByb3dzX2ZvdW5kOiBzdHJpbmdbXTtcclxuICAgIGNvbHNfZm91bmQ6IHN0cmluZ1tdO1xyXG4gICAgb3V0cHV0OiBJQm9vbUNlbGxEZXRhaWxzW11bXTtcclxufVxyXG5pbnRlcmZhY2UgSUJvb21IVE1MIHtcclxuICAgIGJvZHk6IHN0cmluZztcclxufVxyXG5leHBvcnQge1xyXG4gICAgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyxcclxuICAgIElCb29tUmVuZGVyaW5nT3B0aW9ucyxcclxuICAgIElCb29tUGF0dGVybixcclxuICAgIElCb29tU2VyaWVzLFxyXG4gICAgSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQsXHJcbiAgICBJQm9vbUhUTUwsXHJcbiAgICBJQm9vbVRhYmxlLFxyXG4gICAgSUJvb21DZWxsRGV0YWlsc1xyXG59O1xyXG4iXX0= \ No newline at end of file diff --git a/dist/app/boom/BoomOutput.js b/dist/app/boom/BoomOutput.js index e784b68..ae35a32 100644 --- a/dist/app/boom/BoomOutput.js +++ b/dist/app/boom/BoomOutput.js @@ -1,85 +1,85 @@ -System.register(["lodash", "./BoomUtils"], function (exports_1, context_1) { - "use strict"; - var lodash_1, BoomUtils_1, BoomOutput; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - }, - function (BoomUtils_1_1) { - BoomUtils_1 = BoomUtils_1_1; - } - ], - execute: function () { - BoomOutput = (function () { - function BoomOutput(options) { - this.default_title_for_rows = options.default_title_for_rows || ""; - this.hide_first_column = options.hide_first_column; - this.hide_headers = options.hide_headers; - this.text_alignment_firstcolumn = options.text_alignment_firstcolumn || ""; - this.text_alignment_values = options.text_alignment_values || ""; - this.first_column_link = options.first_column_link || "#"; - } - return BoomOutput; - }()); - exports_1("BoomOutput", BoomOutput); - BoomOutput.prototype.getDataAsHTML = function (data, sorting_props) { - var _this = this; - var getLinkifiedColumn = function (rowName, first_column_link, raw_rowName) { - if (first_column_link !== "#") { - first_column_link = first_column_link.replace(new RegExp("_row_name_", "g"), BoomUtils_1.getActualNameWithoutTokens(raw_rowName).trim()); - rowName = "" + rowName + ""; - } - return rowName; - }; - var output = { - body: "" - }; - if (sorting_props && sorting_props.col_index !== undefined && sorting_props.col_index > -1) { - var sortFunction_1 = function (a, b, sortMethod) { - if (sortMethod === "asc") { - return a[sorting_props.col_index].value - b[sorting_props.col_index].value; - } - else { - return b[sorting_props.col_index].value - a[sorting_props.col_index].value; - } - }; - data.output = data.output - .filter(function (a) { return !isNaN(a[sorting_props.col_index].value); }) - .concat(data.output.filter(function (a) { return isNaN(a[sorting_props.col_index].value); })) - .sort(function (a, b) { return sortFunction_1(a, b, sorting_props.direction); }); - } - lodash_1.default.each(data.output, function (o) { - if (o.map(function (item) { return item.hidden.toString(); }).indexOf("false") > -1) { - output.body += ""; - if (_this.hide_first_column !== true) { - var raw_rowName = (lodash_1.default.first(o.map(function (item) { return item.row_name_raw; }))); - output.body += "\n \n " + getLinkifiedColumn(lodash_1.default.first(o.map(function (item) { return item.row_name; })), String(_this.first_column_link), raw_rowName) + "\n "; - } - lodash_1.default.each(o, function (item) { - var item_style = "padding:4px;background-color:" + item.color_bg + ";color:" + item.color_text + ";text-align:" + _this.text_alignment_values; - var item_display = item.link === "#" - ? item.display_value - : "" + item.display_value + ""; - var tooltip = !item.tooltip || item.tooltip === "-" - ? undefined - : " data-toggle=\"tooltip\" data-html=\"true\" data-placement=\"auto\" title=\"" + item.tooltip + "\" "; - output.body += "\n \n " + (tooltip ? "" : "") + "\n " + item_display + "\n " + (tooltip ? "" : "") + "\n \n "; - }); - output.body += ""; - } - }); - return output; - }; - BoomOutput.prototype.getDataAsDebugHTML = function (data) { - var debugdata = ""; - debugdata = lodash_1.default.map(data, function (d) { - return "\n \n " + d.seriesName + "\n " + (d.pattern.name || d.pattern.pattern || "Default") + "\n " + d.display_value + "\n " + d.row_name + "\n " + d.col_name + "\n " + d.thresholds.join(",") + "\n " + d.color_bg + "\n " + d.color_text + "\n \n "; - }).join(""); - return debugdata; - }; - } - }; -}); +System.register(["lodash", "./BoomUtils"], function (exports_1, context_1) { + "use strict"; + var lodash_1, BoomUtils_1, BoomOutput; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (lodash_1_1) { + lodash_1 = lodash_1_1; + }, + function (BoomUtils_1_1) { + BoomUtils_1 = BoomUtils_1_1; + } + ], + execute: function () { + BoomOutput = (function () { + function BoomOutput(options) { + this.default_title_for_rows = options.default_title_for_rows || ""; + this.hide_first_column = options.hide_first_column; + this.hide_headers = options.hide_headers; + this.text_alignment_firstcolumn = options.text_alignment_firstcolumn || ""; + this.text_alignment_values = options.text_alignment_values || ""; + this.first_column_link = options.first_column_link || "#"; + } + return BoomOutput; + }()); + exports_1("BoomOutput", BoomOutput); + BoomOutput.prototype.getDataAsHTML = function (data, sorting_props) { + var _this = this; + var getLinkifiedColumn = function (rowName, first_column_link, raw_rowName) { + if (first_column_link !== "#") { + first_column_link = first_column_link.replace(new RegExp("_row_name_", "g"), BoomUtils_1.getActualNameWithoutTokens(raw_rowName).trim()); + rowName = "" + rowName + ""; + } + return rowName; + }; + var output = { + body: "" + }; + if (sorting_props && sorting_props.col_index !== undefined && sorting_props.col_index > -1) { + var sortFunction_1 = function (a, b, sortMethod) { + if (sortMethod === "asc") { + return a[sorting_props.col_index].value - b[sorting_props.col_index].value; + } + else { + return b[sorting_props.col_index].value - a[sorting_props.col_index].value; + } + }; + data.output = data.output + .filter(function (a) { return !isNaN(a[sorting_props.col_index].value); }) + .concat(data.output.filter(function (a) { return isNaN(a[sorting_props.col_index].value); })) + .sort(function (a, b) { return sortFunction_1(a, b, sorting_props.direction); }); + } + lodash_1.default.each(data.output, function (o) { + if (o.map(function (item) { return item.hidden.toString(); }).indexOf("false") > -1) { + output.body += ""; + if (_this.hide_first_column !== true) { + var raw_rowName = (lodash_1.default.first(o.map(function (item) { return item.row_name_raw; }))); + output.body += "\n \n " + getLinkifiedColumn(lodash_1.default.first(o.map(function (item) { return item.row_name; })), String(_this.first_column_link), raw_rowName) + "\n "; + } + lodash_1.default.each(o, function (item) { + var item_style = "padding:4px;background-color:" + item.color_bg + ";color:" + item.color_text + ";text-align:" + _this.text_alignment_values; + var item_display = item.link === "#" + ? item.display_value + : "" + item.display_value + ""; + var tooltip = !item.tooltip || item.tooltip === "-" + ? undefined + : " data-toggle=\"tooltip\" data-html=\"true\" data-placement=\"auto\" title=\"" + item.tooltip + "\" "; + output.body += "\n \n " + (tooltip ? "" : "") + "\n " + item_display + "\n " + (tooltip ? "" : "") + "\n \n "; + }); + output.body += ""; + } + }); + return output; + }; + BoomOutput.prototype.getDataAsDebugHTML = function (data) { + var debugdata = ""; + debugdata = lodash_1.default.map(data, function (d) { + return "\n \n " + d.seriesName + "\n " + (d.pattern.name || d.pattern.pattern || "Default") + "\n " + d.display_value + "\n " + d.row_name + "\n " + d.col_name + "\n " + d.thresholds.join(",") + "\n " + d.color_bg + "\n " + d.color_text + "\n \n "; + }).join(""); + return debugdata; + }; + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbU91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O1lBSUE7Z0JBU0Usb0JBQVksT0FBOEI7b0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO29CQUNuRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQ3pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLElBQUksRUFBRSxDQUFDO29CQUMzRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztvQkFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0gsaUJBQUM7WUFBRCxDQUFDLEFBakJELElBaUJDOztZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQVUsSUFBZ0IsRUFBRSxhQUFhO2dCQUF6QyxpQkFnRXBDO2dCQS9EQyxJQUFJLGtCQUFrQixHQUFHLFVBQVUsT0FBZSxFQUFFLGlCQUF5QixFQUFFLFdBQW1CO29CQUNoRyxJQUFJLGlCQUFpQixLQUFLLEdBQUcsRUFBRTt3QkFDN0IsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUM3SCxPQUFPLEdBQUcsZUFBWSxpQkFBaUIsNkJBQXFCLE9BQU8sU0FBTSxDQUFDO3FCQUMzRTtvQkFDRCxPQUFPLE9BQU8sQ0FBQztnQkFDakIsQ0FBQyxDQUFDO2dCQUNGLElBQUksTUFBTSxHQUFjO29CQUN0QixJQUFJLEVBQUUsRUFBRTtpQkFDVCxDQUFDO2dCQUNGLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQzFGLElBQUksY0FBWSxHQUFHLFVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVO3dCQUNsQyxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUU7NEJBQ3hCLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7eUJBQzVFOzZCQUFNOzRCQUNMLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7eUJBQzVFO29CQUNILENBQUMsQ0FBQztvQkFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNO3lCQUN0QixNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUF4QyxDQUF3QyxDQUFDO3lCQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBdkMsQ0FBdUMsQ0FBQyxDQUFDO3lCQUN4RSxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsY0FBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUEzQyxDQUEyQyxDQUFDLENBQUM7aUJBQ2hFO2dCQUNELGdCQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBQSxDQUFDO29CQUNuQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUF0QixDQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUMvRCxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQzt3QkFDdEIsSUFBSSxLQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFOzRCQUNuQyxJQUFJLFdBQVcsR0FBRyxDQUFDLGdCQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsWUFBWSxFQUFqQixDQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUM5RCxNQUFNLENBQUMsSUFBSSxJQUFJLDhEQUViLEtBQUksQ0FBQywwQkFBMEIscUNBRWYsa0JBQWtCLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxRQUFRLEVBQWIsQ0FBYSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxDQUFDLGdDQUN0RyxDQUFDO3lCQUNwQjt3QkFDRCxnQkFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBQSxJQUFJOzRCQUNaLElBQUksVUFBVSxHQUFHLGtDQUFnQyxJQUFJLENBQUMsUUFBUSxlQUM1RCxJQUFJLENBQUMsVUFBVSxvQkFDQSxLQUFJLENBQUMscUJBQXVCLENBQUM7NEJBQzlDLElBQUksWUFBWSxHQUNkLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRztnQ0FDZixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWE7Z0NBQ3BCLENBQUMsQ0FBQyxlQUFZLElBQUksQ0FBQyxJQUFJLDJDQUN2QixJQUFJLENBQUMsVUFBVSxXQUNWLElBQUksQ0FBQyxhQUFhLFNBQU0sQ0FBQzs0QkFDbEMsSUFBSSxPQUFPLEdBQ1QsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssR0FBRztnQ0FDbkMsQ0FBQyxDQUFDLFNBQVM7Z0NBQ1gsQ0FBQyxDQUFDLGlGQUNGLElBQUksQ0FBQyxPQUFPLFFBQ1IsQ0FBQzs0QkFDVCxNQUFNLENBQUMsSUFBSSxJQUFJLHVDQUNVLFVBQVUsc0NBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBUyxPQUFPLE1BQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSx1Q0FDOUIsWUFBWSxtQ0FDaEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsbURBRWpDLENBQUM7d0JBQ1osQ0FBQyxDQUFDLENBQUM7d0JBQ0gsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUM7cUJBQ3hCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQztZQUNGLFVBQVUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxJQUFtQjtnQkFDckUsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixTQUFTLEdBQUcsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQUEsQ0FBQztvQkFDdkIsT0FBTywyR0FFMEUsQ0FBQyxDQUFDLFVBQVUsZ0hBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksU0FBUywrRkFDaEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLGlCQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxrQkFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsV0FBSyxDQUFDLENBQUMsYUFBYSxrR0FDekgsQ0FBQyxDQUFDLFFBQVEsa0dBQ1YsQ0FBQyxDQUFDLFFBQVEsb0dBQ1IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtHQUN4QixDQUFDLENBQUMsUUFBUSxvR0FDUixDQUFDLENBQUMsVUFBVSxtQ0FFdkYsQ0FBQztnQkFDUixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgSUJvb21IVE1MLCBJQm9vbVRhYmxlLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMsIElCb29tU2VyaWVzIH0gZnJvbSBcIi4vaW5kZXhcIjtcbmltcG9ydCB7IGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zIH0gZnJvbSBcIi4vQm9vbVV0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBCb29tT3V0cHV0IHtcbiAgcHVibGljIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6IFN0cmluZztcbiAgcHVibGljIGhpZGVfZmlyc3RfY29sdW1uOiBCb29sZWFuO1xuICBwdWJsaWMgaGlkZV9oZWFkZXJzOiBCb29sZWFuO1xuICBwdWJsaWMgdGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW46IFN0cmluZztcbiAgcHVibGljIHRleHRfYWxpZ25tZW50X3ZhbHVlczogU3RyaW5nO1xuICBwdWJsaWMgZmlyc3RfY29sdW1uX2xpbms6IFN0cmluZztcbiAgcHVibGljIGdldERhdGFBc0hUTUw7XG4gIHB1YmxpYyBnZXREYXRhQXNEZWJ1Z0hUTUw7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElCb29tUmVuZGVyaW5nT3B0aW9ucykge1xuICAgIHRoaXMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyA9IG9wdGlvbnMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyB8fCBcIlwiO1xuICAgIHRoaXMuaGlkZV9maXJzdF9jb2x1bW4gPSBvcHRpb25zLmhpZGVfZmlyc3RfY29sdW1uO1xuICAgIHRoaXMuaGlkZV9oZWFkZXJzID0gb3B0aW9ucy5oaWRlX2hlYWRlcnM7XG4gICAgdGhpcy50ZXh0X2FsaWdubWVudF9maXJzdGNvbHVtbiA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW4gfHwgXCJcIjtcbiAgICB0aGlzLnRleHRfYWxpZ25tZW50X3ZhbHVlcyA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfdmFsdWVzIHx8IFwiXCI7XG4gICAgdGhpcy5maXJzdF9jb2x1bW5fbGluayA9IG9wdGlvbnMuZmlyc3RfY29sdW1uX2xpbmsgfHwgXCIjXCI7XG4gIH1cbn1cbkJvb21PdXRwdXQucHJvdG90eXBlLmdldERhdGFBc0hUTUwgPSBmdW5jdGlvbiAoZGF0YTogSUJvb21UYWJsZSwgc29ydGluZ19wcm9wcyk6IElCb29tSFRNTCB7XG4gIGxldCBnZXRMaW5raWZpZWRDb2x1bW4gPSBmdW5jdGlvbiAocm93TmFtZTogc3RyaW5nLCBmaXJzdF9jb2x1bW5fbGluazogc3RyaW5nLCByYXdfcm93TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZmlyc3RfY29sdW1uX2xpbmsgIT09IFwiI1wiKSB7XG4gICAgICBmaXJzdF9jb2x1bW5fbGluayA9IGZpcnN0X2NvbHVtbl9saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9yb3dfbmFtZV9cIiwgXCJnXCIpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucyhyYXdfcm93TmFtZSkudHJpbSgpKTtcbiAgICAgIHJvd05hbWUgPSBgPGEgaHJlZj1cIiR7Zmlyc3RfY29sdW1uX2xpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHtyb3dOYW1lfTwvYT5gO1xuICAgIH1cbiAgICByZXR1cm4gcm93TmFtZTtcbiAgfTtcbiAgbGV0IG91dHB1dDogSUJvb21IVE1MID0ge1xuICAgIGJvZHk6IFwiXCJcbiAgfTtcbiAgaWYgKHNvcnRpbmdfcHJvcHMgJiYgc29ydGluZ19wcm9wcy5jb2xfaW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0aW5nX3Byb3BzLmNvbF9pbmRleCA+IC0xKSB7XG4gICAgbGV0IHNvcnRGdW5jdGlvbiA9IChhLCBiLCBzb3J0TWV0aG9kKSA9PiB7XG4gICAgICBpZiAoc29ydE1ldGhvZCA9PT0gXCJhc2NcIikge1xuICAgICAgICByZXR1cm4gYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUgLSBiW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBiW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZSAtIGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlO1xuICAgICAgfVxuICAgIH07XG4gICAgZGF0YS5vdXRwdXQgPSBkYXRhLm91dHB1dFxuICAgICAgLmZpbHRlcihhID0+ICFpc05hTihhW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZSkpXG4gICAgICAuY29uY2F0KGRhdGEub3V0cHV0LmZpbHRlcihhID0+IGlzTmFOKGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlKSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gc29ydEZ1bmN0aW9uKGEsIGIsIHNvcnRpbmdfcHJvcHMuZGlyZWN0aW9uKSk7XG4gIH1cbiAgXy5lYWNoKGRhdGEub3V0cHV0LCBvID0+IHtcbiAgICBpZiAoby5tYXAoaXRlbSA9PiBpdGVtLmhpZGRlbi50b1N0cmluZygpKS5pbmRleE9mKFwiZmFsc2VcIikgPiAtMSkge1xuICAgICAgb3V0cHV0LmJvZHkgKz0gXCI8dHI+XCI7XG4gICAgICBpZiAodGhpcy5oaWRlX2ZpcnN0X2NvbHVtbiAhPT0gdHJ1ZSkge1xuICAgICAgICBsZXQgcmF3X3Jvd05hbWUgPSAoXy5maXJzdChvLm1hcChpdGVtID0+IGl0ZW0ucm93X25hbWVfcmF3KSkpO1xuICAgICAgICBvdXRwdXQuYm9keSArPSBgXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246JHtcbiAgICAgICAgICB0aGlzLnRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uXG4gICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtnZXRMaW5raWZpZWRDb2x1bW4oXy5maXJzdChvLm1hcChpdGVtID0+IGl0ZW0ucm93X25hbWUpKSwgU3RyaW5nKHRoaXMuZmlyc3RfY29sdW1uX2xpbmspLCByYXdfcm93TmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+YDtcbiAgICAgIH1cbiAgICAgIF8uZWFjaChvLCBpdGVtID0+IHtcbiAgICAgICAgbGV0IGl0ZW1fc3R5bGUgPSBgcGFkZGluZzo0cHg7YmFja2dyb3VuZC1jb2xvcjoke2l0ZW0uY29sb3JfYmd9O2NvbG9yOiR7XG4gICAgICAgICAgaXRlbS5jb2xvcl90ZXh0XG4gICAgICAgICAgfTt0ZXh0LWFsaWduOiR7dGhpcy50ZXh0X2FsaWdubWVudF92YWx1ZXN9YDtcbiAgICAgICAgbGV0IGl0ZW1fZGlzcGxheSA9XG4gICAgICAgICAgaXRlbS5saW5rID09PSBcIiNcIlxuICAgICAgICAgICAgPyBpdGVtLmRpc3BsYXlfdmFsdWVcbiAgICAgICAgICAgIDogYDxhIGhyZWY9XCIke2l0ZW0ubGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBzdHlsZT1cImNvbG9yOiR7XG4gICAgICAgICAgICBpdGVtLmNvbG9yX3RleHRcbiAgICAgICAgICAgIH1cIj4ke2l0ZW0uZGlzcGxheV92YWx1ZX08L2E+YDtcbiAgICAgICAgbGV0IHRvb2x0aXAgPVxuICAgICAgICAgICFpdGVtLnRvb2x0aXAgfHwgaXRlbS50b29sdGlwID09PSBcIi1cIlxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogYCBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLWh0bWw9XCJ0cnVlXCIgZGF0YS1wbGFjZW1lbnQ9XCJhdXRvXCIgdGl0bGU9XCIke1xuICAgICAgICAgICAgaXRlbS50b29sdGlwXG4gICAgICAgICAgICB9XCIgYDtcbiAgICAgICAgb3V0cHV0LmJvZHkgKz0gYFxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCIke2l0ZW1fc3R5bGV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke3Rvb2x0aXAgPyBgPHNwYW4gJHt0b29sdGlwfT5gIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2l0ZW1fZGlzcGxheX1cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dG9vbHRpcCA/IGA8L3NwYW4+YCA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgIH0pO1xuICAgICAgb3V0cHV0LmJvZHkgKz0gXCI8L3RyPlwiO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvdXRwdXQ7XG59O1xuQm9vbU91dHB1dC5wcm90b3R5cGUuZ2V0RGF0YUFzRGVidWdIVE1MID0gZnVuY3Rpb24gKGRhdGE6IElCb29tU2VyaWVzW10pOiBzdHJpbmcge1xuICBsZXQgZGVidWdkYXRhID0gYGA7XG4gIGRlYnVnZGF0YSA9IF8ubWFwKGRhdGEsIGQgPT4ge1xuICAgIHJldHVybiBgXG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDozMCU7IHRpdGxlPVwiU2VyaWVzIE5hbWVcIiA+JHtkLnNlcmllc05hbWV9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiTWF0Y2hpbmcgUGF0dGVybiBOYW1lXCIgPiR7ZC5wYXR0ZXJuLm5hbWUgfHwgZC5wYXR0ZXJuLnBhdHRlcm4gfHwgXCJEZWZhdWx0XCJ9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiVmFsdWUgOiAke1N0cmluZyhkLnZhbHVlX2Zvcm1hdHRlZCB8fCBcIm51bGxcIil9IC8gUmF3IDogJHtTdHJpbmcoZC52YWx1ZSB8fCBcIm51bGxcIil9IC8gU3RhdCA6ICR7ZC5wYXR0ZXJuLnZhbHVlTmFtZX1cIj4ke2QuZGlzcGxheV92YWx1ZX08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJSb3cgbmFtZVwiID4ke2Qucm93X25hbWV9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiQ29sIG5hbWVcIiA+JHtkLmNvbF9uYW1lfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlRocmVzaG9sZHNcIiA+JHtkLnRocmVzaG9sZHMuam9pbihcIixcIil9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiQkcgQ29sb3JcIiA+JHtkLmNvbG9yX2JnfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlRleHQgQ29sb3JcIiA+JHtkLmNvbG9yX3RleHR9PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgYDtcbiAgfSkuam9pbihgYCk7XG4gIHJldHVybiBkZWJ1Z2RhdGE7XG59O1xuIl19 \ No newline at end of file diff --git a/dist/app/boom/BoomPattern.js b/dist/app/boom/BoomPattern.js index 5198c1e..08e263d 100644 --- a/dist/app/boom/BoomPattern.js +++ b/dist/app/boom/BoomPattern.js @@ -1,83 +1,83 @@ -System.register(["./index"], function (exports_1, context_1) { - "use strict"; - var index_1, BoomPattern; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (index_1_1) { - index_1 = index_1_1; - } - ], - execute: function () { - BoomPattern = (function () { - function BoomPattern(options) { - this.row_col_wrapper = "_"; - if (options && options.row_col_wrapper) { - this.row_col_wrapper = options.row_col_wrapper; - } - this.bgColors = options && options.bgColors ? options.bgColors : "green|orange|red"; - this.bgColors_overrides = options && options.bgColors_overrides ? options.bgColors_overrides : "0->green|2->red|1->yellow"; - this.textColors = options && options.textColors ? options.textColors : "red|orange|green"; - this.textColors_overrides = options && options.textColors_overrides ? options.textColors_overrides : "0->red|2->green|1->yellow"; - this.clickable_cells_link = options && options.clickable_cells_link ? options.clickable_cells_link : ""; - this.col_name = options && options.col_name ? options.col_name : this.row_col_wrapper + "1" + this.row_col_wrapper; - this.decimals = options && options.decimals ? options.decimals : 2; - this.delimiter = options && options.delimiter ? options.delimiter : "."; - this.displayTemplate = options && options.displayTemplate ? options.displayTemplate : "_value_"; - this.defaultBGColor = options && options.defaultBGColor ? options.defaultBGColor : ""; - this.defaultTextColor = options && options.defaultTextColor ? options.defaultTextColor : ""; - this.enable_bgColor = false; - this.enable_bgColor_overrides = false; - this.enable_textColor = false; - this.enable_textColor_overrides = false; - this.enable_clickable_cells = false; - this.enable_time_based_thresholds = false; - this.enable_transform = false; - this.enable_transform_overrides = false; - this.filter = { - value_above: "", - value_below: "", - }; - this.format = options && options.format ? options.format : "none"; - this.name = options && options.name ? options.name : "New Pattern"; - this.null_color = options && options.null_color ? options.null_color : "darkred"; - this.null_textcolor = options && options.null_Textcolor ? options.null_Textcolor : "black"; - this.null_value = options && options.null_value ? options.null_value : "No data"; - this.pattern = options && options.pattern ? options.pattern : "^server.*cpu$"; - this.row_name = options && options.row_name ? options.row_name : this.row_col_wrapper + "0" + this.row_col_wrapper; - this.thresholds = options && options.thresholds ? options.thresholds : "70,90"; - this.time_based_thresholds = []; - this.transform_values = options && options.transform_values ? options.transform_values : "_value_|_value_|_value_"; - this.transform_values_overrides = options && options.transform_values_overrides ? options.transform_values_overrides : "0->down|1->up"; - this.tooltipTemplate = options && options.tooltipTemplate ? options.tooltipTemplate : "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_"; - this.valueName = options && options.valueName ? options.valueName : "avg"; - } - return BoomPattern; - }()); - exports_1("BoomPattern", BoomPattern); - BoomPattern.prototype.inverseBGColors = function () { - this.bgColors = this.bgColors ? this.bgColors.split("|").reverse().join("|") : ""; - }; - BoomPattern.prototype.inverseTextColors = function () { - this.textColors = this.textColors ? this.textColors.split("|").reverse().join("|") : ""; - }; - BoomPattern.prototype.inverseTransformValues = function () { - this.transform_values = this.transform_values ? this.transform_values.split("|").reverse().join("|") : ""; - }; - BoomPattern.prototype.add_time_based_thresholds = function () { - var new_time_based_threshold = new index_1.BoomTimeBasedThreshold(); - this.time_based_thresholds = this.time_based_thresholds || []; - this.time_based_thresholds.push(new_time_based_threshold); - }; - BoomPattern.prototype.remove_time_based_thresholds = function (index) { - if (this.time_based_thresholds.length > 0) { - this.time_based_thresholds.splice(Number(index), 1); - } - }; - BoomPattern.prototype.setUnitFormat = function (format) { - this.format = format && format.value ? format.value : "none"; - }; - } - }; -}); +System.register(["./index"], function (exports_1, context_1) { + "use strict"; + var index_1, BoomPattern; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (index_1_1) { + index_1 = index_1_1; + } + ], + execute: function () { + BoomPattern = (function () { + function BoomPattern(options) { + this.row_col_wrapper = "_"; + if (options && options.row_col_wrapper) { + this.row_col_wrapper = options.row_col_wrapper; + } + this.bgColors = options && options.bgColors ? options.bgColors : "green|orange|red"; + this.bgColors_overrides = options && options.bgColors_overrides ? options.bgColors_overrides : "0->green|2->red|1->yellow"; + this.textColors = options && options.textColors ? options.textColors : "red|orange|green"; + this.textColors_overrides = options && options.textColors_overrides ? options.textColors_overrides : "0->red|2->green|1->yellow"; + this.clickable_cells_link = options && options.clickable_cells_link ? options.clickable_cells_link : ""; + this.col_name = options && options.col_name ? options.col_name : this.row_col_wrapper + "1" + this.row_col_wrapper; + this.decimals = options && options.decimals ? options.decimals : 2; + this.delimiter = options && options.delimiter ? options.delimiter : "."; + this.displayTemplate = options && options.displayTemplate ? options.displayTemplate : "_value_"; + this.defaultBGColor = options && options.defaultBGColor ? options.defaultBGColor : ""; + this.defaultTextColor = options && options.defaultTextColor ? options.defaultTextColor : ""; + this.enable_bgColor = false; + this.enable_bgColor_overrides = false; + this.enable_textColor = false; + this.enable_textColor_overrides = false; + this.enable_clickable_cells = false; + this.enable_time_based_thresholds = false; + this.enable_transform = false; + this.enable_transform_overrides = false; + this.filter = { + value_above: "", + value_below: "", + }; + this.format = options && options.format ? options.format : "none"; + this.name = options && options.name ? options.name : "New Pattern"; + this.null_color = options && options.null_color ? options.null_color : "darkred"; + this.null_textcolor = options && options.null_Textcolor ? options.null_Textcolor : "black"; + this.null_value = options && options.null_value ? options.null_value : "No data"; + this.pattern = options && options.pattern ? options.pattern : "^server.*cpu$"; + this.row_name = options && options.row_name ? options.row_name : this.row_col_wrapper + "0" + this.row_col_wrapper; + this.thresholds = options && options.thresholds ? options.thresholds : "70,90"; + this.time_based_thresholds = []; + this.transform_values = options && options.transform_values ? options.transform_values : "_value_|_value_|_value_"; + this.transform_values_overrides = options && options.transform_values_overrides ? options.transform_values_overrides : "0->down|1->up"; + this.tooltipTemplate = options && options.tooltipTemplate ? options.tooltipTemplate : "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_"; + this.valueName = options && options.valueName ? options.valueName : "avg"; + } + return BoomPattern; + }()); + exports_1("BoomPattern", BoomPattern); + BoomPattern.prototype.inverseBGColors = function () { + this.bgColors = this.bgColors ? this.bgColors.split("|").reverse().join("|") : ""; + }; + BoomPattern.prototype.inverseTextColors = function () { + this.textColors = this.textColors ? this.textColors.split("|").reverse().join("|") : ""; + }; + BoomPattern.prototype.inverseTransformValues = function () { + this.transform_values = this.transform_values ? this.transform_values.split("|").reverse().join("|") : ""; + }; + BoomPattern.prototype.add_time_based_thresholds = function () { + var new_time_based_threshold = new index_1.BoomTimeBasedThreshold(); + this.time_based_thresholds = this.time_based_thresholds || []; + this.time_based_thresholds.push(new_time_based_threshold); + }; + BoomPattern.prototype.remove_time_based_thresholds = function (index) { + if (this.time_based_thresholds.length > 0) { + this.time_based_thresholds.splice(Number(index), 1); + } + }; + BoomPattern.prototype.setUnitFormat = function (format) { + this.format = format && format.value ? format.value : "none"; + }; + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVBhdHRlcm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbVBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7WUFFQTtnQkE0Q0kscUJBQVksT0FBWTtvQkEzQ2hCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQTRDMUIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO3FCQUNsRDtvQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDcEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7b0JBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO29CQUMxRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztvQkFDakksSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxD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LE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNqRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbVBhdHRlcm4sIElCb29tVGltZUJhc2VkVGhyZXNob2xkLCBCb29tVGltZUJhc2VkVGhyZXNob2xkIH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgQm9vbVBhdHRlcm4gaW1wbGVtZW50cyBJQm9vbVBhdHRlcm4ge1xuICAgIHByaXZhdGUgcm93X2NvbF93cmFwcGVyID0gXCJfXCI7XG4gICAgcHVibGljIGJnQ29sb3JzOiBzdHJpbmc7XG4gICAgcHVibGljIGJnQ29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xuICAgIHB1YmxpYyBjbGlja2FibGVfY2VsbHNfbGluazogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5VGVtcGxhdGU6IHN0cmluZztcbiAgICBwdWJsaWMgZGVmYXVsdEJHQ29sb3I6IHN0cmluZztcbiAgICBwdWJsaWMgZGVmYXVsdFRleHRDb2xvcjogc3RyaW5nO1xuICAgIHB1YmxpYyBkZWNpbWFsczogTnVtYmVyO1xuICAgIHB1YmxpYyBkZWxpbWl0ZXI6IHN0cmluZztcbiAgICBwdWJsaWMgZW5hYmxlX2JnQ29sb3I6IEJvb2xlYW47XG4gICAgcHVibGljIGVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlczogQm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlX2NsaWNrYWJsZV9jZWxsczogQm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlX3RleHRDb2xvcjogQm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlX3RleHRDb2xvcl9vdmVycmlkZXM6IEJvb2xlYW47XG4gICAgcHVibGljIGVuYWJsZV90aW1lX2Jhc2VkX3RocmVzaG9sZHM6IEJvb2xlYW47XG4gICAgcHVibGljIGVuYWJsZV90cmFuc2Zvcm06IEJvb2xlYW47XG4gICAgcHVibGljIGVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzOiBCb29sZWFuO1xuICAgIHB1YmxpYyBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWVfYWJvdmU6IHN0cmluZztcbiAgICAgICAgdmFsdWVfYmVsb3c6IHN0cmluZztcbiAgICB9O1xuICAgIHB1YmxpYyBmb3JtYXQ6IHN0cmluZztcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBudWxsX2NvbG9yOiBzdHJpbmc7XG4gICAgcHVibGljIG51bGxfdmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgbnVsbF90ZXh0Y29sb3I6IHN0cmluZztcbiAgICBwdWJsaWMgcGF0dGVybjogc3RyaW5nO1xuICAgIHB1YmxpYyByb3dfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0ZXh0Q29sb3JzOiBzdHJpbmc7XG4gICAgcHVibGljIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiBzdHJpbmc7XG4gICAgcHVibGljIHRocmVzaG9sZHM6IHN0cmluZztcbiAgICBwdWJsaWMgdGltZV9iYXNlZF90aHJlc2hvbGRzOiBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZFtdO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm1fdmFsdWVzOiBzdHJpbmc7XG4gICAgcHVibGljIHRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzOiBzdHJpbmc7XG4gICAgcHVibGljIHRvb2x0aXBUZW1wbGF0ZTogc3RyaW5nO1xuICAgIHB1YmxpYyB2YWx1ZU5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgaW52ZXJzZUJHQ29sb3JzO1xuICAgIHB1YmxpYyBpbnZlcnNlVGV4dENvbG9ycztcbiAgICBwdWJsaWMgaW52ZXJzZVRyYW5zZm9ybVZhbHVlcztcbiAgICBwdWJsaWMgYWRkX3RpbWVfYmFzZWRfdGhyZXNob2xkcztcbiAgICBwdWJsaWMgcmVtb3ZlX3RpbWVfYmFzZWRfdGhyZXNob2xkcztcbiAgICBwdWJsaWMgc2V0VW5pdEZvcm1hdDtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5yb3dfY29sX3dyYXBwZXIpIHtcbiAgICAgICAgICAgIHRoaXMucm93X2NvbF93cmFwcGVyID0gb3B0aW9ucy5yb3dfY29sX3dyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iZ0NvbG9ycyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5iZ0NvbG9ycyA/IG9wdGlvbnMuYmdDb2xvcnMgOiBcImdyZWVufG9yYW5nZXxyZWRcIjtcbiAgICAgICAgdGhpcy5iZ0NvbG9yc19vdmVycmlkZXMgPSBvcHRpb25zICYmIG9wdGlvbnMuYmdDb2xvcnNfb3ZlcnJpZGVzID8gb3B0aW9ucy5iZ0NvbG9yc19vdmVycmlkZXMgOiBcIjAtPmdyZWVufDItPnJlZHwxLT55ZWxsb3dcIjtcbiAgICAgICAgdGhpcy50ZXh0Q29sb3JzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRleHRDb2xvcnMgPyBvcHRpb25zLnRleHRDb2xvcnMgOiBcInJlZHxvcmFuZ2V8Z3JlZW5cIjtcbiAgICAgICAgdGhpcy50ZXh0Q29sb3JzX292ZXJyaWRlcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy50ZXh0Q29sb3JzX292ZXJyaWRlcyA/IG9wdGlvbnMudGV4dENvbG9yc19vdmVycmlkZXMgOiBcIjAtPnJlZHwyLT5ncmVlbnwxLT55ZWxsb3dcIjtcbiAgICAgICAgdGhpcy5jbGlja2FibGVfY2VsbHNfbGluayA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jbGlja2FibGVfY2VsbHNfbGluayA/IG9wdGlvbnMuY2xpY2thYmxlX2NlbGxzX2xpbmsgOiBcIlwiO1xuICAgICAgICB0aGlzLmNvbF9uYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLmNvbF9uYW1lID8gb3B0aW9ucy5jb2xfbmFtZSA6IHRoaXMucm93X2NvbF93cmFwcGVyICsgXCIxXCIgKyB0aGlzLnJvd19jb2xfd3JhcHBlcjtcbiAgICAgICAgdGhpcy5kZWNpbWFscyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWNpbWFscyA/IG9wdGlvbnMuZGVjaW1hbHMgOiAyO1xuICAgICAgICB0aGlzLmRlbGltaXRlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWxpbWl0ZXIgPyBvcHRpb25zLmRlbGltaXRlciA6IFwiLlwiO1xuICAgICAgICB0aGlzLmRpc3BsYXlUZW1wbGF0ZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kaXNwbGF5VGVtcGxhdGUgPyBvcHRpb25zLmRpc3BsYXlUZW1wbGF0ZSA6IFwiX3ZhbHVlX1wiO1xuICAgICAgICB0aGlzLmRlZmF1bHRCR0NvbG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLmRlZmF1bHRCR0NvbG9yID8gb3B0aW9ucy5kZWZhdWx0QkdDb2xvciA6IFwiXCI7XG4gICAgICAgIHRoaXMuZGVmYXVsdFRleHRDb2xvciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWZhdWx0VGV4dENvbG9yID8gb3B0aW9ucy5kZWZhdWx0VGV4dENvbG9yIDogXCJcIjtcbiAgICAgICAgdGhpcy5lbmFibGVfYmdDb2xvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuYWJsZV90ZXh0Q29sb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbmFibGVfdGV4dENvbG9yX292ZXJyaWRlcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuYWJsZV9jbGlja2FibGVfY2VsbHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5hYmxlX3RyYW5zZm9ybSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgICAgICAgdmFsdWVfYWJvdmU6IFwiXCIsXG4gICAgICAgICAgICB2YWx1ZV9iZWxvdzogXCJcIixcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5mb3JtYXQgPSBvcHRpb25zICYmIG9wdGlvbnMuZm9ybWF0ID8gb3B0aW9ucy5mb3JtYXQgOiBcIm5vbmVcIjtcbiAgICAgICAgdGhpcy5uYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLm5hbWUgPyBvcHRpb25zLm5hbWUgOiBcIk5ldyBQYXR0ZXJuXCI7XG4gICAgICAgIHRoaXMubnVsbF9jb2xvciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5udWxsX2NvbG9yID8gb3B0aW9ucy5udWxsX2NvbG9yIDogXCJkYXJrcmVkXCI7XG4gICAgICAgIHRoaXMubnVsbF90ZXh0Y29sb3IgPSBvcHRpb25zICYmIG9wdGlvbnMubnVsbF9UZXh0Y29sb3IgPyBvcHRpb25zLm51bGxfVGV4dGNvbG9yIDogXCJibGFja1wiO1xuICAgICAgICB0aGlzLm51bGxfdmFsdWUgPSBvcHRpb25zICYmIG9wdGlvbnMubnVsbF92YWx1ZSA/IG9wdGlvbnMubnVsbF92YWx1ZSA6IFwiTm8gZGF0YVwiO1xuICAgICAgICB0aGlzLnBhdHRlcm4gPSBvcHRpb25zICYmIG9wdGlvbnMucGF0dGVybiA/IG9wdGlvbnMucGF0dGVybiA6IFwiXnNlcnZlci4qY3B1JFwiO1xuICAgICAgICB0aGlzLnJvd19uYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLnJvd19uYW1lID8gb3B0aW9ucy5yb3dfbmFtZSA6IHRoaXMucm93X2NvbF93cmFwcGVyICsgXCIwXCIgKyB0aGlzLnJvd19jb2xfd3JhcHBlcjtcbiAgICAgICAgdGhpcy50aHJlc2hvbGRzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRocmVzaG9sZHMgPyBvcHRpb25zLnRocmVzaG9sZHMgOiBcIjcwLDkwXCI7XG4gICAgICAgIHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzID0gW107XG4gICAgICAgIHRoaXMudHJhbnNmb3JtX3ZhbHVlcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzID8gb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzIDogXCJfdmFsdWVffF92YWx1ZV98X3ZhbHVlX1wiO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID8gb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcyA6IFwiMC0+ZG93bnwxLT51cFwiO1xuICAgICAgICB0aGlzLnRvb2x0aXBUZW1wbGF0ZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy50b29sdGlwVGVtcGxhdGUgPyBvcHRpb25zLnRvb2x0aXBUZW1wbGF0ZSA6IFwiU2VyaWVzIDogX3Nlcmllc18gPGJyLz5Sb3cgTmFtZSA6IF9yb3dfbmFtZV8gPGJyLz5Db2wgTmFtZSA6IF9jb2xfbmFtZV8gPGJyLz5WYWx1ZSA6IF92YWx1ZV9cIjtcbiAgICAgICAgdGhpcy52YWx1ZU5hbWUgPSBvcHRpb25zICYmIG9wdGlvbnMudmFsdWVOYW1lID8gb3B0aW9ucy52YWx1ZU5hbWUgOiBcImF2Z1wiO1xuICAgIH1cbn1cblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmludmVyc2VCR0NvbG9ycyA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcbiAgICB0aGlzLmJnQ29sb3JzID0gdGhpcy5iZ0NvbG9ycyA/IHRoaXMuYmdDb2xvcnMuc3BsaXQoXCJ8XCIpLnJldmVyc2UoKS5qb2luKFwifFwiKSA6IFwiXCI7XG59O1xuXG5Cb29tUGF0dGVybi5wcm90b3R5cGUuaW52ZXJzZVRleHRDb2xvcnMgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0Q29sb3JzID0gdGhpcy50ZXh0Q29sb3JzID8gdGhpcy50ZXh0Q29sb3JzLnNwbGl0KFwifFwiKS5yZXZlcnNlKCkuam9pbihcInxcIikgOiBcIlwiO1xufTtcblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmludmVyc2VUcmFuc2Zvcm1WYWx1ZXMgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2Zvcm1fdmFsdWVzID0gdGhpcy50cmFuc2Zvcm1fdmFsdWVzID8gdGhpcy50cmFuc2Zvcm1fdmFsdWVzLnNwbGl0KFwifFwiKS5yZXZlcnNlKCkuam9pbihcInxcIikgOiBcIlwiO1xufTtcblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmFkZF90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgbGV0IG5ld190aW1lX2Jhc2VkX3RocmVzaG9sZDogSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQgPSBuZXcgQm9vbVRpbWVCYXNlZFRocmVzaG9sZCgpO1xuICAgIHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzID0gdGhpcy50aW1lX2Jhc2VkX3RocmVzaG9sZHMgfHwgW107XG4gICAgdGhpcy50aW1lX2Jhc2VkX3RocmVzaG9sZHMucHVzaChuZXdfdGltZV9iYXNlZF90aHJlc2hvbGQpO1xufTtcblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLnJlbW92ZV90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmdW5jdGlvbiAoaW5kZXg6IE51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzLnNwbGljZShOdW1iZXIoaW5kZXgpLCAxKTtcbiAgICB9XG59O1xuXG5Cb29tUGF0dGVybi5wcm90b3R5cGUuc2V0VW5pdEZvcm1hdCA9IGZ1bmN0aW9uIChmb3JtYXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0ICYmIGZvcm1hdC52YWx1ZSA/IGZvcm1hdC52YWx1ZSA6IFwibm9uZVwiO1xufTtcblxuZXhwb3J0IHtcbiAgICBCb29tUGF0dGVyblxufTtcbiJdfQ== \ No newline at end of file diff --git a/dist/app/boom/BoomSeries.js b/dist/app/boom/BoomSeries.js index bd4cc54..ca68dc5 100644 --- a/dist/app/boom/BoomSeries.js +++ b/dist/app/boom/BoomSeries.js @@ -1,284 +1,284 @@ -System.register(["app/core/utils/kbn", "app/core/time_series2", "lodash", "./index"], function (exports_1, context_1) { - "use strict"; - var kbn_1, time_series2_1, lodash_1, index_1, get_formatted_value, BoomSeries; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (kbn_1_1) { - kbn_1 = kbn_1_1; - }, - function (time_series2_1_1) { - time_series2_1 = time_series2_1_1; - }, - function (lodash_1_1) { - lodash_1 = lodash_1_1; - }, - function (index_1_1) { - index_1 = index_1_1; - } - ], - execute: function () { - get_formatted_value = function (value, decimals, format) { - var decimalInfo = index_1.getDecimalsForValue(value, decimals); - var formatFunc = kbn_1.default.valueFormats[format]; - return formatFunc(value, decimalInfo.decimals, decimalInfo.scaledDecimals); - }; - BoomSeries = (function () { - function BoomSeries(seriesData, panelDefaultPattern, panelPatterns, options, scopedVars, templateSrv, timeSrv) { - var _this = this; - this.display_value = "-"; - this.tooltip = "-"; - this.value = NaN; - this.value_formatted = "-"; - this.link = "-"; - this.debug_mode = options && options.debug_mode === true ? true : false; - var nullPointMode = options && options.nullPointMode ? options.nullPointMode : "connected"; - this.row_col_wrapper = options && options.row_col_wrapper ? options.row_col_wrapper : "_"; - this.seriesName = ""; - this.template_row_name = ""; - this.template_col_name = ""; - this.template_value = ""; - this.hidden = false; - this.pattern = undefined; - var series = new time_series2_1.default({ - alias: seriesData.target, - datapoints: seriesData.datapoints || [] - }); - series.flotpairs = series.getFlotPairs(nullPointMode); - this.seriesName = series.alias || series.aliasEscaped || series.label || series.id; - this.currentTimeStamp = new Date(); - if (series.dataPoints && series.dataPoints.length > 0 && lodash_1.default.last(series.dataPoints).length === 2) { - this.currentTimeStamp = new Date(lodash_1.default.last(series.dataPoints)[1]); - } - this.pattern = lodash_1.default.find(panelPatterns.filter(function (p) { return p.disabled !== true; }), function (p) { return _this.seriesName.match(p.pattern); }) || panelDefaultPattern; - this.decimals = this.pattern.decimals || panelDefaultPattern.decimals || 2; - if (series.stats) { - if (this.pattern.valueName === "last_time") { - if (lodash_1.default.last(series.datapoints)) { - this.value = lodash_1.default.last(series.datapoints)[1]; - } - } - else if (this.pattern.valueName === "last_time_nonnull") { - var non_null_data = series.datapoints.filter(function (s) { return s[0]; }); - if (lodash_1.default.last(non_null_data) && lodash_1.default.last(non_null_data)[1]) { - this.value = lodash_1.default.last(non_null_data)[1]; - } - } - else { - this.value = series.stats[this.pattern.valueName]; - } - if (lodash_1.default.isNaN(this.value) || this.value === null) { - this.display_value = this.pattern.null_value; - } - else { - this.display_value = String(this.value); - } - if (!isNaN(this.value)) { - this.value_formatted = get_formatted_value(this.value, this.decimals, this.pattern.format); - this.display_value = String(this.value_formatted); - } - } - if (this.value && this.pattern && this.pattern.filter && (this.pattern.filter.value_below !== "" || this.pattern.filter.value_above !== "")) { - if (this.pattern.filter.value_below !== "" && this.value < +(this.pattern.filter.value_below)) { - this.hidden = true; - } - if (this.pattern.filter.value_above !== "" && this.value > +(this.pattern.filter.value_above)) { - this.hidden = true; - } - } - this.row_name = this.getRowName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString()); - this.row_name_raw = this.getRowName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString()); - this.col_name = this.getColName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString(), this.row_name); - this.thresholds = this.getThresholds(templateSrv, scopedVars); - this.color_bg = this.getBGColor(templateSrv, scopedVars); - this.color_text = this.getTextColor(templateSrv, scopedVars); - this.template_value = this.getDisplayValueTemplate(); - this.tooltip = this.pattern.tooltipTemplate || "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_"; - this.link = this.pattern.enable_clickable_cells ? this.pattern.clickable_cells_link || "#" : "#"; - if (this.link !== "#") { - var range = timeSrv.timeRangeForUrl(); - this.link += (this.link.indexOf("?") > -1 ? "&from=" + range.from : "?from=" + range.from); - this.link += "&to=" + range.to; - } - this.replaceTokens(templateSrv, scopedVars, series); - this.cleanup(); - } - BoomSeries.prototype.getThresholds = function (templateSrv, scopedVars) { - var thresholds = templateSrv.replace(this.pattern.thresholds, scopedVars).split(",").map(function (d) { return +d; }); - if (this.pattern.enable_time_based_thresholds) { - var metricrecivedTimeStamp_1 = this.currentTimeStamp || new Date(); - var metricrecivedTimeStamp_innumber_1 = metricrecivedTimeStamp_1.getHours() * 100 + metricrecivedTimeStamp_1.getMinutes(); - var weekdays_1 = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; - lodash_1.default.each(this.pattern.time_based_thresholds, function (tbtx) { - if (tbtx && tbtx.from && tbtx.to && tbtx.enabledDays && - (metricrecivedTimeStamp_innumber_1 >= +(tbtx.from)) && - (metricrecivedTimeStamp_innumber_1 <= +(tbtx.to)) && - (tbtx.enabledDays.toLowerCase().indexOf(weekdays_1[metricrecivedTimeStamp_1.getDay()]) > -1) && - tbtx.threshold) { - thresholds = (tbtx.threshold + "").split(",").map(function (d) { return +d; }); - } - }); - } - return thresholds; - }; - BoomSeries.prototype.getBGColor = function (templateSrv, scopedVars) { - var _this = this; - var bgColor = "transparent"; - if (lodash_1.default.isNaN(this.value) || this.value === null) { - bgColor = this.pattern.null_color || "darkred"; - if (this.pattern.null_color === "") { - bgColor = "transparent"; - } - } - else { - bgColor = this.pattern.defaultBGColor || bgColor; - if (this.pattern.enable_bgColor && this.pattern.bgColors) { - var list_of_bgColors_based_on_thresholds = templateSrv.replace(this.pattern.bgColors, scopedVars).split("|"); - bgColor = index_1.getItemBasedOnThreshold(this.thresholds, list_of_bgColors_based_on_thresholds, this.value, bgColor); - } - if (this.pattern.enable_bgColor_overrides && this.pattern.bgColors_overrides !== "") { - var _bgColors_overrides = templateSrv.replace(this.pattern.bgColors_overrides, scopedVars).split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); - if (_bgColors_overrides.length > 0 && _bgColors_overrides[0] !== "") { - bgColor = ("" + _bgColors_overrides[0]).trim(); - } - } - } - return index_1.normalizeColor(bgColor); - }; - BoomSeries.prototype.getTextColor = function (templateSrv, scopedVars) { - var _this = this; - var textColor = document.body.classList.contains("theme-light") ? "black" : "white"; - if (lodash_1.default.isNaN(this.value) || this.value === null) { - textColor = this.pattern.null_textcolor || textColor; - } - else { - textColor = this.pattern.defaultTextColor || textColor; - if (this.pattern.enable_textColor && this.pattern.textColors) { - var list_of_textColors_based_on_thresholds = templateSrv.replace(this.pattern.textColors, scopedVars).split("|"); - textColor = index_1.getItemBasedOnThreshold(this.thresholds, list_of_textColors_based_on_thresholds, this.value, textColor); - } - if (this.pattern.enable_textColor_overrides && this.pattern.textColors_overrides !== "") { - var _textColors_overrides = templateSrv.replace(this.pattern.textColors_overrides, scopedVars).split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); - if (_textColors_overrides.length > 0 && _textColors_overrides[0] !== "") { - textColor = ("" + _textColors_overrides[0]).trim(); - } - } - } - return index_1.normalizeColor(textColor); - }; - BoomSeries.prototype.getDisplayValueTemplate = function () { - var _this = this; - var template = "_value_"; - if (lodash_1.default.isNaN(this.value) || this.value === null) { - template = this.pattern.null_value || "No data"; - if (this.pattern.null_value === "") { - template = ""; - } - } - else { - template = this.pattern.displayTemplate || template; - if (this.pattern.enable_transform) { - var transform_values = this.pattern.transform_values.split("|"); - template = index_1.getItemBasedOnThreshold(this.thresholds, transform_values, this.value, template); - } - if (this.pattern.enable_transform_overrides && this.pattern.transform_values_overrides !== "") { - var _transform_values_overrides = this.pattern.transform_values_overrides.split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); - if (_transform_values_overrides.length > 0 && _transform_values_overrides[0] !== "") { - template = ("" + _transform_values_overrides[0]).trim(); - } - } - if (this.pattern.enable_transform || this.pattern.enable_transform_overrides) { - template = this.seriesName.split(this.pattern.delimiter || ".").reduce(function (r, it, i) { - return r.replace(new RegExp(_this.row_col_wrapper + i + _this.row_col_wrapper, "g"), it); - }, template); - } - } - return template; - }; - BoomSeries.prototype.cleanup = function () { - if (this.debug_mode !== true) { - delete this.seriesName; - delete this.pattern; - delete this.thresholds; - delete this.decimals; - delete this.template_col_name; - delete this.template_row_name; - delete this.template_value; - delete this.value_formatted; - delete this.currentTimeStamp; - } - }; - BoomSeries.prototype.getRowName = function (pattern, row_col_wrapper, seriesName) { - var row_name = pattern.row_name; - row_name = seriesName.split(pattern.delimiter || ".").reduce(function (r, it, i) { - return r.replace(new RegExp(row_col_wrapper + i + row_col_wrapper, "g"), it); - }, row_name); - if (seriesName.split(pattern.delimiter || ".").length === 1) { - row_name = seriesName; - } - this.template_row_name = row_name; - return row_name; - }; - BoomSeries.prototype.getColName = function (pattern, row_col_wrapper, seriesName, row_name) { - var col_name = pattern.col_name; - col_name = seriesName.split(pattern.delimiter || ".").reduce(function (r, it, i) { - return r.replace(new RegExp(row_col_wrapper + i + row_col_wrapper, "g"), it); - }, col_name); - if (seriesName.split(pattern.delimiter || ".").length === 1 || row_name === seriesName) { - col_name = pattern.col_name || "Value"; - } - this.template_col_name = col_name; - return col_name; - }; - BoomSeries.prototype.replaceTokens = function (templateSrv, scopedVars, series) { - var _this = this; - this.link = this.seriesName.split(this.pattern.delimiter || ".").reduce(function (r, it, i) { - return r.replace(new RegExp(_this.row_col_wrapper + i + _this.row_col_wrapper, "g"), it); - }, this.link); - this.row_name = this.template_row_name.replace(new RegExp("_series_", "g"), this.seriesName.toString()); - this.col_name = this.template_col_name.replace(new RegExp("_series_", "g"), this.seriesName.toString()); - this.link = this.link.replace(new RegExp("_series_", "g"), this.seriesName.toString().trim()); - this.tooltip = this.tooltip.replace(new RegExp("_series_", "g"), this.seriesName.toString().trim()); - this.display_value = this.template_value.replace(new RegExp("_series_", "g"), this.seriesName.toString()); - this.col_name = this.col_name.replace(new RegExp("_row_name_", "g"), this.row_name.toString()); - this.link = this.link.replace(new RegExp("_row_name_", "g"), index_1.getActualNameWithoutTokens(this.row_name.toString()).trim()); - this.tooltip = this.tooltip.replace(new RegExp("_row_name_", "g"), index_1.getActualNameWithoutTokens(this.row_name.toString()).trim()); - this.display_value = this.display_value.replace(new RegExp("_row_name_", "g"), this.row_name.toString()); - this.row_name = this.row_name.replace(new RegExp("_col_name_", "g"), this.col_name.toString()); - this.link = this.link.replace(new RegExp("_col_name_", "g"), index_1.getActualNameWithoutTokens(this.col_name.toString()).trim()); - this.tooltip = this.tooltip.replace(new RegExp("_col_name_", "g"), index_1.getActualNameWithoutTokens(this.col_name.toString()).trim()); - this.display_value = this.display_value.replace(new RegExp("_col_name_", "g"), this.col_name.toString()); - var value_raw = lodash_1.default.isNaN(this.value) || this.value === null ? "null" : this.value.toString().trim(); - this.link = this.link.replace(new RegExp("_value_raw_", "g"), value_raw); - this.tooltip = this.tooltip.replace(new RegExp("_value_raw_", "g"), value_raw); - this.display_value = this.display_value.replace(new RegExp("_value_raw_", "g"), value_raw); - this.display_value = this.display_value.replace(new RegExp("_value_min_raw_", "g"), series.stats.min); - this.display_value = this.display_value.replace(new RegExp("_value_min_", "g"), get_formatted_value(series.stats.min, this.decimals, this.pattern.format)); - this.display_value = this.display_value.replace(new RegExp("_value_max_raw_", "g"), series.stats.max); - this.display_value = this.display_value.replace(new RegExp("_value_max_", "g"), get_formatted_value(series.stats.max, this.decimals, this.pattern.format)); - this.display_value = this.display_value.replace(new RegExp("_value_avg_raw_", "g"), series.stats.avg); - this.display_value = this.display_value.replace(new RegExp("_value_avg_", "g"), get_formatted_value(series.stats.avg, this.decimals, this.pattern.format)); - this.display_value = this.display_value.replace(new RegExp("_value_current_raw_", "g"), series.stats.current); - this.display_value = this.display_value.replace(new RegExp("_value_current_", "g"), get_formatted_value(series.stats.current, this.decimals, this.pattern.format)); - this.display_value = this.display_value.replace(new RegExp("_value_total_raw_", "g"), series.stats.total); - this.display_value = this.display_value.replace(new RegExp("_value_total_", "g"), get_formatted_value(series.stats.total, this.decimals, this.pattern.format)); - var value_formatted = lodash_1.default.isNaN(this.value) || this.value === null ? "null" : this.value_formatted.toString().trim(); - this.link = this.link.replace(new RegExp("_value_", "g"), value_formatted); - this.tooltip = this.tooltip.replace(new RegExp("_value_", "g"), value_formatted); - this.display_value = this.display_value.replace(new RegExp("_value_", "g"), value_formatted); - this.row_name = index_1.replaceTokens(this.row_name); - this.col_name = index_1.replaceTokens(this.col_name); - this.display_value = index_1.replaceTokens(this.display_value); - this.row_name = templateSrv.replace(this.row_name, scopedVars); - this.col_name = templateSrv.replace(this.col_name, scopedVars); - this.display_value = templateSrv.replace(this.display_value, scopedVars); - this.tooltip = templateSrv.replace(this.tooltip, scopedVars); - this.link = templateSrv.replace(this.link, scopedVars); - }; - return BoomSeries; - }()); - exports_1("BoomSeries", BoomSeries); - } - }; -}); +System.register(["app/core/utils/kbn", "app/core/time_series2", "lodash", "./index"], function (exports_1, context_1) { + "use strict"; + var kbn_1, time_series2_1, lodash_1, index_1, get_formatted_value, BoomSeries; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (kbn_1_1) { + kbn_1 = kbn_1_1; + }, + function (time_series2_1_1) { + time_series2_1 = time_series2_1_1; + }, + function (lodash_1_1) { + lodash_1 = lodash_1_1; + }, + function (index_1_1) { + index_1 = index_1_1; + } + ], + execute: function () { + get_formatted_value = function (value, decimals, format) { + var decimalInfo = index_1.getDecimalsForValue(value, decimals); + var formatFunc = kbn_1.default.valueFormats[format]; + return formatFunc(value, decimalInfo.decimals, decimalInfo.scaledDecimals); + }; + BoomSeries = (function () { + function BoomSeries(seriesData, panelDefaultPattern, panelPatterns, options, scopedVars, templateSrv, timeSrv) { + var _this = this; + this.display_value = "-"; + this.tooltip = "-"; + this.value = NaN; + this.value_formatted = "-"; + this.link = "-"; + this.debug_mode = options && options.debug_mode === true ? true : false; + var nullPointMode = options && options.nullPointMode ? options.nullPointMode : "connected"; + this.row_col_wrapper = options && options.row_col_wrapper ? options.row_col_wrapper : "_"; + this.seriesName = ""; + this.template_row_name = ""; + this.template_col_name = ""; + this.template_value = ""; + this.hidden = false; + this.pattern = undefined; + var series = new time_series2_1.default({ + alias: seriesData.target, + datapoints: seriesData.datapoints || [] + }); + series.flotpairs = series.getFlotPairs(nullPointMode); + this.seriesName = series.alias || series.aliasEscaped || series.label || series.id; + this.currentTimeStamp = new Date(); + if (series.dataPoints && series.dataPoints.length > 0 && lodash_1.default.last(series.dataPoints).length === 2) { + this.currentTimeStamp = new Date(lodash_1.default.last(series.dataPoints)[1]); + } + this.pattern = lodash_1.default.find(panelPatterns.filter(function (p) { return p.disabled !== true; }), function (p) { return _this.seriesName.match(p.pattern); }) || panelDefaultPattern; + this.decimals = this.pattern.decimals || panelDefaultPattern.decimals || 2; + if (series.stats) { + if (this.pattern.valueName === "last_time") { + if (lodash_1.default.last(series.datapoints)) { + this.value = lodash_1.default.last(series.datapoints)[1]; + } + } + else if (this.pattern.valueName === "last_time_nonnull") { + var non_null_data = series.datapoints.filter(function (s) { return s[0]; }); + if (lodash_1.default.last(non_null_data) && lodash_1.default.last(non_null_data)[1]) { + this.value = lodash_1.default.last(non_null_data)[1]; + } + } + else { + this.value = series.stats[this.pattern.valueName]; + } + if (lodash_1.default.isNaN(this.value) || this.value === null) { + this.display_value = this.pattern.null_value; + } + else { + this.display_value = String(this.value); + } + if (!isNaN(this.value)) { + this.value_formatted = get_formatted_value(this.value, this.decimals, this.pattern.format); + this.display_value = String(this.value_formatted); + } + } + if (this.value && this.pattern && this.pattern.filter && (this.pattern.filter.value_below !== "" || this.pattern.filter.value_above !== "")) { + if (this.pattern.filter.value_below !== "" && this.value < +(this.pattern.filter.value_below)) { + this.hidden = true; + } + if (this.pattern.filter.value_above !== "" && this.value > +(this.pattern.filter.value_above)) { + this.hidden = true; + } + } + this.row_name = this.getRowName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString()); + this.row_name_raw = this.getRowName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString()); + this.col_name = this.getColName(this.pattern, this.row_col_wrapper, (this.seriesName || "").toString(), this.row_name); + this.thresholds = this.getThresholds(templateSrv, scopedVars); + this.color_bg = this.getBGColor(templateSrv, scopedVars); + this.color_text = this.getTextColor(templateSrv, scopedVars); + this.template_value = this.getDisplayValueTemplate(); + this.tooltip = this.pattern.tooltipTemplate || "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_"; + this.link = this.pattern.enable_clickable_cells ? this.pattern.clickable_cells_link || "#" : "#"; + if (this.link !== "#") { + var range = timeSrv.timeRangeForUrl(); + this.link += (this.link.indexOf("?") > -1 ? "&from=" + range.from : "?from=" + range.from); + this.link += "&to=" + range.to; + } + this.replaceTokens(templateSrv, scopedVars, series); + this.cleanup(); + } + BoomSeries.prototype.getThresholds = function (templateSrv, scopedVars) { + var thresholds = templateSrv.replace(this.pattern.thresholds, scopedVars).split(",").map(function (d) { return +d; }); + if (this.pattern.enable_time_based_thresholds) { + var metricrecivedTimeStamp_1 = this.currentTimeStamp || new Date(); + var metricrecivedTimeStamp_innumber_1 = metricrecivedTimeStamp_1.getHours() * 100 + metricrecivedTimeStamp_1.getMinutes(); + var weekdays_1 = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; + lodash_1.default.each(this.pattern.time_based_thresholds, function (tbtx) { + if (tbtx && tbtx.from && tbtx.to && tbtx.enabledDays && + (metricrecivedTimeStamp_innumber_1 >= +(tbtx.from)) && + (metricrecivedTimeStamp_innumber_1 <= +(tbtx.to)) && + (tbtx.enabledDays.toLowerCase().indexOf(weekdays_1[metricrecivedTimeStamp_1.getDay()]) > -1) && + tbtx.threshold) { + thresholds = (tbtx.threshold + "").split(",").map(function (d) { return +d; }); + } + }); + } + return thresholds; + }; + BoomSeries.prototype.getBGColor = function (templateSrv, scopedVars) { + var _this = this; + var bgColor = "transparent"; + if (lodash_1.default.isNaN(this.value) || this.value === null) { + bgColor = this.pattern.null_color || "darkred"; + if (this.pattern.null_color === "") { + bgColor = "transparent"; + } + } + else { + bgColor = this.pattern.defaultBGColor || bgColor; + if (this.pattern.enable_bgColor && this.pattern.bgColors) { + var list_of_bgColors_based_on_thresholds = templateSrv.replace(this.pattern.bgColors, scopedVars).split("|"); + bgColor = index_1.getItemBasedOnThreshold(this.thresholds, list_of_bgColors_based_on_thresholds, this.value, bgColor); + } + if (this.pattern.enable_bgColor_overrides && this.pattern.bgColors_overrides !== "") { + var _bgColors_overrides = templateSrv.replace(this.pattern.bgColors_overrides, scopedVars).split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); + if (_bgColors_overrides.length > 0 && _bgColors_overrides[0] !== "") { + bgColor = ("" + _bgColors_overrides[0]).trim(); + } + } + } + return index_1.normalizeColor(bgColor); + }; + BoomSeries.prototype.getTextColor = function (templateSrv, scopedVars) { + var _this = this; + var textColor = document.body.classList.contains("theme-light") ? "black" : "white"; + if (lodash_1.default.isNaN(this.value) || this.value === null) { + textColor = this.pattern.null_textcolor || textColor; + } + else { + textColor = this.pattern.defaultTextColor || textColor; + if (this.pattern.enable_textColor && this.pattern.textColors) { + var list_of_textColors_based_on_thresholds = templateSrv.replace(this.pattern.textColors, scopedVars).split("|"); + textColor = index_1.getItemBasedOnThreshold(this.thresholds, list_of_textColors_based_on_thresholds, this.value, textColor); + } + if (this.pattern.enable_textColor_overrides && this.pattern.textColors_overrides !== "") { + var _textColors_overrides = templateSrv.replace(this.pattern.textColors_overrides, scopedVars).split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); + if (_textColors_overrides.length > 0 && _textColors_overrides[0] !== "") { + textColor = ("" + _textColors_overrides[0]).trim(); + } + } + } + return index_1.normalizeColor(textColor); + }; + BoomSeries.prototype.getDisplayValueTemplate = function () { + var _this = this; + var template = "_value_"; + if (lodash_1.default.isNaN(this.value) || this.value === null) { + template = this.pattern.null_value || "No data"; + if (this.pattern.null_value === "") { + template = ""; + } + } + else { + template = this.pattern.displayTemplate || template; + if (this.pattern.enable_transform) { + var transform_values = this.pattern.transform_values.split("|"); + template = index_1.getItemBasedOnThreshold(this.thresholds, transform_values, this.value, template); + } + if (this.pattern.enable_transform_overrides && this.pattern.transform_values_overrides !== "") { + var _transform_values_overrides = this.pattern.transform_values_overrides.split("|").filter(function (con) { return con.indexOf("->"); }).map(function (con) { return con.split("->"); }).filter(function (con) { return +(con[0]) === _this.value; }).map(function (con) { return con[1]; }); + if (_transform_values_overrides.length > 0 && _transform_values_overrides[0] !== "") { + template = ("" + _transform_values_overrides[0]).trim(); + } + } + if (this.pattern.enable_transform || this.pattern.enable_transform_overrides) { + template = this.seriesName.split(this.pattern.delimiter || ".").reduce(function (r, it, i) { + return r.replace(new RegExp(_this.row_col_wrapper + i + _this.row_col_wrapper, "g"), it); + }, template); + } + } + return template; + }; + BoomSeries.prototype.cleanup = function () { + if (this.debug_mode !== true) { + delete this.seriesName; + delete this.pattern; + delete this.thresholds; + delete this.decimals; + delete this.template_col_name; + delete this.template_row_name; + delete this.template_value; + delete this.value_formatted; + delete this.currentTimeStamp; + } + }; + BoomSeries.prototype.getRowName = function (pattern, row_col_wrapper, seriesName) { + var row_name = pattern.row_name; + row_name = seriesName.split(pattern.delimiter || ".").reduce(function (r, it, i) { + return r.replace(new RegExp(row_col_wrapper + i + row_col_wrapper, "g"), it); + }, row_name); + if (seriesName.split(pattern.delimiter || ".").length === 1) { + row_name = seriesName; + } + this.template_row_name = row_name; + return row_name; + }; + BoomSeries.prototype.getColName = function (pattern, row_col_wrapper, seriesName, row_name) { + var col_name = pattern.col_name; + col_name = seriesName.split(pattern.delimiter || ".").reduce(function (r, it, i) { + return r.replace(new RegExp(row_col_wrapper + i + row_col_wrapper, "g"), it); + }, col_name); + if (seriesName.split(pattern.delimiter || ".").length === 1 || row_name === seriesName) { + col_name = pattern.col_name || "Value"; + } + this.template_col_name = col_name; + return col_name; + }; + BoomSeries.prototype.replaceTokens = function (templateSrv, scopedVars, series) { + var _this = this; + this.link = this.seriesName.split(this.pattern.delimiter || ".").reduce(function (r, it, i) { + return r.replace(new RegExp(_this.row_col_wrapper + i + _this.row_col_wrapper, "g"), it); + }, this.link); + this.row_name = this.template_row_name.replace(new RegExp("_series_", "g"), this.seriesName.toString()); + this.col_name = this.template_col_name.replace(new RegExp("_series_", "g"), this.seriesName.toString()); + this.link = this.link.replace(new RegExp("_series_", "g"), this.seriesName.toString().trim()); + this.tooltip = this.tooltip.replace(new RegExp("_series_", "g"), this.seriesName.toString().trim()); + this.display_value = this.template_value.replace(new RegExp("_series_", "g"), this.seriesName.toString()); + this.col_name = this.col_name.replace(new RegExp("_row_name_", "g"), this.row_name.toString()); + this.link = this.link.replace(new RegExp("_row_name_", "g"), index_1.getActualNameWithoutTokens(this.row_name.toString()).trim()); + this.tooltip = this.tooltip.replace(new RegExp("_row_name_", "g"), index_1.getActualNameWithoutTokens(this.row_name.toString()).trim()); + this.display_value = this.display_value.replace(new RegExp("_row_name_", "g"), this.row_name.toString()); + this.row_name = this.row_name.replace(new RegExp("_col_name_", "g"), this.col_name.toString()); + this.link = this.link.replace(new RegExp("_col_name_", "g"), index_1.getActualNameWithoutTokens(this.col_name.toString()).trim()); + this.tooltip = this.tooltip.replace(new RegExp("_col_name_", "g"), index_1.getActualNameWithoutTokens(this.col_name.toString()).trim()); + this.display_value = this.display_value.replace(new RegExp("_col_name_", "g"), this.col_name.toString()); + var value_raw = lodash_1.default.isNaN(this.value) || this.value === null ? "null" : this.value.toString().trim(); + this.link = this.link.replace(new RegExp("_value_raw_", "g"), value_raw); + this.tooltip = this.tooltip.replace(new RegExp("_value_raw_", "g"), value_raw); + this.display_value = this.display_value.replace(new RegExp("_value_raw_", "g"), value_raw); + this.display_value = this.display_value.replace(new RegExp("_value_min_raw_", "g"), series.stats.min); + this.display_value = this.display_value.replace(new RegExp("_value_min_", "g"), get_formatted_value(series.stats.min, this.decimals, this.pattern.format)); + this.display_value = this.display_value.replace(new RegExp("_value_max_raw_", "g"), series.stats.max); + this.display_value = this.display_value.replace(new RegExp("_value_max_", "g"), get_formatted_value(series.stats.max, this.decimals, this.pattern.format)); + this.display_value = this.display_value.replace(new RegExp("_value_avg_raw_", "g"), series.stats.avg); + this.display_value = this.display_value.replace(new RegExp("_value_avg_", "g"), get_formatted_value(series.stats.avg, this.decimals, this.pattern.format)); + this.display_value = this.display_value.replace(new RegExp("_value_current_raw_", "g"), series.stats.current); + this.display_value = this.display_value.replace(new RegExp("_value_current_", "g"), get_formatted_value(series.stats.current, this.decimals, this.pattern.format)); + this.display_value = this.display_value.replace(new RegExp("_value_total_raw_", "g"), series.stats.total); + this.display_value = this.display_value.replace(new RegExp("_value_total_", "g"), get_formatted_value(series.stats.total, this.decimals, this.pattern.format)); + var value_formatted = lodash_1.default.isNaN(this.value) || this.value === null ? "null" : this.value_formatted.toString().trim(); + this.link = this.link.replace(new RegExp("_value_", "g"), value_formatted); + this.tooltip = this.tooltip.replace(new RegExp("_value_", "g"), value_formatted); + this.display_value = this.display_value.replace(new RegExp("_value_", "g"), value_formatted); + this.row_name = index_1.replaceTokens(this.row_name); + this.col_name = index_1.replaceTokens(this.col_name); + this.display_value = index_1.replaceTokens(this.display_value); + this.row_name = templateSrv.replace(this.row_name, scopedVars); + this.col_name = templateSrv.replace(this.col_name, scopedVars); + this.display_value = templateSrv.replace(this.display_value, scopedVars); + this.tooltip = templateSrv.replace(this.tooltip, scopedVars); + this.link = templateSrv.replace(this.link, scopedVars); + }; + return BoomSeries; + }()); + exports_1("BoomSeries", BoomSeries); + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tU2VyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBT00sbUJBQW1CLEdBQUcsVUFBVSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU07Z0JBQ3pELElBQUksV0FBVyxHQUFRLDJCQUFtQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxVQUFVLEdBQUcsYUFBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9FLENBQUMsQ0FBQztZQUVGO2dCQXNCSSxvQkFBWSxVQUFlLEVBQUUsbUJBQXdCLEVBQUUsYUFBb0IsRUFBRSxPQUFZLEVBQUUsVUFBZSxFQUFFLFdBQWdCLEVBQUUsT0FBWTtvQkFBMUksaUJBcUVDO29CQTVFTSxrQkFBYSxHQUFHLEdBQUcsQ0FBQztvQkFDcEIsWUFBTyxHQUFHLEdBQUcsQ0FBQztvQkFDZCxVQUFLLEdBQUcsR0FBRyxDQUFDO29CQUNaLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQUN0QixTQUFJLEdBQUcsR0FBRyxDQUFDO29CQUlkLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDeEUsSUFBSSxhQUFhLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztvQkFDM0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FB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TSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JB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QztZQUFELENBQUMsQUE1UUQsSUE0UUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy88cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ3JhZmFuYS1zZGstbW9ja3MvYXBwL2hlYWRlcnMvY29tbW9uLmQudHNcIiAvPlxuXG5pbXBvcnQga2JuIGZyb20gJ2FwcC9jb3JlL3V0aWxzL2tibic7XG5pbXBvcnQgVGltZVNlcmllcyBmcm9tIFwiYXBwL2NvcmUvdGltZV9zZXJpZXMyXCI7XG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBJQm9vbVNlcmllcywgcmVwbGFjZVRva2VucywgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnMsIGdldERlY2ltYWxzRm9yVmFsdWUsIGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkLCBub3JtYWxpemVDb2xvciB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNvbnN0IGdldF9mb3JtYXR0ZWRfdmFsdWUgPSBmdW5jdGlvbiAodmFsdWUsIGRlY2ltYWxzLCBmb3JtYXQpOiBzdHJpbmcge1xuICAgIGxldCBkZWNpbWFsSW5mbzogYW55ID0gZ2V0RGVjaW1hbHNGb3JWYWx1ZSh2YWx1ZSwgZGVjaW1hbHMpO1xuICAgIGxldCBmb3JtYXRGdW5jID0ga2JuLnZhbHVlRm9ybWF0c1tmb3JtYXRdO1xuICAgIHJldHVybiBmb3JtYXRGdW5jKHZhbHVlLCBkZWNpbWFsSW5mby5kZWNpbWFscywgZGVjaW1hbEluZm8uc2NhbGVkRGVjaW1hbHMpO1xufTtcblxuY2xhc3MgQm9vbVNlcmllcyBpbXBsZW1lbnRzIElCb29tU2VyaWVzIHtcbiAgICBwcml2YXRlIGRlYnVnX21vZGU6IEJvb2xlYW47XG4gICAgcHJpdmF0ZSBwYXR0ZXJuOiBhbnk7XG4gICAgcHJpdmF0ZSBzZXJpZXNOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjdXJyZW50VGltZVN0YW1wOiBEYXRlO1xuICAgIHByaXZhdGUgdGVtcGxhdGVfcm93X25hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHRlbXBsYXRlX2NvbF9uYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZV92YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcm93X2NvbF93cmFwcGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWNpbWFsczogTnVtYmVyO1xuICAgIHB1YmxpYyBjb2xfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByb3dfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByb3dfbmFtZV9yYXc6IHN0cmluZztcbiAgICBwdWJsaWMgY29sb3JfYmc6IHN0cmluZztcbiAgICBwdWJsaWMgY29sb3JfdGV4dDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5X3ZhbHVlID0gXCItXCI7XG4gICAgcHVibGljIHRvb2x0aXAgPSBcIi1cIjtcbiAgICBwdWJsaWMgdmFsdWUgPSBOYU47XG4gICAgcHVibGljIHZhbHVlX2Zvcm1hdHRlZCA9IFwiLVwiO1xuICAgIHB1YmxpYyBsaW5rID0gXCItXCI7XG4gICAgcHVibGljIHRocmVzaG9sZHM6IE51bWJlcltdO1xuICAgIHB1YmxpYyBoaWRkZW46IEJvb2xlYW47XG4gICAgY29uc3RydWN0b3Ioc2VyaWVzRGF0YTogYW55LCBwYW5lbERlZmF1bHRQYXR0ZXJuOiBhbnksIHBhbmVsUGF0dGVybnM6IGFueVtdLCBvcHRpb25zOiBhbnksIHNjb3BlZFZhcnM6IGFueSwgdGVtcGxhdGVTcnY6IGFueSwgdGltZVNydjogYW55KSB7XG4gICAgICAgIHRoaXMuZGVidWdfbW9kZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWJ1Z19tb2RlID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICBsZXQgbnVsbFBvaW50TW9kZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5udWxsUG9pbnRNb2RlID8gb3B0aW9ucy5udWxsUG9pbnRNb2RlIDogXCJjb25uZWN0ZWRcIjtcbiAgICAgICAgdGhpcy5yb3dfY29sX3dyYXBwZXIgPSBvcHRpb25zICYmIG9wdGlvbnMucm93X2NvbF93cmFwcGVyID8gb3B0aW9ucy5yb3dfY29sX3dyYXBwZXIgOiBcIl9cIjtcbiAgICAgICAgdGhpcy5zZXJpZXNOYW1lID0gXCJcIjtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZSA9IFwiXCI7XG4gICAgICAgIHRoaXMudGVtcGxhdGVfY29sX25hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLnRlbXBsYXRlX3ZhbHVlID0gXCJcIjtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYXR0ZXJuID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgc2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoe1xuICAgICAgICAgICAgYWxpYXM6IHNlcmllc0RhdGEudGFyZ2V0LFxuICAgICAgICAgICAgZGF0YXBvaW50czogc2VyaWVzRGF0YS5kYXRhcG9pbnRzIHx8IFtdXG4gICAgICAgIH0pO1xuICAgICAgICBzZXJpZXMuZmxvdHBhaXJzID0gc2VyaWVzLmdldEZsb3RQYWlycyhudWxsUG9pbnRNb2RlKTtcbiAgICAgICAgdGhpcy5zZXJpZXNOYW1lID0gc2VyaWVzLmFsaWFzIHx8IHNlcmllcy5hbGlhc0VzY2FwZWQgfHwgc2VyaWVzLmxhYmVsIHx8IHNlcmllcy5pZDtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZVN0YW1wID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHNlcmllcy5kYXRhUG9pbnRzICYmIHNlcmllcy5kYXRhUG9pbnRzLmxlbmd0aCA+IDAgJiYgXy5sYXN0KHNlcmllcy5kYXRhUG9pbnRzKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWVTdGFtcCA9IG5ldyBEYXRlKF8ubGFzdChzZXJpZXMuZGF0YVBvaW50cylbMV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGF0dGVybiA9IF8uZmluZChwYW5lbFBhdHRlcm5zLmZpbHRlcihwID0+IHsgcmV0dXJuIHAuZGlzYWJsZWQgIT09IHRydWU7IH0pLCBwID0+IHRoaXMuc2VyaWVzTmFtZS5tYXRjaChwLnBhdHRlcm4pKSB8fCBwYW5lbERlZmF1bHRQYXR0ZXJuO1xuICAgICAgICB0aGlzLmRlY2ltYWxzID0gdGhpcy5wYXR0ZXJuLmRlY2ltYWxzIHx8IHBhbmVsRGVmYXVsdFBhdHRlcm4uZGVjaW1hbHMgfHwgMjtcbiAgICAgICAgaWYgKHNlcmllcy5zdGF0cykge1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi52YWx1ZU5hbWUgPT09IFwibGFzdF90aW1lXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoXy5sYXN0KHNlcmllcy5kYXRhcG9pbnRzKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gXy5sYXN0KHNlcmllcy5kYXRhcG9pbnRzKVsxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGF0dGVybi52YWx1ZU5hbWUgPT09IFwibGFzdF90aW1lX25vbm51bGxcIikge1xuICAgICAgICAgICAgICAgIGxldCBub25fbnVsbF9kYXRhID0gc2VyaWVzLmRhdGFwb2ludHMuZmlsdGVyKHMgPT4gc1swXSk7XG4gICAgICAgICAgICAgICAgaWYgKF8ubGFzdChub25fbnVsbF9kYXRhKSAmJiBfLmxhc3Qobm9uX251bGxfZGF0YSlbMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IF8ubGFzdChub25fbnVsbF9kYXRhKVsxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBzZXJpZXMuc3RhdHNbdGhpcy5wYXR0ZXJuLnZhbHVlTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5wYXR0ZXJuLm51bGxfdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlX2Zvcm1hdHRlZCA9IGdldF9mb3JtYXR0ZWRfdmFsdWUodGhpcy52YWx1ZSwgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gU3RyaW5nKHRoaXMudmFsdWVfZm9ybWF0dGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnBhdHRlcm4gJiYgdGhpcy5wYXR0ZXJuLmZpbHRlciAmJiAodGhpcy5wYXR0ZXJuLmZpbHRlci52YWx1ZV9iZWxvdyAhPT0gXCJcIiB8fCB0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2Fib3ZlICE9PSBcIlwiKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYmVsb3cgIT09IFwiXCIgJiYgdGhpcy52YWx1ZSA8ICsodGhpcy5wYXR0ZXJuLmZpbHRlci52YWx1ZV9iZWxvdykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmZpbHRlci52YWx1ZV9hYm92ZSAhPT0gXCJcIiAmJiB0aGlzLnZhbHVlID4gKyh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2Fib3ZlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd19uYW1lID0gdGhpcy5nZXRSb3dOYW1lKHRoaXMucGF0dGVybiwgdGhpcy5yb3dfY29sX3dyYXBwZXIsICh0aGlzLnNlcmllc05hbWUgfHwgXCJcIikudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMucm93X25hbWVfcmF3ID0gdGhpcy5nZXRSb3dOYW1lKHRoaXMucGF0dGVybiwgdGhpcy5yb3dfY29sX3dyYXBwZXIsICh0aGlzLnNlcmllc05hbWUgfHwgXCJcIikudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMuY29sX25hbWUgPSB0aGlzLmdldENvbE5hbWUodGhpcy5wYXR0ZXJuLCB0aGlzLnJvd19jb2xfd3JhcHBlciwgKHRoaXMuc2VyaWVzTmFtZSB8fCBcIlwiKS50b1N0cmluZygpLCB0aGlzLnJvd19uYW1lKTtcbiAgICAgICAgdGhpcy50aHJlc2hvbGRzID0gdGhpcy5nZXRUaHJlc2hvbGRzKHRlbXBsYXRlU3J2LCBzY29wZWRWYXJzKTtcbiAgICAgICAgdGhpcy5jb2xvcl9iZyA9IHRoaXMuZ2V0QkdDb2xvcih0ZW1wbGF0ZVNydiwgc2NvcGVkVmFycyk7XG4gICAgICAgIHRoaXMuY29sb3JfdGV4dCA9IHRoaXMuZ2V0VGV4dENvbG9yKHRlbXBsYXRlU3J2LCBzY29wZWRWYXJzKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV92YWx1ZSA9IHRoaXMuZ2V0RGlzcGxheVZhbHVlVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy5wYXR0ZXJuLnRvb2x0aXBUZW1wbGF0ZSB8fCBcIlNlcmllcyA6IF9zZXJpZXNfIDxici8+Um93IE5hbWUgOiBfcm93X25hbWVfIDxici8+Q29sIE5hbWUgOiBfY29sX25hbWVfIDxici8+VmFsdWUgOiBfdmFsdWVfXCI7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMucGF0dGVybi5lbmFibGVfY2xpY2thYmxlX2NlbGxzID8gdGhpcy5wYXR0ZXJuLmNsaWNrYWJsZV9jZWxsc19saW5rIHx8IFwiI1wiIDogXCIjXCI7XG4gICAgICAgIGlmICh0aGlzLmxpbmsgIT09IFwiI1wiKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IHRpbWVTcnYudGltZVJhbmdlRm9yVXJsKCk7XG4gICAgICAgICAgICB0aGlzLmxpbmsgKz0gKHRoaXMubGluay5pbmRleE9mKFwiP1wiKSA+IC0xID8gYCZmcm9tPSR7cmFuZ2UuZnJvbX1gIDogYD9mcm9tPSR7cmFuZ2UuZnJvbX1gKTtcbiAgICAgICAgICAgIHRoaXMubGluayArPSBgJnRvPSR7cmFuZ2UudG99YDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcGxhY2VUb2tlbnModGVtcGxhdGVTcnYsIHNjb3BlZFZhcnMsIHNlcmllcyk7XG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIH1cbiAgICBwcml2YXRlIGdldFRocmVzaG9sZHModGVtcGxhdGVTcnY6IGFueSwgc2NvcGVkVmFyczogYW55KSB7XG4gICAgICAgIGxldCB0aHJlc2hvbGRzID0gdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnBhdHRlcm4udGhyZXNob2xkcywgc2NvcGVkVmFycykuc3BsaXQoXCIsXCIpLm1hcChkID0+ICtkKTtcbiAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzKSB7XG4gICAgICAgICAgICBsZXQgbWV0cmljcmVjaXZlZFRpbWVTdGFtcCA9IHRoaXMuY3VycmVudFRpbWVTdGFtcCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgbGV0IG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXBfaW5udW1iZXIgPSBtZXRyaWNyZWNpdmVkVGltZVN0YW1wLmdldEhvdXJzKCkgKiAxMDAgKyBtZXRyaWNyZWNpdmVkVGltZVN0YW1wLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgICAgIGxldCB3ZWVrZGF5cyA9IFtcInN1blwiLCBcIm1vblwiLCBcInR1ZVwiLCBcIndlZFwiLCBcInRodVwiLCBcImZyaVwiLCBcInNhdFwiXTtcbiAgICAgICAgICAgIF8uZWFjaCh0aGlzLnBhdHRlcm4udGltZV9iYXNlZF90aHJlc2hvbGRzLCAodGJ0eCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0YnR4ICYmIHRidHguZnJvbSAmJiB0YnR4LnRvICYmIHRidHguZW5hYmxlZERheXMgJiZcbiAgICAgICAgICAgICAgICAgICAgKG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXBfaW5udW1iZXIgPj0gKyh0YnR4LmZyb20pKSAmJlxuICAgICAgICAgICAgICAgICAgICAobWV0cmljcmVjaXZlZFRpbWVTdGFtcF9pbm51bWJlciA8PSArKHRidHgudG8pKSAmJlxuICAgICAgICAgICAgICAgICAgICAodGJ0eC5lbmFibGVkRGF5cy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2Vla2RheXNbbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXREYXkoKV0pID4gLTEpICYmXG4gICAgICAgICAgICAgICAgICAgIHRidHgudGhyZXNob2xkXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZHMgPSAodGJ0eC50aHJlc2hvbGQgKyBcIlwiKS5zcGxpdChcIixcIikubWFwKGQgPT4gK2QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJlc2hvbGRzO1xuICAgIH1cbiAgICBwcml2YXRlIGdldEJHQ29sb3IodGVtcGxhdGVTcnY6IGFueSwgc2NvcGVkVmFyczogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGJnQ29sb3IgPSBcInRyYW5zcGFyZW50XCI7XG4gICAgICAgIGlmIChfLmlzTmFOKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGJnQ29sb3IgPSB0aGlzLnBhdHRlcm4ubnVsbF9jb2xvciB8fCBcImRhcmtyZWRcIjtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4ubnVsbF9jb2xvciA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgIGJnQ29sb3IgPSBcInRyYW5zcGFyZW50XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiZ0NvbG9yID0gdGhpcy5wYXR0ZXJuLmRlZmF1bHRCR0NvbG9yIHx8IGJnQ29sb3I7XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV9iZ0NvbG9yICYmIHRoaXMucGF0dGVybi5iZ0NvbG9ycykge1xuICAgICAgICAgICAgICAgIGxldCBsaXN0X29mX2JnQ29sb3JzX2Jhc2VkX29uX3RocmVzaG9sZHMgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMucGF0dGVybi5iZ0NvbG9ycywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpO1xuICAgICAgICAgICAgICAgIGJnQ29sb3IgPSBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCh0aGlzLnRocmVzaG9sZHMsIGxpc3Rfb2ZfYmdDb2xvcnNfYmFzZWRfb25fdGhyZXNob2xkcywgdGhpcy52YWx1ZSwgYmdDb2xvcik7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX2JnQ29sb3Jfb3ZlcnJpZGVzICYmIHRoaXMucGF0dGVybi5iZ0NvbG9yc19vdmVycmlkZXMgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBsZXQgX2JnQ29sb3JzX292ZXJyaWRlcyA9IHRlbXBsYXRlU3J2LnJlcGxhY2UodGhpcy5wYXR0ZXJuLmJnQ29sb3JzX292ZXJyaWRlcywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpLmZpbHRlcihjb24gPT4gY29uLmluZGV4T2YoXCItPlwiKSkubWFwKGNvbiA9PiBjb24uc3BsaXQoXCItPlwiKSkuZmlsdGVyKGNvbiA9PiArKGNvblswXSkgPT09IHRoaXMudmFsdWUpLm1hcChjb24gPT4gY29uWzFdKTtcbiAgICAgICAgICAgICAgICBpZiAoX2JnQ29sb3JzX292ZXJyaWRlcy5sZW5ndGggPiAwICYmIF9iZ0NvbG9yc19vdmVycmlkZXNbMF0gIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgYmdDb2xvciA9IChcIlwiICsgX2JnQ29sb3JzX292ZXJyaWRlc1swXSkudHJpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplQ29sb3IoYmdDb2xvcik7XG4gICAgfVxuICAgIHByaXZhdGUgZ2V0VGV4dENvbG9yKHRlbXBsYXRlU3J2OiBhbnksIHNjb3BlZFZhcnM6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0ZXh0Q29sb3IgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInRoZW1lLWxpZ2h0XCIpID8gXCJibGFja1wiIDogXCJ3aGl0ZVwiO1xuICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0ZXh0Q29sb3IgPSB0aGlzLnBhdHRlcm4ubnVsbF90ZXh0Y29sb3IgfHwgdGV4dENvbG9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGV4dENvbG9yID0gdGhpcy5wYXR0ZXJuLmRlZmF1bHRUZXh0Q29sb3IgfHwgdGV4dENvbG9yO1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdGV4dENvbG9yICYmIHRoaXMucGF0dGVybi50ZXh0Q29sb3JzKSB7XG4gICAgICAgICAgICAgICAgbGV0IGxpc3Rfb2ZfdGV4dENvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzID0gdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnBhdHRlcm4udGV4dENvbG9ycywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpO1xuICAgICAgICAgICAgICAgIHRleHRDb2xvciA9IGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkKHRoaXMudGhyZXNob2xkcywgbGlzdF9vZl90ZXh0Q29sb3JzX2Jhc2VkX29uX3RocmVzaG9sZHMsIHRoaXMudmFsdWUsIHRleHRDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV90ZXh0Q29sb3Jfb3ZlcnJpZGVzICYmIHRoaXMucGF0dGVybi50ZXh0Q29sb3JzX292ZXJyaWRlcyAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgIGxldCBfdGV4dENvbG9yc19vdmVycmlkZXMgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMucGF0dGVybi50ZXh0Q29sb3JzX292ZXJyaWRlcywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpLmZpbHRlcihjb24gPT4gY29uLmluZGV4T2YoXCItPlwiKSkubWFwKGNvbiA9PiBjb24uc3BsaXQoXCItPlwiKSkuZmlsdGVyKGNvbiA9PiArKGNvblswXSkgPT09IHRoaXMudmFsdWUpLm1hcChjb24gPT4gY29uWzFdKTtcbiAgICAgICAgICAgICAgICBpZiAoX3RleHRDb2xvcnNfb3ZlcnJpZGVzLmxlbmd0aCA+IDAgJiYgX3RleHRDb2xvcnNfb3ZlcnJpZGVzWzBdICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRDb2xvciA9IChcIlwiICsgX3RleHRDb2xvcnNfb3ZlcnJpZGVzWzBdKS50cmltKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVDb2xvcih0ZXh0Q29sb3IpO1xuICAgIH1cbiAgICBwcml2YXRlIGdldERpc3BsYXlWYWx1ZVRlbXBsYXRlKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0ZW1wbGF0ZSA9IFwiX3ZhbHVlX1wiO1xuICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IHRoaXMucGF0dGVybi5udWxsX3ZhbHVlIHx8IFwiTm8gZGF0YVwiO1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5udWxsX3ZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcGxhdGUgPSB0aGlzLnBhdHRlcm4uZGlzcGxheVRlbXBsYXRlIHx8IHRlbXBsYXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRyYW5zZm9ybV92YWx1ZXMgPSB0aGlzLnBhdHRlcm4udHJhbnNmb3JtX3ZhbHVlcy5zcGxpdChcInxcIik7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCh0aGlzLnRocmVzaG9sZHMsIHRyYW5zZm9ybV92YWx1ZXMsIHRoaXMudmFsdWUsIHRlbXBsYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMgJiYgdGhpcy5wYXR0ZXJuLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcyA9IHRoaXMucGF0dGVybi50cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcy5zcGxpdChcInxcIikuZmlsdGVyKGNvbiA9PiBjb24uaW5kZXhPZihcIi0+XCIpKS5tYXAoY29uID0+IGNvbi5zcGxpdChcIi0+XCIpKS5maWx0ZXIoY29uID0+ICsoY29uWzBdKSA9PT0gdGhpcy52YWx1ZSkubWFwKGNvbiA9PiBjb25bMV0pO1xuICAgICAgICAgICAgICAgIGlmIChfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMubGVuZ3RoID4gMCAmJiBfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXNbMF0gIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUgPSAoXCJcIiArIF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlc1swXSkudHJpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybSB8fCB0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IHRoaXMuc2VyaWVzTmFtZS5zcGxpdCh0aGlzLnBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cCh0aGlzLnJvd19jb2xfd3JhcHBlciArIGkgKyB0aGlzLnJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XG4gICAgICAgICAgICAgICAgfSwgdGVtcGxhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjbGVhbnVwKCkge1xuICAgICAgICBpZiAodGhpcy5kZWJ1Z19tb2RlICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zZXJpZXNOYW1lO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGF0dGVybjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRocmVzaG9sZHM7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5kZWNpbWFscztcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMudGVtcGxhdGVfcm93X25hbWU7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy50ZW1wbGF0ZV92YWx1ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlX2Zvcm1hdHRlZDtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRUaW1lU3RhbXA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRSb3dOYW1lKHBhdHRlcm4sIHJvd19jb2xfd3JhcHBlcjogc3RyaW5nLCBzZXJpZXNOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcm93X25hbWUgPSBwYXR0ZXJuLnJvd19uYW1lO1xuICAgICAgICByb3dfbmFtZSA9IHNlcmllc05hbWUuc3BsaXQocGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLnJlZHVjZSgociwgaXQsIGkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cChyb3dfY29sX3dyYXBwZXIgKyBpICsgcm93X2NvbF93cmFwcGVyLCBcImdcIiksIGl0KTtcbiAgICAgICAgfSwgcm93X25hbWUpO1xuICAgICAgICBpZiAoc2VyaWVzTmFtZS5zcGxpdChwYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByb3dfbmFtZSA9IHNlcmllc05hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZSA9IHJvd19uYW1lO1xuICAgICAgICByZXR1cm4gcm93X25hbWU7XG4gICAgfVxuICAgIHByaXZhdGUgZ2V0Q29sTmFtZShwYXR0ZXJuLCByb3dfY29sX3dyYXBwZXI6IHN0cmluZywgc2VyaWVzTmFtZTogc3RyaW5nLCByb3dfbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNvbF9uYW1lID0gcGF0dGVybi5jb2xfbmFtZTtcbiAgICAgICAgY29sX25hbWUgPSBzZXJpZXNOYW1lLnNwbGl0KHBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gci5yZXBsYWNlKG5ldyBSZWdFeHAocm93X2NvbF93cmFwcGVyICsgaSArIHJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XG4gICAgICAgIH0sIGNvbF9uYW1lKTtcbiAgICAgICAgaWYgKHNlcmllc05hbWUuc3BsaXQocGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLmxlbmd0aCA9PT0gMSB8fCByb3dfbmFtZSA9PT0gc2VyaWVzTmFtZSkge1xuICAgICAgICAgICAgY29sX25hbWUgPSBwYXR0ZXJuLmNvbF9uYW1lIHx8IFwiVmFsdWVcIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lID0gY29sX25hbWU7XG4gICAgICAgIHJldHVybiBjb2xfbmFtZTtcbiAgICB9XG4gICAgcHJpdmF0ZSByZXBsYWNlVG9rZW5zKHRlbXBsYXRlU3J2OiBhbnksIHNjb3BlZFZhcnM6IGFueSwgc2VyaWVzOiBhbnkpIHtcbiAgICAgICAgLy8gY29sbmFtZXMgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgbGlua1xuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLnNlcmllc05hbWUuc3BsaXQodGhpcy5wYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikucmVkdWNlKChyLCBpdCwgaSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHIucmVwbGFjZShuZXcgUmVnRXhwKHRoaXMucm93X2NvbF93cmFwcGVyICsgaSArIHRoaXMucm93X2NvbF93cmFwcGVyLCBcImdcIiksIGl0KTtcbiAgICAgICAgfSwgdGhpcy5saW5rKTtcbiAgICAgICAgLy8gX3Nlcmllc18gY2FuIGJlIHNwZWNpZmllZCBpbiBSb3csIENvbCwgRGlzcGxheSBWYWx1ZSwgVG9vbHRpcCAmIExpbmtcbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHRoaXMudGVtcGxhdGVfcm93X25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMuY29sX25hbWUgPSB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9zZXJpZXNfXCIsIFwiZ1wiKSwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKS50cmltKCkpO1xuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKS50cmltKCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLnRlbXBsYXRlX3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9zZXJpZXNfXCIsIFwiZ1wiKSwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICAvLyBfcm93X25hbWVfIGNhbiBiZSBzcGVjaWZpZWQgaW4gQ29sLCBEaXNwbGF5IFZhbHVlLCBUb29sdGlwICYgTGlua1xuICAgICAgICB0aGlzLmNvbF9uYW1lID0gdGhpcy5jb2xfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5yb3dfbmFtZS50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9yb3dfbmFtZV9cIiwgXCJnXCIpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2Vucyh0aGlzLnJvd19uYW1lLnRvU3RyaW5nKCkpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnModGhpcy5yb3dfbmFtZS50b1N0cmluZygpKS50cmltKCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIHRoaXMucm93X25hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIC8vIF9jb2xfbmFtZV8gY2FuIGJlIHNwZWNpZmllZCBpbiBSb3csIERpc3BsYXkgVmFsdWUsIFRvb2x0aXAgJiBMaW5rXG4gICAgICAgIHRoaXMucm93X25hbWUgPSB0aGlzLnJvd19uYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9jb2xfbmFtZV9cIiwgXCJnXCIpLCB0aGlzLmNvbF9uYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50b29sdGlwLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9jb2xfbmFtZV9cIiwgXCJnXCIpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2Vucyh0aGlzLmNvbF9uYW1lLnRvU3RyaW5nKCkpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfY29sX25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5jb2xfbmFtZS50b1N0cmluZygpKTtcbiAgICAgICAgLy8gX3ZhbHVlX3Jhd18gY2FuIGJlIHNwZWNpZmllZCBpbiBEaXNwbGF5IFZhbHVlLCBUb29sdGlwICYgTGlua1xuICAgICAgICBsZXQgdmFsdWVfcmF3ID0gXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX3Jhd19cIiwgXCJnXCIpLCB2YWx1ZV9yYXcpO1xuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX3Jhd19cIiwgXCJnXCIpLCB2YWx1ZV9yYXcpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX3Jhd19cIiwgXCJnXCIpLCB2YWx1ZV9yYXcpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX21pbl9yYXdfXCIsIFwiZ1wiKSwgc2VyaWVzLnN0YXRzLm1pbik7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfbWluX1wiLCBcImdcIiksIGdldF9mb3JtYXR0ZWRfdmFsdWUoc2VyaWVzLnN0YXRzLm1pbiwgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX21heF9yYXdfXCIsIFwiZ1wiKSwgc2VyaWVzLnN0YXRzLm1heCk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfbWF4X1wiLCBcImdcIiksIGdldF9mb3JtYXR0ZWRfdmFsdWUoc2VyaWVzLnN0YXRzLm1heCwgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX2F2Z19yYXdfXCIsIFwiZ1wiKSwgc2VyaWVzLnN0YXRzLmF2Zyk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfYXZnX1wiLCBcImdcIiksIGdldF9mb3JtYXR0ZWRfdmFsdWUoc2VyaWVzLnN0YXRzLmF2ZywgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX2N1cnJlbnRfcmF3X1wiLCBcImdcIiksIHNlcmllcy5zdGF0cy5jdXJyZW50KTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV9jdXJyZW50X1wiLCBcImdcIiksIGdldF9mb3JtYXR0ZWRfdmFsdWUoc2VyaWVzLnN0YXRzLmN1cnJlbnQsIHRoaXMuZGVjaW1hbHMsIHRoaXMucGF0dGVybi5mb3JtYXQpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV90b3RhbF9yYXdfXCIsIFwiZ1wiKSwgc2VyaWVzLnN0YXRzLnRvdGFsKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV90b3RhbF9cIiwgXCJnXCIpLCBnZXRfZm9ybWF0dGVkX3ZhbHVlKHNlcmllcy5zdGF0cy50b3RhbCwgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCkpO1xuICAgICAgICAvLyBfdmFsdWVfIGNhbiBiZSBzcGVjaWZpZWQgaW4gRGlzcGxheSBWYWx1ZSwgVG9vbHRpcCAmIExpbmtcbiAgICAgICAgbGV0IHZhbHVlX2Zvcm1hdHRlZCA9IF8uaXNOYU4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCA/IFwibnVsbFwiIDogdGhpcy52YWx1ZV9mb3JtYXR0ZWQudG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMubGluay5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfXCIsIFwiZ1wiKSwgdmFsdWVfZm9ybWF0dGVkKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50b29sdGlwLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV9cIiwgXCJnXCIpLCB2YWx1ZV9mb3JtYXR0ZWQpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX1wiLCBcImdcIiksIHZhbHVlX2Zvcm1hdHRlZCk7XG4gICAgICAgIC8vIEZBICYgSW1nIHRyYW5zZm9ybXMgY2FuIGJlIHNwZWNpZmllZCBpbiBSb3csIENvbCAmIERpc3BsYXkgVmFsdWVcbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHJlcGxhY2VUb2tlbnModGhpcy5yb3dfbmFtZSk7XG4gICAgICAgIHRoaXMuY29sX25hbWUgPSByZXBsYWNlVG9rZW5zKHRoaXMuY29sX25hbWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSByZXBsYWNlVG9rZW5zKHRoaXMuZGlzcGxheV92YWx1ZSk7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBHcmFmYW5hIFZhcmlhYmxlc1xuICAgICAgICB0aGlzLnJvd19uYW1lID0gdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnJvd19uYW1lLCBzY29wZWRWYXJzKTtcbiAgICAgICAgdGhpcy5jb2xfbmFtZSA9IHRlbXBsYXRlU3J2LnJlcGxhY2UodGhpcy5jb2xfbmFtZSwgc2NvcGVkVmFycyk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRlbXBsYXRlU3J2LnJlcGxhY2UodGhpcy5kaXNwbGF5X3ZhbHVlLCBzY29wZWRWYXJzKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnRvb2x0aXAsIHNjb3BlZFZhcnMpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMubGluaywgc2NvcGVkVmFycyk7XG4gICAgfVxufVxuXG5leHBvcnQge1xuICAgIEJvb21TZXJpZXNcbn07XG4iXX0= \ No newline at end of file diff --git a/dist/app/boom/BoomTimeBasedThreshold.js b/dist/app/boom/BoomTimeBasedThreshold.js index 71369e5..32c310d 100644 --- a/dist/app/boom/BoomTimeBasedThreshold.js +++ b/dist/app/boom/BoomTimeBasedThreshold.js @@ -1,22 +1,22 @@ -System.register([], function (exports_1, context_1) { - "use strict"; - var BoomTimeBasedThreshold; - var __moduleName = context_1 && context_1.id; - return { - setters: [], - execute: function () { - BoomTimeBasedThreshold = (function () { - function BoomTimeBasedThreshold() { - this.enabledDays = "Sun,Mon,Tue,Wed,Thu,Fri,Sat"; - this.from = "0000"; - this.name = "Early morning of everyday"; - this.threshold = "70,90"; - this.to = "0530"; - } - return BoomTimeBasedThreshold; - }()); - exports_1("BoomTimeBasedThreshold", BoomTimeBasedThreshold); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVRpbWVCYXNlZFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tVGltZUJhc2VkVGhyZXNob2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7WUFFQTtnQkFNSTtvQkFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO29CQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztvQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUNyQixDQUFDO2dCQUNMLDZCQUFDO1lBQUQsQ0FBQyxBQWJELElBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9IGZyb20gXCIuL2luZGV4XCI7XHJcblxyXG5jbGFzcyBCb29tVGltZUJhc2VkVGhyZXNob2xkIGltcGxlbWVudHMgSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQge1xyXG4gICAgcHVibGljIGVuYWJsZWREYXlzOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZnJvbTogc3RyaW5nO1xyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyB0aHJlc2hvbGQ6IHN0cmluZztcclxuICAgIHB1YmxpYyB0bzogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5lbmFibGVkRGF5cyA9IFwiU3VuLE1vbixUdWUsV2VkLFRodSxGcmksU2F0XCI7XHJcbiAgICAgICAgdGhpcy5mcm9tID0gXCIwMDAwXCI7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gXCJFYXJseSBtb3JuaW5nIG9mIGV2ZXJ5ZGF5XCI7XHJcbiAgICAgICAgdGhpcy50aHJlc2hvbGQgPSBcIjcwLDkwXCI7XHJcbiAgICAgICAgdGhpcy50byA9IFwiMDUzMFwiO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQge1xyXG4gICAgQm9vbVRpbWVCYXNlZFRocmVzaG9sZFxyXG59O1xyXG4iXX0= \ No newline at end of file +System.register([], function (exports_1, context_1) { + "use strict"; + var BoomTimeBasedThreshold; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + BoomTimeBasedThreshold = (function () { + function BoomTimeBasedThreshold() { + this.enabledDays = "Sun,Mon,Tue,Wed,Thu,Fri,Sat"; + this.from = "0000"; + this.name = "Early morning of everyday"; + this.threshold = "70,90"; + this.to = "0530"; + } + return BoomTimeBasedThreshold; + }()); + exports_1("BoomTimeBasedThreshold", BoomTimeBasedThreshold); + } + }; +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVRpbWVCYXNlZFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tVGltZUJhc2VkVGhyZXNob2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7WUFFQTtnQkFNSTtvQkFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO29CQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztvQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUNyQixDQUFDO2dCQUNMLDZCQUFDO1lBQUQsQ0FBQyxBQWJELElBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIEJvb21UaW1lQmFzZWRUaHJlc2hvbGQgaW1wbGVtZW50cyBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB7XG4gICAgcHVibGljIGVuYWJsZWREYXlzOiBzdHJpbmc7XG4gICAgcHVibGljIGZyb206IHN0cmluZztcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0aHJlc2hvbGQ6IHN0cmluZztcbiAgICBwdWJsaWMgdG86IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGVkRGF5cyA9IFwiU3VuLE1vbixUdWUsV2VkLFRodSxGcmksU2F0XCI7XG4gICAgICAgIHRoaXMuZnJvbSA9IFwiMDAwMFwiO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIkVhcmx5IG1vcm5pbmcgb2YgZXZlcnlkYXlcIjtcbiAgICAgICAgdGhpcy50aHJlc2hvbGQgPSBcIjcwLDkwXCI7XG4gICAgICAgIHRoaXMudG8gPSBcIjA1MzBcIjtcbiAgICB9XG59XG5cbmV4cG9ydCB7XG4gICAgQm9vbVRpbWVCYXNlZFRocmVzaG9sZFxufTtcbiJdfQ== \ No newline at end of file diff --git a/dist/app/boom/BoomUtils.js b/dist/app/boom/BoomUtils.js index 86ba69d..37e3b92 100644 --- a/dist/app/boom/BoomUtils.js +++ b/dist/app/boom/BoomUtils.js @@ -1,166 +1,166 @@ -System.register(["lodash"], function (exports_1, context_1) { - "use strict"; - var lodash_1, normalizeColor, parseMathExpression, getColor, replaceTokens, getActualNameWithoutTokens, getDecimalsForValue, getItemBasedOnThreshold; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - } - ], - execute: function () { - normalizeColor = function (color) { - if (color.toLowerCase() === "green") { - return "rgba(50, 172, 45, 0.97)"; - } - else if (color.toLowerCase() === "orange") { - return "rgba(237, 129, 40, 0.89)"; - } - else if (color.toLowerCase() === "red") { - return "rgba(245, 54, 54, 0.9)"; - } - else { - return color.toLowerCase(); - } - }; - exports_1("normalizeColor", normalizeColor); - parseMathExpression = function (expression, index) { - var valuestring = expression.replace(/\_/g, "").split(",")[index]; - var returnvalue = 0; - if (valuestring.indexOf("+") > -1) { - returnvalue = +(valuestring.split("+")[0]) + +(valuestring.split("+")[1]); - } - else if (valuestring.indexOf("-") > -1) { - returnvalue = +(valuestring.split("-")[0]) - +(valuestring.split("-")[1]); - } - else if (valuestring.indexOf("*") > -1) { - returnvalue = +(valuestring.split("*")[0]) * +(valuestring.split("*")[1]); - } - else if (valuestring.indexOf("/") > -1) { - returnvalue = +(valuestring.split("/")[0]) / +(valuestring.split("/")[1]); - } - else if (valuestring.indexOf("min") > -1) { - returnvalue = lodash_1.default.min([+(valuestring.split("min")[0]), +(valuestring.split("min")[1])]) || 0; - } - else if (valuestring.indexOf("max") > -1) { - returnvalue = lodash_1.default.max([+(valuestring.split("max")[0]), +(valuestring.split("max")[1])]) || 0; - } - else if (valuestring.indexOf("mean") > -1) { - returnvalue = lodash_1.default.mean([+(valuestring.split("avg")[0]), +(valuestring.split("avg")[1])]) || 0; - } - else { - returnvalue = +(valuestring); - } - return Math.round(+(returnvalue)); - }; - getColor = function (expression, index) { - var returnValue = (expression || "").split(",").length > index ? " style=\"color:" + normalizeColor(expression.replace(/\_/g, "").split(",")[index]) + "\" " : ""; - return returnValue; - }; - replaceTokens = function (value) { - if (!value) { - return value; - } - value = value + ""; - value = value.split(" ").map(function (a) { - if (a.startsWith("_fa-") && a.endsWith("_")) { - var returnvalue = ""; - var icon = a.replace(/\_/g, "").split(",")[0]; - var color = getColor(a, 1); - var repeatCount = a.split(",").length >= 3 ? parseMathExpression(a, 2) : 1; - returnvalue = (" ").repeat(repeatCount); - if (a.split(",").length >= 4) { - var maxColor = getColor(a, 3); - var maxLength = a.split(",").length >= 5 ? parseMathExpression(a, 4) : 0; - returnvalue += (" ").repeat(lodash_1.default.max([maxLength - repeatCount, 0]) || 0); - } - return returnvalue; - } - else if (a.startsWith("_img-") && a.endsWith("_")) { - a = a.slice(0, -1); - var imgUrl = a.replace("_img-", "").split(",")[0]; - var imgWidth = a.split(",").length > 1 ? a.replace("_img-", "").split(",")[1] : "20px"; - var imgHeight = a.split(",").length > 2 ? a.replace("_img-", "").split(",")[2] : "20px"; - var repeatCount = a.split(",").length > 3 ? +(a.replace("_img-", "").split(",")[3]) : 1; - a = ("").repeat(repeatCount); - } - return a; - }).join(" "); - return value; - }; - exports_1("replaceTokens", replaceTokens); - getActualNameWithoutTokens = function (value) { - if (!value) { - return value + ""; - } - value = value + ""; - return value.split(" ").map(function (a) { - if (a.startsWith("_fa-") && a.endsWith("_")) { - a = ""; - } - else if (a.startsWith("_img-") && a.endsWith("_")) { - a = ""; - } - return a; - }).join(" "); - }; - exports_1("getActualNameWithoutTokens", getActualNameWithoutTokens); - getDecimalsForValue = function (value, _decimals) { - if (lodash_1.default.isNumber(+_decimals)) { - var o = { - decimals: _decimals, - scaledDecimals: null - }; - return o; - } - var delta = value / 2; - var dec = -Math.floor(Math.log(delta) / Math.LN10); - var magn = Math.pow(10, -dec), norm = delta / magn, size; - if (norm < 1.5) { - size = 1; - } - else if (norm < 3) { - size = 2; - if (norm > 2.25) { - size = 2.5; - ++dec; - } - } - else if (norm < 7.5) { - size = 5; - } - else { - size = 10; - } - size *= magn; - if (Math.floor(value) === value) { - dec = 0; - } - var result = { - decimals: Math.max(0, dec), - scaledDecimals: Math.max(0, dec) - Math.floor(Math.log(size) / Math.LN10) + 2 - }; - return result; - }; - exports_1("getDecimalsForValue", getDecimalsForValue); - getItemBasedOnThreshold = function (thresholds, ranges, value, defaultValue) { - var c = defaultValue; - if (thresholds && ranges && typeof value === "number" && thresholds.length + 1 <= ranges.length) { - ranges = lodash_1.default.dropRight(ranges, ranges.length - thresholds.length - 1); - if (ranges[ranges.length - 1] === "") { - ranges[ranges.length - 1] = defaultValue; - } - for (var i = thresholds.length; i > 0; i--) { - if (value >= thresholds[i - 1]) { - return ranges[i]; - } - } - return lodash_1.default.first(ranges) || ""; - } - return c; - }; - exports_1("getItemBasedOnThreshold", getItemBasedOnThreshold); - } - }; -}); +System.register(["lodash"], function (exports_1, context_1) { + "use strict"; + var lodash_1, normalizeColor, parseMathExpression, getColor, replaceTokens, getActualNameWithoutTokens, getDecimalsForValue, getItemBasedOnThreshold; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (lodash_1_1) { + lodash_1 = lodash_1_1; + } + ], + execute: function () { + normalizeColor = function (color) { + if (color.toLowerCase() === "green") { + return "rgba(50, 172, 45, 0.97)"; + } + else if (color.toLowerCase() === "orange") { + return "rgba(237, 129, 40, 0.89)"; + } + else if (color.toLowerCase() === "red") { + return "rgba(245, 54, 54, 0.9)"; + } + else { + return color.toLowerCase(); + } + }; + exports_1("normalizeColor", normalizeColor); + parseMathExpression = function (expression, index) { + var valuestring = expression.replace(/\_/g, "").split(",")[index]; + var returnvalue = 0; + if (valuestring.indexOf("+") > -1) { + returnvalue = +(valuestring.split("+")[0]) + +(valuestring.split("+")[1]); + } + else if (valuestring.indexOf("-") > -1) { + returnvalue = +(valuestring.split("-")[0]) - +(valuestring.split("-")[1]); + } + else if (valuestring.indexOf("*") > -1) { + returnvalue = +(valuestring.split("*")[0]) * +(valuestring.split("*")[1]); + } + else if (valuestring.indexOf("/") > -1) { + returnvalue = +(valuestring.split("/")[0]) / +(valuestring.split("/")[1]); + } + else if (valuestring.indexOf("min") > -1) { + returnvalue = lodash_1.default.min([+(valuestring.split("min")[0]), +(valuestring.split("min")[1])]) || 0; + } + else if (valuestring.indexOf("max") > -1) { + returnvalue = lodash_1.default.max([+(valuestring.split("max")[0]), +(valuestring.split("max")[1])]) || 0; + } + else if (valuestring.indexOf("mean") > -1) { + returnvalue = lodash_1.default.mean([+(valuestring.split("avg")[0]), +(valuestring.split("avg")[1])]) || 0; + } + else { + returnvalue = +(valuestring); + } + return Math.round(+(returnvalue)); + }; + getColor = function (expression, index) { + var returnValue = (expression || "").split(",").length > index ? " style=\"color:" + normalizeColor(expression.replace(/\_/g, "").split(",")[index]) + "\" " : ""; + return returnValue; + }; + replaceTokens = function (value) { + if (!value) { + return value; + } + value = value + ""; + value = value.split(" ").map(function (a) { + if (a.startsWith("_fa-") && a.endsWith("_")) { + var returnvalue = ""; + var icon = a.replace(/\_/g, "").split(",")[0]; + var color = getColor(a, 1); + var repeatCount = a.split(",").length >= 3 ? parseMathExpression(a, 2) : 1; + returnvalue = (" ").repeat(repeatCount); + if (a.split(",").length >= 4) { + var maxColor = getColor(a, 3); + var maxLength = a.split(",").length >= 5 ? parseMathExpression(a, 4) : 0; + returnvalue += (" ").repeat(lodash_1.default.max([maxLength - repeatCount, 0]) || 0); + } + return returnvalue; + } + else if (a.startsWith("_img-") && a.endsWith("_")) { + a = a.slice(0, -1); + var imgUrl = a.replace("_img-", "").split(",")[0]; + var imgWidth = a.split(",").length > 1 ? a.replace("_img-", "").split(",")[1] : "20px"; + var imgHeight = a.split(",").length > 2 ? a.replace("_img-", "").split(",")[2] : "20px"; + var repeatCount = a.split(",").length > 3 ? +(a.replace("_img-", "").split(",")[3]) : 1; + a = ("").repeat(repeatCount); + } + return a; + }).join(" "); + return value; + }; + exports_1("replaceTokens", replaceTokens); + getActualNameWithoutTokens = function (value) { + if (!value) { + return value + ""; + } + value = value + ""; + return value.split(" ").map(function (a) { + if (a.startsWith("_fa-") && a.endsWith("_")) { + a = ""; + } + else if (a.startsWith("_img-") && a.endsWith("_")) { + a = ""; + } + return a; + }).join(" "); + }; + exports_1("getActualNameWithoutTokens", getActualNameWithoutTokens); + getDecimalsForValue = function (value, _decimals) { + if (lodash_1.default.isNumber(+_decimals)) { + var o = { + decimals: _decimals, + scaledDecimals: null + }; + return o; + } + var delta = value / 2; + var dec = -Math.floor(Math.log(delta) / Math.LN10); + var magn = Math.pow(10, -dec), norm = delta / magn, size; + if (norm < 1.5) { + size = 1; + } + else if (norm < 3) { + size = 2; + if (norm > 2.25) { + size = 2.5; + ++dec; + } + } + else if (norm < 7.5) { + size = 5; + } + else { + size = 10; + } + size *= magn; + if (Math.floor(value) === value) { + dec = 0; + } + var result = { + decimals: Math.max(0, dec), + scaledDecimals: Math.max(0, dec) - Math.floor(Math.log(size) / Math.LN10) + 2 + }; + return result; + }; + exports_1("getDecimalsForValue", getDecimalsForValue); + getItemBasedOnThreshold = function (thresholds, ranges, value, defaultValue) { + var c = defaultValue; + if (thresholds && ranges && typeof value === "number" && thresholds.length + 1 <= ranges.length) { + ranges = lodash_1.default.dropRight(ranges, ranges.length - thresholds.length - 1); + if (ranges[ranges.length - 1] === "") { + ranges[ranges.length - 1] = defaultValue; + } + for (var i = thresholds.length; i > 0; i--) { + if (value >= thresholds[i - 1]) { + return ranges[i]; + } + } + return lodash_1.default.first(ranges) || ""; + } + return c; + }; + exports_1("getItemBasedOnThreshold", getItemBasedOnThreshold); + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9ib29tL0Jvb21VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztZQUVNLGNBQWMsR0FBRyxVQUFVLEtBQUs7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRTtvQkFDakMsT0FBTyx5QkFBeUIsQ0FBQztpQkFDcEM7cUJBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO29CQUN6QyxPQUFPLDBCQUEwQixDQUFDO2lCQUNyQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLEVBQUU7b0JBQ3RDLE9BQU8sd0JBQXdCLENBQUM7aUJBQ25DO3FCQUFNO29CQUFFLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUFFO1lBQzFDLENBQUMsQ0FBQzs7WUFDSSxtQkFBbUIsR0FBRyxVQUFVLFVBQVUsRUFBRSxLQUFLO2dCQUNuRCxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMvQixXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3RTtxQkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxD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cEI7cUJBQ0o7b0JBQ0QsT0FBTyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2hDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO1lBRWIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xyXG5cclxuY29uc3Qgbm9ybWFsaXplQ29sb3IgPSBmdW5jdGlvbiAoY29sb3IpIHtcclxuICAgIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpID09PSBcImdyZWVuXCIpIHtcclxuICAgICAgICByZXR1cm4gXCJyZ2JhKDUwLCAxNzIsIDQ1LCAwLjk3KVwiO1xyXG4gICAgfSBlbHNlIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpID09PSBcIm9yYW5nZVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIFwicmdiYSgyMzcsIDEyOSwgNDAsIDAuODkpXCI7XHJcbiAgICB9IGVsc2UgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkgPT09IFwicmVkXCIpIHtcclxuICAgICAgICByZXR1cm4gXCJyZ2JhKDI0NSwgNTQsIDU0LCAwLjkpXCI7XHJcbiAgICB9IGVsc2UgeyByZXR1cm4gY29sb3IudG9Mb3dlckNhc2UoKTsgfVxyXG59O1xyXG5jb25zdCBwYXJzZU1hdGhFeHByZXNzaW9uID0gZnVuY3Rpb24gKGV4cHJlc3Npb24sIGluZGV4KTogbnVtYmVyIHtcclxuICAgIGxldCB2YWx1ZXN0cmluZyA9IGV4cHJlc3Npb24ucmVwbGFjZSgvXFxfL2csIFwiXCIpLnNwbGl0KFwiLFwiKVtpbmRleF07XHJcbiAgICBsZXQgcmV0dXJudmFsdWUgPSAwO1xyXG4gICAgaWYgKHZhbHVlc3RyaW5nLmluZGV4T2YoXCIrXCIpID4gLTEpIHtcclxuICAgICAgICByZXR1cm52YWx1ZSA9ICsodmFsdWVzdHJpbmcuc3BsaXQoXCIrXCIpWzBdKSArICsodmFsdWVzdHJpbmcuc3BsaXQoXCIrXCIpWzFdKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZihcIi1cIikgPiAtMSkge1xyXG4gICAgICAgIHJldHVybnZhbHVlID0gKyh2YWx1ZXN0cmluZy5zcGxpdChcIi1cIilbMF0pIC0gKyh2YWx1ZXN0cmluZy5zcGxpdChcIi1cIilbMV0pO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZXN0cmluZy5pbmRleE9mKFwiKlwiKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJudmFsdWUgPSArKHZhbHVlc3RyaW5nLnNwbGl0KFwiKlwiKVswXSkgKiArKHZhbHVlc3RyaW5nLnNwbGl0KFwiKlwiKVsxXSk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlc3RyaW5nLmluZGV4T2YoXCIvXCIpID4gLTEpIHtcclxuICAgICAgICByZXR1cm52YWx1ZSA9ICsodmFsdWVzdHJpbmcuc3BsaXQoXCIvXCIpWzBdKSAvICsodmFsdWVzdHJpbmcuc3BsaXQoXCIvXCIpWzFdKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZihcIm1pblwiKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJudmFsdWUgPSBfLm1pbihbKyh2YWx1ZXN0cmluZy5zcGxpdChcIm1pblwiKVswXSksICsodmFsdWVzdHJpbmcuc3BsaXQoXCJtaW5cIilbMV0pXSkgfHwgMDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZihcIm1heFwiKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJudmFsdWUgPSBfLm1heChbKyh2YWx1ZXN0cmluZy5zcGxpdChcIm1heFwiKVswXSksICsodmFsdWVzdHJpbmcuc3BsaXQoXCJtYXhcIilbMV0pXSkgfHwgMDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZihcIm1lYW5cIikgPiAtMSkge1xyXG4gICAgICAgIHJldHVybnZhbHVlID0gXy5tZWFuKFsrKHZhbHVlc3RyaW5nLnNwbGl0KFwiYXZnXCIpWzBdKSwgKyh2YWx1ZXN0cmluZy5zcGxpdChcImF2Z1wiKVsxXSldKSB8fCAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm52YWx1ZSA9ICsodmFsdWVzdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoKyhyZXR1cm52YWx1ZSkpO1xyXG59O1xyXG5jb25zdCBnZXRDb2xvciA9IGZ1bmN0aW9uIChleHByZXNzaW9uLCBpbmRleCkge1xyXG4gICAgbGV0IHJldHVyblZhbHVlID0gKGV4cHJlc3Npb24gfHwgXCJcIikuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IGluZGV4ID8gYCBzdHlsZT1cImNvbG9yOiR7bm9ybWFsaXplQ29sb3IoZXhwcmVzc2lvbi5yZXBsYWNlKC9cXF8vZywgXCJcIikuc3BsaXQoXCIsXCIpW2luZGV4XSl9XCIgYCA6IFwiXCI7XHJcbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbn07XHJcbmNvbnN0IHJlcGxhY2VUb2tlbnMgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgIGlmICghdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9XHJcbiAgICB2YWx1ZSA9IHZhbHVlICsgXCJcIjtcclxuICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoXCIgXCIpLm1hcChhID0+IHtcclxuICAgICAgICBpZiAoYS5zdGFydHNXaXRoKFwiX2ZhLVwiKSAmJiBhLmVuZHNXaXRoKFwiX1wiKSkge1xyXG4gICAgICAgICAgICBsZXQgcmV0dXJudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICBsZXQgaWNvbiA9IGEucmVwbGFjZSgvXFxfL2csIFwiXCIpLnNwbGl0KFwiLFwiKVswXTtcclxuICAgICAgICAgICAgbGV0IGNvbG9yID0gZ2V0Q29sb3IoYSwgMSk7XHJcbiAgICAgICAgICAgIGxldCByZXBlYXRDb3VudCA9IGEuc3BsaXQoXCIsXCIpLmxlbmd0aCA+PSAzID8gcGFyc2VNYXRoRXhwcmVzc2lvbihhLCAyKSA6IDE7XHJcbiAgICAgICAgICAgIHJldHVybnZhbHVlID0gYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiICR7Y29sb3J9PjwvaT4gYC5yZXBlYXQocmVwZWF0Q291bnQpO1xyXG4gICAgICAgICAgICBpZiAoYS5zcGxpdChcIixcIikubGVuZ3RoID49IDQpIHtcclxuICAgICAgICAgICAgICAgIGxldCBtYXhDb2xvciA9IGdldENvbG9yKGEsIDMpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1heExlbmd0aCA9IGEuc3BsaXQoXCIsXCIpLmxlbmd0aCA+PSA1ID8gcGFyc2VNYXRoRXhwcmVzc2lvbihhLCA0KSA6IDA7XHJcbiAgICAgICAgICAgICAgICByZXR1cm52YWx1ZSArPSBgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgJHttYXhDb2xvcn0+PC9pPiBgLnJlcGVhdChfLm1heChbbWF4TGVuZ3RoIC0gcmVwZWF0Q291bnQsIDBdKSB8fCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJudmFsdWU7XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zdGFydHNXaXRoKFwiX2ltZy1cIikgJiYgYS5lbmRzV2l0aChcIl9cIikpIHtcclxuICAgICAgICAgICAgYSA9IGEuc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgICAgICBsZXQgaW1nVXJsID0gYS5yZXBsYWNlKFwiX2ltZy1cIiwgXCJcIikuc3BsaXQoXCIsXCIpWzBdO1xyXG4gICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBhLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAxID8gYS5yZXBsYWNlKFwiX2ltZy1cIiwgXCJcIikuc3BsaXQoXCIsXCIpWzFdIDogXCIyMHB4XCI7XHJcbiAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBhLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAyID8gYS5yZXBsYWNlKFwiX2ltZy1cIiwgXCJcIikuc3BsaXQoXCIsXCIpWzJdIDogXCIyMHB4XCI7XHJcbiAgICAgICAgICAgIGxldCByZXBlYXRDb3VudCA9IGEuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDMgPyArKGEucmVwbGFjZShcIl9pbWctXCIsIFwiXCIpLnNwbGl0KFwiLFwiKVszXSkgOiAxO1xyXG4gICAgICAgICAgICBhID0gYDxpbWcgd2lkdGg9XCIke2ltZ1dpZHRofVwiIGhlaWdodD1cIiR7aW1nSGVpZ2h0fVwiIHNyYz1cIiR7aW1nVXJsfVwiLz5gLnJlcGVhdChyZXBlYXRDb3VudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhO1xyXG4gICAgfSkuam9pbihcIiBcIik7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn07XHJcbmNvbnN0IGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zID0gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7IHJldHVybiB2YWx1ZSArIFwiXCI7IH1cclxuICAgIHZhbHVlID0gdmFsdWUgKyBcIlwiO1xyXG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiIFwiKS5tYXAoYSA9PiB7XHJcbiAgICAgICAgaWYgKGEuc3RhcnRzV2l0aChcIl9mYS1cIikgJiYgYS5lbmRzV2l0aChcIl9cIikpIHtcclxuICAgICAgICAgICAgYSA9IGBgO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zdGFydHNXaXRoKFwiX2ltZy1cIikgJiYgYS5lbmRzV2l0aChcIl9cIikpIHtcclxuICAgICAgICAgICAgYSA9IGBgO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYTtcclxuICAgIH0pLmpvaW4oXCIgXCIpO1xyXG59O1xyXG5jb25zdCBnZXREZWNpbWFsc0ZvclZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBfZGVjaW1hbHMpIHtcclxuICAgIGlmIChfLmlzTnVtYmVyKCtfZGVjaW1hbHMpKSB7XHJcbiAgICAgICAgbGV0IG86IE9iamVjdCA9IHtcclxuICAgICAgICAgICAgZGVjaW1hbHM6IF9kZWNpbWFscyxcclxuICAgICAgICAgICAgc2NhbGVkRGVjaW1hbHM6IG51bGxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkZWx0YSA9IHZhbHVlIC8gMjtcclxuICAgIGxldCBkZWMgPSAtTWF0aC5mbG9vcihNYXRoLmxvZyhkZWx0YSkgLyBNYXRoLkxOMTApO1xyXG5cclxuICAgIGxldCBtYWduID0gTWF0aC5wb3coMTAsIC1kZWMpLFxyXG4gICAgICAgIG5vcm0gPSBkZWx0YSAvIG1hZ24sIC8vIG5vcm0gaXMgYmV0d2VlbiAxLjAgYW5kIDEwLjBcclxuICAgICAgICBzaXplO1xyXG5cclxuICAgIGlmIChub3JtIDwgMS41KSB7XHJcbiAgICAgICAgc2l6ZSA9IDE7XHJcbiAgICB9IGVsc2UgaWYgKG5vcm0gPCAzKSB7XHJcbiAgICAgICAgc2l6ZSA9IDI7XHJcbiAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciAyLjUsIHJlcXVpcmVzIGFuIGV4dHJhIGRlY2ltYWxcclxuICAgICAgICBpZiAobm9ybSA+IDIuMjUpIHtcclxuICAgICAgICAgICAgc2l6ZSA9IDIuNTtcclxuICAgICAgICAgICAgKytkZWM7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChub3JtIDwgNy41KSB7XHJcbiAgICAgICAgc2l6ZSA9IDU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNpemUgPSAxMDtcclxuICAgIH1cclxuXHJcbiAgICBzaXplICo9IG1hZ247XHJcblxyXG4gICAgLy8gcmVkdWNlIHN0YXJ0aW5nIGRlY2ltYWxzIGlmIG5vdCBuZWVkZWRcclxuICAgIGlmIChNYXRoLmZsb29yKHZhbHVlKSA9PT0gdmFsdWUpIHtcclxuICAgICAgICBkZWMgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQ6IE9iamVjdCA9IHtcclxuICAgICAgICBkZWNpbWFsczogTWF0aC5tYXgoMCwgZGVjKSxcclxuICAgICAgICBzY2FsZWREZWNpbWFsczogTWF0aC5tYXgoMCwgZGVjKSAtIE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLkxOMTApICsgMlxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59O1xyXG5jb25zdCBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCA9IGZ1bmN0aW9uICh0aHJlc2hvbGRzLCByYW5nZXMsIHZhbHVlLCBkZWZhdWx0VmFsdWUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGMgPSBkZWZhdWx0VmFsdWU7XHJcbiAgICBpZiAodGhyZXNob2xkcyAmJiByYW5nZXMgJiYgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHRocmVzaG9sZHMubGVuZ3RoICsgMSA8PSByYW5nZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcmFuZ2VzID0gXy5kcm9wUmlnaHQocmFuZ2VzLCByYW5nZXMubGVuZ3RoIC0gdGhyZXNob2xkcy5sZW5ndGggLSAxKTtcclxuICAgICAgICBpZiAocmFuZ2VzW3Jhbmdlcy5sZW5ndGggLSAxXSA9PT0gXCJcIikge1xyXG4gICAgICAgICAgICByYW5nZXNbcmFuZ2VzLmxlbmd0aCAtIDFdID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gdGhyZXNob2xkcy5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID49IHRocmVzaG9sZHNbaSAtIDFdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2VzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBfLmZpcnN0KHJhbmdlcykgfHwgXCJcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBjO1xyXG5cclxufTtcclxuZXhwb3J0IHtcclxuICAgIG5vcm1hbGl6ZUNvbG9yLFxyXG4gICAgcmVwbGFjZVRva2VucyxcclxuICAgIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zLFxyXG4gICAgZ2V0RGVjaW1hbHNGb3JWYWx1ZSxcclxuICAgIGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkXHJcbn07XHJcbiJdfQ== \ No newline at end of file diff --git a/dist/app/boom/index.js b/dist/app/boom/index.js index a9b36cd..97de6a1 100644 --- a/dist/app/boom/index.js +++ b/dist/app/boom/index.js @@ -1,40 +1,40 @@ -System.register(["./BoomUtils", "./BoomTimeBasedThreshold", "./BoomPattern", "./BoomSeries", "./BoomOutput"], function (exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (BoomUtils_1_1) { - exports_1({ - "normalizeColor": BoomUtils_1_1["normalizeColor"], - "replaceTokens": BoomUtils_1_1["replaceTokens"], - "getActualNameWithoutTokens": BoomUtils_1_1["getActualNameWithoutTokens"], - "getDecimalsForValue": BoomUtils_1_1["getDecimalsForValue"], - "getItemBasedOnThreshold": BoomUtils_1_1["getItemBasedOnThreshold"] - }); - }, - function (BoomTimeBasedThreshold_1_1) { - exports_1({ - "BoomTimeBasedThreshold": BoomTimeBasedThreshold_1_1["BoomTimeBasedThreshold"] - }); - }, - function (BoomPattern_1_1) { - exports_1({ - "BoomPattern": BoomPattern_1_1["BoomPattern"] - }); - }, - function (BoomSeries_1_1) { - exports_1({ - "BoomSeries": BoomSeries_1_1["BoomSeries"] - }); - }, - function (BoomOutput_1_1) { - exports_1({ - "BoomOutput": BoomOutput_1_1["BoomOutput"] - }); - } - ], - execute: function () { - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElCb29tUGF0dGVybiwgSUJvb21TZXJpZXMsIElCb29tVGltZUJhc2VkVGhyZXNob2xkLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMsIElCb29tVGFibGUsIElCb29tSFRNTCwgSUJvb21DZWxsRGV0YWlscywgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyB9IGZyb20gXCIuL0Jvb20uaW50ZXJmYWNlXCI7XHJcbmV4cG9ydCB7IG5vcm1hbGl6ZUNvbG9yLCByZXBsYWNlVG9rZW5zLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucywgZ2V0RGVjaW1hbHNGb3JWYWx1ZSwgZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQgfSBmcm9tIFwiLi9Cb29tVXRpbHNcIjtcclxuZXhwb3J0IHsgQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9IGZyb20gXCIuL0Jvb21UaW1lQmFzZWRUaHJlc2hvbGRcIjtcclxuZXhwb3J0IHsgQm9vbVBhdHRlcm4gfSBmcm9tIFwiLi9Cb29tUGF0dGVyblwiO1xyXG5leHBvcnQgeyBCb29tU2VyaWVzIH0gZnJvbSBcIi4vQm9vbVNlcmllc1wiO1xyXG5leHBvcnQgeyBCb29tT3V0cHV0IH0gZnJvbSBcIi4vQm9vbU91dHB1dFwiO1xyXG4iXX0= \ No newline at end of file +System.register(["./BoomUtils", "./BoomTimeBasedThreshold", "./BoomPattern", "./BoomSeries", "./BoomOutput"], function (exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (BoomUtils_1_1) { + exports_1({ + "normalizeColor": BoomUtils_1_1["normalizeColor"], + "replaceTokens": BoomUtils_1_1["replaceTokens"], + "getActualNameWithoutTokens": BoomUtils_1_1["getActualNameWithoutTokens"], + "getDecimalsForValue": BoomUtils_1_1["getDecimalsForValue"], + "getItemBasedOnThreshold": BoomUtils_1_1["getItemBasedOnThreshold"] + }); + }, + function (BoomTimeBasedThreshold_1_1) { + exports_1({ + "BoomTimeBasedThreshold": BoomTimeBasedThreshold_1_1["BoomTimeBasedThreshold"] + }); + }, + function (BoomPattern_1_1) { + exports_1({ + "BoomPattern": BoomPattern_1_1["BoomPattern"] + }); + }, + function (BoomSeries_1_1) { + exports_1({ + "BoomSeries": BoomSeries_1_1["BoomSeries"] + }); + }, + function (BoomOutput_1_1) { + exports_1({ + "BoomOutput": BoomOutput_1_1["BoomOutput"] + }); + } + ], + execute: function () { + } + }; +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElCb29tUGF0dGVybiwgSUJvb21TZXJpZXMsIElCb29tVGltZUJhc2VkVGhyZXNob2xkLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMsIElCb29tVGFibGUsIElCb29tSFRNTCwgSUJvb21DZWxsRGV0YWlscywgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyB9IGZyb20gXCIuL0Jvb20uaW50ZXJmYWNlXCI7XG5leHBvcnQgeyBub3JtYWxpemVDb2xvciwgcmVwbGFjZVRva2VucywgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnMsIGdldERlY2ltYWxzRm9yVmFsdWUsIGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkIH0gZnJvbSBcIi4vQm9vbVV0aWxzXCI7XG5leHBvcnQgeyBCb29tVGltZUJhc2VkVGhyZXNob2xkIH0gZnJvbSBcIi4vQm9vbVRpbWVCYXNlZFRocmVzaG9sZFwiO1xuZXhwb3J0IHsgQm9vbVBhdHRlcm4gfSBmcm9tIFwiLi9Cb29tUGF0dGVyblwiO1xuZXhwb3J0IHsgQm9vbVNlcmllcyB9IGZyb20gXCIuL0Jvb21TZXJpZXNcIjtcbmV4cG9ydCB7IEJvb21PdXRwdXQgfSBmcm9tIFwiLi9Cb29tT3V0cHV0XCI7XG4iXX0= \ No newline at end of file diff --git a/dist/app/config.js b/dist/app/config.js index 76bf9f2..5523654 100644 --- a/dist/app/config.js +++ b/dist/app/config.js @@ -1,39 +1,39 @@ -System.register([], function (exports_1, context_1) { - "use strict"; - var plugin_id, value_name_options, textAlignmentOptions, config; - var __moduleName = context_1 && context_1.id; - return { - setters: [], - execute: function () { - plugin_id = "yesoreyeram-boomtable-panel"; - exports_1("plugin_id", plugin_id); - value_name_options = [ - { text: "Min", value: "min" }, - { text: "Max", value: "max" }, - { text: "Average", value: "avg" }, - { text: "Current", value: "current" }, - { value: 'last_time', text: 'Time of last data point' }, - { value: 'last_time_nonnull', text: 'Time of last non null data point' }, - { text: "Total", value: "total" } - ]; - exports_1("value_name_options", value_name_options); - textAlignmentOptions = ["left", "right", "center"]; - exports_1("textAlignmentOptions", textAlignmentOptions); - config = { - debug_mode: false, - error: undefined, - groupedData: undefined, - hide_first_column: false, - hide_headers: false, - panelDefaults: { - activePatternIndex: -1, - default_title_for_rows: "Metric", - patterns: [], - row_col_wrapper: "_", - } - }; - exports_1("config", config); - } - }; -}); +System.register([], function (exports_1, context_1) { + "use strict"; + var plugin_id, value_name_options, textAlignmentOptions, config; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + plugin_id = "yesoreyeram-boomtable-panel"; + exports_1("plugin_id", plugin_id); + value_name_options = [ + { text: "Min", value: "min" }, + { text: "Max", value: "max" }, + { text: "Average", value: "avg" }, + { text: "Current", value: "current" }, + { value: 'last_time', text: 'Time of last data point' }, + { value: 'last_time_nonnull', text: 'Time of last non null data point' }, + { text: "Total", value: "total" } + ]; + exports_1("value_name_options", value_name_options); + textAlignmentOptions = ["left", "right", "center"]; + exports_1("textAlignmentOptions", textAlignmentOptions); + config = { + debug_mode: false, + error: undefined, + groupedData: undefined, + hide_first_column: false, + hide_headers: false, + panelDefaults: { + activePatternIndex: -1, + default_title_for_rows: "Metric", + patterns: [], + row_col_wrapper: "_", + } + }; + exports_1("config", config); + } + }; +}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztZQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQzs7WUFDMUMsa0JBQWtCLEdBQUc7Z0JBQ3ZCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM3QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDN0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ2pDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNyQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFO2dCQUN2RCxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsa0NBQWtDLEVBQUU7Z0JBQ3hFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQ3BDLENBQUM7O1lBQ0ksb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDOztZQUNuRCxNQUFNLEdBQVE7Z0JBQ2hCLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixhQUFhLEVBQUU7b0JBQ1gsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO29CQUN0QixzQkFBc0IsRUFBRSxRQUFRO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsR0FBRztpQkFDdkI7YUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGx1Z2luX2lkID0gXCJ5ZXNvcmV5ZXJhbS1ib29tdGFibGUtcGFuZWxcIjtcclxuY29uc3QgdmFsdWVfbmFtZV9vcHRpb25zID0gW1xyXG4gICAgeyB0ZXh0OiBcIk1pblwiLCB2YWx1ZTogXCJtaW5cIiB9LFxyXG4gICAgeyB0ZXh0OiBcIk1heFwiLCB2YWx1ZTogXCJtYXhcIiB9LFxyXG4gICAgeyB0ZXh0OiBcIkF2ZXJhZ2VcIiwgdmFsdWU6IFwiYXZnXCIgfSxcclxuICAgIHsgdGV4dDogXCJDdXJyZW50XCIsIHZhbHVlOiBcImN1cnJlbnRcIiB9LFxyXG4gICAgeyB2YWx1ZTogJ2xhc3RfdGltZScsIHRleHQ6ICdUaW1lIG9mIGxhc3QgZGF0YSBwb2ludCcgfSxcclxuICAgIHsgdmFsdWU6ICdsYXN0X3RpbWVfbm9ubnVsbCcsIHRleHQ6ICdUaW1lIG9mIGxhc3Qgbm9uIG51bGwgZGF0YSBwb2ludCcgfSxcclxuICAgIHsgdGV4dDogXCJUb3RhbFwiLCB2YWx1ZTogXCJ0b3RhbFwiIH1cclxuXTtcclxuY29uc3QgdGV4dEFsaWdubWVudE9wdGlvbnMgPSBbXCJsZWZ0XCIsIFwicmlnaHRcIiwgXCJjZW50ZXJcIl07XHJcbmNvbnN0IGNvbmZpZzogYW55ID0ge1xyXG4gICAgZGVidWdfbW9kZTogZmFsc2UsXHJcbiAgICBlcnJvcjogdW5kZWZpbmVkLFxyXG4gICAgZ3JvdXBlZERhdGE6IHVuZGVmaW5lZCxcclxuICAgIGhpZGVfZmlyc3RfY29sdW1uOiBmYWxzZSxcclxuICAgIGhpZGVfaGVhZGVyczogZmFsc2UsXHJcbiAgICBwYW5lbERlZmF1bHRzOiB7XHJcbiAgICAgICAgYWN0aXZlUGF0dGVybkluZGV4OiAtMSxcclxuICAgICAgICBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiBcIk1ldHJpY1wiLFxyXG4gICAgICAgIHBhdHRlcm5zOiBbXSxcclxuICAgICAgICByb3dfY29sX3dyYXBwZXI6IFwiX1wiLFxyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHBsdWdpbl9pZCxcclxuICAgIHZhbHVlX25hbWVfb3B0aW9ucyxcclxuICAgIHRleHRBbGlnbm1lbnRPcHRpb25zLFxyXG4gICAgY29uZmlnXHJcbn07XHJcbiJdfQ== \ No newline at end of file diff --git a/dist/module.js b/dist/module.js index b704953..a626c56 100644 --- a/dist/module.js +++ b/dist/module.js @@ -1,188 +1,189 @@ -System.register(["lodash", "app/core/utils/kbn", "app/plugins/sdk", "./app/boom/index", "./app/config", "./app/app"], function (exports_1, context_1) { - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - var lodash_1, kbn_1, sdk_1, index_1, config_1, app_1, GrafanaBoomTableCtrl; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - }, - function (kbn_1_1) { - kbn_1 = kbn_1_1; - }, - function (sdk_1_1) { - sdk_1 = sdk_1_1; - }, - function (index_1_1) { - index_1 = index_1_1; - }, - function (config_1_1) { - config_1 = config_1_1; - }, - function (app_1_1) { - app_1 = app_1_1; - } - ], - execute: function () { - sdk_1.loadPluginCss({ - dark: "plugins/" + config_1.plugin_id + "/css/default.dark.css", - light: "plugins/" + config_1.plugin_id + "/css/default.light.css" - }); - GrafanaBoomTableCtrl = (function (_super) { - __extends(GrafanaBoomTableCtrl, _super); - function GrafanaBoomTableCtrl($scope, $injector, $sce) { - var _this = _super.call(this, $scope, $injector) || this; - _this.unitFormats = kbn_1.default.getUnitFormats(); - _this.valueNameOptions = config_1.value_name_options; - _this.textAlignmentOptions = config_1.textAlignmentOptions; - lodash_1.default.defaults(_this.panel, config_1.config.panelDefaults); - _this.panel.defaultPattern = _this.panel.defaultPattern || app_1.defaultPattern; - _this.$sce = $sce; - _this.templateSrv = $injector.get("templateSrv"); - _this.timeSrv = $injector.get("timeSrv"); - _this.updatePrototypes(); - _this.events.on("data-received", _this.onDataReceived.bind(_this)); - _this.events.on("data-snapshot-load", _this.onDataReceived.bind(_this)); - _this.events.on("init-edit-mode", _this.onInitEditMode.bind(_this)); - _this.panel.activePatternIndex = _this.panel.activePatternIndex === -1 ? _this.panel.patterns.length : _this.panel.activePatternIndex; - return _this; - } - GrafanaBoomTableCtrl.prototype.updatePrototypes = function () { - Object.setPrototypeOf(this.panel.defaultPattern, index_1.BoomPattern.prototype); - this.panel.patterns.map(function (pattern) { - Object.setPrototypeOf(pattern, index_1.BoomPattern.prototype); - return pattern; - }); - }; - GrafanaBoomTableCtrl.prototype.onDataReceived = function (data) { - this.dataReceived = data; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.onInitEditMode = function () { - this.addEditorTab("Patterns", "public/plugins/" + config_1.plugin_id + "/partials/editor.html", 2); - }; - GrafanaBoomTableCtrl.prototype.addPattern = function () { - var newPattern = new index_1.BoomPattern({ - row_col_wrapper: this.panel.row_col_wrapper - }); - this.panel.patterns.push(newPattern); - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : (this.panel.patterns.length - 1); - this.render(); - }; - GrafanaBoomTableCtrl.prototype.removePattern = function (index) { - this.panel.patterns.splice(index, 1); - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : ((this.panel.patterns && this.panel.patterns.length > 0) ? (this.panel.patterns.length - 1) : -1); - this.render(); - }; - GrafanaBoomTableCtrl.prototype.movePattern = function (direction, index) { - var tempElement = this.panel.patterns[Number(index)]; - if (direction === "UP") { - this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) - 1]; - this.panel.patterns[Number(index) - 1] = tempElement; - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) - 1; - } - if (direction === "DOWN") { - this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) + 1]; - this.panel.patterns[Number(index) + 1] = tempElement; - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) + 1; - } - this.render(); - }; - GrafanaBoomTableCtrl.prototype.clonePattern = function (index) { - var copiedPattern = Object.assign({}, this.panel.patterns[Number(index)]); - Object.setPrototypeOf(copiedPattern, index_1.BoomPattern.prototype); - this.panel.patterns.push(copiedPattern); - this.render(); - }; - GrafanaBoomTableCtrl.prototype.sortByHeader = function (headerIndex) { - this.panel.sorting_props = this.panel.sorting_props || { - col_index: -1, - direction: "desc" - }; - this.panel.sorting_props.col_index = headerIndex; - this.panel.sorting_props.direction = this.panel.sorting_props.direction === "asc" ? "desc" : "asc"; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.limitText = function (text, maxlength) { - if (text.split('').length > maxlength) { - text = text.substring(0, Number(maxlength) - 3) + "..."; - } - return text; - }; - GrafanaBoomTableCtrl.prototype.link = function (scope, elem, attrs, ctrl) { - this.scope = scope; - this.elem = elem; - this.attrs = attrs; - this.ctrl = ctrl; - this.panel = ctrl.panel; - this.panel.sorting_props = this.panel.sorting_props || { - col_index: -1, - direction: "desc" - }; - }; - GrafanaBoomTableCtrl.templateUrl = "partials/module.html"; - return GrafanaBoomTableCtrl; - }(sdk_1.MetricsPanelCtrl)); - exports_1("PanelCtrl", GrafanaBoomTableCtrl); - GrafanaBoomTableCtrl.prototype.render = function () { - var _this = this; - if (this.dataReceived) { - var outputdata = this.dataReceived.map(function (seriesData) { - var seriesOptions = { - debug_mode: _this.panel.debug_mode, - row_col_wrapper: _this.panel.row_col_wrapper || "_" - }; - return new index_1.BoomSeries(seriesData, _this.panel.defaultPattern, _this.panel.patterns, seriesOptions, _this.panel.scopedVars, _this.templateSrv, _this.timeSrv); - }); - var boomTableTransformationOptions = { - non_matching_cells_color_bg: this.panel.non_matching_cells_color_bg, - non_matching_cells_color_text: this.panel.non_matching_cells_color_text, - non_matching_cells_text: this.panel.non_matching_cells_text, - }; - var boomtabledata = app_1.seriesToTable(outputdata, boomTableTransformationOptions); - var renderingOptions = { - default_title_for_rows: this.panel.default_title_for_rows || config_1.config.default_title_for_rows, - first_column_link: this.panel.first_column_link || "#", - hide_first_column: this.panel.hide_first_column, - hide_headers: this.panel.hide_headers, - text_alignment_firstcolumn: this.panel.text_alignment_firstcolumn, - text_alignment_values: this.panel.text_alignment_values - }; - var boom_output = new index_1.BoomOutput(renderingOptions); - this.outdata = { - cols_found: boomtabledata.cols_found.map(function (col) { return _this.$sce.trustAsHtml(col); }) - }; - var renderingdata = boom_output.getDataAsHTML(boomtabledata, this.panel.sorting_props); - this.elem.find('#boomtable_output_body').html("" + renderingdata.body); - this.elem.find('#boomtable_output_body_debug').html(this.panel.debug_mode ? boom_output.getDataAsDebugHTML(outputdata) : ""); - this.elem.find("[data-toggle='tooltip']").tooltip({ - boundary: "scrollParent" - }); - var rootElem = this.elem.find('.table-panel-scroll'); - var originalHeight = this.ctrl.height; - if (isNaN(originalHeight)) { - if (this.ctrl && this.ctrl.elem && this.ctrl.elem[0] && this.ctrl.elem[0].clientHeight) { - originalHeight = this.ctrl.elem[0].clientHeight; - } - } - var maxheightofpanel = this.panel.debug_mode ? originalHeight - 111 : originalHeight - 31; - rootElem.css({ 'max-height': maxheightofpanel + "px" }); - } - }; - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFVQSxtQkFBYSxDQUFDO2dCQUNaLElBQUksRUFBRSxhQUFXLGtCQUFTLDBCQUF1QjtnQkFDakQsS0FBSyxFQUFFLGFBQVcsa0JBQVMsMkJBQXdCO2FBQ3BELENBQUMsQ0FBQzs7Z0JBRWdDLHdDQUFnQjtnQkFXakQsOEJBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJO29CQUFuQyxZQUNFLGtCQUFNLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FXekI7b0JBckJNLGlCQUFXLEdBQUcsYUFBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNuQyxzQkFBZ0IsR0FBRywyQkFBa0IsQ0FBQztvQkFDdEMsMEJBQW9CLEdBQUcsNkJBQW9CLENBQUM7b0JBU2pELGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxLQUFLLEVBQUUsZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUM3QyxLQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxvQkFBYyxDQUFDO29CQUN4RSxLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztvQkFDakIsS0FBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNoRCxLQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3hDLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN4QixLQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsS0FBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQztvQkFDaEUsS0FBSSxD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LENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztvQkFDMUYsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN6RDtZQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLzxyZWZlcmVuY2UgcGF0aD1cIi4uL25vZGVfbW9kdWxlcy9ncmFmYW5hLXNkay1tb2Nrcy9hcHAvaGVhZGVycy9jb21tb24uZC50c1wiIC8+XHJcblxyXG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBrYm4gZnJvbSAnYXBwL2NvcmUvdXRpbHMva2JuJztcclxuaW1wb3J0IHsgbG9hZFBsdWdpbkNzcywgTWV0cmljc1BhbmVsQ3RybCB9IGZyb20gXCJhcHAvcGx1Z2lucy9zZGtcIjtcclxuaW1wb3J0IHsgSUJvb21TZXJpZXMsIElCb29tUmVuZGVyaW5nT3B0aW9ucywgSUJvb21UYWJsZSwgSUJvb21IVE1MLCBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zIH0gZnJvbSBcIi4vYXBwL2Jvb20vaW5kZXhcIjtcclxuaW1wb3J0IHsgQm9vbVBhdHRlcm4sIEJvb21TZXJpZXMsIEJvb21PdXRwdXQgfSBmcm9tIFwiLi9hcHAvYm9vbS9pbmRleFwiO1xyXG5pbXBvcnQgeyBwbHVnaW5faWQsIHZhbHVlX25hbWVfb3B0aW9ucywgdGV4dEFsaWdubWVudE9wdGlvbnMsIGNvbmZpZyB9IGZyb20gXCIuL2FwcC9jb25maWdcIjtcclxuaW1wb3J0IHsgZGVmYXVsdFBhdHRlcm4sIHNlcmllc1RvVGFibGUgfSBmcm9tIFwiLi9hcHAvYXBwXCI7XHJcblxyXG5sb2FkUGx1Z2luQ3NzKHtcclxuICBkYXJrOiBgcGx1Z2lucy8ke3BsdWdpbl9pZH0vY3NzL2RlZmF1bHQuZGFyay5jc3NgLFxyXG4gIGxpZ2h0OiBgcGx1Z2lucy8ke3BsdWdpbl9pZH0vY3NzL2RlZmF1bHQubGlnaHQuY3NzYFxyXG59KTtcclxuXHJcbmNsYXNzIEdyYWZhbmFCb29tVGFibGVDdHJsIGV4dGVuZHMgTWV0cmljc1BhbmVsQ3RybCB7XHJcbiAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZVVybCA9IFwicGFydGlhbHMvbW9kdWxlLmh0bWxcIjtcclxuICBwdWJsaWMgdW5pdEZvcm1hdHMgPSBrYm4uZ2V0VW5pdEZvcm1hdHMoKTtcclxuICBwdWJsaWMgdmFsdWVOYW1lT3B0aW9ucyA9IHZhbHVlX25hbWVfb3B0aW9ucztcclxuICBwdWJsaWMgdGV4dEFsaWdubWVudE9wdGlvbnMgPSB0ZXh0QWxpZ25tZW50T3B0aW9ucztcclxuICBwdWJsaWMgb3V0ZGF0YTtcclxuICBwdWJsaWMgZGF0YVJlY2VpdmVkOiBhbnk7XHJcbiAgcHVibGljIGN0cmw6IGFueTtcclxuICBwdWJsaWMgZWxlbTogYW55O1xyXG4gIHB1YmxpYyBhdHRyczogYW55O1xyXG4gIHB1YmxpYyAkc2NlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoJHNjb3BlLCAkaW5qZWN0b3IsICRzY2UpIHtcclxuICAgIHN1cGVyKCRzY29wZSwgJGluamVjdG9yKTtcclxuICAgIF8uZGVmYXVsdHModGhpcy5wYW5lbCwgY29uZmlnLnBhbmVsRGVmYXVsdHMpO1xyXG4gICAgdGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiA9IHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4gfHwgZGVmYXVsdFBhdHRlcm47XHJcbiAgICB0aGlzLiRzY2UgPSAkc2NlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNydiA9ICRpbmplY3Rvci5nZXQoXCJ0ZW1wbGF0ZVNydlwiKTtcclxuICAgIHRoaXMudGltZVNydiA9ICRpbmplY3Rvci5nZXQoXCJ0aW1lU3J2XCIpO1xyXG4gICAgdGhpcy51cGRhdGVQcm90b3R5cGVzKCk7XHJcbiAgICB0aGlzLmV2ZW50cy5vbihcImRhdGEtcmVjZWl2ZWRcIiwgdGhpcy5vbkRhdGFSZWNlaXZlZC5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuZXZlbnRzLm9uKFwiZGF0YS1zbmFwc2hvdC1sb2FkXCIsIHRoaXMub25EYXRhUmVjZWl2ZWQuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLmV2ZW50cy5vbihcImluaXQtZWRpdC1tb2RlXCIsIHRoaXMub25Jbml0RWRpdE1vZGUuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9IHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID09PSAtMSA/IHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoIDogdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXg7XHJcbiAgfVxyXG4gIHByaXZhdGUgdXBkYXRlUHJvdG90eXBlcygpOiB2b2lkIHtcclxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLnBhbmVsLmRlZmF1bHRQYXR0ZXJuLCBCb29tUGF0dGVybi5wcm90b3R5cGUpO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5tYXAocGF0dGVybiA9PiB7XHJcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihwYXR0ZXJuLCBCb29tUGF0dGVybi5wcm90b3R5cGUpO1xyXG4gICAgICByZXR1cm4gcGF0dGVybjtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgb25EYXRhUmVjZWl2ZWQoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGFSZWNlaXZlZCA9IGRhdGE7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgb25Jbml0RWRpdE1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEVkaXRvclRhYihcIlBhdHRlcm5zXCIsIGBwdWJsaWMvcGx1Z2lucy8ke3BsdWdpbl9pZH0vcGFydGlhbHMvZWRpdG9yLmh0bWxgLCAyKTtcclxuICB9XHJcbiAgcHVibGljIGFkZFBhdHRlcm4oKTogdm9pZCB7XHJcbiAgICBsZXQgbmV3UGF0dGVybiA9IG5ldyBCb29tUGF0dGVybih7XHJcbiAgICAgIHJvd19jb2xfd3JhcHBlcjogdGhpcy5wYW5lbC5yb3dfY29sX3dyYXBwZXJcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKG5ld1BhdHRlcm4pO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTIgPyAtMiA6ICh0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCAtIDEpO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZVBhdHRlcm4oaW5kZXg6IE51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTIgPyAtMiA6ICgodGhpcy5wYW5lbC5wYXR0ZXJucyAmJiB0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCA+IDApID8gKHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoIC0gMSkgOiAtMSk7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgbW92ZVBhdHRlcm4oZGlyZWN0aW9uOiBzdHJpbmcsIGluZGV4OiBOdW1iZXIpIHtcclxuICAgIGxldCB0ZW1wRWxlbWVudCA9IHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KV07XHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSBcIlVQXCIpIHtcclxuICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpXSA9IHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KSAtIDFdO1xyXG4gICAgICB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCkgLSAxXSA9IHRlbXBFbGVtZW50O1xyXG4gICAgICB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9IHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID09PSAtMiA/IC0yIDogTnVtYmVyKGluZGV4KSAtIDE7XHJcbiAgICB9XHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSBcIkRPV05cIikge1xyXG4gICAgICB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldID0gdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpICsgMV07XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KSArIDFdID0gdGVtcEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiBOdW1iZXIoaW5kZXgpICsgMTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjbG9uZVBhdHRlcm4oaW5kZXg6IE51bWJlcik6IHZvaWQge1xyXG4gICAgbGV0IGNvcGllZFBhdHRlcm4gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldKTtcclxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjb3BpZWRQYXR0ZXJuLCBCb29tUGF0dGVybi5wcm90b3R5cGUpO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKGNvcGllZFBhdHRlcm4pO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIHNvcnRCeUhlYWRlcihoZWFkZXJJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgPSB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgfHwge1xyXG4gICAgICBjb2xfaW5kZXg6IC0xLFxyXG4gICAgICBkaXJlY3Rpb246IFwiZGVzY1wiXHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzLmNvbF9pbmRleCA9IGhlYWRlckluZGV4O1xyXG4gICAgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzLmRpcmVjdGlvbiA9IHRoaXMucGFuZWwuc29ydGluZ19wcm9wcy5kaXJlY3Rpb24gPT09IFwiYXNjXCIgPyBcImRlc2NcIiA6IFwiYXNjXCI7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgbGltaXRUZXh0KHRleHQ6IHN0cmluZywgbWF4bGVuZ3RoOiBOdW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRleHQuc3BsaXQoJycpLmxlbmd0aCA+IG1heGxlbmd0aCkge1xyXG4gICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgTnVtYmVyKG1heGxlbmd0aCkgLSAzKSArIFwiLi4uXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcbiAgcHVibGljIGxpbmsoc2NvcGU6IGFueSwgZWxlbTogYW55LCBhdHRyczogYW55LCBjdHJsOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcclxuICAgIHRoaXMuZWxlbSA9IGVsZW07XHJcbiAgICB0aGlzLmF0dHJzID0gYXR0cnM7XHJcbiAgICB0aGlzLmN0cmwgPSBjdHJsO1xyXG4gICAgdGhpcy5wYW5lbCA9IGN0cmwucGFuZWw7XHJcbiAgICB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgPSB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgfHwge1xyXG4gICAgICBjb2xfaW5kZXg6IC0xLFxyXG4gICAgICBkaXJlY3Rpb246IFwiZGVzY1wiXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cclxuR3JhZmFuYUJvb21UYWJsZUN0cmwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcclxuICBpZiAodGhpcy5kYXRhUmVjZWl2ZWQpIHtcclxuICAgIGxldCBvdXRwdXRkYXRhOiBJQm9vbVNlcmllc1tdID0gdGhpcy5kYXRhUmVjZWl2ZWQubWFwKHNlcmllc0RhdGEgPT4ge1xyXG4gICAgICBsZXQgc2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgICBkZWJ1Z19tb2RlOiB0aGlzLnBhbmVsLmRlYnVnX21vZGUsXHJcbiAgICAgICAgcm93X2NvbF93cmFwcGVyOiB0aGlzLnBhbmVsLnJvd19jb2xfd3JhcHBlciB8fCBcIl9cIlxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gbmV3IEJvb21TZXJpZXMoc2VyaWVzRGF0YSwgdGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiwgdGhpcy5wYW5lbC5wYXR0ZXJucywgc2VyaWVzT3B0aW9ucywgdGhpcy5wYW5lbC5zY29wZWRWYXJzLCB0aGlzLnRlbXBsYXRlU3J2LCB0aGlzLnRpbWVTcnYpO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgYm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zOiBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zID0ge1xyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfYmc6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnLFxyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dDogdGhpcy5wYW5lbC5ub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dCxcclxuICAgICAgbm9uX21hdGNoaW5nX2NlbGxzX3RleHQ6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX3RleHQsXHJcbiAgICB9O1xyXG4gICAgbGV0IGJvb210YWJsZWRhdGE6IElCb29tVGFibGUgPSBzZXJpZXNUb1RhYmxlKG91dHB1dGRhdGEsIGJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyk7XHJcbiAgICBsZXQgcmVuZGVyaW5nT3B0aW9uczogSUJvb21SZW5kZXJpbmdPcHRpb25zID0ge1xyXG4gICAgICBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiB0aGlzLnBhbmVsLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MgfHwgY29uZmlnLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MsXHJcbiAgICAgIGZpcnN0X2NvbHVtbl9saW5rOiB0aGlzLnBhbmVsLmZpcnN0X2NvbHVtbl9saW5rIHx8IFwiI1wiLFxyXG4gICAgICBoaWRlX2ZpcnN0X2NvbHVtbjogdGhpcy5wYW5lbC5oaWRlX2ZpcnN0X2NvbHVtbixcclxuICAgICAgaGlkZV9oZWFkZXJzOiB0aGlzLnBhbmVsLmhpZGVfaGVhZGVycyxcclxuICAgICAgdGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW46IHRoaXMucGFuZWwudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW4sXHJcbiAgICAgIHRleHRfYWxpZ25tZW50X3ZhbHVlczogdGhpcy5wYW5lbC50ZXh0X2FsaWdubWVudF92YWx1ZXNcclxuICAgIH07XHJcbiAgICBsZXQgYm9vbV9vdXRwdXQgPSBuZXcgQm9vbU91dHB1dChyZW5kZXJpbmdPcHRpb25zKTtcclxuICAgIHRoaXMub3V0ZGF0YSA9IHtcclxuICAgICAgY29sc19mb3VuZDogYm9vbXRhYmxlZGF0YS5jb2xzX2ZvdW5kLm1hcChjb2wgPT4geyByZXR1cm4gdGhpcy4kc2NlLnRydXN0QXNIdG1sKGNvbCk7IH0pXHJcbiAgICB9O1xyXG4gICAgbGV0IHJlbmRlcmluZ2RhdGE6IElCb29tSFRNTCA9IGJvb21fb3V0cHV0LmdldERhdGFBc0hUTUwoYm9vbXRhYmxlZGF0YSwgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzKTtcclxuICAgIHRoaXMuZWxlbS5maW5kKCcjYm9vbXRhYmxlX291dHB1dF9ib2R5JykuaHRtbChgYCArIHJlbmRlcmluZ2RhdGEuYm9keSk7XHJcbiAgICB0aGlzLmVsZW0uZmluZCgnI2Jvb210YWJsZV9vdXRwdXRfYm9keV9kZWJ1ZycpLmh0bWwodGhpcy5wYW5lbC5kZWJ1Z19tb2RlID8gYm9vbV9vdXRwdXQuZ2V0RGF0YUFzRGVidWdIVE1MKG91dHB1dGRhdGEpIDogYGApO1xyXG4gICAgdGhpcy5lbGVtLmZpbmQoXCJbZGF0YS10b2dnbGU9J3Rvb2x0aXAnXVwiKS50b29sdGlwKHtcclxuICAgICAgYm91bmRhcnk6IFwic2Nyb2xsUGFyZW50XCJcclxuICAgIH0pO1xyXG4gICAgbGV0IHJvb3RFbGVtID0gdGhpcy5lbGVtLmZpbmQoJy50YWJsZS1wYW5lbC1zY3JvbGwnKTtcclxuICAgIGxldCBvcmlnaW5hbEhlaWdodCA9IHRoaXMuY3RybC5oZWlnaHQ7XHJcbiAgICBpZiAoaXNOYU4ob3JpZ2luYWxIZWlnaHQpKSB7XHJcbiAgICAgIGlmICh0aGlzLmN0cmwgJiYgdGhpcy5jdHJsLmVsZW0gJiYgdGhpcy5jdHJsLmVsZW1bMF0gJiYgdGhpcy5jdHJsLmVsZW1bMF0uY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgb3JpZ2luYWxIZWlnaHQgPSB0aGlzLmN0cmwuZWxlbVswXS5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBtYXhoZWlnaHRvZnBhbmVsID0gdGhpcy5wYW5lbC5kZWJ1Z19tb2RlID8gb3JpZ2luYWxIZWlnaHQgLSAxMTEgOiBvcmlnaW5hbEhlaWdodCAtIDMxO1xyXG4gICAgcm9vdEVsZW0uY3NzKHsgJ21heC1oZWlnaHQnOiBtYXhoZWlnaHRvZnBhbmVsICsgXCJweFwiIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7XHJcbiAgR3JhZmFuYUJvb21UYWJsZUN0cmwgYXMgUGFuZWxDdHJsXHJcbn07XHJcbiJdfQ== \ No newline at end of file +System.register(["lodash", "app/core/utils/kbn", "app/plugins/sdk", "./app/boom/index", "./app/config", "./app/app"], function (exports_1, context_1) { + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var lodash_1, kbn_1, sdk_1, index_1, config_1, app_1, GrafanaBoomTableCtrl; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (lodash_1_1) { + lodash_1 = lodash_1_1; + }, + function (kbn_1_1) { + kbn_1 = kbn_1_1; + }, + function (sdk_1_1) { + sdk_1 = sdk_1_1; + }, + function (index_1_1) { + index_1 = index_1_1; + }, + function (config_1_1) { + config_1 = config_1_1; + }, + function (app_1_1) { + app_1 = app_1_1; + } + ], + execute: function () { + sdk_1.loadPluginCss({ + dark: "plugins/" + config_1.plugin_id + "/css/default.dark.css", + light: "plugins/" + config_1.plugin_id + "/css/default.light.css" + }); + GrafanaBoomTableCtrl = (function (_super) { + __extends(GrafanaBoomTableCtrl, _super); + function GrafanaBoomTableCtrl($scope, $injector, $sce) { + var _this = _super.call(this, $scope, $injector) || this; + _this.unitFormats = kbn_1.default.getUnitFormats(); + _this.valueNameOptions = config_1.value_name_options; + _this.textAlignmentOptions = config_1.textAlignmentOptions; + lodash_1.default.defaults(_this.panel, config_1.config.panelDefaults); + _this.panel.defaultPattern = _this.panel.defaultPattern || app_1.defaultPattern; + _this.$sce = $sce; + _this.templateSrv = $injector.get("templateSrv"); + _this.timeSrv = $injector.get("timeSrv"); + _this.updatePrototypes(); + _this.events.on("data-received", _this.onDataReceived.bind(_this)); + _this.events.on("data-snapshot-load", _this.onDataReceived.bind(_this)); + _this.events.on("init-edit-mode", _this.onInitEditMode.bind(_this)); + _this.panel.activePatternIndex = _this.panel.activePatternIndex === -1 ? _this.panel.patterns.length : _this.panel.activePatternIndex; + return _this; + } + GrafanaBoomTableCtrl.prototype.updatePrototypes = function () { + Object.setPrototypeOf(this.panel.defaultPattern, index_1.BoomPattern.prototype); + this.panel.patterns.map(function (pattern) { + Object.setPrototypeOf(pattern, index_1.BoomPattern.prototype); + return pattern; + }); + }; + GrafanaBoomTableCtrl.prototype.onDataReceived = function (data) { + this.dataReceived = data; + this.render(); + }; + GrafanaBoomTableCtrl.prototype.onInitEditMode = function () { + this.addEditorTab("Patterns", "public/plugins/" + config_1.plugin_id + "/partials/editor.html", 2); + }; + GrafanaBoomTableCtrl.prototype.addPattern = function () { + var newPattern = new index_1.BoomPattern({ + row_col_wrapper: this.panel.row_col_wrapper + }); + this.panel.patterns.push(newPattern); + this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : (this.panel.patterns.length - 1); + this.render(); + }; + GrafanaBoomTableCtrl.prototype.removePattern = function (index) { + this.panel.patterns.splice(index, 1); + this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : ((this.panel.patterns && this.panel.patterns.length > 0) ? (this.panel.patterns.length - 1) : -1); + this.render(); + }; + GrafanaBoomTableCtrl.prototype.movePattern = function (direction, index) { + var tempElement = this.panel.patterns[Number(index)]; + if (direction === "UP") { + this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) - 1]; + this.panel.patterns[Number(index) - 1] = tempElement; + this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) - 1; + } + if (direction === "DOWN") { + this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) + 1]; + this.panel.patterns[Number(index) + 1] = tempElement; + this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) + 1; + } + this.render(); + }; + GrafanaBoomTableCtrl.prototype.clonePattern = function (index) { + var copiedPattern = Object.assign({}, this.panel.patterns[Number(index)]); + Object.setPrototypeOf(copiedPattern, index_1.BoomPattern.prototype); + this.panel.patterns.push(copiedPattern); + this.render(); + }; + GrafanaBoomTableCtrl.prototype.sortByHeader = function (headerIndex) { + this.panel.sorting_props = this.panel.sorting_props || { + col_index: -1, + direction: "desc" + }; + this.panel.sorting_props.col_index = headerIndex; + this.panel.sorting_props.direction = this.panel.sorting_props.direction === "asc" ? "desc" : "asc"; + this.render(); + }; + GrafanaBoomTableCtrl.prototype.limitText = function (text, maxlength) { + if (text.split('').length > maxlength) { + text = text.substring(0, Number(maxlength) - 3) + "..."; + } + return text; + }; + GrafanaBoomTableCtrl.prototype.link = function (scope, elem, attrs, ctrl) { + this.scope = scope; + this.elem = elem; + this.attrs = attrs; + this.ctrl = ctrl; + this.panel = ctrl.panel; + this.panel.sorting_props = this.panel.sorting_props || { + col_index: -1, + direction: "desc" + }; + }; + GrafanaBoomTableCtrl.templateUrl = "partials/module.html"; + return GrafanaBoomTableCtrl; + }(sdk_1.MetricsPanelCtrl)); + exports_1("PanelCtrl", GrafanaBoomTableCtrl); + GrafanaBoomTableCtrl.prototype.render = function () { + var _this = this; + if (this.dataReceived) { + var outputdata = this.dataReceived.map(function (seriesData) { + var seriesOptions = { + debug_mode: _this.panel.debug_mode, + row_col_wrapper: _this.panel.row_col_wrapper || "_" + }; + return new index_1.BoomSeries(seriesData, _this.panel.defaultPattern, _this.panel.patterns, seriesOptions, _this.panel.scopedVars, _this.templateSrv, _this.timeSrv); + }); + var boomTableTransformationOptions = { + non_matching_cells_color_bg: this.panel.non_matching_cells_color_bg, + non_matching_cells_color_text: this.panel.non_matching_cells_color_text, + non_matching_cells_text: this.panel.non_matching_cells_text, + }; + var boomtabledata = app_1.seriesToTable(outputdata, boomTableTransformationOptions); + var renderingOptions = { + default_title_for_rows: this.panel.default_title_for_rows || config_1.config.default_title_for_rows, + first_column_link: this.panel.first_column_link || "#", + hide_first_column: this.panel.hide_first_column, + hide_headers: this.panel.hide_headers, + text_alignment_firstcolumn: this.panel.text_alignment_firstcolumn, + text_alignment_values: this.panel.text_alignment_values + }; + var boom_output = new index_1.BoomOutput(renderingOptions); + this.outdata = { + cols_found: boomtabledata.cols_found.map(function (col) { return _this.$sce.trustAsHtml(col); }) + }; + var renderingdata = boom_output.getDataAsHTML(boomtabledata, this.panel.sorting_props); + this.elem.find('#boomtable_output_body').html("" + renderingdata.body); + this.elem.find('#boomtable_output_body_debug').html(this.panel.debug_mode ? boom_output.getDataAsDebugHTML(outputdata) : ""); + this.elem.find("[data-toggle='tooltip']").tooltip({ + boundary: "scrollParent" + }); + var rootElem = this.elem.find('.table-panel-scroll'); + var originalHeight = this.ctrl.height; + if (isNaN(originalHeight)) { + if (this.ctrl && this.ctrl.elem && this.ctrl.elem[0] && this.ctrl.elem[0].clientHeight) { + originalHeight = this.ctrl.elem[0].clientHeight; + } + } + var maxheightofpanel = this.panel.debug_mode ? originalHeight - 111 : originalHeight - 31; + rootElem.css({ 'max-height': maxheightofpanel + "px" }); + this.renderingCompleted(); + } + }; + } + }; +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFVQSxtQkFBYSxDQUFDO2dCQUNaLElBQUksRUFBRSxhQUFXLGtCQUFTLDBCQUF1QjtnQkFDakQsS0FBSyxFQUFFLGFBQVcsa0JBQVMsMkJBQXdCO2FBQ3BELENBQUMsQ0FBQzs7Z0JBRWdDLHdDQUFnQjtnQkFXakQsOEJBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJO29CQUFuQyxZQUNFLGtCQUFNLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FXekI7b0JBckJNLGlCQUFXLEdBQUcsYUFBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNuQyxzQkFBZ0IsR0FBRywyQkFBa0IsQ0FBQztvQkFDdEMsMEJBQW9CLEdBQUcsNkJBQW9CLENBQUM7b0JBU2pELGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxLQUFLLEVBQUUsZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUM3QyxLQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxvQkFBYyxDQUFDO29CQUN4RSxLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztvQkFDakIsS0FBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNoRCxLQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3hDLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN4QixLQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsS0FBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQztvQkFDaEUsS0FBSSxD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LENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztvQkFDMUYsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztpQkFDM0I7WUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy88cmVmZXJlbmNlIHBhdGg9XCIuLi9ub2RlX21vZHVsZXMvZ3JhZmFuYS1zZGstbW9ja3MvYXBwL2hlYWRlcnMvY29tbW9uLmQudHNcIiAvPlxyXG5cclxuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xyXG5pbXBvcnQga2JuIGZyb20gJ2FwcC9jb3JlL3V0aWxzL2tibic7XHJcbmltcG9ydCB7IGxvYWRQbHVnaW5Dc3MsIE1ldHJpY3NQYW5lbEN0cmwgfSBmcm9tIFwiYXBwL3BsdWdpbnMvc2RrXCI7XHJcbmltcG9ydCB7IElCb29tU2VyaWVzLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMsIElCb29tVGFibGUsIElCb29tSFRNTCwgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyB9IGZyb20gXCIuL2FwcC9ib29tL2luZGV4XCI7XHJcbmltcG9ydCB7IEJvb21QYXR0ZXJuLCBCb29tU2VyaWVzLCBCb29tT3V0cHV0IH0gZnJvbSBcIi4vYXBwL2Jvb20vaW5kZXhcIjtcclxuaW1wb3J0IHsgcGx1Z2luX2lkLCB2YWx1ZV9uYW1lX29wdGlvbnMsIHRleHRBbGlnbm1lbnRPcHRpb25zLCBjb25maWcgfSBmcm9tIFwiLi9hcHAvY29uZmlnXCI7XHJcbmltcG9ydCB7IGRlZmF1bHRQYXR0ZXJuLCBzZXJpZXNUb1RhYmxlIH0gZnJvbSBcIi4vYXBwL2FwcFwiO1xyXG5cclxubG9hZFBsdWdpbkNzcyh7XHJcbiAgZGFyazogYHBsdWdpbnMvJHtwbHVnaW5faWR9L2Nzcy9kZWZhdWx0LmRhcmsuY3NzYCxcclxuICBsaWdodDogYHBsdWdpbnMvJHtwbHVnaW5faWR9L2Nzcy9kZWZhdWx0LmxpZ2h0LmNzc2BcclxufSk7XHJcblxyXG5jbGFzcyBHcmFmYW5hQm9vbVRhYmxlQ3RybCBleHRlbmRzIE1ldHJpY3NQYW5lbEN0cmwge1xyXG4gIHB1YmxpYyBzdGF0aWMgdGVtcGxhdGVVcmwgPSBcInBhcnRpYWxzL21vZHVsZS5odG1sXCI7XHJcbiAgcHVibGljIHVuaXRGb3JtYXRzID0ga2JuLmdldFVuaXRGb3JtYXRzKCk7XHJcbiAgcHVibGljIHZhbHVlTmFtZU9wdGlvbnMgPSB2YWx1ZV9uYW1lX29wdGlvbnM7XHJcbiAgcHVibGljIHRleHRBbGlnbm1lbnRPcHRpb25zID0gdGV4dEFsaWdubWVudE9wdGlvbnM7XHJcbiAgcHVibGljIG91dGRhdGE7XHJcbiAgcHVibGljIGRhdGFSZWNlaXZlZDogYW55O1xyXG4gIHB1YmxpYyBjdHJsOiBhbnk7XHJcbiAgcHVibGljIGVsZW06IGFueTtcclxuICBwdWJsaWMgYXR0cnM6IGFueTtcclxuICBwdWJsaWMgJHNjZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKCRzY29wZSwgJGluamVjdG9yLCAkc2NlKSB7XHJcbiAgICBzdXBlcigkc2NvcGUsICRpbmplY3Rvcik7XHJcbiAgICBfLmRlZmF1bHRzKHRoaXMucGFuZWwsIGNvbmZpZy5wYW5lbERlZmF1bHRzKTtcclxuICAgIHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4gPSB0aGlzLnBhbmVsLmRlZmF1bHRQYXR0ZXJuIHx8IGRlZmF1bHRQYXR0ZXJuO1xyXG4gICAgdGhpcy4kc2NlID0gJHNjZTtcclxuICAgIHRoaXMudGVtcGxhdGVTcnYgPSAkaW5qZWN0b3IuZ2V0KFwidGVtcGxhdGVTcnZcIik7XHJcbiAgICB0aGlzLnRpbWVTcnYgPSAkaW5qZWN0b3IuZ2V0KFwidGltZVNydlwiKTtcclxuICAgIHRoaXMudXBkYXRlUHJvdG90eXBlcygpO1xyXG4gICAgdGhpcy5ldmVudHMub24oXCJkYXRhLXJlY2VpdmVkXCIsIHRoaXMub25EYXRhUmVjZWl2ZWQuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLmV2ZW50cy5vbihcImRhdGEtc25hcHNob3QtbG9hZFwiLCB0aGlzLm9uRGF0YVJlY2VpdmVkLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5ldmVudHMub24oXCJpbml0LWVkaXQtbW9kZVwiLCB0aGlzLm9uSW5pdEVkaXRNb2RlLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTEgPyB0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCA6IHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIHVwZGF0ZVByb3RvdHlwZXMoKTogdm9pZCB7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiwgQm9vbVBhdHRlcm4ucHJvdG90eXBlKTtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMubWFwKHBhdHRlcm4gPT4ge1xyXG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocGF0dGVybiwgQm9vbVBhdHRlcm4ucHJvdG90eXBlKTtcclxuICAgICAgcmV0dXJuIHBhdHRlcm47XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIG9uRGF0YVJlY2VpdmVkKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhUmVjZWl2ZWQgPSBkYXRhO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIG9uSW5pdEVkaXRNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRFZGl0b3JUYWIoXCJQYXR0ZXJuc1wiLCBgcHVibGljL3BsdWdpbnMvJHtwbHVnaW5faWR9L3BhcnRpYWxzL2VkaXRvci5odG1sYCwgMik7XHJcbiAgfVxyXG4gIHB1YmxpYyBhZGRQYXR0ZXJuKCk6IHZvaWQge1xyXG4gICAgbGV0IG5ld1BhdHRlcm4gPSBuZXcgQm9vbVBhdHRlcm4oe1xyXG4gICAgICByb3dfY29sX3dyYXBwZXI6IHRoaXMucGFuZWwucm93X2NvbF93cmFwcGVyXHJcbiAgICB9KTtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMucHVzaChuZXdQYXR0ZXJuKTtcclxuICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiAodGhpcy5wYW5lbC5wYXR0ZXJucy5sZW5ndGggLSAxKTtcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVQYXR0ZXJuKGluZGV4OiBOdW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiAoKHRoaXMucGFuZWwucGF0dGVybnMgJiYgdGhpcy5wYW5lbC5wYXR0ZXJucy5sZW5ndGggPiAwKSA/ICh0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCAtIDEpIDogLTEpO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIG1vdmVQYXR0ZXJuKGRpcmVjdGlvbjogc3RyaW5nLCBpbmRleDogTnVtYmVyKSB7XHJcbiAgICBsZXQgdGVtcEVsZW1lbnQgPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldO1xyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJVUFwiKSB7XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KV0gPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCkgLSAxXTtcclxuICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpIC0gMV0gPSB0ZW1wRWxlbWVudDtcclxuICAgICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTIgPyAtMiA6IE51bWJlcihpbmRleCkgLSAxO1xyXG4gICAgfVxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJET1dOXCIpIHtcclxuICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpXSA9IHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KSArIDFdO1xyXG4gICAgICB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCkgKyAxXSA9IHRlbXBFbGVtZW50O1xyXG4gICAgICB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9IHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID09PSAtMiA/IC0yIDogTnVtYmVyKGluZGV4KSArIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgY2xvbmVQYXR0ZXJuKGluZGV4OiBOdW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBjb3BpZWRQYXR0ZXJuID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpXSk7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoY29waWVkUGF0dGVybiwgQm9vbVBhdHRlcm4ucHJvdG90eXBlKTtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMucHVzaChjb3BpZWRQYXR0ZXJuKTtcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzb3J0QnlIZWFkZXIoaGVhZGVySW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzID0gdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzIHx8IHtcclxuICAgICAgY29sX2luZGV4OiAtMSxcclxuICAgICAgZGlyZWN0aW9uOiBcImRlc2NcIlxyXG4gICAgfTtcclxuICAgIHRoaXMucGFuZWwuc29ydGluZ19wcm9wcy5jb2xfaW5kZXggPSBoZWFkZXJJbmRleDtcclxuICAgIHRoaXMucGFuZWwuc29ydGluZ19wcm9wcy5kaXJlY3Rpb24gPSB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMuZGlyZWN0aW9uID09PSBcImFzY1wiID8gXCJkZXNjXCIgOiBcImFzY1wiO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIGxpbWl0VGV4dCh0ZXh0OiBzdHJpbmcsIG1heGxlbmd0aDogTnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0ZXh0LnNwbGl0KCcnKS5sZW5ndGggPiBtYXhsZW5ndGgpIHtcclxuICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIE51bWJlcihtYXhsZW5ndGgpIC0gMykgKyBcIi4uLlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBsaW5rKHNjb3BlOiBhbnksIGVsZW06IGFueSwgYXR0cnM6IGFueSwgY3RybDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XHJcbiAgICB0aGlzLmVsZW0gPSBlbGVtO1xyXG4gICAgdGhpcy5hdHRycyA9IGF0dHJzO1xyXG4gICAgdGhpcy5jdHJsID0gY3RybDtcclxuICAgIHRoaXMucGFuZWwgPSBjdHJsLnBhbmVsO1xyXG4gICAgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzID0gdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzIHx8IHtcclxuICAgICAgY29sX2luZGV4OiAtMSxcclxuICAgICAgZGlyZWN0aW9uOiBcImRlc2NcIlxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbkdyYWZhbmFCb29tVGFibGVDdHJsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgaWYgKHRoaXMuZGF0YVJlY2VpdmVkKSB7XHJcbiAgICBsZXQgb3V0cHV0ZGF0YTogSUJvb21TZXJpZXNbXSA9IHRoaXMuZGF0YVJlY2VpdmVkLm1hcChzZXJpZXNEYXRhID0+IHtcclxuICAgICAgbGV0IHNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgICAgZGVidWdfbW9kZTogdGhpcy5wYW5lbC5kZWJ1Z19tb2RlLFxyXG4gICAgICAgIHJvd19jb2xfd3JhcHBlcjogdGhpcy5wYW5lbC5yb3dfY29sX3dyYXBwZXIgfHwgXCJfXCJcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIG5ldyBCb29tU2VyaWVzKHNlcmllc0RhdGEsIHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4sIHRoaXMucGFuZWwucGF0dGVybnMsIHNlcmllc09wdGlvbnMsIHRoaXMucGFuZWwuc2NvcGVkVmFycywgdGhpcy50ZW1wbGF0ZVNydiwgdGhpcy50aW1lU3J2KTtcclxuICAgIH0pO1xyXG4gICAgbGV0IGJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9uczogSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyA9IHtcclxuICAgICAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnOiB0aGlzLnBhbmVsLm5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl9iZyxcclxuICAgICAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX3RleHQ6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX3RleHQsXHJcbiAgICAgIG5vbl9tYXRjaGluZ19jZWxsc190ZXh0OiB0aGlzLnBhbmVsLm5vbl9tYXRjaGluZ19jZWxsc190ZXh0LFxyXG4gICAgfTtcclxuICAgIGxldCBib29tdGFibGVkYXRhOiBJQm9vbVRhYmxlID0gc2VyaWVzVG9UYWJsZShvdXRwdXRkYXRhLCBib29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMpO1xyXG4gICAgbGV0IHJlbmRlcmluZ09wdGlvbnM6IElCb29tUmVuZGVyaW5nT3B0aW9ucyA9IHtcclxuICAgICAgZGVmYXVsdF90aXRsZV9mb3Jfcm93czogdGhpcy5wYW5lbC5kZWZhdWx0X3RpdGxlX2Zvcl9yb3dzIHx8IGNvbmZpZy5kZWZhdWx0X3RpdGxlX2Zvcl9yb3dzLFxyXG4gICAgICBmaXJzdF9jb2x1bW5fbGluazogdGhpcy5wYW5lbC5maXJzdF9jb2x1bW5fbGluayB8fCBcIiNcIixcclxuICAgICAgaGlkZV9maXJzdF9jb2x1bW46IHRoaXMucGFuZWwuaGlkZV9maXJzdF9jb2x1bW4sXHJcbiAgICAgIGhpZGVfaGVhZGVyczogdGhpcy5wYW5lbC5oaWRlX2hlYWRlcnMsXHJcbiAgICAgIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiB0aGlzLnBhbmVsLnRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uLFxyXG4gICAgICB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IHRoaXMucGFuZWwudGV4dF9hbGlnbm1lbnRfdmFsdWVzXHJcbiAgICB9O1xyXG4gICAgbGV0IGJvb21fb3V0cHV0ID0gbmV3IEJvb21PdXRwdXQocmVuZGVyaW5nT3B0aW9ucyk7XHJcbiAgICB0aGlzLm91dGRhdGEgPSB7XHJcbiAgICAgIGNvbHNfZm91bmQ6IGJvb210YWJsZWRhdGEuY29sc19mb3VuZC5tYXAoY29sID0+IHsgcmV0dXJuIHRoaXMuJHNjZS50cnVzdEFzSHRtbChjb2wpOyB9KVxyXG4gICAgfTtcclxuICAgIGxldCByZW5kZXJpbmdkYXRhOiBJQm9vbUhUTUwgPSBib29tX291dHB1dC5nZXREYXRhQXNIVE1MKGJvb210YWJsZWRhdGEsIHRoaXMucGFuZWwuc29ydGluZ19wcm9wcyk7XHJcbiAgICB0aGlzLmVsZW0uZmluZCgnI2Jvb210YWJsZV9vdXRwdXRfYm9keScpLmh0bWwoYGAgKyByZW5kZXJpbmdkYXRhLmJvZHkpO1xyXG4gICAgdGhpcy5lbGVtLmZpbmQoJyNib29tdGFibGVfb3V0cHV0X2JvZHlfZGVidWcnKS5odG1sKHRoaXMucGFuZWwuZGVidWdfbW9kZSA/IGJvb21fb3V0cHV0LmdldERhdGFBc0RlYnVnSFRNTChvdXRwdXRkYXRhKSA6IGBgKTtcclxuICAgIHRoaXMuZWxlbS5maW5kKFwiW2RhdGEtdG9nZ2xlPSd0b29sdGlwJ11cIikudG9vbHRpcCh7XHJcbiAgICAgIGJvdW5kYXJ5OiBcInNjcm9sbFBhcmVudFwiXHJcbiAgICB9KTtcclxuICAgIGxldCByb290RWxlbSA9IHRoaXMuZWxlbS5maW5kKCcudGFibGUtcGFuZWwtc2Nyb2xsJyk7XHJcbiAgICBsZXQgb3JpZ2luYWxIZWlnaHQgPSB0aGlzLmN0cmwuaGVpZ2h0O1xyXG4gICAgaWYgKGlzTmFOKG9yaWdpbmFsSGVpZ2h0KSkge1xyXG4gICAgICBpZiAodGhpcy5jdHJsICYmIHRoaXMuY3RybC5lbGVtICYmIHRoaXMuY3RybC5lbGVtWzBdICYmIHRoaXMuY3RybC5lbGVtWzBdLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIG9yaWdpbmFsSGVpZ2h0ID0gdGhpcy5jdHJsLmVsZW1bMF0uY2xpZW50SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbWF4aGVpZ2h0b2ZwYW5lbCA9IHRoaXMucGFuZWwuZGVidWdfbW9kZSA/IG9yaWdpbmFsSGVpZ2h0IC0gMTExIDogb3JpZ2luYWxIZWlnaHQgLSAzMTtcclxuICAgIHJvb3RFbGVtLmNzcyh7ICdtYXgtaGVpZ2h0JzogbWF4aGVpZ2h0b2ZwYW5lbCArIFwicHhcIiB9KTtcclxuICAgIHRoaXMucmVuZGVyaW5nQ29tcGxldGVkKCk7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICBHcmFmYW5hQm9vbVRhYmxlQ3RybCBhcyBQYW5lbEN0cmxcclxufTtcclxuIl19 \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json index 8247bc5..e5ec518 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -25,7 +25,7 @@ "url": "https://github.com/yesoreyeram/yesoreyeram-boomtable-panel" } ], - "version": "1.3.0" + "version": "1.3.0b" }, "dependencies": { "grafanaVersion": "4.x.x", diff --git a/package.json b/package.json index cbd9673..1fbe9cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yesoreyeram-boomtable-panel", - "version": "1.3.0", + "version": "1.3.0b", "description": "Boom table panel for Graphite, InfluxDB, Prometheus", "main": "dist/module.js", "scripts": { diff --git a/plugin.json b/plugin.json index 8247bc5..e5ec518 100644 --- a/plugin.json +++ b/plugin.json @@ -25,7 +25,7 @@ "url": "https://github.com/yesoreyeram/yesoreyeram-boomtable-panel" } ], - "version": "1.3.0" + "version": "1.3.0b" }, "dependencies": { "grafanaVersion": "4.x.x",