diff --git a/dist/CHANGELOG.md b/dist/CHANGELOG.md
index 4ac738e..4f5c627 100644
--- a/dist/CHANGELOG.md
+++ b/dist/CHANGELOG.md
@@ -1,26 +1,26 @@
-# ChangeLog
-
-| Version | Changes |
-| -------------------|-----------|
-| 1.1.0 (unreleased) | Colnames in the link |
-| 1.0.0 | Typescript & TSLint implementation |
-| | Jest testcases implemented |
-| | SASS implementation for stylesheets |
-| | Display options improved |
-| | Display values can have part of series name |
-| 0.5.1 | Images as values based on thresholds |
-| 0.5.0 | Background Color & Transform value overrides |
-| | Bug fixes #43 #44 #45 |
-| 0.4.7 | Links in cells i.e., Clickable cells |
-| 0.4.6 | Font Awesome icons as values base on thresholds |
-| 0.4.x | Time based thresholds |
-| | Filter option to hide rows based on value |
-| | Option to hide the first column and table header |
-| 0.3.x | Options to name the pattern, disable the pattern |
-| | Reverse the background colors and transform values in pattern |
-| | Removed output data from panel model |
-| | Bug fixes |
-| 0.2.x | Build script changed from babel to typescript |
-| | Assign series alias as row to the default pattern |
-| | Bug fixes |
-| 0.1.0 | First working Version |
+# ChangeLog
+
+| Version | Changes |
+| -------------------|-----------|
+| 1.1.0 (unreleased) | Colnames in the link |
+| 1.0.0 | Typescript & TSLint implementation |
+| | Jest testcases implemented |
+| | SASS implementation for stylesheets |
+| | Display options improved |
+| | Display values can have part of series name |
+| 0.5.1 | Images as values based on thresholds |
+| 0.5.0 | Background Color & Transform value overrides |
+| | Bug fixes #43 #44 #45 |
+| 0.4.7 | Links in cells i.e., Clickable cells |
+| 0.4.6 | Font Awesome icons as values base on thresholds |
+| 0.4.x | Time based thresholds |
+| | Filter option to hide rows based on value |
+| | Option to hide the first column and table header |
+| 0.3.x | Options to name the pattern, disable the pattern |
+| | Reverse the background colors and transform values in pattern |
+| | Removed output data from panel model |
+| | Bug fixes |
+| 0.2.x | Build script changed from babel to typescript |
+| | Assign series alias as row to the default pattern |
+| | Bug fixes |
+| 0.1.0 | First working Version |
diff --git a/dist/README.md b/dist/README.md
index b1a1c9a..fd7ad2b 100644
--- a/dist/README.md
+++ b/dist/README.md
@@ -3,7 +3,7 @@
[![CircleCI](https://circleci.com/gh/yesoreyeram/yesoreyeram-boomtable-panel.svg?style=svg)](https://circleci.com/gh/yesoreyeram/yesoreyeram-boomtable-panel)
-Boom Table Panel for Grafana. Table/MultiStat plugin with multiple columns for Graphite, InfluDB, Prometheus, Azure Monitor.
+Boom Table Panel for Grafana. Table/MultiStat plugin with multiple columns for Graphite, InfluxDB, Prometheus, Azure Monitor.
![Boom Table - Sample Panel](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/panel.png)
diff --git a/dist/app/app.js b/dist/app/app.js
index 0c946fb..3ffb8da 100644
--- a/dist/app/app.js
+++ b/dist/app/app.js
@@ -1,90 +1,90 @@
-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 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,
- };
- };
- 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 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,
+ };
+ };
+ exports_1("seriesToTable", seriesToTable);
+ }
+ };
+});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7WUFJTSxjQUFjLEdBQUcsSUFBSSxtQkFBVyxDQUFDO2dCQUNuQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixrQkFBa0IsRUFBRSwyQkFBMkI7Z0JBQy9DLG9CQUFvQixFQUFFLEVBQUU7Z0JBQ3hCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxTQUFTLEVBQUUsR0FBRztnQkFDZCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixVQUFVLEVBQUUsU0FBUztnQkFDckIsY0FBYyxFQUFFLE9BQU87Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixPQUFPLEVBQUUsR0FBRztnQkFDWixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0Isb0JBQW9CLEVBQUUsMkJBQTJCO2dCQUNqRCxVQUFVLEVBQUUsT0FBTztnQkFDbkIscUJBQXFCLEVBQUUsRUFBRTtnQkFDekIsZ0JBQWdCLEVBQUUseUJBQXlCO2dCQUMzQywwQkFBMEIsRUFBRSxlQUFlO2dCQUMzQyxTQUFTLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7O1lBQ0csYUFBYSxHQUFHLFVBQVUsU0FBd0IsRUFBRSxPQUF3QztnQkFDOUYsSUFBSSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBVixDQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLFVBQVUsR0FBRyxnQkFBQyxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxFQUFWLENBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksTUFBTSxHQUF5QixFQUFFLENBQUM7Z0JBQ3RDLGdCQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFBLFFBQVE7b0JBQ3ZCLElBQUksSUFBSSxHQUF1QixFQUFFLENBQUM7b0JBQ2xDLGdCQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFBLFFBQVE7d0JBQ3ZCLElBQUksYUFBYSxHQUFHLGdCQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxVQUFBLENBQUM7NEJBQ3JDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7d0JBQzlELENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzlDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0NBQ04sVUFBVSxFQUFFLFFBQVE7Z0NBQ3BCLFVBQVUsRUFBRSxPQUFPLENBQUMsMkJBQTJCO2dDQUMvQyxZQUFZLEVBQUUsT0FBTyxDQUFDLDZCQUE2QjtnQ0FDbkQsZUFBZSxFQUFFLHFCQUFhLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO2dDQUMvRCxRQUFRLEVBQUUsS0FBSztnQ0FDZixNQUFNLEVBQUUsR0FBRztnQ0FDWCxVQUFVLEVBQUUsUUFBUTtnQ0FDcEIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsT0FBTyxFQUFFLEdBQUc7NkJBQ2YsQ0FBQyxDQUFDO3lCQUNOOzZCQUFNLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUMvQjs2QkFBTSxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs0QkFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQztnQ0FDTixVQUFVLEVBQUUsUUFBUTtnQ0FDcEIsVUFBVSxFQUFFLFNBQVM7Z0NBQ3JCLFlBQVksRUFBRSxPQUFPO2dDQUNyQixlQUFlLEVBQUUsbUJBQW1CO2dDQUNwQyxRQUFRLEVBQUUsS0FBSztnQ0FDZixNQUFNLEVBQUUsR0FBRztnQ0FDWCxVQUFVLEVBQUUsUUFBUTtnQ0FDcEIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsT0FBTyxFQUFFLEdBQUc7NkJBQ2YsQ0FBQyxDQUFDO3lCQUNOO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU87b0JBQ0gsVUFBVSxZQUFBO29CQUNWLE1BQU0sUUFBQTtvQkFDTixVQUFVLFlBQUE7aUJBQ2IsQ0FBQztZQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgSUJvb21TZXJpZXMsIElCb29tQ2VsbERldGFpbHMsIElCb29tVGFibGUsIElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi9ib29tL2luZGV4XCI7XHJcbmltcG9ydCB7IEJvb21QYXR0ZXJuLCByZXBsYWNlVG9rZW5zIH0gZnJvbSAnLi9ib29tL2luZGV4JztcclxuXHJcbmNvbnN0IGRlZmF1bHRQYXR0ZXJuID0gbmV3IEJvb21QYXR0ZXJuKHtcclxuICAgIGJnQ29sb3JzOiBcImdyZWVufG9yYW5nZXxyZWRcIixcclxuICAgIGJnQ29sb3JzX292ZXJyaWRlczogXCIwLT5ncmVlbnwyLT5yZWR8MS0+eWVsbG93XCIsXHJcbiAgICBjbGlja2FibGVfY2VsbHNfbGluazogXCJcIixcclxuICAgIGNvbF9uYW1lOiBcIlZhbHVlXCIsXHJcbiAgICBkZWNpbWFsczogMixcclxuICAgIGRlbGltaXRlcjogXCIuXCIsXHJcbiAgICBmb3JtYXQ6IFwibm9uZVwiLFxyXG4gICAgbmFtZTogXCJEZWZhdWx0IFBhdHRlcm5cIixcclxuICAgIG51bGxfY29sb3I6IFwiZGFya3JlZFwiLFxyXG4gICAgbnVsbF90ZXh0Y29sb3I6IFwid2hpdGVcIixcclxuICAgIG51bGxfdmFsdWU6IFwiTm8gZGF0YVwiLFxyXG4gICAgcGF0dGVybjogXCIqXCIsXHJcbiAgICByb3dfbmFtZTogXCJfc2VyaWVzX1wiLFxyXG4gICAgdGV4dENvbG9yOiBcInJlZHxvcmFuZ2V8Z3JlZW5cIixcclxuICAgIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiBcIjAtPnJlZHwyLT5ncmVlbnwxLT55ZWxsb3dcIixcclxuICAgIHRocmVzaG9sZHM6IFwiNzAsOTBcIixcclxuICAgIHRpbWVfYmFzZWRfdGhyZXNob2xkczogW10sXHJcbiAgICB0cmFuc2Zvcm1fdmFsdWVzOiBcIl92YWx1ZV98X3ZhbHVlX3xfdmFsdWVfXCIsXHJcbiAgICB0cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlczogXCIwLT5kb3dufDEtPnVwXCIsXHJcbiAgICB2YWx1ZU5hbWU6IFwiYXZnXCJcclxufSk7XHJcbmNvbnN0IHNlcmllc1RvVGFibGUgPSBmdW5jdGlvbiAoaW5wdXRkYXRhOiBJQm9vbVNlcmllc1tdLCBvcHRpb25zOiBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zKTogSUJvb21UYWJsZSB7XHJcbiAgICBsZXQgcm93c19mb3VuZCA9IF8udW5pcShfLm1hcChpbnB1dGRhdGEsIGQgPT4gZC5yb3dfbmFtZSkpO1xyXG4gICAgbGV0IGNvbHNfZm91bmQgPSBfLnVuaXEoXy5tYXAoaW5wdXRkYXRhLCBkID0+IGQuY29sX25hbWUpKTtcclxuICAgIGxldCBvdXRwdXQ6IElCb29tQ2VsbERldGFpbHNbXVtdID0gW107XHJcbiAgICBfLmVhY2gocm93c19mb3VuZCwgcm93X25hbWUgPT4ge1xyXG4gICAgICAgIGxldCBjb2xzOiBJQm9vbUNlbGxEZXRhaWxzW10gPSBbXTtcclxuICAgICAgICBfLmVhY2goY29sc19mb3VuZCwgY29sX25hbWUgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbWF0Y2hlZF9pdGVtcyA9IF8uZmlsdGVyKGlucHV0ZGF0YSwgbyA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gby5yb3dfbmFtZSA9PT0gcm93X25hbWUgJiYgby5jb2xfbmFtZSA9PT0gY29sX25hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoIW1hdGNoZWRfaXRlbXMgfHwgbWF0Y2hlZF9pdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJjb2xfbmFtZVwiOiBjb2xfbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBcImNvbG9yX2JnXCI6IG9wdGlvbnMubm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiY29sb3JfdGV4dFwiOiBvcHRpb25zLm5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl90ZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGlzcGxheV92YWx1ZVwiOiByZXBsYWNlVG9rZW5zKG9wdGlvbnMubm9uX21hdGNoaW5nX2NlbGxzX3RleHQpLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiaGlkZGVuXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIFwibGlua1wiOiBcIi1cIixcclxuICAgICAgICAgICAgICAgICAgICBcInJvd19uYW1lXCI6IHJvd19uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIFwidG9vbHRpcFwiOiBcIi1cIixcclxuICAgICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IE5hTlxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hlZF9pdGVtcyAmJiBtYXRjaGVkX2l0ZW1zLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgY29scy5wdXNoKG1hdGNoZWRfaXRlbXNbMF0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoZWRfaXRlbXMgJiYgbWF0Y2hlZF9pdGVtcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIFwiY29sX25hbWVcIjogY29sX25hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJjb2xvcl9iZ1wiOiBcImRhcmtyZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBcImNvbG9yX3RleHRcIjogXCJ3aGl0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGlzcGxheV92YWx1ZVwiOiBcIkR1cGxpY2F0ZSBtYXRjaGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJoaWRkZW5cIjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJsaW5rXCI6IFwiLVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIFwicm93X25hbWVcIjogcm93X25hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJ0b29sdGlwXCI6IFwiLVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogTmFOXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG91dHB1dC5wdXNoKGNvbHMpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvbHNfZm91bmQsXHJcbiAgICAgICAgb3V0cHV0LFxyXG4gICAgICAgIHJvd3NfZm91bmQsXHJcbiAgICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGRlZmF1bHRQYXR0ZXJuLFxyXG4gICAgc2VyaWVzVG9UYWJsZVxyXG59O1xyXG4iXX0=
\ No newline at end of file
diff --git a/dist/app/boom/Boom.interface.js b/dist/app/boom/Boom.interface.js
index 9c63e17..85eb880 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBJQm9vbVBhdHRlcm4ge1xyXG4gICAgYmdDb2xvcnM6IHN0cmluZztcclxuICAgIGJnQ29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xyXG4gICAgY2xpY2thYmxlX2NlbGxzX2xpbms6IHN0cmluZztcclxuICAgIGNvbF9uYW1lOiBzdHJpbmc7XHJcbiAgICBkZWNpbWFsczogTnVtYmVyO1xyXG4gICAgZGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBlbmFibGVfYmdDb2xvcjogQm9vbGVhbjtcclxuICAgIGVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlczogQm9vbGVhbjtcclxuICAgIGVuYWJsZV9jbGlja2FibGVfY2VsbHM6IEJvb2xlYW47XHJcbiAgICBlbmFibGVfdGV4dENvbG9yOiBCb29sZWFuO1xyXG4gICAgZW5hYmxlX3RleHRDb2xvcl9vdmVycmlkZXM6IEJvb2xlYW47XHJcbiAgICBlbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzOiBCb29sZWFuO1xyXG4gICAgZW5hYmxlX3RyYW5zZm9ybTogQm9vbGVhbjtcclxuICAgIGVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzOiBCb29sZWFuO1xyXG4gICAgZmlsdGVyOiB7XHJcbiAgICAgICAgdmFsdWVfYWJvdmU6IHN0cmluZztcclxuICAgICAgICB2YWx1ZV9iZWxvdzogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIGZvcm1hdDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgbnVsbF9jb2xvcjogc3RyaW5nO1xyXG4gICAgbnVsbF92YWx1ZTogc3RyaW5nO1xyXG4gICAgbnVsbF90ZXh0Y29sb3I6IHN0cmluZztcclxuICAgIHBhdHRlcm46IHN0cmluZztcclxuICAgIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3JzOiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xyXG4gICAgdGhyZXNob2xkczogc3RyaW5nO1xyXG4gICAgdGltZV9iYXNlZF90aHJlc2hvbGRzOiBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZFtdO1xyXG4gICAgdHJhbnNmb3JtX3ZhbHVlczogc3RyaW5nO1xyXG4gICAgdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXM6IHN0cmluZztcclxuICAgIHRvb2x0aXBUZW1wbGF0ZTogc3RyaW5nO1xyXG4gICAgdmFsdWVOYW1lOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tU2VyaWVzIHtcclxuICAgIGhpZGRlbjogQm9vbGVhbjtcclxuICAgIGNvbF9uYW1lOiBzdHJpbmc7XHJcbiAgICByb3dfbmFtZTogc3RyaW5nO1xyXG4gICAgZGlzcGxheV92YWx1ZTogc3RyaW5nO1xyXG4gICAgY29sb3JfYmc6IHN0cmluZztcclxuICAgIGNvbG9yX3RleHQ6IHN0cmluZztcclxuICAgIHRvb2x0aXA6IHN0cmluZztcclxuICAgIHZhbHVlX2Zvcm1hdHRlZDogc3RyaW5nO1xyXG4gICAgbGluazogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB7XHJcbiAgICBlbmFibGVkRGF5czogc3RyaW5nO1xyXG4gICAgZnJvbTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgdGhyZXNob2xkOiBzdHJpbmc7XHJcbiAgICB0bzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zIHtcclxuICAgIG5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl9iZzogc3RyaW5nO1xyXG4gICAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX3RleHQ6IHN0cmluZztcclxuICAgIG5vbl9tYXRjaGluZ19jZWxsc190ZXh0OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tUmVuZGVyaW5nT3B0aW9ucyB7XHJcbiAgICBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiBTdHJpbmc7XHJcbiAgICBoaWRlX2ZpcnN0X2NvbHVtbjogQm9vbGVhbjtcclxuICAgIGhpZGVfaGVhZGVyczogQm9vbGVhbjtcclxuICAgIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiBTdHJpbmc7XHJcbiAgICB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IFN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgSUJvb21DZWxsRGV0YWlscyB7XHJcbiAgICBoaWRkZW46IEJvb2xlYW47XHJcbiAgICBjb2xfbmFtZTogc3RyaW5nO1xyXG4gICAgcm93X25hbWU6IHN0cmluZztcclxuICAgIGNvbG9yX2JnOiBzdHJpbmc7XHJcbiAgICBjb2xvcl90ZXh0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5X3ZhbHVlOiBzdHJpbmc7XHJcbiAgICBsaW5rOiBzdHJpbmc7XHJcbiAgICB0b29sdGlwOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogbnVtYmVyO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbVRhYmxlIHtcclxuICAgIHJvd3NfZm91bmQ6IHN0cmluZ1tdO1xyXG4gICAgY29sc19mb3VuZDogc3RyaW5nW107XHJcbiAgICBvdXRwdXQ6IElCb29tQ2VsbERldGFpbHNbXVtdO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbUhUTUwge1xyXG4gICAgYm9keTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB7XHJcbiAgICBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zLFxyXG4gICAgSUJvb21SZW5kZXJpbmdPcHRpb25zLFxyXG4gICAgSUJvb21QYXR0ZXJuLFxyXG4gICAgSUJvb21TZXJpZXMsXHJcbiAgICBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCxcclxuICAgIElCb29tSFRNTCxcclxuICAgIElCb29tVGFibGUsXHJcbiAgICBJQm9vbUNlbGxEZXRhaWxzXHJcbn07XHJcbiJdfQ==
\ No newline at end of file
diff --git a/dist/app/boom/BoomOutput.js b/dist/app/boom/BoomOutput.js
index b8c3a2a..4fb23c7 100644
--- a/dist/app/boom/BoomOutput.js
+++ b/dist/app/boom/BoomOutput.js
@@ -1,73 +1,73 @@
-System.register(["lodash"], function (exports_1, context_1) {
- "use strict";
- var lodash_1, BoomOutput;
- var __moduleName = context_1 && context_1.id;
- return {
- setters: [
- function (lodash_1_1) {
- lodash_1 = lodash_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 || "";
- }
- return BoomOutput;
- }());
- exports_1("BoomOutput", BoomOutput);
- BoomOutput.prototype.getDataAsHTML = function (data, sorting_props) {
- var _this = this;
- 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) {
- output.body += "\n \n " + lodash_1.default.first(o.map(function (item) { return item.row_name; })) + "\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbU91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1lBR0E7Z0JBUUUsb0JBQVksT0FBOEI7b0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO29CQUNuRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQ3pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLElBQUksRUFBRSxDQUFDO29CQUMzRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztnQkFDbkUsQ0FBQztnQkFDSCxpQkFBQztZQUFELENBQUMsQUFmRCxJQWVDOztZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQVMsSUFBZ0IsRUFBRSxhQUFhO2dCQUF4QyxpQkF3RHBDO2dCQXZEQyxJQUFJLE1BQU0sR0FBYztvQkFDdEIsSUFBSSxFQUFFLEVBQUU7aUJBQ1QsQ0FBQztnQkFDRixJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMxRixJQUFJLGNBQVksR0FBRyxVQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVTt3QkFDaEMsSUFBSSxVQUFVLEtBQUcsS0FBSyxFQUFFOzRCQUN0QixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDO3lCQUM1RTs2QkFBTTs0QkFD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QUksU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxHQUFHLGdCQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFBLENBQUM7b0JBQ3JCLE9BQU8sMkdBRXNFLENBQUMsQ0FBQyxVQUFVLGdIQUNGLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFNBQVMsK0ZBQ2hFLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxpQkFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsa0JBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLFdBQUssQ0FBQyxDQUFDLGFBQWEsa0dBQ3pILENBQUMsQ0FBQyxRQUFRLGtHQUNWLENBQUMsQ0FBQyxRQUFRLG9HQUNSLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrR0FDeEIsQ0FBQyxDQUFDLFFBQVEsb0dBQ1IsQ0FBQyxDQUFDLFVBQVUsbUNBRXZGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgSUJvb21IVE1MLCBJQm9vbVRhYmxlLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMgLCBJQm9vbVNlcmllcyB9IGZyb20gXCIuL2luZGV4XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQm9vbU91dHB1dCB7XHJcbiAgcHVibGljIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6IFN0cmluZztcclxuICBwdWJsaWMgaGlkZV9maXJzdF9jb2x1bW46IEJvb2xlYW47XHJcbiAgcHVibGljIGhpZGVfaGVhZGVyczogQm9vbGVhbjtcclxuICBwdWJsaWMgdGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW46IFN0cmluZztcclxuICBwdWJsaWMgdGV4dF9hbGlnbm1lbnRfdmFsdWVzOiBTdHJpbmc7XHJcbiAgcHVibGljIGdldERhdGFBc0hUTUw7XHJcbiAgcHVibGljIGdldERhdGFBc0RlYnVnSFRNTDtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJQm9vbVJlbmRlcmluZ09wdGlvbnMpIHtcclxuICAgIHRoaXMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyA9IG9wdGlvbnMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyB8fCBcIlwiO1xyXG4gICAgdGhpcy5oaWRlX2ZpcnN0X2NvbHVtbiA9IG9wdGlvbnMuaGlkZV9maXJzdF9jb2x1bW47XHJcbiAgICB0aGlzLmhpZGVfaGVhZGVycyA9IG9wdGlvbnMuaGlkZV9oZWFkZXJzO1xyXG4gICAgdGhpcy50ZXh0X2FsaWdubWVudF9maXJzdGNvbHVtbiA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW4gfHwgXCJcIjtcclxuICAgIHRoaXMudGV4dF9hbGlnbm1lbnRfdmFsdWVzID0gb3B0aW9ucy50ZXh0X2FsaWdubWVudF92YWx1ZXMgfHwgXCJcIjtcclxuICB9XHJcbn1cclxuQm9vbU91dHB1dC5wcm90b3R5cGUuZ2V0RGF0YUFzSFRNTCA9IGZ1bmN0aW9uKGRhdGE6IElCb29tVGFibGUsIHNvcnRpbmdfcHJvcHMpOiBJQm9vbUhUTUwge1xyXG4gIGxldCBvdXRwdXQ6IElCb29tSFRNTCA9IHtcclxuICAgIGJvZHk6IFwiXCJcclxuICB9O1xyXG4gIGlmIChzb3J0aW5nX3Byb3BzICYmIHNvcnRpbmdfcHJvcHMuY29sX2luZGV4ICE9PSB1bmRlZmluZWQgJiYgc29ydGluZ19wcm9wcy5jb2xfaW5kZXggPiAtMSkge1xyXG4gICAgbGV0IHNvcnRGdW5jdGlvbiA9IChhLGIsc29ydE1ldGhvZCk9PntcclxuICAgICAgaWYgKHNvcnRNZXRob2Q9PT1cImFzY1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlIC0gYltzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGJbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlIC0gYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBkYXRhLm91dHB1dCA9IGRhdGEub3V0cHV0XHJcbiAgICAgICAgLmZpbHRlcihhPT4gIWlzTmFOKGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlKSlcclxuICAgICAgICAuY29uY2F0KGRhdGEub3V0cHV0LmZpbHRlcihhPT4gaXNOYU4oYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUpKSlcclxuICAgICAgICAuc29ydCgoYSxiKT0+c29ydEZ1bmN0aW9uKGEsYixzb3J0aW5nX3Byb3BzLmRpcmVjdGlvbikpO1xyXG4gIH1cclxuICBfLmVhY2goZGF0YS5vdXRwdXQsIG8gPT4ge1xyXG4gICAgaWYgKG8ubWFwKGl0ZW0gPT4gaXRlbS5oaWRkZW4udG9TdHJpbmcoKSkuaW5kZXhPZihcImZhbHNlXCIpID4gLTEpIHtcclxuICAgICAgb3V0cHV0LmJvZHkgKz0gXCI8dHI+XCI7XHJcbiAgICAgIGlmICh0aGlzLmhpZGVfZmlyc3RfY29sdW1uICE9PSB0cnVlKSB7XHJcbiAgICAgICAgb3V0cHV0LmJvZHkgKz0gYFxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246JHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR7Xy5maXJzdChvLm1hcChpdGVtID0+IGl0ZW0ucm93X25hbWUpKX1cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPmA7XHJcbiAgICAgIH1cclxuICAgICAgXy5lYWNoKG8sIGl0ZW0gPT4ge1xyXG4gICAgICAgIGxldCBpdGVtX3N0eWxlID0gYHBhZGRpbmc6NHB4O2JhY2tncm91bmQtY29sb3I6JHtpdGVtLmNvbG9yX2JnfTtjb2xvcjoke1xyXG4gICAgICAgICAgaXRlbS5jb2xvcl90ZXh0XHJcbiAgICAgICAgfTt0ZXh0LWFsaWduOiR7dGhpcy50ZXh0X2FsaWdubWVudF92YWx1ZXN9YDtcclxuICAgICAgICBsZXQgaXRlbV9kaXNwbGF5ID1cclxuICAgICAgICAgIGl0ZW0ubGluayA9PT0gXCIjXCJcclxuICAgICAgICAgICAgPyBpdGVtLmRpc3BsYXlfdmFsdWVcclxuICAgICAgICAgICAgOiBgPGEgaHJlZj1cIiR7aXRlbS5saW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiY29sb3I6JHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uY29sb3JfdGV4dFxyXG4gICAgICAgICAgICAgIH1cIj4ke2l0ZW0uZGlzcGxheV92YWx1ZX08L2E+YDtcclxuICAgICAgICBsZXQgdG9vbHRpcCA9XHJcbiAgICAgICAgICAhaXRlbS50b29sdGlwIHx8IGl0ZW0udG9vbHRpcCA9PT0gXCItXCJcclxuICAgICAgICAgICAgPyB1bmRlZmluZWRcclxuICAgICAgICAgICAgOiBgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtaHRtbD1cInRydWVcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIiR7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnRvb2x0aXBcclxuICAgICAgICAgICAgICB9XCIgYDtcclxuICAgICAgICBvdXRwdXQuYm9keSArPSBgXHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwiJHtpdGVtX3N0eWxlfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAke3Rvb2x0aXAgPyBgPHNwYW4gJHt0b29sdGlwfT5gIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXRlbV9kaXNwbGF5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAke3Rvb2x0aXAgPyBgPC9zcGFuPmAgOiBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICBgO1xyXG4gICAgICB9KTtcclxuICAgICAgb3V0cHV0LmJvZHkgKz0gXCI8L3RyPlwiO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBvdXRwdXQ7XHJcbn07XHJcbkJvb21PdXRwdXQucHJvdG90eXBlLmdldERhdGFBc0RlYnVnSFRNTCA9IGZ1bmN0aW9uKGRhdGE6IElCb29tU2VyaWVzW10gKTogc3RyaW5nIHtcclxuICBsZXQgZGVidWdkYXRhID0gYGA7XHJcbiAgICBkZWJ1Z2RhdGEgPSBfLm1hcChkYXRhLCBkID0+IHtcclxuICAgICAgICByZXR1cm4gYFxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwJTsgdGl0bGU9XCJTZXJpZXMgTmFtZVwiID4ke2Quc2VyaWVzTmFtZX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIk1hdGNoaW5nIFBhdHRlcm4gTmFtZVwiID4ke2QucGF0dGVybi5uYW1lIHx8IGQucGF0dGVybi5wYXR0ZXJuIHx8IFwiRGVmYXVsdFwifTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiVmFsdWUgOiAke1N0cmluZyhkLnZhbHVlX2Zvcm1hdHRlZCB8fCBcIm51bGxcIil9IC8gUmF3IDogJHtTdHJpbmcoZC52YWx1ZSB8fCBcIm51bGxcIil9IC8gU3RhdCA6ICR7ZC5wYXR0ZXJuLnZhbHVlTmFtZX1cIj4ke2QuZGlzcGxheV92YWx1ZX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlJvdyBuYW1lXCIgPiR7ZC5yb3dfbmFtZX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIkNvbCBuYW1lXCIgPiR7ZC5jb2xfbmFtZX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlRocmVzaG9sZHNcIiA+JHtkLnRocmVzaG9sZHMuam9pbihcIixcIil9PC90ZD5cclxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJCRyBDb2xvclwiID4ke2QuY29sb3JfYmd9PC90ZD5cclxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJUZXh0IENvbG9yXCIgPiR7ZC5jb2xvcl90ZXh0fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICBgO1xyXG4gICAgfSkuam9pbihgYCk7XHJcbiAgICByZXR1cm4gZGVidWdkYXRhO1xyXG59O1xyXG4iXX0=
\ No newline at end of file
+System.register(["lodash"], function (exports_1, context_1) {
+ "use strict";
+ var lodash_1, BoomOutput;
+ var __moduleName = context_1 && context_1.id;
+ return {
+ setters: [
+ function (lodash_1_1) {
+ lodash_1 = lodash_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 || "";
+ }
+ return BoomOutput;
+ }());
+ exports_1("BoomOutput", BoomOutput);
+ BoomOutput.prototype.getDataAsHTML = function (data, sorting_props) {
+ var _this = this;
+ 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) {
+ output.body += "\n \n " + lodash_1.default.first(o.map(function (item) { return item.row_name; })) + "\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbU91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1lBR0E7Z0JBUUUsb0JBQVksT0FBOEI7b0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO29CQUNuRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQ3pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLElBQUksRUFBRSxDQUFDO29CQUMzRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztnQkFDbkUsQ0FBQztnQkFDSCxpQkFBQztZQUFELENBQUMsQUFmRCxJQWVDOztZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQVMsSUFBZ0IsRUFBRSxhQUFhO2dCQUF4QyxpQkF3RHBDO2dCQXZEQyxJQUFJLE1BQU0sR0FBYztvQkFDdEIsSUFBSSxFQUFFLEVBQUU7aUJBQ1QsQ0FBQztnQkFDRixJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMxRixJQUFJLGNBQVksR0FBRyxVQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsVUFBVTt3QkFDaEMsSUFBSSxVQUFVLEtBQUcsS0FBSyxFQUFFOzRCQUN0QixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDO3lCQUM1RTs2QkFBTTs0QkFD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QUksU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxHQUFHLGdCQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFBLENBQUM7b0JBQ3JCLE9BQU8sMkdBRXNFLENBQUMsQ0FBQyxVQUFVLGdIQUNGLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFNBQVMsK0ZBQ2hFLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxpQkFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsa0JBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLFdBQUssQ0FBQyxDQUFDLGFBQWEsa0dBQ3pILENBQUMsQ0FBQyxRQUFRLGtHQUNWLENBQUMsQ0FBQyxRQUFRLG9HQUNSLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrR0FDeEIsQ0FBQyxDQUFDLFFBQVEsb0dBQ1IsQ0FBQyxDQUFDLFVBQVUsbUNBRXZGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IElCb29tSFRNTCwgSUJvb21UYWJsZSwgSUJvb21SZW5kZXJpbmdPcHRpb25zICwgSUJvb21TZXJpZXMgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgY2xhc3MgQm9vbU91dHB1dCB7XG4gIHB1YmxpYyBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiBTdHJpbmc7XG4gIHB1YmxpYyBoaWRlX2ZpcnN0X2NvbHVtbjogQm9vbGVhbjtcbiAgcHVibGljIGhpZGVfaGVhZGVyczogQm9vbGVhbjtcbiAgcHVibGljIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiBTdHJpbmc7XG4gIHB1YmxpYyB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IFN0cmluZztcbiAgcHVibGljIGdldERhdGFBc0hUTUw7XG4gIHB1YmxpYyBnZXREYXRhQXNEZWJ1Z0hUTUw7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElCb29tUmVuZGVyaW5nT3B0aW9ucykge1xuICAgIHRoaXMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyA9IG9wdGlvbnMuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyB8fCBcIlwiO1xuICAgIHRoaXMuaGlkZV9maXJzdF9jb2x1bW4gPSBvcHRpb25zLmhpZGVfZmlyc3RfY29sdW1uO1xuICAgIHRoaXMuaGlkZV9oZWFkZXJzID0gb3B0aW9ucy5oaWRlX2hlYWRlcnM7XG4gICAgdGhpcy50ZXh0X2FsaWdubWVudF9maXJzdGNvbHVtbiA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW4gfHwgXCJcIjtcbiAgICB0aGlzLnRleHRfYWxpZ25tZW50X3ZhbHVlcyA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfdmFsdWVzIHx8IFwiXCI7XG4gIH1cbn1cbkJvb21PdXRwdXQucHJvdG90eXBlLmdldERhdGFBc0hUTUwgPSBmdW5jdGlvbihkYXRhOiBJQm9vbVRhYmxlLCBzb3J0aW5nX3Byb3BzKTogSUJvb21IVE1MIHtcbiAgbGV0IG91dHB1dDogSUJvb21IVE1MID0ge1xuICAgIGJvZHk6IFwiXCJcbiAgfTtcbiAgaWYgKHNvcnRpbmdfcHJvcHMgJiYgc29ydGluZ19wcm9wcy5jb2xfaW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0aW5nX3Byb3BzLmNvbF9pbmRleCA+IC0xKSB7XG4gICAgbGV0IHNvcnRGdW5jdGlvbiA9IChhLGIsc29ydE1ldGhvZCk9PntcbiAgICAgIGlmIChzb3J0TWV0aG9kPT09XCJhc2NcIikge1xuICAgICAgICByZXR1cm4gYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUgLSBiW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBiW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZSAtIGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlO1xuICAgICAgfVxuICAgIH07XG4gICAgZGF0YS5vdXRwdXQgPSBkYXRhLm91dHB1dFxuICAgICAgICAuZmlsdGVyKGE9PiAhaXNOYU4oYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUpKVxuICAgICAgICAuY29uY2F0KGRhdGEub3V0cHV0LmZpbHRlcihhPT4gaXNOYU4oYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUpKSlcbiAgICAgICAgLnNvcnQoKGEsYik9PnNvcnRGdW5jdGlvbihhLGIsc29ydGluZ19wcm9wcy5kaXJlY3Rpb24pKTtcbiAgfVxuICBfLmVhY2goZGF0YS5vdXRwdXQsIG8gPT4ge1xuICAgIGlmIChvLm1hcChpdGVtID0+IGl0ZW0uaGlkZGVuLnRvU3RyaW5nKCkpLmluZGV4T2YoXCJmYWxzZVwiKSA+IC0xKSB7XG4gICAgICBvdXRwdXQuYm9keSArPSBcIjx0cj5cIjtcbiAgICAgIGlmICh0aGlzLmhpZGVfZmlyc3RfY29sdW1uICE9PSB0cnVlKSB7XG4gICAgICAgIG91dHB1dC5ib2R5ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjoke1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtfLmZpcnN0KG8ubWFwKGl0ZW0gPT4gaXRlbS5yb3dfbmFtZSkpfVxuICAgICAgICAgICAgICAgICAgICA8L3RkPmA7XG4gICAgICB9XG4gICAgICBfLmVhY2gobywgaXRlbSA9PiB7XG4gICAgICAgIGxldCBpdGVtX3N0eWxlID0gYHBhZGRpbmc6NHB4O2JhY2tncm91bmQtY29sb3I6JHtpdGVtLmNvbG9yX2JnfTtjb2xvcjoke1xuICAgICAgICAgIGl0ZW0uY29sb3JfdGV4dFxuICAgICAgICB9O3RleHQtYWxpZ246JHt0aGlzLnRleHRfYWxpZ25tZW50X3ZhbHVlc31gO1xuICAgICAgICBsZXQgaXRlbV9kaXNwbGF5ID1cbiAgICAgICAgICBpdGVtLmxpbmsgPT09IFwiI1wiXG4gICAgICAgICAgICA/IGl0ZW0uZGlzcGxheV92YWx1ZVxuICAgICAgICAgICAgOiBgPGEgaHJlZj1cIiR7aXRlbS5saW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiY29sb3I6JHtcbiAgICAgICAgICAgICAgICBpdGVtLmNvbG9yX3RleHRcbiAgICAgICAgICAgICAgfVwiPiR7aXRlbS5kaXNwbGF5X3ZhbHVlfTwvYT5gO1xuICAgICAgICBsZXQgdG9vbHRpcCA9XG4gICAgICAgICAgIWl0ZW0udG9vbHRpcCB8fCBpdGVtLnRvb2x0aXAgPT09IFwiLVwiXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtaHRtbD1cInRydWVcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIiR7XG4gICAgICAgICAgICAgICAgaXRlbS50b29sdGlwXG4gICAgICAgICAgICAgIH1cIiBgO1xuICAgICAgICBvdXRwdXQuYm9keSArPSBgXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIiR7aXRlbV9zdHlsZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dG9vbHRpcCA/IGA8c3BhbiAke3Rvb2x0aXB9PmAgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aXRlbV9kaXNwbGF5fVxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0b29sdGlwID8gYDwvc3Bhbj5gIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICBgO1xuICAgICAgfSk7XG4gICAgICBvdXRwdXQuYm9keSArPSBcIjwvdHI+XCI7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG91dHB1dDtcbn07XG5Cb29tT3V0cHV0LnByb3RvdHlwZS5nZXREYXRhQXNEZWJ1Z0hUTUwgPSBmdW5jdGlvbihkYXRhOiBJQm9vbVNlcmllc1tdICk6IHN0cmluZyB7XG4gIGxldCBkZWJ1Z2RhdGEgPSBgYDtcbiAgICBkZWJ1Z2RhdGEgPSBfLm1hcChkYXRhLCBkID0+IHtcbiAgICAgICAgcmV0dXJuIGBcbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwJTsgdGl0bGU9XCJTZXJpZXMgTmFtZVwiID4ke2Quc2VyaWVzTmFtZX08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJNYXRjaGluZyBQYXR0ZXJuIE5hbWVcIiA+JHtkLnBhdHRlcm4ubmFtZSB8fCBkLnBhdHRlcm4ucGF0dGVybiB8fCBcIkRlZmF1bHRcIn08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJWYWx1ZSA6ICR7U3RyaW5nKGQudmFsdWVfZm9ybWF0dGVkIHx8IFwibnVsbFwiKX0gLyBSYXcgOiAke1N0cmluZyhkLnZhbHVlIHx8IFwibnVsbFwiKX0gLyBTdGF0IDogJHtkLnBhdHRlcm4udmFsdWVOYW1lfVwiPiR7ZC5kaXNwbGF5X3ZhbHVlfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlJvdyBuYW1lXCIgPiR7ZC5yb3dfbmFtZX08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJDb2wgbmFtZVwiID4ke2QuY29sX25hbWV9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiVGhyZXNob2xkc1wiID4ke2QudGhyZXNob2xkcy5qb2luKFwiLFwiKX08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJCRyBDb2xvclwiID4ke2QuY29sb3JfYmd9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiVGV4dCBDb2xvclwiID4ke2QuY29sb3JfdGV4dH08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICBgO1xuICAgIH0pLmpvaW4oYGApO1xuICAgIHJldHVybiBkZWJ1Z2RhdGE7XG59O1xuIl19
\ No newline at end of file
diff --git a/dist/app/boom/BoomPattern.js b/dist/app/boom/BoomPattern.js
index f5f4e8f..4e192b8 100644
--- a/dist/app/boom/BoomPattern.js
+++ b/dist/app/boom/BoomPattern.js
@@ -1,80 +1,80 @@
-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.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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVBhdHRlcm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbVBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7WUFFQTtnQkF5Q0kscUJBQVksT0FBWTtvQkF4Q2hCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQXlDMUIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO3FCQUNsRDtvQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDcEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7b0JBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO29CQUMxRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztvQkFDakksSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxD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TyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUcsQ0FBQyxDQUFDO1lBRUYsV0FBVyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRztnQkFDOUMsSUFBSSx3QkFBd0IsR0FBNEIsSUFBSSw4QkFBc0IsRUFBRSxDQUFDO2dCQUNyRixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQztZQUVGLFdBQVcsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLEdBQUcsVUFBVSxLQUFhO2dCQUN4RSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDdkQ7WUFDTCxDQUFDLENBQUM7WUFFRixXQUFXLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxVQUFVLE1BQVc7Z0JBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNqRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbVBhdHRlcm4sIElCb29tVGltZUJhc2VkVGhyZXNob2xkLCBCb29tVGltZUJhc2VkVGhyZXNob2xkIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuXHJcbmNsYXNzIEJvb21QYXR0ZXJuIGltcGxlbWVudHMgSUJvb21QYXR0ZXJuIHtcclxuICAgIHByaXZhdGUgcm93X2NvbF93cmFwcGVyID0gXCJfXCI7XHJcbiAgICBwdWJsaWMgYmdDb2xvcnM6IHN0cmluZztcclxuICAgIHB1YmxpYyBiZ0NvbG9yc19vdmVycmlkZXM6IHN0cmluZztcclxuICAgIHB1YmxpYyBjbGlja2FibGVfY2VsbHNfbGluazogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbF9uYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGVjaW1hbHM6IE51bWJlcjtcclxuICAgIHB1YmxpYyBkZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBlbmFibGVfYmdDb2xvcjogQm9vbGVhbjtcclxuICAgIHB1YmxpYyBlbmFibGVfYmdDb2xvcl9vdmVycmlkZXM6IEJvb2xlYW47XHJcbiAgICBwdWJsaWMgZW5hYmxlX2NsaWNrYWJsZV9jZWxsczogQm9vbGVhbjtcclxuICAgIHB1YmxpYyBlbmFibGVfdGV4dENvbG9yOiBCb29sZWFuO1xyXG4gICAgcHVibGljIGVuYWJsZV90ZXh0Q29sb3Jfb3ZlcnJpZGVzOiBCb29sZWFuO1xyXG4gICAgcHVibGljIGVuYWJsZV90aW1lX2Jhc2VkX3RocmVzaG9sZHM6IEJvb2xlYW47XHJcbiAgICBwdWJsaWMgZW5hYmxlX3RyYW5zZm9ybTogQm9vbGVhbjtcclxuICAgIHB1YmxpYyBlbmFibGVfdHJhbnNmb3JtX292ZXJyaWRlczogQm9vbGVhbjtcclxuICAgIHB1YmxpYyBmaWx0ZXI6IHtcclxuICAgICAgICB2YWx1ZV9hYm92ZTogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlX2JlbG93OiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgcHVibGljIGZvcm1hdDogc3RyaW5nO1xyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBudWxsX2NvbG9yOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbnVsbF92YWx1ZTogc3RyaW5nO1xyXG4gICAgcHVibGljIG51bGxfdGV4dGNvbG9yOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGF0dGVybjogc3RyaW5nO1xyXG4gICAgcHVibGljIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdGV4dENvbG9yczogc3RyaW5nO1xyXG4gICAgcHVibGljIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdGhyZXNob2xkczogc3RyaW5nO1xyXG4gICAgcHVibGljIHRpbWVfYmFzZWRfdGhyZXNob2xkczogSUJvb21UaW1lQmFzZWRUaHJlc2hvbGRbXTtcclxuICAgIHB1YmxpYyB0cmFuc2Zvcm1fdmFsdWVzOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXM6IHN0cmluZztcclxuICAgIHB1YmxpYyB0b29sdGlwVGVtcGxhdGU6IHN0cmluZztcclxuICAgIHB1YmxpYyB2YWx1ZU5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBpbnZlcnNlQkdDb2xvcnM7XHJcbiAgICBwdWJsaWMgaW52ZXJzZVRleHRDb2xvcnM7XHJcbiAgICBwdWJsaWMgaW52ZXJzZVRyYW5zZm9ybVZhbHVlcztcclxuICAgIHB1YmxpYyBhZGRfdGltZV9iYXNlZF90aHJlc2hvbGRzO1xyXG4gICAgcHVibGljIHJlbW92ZV90aW1lX2Jhc2VkX3RocmVzaG9sZHM7XHJcbiAgICBwdWJsaWMgc2V0VW5pdEZvcm1hdDtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSkge1xyXG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucm93X2NvbF93cmFwcGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm93X2NvbF93cmFwcGVyID0gb3B0aW9ucy5yb3dfY29sX3dyYXBwZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYmdDb2xvcnMgPSBvcHRpb25zICYmIG9wdGlvbnMuYmdDb2xvcnMgPyBvcHRpb25zLmJnQ29sb3JzIDogXCJncmVlbnxvcmFuZ2V8cmVkXCI7XHJcbiAgICAgICAgdGhpcy5iZ0NvbG9yc19vdmVycmlkZXMgPSBvcHRpb25zICYmIG9wdGlvbnMuYmdDb2xvcnNfb3ZlcnJpZGVzID8gb3B0aW9ucy5iZ0NvbG9yc19vdmVycmlkZXMgOiBcIjAtPmdyZWVufDItPnJlZHwxLT55ZWxsb3dcIjtcclxuICAgICAgICB0aGlzLnRleHRDb2xvcnMgPSBvcHRpb25zICYmIG9wdGlvbnMudGV4dENvbG9ycyA/IG9wdGlvbnMudGV4dENvbG9ycyA6IFwicmVkfG9yYW5nZXxncmVlblwiO1xyXG4gICAgICAgIHRoaXMudGV4dENvbG9yc19vdmVycmlkZXMgPSBvcHRpb25zICYmIG9wdGlvbnMudGV4dENvbG9yc19vdmVycmlkZXMgPyBvcHRpb25zLnRleHRDb2xvcnNfb3ZlcnJpZGVzIDogXCIwLT5yZWR8Mi0+Z3JlZW58MS0+eWVsbG93XCI7XHJcbiAgICAgICAgdGhpcy5jbGlja2FibGVfY2VsbHNfbGluayA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jbGlja2FibGVfY2VsbHNfbGluayA/IG9wdGlvbnMuY2xpY2thYmxlX2NlbGxzX2xpbmsgOiBcIlwiO1xyXG4gICAgICAgIHRoaXMuY29sX25hbWUgPSBvcHRpb25zICYmIG9wdGlvbnMuY29sX25hbWUgPyBvcHRpb25zLmNvbF9uYW1lIDogdGhpcy5yb3dfY29sX3dyYXBwZXIgKyBcIjFcIiArIHRoaXMucm93X2NvbF93cmFwcGVyO1xyXG4gICAgICAgIHRoaXMuZGVjaW1hbHMgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVjaW1hbHMgPyBvcHRpb25zLmRlY2ltYWxzIDogMjtcclxuICAgICAgICB0aGlzLmRlbGltaXRlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWxpbWl0ZXIgPyBvcHRpb25zLmRlbGltaXRlciA6IFwiLlwiO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlX2JnQ29sb3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlX3RleHRDb2xvciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlX3RleHRDb2xvcl9vdmVycmlkZXMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVuYWJsZV9jbGlja2FibGVfY2VsbHMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVuYWJsZV90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVuYWJsZV90cmFuc2Zvcm0gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIgPSB7XHJcbiAgICAgICAgICAgIHZhbHVlX2Fib3ZlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWx1ZV9iZWxvdzogXCJcIixcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucyAmJiBvcHRpb25zLmZvcm1hdCA/IG9wdGlvbnMuZm9ybWF0IDogXCJub25lXCI7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLm5hbWUgPyBvcHRpb25zLm5hbWUgOiBcIk5ldyBQYXR0ZXJuXCI7XHJcbiAgICAgICAgdGhpcy5udWxsX2NvbG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLm51bGxfY29sb3IgPyBvcHRpb25zLm51bGxfY29sb3IgOiBcImRhcmtyZWRcIjtcclxuICAgICAgICB0aGlzLm51bGxfdGV4dGNvbG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLm51bGxfVGV4dGNvbG9yID8gb3B0aW9ucy5udWxsX1RleHRjb2xvciA6IFwiYmxhY2tcIjtcclxuICAgICAgICB0aGlzLm51bGxfdmFsdWUgPSBvcHRpb25zICYmIG9wdGlvbnMubnVsbF92YWx1ZSA/IG9wdGlvbnMubnVsbF92YWx1ZSA6IFwiTm8gZGF0YVwiO1xyXG4gICAgICAgIHRoaXMucGF0dGVybiA9IG9wdGlvbnMgJiYgb3B0aW9ucy5wYXR0ZXJuID8gb3B0aW9ucy5wYXR0ZXJuIDogXCJec2VydmVyLipjcHUkXCI7XHJcbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5yb3dfbmFtZSA/IG9wdGlvbnMucm93X25hbWUgOiB0aGlzLnJvd19jb2xfd3JhcHBlciArIFwiMFwiICsgdGhpcy5yb3dfY29sX3dyYXBwZXI7XHJcbiAgICAgICAgdGhpcy50aHJlc2hvbGRzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRocmVzaG9sZHMgPyBvcHRpb25zLnRocmVzaG9sZHMgOiBcIjcwLDkwXCI7XHJcbiAgICAgICAgdGhpcy50aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBbXTtcclxuICAgICAgICB0aGlzLnRyYW5zZm9ybV92YWx1ZXMgPSBvcHRpb25zICYmIG9wdGlvbnMudHJhbnNmb3JtX3ZhbHVlcyA/IG9wdGlvbnMudHJhbnNmb3JtX3ZhbHVlcyA6IFwiX3ZhbHVlX3xfdmFsdWVffF92YWx1ZV9cIjtcclxuICAgICAgICB0aGlzLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID8gb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcyA6IFwiMC0+ZG93bnwxLT51cFwiO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFRlbXBsYXRlID0gb3B0aW9ucyAmJiBvcHRpb25zLnRvb2x0aXBUZW1wbGF0ZSA/IG9wdGlvbnMudG9vbHRpcFRlbXBsYXRlIDogXCJTZXJpZXMgOiBfc2VyaWVzXyA8YnIvPlJvdyBOYW1lIDogX3Jvd19uYW1lXyA8YnIvPkNvbCBOYW1lIDogX2NvbF9uYW1lXyA8YnIvPlZhbHVlIDogX3ZhbHVlX1wiO1xyXG4gICAgICAgIHRoaXMudmFsdWVOYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLnZhbHVlTmFtZSA/IG9wdGlvbnMudmFsdWVOYW1lIDogXCJhdmdcIjtcclxuICAgIH1cclxufVxyXG5cclxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmludmVyc2VCR0NvbG9ycyA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcclxuICAgIHRoaXMuYmdDb2xvcnMgPSB0aGlzLmJnQ29sb3JzID8gdGhpcy5iZ0NvbG9ycy5zcGxpdChcInxcIikucmV2ZXJzZSgpLmpvaW4oXCJ8XCIpIDogXCJcIjtcclxufTtcclxuXHJcbkJvb21QYXR0ZXJuLnByb3RvdHlwZS5pbnZlcnNlVGV4dENvbG9ycyA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dENvbG9ycyA9IHRoaXMudGV4dENvbG9ycyA/IHRoaXMudGV4dENvbG9ycy5zcGxpdChcInxcIikucmV2ZXJzZSgpLmpvaW4oXCJ8XCIpIDogXCJcIjtcclxufTtcclxuXHJcbkJvb21QYXR0ZXJuLnByb3RvdHlwZS5pbnZlcnNlVHJhbnNmb3JtVmFsdWVzID0gZnVuY3Rpb24gKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2Zvcm1fdmFsdWVzID0gdGhpcy50cmFuc2Zvcm1fdmFsdWVzID8gdGhpcy50cmFuc2Zvcm1fdmFsdWVzLnNwbGl0KFwifFwiKS5yZXZlcnNlKCkuam9pbihcInxcIikgOiBcIlwiO1xyXG59O1xyXG5cclxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmFkZF90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmdW5jdGlvbiAoKTogdm9pZCB7XHJcbiAgICBsZXQgbmV3X3RpbWVfYmFzZWRfdGhyZXNob2xkOiBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCA9IG5ldyBCb29tVGltZUJhc2VkVGhyZXNob2xkKCk7XHJcbiAgICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcyA9IHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzIHx8IFtdO1xyXG4gICAgdGhpcy50aW1lX2Jhc2VkX3RocmVzaG9sZHMucHVzaChuZXdfdGltZV9iYXNlZF90aHJlc2hvbGQpO1xyXG59O1xyXG5cclxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLnJlbW92ZV90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmdW5jdGlvbiAoaW5kZXg6IE51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcy5zcGxpY2UoTnVtYmVyKGluZGV4KSwgMSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5Cb29tUGF0dGVybi5wcm90b3R5cGUuc2V0VW5pdEZvcm1hdCA9IGZ1bmN0aW9uIChmb3JtYXQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtYXQgPSBmb3JtYXQgJiYgZm9ybWF0LnZhbHVlID8gZm9ybWF0LnZhbHVlIDogXCJub25lXCI7XHJcbn07XHJcblxyXG5leHBvcnQge1xyXG4gICAgQm9vbVBhdHRlcm5cclxufTtcclxuIl19
\ No newline at end of file
diff --git a/dist/app/boom/BoomSeries.js b/dist/app/boom/BoomSeries.js
index e8221ba..40bf736 100644
--- a/dist/app/boom/BoomSeries.js
+++ b/dist/app/boom/BoomSeries.js
@@ -1,245 +1,245 @@
-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, 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 () {
- BoomSeries = (function () {
- function BoomSeries(seriesData, panelDefaultPattern, panelPatterns, options) {
- 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) {
- 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)) {
- var decimalInfo = index_1.getDecimalsForValue(this.value, this.decimals);
- var formatFunc = kbn_1.default.valueFormats[this.pattern.format];
- this.value_formatted = formatFunc(this.value, decimalInfo.decimals, decimalInfo.scaledDecimals);
- this.display_value = String(this.value_formatted);
- }
- this.template_value = this.display_value;
- }
- 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.col_name = this.getColName(this.pattern, this.row_col_wrapper, this.seriesName.toString(), this.row_name);
- this.thresholds = this.getThresholds();
- this.color_bg = this.getBGColor();
- this.color_text = this.getTextColor();
- 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 || "#" : "#";
- this.replaceTokens();
- this.cleanup();
- }
- BoomSeries.prototype.getThresholds = function () {
- var thresholds = this.pattern.thresholds.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 () {
- 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 {
- if (this.pattern.enable_bgColor && this.pattern.bgColors) {
- var list_of_bgColors_based_on_thresholds = this.pattern.bgColors.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 = this.pattern.bgColors_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 (_bgColors_overrides.length > 0 && _bgColors_overrides[0] !== "") {
- bgColor = ("" + _bgColors_overrides[0]).trim();
- }
- }
- }
- return index_1.normalizeColor(bgColor);
- };
- BoomSeries.prototype.getTextColor = function () {
- var _this = this;
- var textColor = "white";
- if (lodash_1.default.isNaN(this.value) || this.value === null) {
- textColor = this.pattern.null_textcolor || "white";
- }
- else {
- if (this.pattern.enable_textColor && this.pattern.textColors) {
- var list_of_textColors_based_on_thresholds = this.pattern.textColors.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 = this.pattern.textColors_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 (_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 = this.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 {
- 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 () {
- 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);
- 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);
- };
- return BoomSeries;
- }());
- exports_1("BoomSeries", BoomSeries);
- }
- };
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tU2VyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBT0E7Z0JBcUJJLG9CQUFZLFVBQWUsRUFBRSxtQkFBd0IsRUFBRSxhQUFvQixFQUFFLE9BQVk7b0JBQXpGLGlCQXVEQztvQkE5RE0sa0JBQWEsR0FBRyxHQUFHLENBQUM7b0JBQ3BCLFlBQU8sR0FBRyxHQUFHLENBQUM7b0JBQ2QsVUFBSyxHQUFHLEdBQUcsQ0FBQztvQkFDWixvQkFBZSxHQUFHLEdBQUcsQ0FBQztvQkFDdEIsU0FBSSxHQUFHLEdBQUcsQ0FBQztvQkFJZCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3hFLElBQUksYUFBYSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDMUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7b0JBQ3pCLElB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SSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25ILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO29CQUMzRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztvQkFDakYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7b0JBRTdGLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzNELENBQUM7Z0JBQ0wsaUJBQUM7WUFBRCxDQUFDLEFBek9ELElBeU9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8vPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dyYWZhbmEtc2RrLW1vY2tzL2FwcC9oZWFkZXJzL2NvbW1vbi5kLnRzXCIgLz5cclxuXHJcbmltcG9ydCBrYm4gZnJvbSAnYXBwL2NvcmUvdXRpbHMva2JuJztcclxuaW1wb3J0IFRpbWVTZXJpZXMgZnJvbSBcImFwcC9jb3JlL3RpbWVfc2VyaWVzMlwiO1xyXG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7IElCb29tU2VyaWVzLCByZXBsYWNlVG9rZW5zLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucywgZ2V0RGVjaW1hbHNGb3JWYWx1ZSwgZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQsIG5vcm1hbGl6ZUNvbG9yIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuXHJcbmNsYXNzIEJvb21TZXJpZXMgaW1wbGVtZW50cyBJQm9vbVNlcmllcyB7XHJcbiAgICBwcml2YXRlIGRlYnVnX21vZGU6IEJvb2xlYW47XHJcbiAgICBwcml2YXRlIHBhdHRlcm46IGFueTtcclxuICAgIHByaXZhdGUgc2VyaWVzTmFtZTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBjdXJyZW50VGltZVN0YW1wOiBEYXRlO1xyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZV9yb3dfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZV9jb2xfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZV92YWx1ZTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSByb3dfY29sX3dyYXBwZXI6IHN0cmluZztcclxuICAgIHByaXZhdGUgZGVjaW1hbHM6IE51bWJlcjtcclxuICAgIHB1YmxpYyBjb2xfbmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY29sb3JfYmc6IHN0cmluZztcclxuICAgIHB1YmxpYyBjb2xvcl90ZXh0OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGlzcGxheV92YWx1ZSA9IFwiLVwiO1xyXG4gICAgcHVibGljIHRvb2x0aXAgPSBcIi1cIjtcclxuICAgIHB1YmxpYyB2YWx1ZSA9IE5hTjtcclxuICAgIHB1YmxpYyB2YWx1ZV9mb3JtYXR0ZWQgPSBcIi1cIjtcclxuICAgIHB1YmxpYyBsaW5rID0gXCItXCI7XHJcbiAgICBwdWJsaWMgdGhyZXNob2xkczogTnVtYmVyW107XHJcbiAgICBwdWJsaWMgaGlkZGVuOiBCb29sZWFuO1xyXG4gICAgY29uc3RydWN0b3Ioc2VyaWVzRGF0YTogYW55LCBwYW5lbERlZmF1bHRQYXR0ZXJuOiBhbnksIHBhbmVsUGF0dGVybnM6IGFueVtdLCBvcHRpb25zOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmRlYnVnX21vZGUgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWdfbW9kZSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICBsZXQgbnVsbFBvaW50TW9kZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5udWxsUG9pbnRNb2RlID8gb3B0aW9ucy5udWxsUG9pbnRNb2RlIDogXCJjb25uZWN0ZWRcIjtcclxuICAgICAgICB0aGlzLnJvd19jb2xfd3JhcHBlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5yb3dfY29sX3dyYXBwZXIgPyBvcHRpb25zLnJvd19jb2xfd3JhcHBlciA6IFwiX1wiO1xyXG4gICAgICAgIHRoaXMuc2VyaWVzTmFtZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9jb2xfbmFtZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV92YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnBhdHRlcm4gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgbGV0IHNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKHtcclxuICAgICAgICAgICAgYWxpYXM6IHNlcmllc0RhdGEudGFyZ2V0LFxyXG4gICAgICAgICAgICBkYXRhcG9pbnRzOiBzZXJpZXNEYXRhLmRhdGFwb2ludHMgfHwgW11cclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXJpZXMuZmxvdHBhaXJzID0gc2VyaWVzLmdldEZsb3RQYWlycyhudWxsUG9pbnRNb2RlKTtcclxuICAgICAgICB0aGlzLnNlcmllc05hbWUgPSBzZXJpZXMuYWxpYXMgfHwgc2VyaWVzLmFsaWFzRXNjYXBlZCB8fCBzZXJpZXMubGFiZWwgfHwgc2VyaWVzLmlkO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRpbWVTdGFtcCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgaWYgKHNlcmllcy5kYXRhUG9pbnRzICYmIHNlcmllcy5kYXRhUG9pbnRzLmxlbmd0aCA+IDAgJiYgXy5sYXN0KHNlcmllcy5kYXRhUG9pbnRzKS5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZVN0YW1wID0gbmV3IERhdGUoXy5sYXN0KHNlcmllcy5kYXRhUG9pbnRzKVsxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucGF0dGVybiA9IF8uZmluZChwYW5lbFBhdHRlcm5zLmZpbHRlcihwID0+IHsgcmV0dXJuIHAuZGlzYWJsZWQgIT09IHRydWU7IH0pLCBwID0+IHRoaXMuc2VyaWVzTmFtZS5tYXRjaChwLnBhdHRlcm4pKSB8fCBwYW5lbERlZmF1bHRQYXR0ZXJuO1xyXG4gICAgICAgIHRoaXMuZGVjaW1hbHMgPSB0aGlzLnBhdHRlcm4uZGVjaW1hbHMgfHwgcGFuZWxEZWZhdWx0UGF0dGVybi5kZWNpbWFscyB8fCAyO1xyXG4gICAgICAgIGlmIChzZXJpZXMuc3RhdHMpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHNlcmllcy5zdGF0c1t0aGlzLnBhdHRlcm4udmFsdWVOYW1lXTtcclxuICAgICAgICAgICAgaWYgKF8uaXNOYU4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5wYXR0ZXJuLm51bGxfdmFsdWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRlY2ltYWxJbmZvOiBhbnkgPSBnZXREZWNpbWFsc0ZvclZhbHVlKHRoaXMudmFsdWUsIHRoaXMuZGVjaW1hbHMpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1hdEZ1bmMgPSBrYm4udmFsdWVGb3JtYXRzW3RoaXMucGF0dGVybi5mb3JtYXRdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZV9mb3JtYXR0ZWQgPSBmb3JtYXRGdW5jKHRoaXMudmFsdWUsIGRlY2ltYWxJbmZvLmRlY2ltYWxzLCBkZWNpbWFsSW5mby5zY2FsZWREZWNpbWFscyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZV9mb3JtYXR0ZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMucGF0dGVybiAmJiB0aGlzLnBhdHRlcm4uZmlsdGVyICYmICh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2JlbG93ICE9PSBcIlwiIHx8IHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYWJvdmUgIT09IFwiXCIpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2JlbG93ICE9PSBcIlwiICYmIHRoaXMudmFsdWUgPCArKHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYmVsb3cpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYWJvdmUgIT09IFwiXCIgJiYgdGhpcy52YWx1ZSA+ICsodGhpcy5wYXR0ZXJuLmZpbHRlci52YWx1ZV9hYm92ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJvd19uYW1lID0gdGhpcy5nZXRSb3dOYW1lKHRoaXMucGF0dGVybiwgdGhpcy5yb3dfY29sX3dyYXBwZXIsIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLmNvbF9uYW1lID0gdGhpcy5nZXRDb2xOYW1lKHRoaXMucGF0dGVybiwgdGhpcy5yb3dfY29sX3dyYXBwZXIsIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpLCB0aGlzLnJvd19uYW1lKTtcclxuICAgICAgICB0aGlzLnRocmVzaG9sZHMgPSB0aGlzLmdldFRocmVzaG9sZHMoKTtcclxuICAgICAgICB0aGlzLmNvbG9yX2JnID0gdGhpcy5nZXRCR0NvbG9yKCk7XHJcbiAgICAgICAgdGhpcy5jb2xvcl90ZXh0ID0gdGhpcy5nZXRUZXh0Q29sb3IoKTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlX3ZhbHVlID0gdGhpcy5nZXREaXNwbGF5VmFsdWVUZW1wbGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMucGF0dGVybi50b29sdGlwVGVtcGxhdGUgfHwgXCJTZXJpZXMgOiBfc2VyaWVzXyA8YnIvPlJvdyBOYW1lIDogX3Jvd19uYW1lXyA8YnIvPkNvbCBOYW1lIDogX2NvbF9uYW1lXyA8YnIvPlZhbHVlIDogX3ZhbHVlX1wiO1xyXG4gICAgICAgIHRoaXMubGluayA9IHRoaXMucGF0dGVybi5lbmFibGVfY2xpY2thYmxlX2NlbGxzID8gdGhpcy5wYXR0ZXJuLmNsaWNrYWJsZV9jZWxsc19saW5rIHx8IFwiI1wiIDogXCIjXCI7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlVG9rZW5zKCk7XHJcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFRocmVzaG9sZHMoKSB7XHJcbiAgICAgICAgbGV0IHRocmVzaG9sZHMgPSB0aGlzLnBhdHRlcm4udGhyZXNob2xkcy5zcGxpdChcIixcIikubWFwKGQgPT4gK2QpO1xyXG4gICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RpbWVfYmFzZWRfdGhyZXNob2xkcykge1xyXG4gICAgICAgICAgICBsZXQgbWV0cmljcmVjaXZlZFRpbWVTdGFtcCA9IHRoaXMuY3VycmVudFRpbWVTdGFtcCB8fCBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICBsZXQgbWV0cmljcmVjaXZlZFRpbWVTdGFtcF9pbm51bWJlciA9IG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXAuZ2V0SG91cnMoKSAqIDEwMCArIG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXAuZ2V0TWludXRlcygpO1xyXG4gICAgICAgICAgICBsZXQgd2Vla2RheXMgPSBbXCJzdW5cIiwgXCJtb25cIiwgXCJ0dWVcIiwgXCJ3ZWRcIiwgXCJ0aHVcIiwgXCJmcmlcIiwgXCJzYXRcIl07XHJcbiAgICAgICAgICAgIF8uZWFjaCh0aGlzLnBhdHRlcm4udGltZV9iYXNlZF90aHJlc2hvbGRzLCAodGJ0eCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRidHggJiYgdGJ0eC5mcm9tICYmIHRidHgudG8gJiYgdGJ0eC5lbmFibGVkRGF5cyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyID49ICsodGJ0eC5mcm9tKSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAobWV0cmljcmVjaXZlZFRpbWVTdGFtcF9pbm51bWJlciA8PSArKHRidHgudG8pKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh0YnR4LmVuYWJsZWREYXlzLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih3ZWVrZGF5c1ttZXRyaWNyZWNpdmVkVGltZVN0YW1wLmdldERheSgpXSkgPiAtMSkgJiZcclxuICAgICAgICAgICAgICAgICAgICB0YnR4LnRocmVzaG9sZFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkcyA9ICh0YnR4LnRocmVzaG9sZCArIFwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoZCA9PiArZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyZXNob2xkcztcclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0QkdDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBiZ0NvbG9yID0gXCJ0cmFuc3BhcmVudFwiO1xyXG4gICAgICAgIGlmIChfLmlzTmFOKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgYmdDb2xvciA9IHRoaXMucGF0dGVybi5udWxsX2NvbG9yIHx8IFwiZGFya3JlZFwiO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLm51bGxfY29sb3IgPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgIGJnQ29sb3IgPSBcInRyYW5zcGFyZW50XCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV9iZ0NvbG9yICYmIHRoaXMucGF0dGVybi5iZ0NvbG9ycykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxpc3Rfb2ZfYmdDb2xvcnNfYmFzZWRfb25fdGhyZXNob2xkcyA9IHRoaXMucGF0dGVybi5iZ0NvbG9ycy5zcGxpdChcInxcIik7XHJcbiAgICAgICAgICAgICAgICBiZ0NvbG9yID0gZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQodGhpcy50aHJlc2hvbGRzLCBsaXN0X29mX2JnQ29sb3JzX2Jhc2VkX29uX3RocmVzaG9sZHMsIHRoaXMudmFsdWUsIGJnQ29sb3IpO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlcyAmJiB0aGlzLnBhdHRlcm4uYmdDb2xvcnNfb3ZlcnJpZGVzICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgX2JnQ29sb3JzX292ZXJyaWRlcyA9IHRoaXMucGF0dGVybi5iZ0NvbG9yc19vdmVycmlkZXMuc3BsaXQoXCJ8XCIpLmZpbHRlcihjb24gPT4gY29uLmluZGV4T2YoXCItPlwiKSkubWFwKGNvbiA9PiBjb24uc3BsaXQoXCItPlwiKSkuZmlsdGVyKGNvbiA9PiArKGNvblswXSkgPT09IHRoaXMudmFsdWUpLm1hcChjb24gPT4gY29uWzFdKTtcclxuICAgICAgICAgICAgICAgIGlmIChfYmdDb2xvcnNfb3ZlcnJpZGVzLmxlbmd0aCA+IDAgJiYgX2JnQ29sb3JzX292ZXJyaWRlc1swXSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJnQ29sb3IgPSAoXCJcIiArIF9iZ0NvbG9yc19vdmVycmlkZXNbMF0pLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbm9ybWFsaXplQ29sb3IoYmdDb2xvcik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFRleHRDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCB0ZXh0Q29sb3IgPSBcIndoaXRlXCI7XHJcbiAgICAgICAgaWYgKF8uaXNOYU4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0ZXh0Q29sb3IgPSB0aGlzLnBhdHRlcm4ubnVsbF90ZXh0Y29sb3IgfHwgXCJ3aGl0ZVwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RleHRDb2xvciAmJiB0aGlzLnBhdHRlcm4udGV4dENvbG9ycykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxpc3Rfb2ZfdGV4dENvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzID0gdGhpcy5wYXR0ZXJuLnRleHRDb2xvcnMuc3BsaXQoXCJ8XCIpO1xyXG4gICAgICAgICAgICAgICAgdGV4dENvbG9yID0gZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQodGhpcy50aHJlc2hvbGRzLCBsaXN0X29mX3RleHRDb2xvcnNfYmFzZWRfb25fdGhyZXNob2xkcywgdGhpcy52YWx1ZSwgdGV4dENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV90ZXh0Q29sb3Jfb3ZlcnJpZGVzICYmIHRoaXMucGF0dGVybi50ZXh0Q29sb3JzX292ZXJyaWRlcyAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgbGV0IF90ZXh0Q29sb3JzX292ZXJyaWRlcyA9IHRoaXMucGF0dGVybi50ZXh0Q29sb3JzX292ZXJyaWRlcy5zcGxpdChcInxcIikuZmlsdGVyKGNvbiA9PiBjb24uaW5kZXhPZihcIi0+XCIpKS5tYXAoY29uID0+IGNvbi5zcGxpdChcIi0+XCIpKS5maWx0ZXIoY29uID0+ICsoY29uWzBdKSA9PT0gdGhpcy52YWx1ZSkubWFwKGNvbiA9PiBjb25bMV0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKF90ZXh0Q29sb3JzX292ZXJyaWRlcy5sZW5ndGggPiAwICYmIF90ZXh0Q29sb3JzX292ZXJyaWRlc1swXSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHRDb2xvciA9IChcIlwiICsgX3RleHRDb2xvcnNfb3ZlcnJpZGVzWzBdKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNvbG9yKHRleHRDb2xvcik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldERpc3BsYXlWYWx1ZVRlbXBsYXRlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZV92YWx1ZTtcclxuICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRlbXBsYXRlID0gdGhpcy5wYXR0ZXJuLm51bGxfdmFsdWUgfHwgXCJObyBkYXRhXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4ubnVsbF92YWx1ZSA9PT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdHJhbnNmb3JtX3ZhbHVlcyA9IHRoaXMucGF0dGVybi50cmFuc2Zvcm1fdmFsdWVzLnNwbGl0KFwifFwiKTtcclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQodGhpcy50aHJlc2hvbGRzLCB0cmFuc2Zvcm1fdmFsdWVzLCB0aGlzLnZhbHVlLCB0ZW1wbGF0ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtX292ZXJyaWRlcyAmJiB0aGlzLnBhdHRlcm4udHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgIGxldCBfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMgPSB0aGlzLnBhdHRlcm4udHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMuc3BsaXQoXCJ8XCIpLmZpbHRlcihjb24gPT4gY29uLmluZGV4T2YoXCItPlwiKSkubWFwKGNvbiA9PiBjb24uc3BsaXQoXCItPlwiKSkuZmlsdGVyKGNvbiA9PiArKGNvblswXSkgPT09IHRoaXMudmFsdWUpLm1hcChjb24gPT4gY29uWzFdKTtcclxuICAgICAgICAgICAgICAgIGlmIChfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMubGVuZ3RoID4gMCAmJiBfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXNbMF0gIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChcIlwiICsgX3RyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzWzBdKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtIHx8IHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtX292ZXJyaWRlcykge1xyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSB0aGlzLnNlcmllc05hbWUuc3BsaXQodGhpcy5wYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikucmVkdWNlKChyLCBpdCwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cCh0aGlzLnJvd19jb2xfd3JhcHBlciArIGkgKyB0aGlzLnJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XHJcbiAgICAgICAgICAgICAgICB9LCB0ZW1wbGF0ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBjbGVhbnVwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRlYnVnX21vZGUgIT09IHRydWUpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2VyaWVzTmFtZTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGF0dGVybjtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMudGhyZXNob2xkcztcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGVjaW1hbHM7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMudGVtcGxhdGVfdmFsdWU7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlX2Zvcm1hdHRlZDtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVudFRpbWVTdGFtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFJvd05hbWUocGF0dGVybiwgcm93X2NvbF93cmFwcGVyOiBzdHJpbmcsIHNlcmllc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJvd19uYW1lID0gcGF0dGVybi5yb3dfbmFtZTtcclxuICAgICAgICByb3dfbmFtZSA9IHNlcmllc05hbWUuc3BsaXQocGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLnJlZHVjZSgociwgaXQsIGkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHIucmVwbGFjZShuZXcgUmVnRXhwKHJvd19jb2xfd3JhcHBlciArIGkgKyByb3dfY29sX3dyYXBwZXIsIFwiZ1wiKSwgaXQpO1xyXG4gICAgICAgIH0sIHJvd19uYW1lKTtcclxuICAgICAgICBpZiAoc2VyaWVzTmFtZS5zcGxpdChwYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIHJvd19uYW1lID0gc2VyaWVzTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZSA9IHJvd19uYW1lO1xyXG4gICAgICAgIHJldHVybiByb3dfbmFtZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0Q29sTmFtZShwYXR0ZXJuLCByb3dfY29sX3dyYXBwZXI6IHN0cmluZywgc2VyaWVzTmFtZTogc3RyaW5nLCByb3dfbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgY29sX25hbWUgPSBwYXR0ZXJuLmNvbF9uYW1lO1xyXG4gICAgICAgIGNvbF9uYW1lID0gc2VyaWVzTmFtZS5zcGxpdChwYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikucmVkdWNlKChyLCBpdCwgaSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gci5yZXBsYWNlKG5ldyBSZWdFeHAocm93X2NvbF93cmFwcGVyICsgaSArIHJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XHJcbiAgICAgICAgfSwgY29sX25hbWUpO1xyXG4gICAgICAgIGlmIChzZXJpZXNOYW1lLnNwbGl0KHBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5sZW5ndGggPT09IDEgfHwgcm93X25hbWUgPT09IHNlcmllc05hbWUpIHtcclxuICAgICAgICAgICAgY29sX25hbWUgPSBwYXR0ZXJuLmNvbF9uYW1lIHx8IFwiVmFsdWVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9jb2xfbmFtZSA9IGNvbF9uYW1lO1xyXG4gICAgICAgIHJldHVybiBjb2xfbmFtZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgcmVwbGFjZVRva2VucygpIHtcclxuICAgICAgICAvLyBjb2xuYW1lcyBjYW4gYmUgc3BlY2lmaWVkIGluIHRoZSBsaW5rXHJcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5zZXJpZXNOYW1lLnNwbGl0KHRoaXMucGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLnJlZHVjZSgociwgaXQsIGkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHIucmVwbGFjZShuZXcgUmVnRXhwKHRoaXMucm93X2NvbF93cmFwcGVyICsgaSArIHRoaXMucm93X2NvbF93cmFwcGVyLCBcImdcIiksIGl0KTtcclxuICAgICAgICB9LCB0aGlzLmxpbmspO1xyXG4gICAgICAgIC8vIF9zZXJpZXNfIGNhbiBiZSBzcGVjaWZpZWQgaW4gUm93LCBDb2wsIERpc3BsYXkgVmFsdWUsIFRvb2x0aXAgJiBMaW5rXHJcbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHRoaXMudGVtcGxhdGVfcm93X25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5jb2xfbmFtZSA9IHRoaXMudGVtcGxhdGVfY29sX25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9zZXJpZXNfXCIsIFwiZ1wiKSwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkudHJpbSgpKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKS50cmltKCkpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMudGVtcGxhdGVfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgLy8gX3Jvd19uYW1lXyBjYW4gYmUgc3BlY2lmaWVkIGluIENvbCwgRGlzcGxheSBWYWx1ZSwgVG9vbHRpcCAmIExpbmtcclxuICAgICAgICB0aGlzLmNvbF9uYW1lID0gdGhpcy5jb2xfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5yb3dfbmFtZS50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMucm93X25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMucm93X25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIHRoaXMucm93X25hbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgLy8gX2NvbF9uYW1lXyBjYW4gYmUgc3BlY2lmaWVkIGluIFJvdywgRGlzcGxheSBWYWx1ZSwgVG9vbHRpcCAmIExpbmtcclxuICAgICAgICB0aGlzLnJvd19uYW1lID0gdGhpcy5yb3dfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfY29sX25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5jb2xfbmFtZS50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgLy8gX3ZhbHVlX3Jhd18gY2FuIGJlIHNwZWNpZmllZCBpbiBEaXNwbGF5IFZhbHVlLCBUb29sdGlwICYgTGlua1xyXG4gICAgICAgIGxldCB2YWx1ZV9yYXcgPSBfLmlzTmFOKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09IG51bGwgPyBcIm51bGxcIiA6IHRoaXMudmFsdWUudG9TdHJpbmcoKS50cmltKCk7XHJcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV9yYXdfXCIsIFwiZ1wiKSwgdmFsdWVfcmF3KTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX3Jhd19cIiwgXCJnXCIpLCB2YWx1ZV9yYXcpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfcmF3X1wiLCBcImdcIiksIHZhbHVlX3Jhdyk7XHJcbiAgICAgICAgLy8gX3ZhbHVlXyBjYW4gYmUgc3BlY2lmaWVkIGluIERpc3BsYXkgVmFsdWUsIFRvb2x0aXAgJiBMaW5rXHJcbiAgICAgICAgbGV0IHZhbHVlX2Zvcm1hdHRlZCA9IF8uaXNOYU4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCA/IFwibnVsbFwiIDogdGhpcy52YWx1ZV9mb3JtYXR0ZWQudG9TdHJpbmcoKS50cmltKCk7XHJcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV9cIiwgXCJnXCIpLCB2YWx1ZV9mb3JtYXR0ZWQpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfXCIsIFwiZ1wiKSwgdmFsdWVfZm9ybWF0dGVkKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX1wiLCBcImdcIiksIHZhbHVlX2Zvcm1hdHRlZCk7XHJcbiAgICAgICAgLy8gRkEgJiBJbWcgdHJhbnNmb3JtcyBjYW4gYmUgc3BlY2lmaWVkIGluIFJvdywgQ29sICYgRGlzcGxheSBWYWx1ZVxyXG4gICAgICAgIHRoaXMucm93X25hbWUgPSByZXBsYWNlVG9rZW5zKHRoaXMucm93X25hbWUpO1xyXG4gICAgICAgIHRoaXMuY29sX25hbWUgPSByZXBsYWNlVG9rZW5zKHRoaXMuY29sX25hbWUpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHJlcGxhY2VUb2tlbnModGhpcy5kaXNwbGF5X3ZhbHVlKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHtcclxuICAgIEJvb21TZXJpZXNcclxufTtcclxuIl19
\ No newline at end of file
+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, 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 () {
+ BoomSeries = (function () {
+ function BoomSeries(seriesData, panelDefaultPattern, panelPatterns, options) {
+ 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) {
+ 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)) {
+ var decimalInfo = index_1.getDecimalsForValue(this.value, this.decimals);
+ var formatFunc = kbn_1.default.valueFormats[this.pattern.format];
+ this.value_formatted = formatFunc(this.value, decimalInfo.decimals, decimalInfo.scaledDecimals);
+ this.display_value = String(this.value_formatted);
+ }
+ this.template_value = this.display_value;
+ }
+ 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.col_name = this.getColName(this.pattern, this.row_col_wrapper, this.seriesName.toString(), this.row_name);
+ this.thresholds = this.getThresholds();
+ this.color_bg = this.getBGColor();
+ this.color_text = this.getTextColor();
+ 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 || "#" : "#";
+ this.replaceTokens();
+ this.cleanup();
+ }
+ BoomSeries.prototype.getThresholds = function () {
+ var thresholds = this.pattern.thresholds.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 () {
+ 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 {
+ if (this.pattern.enable_bgColor && this.pattern.bgColors) {
+ var list_of_bgColors_based_on_thresholds = this.pattern.bgColors.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 = this.pattern.bgColors_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 (_bgColors_overrides.length > 0 && _bgColors_overrides[0] !== "") {
+ bgColor = ("" + _bgColors_overrides[0]).trim();
+ }
+ }
+ }
+ return index_1.normalizeColor(bgColor);
+ };
+ BoomSeries.prototype.getTextColor = function () {
+ 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 {
+ if (this.pattern.enable_textColor && this.pattern.textColors) {
+ var list_of_textColors_based_on_thresholds = this.pattern.textColors.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 = this.pattern.textColors_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 (_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 = this.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 {
+ 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 () {
+ 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);
+ 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);
+ };
+ return BoomSeries;
+ }());
+ exports_1("BoomSeries", BoomSeries);
+ }
+ };
+});
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tU2VyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBT0E7Z0JBcUJJLG9CQUFZLFVBQWUsRUFBRSxtQkFBd0IsRUFBRSxhQUFvQixFQUFFLE9BQVk7b0JBQXpGLGlCQXVEQztvQkE5RE0sa0JBQWEsR0FBRyxHQUFHLENBQUM7b0JBQ3BCLFlBQU8sR0FBRyxHQUFHLENBQUM7b0JBQ2QsVUFBSyxHQUFHLEdBQUcsQ0FBQztvQkFDWixvQkFBZSxHQUFHLEdBQUcsQ0FBQztvQkFDdEIsU0FBSSxHQUFHLEdBQUcsQ0FBQztvQkFJZCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3hFLElBQUksYUFBYSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDMUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7b0JBQ3pCLElB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LElBQUksZUFBZSxHQUFHLGdCQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNuSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztvQkFDM0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7b0JBQ2pGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO29CQUU3RixJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMzRCxDQUFDO2dCQUNMLGlCQUFDO1lBQUQsQ0FBQyxBQXpPRCxJQXlPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLzxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ncmFmYW5hLXNkay1tb2Nrcy9hcHAvaGVhZGVycy9jb21tb24uZC50c1wiIC8+XG5cbmltcG9ydCBrYm4gZnJvbSAnYXBwL2NvcmUvdXRpbHMva2JuJztcbmltcG9ydCBUaW1lU2VyaWVzIGZyb20gXCJhcHAvY29yZS90aW1lX3NlcmllczJcIjtcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IElCb29tU2VyaWVzLCByZXBsYWNlVG9rZW5zLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucywgZ2V0RGVjaW1hbHNGb3JWYWx1ZSwgZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQsIG5vcm1hbGl6ZUNvbG9yIH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgQm9vbVNlcmllcyBpbXBsZW1lbnRzIElCb29tU2VyaWVzIHtcbiAgICBwcml2YXRlIGRlYnVnX21vZGU6IEJvb2xlYW47XG4gICAgcHJpdmF0ZSBwYXR0ZXJuOiBhbnk7XG4gICAgcHJpdmF0ZSBzZXJpZXNOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjdXJyZW50VGltZVN0YW1wOiBEYXRlO1xuICAgIHByaXZhdGUgdGVtcGxhdGVfcm93X25hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHRlbXBsYXRlX2NvbF9uYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZV92YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcm93X2NvbF93cmFwcGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWNpbWFsczogTnVtYmVyO1xuICAgIHB1YmxpYyBjb2xfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByb3dfbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xvcl9iZzogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xvcl90ZXh0OiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlfdmFsdWUgPSBcIi1cIjtcbiAgICBwdWJsaWMgdG9vbHRpcCA9IFwiLVwiO1xuICAgIHB1YmxpYyB2YWx1ZSA9IE5hTjtcbiAgICBwdWJsaWMgdmFsdWVfZm9ybWF0dGVkID0gXCItXCI7XG4gICAgcHVibGljIGxpbmsgPSBcIi1cIjtcbiAgICBwdWJsaWMgdGhyZXNob2xkczogTnVtYmVyW107XG4gICAgcHVibGljIGhpZGRlbjogQm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihzZXJpZXNEYXRhOiBhbnksIHBhbmVsRGVmYXVsdFBhdHRlcm46IGFueSwgcGFuZWxQYXR0ZXJuczogYW55W10sIG9wdGlvbnM6IGFueSkge1xuICAgICAgICB0aGlzLmRlYnVnX21vZGUgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWdfbW9kZSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgbGV0IG51bGxQb2ludE1vZGUgPSBvcHRpb25zICYmIG9wdGlvbnMubnVsbFBvaW50TW9kZSA/IG9wdGlvbnMubnVsbFBvaW50TW9kZSA6IFwiY29ubmVjdGVkXCI7XG4gICAgICAgIHRoaXMucm93X2NvbF93cmFwcGVyID0gb3B0aW9ucyAmJiBvcHRpb25zLnJvd19jb2xfd3JhcHBlciA/IG9wdGlvbnMucm93X2NvbF93cmFwcGVyIDogXCJfXCI7XG4gICAgICAgIHRoaXMuc2VyaWVzTmFtZSA9IFwiXCI7XG4gICAgICAgIHRoaXMudGVtcGxhdGVfcm93X25hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lID0gXCJcIjtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV92YWx1ZSA9IFwiXCI7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGF0dGVybiA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKHtcbiAgICAgICAgICAgIGFsaWFzOiBzZXJpZXNEYXRhLnRhcmdldCxcbiAgICAgICAgICAgIGRhdGFwb2ludHM6IHNlcmllc0RhdGEuZGF0YXBvaW50cyB8fCBbXVxuICAgICAgICB9KTtcbiAgICAgICAgc2VyaWVzLmZsb3RwYWlycyA9IHNlcmllcy5nZXRGbG90UGFpcnMobnVsbFBvaW50TW9kZSk7XG4gICAgICAgIHRoaXMuc2VyaWVzTmFtZSA9IHNlcmllcy5hbGlhcyB8fCBzZXJpZXMuYWxpYXNFc2NhcGVkIHx8IHNlcmllcy5sYWJlbCB8fCBzZXJpZXMuaWQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRpbWVTdGFtcCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGlmIChzZXJpZXMuZGF0YVBvaW50cyAmJiBzZXJpZXMuZGF0YVBvaW50cy5sZW5ndGggPiAwICYmIF8ubGFzdChzZXJpZXMuZGF0YVBvaW50cykubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lU3RhbXAgPSBuZXcgRGF0ZShfLmxhc3Qoc2VyaWVzLmRhdGFQb2ludHMpWzFdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdHRlcm4gPSBfLmZpbmQocGFuZWxQYXR0ZXJucy5maWx0ZXIocCA9PiB7IHJldHVybiBwLmRpc2FibGVkICE9PSB0cnVlOyB9KSwgcCA9PiB0aGlzLnNlcmllc05hbWUubWF0Y2gocC5wYXR0ZXJuKSkgfHwgcGFuZWxEZWZhdWx0UGF0dGVybjtcbiAgICAgICAgdGhpcy5kZWNpbWFscyA9IHRoaXMucGF0dGVybi5kZWNpbWFscyB8fCBwYW5lbERlZmF1bHRQYXR0ZXJuLmRlY2ltYWxzIHx8IDI7XG4gICAgICAgIGlmIChzZXJpZXMuc3RhdHMpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBzZXJpZXMuc3RhdHNbdGhpcy5wYXR0ZXJuLnZhbHVlTmFtZV07XG4gICAgICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5wYXR0ZXJuLm51bGxfdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IFN0cmluZyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVjaW1hbEluZm86IGFueSA9IGdldERlY2ltYWxzRm9yVmFsdWUodGhpcy52YWx1ZSwgdGhpcy5kZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgbGV0IGZvcm1hdEZ1bmMgPSBrYm4udmFsdWVGb3JtYXRzW3RoaXMucGF0dGVybi5mb3JtYXRdO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVfZm9ybWF0dGVkID0gZm9ybWF0RnVuYyh0aGlzLnZhbHVlLCBkZWNpbWFsSW5mby5kZWNpbWFscywgZGVjaW1hbEluZm8uc2NhbGVkRGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IFN0cmluZyh0aGlzLnZhbHVlX2Zvcm1hdHRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlX3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMucGF0dGVybiAmJiB0aGlzLnBhdHRlcm4uZmlsdGVyICYmICh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2JlbG93ICE9PSBcIlwiIHx8IHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYWJvdmUgIT09IFwiXCIpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmZpbHRlci52YWx1ZV9iZWxvdyAhPT0gXCJcIiAmJiB0aGlzLnZhbHVlIDwgKyh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2JlbG93KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZmlsdGVyLnZhbHVlX2Fib3ZlICE9PSBcIlwiICYmIHRoaXMudmFsdWUgPiArKHRoaXMucGF0dGVybi5maWx0ZXIudmFsdWVfYWJvdmUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucm93X25hbWUgPSB0aGlzLmdldFJvd05hbWUodGhpcy5wYXR0ZXJuLCB0aGlzLnJvd19jb2xfd3JhcHBlciwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmNvbF9uYW1lID0gdGhpcy5nZXRDb2xOYW1lKHRoaXMucGF0dGVybiwgdGhpcy5yb3dfY29sX3dyYXBwZXIsIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpLCB0aGlzLnJvd19uYW1lKTtcbiAgICAgICAgdGhpcy50aHJlc2hvbGRzID0gdGhpcy5nZXRUaHJlc2hvbGRzKCk7XG4gICAgICAgIHRoaXMuY29sb3JfYmcgPSB0aGlzLmdldEJHQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb2xvcl90ZXh0ID0gdGhpcy5nZXRUZXh0Q29sb3IoKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV92YWx1ZSA9IHRoaXMuZ2V0RGlzcGxheVZhbHVlVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy5wYXR0ZXJuLnRvb2x0aXBUZW1wbGF0ZSB8fCBcIlNlcmllcyA6IF9zZXJpZXNfIDxici8+Um93IE5hbWUgOiBfcm93X25hbWVfIDxici8+Q29sIE5hbWUgOiBfY29sX25hbWVfIDxici8+VmFsdWUgOiBfdmFsdWVfXCI7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMucGF0dGVybi5lbmFibGVfY2xpY2thYmxlX2NlbGxzID8gdGhpcy5wYXR0ZXJuLmNsaWNrYWJsZV9jZWxsc19saW5rIHx8IFwiI1wiIDogXCIjXCI7XG4gICAgICAgIHRoaXMucmVwbGFjZVRva2VucygpO1xuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRUaHJlc2hvbGRzKCkge1xuICAgICAgICBsZXQgdGhyZXNob2xkcyA9IHRoaXMucGF0dGVybi50aHJlc2hvbGRzLnNwbGl0KFwiLFwiKS5tYXAoZCA9PiArZCk7XG4gICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RpbWVfYmFzZWRfdGhyZXNob2xkcykge1xuICAgICAgICAgICAgbGV0IG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXAgPSB0aGlzLmN1cnJlbnRUaW1lU3RhbXAgfHwgbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGxldCBtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyID0gbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXRIb3VycygpICogMTAwICsgbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXRNaW51dGVzKCk7XG4gICAgICAgICAgICBsZXQgd2Vla2RheXMgPSBbXCJzdW5cIiwgXCJtb25cIiwgXCJ0dWVcIiwgXCJ3ZWRcIiwgXCJ0aHVcIiwgXCJmcmlcIiwgXCJzYXRcIl07XG4gICAgICAgICAgICBfLmVhY2godGhpcy5wYXR0ZXJuLnRpbWVfYmFzZWRfdGhyZXNob2xkcywgKHRidHgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGJ0eCAmJiB0YnR4LmZyb20gJiYgdGJ0eC50byAmJiB0YnR4LmVuYWJsZWREYXlzICYmXG4gICAgICAgICAgICAgICAgICAgIChtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyID49ICsodGJ0eC5mcm9tKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgKG1ldHJpY3JlY2l2ZWRUaW1lU3RhbXBfaW5udW1iZXIgPD0gKyh0YnR4LnRvKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgKHRidHguZW5hYmxlZERheXMudG9Mb3dlckNhc2UoKS5pbmRleE9mKHdlZWtkYXlzW21ldHJpY3JlY2l2ZWRUaW1lU3RhbXAuZ2V0RGF5KCldKSA+IC0xKSAmJlxuICAgICAgICAgICAgICAgICAgICB0YnR4LnRocmVzaG9sZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRzID0gKHRidHgudGhyZXNob2xkICsgXCJcIikuc3BsaXQoXCIsXCIpLm1hcChkID0+ICtkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyZXNob2xkcztcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRCR0NvbG9yKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBiZ0NvbG9yID0gXCJ0cmFuc3BhcmVudFwiO1xuICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBiZ0NvbG9yID0gdGhpcy5wYXR0ZXJuLm51bGxfY29sb3IgfHwgXCJkYXJrcmVkXCI7XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLm51bGxfY29sb3IgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBiZ0NvbG9yID0gXCJ0cmFuc3BhcmVudFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfYmdDb2xvciAmJiB0aGlzLnBhdHRlcm4uYmdDb2xvcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgbGlzdF9vZl9iZ0NvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzID0gdGhpcy5wYXR0ZXJuLmJnQ29sb3JzLnNwbGl0KFwifFwiKTtcbiAgICAgICAgICAgICAgICBiZ0NvbG9yID0gZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQodGhpcy50aHJlc2hvbGRzLCBsaXN0X29mX2JnQ29sb3JzX2Jhc2VkX29uX3RocmVzaG9sZHMsIHRoaXMudmFsdWUsIGJnQ29sb3IpO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLmVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlcyAmJiB0aGlzLnBhdHRlcm4uYmdDb2xvcnNfb3ZlcnJpZGVzICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IF9iZ0NvbG9yc19vdmVycmlkZXMgPSB0aGlzLnBhdHRlcm4uYmdDb2xvcnNfb3ZlcnJpZGVzLnNwbGl0KFwifFwiKS5maWx0ZXIoY29uID0+IGNvbi5pbmRleE9mKFwiLT5cIikpLm1hcChjb24gPT4gY29uLnNwbGl0KFwiLT5cIikpLmZpbHRlcihjb24gPT4gKyhjb25bMF0pID09PSB0aGlzLnZhbHVlKS5tYXAoY29uID0+IGNvblsxXSk7XG4gICAgICAgICAgICAgICAgaWYgKF9iZ0NvbG9yc19vdmVycmlkZXMubGVuZ3RoID4gMCAmJiBfYmdDb2xvcnNfb3ZlcnJpZGVzWzBdICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGJnQ29sb3IgPSAoXCJcIiArIF9iZ0NvbG9yc19vdmVycmlkZXNbMF0pLnRyaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNvbG9yKGJnQ29sb3IpO1xuICAgIH1cbiAgICBwcml2YXRlIGdldFRleHRDb2xvcigpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdGV4dENvbG9yID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSA/IFwiYmxhY2tcIiA6IFwid2hpdGVcIjtcbiAgICAgICAgaWYgKF8uaXNOYU4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGV4dENvbG9yID0gdGhpcy5wYXR0ZXJuLm51bGxfdGV4dGNvbG9yIHx8IHRleHRDb2xvcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RleHRDb2xvciAmJiB0aGlzLnBhdHRlcm4udGV4dENvbG9ycykge1xuICAgICAgICAgICAgICAgIGxldCBsaXN0X29mX3RleHRDb2xvcnNfYmFzZWRfb25fdGhyZXNob2xkcyA9IHRoaXMucGF0dGVybi50ZXh0Q29sb3JzLnNwbGl0KFwifFwiKTtcbiAgICAgICAgICAgICAgICB0ZXh0Q29sb3IgPSBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCh0aGlzLnRocmVzaG9sZHMsIGxpc3Rfb2ZfdGV4dENvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzLCB0aGlzLnZhbHVlLCB0ZXh0Q29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdGV4dENvbG9yX292ZXJyaWRlcyAmJiB0aGlzLnBhdHRlcm4udGV4dENvbG9yc19vdmVycmlkZXMgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBsZXQgX3RleHRDb2xvcnNfb3ZlcnJpZGVzID0gdGhpcy5wYXR0ZXJuLnRleHRDb2xvcnNfb3ZlcnJpZGVzLnNwbGl0KFwifFwiKS5maWx0ZXIoY29uID0+IGNvbi5pbmRleE9mKFwiLT5cIikpLm1hcChjb24gPT4gY29uLnNwbGl0KFwiLT5cIikpLmZpbHRlcihjb24gPT4gKyhjb25bMF0pID09PSB0aGlzLnZhbHVlKS5tYXAoY29uID0+IGNvblsxXSk7XG4gICAgICAgICAgICAgICAgaWYgKF90ZXh0Q29sb3JzX292ZXJyaWRlcy5sZW5ndGggPiAwICYmIF90ZXh0Q29sb3JzX292ZXJyaWRlc1swXSAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3IgPSAoXCJcIiArIF90ZXh0Q29sb3JzX292ZXJyaWRlc1swXSkudHJpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplQ29sb3IodGV4dENvbG9yKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXREaXNwbGF5VmFsdWVUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlX3ZhbHVlO1xuICAgICAgICBpZiAoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IHRoaXMucGF0dGVybi5udWxsX3ZhbHVlIHx8IFwiTm8gZGF0YVwiO1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5udWxsX3ZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMucGF0dGVybi5lbmFibGVfdHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRyYW5zZm9ybV92YWx1ZXMgPSB0aGlzLnBhdHRlcm4udHJhbnNmb3JtX3ZhbHVlcy5zcGxpdChcInxcIik7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCh0aGlzLnRocmVzaG9sZHMsIHRyYW5zZm9ybV92YWx1ZXMsIHRoaXMudmFsdWUsIHRlbXBsYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMgJiYgdGhpcy5wYXR0ZXJuLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcyA9IHRoaXMucGF0dGVybi50cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcy5zcGxpdChcInxcIikuZmlsdGVyKGNvbiA9PiBjb24uaW5kZXhPZihcIi0+XCIpKS5tYXAoY29uID0+IGNvbi5zcGxpdChcIi0+XCIpKS5maWx0ZXIoY29uID0+ICsoY29uWzBdKSA9PT0gdGhpcy52YWx1ZSkubWFwKGNvbiA9PiBjb25bMV0pO1xuICAgICAgICAgICAgICAgIGlmIChfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMubGVuZ3RoID4gMCAmJiBfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXNbMF0gIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUgPSAoXCJcIiArIF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlc1swXSkudHJpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybSB8fCB0aGlzLnBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IHRoaXMuc2VyaWVzTmFtZS5zcGxpdCh0aGlzLnBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cCh0aGlzLnJvd19jb2xfd3JhcHBlciArIGkgKyB0aGlzLnJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XG4gICAgICAgICAgICAgICAgfSwgdGVtcGxhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjbGVhbnVwKCkge1xuICAgICAgICBpZiAodGhpcy5kZWJ1Z19tb2RlICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5zZXJpZXNOYW1lO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGF0dGVybjtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRocmVzaG9sZHM7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5kZWNpbWFscztcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMudGVtcGxhdGVfcm93X25hbWU7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy50ZW1wbGF0ZV92YWx1ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlX2Zvcm1hdHRlZDtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRUaW1lU3RhbXA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRSb3dOYW1lKHBhdHRlcm4sIHJvd19jb2xfd3JhcHBlcjogc3RyaW5nLCBzZXJpZXNOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcm93X25hbWUgPSBwYXR0ZXJuLnJvd19uYW1lO1xuICAgICAgICByb3dfbmFtZSA9IHNlcmllc05hbWUuc3BsaXQocGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLnJlZHVjZSgociwgaXQsIGkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cChyb3dfY29sX3dyYXBwZXIgKyBpICsgcm93X2NvbF93cmFwcGVyLCBcImdcIiksIGl0KTtcbiAgICAgICAgfSwgcm93X25hbWUpO1xuICAgICAgICBpZiAoc2VyaWVzTmFtZS5zcGxpdChwYXR0ZXJuLmRlbGltaXRlciB8fCBcIi5cIikubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByb3dfbmFtZSA9IHNlcmllc05hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZSA9IHJvd19uYW1lO1xuICAgICAgICByZXR1cm4gcm93X25hbWU7XG4gICAgfVxuICAgIHByaXZhdGUgZ2V0Q29sTmFtZShwYXR0ZXJuLCByb3dfY29sX3dyYXBwZXI6IHN0cmluZywgc2VyaWVzTmFtZTogc3RyaW5nLCByb3dfbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNvbF9uYW1lID0gcGF0dGVybi5jb2xfbmFtZTtcbiAgICAgICAgY29sX25hbWUgPSBzZXJpZXNOYW1lLnNwbGl0KHBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gci5yZXBsYWNlKG5ldyBSZWdFeHAocm93X2NvbF93cmFwcGVyICsgaSArIHJvd19jb2xfd3JhcHBlciwgXCJnXCIpLCBpdCk7XG4gICAgICAgIH0sIGNvbF9uYW1lKTtcbiAgICAgICAgaWYgKHNlcmllc05hbWUuc3BsaXQocGF0dGVybi5kZWxpbWl0ZXIgfHwgXCIuXCIpLmxlbmd0aCA9PT0gMSB8fCByb3dfbmFtZSA9PT0gc2VyaWVzTmFtZSkge1xuICAgICAgICAgICAgY29sX25hbWUgPSBwYXR0ZXJuLmNvbF9uYW1lIHx8IFwiVmFsdWVcIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBsYXRlX2NvbF9uYW1lID0gY29sX25hbWU7XG4gICAgICAgIHJldHVybiBjb2xfbmFtZTtcbiAgICB9XG4gICAgcHJpdmF0ZSByZXBsYWNlVG9rZW5zKCkge1xuICAgICAgICAvLyBjb2xuYW1lcyBjYW4gYmUgc3BlY2lmaWVkIGluIHRoZSBsaW5rXG4gICAgICAgIHRoaXMubGluayA9IHRoaXMuc2VyaWVzTmFtZS5zcGxpdCh0aGlzLnBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiLlwiKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gci5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5yb3dfY29sX3dyYXBwZXIgKyBpICsgdGhpcy5yb3dfY29sX3dyYXBwZXIsIFwiZ1wiKSwgaXQpO1xuICAgICAgICB9LCB0aGlzLmxpbmspO1xuICAgICAgICAvLyBfc2VyaWVzXyBjYW4gYmUgc3BlY2lmaWVkIGluIFJvdywgQ29sLCBEaXNwbGF5IFZhbHVlLCBUb29sdGlwICYgTGlua1xuICAgICAgICB0aGlzLnJvd19uYW1lID0gdGhpcy50ZW1wbGF0ZV9yb3dfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfc2VyaWVzX1wiLCBcImdcIiksIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5jb2xfbmFtZSA9IHRoaXMudGVtcGxhdGVfY29sX25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMubGluay5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfc2VyaWVzX1wiLCBcImdcIiksIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfc2VyaWVzX1wiLCBcImdcIiksIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMudGVtcGxhdGVfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Nlcmllc19cIiwgXCJnXCIpLCB0aGlzLnNlcmllc05hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIC8vIF9yb3dfbmFtZV8gY2FuIGJlIHNwZWNpZmllZCBpbiBDb2wsIERpc3BsYXkgVmFsdWUsIFRvb2x0aXAgJiBMaW5rXG4gICAgICAgIHRoaXMuY29sX25hbWUgPSB0aGlzLmNvbF9uYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9yb3dfbmFtZV9cIiwgXCJnXCIpLCB0aGlzLnJvd19uYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmsucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMucm93X25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50b29sdGlwLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9yb3dfbmFtZV9cIiwgXCJnXCIpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2Vucyh0aGlzLnJvd19uYW1lLnRvU3RyaW5nKCkpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5yb3dfbmFtZS50b1N0cmluZygpKTtcbiAgICAgICAgLy8gX2NvbF9uYW1lXyBjYW4gYmUgc3BlY2lmaWVkIGluIFJvdywgRGlzcGxheSBWYWx1ZSwgVG9vbHRpcCAmIExpbmtcbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHRoaXMucm93X25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMubGluay5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfY29sX25hbWVfXCIsIFwiZ1wiKSwgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnModGhpcy5jb2xfbmFtZS50b1N0cmluZygpKS50cmltKCkpO1xuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9jb2xfbmFtZV9cIiwgXCJnXCIpLCB0aGlzLmNvbF9uYW1lLnRvU3RyaW5nKCkpO1xuICAgICAgICAvLyBfdmFsdWVfcmF3XyBjYW4gYmUgc3BlY2lmaWVkIGluIERpc3BsYXkgVmFsdWUsIFRvb2x0aXAgJiBMaW5rXG4gICAgICAgIGxldCB2YWx1ZV9yYXcgPSBfLmlzTmFOKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09IG51bGwgPyBcIm51bGxcIiA6IHRoaXMudmFsdWUudG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMubGluay5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfcmF3X1wiLCBcImdcIiksIHZhbHVlX3Jhdyk7XG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfcmF3X1wiLCBcImdcIiksIHZhbHVlX3Jhdyk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfcmF3X1wiLCBcImdcIiksIHZhbHVlX3Jhdyk7XG4gICAgICAgIC8vIF92YWx1ZV8gY2FuIGJlIHNwZWNpZmllZCBpbiBEaXNwbGF5IFZhbHVlLCBUb29sdGlwICYgTGlua1xuICAgICAgICBsZXQgdmFsdWVfZm9ybWF0dGVkID0gXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0aGlzLnZhbHVlX2Zvcm1hdHRlZC50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl92YWx1ZV9cIiwgXCJnXCIpLCB2YWx1ZV9mb3JtYXR0ZWQpO1xuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX3ZhbHVlX1wiLCBcImdcIiksIHZhbHVlX2Zvcm1hdHRlZCk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHRoaXMuZGlzcGxheV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfdmFsdWVfXCIsIFwiZ1wiKSwgdmFsdWVfZm9ybWF0dGVkKTtcbiAgICAgICAgLy8gRkEgJiBJbWcgdHJhbnNmb3JtcyBjYW4gYmUgc3BlY2lmaWVkIGluIFJvdywgQ29sICYgRGlzcGxheSBWYWx1ZVxuICAgICAgICB0aGlzLnJvd19uYW1lID0gcmVwbGFjZVRva2Vucyh0aGlzLnJvd19uYW1lKTtcbiAgICAgICAgdGhpcy5jb2xfbmFtZSA9IHJlcGxhY2VUb2tlbnModGhpcy5jb2xfbmFtZSk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9IHJlcGxhY2VUb2tlbnModGhpcy5kaXNwbGF5X3ZhbHVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7XG4gICAgQm9vbVNlcmllc1xufTtcbiJdfQ==
\ No newline at end of file
diff --git a/dist/app/boom/BoomTimeBasedThreshold.js b/dist/app/boom/BoomTimeBasedThreshold.js
index 254ca0e..71369e5 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);
- }
- };
-});
+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
diff --git a/dist/app/boom/BoomUtils.js b/dist/app/boom/BoomUtils.js
index 07770a7..d4ef348 100644
--- a/dist/app/boom/BoomUtils.js
+++ b/dist/app/boom/BoomUtils.js
@@ -1,126 +1,126 @@
-System.register(["lodash"], function (exports_1, context_1) {
- "use strict";
- var lodash_1, normalizeColor, 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);
- replaceTokens = function (value) {
- if (!value) {
- return value;
- }
- value = value + "";
- value = value.split(" ").map(function (a) {
- if (a.startsWith("_fa-") && a.endsWith("_")) {
- var icon = a.replace(/\_/g, "").split(",")[0];
- var color = a.indexOf(",") > -1 ? " style=\"color:" + normalizeColor(a.replace(/\_/g, "").split(",")[1]) + "\" " : "";
- var repeatCount = a.split(",").length > 2 ? +(a.replace(/\_/g, "").split(",")[2]) : 1;
- a = (" ").repeat(repeatCount);
- }
- 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, 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);
+ replaceTokens = function (value) {
+ if (!value) {
+ return value;
+ }
+ value = value + "";
+ value = value.split(" ").map(function (a) {
+ if (a.startsWith("_fa-") && a.endsWith("_")) {
+ var icon = a.replace(/\_/g, "").split(",")[0];
+ var color = a.indexOf(",") > -1 ? " style=\"color:" + normalizeColor(a.replace(/\_/g, "").split(",")[1]) + "\" " : "";
+ var repeatCount = a.split(",").length > 2 ? +(a.replace(/\_/g, "").split(",")[2]) : 1;
+ a = (" ").repeat(repeatCount);
+ }
+ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9ib29tL0Jvb21VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztZQUVNLGNBQWMsR0FBRyxVQUFVLEtBQUs7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRTtvQkFDakMsT0FBTyx5QkFBeUIsQ0FBQztpQkFDcEM7cUJBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO29CQUN6QyxPQUFPLDBCQUEwQixDQUFDO2lCQUNyQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLEVBQUU7b0JBQ3RDLE9BQU8sd0JBQXdCLENBQUM7aUJBQ25DO3FCQUFNO29CQUFFLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUFFO1lBQzFDLENBQUMsQ0FBQzs7WUFDSSxhQUFhLEdBQUcsVUFBVSxLQUFLO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUFFLE9BQU8sS0FBSyxDQUFDO2lCQUFFO2dCQUM3QixLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3pDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDOUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMs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b0JBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3hDLElBQUksS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7NEJBQzVCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUNwQjtxQkFDSjtvQkFDRCxPQUFPLGdCQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUMxQjtnQkFDRCxPQUFPLENBQUMsQ0FBQztZQUViLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcclxuXHJcbmNvbnN0IG5vcm1hbGl6ZUNvbG9yID0gZnVuY3Rpb24gKGNvbG9yKSB7XHJcbiAgICBpZiAoY29sb3IudG9Mb3dlckNhc2UoKSA9PT0gXCJncmVlblwiKSB7XHJcbiAgICAgICAgcmV0dXJuIFwicmdiYSg1MCwgMTcyLCA0NSwgMC45NylcIjtcclxuICAgIH0gZWxzZSBpZiAoY29sb3IudG9Mb3dlckNhc2UoKSA9PT0gXCJvcmFuZ2VcIikge1xyXG4gICAgICAgIHJldHVybiBcInJnYmEoMjM3LCAxMjksIDQwLCAwLjg5KVwiO1xyXG4gICAgfSBlbHNlIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpID09PSBcInJlZFwiKSB7XHJcbiAgICAgICAgcmV0dXJuIFwicmdiYSgyNDUsIDU0LCA1NCwgMC45KVwiO1xyXG4gICAgfSBlbHNlIHsgcmV0dXJuIGNvbG9yLnRvTG93ZXJDYXNlKCk7IH1cclxufTtcclxuY29uc3QgcmVwbGFjZVRva2VucyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH1cclxuICAgIHZhbHVlID0gdmFsdWUgKyBcIlwiO1xyXG4gICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChcIiBcIikubWFwKGEgPT4ge1xyXG4gICAgICAgIGlmIChhLnN0YXJ0c1dpdGgoXCJfZmEtXCIpICYmIGEuZW5kc1dpdGgoXCJfXCIpKSB7XHJcbiAgICAgICAgICAgIGxldCBpY29uID0gYS5yZXBsYWNlKC9cXF8vZywgXCJcIikuc3BsaXQoXCIsXCIpWzBdO1xyXG4gICAgICAgICAgICBsZXQgY29sb3IgPSBhLmluZGV4T2YoXCIsXCIpID4gLTEgPyBgIHN0eWxlPVwiY29sb3I6JHtub3JtYWxpemVDb2xvcihhLnJlcGxhY2UoL1xcXy9nLCBcIlwiKS5zcGxpdChcIixcIilbMV0pfVwiIGAgOiBcIlwiO1xyXG4gICAgICAgICAgICBsZXQgcmVwZWF0Q291bnQgPSBhLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAyID8gKyhhLnJlcGxhY2UoL1xcXy9nLCBcIlwiKS5zcGxpdChcIixcIilbMl0pIDogMTtcclxuICAgICAgICAgICAgYSA9IGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiAke2NvbG9yfT48L2k+IGAucmVwZWF0KHJlcGVhdENvdW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGEuc3RhcnRzV2l0aChcIl9pbWctXCIpICYmIGEuZW5kc1dpdGgoXCJfXCIpKSB7XHJcbiAgICAgICAgICAgIGEgPSBhLnNsaWNlKDAsIC0xKTtcclxuICAgICAgICAgICAgbGV0IGltZ1VybCA9IGEucmVwbGFjZShcIl9pbWctXCIsIFwiXCIpLnNwbGl0KFwiLFwiKVswXTtcclxuICAgICAgICAgICAgbGV0IGltZ1dpZHRoID0gYS5zcGxpdChcIixcIikubGVuZ3RoID4gMSA/IGEucmVwbGFjZShcIl9pbWctXCIsIFwiXCIpLnNwbGl0KFwiLFwiKVsxXSA6IFwiMjBweFwiO1xyXG4gICAgICAgICAgICBsZXQgaW1nSGVpZ2h0ID0gYS5zcGxpdChcIixcIikubGVuZ3RoID4gMiA/IGEucmVwbGFjZShcIl9pbWctXCIsIFwiXCIpLnNwbGl0KFwiLFwiKVsyXSA6IFwiMjBweFwiO1xyXG4gICAgICAgICAgICBsZXQgcmVwZWF0Q291bnQgPSBhLnNwbGl0KFwiLFwiKS5sZW5ndGggPiAzID8gKyhhLnJlcGxhY2UoXCJfaW1nLVwiLCBcIlwiKS5zcGxpdChcIixcIilbM10pIDogMTtcclxuICAgICAgICAgICAgYSA9IGA8aW1nIHdpZHRoPVwiJHtpbWdXaWR0aH1cIiBoZWlnaHQ9XCIke2ltZ0hlaWdodH1cIiBzcmM9XCIke2ltZ1VybH1cIi8+YC5yZXBlYXQocmVwZWF0Q291bnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYTtcclxuICAgIH0pLmpvaW4oXCIgXCIpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG5jb25zdCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyBcIlwiOyB9XHJcbiAgICB2YWx1ZSA9IHZhbHVlICsgXCJcIjtcclxuICAgIHJldHVybiB2YWx1ZS5zcGxpdChcIiBcIikubWFwKGEgPT4ge1xyXG4gICAgICAgIGlmIChhLnN0YXJ0c1dpdGgoXCJfZmEtXCIpICYmIGEuZW5kc1dpdGgoXCJfXCIpKSB7XHJcbiAgICAgICAgICAgIGEgPSBgYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGEuc3RhcnRzV2l0aChcIl9pbWctXCIpICYmIGEuZW5kc1dpdGgoXCJfXCIpKSB7XHJcbiAgICAgICAgICAgIGEgPSBgYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGE7XHJcbiAgICB9KS5qb2luKFwiIFwiKTtcclxufTtcclxuY29uc3QgZ2V0RGVjaW1hbHNGb3JWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSwgX2RlY2ltYWxzKSB7XHJcbiAgICBpZiAoXy5pc051bWJlcigrX2RlY2ltYWxzKSkge1xyXG4gICAgICAgIGxldCBvOiBPYmplY3QgPSB7XHJcbiAgICAgICAgICAgIGRlY2ltYWxzOiBfZGVjaW1hbHMsXHJcbiAgICAgICAgICAgIHNjYWxlZERlY2ltYWxzOiBudWxsXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGVsdGEgPSB2YWx1ZSAvIDI7XHJcbiAgICBsZXQgZGVjID0gLU1hdGguZmxvb3IoTWF0aC5sb2coZGVsdGEpIC8gTWF0aC5MTjEwKTtcclxuXHJcbiAgICBsZXQgbWFnbiA9IE1hdGgucG93KDEwLCAtZGVjKSxcclxuICAgICAgICBub3JtID0gZGVsdGEgLyBtYWduLCAvLyBub3JtIGlzIGJldHdlZW4gMS4wIGFuZCAxMC4wXHJcbiAgICAgICAgc2l6ZTtcclxuXHJcbiAgICBpZiAobm9ybSA8IDEuNSkge1xyXG4gICAgICAgIHNpemUgPSAxO1xyXG4gICAgfSBlbHNlIGlmIChub3JtIDwgMykge1xyXG4gICAgICAgIHNpemUgPSAyO1xyXG4gICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgMi41LCByZXF1aXJlcyBhbiBleHRyYSBkZWNpbWFsXHJcbiAgICAgICAgaWYgKG5vcm0gPiAyLjI1KSB7XHJcbiAgICAgICAgICAgIHNpemUgPSAyLjU7XHJcbiAgICAgICAgICAgICsrZGVjO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobm9ybSA8IDcuNSkge1xyXG4gICAgICAgIHNpemUgPSA1O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBzaXplID0gMTA7XHJcbiAgICB9XHJcblxyXG4gICAgc2l6ZSAqPSBtYWduO1xyXG5cclxuICAgIC8vIHJlZHVjZSBzdGFydGluZyBkZWNpbWFscyBpZiBub3QgbmVlZGVkXHJcbiAgICBpZiAoTWF0aC5mbG9vcih2YWx1ZSkgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgZGVjID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzdWx0OiBPYmplY3QgPSB7XHJcbiAgICAgICAgZGVjaW1hbHM6IE1hdGgubWF4KDAsIGRlYyksXHJcbiAgICAgICAgc2NhbGVkRGVjaW1hbHM6IE1hdGgubWF4KDAsIGRlYykgLSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5MTjEwKSArIDJcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufTtcclxuY29uc3QgZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQgPSBmdW5jdGlvbiAodGhyZXNob2xkcywgcmFuZ2VzLCB2YWx1ZSwgZGVmYXVsdFZhbHVlKTogc3RyaW5nIHtcclxuICAgIGxldCBjID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgaWYgKHRocmVzaG9sZHMgJiYgcmFuZ2VzICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiB0aHJlc2hvbGRzLmxlbmd0aCArIDEgPD0gcmFuZ2VzLmxlbmd0aCkge1xyXG4gICAgICAgIHJhbmdlcyA9IF8uZHJvcFJpZ2h0KHJhbmdlcywgcmFuZ2VzLmxlbmd0aCAtIHRocmVzaG9sZHMubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgaWYgKHJhbmdlc1tyYW5nZXMubGVuZ3RoIC0gMV0gPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgcmFuZ2VzW3Jhbmdlcy5sZW5ndGggLSAxXSA9IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRocmVzaG9sZHMubGVuZ3RoOyBpID4gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGRzW2kgLSAxXSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlc1tpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXy5maXJzdChyYW5nZXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGM7XHJcblxyXG59O1xyXG5leHBvcnQge1xyXG4gICAgbm9ybWFsaXplQ29sb3IsXHJcbiAgICByZXBsYWNlVG9rZW5zLFxyXG4gICAgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnMsXHJcbiAgICBnZXREZWNpbWFsc0ZvclZhbHVlLFxyXG4gICAgZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGRcclxufTtcclxuIl19
\ No newline at end of file
diff --git a/dist/app/boom/index.js b/dist/app/boom/index.js
index 48479ff..a9b36cd 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 () {
- }
- };
-});
+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
diff --git a/dist/app/config.js b/dist/app/config.js
index f239f21..05eafc4 100644
--- a/dist/app/config.js
+++ b/dist/app/config.js
@@ -1,37 +1,37 @@
-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" },
- { 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" },
+ { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztZQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQzs7WUFDMUMsa0JBQWtCLEdBQUc7Z0JBQ3ZCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM3QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDN0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ2pDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNyQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNwQyxDQUFDOztZQUNJLG9CQUFvQixHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQzs7WUFDbkQsTUFBTSxHQUFRO2dCQUNoQixVQUFVLEVBQUUsS0FBSztnQkFDakIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFdBQVcsRUFBRSxTQUFTO2dCQUN0QixpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixZQUFZLEVBQUUsS0FBSztnQkFDbkIsYUFBYSxFQUFFO29CQUNYLGtCQUFrQixFQUFFLENBQUMsQ0FBQztvQkFDdEIsc0JBQXNCLEVBQUUsUUFBUTtvQkFDaEMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLEdBQUc7aUJBQ3ZCO2FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBsdWdpbl9pZCA9IFwieWVzb3JleWVyYW0tYm9vbXRhYmxlLXBhbmVsXCI7XHJcbmNvbnN0IHZhbHVlX25hbWVfb3B0aW9ucyA9IFtcclxuICAgIHsgdGV4dDogXCJNaW5cIiwgdmFsdWU6IFwibWluXCIgfSxcclxuICAgIHsgdGV4dDogXCJNYXhcIiwgdmFsdWU6IFwibWF4XCIgfSxcclxuICAgIHsgdGV4dDogXCJBdmVyYWdlXCIsIHZhbHVlOiBcImF2Z1wiIH0sXHJcbiAgICB7IHRleHQ6IFwiQ3VycmVudFwiLCB2YWx1ZTogXCJjdXJyZW50XCIgfSxcclxuICAgIHsgdGV4dDogXCJUb3RhbFwiLCB2YWx1ZTogXCJ0b3RhbFwiIH1cclxuXTtcclxuY29uc3QgdGV4dEFsaWdubWVudE9wdGlvbnMgPSBbXCJsZWZ0XCIsIFwicmlnaHRcIiwgXCJjZW50ZXJcIl07XHJcbmNvbnN0IGNvbmZpZzogYW55ID0ge1xyXG4gICAgZGVidWdfbW9kZTogZmFsc2UsXHJcbiAgICBlcnJvcjogdW5kZWZpbmVkLFxyXG4gICAgZ3JvdXBlZERhdGE6IHVuZGVmaW5lZCxcclxuICAgIGhpZGVfZmlyc3RfY29sdW1uOiBmYWxzZSxcclxuICAgIGhpZGVfaGVhZGVyczogZmFsc2UsXHJcbiAgICBwYW5lbERlZmF1bHRzOiB7XHJcbiAgICAgICAgYWN0aXZlUGF0dGVybkluZGV4OiAtMSxcclxuICAgICAgICBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiBcIk1ldHJpY1wiLFxyXG4gICAgICAgIHBhdHRlcm5zOiBbXSxcclxuICAgICAgICByb3dfY29sX3dyYXBwZXI6IFwiX1wiLFxyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHBsdWdpbl9pZCxcclxuICAgIHZhbHVlX25hbWVfb3B0aW9ucyxcclxuICAgIHRleHRBbGlnbm1lbnRPcHRpb25zLFxyXG4gICAgY29uZmlnXHJcbn07XHJcbiJdfQ==
\ No newline at end of file
diff --git a/dist/module.js b/dist/module.js
index 6401cbd..e61e7a4 100644
--- a/dist/module.js
+++ b/dist/module.js
@@ -1,175 +1,175 @@
-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;
- _this.sorting_props = {
- col_index: -1,
- direction: "desc"
- };
- lodash_1.default.defaults(_this.panel, config_1.config.panelDefaults);
- _this.panel.defaultPattern = _this.panel.defaultPattern || app_1.defaultPattern;
- _this.$sce = $sce;
- _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/patterns.html", 2);
- this.addEditorTab("Options", "public/plugins/" + config_1.plugin_id + "/partials/options.html", 3);
- };
- 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.patterns.length - 1;
- this.render();
- };
- GrafanaBoomTableCtrl.prototype.removePattern = function (index) {
- this.panel.patterns.splice(index, 1);
- this.panel.activePatternIndex = (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 = 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 = 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.sorting_props.col_index = headerIndex;
- this.sorting_props.direction = this.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;
- };
- 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);
- });
- 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,
- 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.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 maxheightofpanel = this.panel.debug_mode ? this.ctrl.height - 111 : this.ctrl.height - 31;
- rootElem.css({ 'max-height': maxheightofpanel + "px" });
- }
- };
- }
- };
-});
+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;
+ _this.sorting_props = {
+ col_index: -1,
+ direction: "desc"
+ };
+ lodash_1.default.defaults(_this.panel, config_1.config.panelDefaults);
+ _this.panel.defaultPattern = _this.panel.defaultPattern || app_1.defaultPattern;
+ _this.$sce = $sce;
+ _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/patterns.html", 2);
+ this.addEditorTab("Options", "public/plugins/" + config_1.plugin_id + "/partials/options.html", 3);
+ };
+ 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.patterns.length - 1;
+ this.render();
+ };
+ GrafanaBoomTableCtrl.prototype.removePattern = function (index) {
+ this.panel.patterns.splice(index, 1);
+ this.panel.activePatternIndex = (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 = 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 = 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.sorting_props.col_index = headerIndex;
+ this.sorting_props.direction = this.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;
+ };
+ 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);
+ });
+ 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,
+ 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.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 maxheightofpanel = this.panel.debug_mode ? this.ctrl.height - 111 : this.ctrl.height - 31;
+ rootElem.css({ 'max-height': maxheightofpanel + "px" });
+ }
+ };
+ }
+ };
+});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFVQSxtQkFBYSxDQUFDO2dCQUNaLElBQUksRUFBRSxhQUFXLGtCQUFTLDBCQUF1QjtnQkFDakQsS0FBSyxFQUFFLGFBQVcsa0JBQVMsMkJBQXdCO2FBQ3BELENBQUMsQ0FBQzs7Z0JBRWdDLHdDQUFnQjtnQkFlakQsOEJBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJO29CQUFuQyxZQUNFLGtCQUFNLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FTekI7b0JBdkJNLGlCQUFXLEdBQUcsYUFBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNuQyxzQkFBZ0IsR0FBRywyQkFBa0IsQ0FBQztvQkFDdEMsMEJBQW9CLEdBQUcsNkJBQW9CLENBQUM7b0JBRTVDLG1CQUFhLEdBQUc7d0JBQ3JCLFNBQVMsRUFBRSxDQUFDLENBQUM7d0JBQ2IsU0FBUyxFQUFFLE1BQU07cUJBQ2xCLENBQUM7b0JBUUEsZ0JBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLEtBQUssRUFBRSxlQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzdDLEtBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEtBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLG9CQUFjLENBQUM7b0JBQ3hFLEtBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO29CQUNqQixLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLEtBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLEtBQUksQ0FBQyxj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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vPHJlZmVyZW5jZSBwYXRoPVwiLi4vbm9kZV9tb2R1bGVzL2dyYWZhbmEtc2RrLW1vY2tzL2FwcC9oZWFkZXJzL2NvbW1vbi5kLnRzXCIgLz5cclxuXHJcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IGtibiBmcm9tICdhcHAvY29yZS91dGlscy9rYm4nO1xyXG5pbXBvcnQgeyBsb2FkUGx1Z2luQ3NzLCBNZXRyaWNzUGFuZWxDdHJsIH0gZnJvbSBcImFwcC9wbHVnaW5zL3Nka1wiO1xyXG5pbXBvcnQgeyBJQm9vbVNlcmllcywgSUJvb21SZW5kZXJpbmdPcHRpb25zLCBJQm9vbVRhYmxlLCBJQm9vbUhUTUwsIElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi9hcHAvYm9vbS9pbmRleFwiO1xyXG5pbXBvcnQgeyBCb29tUGF0dGVybiwgQm9vbVNlcmllcywgQm9vbU91dHB1dCB9IGZyb20gXCIuL2FwcC9ib29tL2luZGV4XCI7XHJcbmltcG9ydCB7IHBsdWdpbl9pZCwgdmFsdWVfbmFtZV9vcHRpb25zLCB0ZXh0QWxpZ25tZW50T3B0aW9ucywgY29uZmlnIH0gZnJvbSBcIi4vYXBwL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBkZWZhdWx0UGF0dGVybiwgc2VyaWVzVG9UYWJsZSB9IGZyb20gXCIuL2FwcC9hcHBcIjtcclxuXHJcbmxvYWRQbHVnaW5Dc3Moe1xyXG4gIGRhcms6IGBwbHVnaW5zLyR7cGx1Z2luX2lkfS9jc3MvZGVmYXVsdC5kYXJrLmNzc2AsXHJcbiAgbGlnaHQ6IGBwbHVnaW5zLyR7cGx1Z2luX2lkfS9jc3MvZGVmYXVsdC5saWdodC5jc3NgXHJcbn0pO1xyXG5cclxuY2xhc3MgR3JhZmFuYUJvb21UYWJsZUN0cmwgZXh0ZW5kcyBNZXRyaWNzUGFuZWxDdHJsIHtcclxuICBwdWJsaWMgc3RhdGljIHRlbXBsYXRlVXJsID0gXCJwYXJ0aWFscy9tb2R1bGUuaHRtbFwiO1xyXG4gIHB1YmxpYyB1bml0Rm9ybWF0cyA9IGtibi5nZXRVbml0Rm9ybWF0cygpO1xyXG4gIHB1YmxpYyB2YWx1ZU5hbWVPcHRpb25zID0gdmFsdWVfbmFtZV9vcHRpb25zO1xyXG4gIHB1YmxpYyB0ZXh0QWxpZ25tZW50T3B0aW9ucyA9IHRleHRBbGlnbm1lbnRPcHRpb25zO1xyXG4gIHB1YmxpYyBvdXRkYXRhO1xyXG4gIHB1YmxpYyBzb3J0aW5nX3Byb3BzID0ge1xyXG4gICAgY29sX2luZGV4OiAtMSxcclxuICAgIGRpcmVjdGlvbjogXCJkZXNjXCJcclxuICB9O1xyXG4gIHB1YmxpYyBkYXRhUmVjZWl2ZWQ6IGFueTtcclxuICBwdWJsaWMgY3RybDogYW55O1xyXG4gIHB1YmxpYyBlbGVtOiBhbnk7XHJcbiAgcHVibGljIGF0dHJzOiBhbnk7XHJcbiAgcHVibGljICRzY2U6IGFueTtcclxuICBjb25zdHJ1Y3Rvcigkc2NvcGUsICRpbmplY3RvciwgJHNjZSkge1xyXG4gICAgc3VwZXIoJHNjb3BlLCAkaW5qZWN0b3IpO1xyXG4gICAgXy5kZWZhdWx0cyh0aGlzLnBhbmVsLCBjb25maWcucGFuZWxEZWZhdWx0cyk7XHJcbiAgICB0aGlzLnBhbmVsLmRlZmF1bHRQYXR0ZXJuID0gdGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiB8fCBkZWZhdWx0UGF0dGVybjtcclxuICAgIHRoaXMuJHNjZSA9ICRzY2U7XHJcbiAgICB0aGlzLnVwZGF0ZVByb3RvdHlwZXMoKTtcclxuICAgIHRoaXMuZXZlbnRzLm9uKFwiZGF0YS1yZWNlaXZlZFwiLCB0aGlzLm9uRGF0YVJlY2VpdmVkLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5ldmVudHMub24oXCJkYXRhLXNuYXBzaG90LWxvYWRcIiwgdGhpcy5vbkRhdGFSZWNlaXZlZC5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuZXZlbnRzLm9uKFwiaW5pdC1lZGl0LW1vZGVcIiwgdGhpcy5vbkluaXRFZGl0TW9kZS5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0xID8gdGhpcy5wYW5lbC5wYXR0ZXJucy5sZW5ndGggOiB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleDtcclxuICB9XHJcbiAgcHJpdmF0ZSB1cGRhdGVQcm90b3R5cGVzKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4sIEJvb21QYXR0ZXJuLnByb3RvdHlwZSk7XHJcbiAgICB0aGlzLnBhbmVsLnBhdHRlcm5zLm1hcChwYXR0ZXJuID0+IHtcclxuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHBhdHRlcm4sIEJvb21QYXR0ZXJuLnByb3RvdHlwZSk7XHJcbiAgICAgIHJldHVybiBwYXR0ZXJuO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBvbkRhdGFSZWNlaXZlZChkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVJlY2VpdmVkID0gZGF0YTtcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBvbkluaXRFZGl0TW9kZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRWRpdG9yVGFiKFwiUGF0dGVybnNcIiwgYHB1YmxpYy9wbHVnaW5zLyR7cGx1Z2luX2lkfS9wYXJ0aWFscy9wYXR0ZXJucy5odG1sYCwgMik7XHJcbiAgICB0aGlzLmFkZEVkaXRvclRhYihcIk9wdGlvbnNcIiwgYHB1YmxpYy9wbHVnaW5zLyR7cGx1Z2luX2lkfS9wYXJ0aWFscy9vcHRpb25zLmh0bWxgLCAzKTtcclxuICB9XHJcbiAgcHVibGljIGFkZFBhdHRlcm4oKTogdm9pZCB7XHJcbiAgICBsZXQgbmV3UGF0dGVybiA9IG5ldyBCb29tUGF0dGVybih7XHJcbiAgICAgIHJvd19jb2xfd3JhcHBlcjogdGhpcy5wYW5lbC5yb3dfY29sX3dyYXBwZXJcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKG5ld1BhdHRlcm4pO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgcmVtb3ZlUGF0dGVybihpbmRleDogTnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhbmVsLnBhdHRlcm5zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9ICh0aGlzLnBhbmVsLnBhdHRlcm5zICYmIHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoID4gMCkgPyAodGhpcy5wYW5lbC5wYXR0ZXJucy5sZW5ndGggLSAxKSA6IC0xO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIG1vdmVQYXR0ZXJuKGRpcmVjdGlvbjogc3RyaW5nLCBpbmRleDogTnVtYmVyKSB7XHJcbiAgICBsZXQgdGVtcEVsZW1lbnQgPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldO1xyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJVUFwiKSB7XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KV0gPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCkgLSAxXTtcclxuICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpIC0gMV0gPSB0ZW1wRWxlbWVudDtcclxuICAgICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSBOdW1iZXIoaW5kZXgpIC0gMTtcclxuICAgIH1cclxuICAgIGlmIChkaXJlY3Rpb24gPT09IFwiRE9XTlwiKSB7XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KV0gPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCkgKyAxXTtcclxuICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpICsgMV0gPSB0ZW1wRWxlbWVudDtcclxuICAgICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSBOdW1iZXIoaW5kZXgpICsgMTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjbG9uZVBhdHRlcm4oaW5kZXg6IE51bWJlcik6IHZvaWQge1xyXG4gICAgbGV0IGNvcGllZFBhdHRlcm4gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldKTtcclxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjb3BpZWRQYXR0ZXJuLCBCb29tUGF0dGVybi5wcm90b3R5cGUpO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKGNvcGllZFBhdHRlcm4pO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIHNvcnRCeUhlYWRlcihoZWFkZXJJbmRleDogbnVtYmVyKXtcclxuICAgIHRoaXMuc29ydGluZ19wcm9wcy5jb2xfaW5kZXggPSBoZWFkZXJJbmRleDtcclxuICAgIHRoaXMuc29ydGluZ19wcm9wcy5kaXJlY3Rpb24gPSB0aGlzLnNvcnRpbmdfcHJvcHMuZGlyZWN0aW9uID09PSBcImFzY1wiID8gXCJkZXNjXCIgOiBcImFzY1wiO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIGxpbWl0VGV4dCh0ZXh0OiBzdHJpbmcsIG1heGxlbmd0aDogTnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0ZXh0LnNwbGl0KCcnKS5sZW5ndGggPiBtYXhsZW5ndGgpIHtcclxuICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIE51bWJlcihtYXhsZW5ndGgpIC0gMykgKyBcIi4uLlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBsaW5rKHNjb3BlOiBhbnksIGVsZW06IGFueSwgYXR0cnM6IGFueSwgY3RybDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XHJcbiAgICB0aGlzLmVsZW0gPSBlbGVtO1xyXG4gICAgdGhpcy5hdHRycyA9IGF0dHJzO1xyXG4gICAgdGhpcy5jdHJsID0gY3RybDtcclxuICB9XHJcbn1cclxuXHJcbkdyYWZhbmFCb29tVGFibGVDdHJsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgaWYgKHRoaXMuZGF0YVJlY2VpdmVkKSB7XHJcbiAgICBsZXQgb3V0cHV0ZGF0YTogSUJvb21TZXJpZXNbXSA9IHRoaXMuZGF0YVJlY2VpdmVkLm1hcChzZXJpZXNEYXRhID0+IHtcclxuICAgICAgbGV0IHNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgICAgZGVidWdfbW9kZTogdGhpcy5wYW5lbC5kZWJ1Z19tb2RlLFxyXG4gICAgICAgIHJvd19jb2xfd3JhcHBlcjogdGhpcy5wYW5lbC5yb3dfY29sX3dyYXBwZXIgfHwgXCJfXCJcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIG5ldyBCb29tU2VyaWVzKHNlcmllc0RhdGEsIHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4sIHRoaXMucGFuZWwucGF0dGVybnMsIHNlcmllc09wdGlvbnMpO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgYm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zOiBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zID0ge1xyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfYmc6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnLFxyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dDogdGhpcy5wYW5lbC5ub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dCxcclxuICAgICAgbm9uX21hdGNoaW5nX2NlbGxzX3RleHQ6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX3RleHQsXHJcbiAgICB9O1xyXG4gICAgbGV0IGJvb210YWJsZWRhdGE6IElCb29tVGFibGUgPSBzZXJpZXNUb1RhYmxlKG91dHB1dGRhdGEsYm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zKTtcclxuICAgIGxldCByZW5kZXJpbmdPcHRpb25zOiBJQm9vbVJlbmRlcmluZ09wdGlvbnMgPSB7XHJcbiAgICAgIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6IHRoaXMucGFuZWwuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyB8fCBjb25maWcuZGVmYXVsdF90aXRsZV9mb3Jfcm93cyxcclxuICAgICAgaGlkZV9maXJzdF9jb2x1bW46IHRoaXMucGFuZWwuaGlkZV9maXJzdF9jb2x1bW4sXHJcbiAgICAgIGhpZGVfaGVhZGVyczogdGhpcy5wYW5lbC5oaWRlX2hlYWRlcnMsXHJcbiAgICAgIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiB0aGlzLnBhbmVsLnRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uLFxyXG4gICAgICB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IHRoaXMucGFuZWwudGV4dF9hbGlnbm1lbnRfdmFsdWVzXHJcbiAgICB9O1xyXG4gICAgbGV0IGJvb21fb3V0cHV0ID0gbmV3IEJvb21PdXRwdXQocmVuZGVyaW5nT3B0aW9ucyk7XHJcbiAgICB0aGlzLm91dGRhdGEgPSB7XHJcbiAgICAgIGNvbHNfZm91bmQgOiBib29tdGFibGVkYXRhLmNvbHNfZm91bmQubWFwKGNvbD0+IHsgcmV0dXJuIHRoaXMuJHNjZS50cnVzdEFzSHRtbChjb2wpOyB9KVxyXG4gICAgfTtcclxuICAgIGxldCByZW5kZXJpbmdkYXRhOiBJQm9vbUhUTUwgID0gYm9vbV9vdXRwdXQuZ2V0RGF0YUFzSFRNTChib29tdGFibGVkYXRhLHRoaXMuc29ydGluZ19wcm9wcyk7XHJcbiAgICB0aGlzLmVsZW0uZmluZCgnI2Jvb210YWJsZV9vdXRwdXRfYm9keScpLmh0bWwoYGAgKyByZW5kZXJpbmdkYXRhLmJvZHkpO1xyXG4gICAgdGhpcy5lbGVtLmZpbmQoJyNib29tdGFibGVfb3V0cHV0X2JvZHlfZGVidWcnKS5odG1sKHRoaXMucGFuZWwuZGVidWdfbW9kZSA/IGJvb21fb3V0cHV0LmdldERhdGFBc0RlYnVnSFRNTChvdXRwdXRkYXRhKSA6IGBgKTtcclxuICAgIHRoaXMuZWxlbS5maW5kKFwiW2RhdGEtdG9nZ2xlPSd0b29sdGlwJ11cIikudG9vbHRpcCh7XHJcbiAgICAgIGJvdW5kYXJ5OiBcInNjcm9sbFBhcmVudFwiXHJcbiAgICB9KTtcclxuICAgIGxldCByb290RWxlbSA9IHRoaXMuZWxlbS5maW5kKCcudGFibGUtcGFuZWwtc2Nyb2xsJyk7XHJcbiAgICBsZXQgbWF4aGVpZ2h0b2ZwYW5lbCA9IHRoaXMucGFuZWwuZGVidWdfbW9kZSA/IHRoaXMuY3RybC5oZWlnaHQgLSAxMTEgOiB0aGlzLmN0cmwuaGVpZ2h0IC0gMzE7XHJcbiAgICByb290RWxlbS5jc3MoeyAnbWF4LWhlaWdodCc6IG1heGhlaWdodG9mcGFuZWwgKyBcInB4XCIgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICBHcmFmYW5hQm9vbVRhYmxlQ3RybCBhcyBQYW5lbEN0cmxcclxufTtcclxuIl19
\ No newline at end of file
diff --git a/dist/partials/options.html b/dist/partials/options.html
index ad94e81..e0e18de 100644
--- a/dist/partials/options.html
+++ b/dist/partials/options.html
@@ -1,128 +1,128 @@
-
-
-
+
\ No newline at end of file
diff --git a/dist/partials/patterns.html b/dist/partials/patterns.html
index 51a8dab..41fa11d 100644
--- a/dist/partials/patterns.html
+++ b/dist/partials/patterns.html
@@ -1,376 +1,376 @@
-
-
+
+
\ No newline at end of file
diff --git a/dist/plugin.json b/dist/plugin.json
index 8ed1a6b..e461fdb 100644
--- a/dist/plugin.json
+++ b/dist/plugin.json
@@ -1,34 +1,34 @@
-{
- "type": "panel",
- "name": "Boom Table",
- "id": "yesoreyeram-boomtable-panel",
- "info": {
- "description": "Boom table panel for Graphite, InfluxDB, Prometheus",
- "author": {
- "name": "Sriramajeyam Sugumaran",
- "url": "https://www.google.com/search?q=Sriramajeyam+Sugumaran"
- },
- "keywords": [
- "grafana",
- "plugin",
- "panel",
- "table",
- "graphite",
- "influxdb",
- "prometheus",
- "multi column",
- "time based thresholds"
- ],
- "links": [
- {
- "name": "Github",
- "url": "https://github.com/yesoreyeram/yesoreyeram-boomtable-panel"
- }
- ],
- "version": "1.1.0-unreleased"
- },
- "dependencies": {
- "grafanaVersion": "4.x.x",
- "plugins": []
- }
-}
+{
+ "type": "panel",
+ "name": "Boom Table",
+ "id": "yesoreyeram-boomtable-panel",
+ "info": {
+ "description": "Boom table panel for Graphite, InfluxDB, Prometheus",
+ "author": {
+ "name": "Sriramajeyam Sugumaran",
+ "url": "https://www.google.com/search?q=Sriramajeyam+Sugumaran"
+ },
+ "keywords": [
+ "grafana",
+ "plugin",
+ "panel",
+ "table",
+ "graphite",
+ "influxdb",
+ "prometheus",
+ "multi column",
+ "time based thresholds"
+ ],
+ "links": [
+ {
+ "name": "Github",
+ "url": "https://github.com/yesoreyeram/yesoreyeram-boomtable-panel"
+ }
+ ],
+ "version": "1.1.0-unreleased"
+ },
+ "dependencies": {
+ "grafanaVersion": "4.x.x",
+ "plugins": []
+ }
+}
diff --git a/src/app/boom/BoomSeries.ts b/src/app/boom/BoomSeries.ts
index 512fc97..48b95fb 100644
--- a/src/app/boom/BoomSeries.ts
+++ b/src/app/boom/BoomSeries.ts
@@ -124,9 +124,9 @@ class BoomSeries implements IBoomSeries {
return normalizeColor(bgColor);
}
private getTextColor(): string {
- let textColor = "white";
+ let textColor = document.body.classList.contains("theme-light") ? "black" : "white";
if (_.isNaN(this.value) || this.value === null) {
- textColor = this.pattern.null_textcolor || "white";
+ textColor = this.pattern.null_textcolor || textColor;
} else {
if (this.pattern.enable_textColor && this.pattern.textColors) {
let list_of_textColors_based_on_thresholds = this.pattern.textColors.split("|");