diff --git a/panels/yesoreyeram-boomtable-panel/CHANGELOG.md b/panels/yesoreyeram-boomtable-panel/CHANGELOG.md deleted file mode 100644 index 947387572e..0000000000 --- a/panels/yesoreyeram-boomtable-panel/CHANGELOG.md +++ /dev/null @@ -1,38 +0,0 @@ -# ChangeLog - -| Version | Changes | -| -------------------|-----------| -| 1.3.1 | Tags for prometheus and influxdb (EXPERIMENTAL FEATURE) | -| | Replaced circleci with Github Actions | -| 1.3.0 | More options in display template (Min, Max, Avg, Current, Total etc) | -| | Font awesome icons empty fill | -| | Maths expression in font awesome repeat mode | -| 1.2.1 | Time range in cell links | -| | Time of last data point stat added | -| | Patterns Quick Editor | -| | Sorting Persisted | -| | Link in first column | -| | Option to modify font size | -| 1.2.0 | Template variables in row name, col name, link, tooltip, thresholds, colors | -| 1.1.0 | 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/panels/yesoreyeram-boomtable-panel/LAST_UPDATED b/panels/yesoreyeram-boomtable-panel/LAST_UPDATED deleted file mode 100644 index f271cb5cac..0000000000 --- a/panels/yesoreyeram-boomtable-panel/LAST_UPDATED +++ /dev/null @@ -1 +0,0 @@ -Mon Jun 29 17:34:08 UTC 2020 diff --git a/panels/yesoreyeram-boomtable-panel/MANIFEST.txt b/panels/yesoreyeram-boomtable-panel/MANIFEST.txt deleted file mode 100644 index 98f2e20a12..0000000000 --- a/panels/yesoreyeram-boomtable-panel/MANIFEST.txt +++ /dev/null @@ -1,62 +0,0 @@ - ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 - -{ - "manifestVersion": "2.0.0", - "signatureType": "community", - "signedByOrg": "grafana", - "signedByOrgName": "Grafana Labs", - "plugin": "yesoreyeram-boomtable-panel", - "version": "1.4.1", - "time": 1622741147520, - "keyId": "7e4d0c6a708866e7", - "files": { - "app/config.js": "067d713f6a8dcbf692994cf4cedd94ca61e168e94e14979649ea72b98bcba5f5", - "app/boom/BoomUtils.js": "0b66a05baedf440075f17a218440cc0a0911c57b417610fd442ce327d16fc710", - "app/boom/BoomSeriesUtils.js": "2b710f5f14e76e8b43ee647aaef76b7d71a1d73cbc297c08b250560b7dcdb8b5", - "app/boom/BoomSeries.js": "f0097e2c217745b7caed6706b5b6ec27598919930077287399dfecc67f919b67", - "app/boom/index.js": "b83d40ca135b9306faf1a40b21d06c4bfb814bc58d0b972702dec666252ee1fe", - "app/boom/BoomPattern.js": "9004aa65660b70ea673f81f962700229c1dfd8251068eed7d12d4751c37990e2", - "app/boom/Boom.interface.js": "c86a1fe961ce5e9eb9357e9de5a2a0e0ca4b57b9152067e11a68a6f804b29f2c", - "app/boom/BoomTimeBasedThreshold.js": "18c225136c0354e684125277a573a2ec65c89f2d3e372140ecbda1555b8c1fb1", - "app/boom/BoomOutput.js": "68eb0a11beffccde8af9c1de32d95002200efaab5fb28e74947cf949fde8e4d8", - "app/GrafanaUtils.js": "6549033d1c42087dc0e09ce1168d0d738f29f5800c24e114480a4c185475ee98", - "app/app.js": "ec76068b6d06650fc17529a43ebc40d3481e5df53699e55c960d7c9a8c347e71", - "CHANGELOG.md": "54791361bc31a780be4cd2d66eb3e41513a68868c1b9119fc7aadea66632ab3f", - "css/default.dark.css": "10c975aa12e2f84889d84b605f9eaf930c9ae17f4d88cce383d2695b7f544b3a", - "css/default.light.css": "3bf7e8a61981466737ca5c701c894b307da1ad4ec5db9b070c4fc38a62e937a9", - "tests/BoomSeries.spec.js": "7de556c5acc12eaa942ae8ce218fdb53401d0abf2c5c7cba4eeafa9e7ca99eb5", - "plugin.json": "17e50dc58f88815033532e134e7d7223862b40e51f9bd221198af507cfa6361d", - "README.md": "122ce09b2263fe9f0167ad48d402abc443148b1bd1b70d6bcccc1b34538f17b3", - "module.js": "8b44dd8cfa19e1bc35c7d75af9fa9847f7c0e0a4b69bc8374dfbbc93e9f221ad", - "LAST_UPDATED": "1329e8224eda46296b95660b9283503eaeaa7a24c1d7ef0c445ea5b4fdcf678e", - "partials/module.html": "a353e65f19eb52c3df46f7ad94f9216de75c7a1e1c00b05aa98c8a7fe42cb819", - "partials/editor.html": "c4b01f22f376fc3d72fa49f66bd0e67177e30a58370204b099addf7e2f6ae33c", - "src/img/filters.png": "8b1d6d99109accadde49f2c622d8a45f9bb16487a48401d4cf0a4d98d67bf366", - "src/img/font-awesome-examples.png": "91e26235d798bb60880d5a7ff10420cc47d797ba745693db90cc30f28f5a45ff", - "src/img/editor-1.png": "eb958171ba3d12812a37638ae66c5cbd1cf7fbd61379307b0f5d1581781fec5c", - "src/img/panels-fa.png": "fde0a36ebe2d3479e3b377c9df655dcfeb06bdcc97c6a4e044e5376eac3ee6ce", - "src/img/editor-default.png": "0cbef64a82efe7c2351bc4a60fd57780d46c877551ab7bd39a4549d90882d424", - "src/img/influx-usage.png": "5a47c0cf2840be27650a4d1d65a5f053da7d2592a60116b3fd4174232c681ef5", - "src/img/prometheus-usage.png": "4d332fcab96f51a0bf2623f6966b32a28e7402e9e42de960588844b04bb27159", - "src/img/img-transform-example.png": "4bf8d4bc6c4300cc3e22d7505b3316030a7bc85ab22965dcbc0b8002a9d8a729", - "src/img/editor-2.png": "e169cece7ea951efd1850c3d312e362a031766ac92e67a3603c0a125f52e6853", - "src/img/time-based-thresholds.png": "956ed6a8d49daa66018e8c42bffa23f2a2269aa25909f7bb807e4b3193125be8", - "src/img/version-5.0.2.png": "150858ff4a7c71eafa2dcf12970721edd2156a35840c3ecfafcc2667bee91a15", - "src/img/panel.png": "f680a1f1450549503b1e2613f7718e64e5fb6f0adc6e13a979a9620c66d6055d", - "src/img/azure-monitor-usage.png": "57409cd5896588198fcd84c3e8c327b4e1fc30d5d6a937d122f2b3b07d9a3d23", - "src/img/metrics.png": "2302e981da80607f6ca2e28548246dbbc2293889a4e609057b48f6268eeda887", - "src/img/debug-ui.png": "593940f5cbd9774f0737f90f1b4bc7db59c920cb8124529f81d1572ed88e75df" - } -} ------BEGIN PGP SIGNATURE----- -Version: OpenPGP.js v4.10.1 -Comment: https://openpgpjs.org - -wqEEARMKAAYFAmC5EJsACgkQfk0ManCIZufPQgIIwx3SoLRGb5YwUGF5Devg -6/IWqX4d/LcVm/C/JlIyQFuv15khJcFm2i45WKxqKB64P5Gqk9JPpnIabx3/ -2Ht3oNsCCQFLXSJuMQ210f1pcVzrFUOA2uELufB8qBejG/mzD4mdqpOAXUF5 -6NglRRwi/CSxmVmT9YTANuTi1z/28GmYlNl0UQ== -=5EUB ------END PGP SIGNATURE----- diff --git a/panels/yesoreyeram-boomtable-panel/README.md b/panels/yesoreyeram-boomtable-panel/README.md deleted file mode 100644 index 51198e0637..0000000000 --- a/panels/yesoreyeram-boomtable-panel/README.md +++ /dev/null @@ -1,440 +0,0 @@ -# Boom Table Panel for Grafana - -![Build & Publish](https://github.com/yesoreyeram/yesoreyeram-boomtable-panel/workflows/Build%20&%20Publish/badge.svg) - -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) - -![Boom Table - Panel with Font Awesome icons](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/panels-fa.png) - - -Features : ----------- - -* Multi column support for graphite, InfluxDB, Prometheus & Azure Monitor -* Individual thresholds for cells based on pattern -* Multi level thresholds (N number of thresholds) -* Individual aggregation method for cell based on pattern -* Time based thresholds -* Individual cell values can be transformed to helpful texts, based on pattern. -* Transformed texts can also contain actual metrics -* Icons in metrics -* Units can be set at cell level based on pattern -* Row/Column name based on multiple graphite/InfluxDB/Prometheus columns -* Filter metrics -* Debug UI to test patterns - -Supported / Tested Data Sources : --------------------------------- - -* Graphite -* InfluxDB -* Prometheus -* Azure Monitor -* AWS Cloud Watch -* Any datasources that returns data in timeseries format - -Tested Grafana versions : -------------------------- - -* Grafana version 4.5.2 -* Grafana version 5.0.2 -* Grafana version 6.0.0 - - -Screenshots : -------------- - -Pattern Editors Sample screenshots - -![image](https://user-images.githubusercontent.com/153843/53409051-e973f580-39b7-11e9-83e3-e1b6306abafb.png) - -![image](https://user-images.githubusercontent.com/153843/53409071-fa246b80-39b7-11e9-9e8e-05baa8fc1531.png) - -![image](https://user-images.githubusercontent.com/153843/53409114-13c5b300-39b8-11e9-9227-339dcd110276.png) - -Debug UI Sample screenshots - -![image](https://user-images.githubusercontent.com/153843/53409376-acf4c980-39b8-11e9-89bc-363822fe370d.png) - - -# Setup - - -Pattern Guidelines ------------------- - -Pattern are regular expressions / name of the metrics. If there are multiple matching patterns, first match will be considered. To see the matching patterns, enable debug mode in Options panel. - -Sample graphite series / Influx / Prometheus metrics - - prod.server.my-app-01.sys.cpu.usage - prod.server.my-app-01.sys.mem.usage - prod.server.my-app-01.sys.hdd.c.freespace - prod.server.my-app-01.sys.hdd.d.freespace - prod.server.my-app-02.sys.cpu.usage - prod.server.my-app-02.sys.mem.usage - prod.server.my-app-02.sys.hdd.c.freespace - prod.server.my-app-02.sys.hdd.d.freespace - dev.server.my-app-01.sys.cpu.usage - dev.server.my-app-01.sys.mem.usage - dev.server.my-app-01.sys.hdd.c.freespace - dev.server.my-app-01.sys.hdd.d.freespace - prod.app.sales.usage.requests_per_sec - prod.app.orders.usage.requests_per_sec - alias(carbon.agents.a.cache.queries, 'Carbon A usage') - alias(carbon.agents.b.cache.queries, 'Carbon B usage') - -patterns and matching metrics - - usage$ --> All the CPU, Memory metrics from prod and dev and also requests_per_sec metrics and also carbon usage - cpu.usage$ --> All the CPU metrics - free --> All the disk freespace metrics - ^prod --> All the prod metrics - ^dev.*.usage$ --> All the cpu, mem metrics of dev servers - ^prod.*.cpu.usage$ --> All the cpu metrics of prod servers - dev.server.my-app-01.sys.cpu.usage --> only dev.server.my-app-01.sys.cpu.usage - usage$ --> Carbon usage(Note the space before the pattern) - A usage$ --> Only carbon A usage - -Row and Column name guidelines ------------------------------- - -Row and Col names are derived from series name. If n is wrapped by "_", then that will be replaced by n-th column in graphite/influxdb/prometheus metric (seperated by delimiter). Refer below examples and screenshots to get more idea. Or use debug mode to try. (n starts from index 0) - -Sample graphite series / Influx / Prometheus Metrics - - prod.server.my-app-01.sys.cpu.usage - -Pattern & Output - - _4_ --> cpu - _4_ _5_ --> cpu usage - _4_ 2 _5_ --> cpu 2 usage - _4_ use --> cpu use - Production _4_ usage --> Production cpu usage - Production _4_ $somevar --> Production cpu value_of_somevar_variable - _series_ --> prod.server.my-app-01.sys.cpu.usage - _1_ _1_ --> server server - _4_ __5_ --> cpu _usage - -**Note** : If you prefer to change the wrapper from "_" to somthing like "~" or "__", you can do it through the option "Row / Column indentification wrapper" in options tab. - - -Thresholds ----------- - -Thresholds are numbers seperated by comma. There can be multiple thresholds. - -Example: - - 10,20 - 70,90,95 - -Time based thresholds ---------------------- - -Thresholds can be overriden, based on day and time of the browser. - -Multiple time based threshold rules can be set for any given pattern. If multiple rule matches, last rule wins. If no rule matches, default thresholds will be applicable. Example given below. - -Following notations should be followed when added time based threshold rule - -**Name** : Can be any representation in string but not more than 60 characters. - -**From** : in HHMM format examples: 0000 2400 1330 1250 - -**To** : in HHMM format examples: 0000 2400 1330 1250 - -**On** : Days seperated by comma. Order doesnt matter. Examples; "Sat,Sun", "Mon,Sun,Tue" - -**Threshold** : Same format as default threshold - -![Time based thresholds](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/time-based-thresholds.png) - -**WARNING**: "From" and "To" fields will be compared against timestamp of last data received from server. If the last data point is not availble, then browser time will be considered. - -**TIPS** : If your threshold time rage ranges between two day, (example: 2300 of saturday to 0230 of sunday), then split the rule into two each for saturdary and sunday. - -**NOTE** : If you specify n number threshold levels in default pattern (ex: 20,30),then time based thresholds should also follow same number of levels. - -Background color based on thresholds ------------------------------------- - -Works the same way as single stat panel. Background color is a list of colors seperated by pipe symbol. Colors can be named or hexadecimal colors or rgb or rgba. Number of colors should be greater than the number of thresholds. - -Example of color patterns: - - green|orange|red - darkred|red|orange|red - green|red - green|#797979|rgba(0, 0, 255,0.5)|rgb(0, 0, 255)|red - -Example of matching patterns: - - 1: thresholds : 5 - pattern : green|red - value : 5 output : red - value : 6 output : red - value : 4 output : green - - 2: thresholds : 70,90 - pattern : green|orange|red - value : 95 output : red - value : 85 output : orange - value : 65 output : green - - 3: thresholds : 70,90 - pattern : red|orange|green - value : 95 output : green - value : 85 output : orange - value : 65 output : red - -Background color overrides --------------------------- - -Background colors can be overriden for specific values by using the pattern option `Enable BG Color overrides for specific value?`. Override values should be specified in the `BG Color Overrides` in the following format. If multiple matches found, first one will win. - - 0->Red - 13->Red|8->Green - -Value and colors are seperated by `->`. Multiple combination of values can be given seperated by `|`. - -If background colors based on thresholds also specified along with this, this will be override the threshold based pattern. - -Value transformation based on thresholds ----------------------------------------- - -Logic is same as background color. But the value to be displayed can be altered here. Display value will be replaced with the value provided. Values are seperated by pipe. if the value is wrapped with _, then it will represent the actual value. - -`_value_` will be replaced by actual value with format and decimals - -`_value_raw_` will be replaced by actual value without format and decimals - -`_row_name_` will be replaced by row name. This will be useful when you hide the first column. - -`_col_name_` will be replaced by col name. This will be useful when you hide the table header. - -`_n_` will be replaced by nth part of the series using `_` delimiter. Same rule as row_name and col_name - -The following tokens can be also used in value transform / default value template - -`_value_min_raw_` - Min value of the series without formatting -`_value_min_` - Min value of the series with formatting -`_value_max_raw_`- Max value of the series without formatting -`_value_max_` - Max value of the series with formatting -`_value_avg_raw_`- Average value of the series without formatting -`_value_avg_` - Average value of the series with formatting -`_value_current_raw_`- Current value of the series without formatting -`_value_current_` - Current value of the series with formatting -`_value_total_raw_`- Total value of the series without formatting -`_value_total_` - Total value of the series with formatting - -Example transformation patterns : - - _value_|_value_|_value_ - GOOD|BETTER|BAD - GOOD (_value_)|_value_|_value - Time to party|Ill|RIP - _col_name_ : _value_| _col_name_ : _value_| _col_name_ : _value_ - _row_name_ : _value_| _row_name_ : _value_| _row_name_ : _value_ - _row_name_ _col_name_ : _value_| _row_name_ _col_name_ : _value_| _row_name_ _col_name_ : _value_ - - -Sample value transformation: (Assume your metrics results, 95 and it is percentage data type) - - - _value_ --> 95% - GOOD (_value_) --> GOOD (95%) - HOT (_value_ > threshold of 80%) --> HOT (95% > threshold of 80%) - Contact helpdesk --> Contact helpdesk - - -Transform value overrides --------------------------- - -Transform values can be overriden for specific values by using the pattern option `Enable value transform overrides?`. Override values should be specified in the `Value transform Overrides` in the following format. If multiple matches found, first one will win. - - 13->Evil - 12->good|37.50->_fa-circle_|99->Oh no... - -Value and transform values are seperated by `->`. Multiple combination of values can be given seperated by `|`. - -If transform values based on thresholds also specified along with this, this will be override the threshold based pattern. - -Table Cell links ----------------- - -Table cells can be clickable and open links in new tabs. - -If the URL contains `_row_name_`, it will be replaced by row name. - -If the URL contains `_col_name_`, it will be replaced by col name. - -Note : If the row_name / col_name contains font awesome keywords like `_fa-circle_`, they will be ignored. - - -Example : `https://mysite.com/_row_name_/_col_name_/?foo=bar` - -First Column Links ------------------- - -To enable link for the first column, Specify link URL in options tab. - -First row link can have token `_row_name_` . Any other tokens will be ignored. If your row name tends to any font awesome icons or images, they will be ignored in the link's `_row_name` - -![image](https://user-images.githubusercontent.com/153843/61057603-8a0a0580-a3ed-11e9-9572-bd76edb0b685.png) - -Example : `http://google.com?q=_row_name_` will be replaced as `http://google.com?q=app_0` if the first columnn name is `app_0` - -Refer issue [#85](https://github.com/yesoreyeram/yesoreyeram-boomtable-panel/issues/85) for more details - -Filter ------- - -If your output have more rows and if you require to hide certain rows based on their output value, you can use the filter option to hide those rows. Series will be hidden if any one of the condition match. - -![Filter rows based on value](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/filters.png) - - -Repeater / Multistat Example ------------------ - -You can use the boom table as multi stat panel. Refer the details given in issue [#40](https://github.com/yesoreyeram/yesoreyeram-boomtable-panel/issues/40) - -![Multistat panel / Repeater ](https://user-images.githubusercontent.com/153843/47859058-4fbf8180-dde5-11e8-8b27-2ef94919d1f8.png) - - -Using Font Awesome icons in row /column / metric fields -------------------------------------------------------- - -If your row name / col name / transform metrics contains strings that starts with `_fa-` and ends with `_`, then they will be replaced with corresponding font awesome icons grafana supported. Example usage given below. - -` _fa-arrow-up_ ` -> UP ARROW icon in default color - -` _fa-arrow-up,green_ ` -> UP ARROW icon in green color - -` _fa-arrow-down,red,5_ ` -> DOWN ARROW icon in red color repeated 5 times - -` _fa-apple,,5_ ` -> APPLE icon in default color repeated 5 times - -` _fa-square,red,3,gray,10_ ` -> 3 RED Square iconds and then 7 gray square icons ( only from version 1.3.0, fill icons considered ) - -` _fa-square,red,76/10,gray,10_ ` -> 8 RED Square iconds and then 2 gray square icons ( only from version 1.3.0, math expressions are considered ) - -` _fa-square,red,34/10,gray,10_ ` -> 3 RED Square iconds and then 7 gray square icons ( only from version 1.3.0, math expressions are considered ) - -In summary, the format of the font awesome token should be in the following format - -* this token should be surrounded by one or more empty spaces. -* this should start with `_fa-` and ends with `_` -* should be comma seperated -* index 0 is fa-iconname where iconname can be any valid font awesome icon -* index 1 should be color of the icon. If empty default text color / threshold text color will be considered -* index 2 should be repeat count ( can be simple one level math expression ) -* index 3 should be empty repeat color. If empty default text color / threshold text color will be considered -* index 4 should be max repeat count ( can be simple one level math expression ) -* index 2 and 4 can have valid math expression like below - * 15 ---- valid - * 23+12 ---- valid and will yield 35 - * 24-10 ---- valid and will yield 14 - * 2.4*10 ---- valid and will yield 24 - * 15/3 ---- valid and will yield 5 - * 29/4 ---- valid and will yield 7 - * 97/10 ---- valid and will yield 10 - * 23max12 ---- valid and will yield 23 - * 23min12 ---- valid and will yield 12 - * 3.36max2 ---- valid and will yield 3 - -**Example implementations of icons in metrics:** (Unlimited possibilites like heatmap) - -![Font Awesome Icons support](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/font-awesome-examples.png) - -* Battery level indicator - * Thresholds : `10,75` - * Transform Values : `_fa-battery-empty,red_ _value_|_fa-battery-quarter,yellow_ _value_|_fa-battery-full,green_ _value_` -* Bar chart indicator - * Thresholds : `10,20,30,40,50,60,70,80,90` - * Transform Values : `_fa-square,green,1_ _fa-square,gray,9_|_fa-square,green,2_ _fa-square,gray,8_|_fa-square,green,3_ _fa-square,gray,7_|_fa-square,green,4_ _fa-square,gray,6_|_fa-square,yellow,5_ _fa-square,gray,5_|_fa-square,yellow,6_ _fa-square,gray,4_|_fa-square,yellow,7_ _fa-square,gray,3_|_fa-square,red,8_ _fa-square,gray,2_|_fa-square,red,9_ _fa-square,gray,1_|_fa-square,red,10_ _fa-square,gray,0_` -* Payment Gateway Status Indicator - * Similar threhold setup. (Note : In the example shown in the above picture each series represented by their own patterns.) - * Hide first column and headers -* Heatmap - * Similar threshold setup - * First column and headers are hidden - -Using images as transform values --------------------------------- - -If your row name / col name / transform metrics contains strings that starts with `_img-` and ends with `_`, then they will be replaced with images. Example usage given below. - -` _img-https://example.com/happy.gif_ ` -> happy.gif with 20px width, 20px height - -` _img-https://example.com/happy.gif,30px_ ` -> happy.gif with 30px width, 20px height - -` _img-https://example.com/happy.gif,30px,40px_ ` -> happy.gif with 30px width, 40px height - -` _img-https://example.com/happy.gif,30px,40px,3_ ` -> happy.gif with 30px width, 40px height repeated 3 times - -![Image transform](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/img-transform-example.png) - -Note : When using images from other domains, please take care of CORS policy, legal and copyright polices. - -Options -------- - -`Text alignment for first column` -> This option specify the text alignment of first column cells in the table. Can be `left`,`right` or `center`. Default is left. - -`Text alignment for table header` -> This option specify the text alignment of table headers excluding first column. Can be `left`,`right` or `center`. Default is left. - -`Text alignment for values` -> This option specify the text alignment of value cells in the table. Can be `left`,`right` or `center`. Default is left. - -`Non matching cells text` -> If no series matches for the given row and col match, the corresponding text can be specified using this option. This option can also contain font awesome and image replacement tokens. - -`Non matching cells BG Color` -> If no series matches for the given row and col match, the corresponding bg color can be specified using this option - -`Non matching cells Text Color` -> If no series matches for the given row and col match, the corresponding text color can be specified using this option - -`Font Size` -> Specify font size to be used in the table. Leave blank for default. size can be specified in css units such as `1.4rem` , `16px` etc - -Azure Monitor Usage -------------------- - -Same as other time series data sources. You need to properly format your legend to extract the row and column name. - -![Azure Monitor Usage](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/azure-monitor-usage.png) - -Prometheus & InfluxDB Guidelines ---------------------- - -Though this plugin was initially designed to support graphite, It is also capable of handling timeseries database like Prometheus & InfluxDB. In order to achieve this, you need to **alias** your timeseries/Prometheus/Infludb metrics to proper delimited format. Following screenshot explains plugin usage with Prometheus/InfluxDB where the metrics are aliased with pipe delimiter. This can be any delimiter like space, dot, etc.# - -![Prometheus Usage](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/prometheus-usage.png) - -![InfluxDB Usage](https://raw.githubusercontent.com/yesoreyeram/yesoreyeram-boomtable-panel/master/dist/src/img/influx-usage.png) - -Optionally, you can experiement with the new tags feature instead of **alias** . (Not for production use) - -Tag delimiter for influxdb and prometheus ( Experimental Feature ) -==================================================================== - -**WARNING** : This may have bugs. Not suitable for production. - -To use , tags from your series use `tag` as a delimiter as shown below. Then in the row / column, you can specify the tags surronded by double curly braces as shown below. Metric can be referred by {{metric_name}}}. - -Rowname, Colname, Links, Tooltips and display template can also have this tag tokens. - -# Influx DB - -![image](https://user-images.githubusercontent.com/153843/61379520-9be12200-a89f-11e9-8bcd-b55e7f86249d.png) -![image](https://user-images.githubusercontent.com/153843/61379533-a4395d00-a89f-11e9-8fd8-b62c3df0630a.png) -![image](https://user-images.githubusercontent.com/153843/61379567-b1eee280-a89f-11e9-81dc-f128b5ec17dd.png) - - -# Prometheus - -![image](https://user-images.githubusercontent.com/153843/61379602-c206c200-a89f-11e9-8dfb-462e5f28965b.png) -![image](https://user-images.githubusercontent.com/153843/61379630-cf23b100-a89f-11e9-9677-bfa05c05d7ea.png) -![image](https://user-images.githubusercontent.com/153843/61379652-db0f7300-a89f-11e9-8cef-254e8f1a8b7a.png) - diff --git a/panels/yesoreyeram-boomtable-panel/app/GrafanaUtils.js b/panels/yesoreyeram-boomtable-panel/app/GrafanaUtils.js deleted file mode 100644 index 9eb94941ef..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/GrafanaUtils.js +++ /dev/null @@ -1,67 +0,0 @@ -System.register(["lodash", "app/core/utils/kbn"], function (exports_1, context_1) { - "use strict"; - var lodash_1, kbn_1, getDecimalsForValue, get_formatted_value; - 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; - } - ], - execute: function () { - 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); - get_formatted_value = function (value, decimals, format) { - if (!isNaN(value)) { - var decimalInfo = getDecimalsForValue(value, decimals); - var formatFunc = kbn_1.default.valueFormats[format]; - return formatFunc(value, decimalInfo.decimals, decimalInfo.scaledDecimals); - } - else { - return value; - } - }; - exports_1("get_formatted_value", get_formatted_value); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhZmFuYVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9HcmFmYW5hVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7WUFJTSxtQkFBbUIsR0FBRyxVQUFTLEtBQUssRUFBRSxTQUFTO2dCQUNuRCxJQUFJLGdCQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFXO3dCQUNkLFFBQVEsRUFBRSxTQUFTO3dCQUNuQixjQUFjLEVBQUUsSUFBSTtxQkFDckIsQ0FBQztvQkFDRixPQUFPLENBQUMsQ0FBQztpQkFDVjtnQkFFRCxJQUFJLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRW5ELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQzNCLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxFQUNuQixJQUFJLENBQUM7Z0JBRVAsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFO29CQUNkLElBQUksR0FBRyxDQUFDLENBQUM7aUJBQ1Y7cUJBQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO29CQUNuQixJQUFJLEdBQUcsQ0FBQyxDQUFDO29CQUVULElBQUksSUFBSSxHQUFHLElBQUksRUFBRTt3QkFDZixJQUFJLEdBQUcsR0FBRyxDQUFDO3dCQUNYLEVBQUUsR0FBRyxDQUFDO3FCQUNQO2lCQUNGO3FCQUFNLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRTtvQkFDckIsSUFBSSxHQUFHLENBQUMsQ0FBQztpQkFDVjtxQkFBTTtvQkFDTCxJQUFJLEdBQUcsRUFBRSxDQUFDO2lCQUNYO2dCQUVELElBQUksSUFBSSxJQUFJLENBQUM7Z0JBR2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRTtvQkFDL0IsR0FBRyxHQUFHLENBQUMsQ0FBQztpQkFDVDtnQkFFRCxJQUFJLE1BQU0sR0FBVztvQkFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztvQkFDMUIsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDOUUsQ0FBQztnQkFFRixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDLENBQUM7O1lBQ0ksbUJBQW1CLEdBQUcsVUFBUyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU07Z0JBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pCLElBQUksV0FBVyxHQUFRLG1CQUFtQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDNUQsSUFBSSxVQUFVLEdBQUcsYUFBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUM1RTtxQkFBTTtvQkFDTCxPQUFPLEtBQUssQ0FBQztpQkFDZDtZQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLzxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL25vZGVfbW9kdWxlcy9ncmFmYW5hLXNkay1tb2Nrcy9hcHAvaGVhZGVycy9jb21tb24uZC50c1wiIC8+XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCBrYm4gZnJvbSAnYXBwL2NvcmUvdXRpbHMva2JuJztcclxuXHJcbmNvbnN0IGdldERlY2ltYWxzRm9yVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSwgX2RlY2ltYWxzKSB7XHJcbiAgaWYgKF8uaXNOdW1iZXIoK19kZWNpbWFscykpIHtcclxuICAgIGxldCBvOiBPYmplY3QgPSB7XHJcbiAgICAgIGRlY2ltYWxzOiBfZGVjaW1hbHMsXHJcbiAgICAgIHNjYWxlZERlY2ltYWxzOiBudWxsLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBvO1xyXG4gIH1cclxuXHJcbiAgbGV0IGRlbHRhID0gdmFsdWUgLyAyO1xyXG4gIGxldCBkZWMgPSAtTWF0aC5mbG9vcihNYXRoLmxvZyhkZWx0YSkgLyBNYXRoLkxOMTApO1xyXG5cclxuICBsZXQgbWFnbiA9IE1hdGgucG93KDEwLCAtZGVjKSxcclxuICAgIG5vcm0gPSBkZWx0YSAvIG1hZ24sIC8vIG5vcm0gaXMgYmV0d2VlbiAxLjAgYW5kIDEwLjBcclxuICAgIHNpemU7XHJcblxyXG4gIGlmIChub3JtIDwgMS41KSB7XHJcbiAgICBzaXplID0gMTtcclxuICB9IGVsc2UgaWYgKG5vcm0gPCAzKSB7XHJcbiAgICBzaXplID0gMjtcclxuICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgMi41LCByZXF1aXJlcyBhbiBleHRyYSBkZWNpbWFsXHJcbiAgICBpZiAobm9ybSA+IDIuMjUpIHtcclxuICAgICAgc2l6ZSA9IDIuNTtcclxuICAgICAgKytkZWM7XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmIChub3JtIDwgNy41KSB7XHJcbiAgICBzaXplID0gNTtcclxuICB9IGVsc2Uge1xyXG4gICAgc2l6ZSA9IDEwO1xyXG4gIH1cclxuXHJcbiAgc2l6ZSAqPSBtYWduO1xyXG5cclxuICAvLyByZWR1Y2Ugc3RhcnRpbmcgZGVjaW1hbHMgaWYgbm90IG5lZWRlZFxyXG4gIGlmIChNYXRoLmZsb29yKHZhbHVlKSA9PT0gdmFsdWUpIHtcclxuICAgIGRlYyA9IDA7XHJcbiAgfVxyXG5cclxuICBsZXQgcmVzdWx0OiBPYmplY3QgPSB7XHJcbiAgICBkZWNpbWFsczogTWF0aC5tYXgoMCwgZGVjKSxcclxuICAgIHNjYWxlZERlY2ltYWxzOiBNYXRoLm1heCgwLCBkZWMpIC0gTWF0aC5mbG9vcihNYXRoLmxvZyhzaXplKSAvIE1hdGguTE4xMCkgKyAyLFxyXG4gIH07XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn07XHJcbmNvbnN0IGdldF9mb3JtYXR0ZWRfdmFsdWUgPSBmdW5jdGlvbih2YWx1ZSwgZGVjaW1hbHMsIGZvcm1hdCk6IHN0cmluZyB7XHJcbiAgaWYgKCFpc05hTih2YWx1ZSkpIHtcclxuICAgIGxldCBkZWNpbWFsSW5mbzogYW55ID0gZ2V0RGVjaW1hbHNGb3JWYWx1ZSh2YWx1ZSwgZGVjaW1hbHMpO1xyXG4gICAgbGV0IGZvcm1hdEZ1bmMgPSBrYm4udmFsdWVGb3JtYXRzW2Zvcm1hdF07XHJcbiAgICByZXR1cm4gZm9ybWF0RnVuYyh2YWx1ZSwgZGVjaW1hbEluZm8uZGVjaW1hbHMsIGRlY2ltYWxJbmZvLnNjYWxlZERlY2ltYWxzKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxufTtcclxuZXhwb3J0IHsgZ2V0X2Zvcm1hdHRlZF92YWx1ZSwgZ2V0RGVjaW1hbHNGb3JWYWx1ZSB9O1xyXG4iXX0= \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/app.js b/panels/yesoreyeram-boomtable-panel/app/app.js deleted file mode 100644 index bf7183bb99..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/app.js +++ /dev/null @@ -1,74 +0,0 @@ -System.register(["lodash", "./boom/index", "./config"], function (exports_1, context_1) { - "use strict"; - var lodash_1, index_1, config_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; - }, - function (config_1_1) { - config_1 = config_1_1; - } - ], - execute: function () { - defaultPattern = new index_1.BoomPattern(config_1.default_pattern_options); - exports_1("defaultPattern", defaultPattern); - seriesToTable = function (inputdata, options) { - var rows_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name; })); - var rows_without_token = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.row_name_raw; })); - var cols_found = lodash_1.default.uniq(lodash_1.default.map(inputdata, function (d) { return d.col_name; })); - var output = []; - lodash_1.default.each(rows_found.sort(), function (row_name) { - var cols = []; - lodash_1.default.each(cols_found.sort(), function (col_name) { - var matched_items = lodash_1.default.filter(inputdata, function (o) { - return o.row_name === row_name && o.col_name === col_name; - }); - if (!matched_items || matched_items.length === 0) { - cols.push({ - col_name: col_name, - color_bg: options.non_matching_cells_color_bg, - color_text: options.non_matching_cells_color_text, - display_value: index_1.replaceTokens(options.non_matching_cells_text), - hidden: false, - link: '-', - row_name: row_name, - tooltip: '-', - value: NaN, - }); - } - else if (matched_items && matched_items.length === 1) { - cols.push(matched_items[0]); - } - else if (matched_items && matched_items.length > 1) { - cols.push({ - col_name: col_name, - color_bg: 'darkred', - color_text: 'white', - display_value: 'Duplicate matches', - hidden: false, - link: '-', - row_name: row_name, - tooltip: '-', - value: NaN, - }); - } - }); - output.push(cols); - }); - return { - cols_found: cols_found, - output: output, - rows_found: rows_found, - rows_without_token: rows_without_token, - }; - }; - exports_1("seriesToTable", seriesToTable); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFLTSxjQUFjLEdBQUcsSUFBSSxtQkFBVyxDQUFDLGdDQUF1QixDQUFDLENBQUM7O1lBRTFELGFBQWEsR0FBRyxVQUFTLFNBQXdCLEVBQUUsT0FBd0M7Z0JBQy9GLElBQUksVUFBVSxHQUFHLGdCQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxRQUFRLEVBQVYsQ0FBVSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxrQkFBa0IsR0FBRyxnQkFBQyxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsWUFBWSxFQUFkLENBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksVUFBVSxHQUFHLGdCQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxRQUFRLEVBQVYsQ0FBVSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxNQUFNLEdBQXlCLEVBQUUsQ0FBQztnQkFDdEMsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQUEsUUFBUTtvQkFDaEMsSUFBSSxJQUFJLEdBQXVCLEVBQUUsQ0FBQztvQkFDbEMsZ0JBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQUEsUUFBUTt3QkFDaEMsSUFBSSxhQUFhLEdBQUcsZ0JBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQUEsQ0FBQzs0QkFDdkMsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQzt3QkFDNUQsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs0QkFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQztnQ0FDUixRQUFRLEVBQUUsUUFBUTtnQ0FDbEIsUUFBUSxFQUFFLE9BQU8sQ0FBQywyQkFBMkI7Z0NBQzdDLFVBQVUsRUFBRSxPQUFPLENBQUMsNkJBQTZCO2dDQUNqRCxhQUFhLEVBQUUscUJBQWEsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7Z0NBQzdELE1BQU0sRUFBRSxLQUFLO2dDQUNiLElBQUksRUFBRSxHQUFHO2dDQUNULFFBQVEsRUFBRSxRQUFRO2dDQUNsQixPQUFPLEVBQUUsR0FBRztnQ0FDWixLQUFLLEVBQUUsR0FBRzs2QkFDWCxDQUFDLENBQUM7eUJBQ0o7NkJBQU0sSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQzdCOzZCQUFNLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDO2dDQUNSLFFBQVEsRUFBRSxRQUFRO2dDQUNsQixRQUFRLEVBQUUsU0FBUztnQ0FDbkIsVUFBVSxFQUFFLE9BQU87Z0NBQ25CLGFBQWEsRUFBRSxtQkFBbUI7Z0NBQ2xDLE1BQU0sRUFBRSxLQUFLO2dDQUNiLElBQUksRUFBRSxHQUFHO2dDQUNULFFBQVEsRUFBRSxRQUFRO2dDQUNsQixPQUFPLEVBQUUsR0FBRztnQ0FDWixLQUFLLEVBQUUsR0FBRzs2QkFDWCxDQUFDLENBQUM7eUJBQ0o7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTztvQkFDTCxVQUFVLFlBQUE7b0JBQ1YsTUFBTSxRQUFBO29CQUNOLFVBQVUsWUFBQTtvQkFDVixrQkFBa0Isb0JBQUE7aUJBQ25CLENBQUM7WUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSUJvb21TZXJpZXMsIElCb29tQ2VsbERldGFpbHMsIElCb29tVGFibGUsIElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMgfSBmcm9tICcuL2Jvb20vaW5kZXgnO1xuaW1wb3J0IHsgQm9vbVBhdHRlcm4sIHJlcGxhY2VUb2tlbnMgfSBmcm9tICcuL2Jvb20vaW5kZXgnO1xuaW1wb3J0IHsgZGVmYXVsdF9wYXR0ZXJuX29wdGlvbnMgfSBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IGRlZmF1bHRQYXR0ZXJuID0gbmV3IEJvb21QYXR0ZXJuKGRlZmF1bHRfcGF0dGVybl9vcHRpb25zKTtcblxuY29uc3Qgc2VyaWVzVG9UYWJsZSA9IGZ1bmN0aW9uKGlucHV0ZGF0YTogSUJvb21TZXJpZXNbXSwgb3B0aW9uczogSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyk6IElCb29tVGFibGUge1xuICBsZXQgcm93c19mb3VuZCA9IF8udW5pcShfLm1hcChpbnB1dGRhdGEsIGQgPT4gZC5yb3dfbmFtZSkpO1xuICBsZXQgcm93c193aXRob3V0X3Rva2VuID0gXy51bmlxKF8ubWFwKGlucHV0ZGF0YSwgZCA9PiBkLnJvd19uYW1lX3JhdykpO1xuICBsZXQgY29sc19mb3VuZCA9IF8udW5pcShfLm1hcChpbnB1dGRhdGEsIGQgPT4gZC5jb2xfbmFtZSkpO1xuICBsZXQgb3V0cHV0OiBJQm9vbUNlbGxEZXRhaWxzW11bXSA9IFtdO1xuICBfLmVhY2gocm93c19mb3VuZC5zb3J0KCksIHJvd19uYW1lID0+IHtcbiAgICBsZXQgY29sczogSUJvb21DZWxsRGV0YWlsc1tdID0gW107XG4gICAgXy5lYWNoKGNvbHNfZm91bmQuc29ydCgpLCBjb2xfbmFtZSA9PiB7XG4gICAgICBsZXQgbWF0Y2hlZF9pdGVtcyA9IF8uZmlsdGVyKGlucHV0ZGF0YSwgbyA9PiB7XG4gICAgICAgIHJldHVybiBvLnJvd19uYW1lID09PSByb3dfbmFtZSAmJiBvLmNvbF9uYW1lID09PSBjb2xfbmFtZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFtYXRjaGVkX2l0ZW1zIHx8IG1hdGNoZWRfaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbHMucHVzaCh7XG4gICAgICAgICAgY29sX25hbWU6IGNvbF9uYW1lLFxuICAgICAgICAgIGNvbG9yX2JnOiBvcHRpb25zLm5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl9iZyxcbiAgICAgICAgICBjb2xvcl90ZXh0OiBvcHRpb25zLm5vbl9tYXRjaGluZ19jZWxsc19jb2xvcl90ZXh0LFxuICAgICAgICAgIGRpc3BsYXlfdmFsdWU6IHJlcGxhY2VUb2tlbnMob3B0aW9ucy5ub25fbWF0Y2hpbmdfY2VsbHNfdGV4dCksXG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsaW5rOiAnLScsXG4gICAgICAgICAgcm93X25hbWU6IHJvd19uYW1lLFxuICAgICAgICAgIHRvb2x0aXA6ICctJyxcbiAgICAgICAgICB2YWx1ZTogTmFOLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWF0Y2hlZF9pdGVtcyAmJiBtYXRjaGVkX2l0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBjb2xzLnB1c2gobWF0Y2hlZF9pdGVtc1swXSk7XG4gICAgICB9IGVsc2UgaWYgKG1hdGNoZWRfaXRlbXMgJiYgbWF0Y2hlZF9pdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbHMucHVzaCh7XG4gICAgICAgICAgY29sX25hbWU6IGNvbF9uYW1lLFxuICAgICAgICAgIGNvbG9yX2JnOiAnZGFya3JlZCcsXG4gICAgICAgICAgY29sb3JfdGV4dDogJ3doaXRlJyxcbiAgICAgICAgICBkaXNwbGF5X3ZhbHVlOiAnRHVwbGljYXRlIG1hdGNoZXMnLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGluazogJy0nLFxuICAgICAgICAgIHJvd19uYW1lOiByb3dfbmFtZSxcbiAgICAgICAgICB0b29sdGlwOiAnLScsXG4gICAgICAgICAgdmFsdWU6IE5hTixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgb3V0cHV0LnB1c2goY29scyk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGNvbHNfZm91bmQsXG4gICAgb3V0cHV0LFxuICAgIHJvd3NfZm91bmQsXG4gICAgcm93c193aXRob3V0X3Rva2VuLFxuICB9O1xufTtcblxuZXhwb3J0IHsgZGVmYXVsdFBhdHRlcm4sIHNlcmllc1RvVGFibGUgfTtcbiJdfQ== \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/Boom.interface.js b/panels/yesoreyeram-boomtable-panel/app/boom/Boom.interface.js deleted file mode 100644 index 1f2cc5560f..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/Boom.interface.js +++ /dev/null @@ -1,10 +0,0 @@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBJQm9vbVBhdHRlcm4ge1xyXG4gIGJnQ29sb3JzOiBzdHJpbmc7XHJcbiAgYmdDb2xvcnNfb3ZlcnJpZGVzOiBzdHJpbmc7XHJcbiAgY2xpY2thYmxlX2NlbGxzX2xpbms6IHN0cmluZztcclxuICBjb2xfbmFtZTogc3RyaW5nO1xyXG4gIGRlY2ltYWxzOiBOdW1iZXI7XHJcbiAgZGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgZW5hYmxlX2JnQ29sb3I6IEJvb2xlYW47XHJcbiAgZW5hYmxlX2JnQ29sb3Jfb3ZlcnJpZGVzOiBCb29sZWFuO1xyXG4gIGVuYWJsZV9jbGlja2FibGVfY2VsbHM6IEJvb2xlYW47XHJcbiAgZW5hYmxlX3RleHRDb2xvcjogQm9vbGVhbjtcclxuICBlbmFibGVfdGV4dENvbG9yX292ZXJyaWRlczogQm9vbGVhbjtcclxuICBlbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzOiBCb29sZWFuO1xyXG4gIGVuYWJsZV90cmFuc2Zvcm06IEJvb2xlYW47XHJcbiAgZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXM6IEJvb2xlYW47XHJcbiAgZGlzcGxheVRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdEJHQ29sb3I6IHN0cmluZztcclxuICBkZWZhdWx0VGV4dENvbG9yOiBzdHJpbmc7XHJcbiAgZmlsdGVyOiB7XHJcbiAgICB2YWx1ZV9hYm92ZTogc3RyaW5nO1xyXG4gICAgdmFsdWVfYmVsb3c6IHN0cmluZztcclxuICB9O1xyXG4gIGZvcm1hdDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBudWxsX2NvbG9yOiBzdHJpbmc7XHJcbiAgbnVsbF92YWx1ZTogc3RyaW5nO1xyXG4gIG51bGxfdGV4dGNvbG9yOiBzdHJpbmc7XHJcbiAgcGF0dGVybjogc3RyaW5nO1xyXG4gIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgdGV4dENvbG9yczogc3RyaW5nO1xyXG4gIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiBzdHJpbmc7XHJcbiAgdGhyZXNob2xkczogc3RyaW5nO1xyXG4gIHRpbWVfYmFzZWRfdGhyZXNob2xkczogSUJvb21UaW1lQmFzZWRUaHJlc2hvbGRbXTtcclxuICB0cmFuc2Zvcm1fdmFsdWVzOiBzdHJpbmc7XHJcbiAgdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXM6IHN0cmluZztcclxuICB0b29sdGlwVGVtcGxhdGU6IHN0cmluZztcclxuICB2YWx1ZU5hbWU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgSUJvb21TZXJpZXMge1xyXG4gIGhpZGRlbjogQm9vbGVhbjtcclxuICBjb2xfbmFtZTogc3RyaW5nO1xyXG4gIHJvd19uYW1lOiBzdHJpbmc7XHJcbiAgcm93X25hbWVfcmF3OiBzdHJpbmc7XHJcbiAgZGlzcGxheV92YWx1ZTogc3RyaW5nO1xyXG4gIGNvbG9yX2JnOiBzdHJpbmc7XHJcbiAgY29sb3JfdGV4dDogc3RyaW5nO1xyXG4gIHRvb2x0aXA6IHN0cmluZztcclxuICB2YWx1ZV9mb3JtYXR0ZWQ6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgX3RhZ3M6IGFueVtdO1xyXG4gIF9tZXRyaWNuYW1lOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tVGltZUJhc2VkVGhyZXNob2xkIHtcclxuICBlbmFibGVkRGF5czogc3RyaW5nO1xyXG4gIGZyb206IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGhyZXNob2xkOiBzdHJpbmc7XHJcbiAgdG86IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyB7XHJcbiAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnOiBzdHJpbmc7XHJcbiAgbm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX3RleHQ6IHN0cmluZztcclxuICBub25fbWF0Y2hpbmdfY2VsbHNfdGV4dDogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbVJlbmRlcmluZ09wdGlvbnMge1xyXG4gIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6IFN0cmluZztcclxuICBoaWRlX2ZpcnN0X2NvbHVtbjogQm9vbGVhbjtcclxuICBoaWRlX2hlYWRlcnM6IEJvb2xlYW47XHJcbiAgdGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW46IFN0cmluZztcclxuICB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IFN0cmluZztcclxuICBmaXJzdF9jb2x1bW5fbGluazogU3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBJQm9vbUNlbGxEZXRhaWxzIHtcclxuICBoaWRkZW46IEJvb2xlYW47XHJcbiAgY29sX25hbWU6IHN0cmluZztcclxuICByb3dfbmFtZTogc3RyaW5nO1xyXG4gIGNvbG9yX2JnOiBzdHJpbmc7XHJcbiAgY29sb3JfdGV4dDogc3RyaW5nO1xyXG4gIGRpc3BsYXlfdmFsdWU6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuaW50ZXJmYWNlIElCb29tVGFibGUge1xyXG4gIHJvd3Nfd2l0aG91dF90b2tlbjogc3RyaW5nW107XHJcbiAgcm93c19mb3VuZDogc3RyaW5nW107XHJcbiAgY29sc19mb3VuZDogc3RyaW5nW107XHJcbiAgb3V0cHV0OiBJQm9vbUNlbGxEZXRhaWxzW11bXTtcclxufVxyXG5pbnRlcmZhY2UgSUJvb21IVE1MIHtcclxuICBib2R5OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHtcclxuICBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zLFxyXG4gIElCb29tUmVuZGVyaW5nT3B0aW9ucyxcclxuICBJQm9vbVBhdHRlcm4sXHJcbiAgSUJvb21TZXJpZXMsXHJcbiAgSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQsXHJcbiAgSUJvb21IVE1MLFxyXG4gIElCb29tVGFibGUsXHJcbiAgSUJvb21DZWxsRGV0YWlscyxcclxufTtcclxuIl19 \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomOutput.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomOutput.js deleted file mode 100644 index ac182d5b3b..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomOutput.js +++ /dev/null @@ -1,90 +0,0 @@ -System.register(["lodash", "./BoomUtils"], function (exports_1, context_1) { - "use strict"; - var lodash_1, BoomUtils_1, BoomOutput; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - }, - function (BoomUtils_1_1) { - BoomUtils_1 = BoomUtils_1_1; - } - ], - execute: function () { - BoomOutput = (function () { - function BoomOutput(options) { - this.default_title_for_rows = options.default_title_for_rows || ''; - this.hide_first_column = options.hide_first_column; - this.hide_headers = options.hide_headers; - this.text_alignment_firstcolumn = options.text_alignment_firstcolumn || ''; - this.text_alignment_values = options.text_alignment_values || ''; - this.first_column_link = options.first_column_link || '#'; - } - return BoomOutput; - }()); - exports_1("BoomOutput", BoomOutput); - BoomOutput.prototype.getDataAsHTML = function (data, sorting_props) { - var _this = this; - var getLinkifiedColumn = function (rowName, first_column_link, raw_rowName) { - if (first_column_link !== '#') { - first_column_link = first_column_link.replace(new RegExp('_row_name_', 'g'), BoomUtils_1.getActualNameWithoutTokens(raw_rowName).trim()); - rowName = "" + rowName + ""; - } - return rowName; - }; - var output = { - body: '', - }; - if (sorting_props && - sorting_props.col_index !== undefined && - sorting_props.col_index > -1 && - data && - data.output && - data.output.length >= sorting_props.col_index) { - var sortFunction_1 = function (a, b, sortMethod) { - if (sortMethod === 'asc') { - return a[sorting_props.col_index].value - b[sorting_props.col_index].value; - } - else { - return b[sorting_props.col_index].value - a[sorting_props.col_index].value; - } - }; - data.output = data.output - .filter(function (a) { return !isNaN(a[sorting_props.col_index].value); }) - .concat(data.output.filter(function (a) { return isNaN(a[sorting_props.col_index].value); })) - .sort(function (a, b) { return sortFunction_1(a, b, sorting_props.direction); }); - } - lodash_1.default.each(data.output, function (o) { - if (o.map(function (item) { return item.hidden.toString(); }).indexOf('false') > -1) { - output.body += ''; - if (_this.hide_first_column !== true) { - var raw_rowName = lodash_1.default.first(o.map(function (item) { return item.row_name_raw; })); - output.body += "\n \n " + getLinkifiedColumn(lodash_1.default.first(o.map(function (item) { return item.row_name; })), String(_this.first_column_link), raw_rowName) + "\n "; - } - lodash_1.default.each(o, function (item) { - var item_style = "padding:4px;background-color:" + item.color_bg + ";color:" + item.color_text + ";text-align:" + _this.text_alignment_values; - var item_display = item.link === '#' - ? item.display_value - : "" + item.display_value + ""; - var tooltip = !item.tooltip || item.tooltip === '-' - ? undefined - : " data-toggle=\"tooltip\" data-html=\"true\" data-placement=\"auto\" title=\"" + item.tooltip + "\" "; - output.body += "\n \n " + (tooltip ? "" : '') + "\n " + item_display + "\n " + (tooltip ? "" : '') + "\n \n "; - }); - output.body += ''; - } - }); - return output; - }; - BoomOutput.prototype.getDataAsDebugHTML = function (data) { - var debugdata = ""; - debugdata = lodash_1.default.map(data, function (d) { - return "\n \n " + d.seriesName + "\n " + (d.pattern.name || d.pattern.pattern || 'Default') + "\n " + d.display_value + "\n " + d.row_name + "\n " + d.col_name + "\n " + d.thresholds.join(',') + "\n " + d.color_bg + "\n " + d.color_text + "\n \n "; - }).join(""); - return debugdata; - }; - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbU91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O1lBSUE7Z0JBU0Usb0JBQVksT0FBOEI7b0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO29CQUNuRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQ3pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLElBQUksRUFBRSxDQUFDO29CQUMzRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztvQkFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0gsaUJBQUM7WUFBRCxDQUFDLEFBakJELElBaUJDOztZQUNELFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQVMsSUFBZ0IsRUFBRSxhQUFhO2dCQUF4QyxpQkErRHBDO2dCQTlEQyxJQUFJLGtCQUFrQixHQUFHLFVBQVMsT0FBZSxFQUFFLGlCQUF5QixFQUFFLFdBQW1CO29CQUMvRixJQUFJLGlCQUFpQixLQUFLLEdBQUcsRUFBRTt3QkFDN0IsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUM3SCxPQUFPLEdBQUcsZUFBWSxpQkFBaUIsNkJBQXFCLE9BQU8sU0FBTSxDQUFDO3FCQUMzRTtv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TSxDQUM5SCxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FDbEIsa0JBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLFdBQUssQ0FBQyxDQUFDLGFBQWEsa0dBQ3lCLENBQUMsQ0FBQyxRQUFRLGtHQUNWLENBQUMsQ0FBQyxRQUFRLG9HQUNSLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrR0FDeEIsQ0FBQyxDQUFDLFFBQVEsb0dBQ1IsQ0FBQyxDQUFDLFVBQVUsbUNBRXZGLENBQUM7Z0JBQ1IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJQm9vbUhUTUwsIElCb29tVGFibGUsIElCb29tUmVuZGVyaW5nT3B0aW9ucywgSUJvb21TZXJpZXMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zIH0gZnJvbSAnLi9Cb29tVXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQm9vbU91dHB1dCB7XG4gIHB1YmxpYyBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiBTdHJpbmc7XG4gIHB1YmxpYyBoaWRlX2ZpcnN0X2NvbHVtbjogQm9vbGVhbjtcbiAgcHVibGljIGhpZGVfaGVhZGVyczogQm9vbGVhbjtcbiAgcHVibGljIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiBTdHJpbmc7XG4gIHB1YmxpYyB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IFN0cmluZztcbiAgcHVibGljIGZpcnN0X2NvbHVtbl9saW5rOiBTdHJpbmc7XG4gIHB1YmxpYyBnZXREYXRhQXNIVE1MO1xuICBwdWJsaWMgZ2V0RGF0YUFzRGVidWdIVE1MO1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJQm9vbVJlbmRlcmluZ09wdGlvbnMpIHtcbiAgICB0aGlzLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MgPSBvcHRpb25zLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MgfHwgJyc7XG4gICAgdGhpcy5oaWRlX2ZpcnN0X2NvbHVtbiA9IG9wdGlvbnMuaGlkZV9maXJzdF9jb2x1bW47XG4gICAgdGhpcy5oaWRlX2hlYWRlcnMgPSBvcHRpb25zLmhpZGVfaGVhZGVycztcbiAgICB0aGlzLnRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uID0gb3B0aW9ucy50ZXh0X2FsaWdubWVudF9maXJzdGNvbHVtbiB8fCAnJztcbiAgICB0aGlzLnRleHRfYWxpZ25tZW50X3ZhbHVlcyA9IG9wdGlvbnMudGV4dF9hbGlnbm1lbnRfdmFsdWVzIHx8ICcnO1xuICAgIHRoaXMuZmlyc3RfY29sdW1uX2xpbmsgPSBvcHRpb25zLmZpcnN0X2NvbHVtbl9saW5rIHx8ICcjJztcbiAgfVxufVxuQm9vbU91dHB1dC5wcm90b3R5cGUuZ2V0RGF0YUFzSFRNTCA9IGZ1bmN0aW9uKGRhdGE6IElCb29tVGFibGUsIHNvcnRpbmdfcHJvcHMpOiBJQm9vbUhUTUwge1xuICBsZXQgZ2V0TGlua2lmaWVkQ29sdW1uID0gZnVuY3Rpb24ocm93TmFtZTogc3RyaW5nLCBmaXJzdF9jb2x1bW5fbGluazogc3RyaW5nLCByYXdfcm93TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZmlyc3RfY29sdW1uX2xpbmsgIT09ICcjJykge1xuICAgICAgZmlyc3RfY29sdW1uX2xpbmsgPSBmaXJzdF9jb2x1bW5fbGluay5yZXBsYWNlKG5ldyBSZWdFeHAoJ19yb3dfbmFtZV8nLCAnZycpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucyhyYXdfcm93TmFtZSkudHJpbSgpKTtcbiAgICAgIHJvd05hbWUgPSBgPGEgaHJlZj1cIiR7Zmlyc3RfY29sdW1uX2xpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHtyb3dOYW1lfTwvYT5gO1xuICAgIH1cbiAgICByZXR1cm4gcm93TmFtZTtcbiAgfTtcbiAgbGV0IG91dHB1dDogSUJvb21IVE1MID0ge1xuICAgIGJvZHk6ICcnLFxuICB9O1xuICBpZiAoXG4gICAgc29ydGluZ19wcm9wcyAmJlxuICAgIHNvcnRpbmdfcHJvcHMuY29sX2luZGV4ICE9PSB1bmRlZmluZWQgJiZcbiAgICBzb3J0aW5nX3Byb3BzLmNvbF9pbmRleCA+IC0xICYmXG4gICAgZGF0YSAmJlxuICAgIGRhdGEub3V0cHV0ICYmXG4gICAgZGF0YS5vdXRwdXQubGVuZ3RoID49IHNvcnRpbmdfcHJvcHMuY29sX2luZGV4XG4gICkge1xuICAgIGxldCBzb3J0RnVuY3Rpb24gPSAoYSwgYiwgc29ydE1ldGhvZCkgPT4ge1xuICAgICAgaWYgKHNvcnRNZXRob2QgPT09ICdhc2MnKSB7XG4gICAgICAgIHJldHVybiBhW3NvcnRpbmdfcHJvcHMuY29sX2luZGV4XS52YWx1ZSAtIGJbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGJbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlIC0gYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWU7XG4gICAgICB9XG4gICAgfTtcbiAgICBkYXRhLm91dHB1dCA9IGRhdGEub3V0cHV0XG4gICAgICAuZmlsdGVyKGEgPT4gIWlzTmFOKGFbc29ydGluZ19wcm9wcy5jb2xfaW5kZXhdLnZhbHVlKSlcbiAgICAgIC5jb25jYXQoZGF0YS5vdXRwdXQuZmlsdGVyKGEgPT4gaXNOYU4oYVtzb3J0aW5nX3Byb3BzLmNvbF9pbmRleF0udmFsdWUpKSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBzb3J0RnVuY3Rpb24oYSwgYiwgc29ydGluZ19wcm9wcy5kaXJlY3Rpb24pKTtcbiAgfVxuICBfLmVhY2goZGF0YS5vdXRwdXQsIG8gPT4ge1xuICAgIGlmIChvLm1hcChpdGVtID0+IGl0ZW0uaGlkZGVuLnRvU3RyaW5nKCkpLmluZGV4T2YoJ2ZhbHNlJykgPiAtMSkge1xuICAgICAgb3V0cHV0LmJvZHkgKz0gJzx0cj4nO1xuICAgICAgaWYgKHRoaXMuaGlkZV9maXJzdF9jb2x1bW4gIT09IHRydWUpIHtcbiAgICAgICAgbGV0IHJhd19yb3dOYW1lID0gXy5maXJzdChvLm1hcChpdGVtID0+IGl0ZW0ucm93X25hbWVfcmF3KSk7XG4gICAgICAgIG91dHB1dC5ib2R5ICs9IGBcbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjoke3RoaXMudGV4dF9hbGlnbm1lbnRfZmlyc3Rjb2x1bW59XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke2dldExpbmtpZmllZENvbHVtbihfLmZpcnN0KG8ubWFwKGl0ZW0gPT4gaXRlbS5yb3dfbmFtZSkpLCBTdHJpbmcodGhpcy5maXJzdF9jb2x1bW5fbGluayksIHJhd19yb3dOYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5gO1xuICAgICAgfVxuICAgICAgXy5lYWNoKG8sIGl0ZW0gPT4ge1xuICAgICAgICBsZXQgaXRlbV9zdHlsZSA9IGBwYWRkaW5nOjRweDtiYWNrZ3JvdW5kLWNvbG9yOiR7aXRlbS5jb2xvcl9iZ307Y29sb3I6JHtpdGVtLmNvbG9yX3RleHR9O3RleHQtYWxpZ246JHt0aGlzLnRleHRfYWxpZ25tZW50X3ZhbHVlc31gO1xuICAgICAgICBsZXQgaXRlbV9kaXNwbGF5ID1cbiAgICAgICAgICBpdGVtLmxpbmsgPT09ICcjJ1xuICAgICAgICAgICAgPyBpdGVtLmRpc3BsYXlfdmFsdWVcbiAgICAgICAgICAgIDogYDxhIGhyZWY9XCIke2l0ZW0ubGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBzdHlsZT1cImNvbG9yOiR7aXRlbS5jb2xvcl90ZXh0fVwiPiR7aXRlbS5kaXNwbGF5X3ZhbHVlfTwvYT5gO1xuICAgICAgICBsZXQgdG9vbHRpcCA9XG4gICAgICAgICAgIWl0ZW0udG9vbHRpcCB8fCBpdGVtLnRvb2x0aXAgPT09ICctJ1xuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogYCBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLWh0bWw9XCJ0cnVlXCIgZGF0YS1wbGFjZW1lbnQ9XCJhdXRvXCIgdGl0bGU9XCIke2l0ZW0udG9vbHRpcH1cIiBgO1xuICAgICAgICBvdXRwdXQuYm9keSArPSBgXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIiR7aXRlbV9zdHlsZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dG9vbHRpcCA/IGA8c3BhbiAke3Rvb2x0aXB9PmAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2l0ZW1fZGlzcGxheX1cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dG9vbHRpcCA/IGA8L3NwYW4+YCA6ICcnfVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIGA7XG4gICAgICB9KTtcbiAgICAgIG91dHB1dC5ib2R5ICs9ICc8L3RyPic7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG91dHB1dDtcbn07XG5Cb29tT3V0cHV0LnByb3RvdHlwZS5nZXREYXRhQXNEZWJ1Z0hUTUwgPSBmdW5jdGlvbihkYXRhOiBJQm9vbVNlcmllc1tdKTogc3RyaW5nIHtcbiAgbGV0IGRlYnVnZGF0YSA9IGBgO1xuICBkZWJ1Z2RhdGEgPSBfLm1hcChkYXRhLCBkID0+IHtcbiAgICByZXR1cm4gYFxuICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MzAlOyB0aXRsZT1cIlNlcmllcyBOYW1lXCIgPiR7ZC5zZXJpZXNOYW1lfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIk1hdGNoaW5nIFBhdHRlcm4gTmFtZVwiID4ke2QucGF0dGVybi5uYW1lIHx8IGQucGF0dGVybi5wYXR0ZXJuIHx8ICdEZWZhdWx0J308L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJWYWx1ZSA6ICR7U3RyaW5nKGQudmFsdWVfZm9ybWF0dGVkIHx8ICdudWxsJyl9IC8gUmF3IDogJHtTdHJpbmcoXG4gICAgICBkLnZhbHVlIHx8ICdudWxsJ1xuICAgICl9IC8gU3RhdCA6ICR7ZC5wYXR0ZXJuLnZhbHVlTmFtZX1cIj4ke2QuZGlzcGxheV92YWx1ZX08L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJSb3cgbmFtZVwiID4ke2Qucm93X25hbWV9PC90ZD5cbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6NHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMCU7IHRpdGxlPVwiQ29sIG5hbWVcIiA+JHtkLmNvbF9uYW1lfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIlRocmVzaG9sZHNcIiA+JHtkLnRocmVzaG9sZHMuam9pbignLCcpfTwvdGQ+XG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAlOyB0aXRsZT1cIkJHIENvbG9yXCIgPiR7ZC5jb2xvcl9iZ308L3RkPlxuICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwJTsgdGl0bGU9XCJUZXh0IENvbG9yXCIgPiR7ZC5jb2xvcl90ZXh0fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIGA7XG4gIH0pLmpvaW4oYGApO1xuICByZXR1cm4gZGVidWdkYXRhO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomPattern.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomPattern.js deleted file mode 100644 index 7571e6f497..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomPattern.js +++ /dev/null @@ -1,101 +0,0 @@ -System.register(["./index"], function (exports_1, context_1) { - "use strict"; - var index_1, BoomPattern; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (index_1_1) { - index_1 = index_1_1; - } - ], - execute: function () { - BoomPattern = (function () { - function BoomPattern(options) { - this.row_col_wrapper = '_'; - if (options && options.row_col_wrapper) { - this.row_col_wrapper = options.row_col_wrapper; - } - this.bgColors = options && options.bgColors ? options.bgColors : 'green|orange|red'; - this.bgColors_overrides = options && options.bgColors_overrides ? options.bgColors_overrides : '0->green|2->red|1->yellow'; - this.textColors = options && options.textColors ? options.textColors : 'red|orange|green'; - this.textColors_overrides = options && options.textColors_overrides ? options.textColors_overrides : '0->red|2->green|1->yellow'; - this.clickable_cells_link = options && options.clickable_cells_link ? options.clickable_cells_link : ''; - this.col_name = options && options.col_name ? options.col_name : this.row_col_wrapper + '1' + this.row_col_wrapper; - this.decimals = options && options.decimals ? options.decimals : 2; - this.delimiter = options && options.delimiter ? options.delimiter : '.'; - this.displayTemplate = options && options.displayTemplate ? options.displayTemplate : '_value_'; - this.defaultBGColor = options && options.defaultBGColor ? options.defaultBGColor : ''; - this.defaultTextColor = options && options.defaultTextColor ? options.defaultTextColor : ''; - this.enable_bgColor = false; - this.enable_bgColor_overrides = false; - this.enable_textColor = false; - this.enable_textColor_overrides = false; - this.enable_clickable_cells = false; - this.enable_time_based_thresholds = false; - this.enable_transform = false; - this.enable_transform_overrides = false; - this.filter = { - value_above: '', - value_below: '', - }; - this.format = options && options.format ? options.format : 'none'; - this.name = options && options.name ? options.name : 'New Pattern'; - this.null_color = options && options.null_color ? options.null_color : 'darkred'; - this.null_textcolor = options && options.null_Textcolor ? options.null_Textcolor : 'black'; - this.null_value = options && options.null_value ? options.null_value : 'No data'; - this.pattern = options && options.pattern ? options.pattern : '^server.*cpu$'; - this.row_name = options && options.row_name ? options.row_name : this.row_col_wrapper + '0' + this.row_col_wrapper; - this.thresholds = options && options.thresholds ? options.thresholds : '70,90'; - this.time_based_thresholds = []; - this.transform_values = options && options.transform_values ? options.transform_values : '_value_|_value_|_value_'; - this.transform_values_overrides = options && options.transform_values_overrides ? options.transform_values_overrides : '0->down|1->up'; - this.tooltipTemplate = - options && options.tooltipTemplate - ? options.tooltipTemplate - : 'Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_'; - this.valueName = options && options.valueName ? options.valueName : 'avg'; - } - return BoomPattern; - }()); - exports_1("BoomPattern", BoomPattern); - BoomPattern.prototype.inverseBGColors = function () { - this.bgColors = this.bgColors - ? this.bgColors - .split('|') - .reverse() - .join('|') - : ''; - }; - BoomPattern.prototype.inverseTextColors = function () { - this.textColors = this.textColors - ? this.textColors - .split('|') - .reverse() - .join('|') - : ''; - }; - BoomPattern.prototype.inverseTransformValues = function () { - this.transform_values = this.transform_values - ? this.transform_values - .split('|') - .reverse() - .join('|') - : ''; - }; - BoomPattern.prototype.add_time_based_thresholds = function () { - var new_time_based_threshold = new index_1.BoomTimeBasedThreshold(); - this.time_based_thresholds = this.time_based_thresholds || []; - this.time_based_thresholds.push(new_time_based_threshold); - }; - BoomPattern.prototype.remove_time_based_thresholds = function (index) { - if (this.time_based_thresholds.length > 0) { - this.time_based_thresholds.splice(Number(index), 1); - } - }; - BoomPattern.prototype.setUnitFormat = function (format) { - this.format = format && format.value ? format.value : 'none'; - }; - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVBhdHRlcm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vQm9vbVBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7WUFFQTtnQkE0Q0UscUJBQVksT0FBWTtvQkEzQ2hCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQTRDNUIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTt3QkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO3FCQUNoRDtvQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDcEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7b0JBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO29CQUMxRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztvQkFDakksSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxD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QUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDL0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUJvb21QYXR0ZXJuLCBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCwgQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9IGZyb20gJy4vaW5kZXgnO1xuXG5jbGFzcyBCb29tUGF0dGVybiBpbXBsZW1lbnRzIElCb29tUGF0dGVybiB7XG4gIHByaXZhdGUgcm93X2NvbF93cmFwcGVyID0gJ18nO1xuICBwdWJsaWMgYmdDb2xvcnM6IHN0cmluZztcbiAgcHVibGljIGJnQ29sb3JzX292ZXJyaWRlczogc3RyaW5nO1xuICBwdWJsaWMgY2xpY2thYmxlX2NlbGxzX2xpbms6IHN0cmluZztcbiAgcHVibGljIGNvbF9uYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5VGVtcGxhdGU6IHN0cmluZztcbiAgcHVibGljIGRlZmF1bHRCR0NvbG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBkZWZhdWx0VGV4dENvbG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBkZWNpbWFsczogTnVtYmVyO1xuICBwdWJsaWMgZGVsaW1pdGVyOiBzdHJpbmc7XG4gIHB1YmxpYyBlbmFibGVfYmdDb2xvcjogQm9vbGVhbjtcbiAgcHVibGljIGVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlczogQm9vbGVhbjtcbiAgcHVibGljIGVuYWJsZV9jbGlja2FibGVfY2VsbHM6IEJvb2xlYW47XG4gIHB1YmxpYyBlbmFibGVfdGV4dENvbG9yOiBCb29sZWFuO1xuICBwdWJsaWMgZW5hYmxlX3RleHRDb2xvcl9vdmVycmlkZXM6IEJvb2xlYW47XG4gIHB1YmxpYyBlbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzOiBCb29sZWFuO1xuICBwdWJsaWMgZW5hYmxlX3RyYW5zZm9ybTogQm9vbGVhbjtcbiAgcHVibGljIGVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzOiBCb29sZWFuO1xuICBwdWJsaWMgZmlsdGVyOiB7XG4gICAgdmFsdWVfYWJvdmU6IHN0cmluZztcbiAgICB2YWx1ZV9iZWxvdzogc3RyaW5nO1xuICB9O1xuICBwdWJsaWMgZm9ybWF0OiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBudWxsX2NvbG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBudWxsX3ZhbHVlOiBzdHJpbmc7XG4gIHB1YmxpYyBudWxsX3RleHRjb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgcGF0dGVybjogc3RyaW5nO1xuICBwdWJsaWMgcm93X25hbWU6IHN0cmluZztcbiAgcHVibGljIHRleHRDb2xvcnM6IHN0cmluZztcbiAgcHVibGljIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiBzdHJpbmc7XG4gIHB1YmxpYyB0aHJlc2hvbGRzOiBzdHJpbmc7XG4gIHB1YmxpYyB0aW1lX2Jhc2VkX3RocmVzaG9sZHM6IElCb29tVGltZUJhc2VkVGhyZXNob2xkW107XG4gIHB1YmxpYyB0cmFuc2Zvcm1fdmFsdWVzOiBzdHJpbmc7XG4gIHB1YmxpYyB0cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlczogc3RyaW5nO1xuICBwdWJsaWMgdG9vbHRpcFRlbXBsYXRlOiBzdHJpbmc7XG4gIHB1YmxpYyB2YWx1ZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGludmVyc2VCR0NvbG9ycztcbiAgcHVibGljIGludmVyc2VUZXh0Q29sb3JzO1xuICBwdWJsaWMgaW52ZXJzZVRyYW5zZm9ybVZhbHVlcztcbiAgcHVibGljIGFkZF90aW1lX2Jhc2VkX3RocmVzaG9sZHM7XG4gIHB1YmxpYyByZW1vdmVfdGltZV9iYXNlZF90aHJlc2hvbGRzO1xuICBwdWJsaWMgc2V0VW5pdEZvcm1hdDtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5yb3dfY29sX3dyYXBwZXIpIHtcbiAgICAgIHRoaXMucm93X2NvbF93cmFwcGVyID0gb3B0aW9ucy5yb3dfY29sX3dyYXBwZXI7XG4gICAgfVxuICAgIHRoaXMuYmdDb2xvcnMgPSBvcHRpb25zICYmIG9wdGlvbnMuYmdDb2xvcnMgPyBvcHRpb25zLmJnQ29sb3JzIDogJ2dyZWVufG9yYW5nZXxyZWQnO1xuICAgIHRoaXMuYmdDb2xvcnNfb3ZlcnJpZGVzID0gb3B0aW9ucyAmJiBvcHRpb25zLmJnQ29sb3JzX292ZXJyaWRlcyA/IG9wdGlvbnMuYmdDb2xvcnNfb3ZlcnJpZGVzIDogJzAtPmdyZWVufDItPnJlZHwxLT55ZWxsb3cnO1xuICAgIHRoaXMudGV4dENvbG9ycyA9IG9wdGlvbnMgJiYgb3B0aW9ucy50ZXh0Q29sb3JzID8gb3B0aW9ucy50ZXh0Q29sb3JzIDogJ3JlZHxvcmFuZ2V8Z3JlZW4nO1xuICAgIHRoaXMudGV4dENvbG9yc19vdmVycmlkZXMgPSBvcHRpb25zICYmIG9wdGlvbnMudGV4dENvbG9yc19vdmVycmlkZXMgPyBvcHRpb25zLnRleHRDb2xvcnNfb3ZlcnJpZGVzIDogJzAtPnJlZHwyLT5ncmVlbnwxLT55ZWxsb3cnO1xuICAgIHRoaXMuY2xpY2thYmxlX2NlbGxzX2xpbmsgPSBvcHRpb25zICYmIG9wdGlvbnMuY2xpY2thYmxlX2NlbGxzX2xpbmsgPyBvcHRpb25zLmNsaWNrYWJsZV9jZWxsc19saW5rIDogJyc7XG4gICAgdGhpcy5jb2xfbmFtZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jb2xfbmFtZSA/IG9wdGlvbnMuY29sX25hbWUgOiB0aGlzLnJvd19jb2xfd3JhcHBlciArICcxJyArIHRoaXMucm93X2NvbF93cmFwcGVyO1xuICAgIHRoaXMuZGVjaW1hbHMgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVjaW1hbHMgPyBvcHRpb25zLmRlY2ltYWxzIDogMjtcbiAgICB0aGlzLmRlbGltaXRlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWxpbWl0ZXIgPyBvcHRpb25zLmRlbGltaXRlciA6ICcuJztcbiAgICB0aGlzLmRpc3BsYXlUZW1wbGF0ZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kaXNwbGF5VGVtcGxhdGUgPyBvcHRpb25zLmRpc3BsYXlUZW1wbGF0ZSA6ICdfdmFsdWVfJztcbiAgICB0aGlzLmRlZmF1bHRCR0NvbG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLmRlZmF1bHRCR0NvbG9yID8gb3B0aW9ucy5kZWZhdWx0QkdDb2xvciA6ICcnO1xuICAgIHRoaXMuZGVmYXVsdFRleHRDb2xvciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWZhdWx0VGV4dENvbG9yID8gb3B0aW9ucy5kZWZhdWx0VGV4dENvbG9yIDogJyc7XG4gICAgdGhpcy5lbmFibGVfYmdDb2xvciA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlX2JnQ29sb3Jfb3ZlcnJpZGVzID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVfdGV4dENvbG9yID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVfdGV4dENvbG9yX292ZXJyaWRlcyA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlX2NsaWNrYWJsZV9jZWxscyA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlX3RpbWVfYmFzZWRfdGhyZXNob2xkcyA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlX3RyYW5zZm9ybSA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMgPSBmYWxzZTtcbiAgICB0aGlzLmZpbHRlciA9IHtcbiAgICAgIHZhbHVlX2Fib3ZlOiAnJyxcbiAgICAgIHZhbHVlX2JlbG93OiAnJyxcbiAgICB9O1xuICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucyAmJiBvcHRpb25zLmZvcm1hdCA/IG9wdGlvbnMuZm9ybWF0IDogJ25vbmUnO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5uYW1lID8gb3B0aW9ucy5uYW1lIDogJ05ldyBQYXR0ZXJuJztcbiAgICB0aGlzLm51bGxfY29sb3IgPSBvcHRpb25zICYmIG9wdGlvbnMubnVsbF9jb2xvciA/IG9wdGlvbnMubnVsbF9jb2xvciA6ICdkYXJrcmVkJztcbiAgICB0aGlzLm51bGxfdGV4dGNvbG9yID0gb3B0aW9ucyAmJiBvcHRpb25zLm51bGxfVGV4dGNvbG9yID8gb3B0aW9ucy5udWxsX1RleHRjb2xvciA6ICdibGFjayc7XG4gICAgdGhpcy5udWxsX3ZhbHVlID0gb3B0aW9ucyAmJiBvcHRpb25zLm51bGxfdmFsdWUgPyBvcHRpb25zLm51bGxfdmFsdWUgOiAnTm8gZGF0YSc7XG4gICAgdGhpcy5wYXR0ZXJuID0gb3B0aW9ucyAmJiBvcHRpb25zLnBhdHRlcm4gPyBvcHRpb25zLnBhdHRlcm4gOiAnXnNlcnZlci4qY3B1JCc7XG4gICAgdGhpcy5yb3dfbmFtZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5yb3dfbmFtZSA/IG9wdGlvbnMucm93X25hbWUgOiB0aGlzLnJvd19jb2xfd3JhcHBlciArICcwJyArIHRoaXMucm93X2NvbF93cmFwcGVyO1xuICAgIHRoaXMudGhyZXNob2xkcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy50aHJlc2hvbGRzID8gb3B0aW9ucy50aHJlc2hvbGRzIDogJzcwLDkwJztcbiAgICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcyA9IFtdO1xuICAgIHRoaXMudHJhbnNmb3JtX3ZhbHVlcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzID8gb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzIDogJ192YWx1ZV98X3ZhbHVlX3xfdmFsdWVfJztcbiAgICB0aGlzLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID0gb3B0aW9ucyAmJiBvcHRpb25zLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzID8gb3B0aW9ucy50cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcyA6ICcwLT5kb3dufDEtPnVwJztcbiAgICB0aGlzLnRvb2x0aXBUZW1wbGF0ZSA9XG4gICAgICBvcHRpb25zICYmIG9wdGlvbnMudG9vbHRpcFRlbXBsYXRlXG4gICAgICAgID8gb3B0aW9ucy50b29sdGlwVGVtcGxhdGVcbiAgICAgICAgOiAnU2VyaWVzIDogX3Nlcmllc18gPGJyLz5Sb3cgTmFtZSA6IF9yb3dfbmFtZV8gPGJyLz5Db2wgTmFtZSA6IF9jb2xfbmFtZV8gPGJyLz5WYWx1ZSA6IF92YWx1ZV8nO1xuICAgIHRoaXMudmFsdWVOYW1lID0gb3B0aW9ucyAmJiBvcHRpb25zLnZhbHVlTmFtZSA/IG9wdGlvbnMudmFsdWVOYW1lIDogJ2F2Zyc7XG4gIH1cbn1cblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmludmVyc2VCR0NvbG9ycyA9IGZ1bmN0aW9uKCk6IHZvaWQge1xuICB0aGlzLmJnQ29sb3JzID0gdGhpcy5iZ0NvbG9yc1xuICAgID8gdGhpcy5iZ0NvbG9yc1xuICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgIC5qb2luKCd8JylcbiAgICA6ICcnO1xufTtcblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmludmVyc2VUZXh0Q29sb3JzID0gZnVuY3Rpb24oKTogdm9pZCB7XG4gIHRoaXMudGV4dENvbG9ycyA9IHRoaXMudGV4dENvbG9yc1xuICAgID8gdGhpcy50ZXh0Q29sb3JzXG4gICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgLmpvaW4oJ3wnKVxuICAgIDogJyc7XG59O1xuXG5Cb29tUGF0dGVybi5wcm90b3R5cGUuaW52ZXJzZVRyYW5zZm9ybVZhbHVlcyA9IGZ1bmN0aW9uKCk6IHZvaWQge1xuICB0aGlzLnRyYW5zZm9ybV92YWx1ZXMgPSB0aGlzLnRyYW5zZm9ybV92YWx1ZXNcbiAgICA/IHRoaXMudHJhbnNmb3JtX3ZhbHVlc1xuICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgIC5qb2luKCd8JylcbiAgICA6ICcnO1xufTtcblxuQm9vbVBhdHRlcm4ucHJvdG90eXBlLmFkZF90aW1lX2Jhc2VkX3RocmVzaG9sZHMgPSBmdW5jdGlvbigpOiB2b2lkIHtcbiAgbGV0IG5ld190aW1lX2Jhc2VkX3RocmVzaG9sZDogSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQgPSBuZXcgQm9vbVRpbWVCYXNlZFRocmVzaG9sZCgpO1xuICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcyA9IHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzIHx8IFtdO1xuICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcy5wdXNoKG5ld190aW1lX2Jhc2VkX3RocmVzaG9sZCk7XG59O1xuXG5Cb29tUGF0dGVybi5wcm90b3R5cGUucmVtb3ZlX3RpbWVfYmFzZWRfdGhyZXNob2xkcyA9IGZ1bmN0aW9uKGluZGV4OiBOdW1iZXIpOiB2b2lkIHtcbiAgaWYgKHRoaXMudGltZV9iYXNlZF90aHJlc2hvbGRzLmxlbmd0aCA+IDApIHtcbiAgICB0aGlzLnRpbWVfYmFzZWRfdGhyZXNob2xkcy5zcGxpY2UoTnVtYmVyKGluZGV4KSwgMSk7XG4gIH1cbn07XG5cbkJvb21QYXR0ZXJuLnByb3RvdHlwZS5zZXRVbml0Rm9ybWF0ID0gZnVuY3Rpb24oZm9ybWF0OiBhbnkpOiB2b2lkIHtcbiAgdGhpcy5mb3JtYXQgPSBmb3JtYXQgJiYgZm9ybWF0LnZhbHVlID8gZm9ybWF0LnZhbHVlIDogJ25vbmUnO1xufTtcblxuZXhwb3J0IHsgQm9vbVBhdHRlcm4gfTtcbiJdfQ== \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeries.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeries.js deleted file mode 100644 index c0dcff3bce..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeries.js +++ /dev/null @@ -1,109 +0,0 @@ -System.register(["app/core/time_series2", "lodash", "./index", "./BoomSeriesUtils", "./BoomUtils", "./../GrafanaUtils"], function (exports_1, context_1) { - "use strict"; - var time_series2_1, lodash_1, index_1, BoomSeriesUtils_1, BoomUtils_1, GrafanaUtils_1, BoomSeries; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - 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; - }, - function (BoomSeriesUtils_1_1) { - BoomSeriesUtils_1 = BoomSeriesUtils_1_1; - }, - function (BoomUtils_1_1) { - BoomUtils_1 = BoomUtils_1_1; - }, - function (GrafanaUtils_1_1) { - GrafanaUtils_1 = GrafanaUtils_1_1; - } - ], - execute: function () { - BoomSeries = (function () { - function BoomSeries(seriesData, panelDefaultPattern, panelPatterns, options, scopedVars, templateSrv, timeSrv) { - this.pattern = undefined; - this.template_value = ""; - this.row_col_wrapper = "_"; - this.display_value = "-"; - this.tooltip = "-"; - this.value = NaN; - this.value_formatted = "-"; - this.link = "-"; - this.hidden = false; - this._metricname = ""; - this._tags = []; - var series = new time_series2_1.default({ - alias: seriesData.target, - datapoints: seriesData.datapoints || [] - }); - series.flotpairs = series.getFlotPairs("connected"); - this.debug_mode = options && options.debug_mode === true ? true : false; - this.row_col_wrapper = options && options.row_col_wrapper ? options.row_col_wrapper : this.row_col_wrapper; - this.currentTimeStamp = BoomUtils_1.getCurrentTimeStamp(series.dataPoints); - this.seriesName = series.alias || series.aliasEscaped || series.label || series.id || ""; - var getMatchingAndEnabledPattern = function (patterns, seriesName) { return patterns.find(function (p) { return seriesName.match(p.pattern) && p.disabled !== true; }); }; - this.pattern = getMatchingAndEnabledPattern(panelPatterns, this.seriesName) || panelDefaultPattern; - this.decimals = this.pattern.decimals || panelDefaultPattern.decimals || 2; - this.value = BoomUtils_1.getSeriesValue(series, this.pattern.valueName); - this.value_formatted = GrafanaUtils_1.get_formatted_value(this.value, this.decimals, this.pattern.format); - this.display_value = ((lodash_1.default.isNaN(this.value) || this.value === null) ? this.pattern.null_value : String(this.value)).toString(); - this.hidden = BoomUtils_1.doesValueNeedsToHide(this.value, this.pattern.filter); - this._metricname = this.pattern.delimiter.toLowerCase() === "tag" ? index_1.getMetricNameFromTaggedAlias(seriesData.target) : ""; - this._tags = this.pattern.delimiter.toLowerCase() === "tag" ? index_1.getLablesFromTaggedAlias(seriesData.target, this._metricname) : []; - this.row_name = BoomUtils_1.getRowName(this.pattern.row_name, this.pattern.delimiter, this.row_col_wrapper, this.seriesName, this._metricname, this._tags); - this.row_name_raw = BoomUtils_1.getRowName(this.pattern.row_name, this.pattern.delimiter, this.row_col_wrapper, this.seriesName, this._metricname, this._tags); - this.col_name = BoomUtils_1.getColName(this.pattern.col_name, this.pattern.delimiter, this.row_col_wrapper, this.seriesName, this.row_name, this._metricname, this._tags); - this.thresholds = BoomSeriesUtils_1.getThresholds(templateSrv.replace(this.pattern.thresholds, scopedVars).split(",").map(function (d) { return +d; }), this.pattern.enable_time_based_thresholds, this.pattern.time_based_thresholds, this.currentTimeStamp); - this.color_bg = BoomSeriesUtils_1.getBGColor(this.value, this.pattern, this.thresholds, templateSrv.replace(this.pattern.bgColors, scopedVars).split("|"), templateSrv.replace(this.pattern.bgColors_overrides, scopedVars).split("|")); - this.color_text = BoomSeriesUtils_1.getTextColor(this.value, this.pattern, this.thresholds, templateSrv.replace(this.pattern.textColors, scopedVars).split("|"), templateSrv.replace(this.pattern.textColors_overrides, scopedVars).split("|")); - this.template_value = BoomUtils_1.getDisplayValueTemplate(this.value, this.pattern, this.seriesName, this.row_col_wrapper, this.thresholds); - this.link = BoomSeriesUtils_1.getLink(this.pattern.enable_clickable_cells, this.pattern.clickable_cells_link, timeSrv.timeRangeForUrl()); - this.link = BoomUtils_1.replaceDelimitedColumns(this.link, this.seriesName, this.pattern.delimiter, this.row_col_wrapper); - this.tooltip = this.pattern.tooltipTemplate || "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_"; - this.replaceSeriesRowColTokens(); - this.link = BoomSeriesUtils_1.GetValuesReplaced(this.link, this.value, this.value_formatted, series.stats, this.decimals, this.pattern.format, this._metricname, this._tags, this.pattern.delimiter || ""); - this.tooltip = BoomSeriesUtils_1.GetValuesReplaced(this.tooltip, this.value, this.value_formatted, series.stats, this.decimals, this.pattern.format, this._metricname, this._tags, this.pattern.delimiter || ""); - this.display_value = BoomSeriesUtils_1.GetValuesReplaced(this.display_value, this.value, this.value_formatted, series.stats, this.decimals, this.pattern.format, this._metricname, this._tags, this.pattern.delimiter || ""); - this.row_name = index_1.replaceTokens(this.row_name); - this.col_name = index_1.replaceTokens(this.col_name); - this.display_value = index_1.replaceTokens(this.display_value); - this.row_name = templateSrv.replace(this.row_name, scopedVars); - this.col_name = templateSrv.replace(this.col_name, scopedVars); - this.display_value = templateSrv.replace(this.display_value, scopedVars); - this.tooltip = templateSrv.replace(this.tooltip, scopedVars); - this.link = templateSrv.replace(this.link, scopedVars); - if (this.debug_mode !== true) { - delete this.seriesName; - delete this.pattern; - delete this.thresholds; - delete this.decimals; - delete this.template_value; - delete this.value_formatted; - delete this.currentTimeStamp; - } - } - BoomSeries.prototype.replaceSeriesRowColTokens = function () { - 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()); - }; - return BoomSeries; - }()); - exports_1("BoomSeries", BoomSeries); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tU2VyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBVUE7Z0JBd0JJLG9CQUFZLFVBQWUsRUFBRSxtQkFBd0IsRUFBRSxhQUFvQixFQUFFLE9BQVksRUFBRSxVQUFlLEVBQUUsV0FBZ0IsRUFBRSxPQUFZO29CQXJCbEksWUFBTyxHQUFRLFNBQVMsQ0FBQztvQkFHekIsbUJBQWMsR0FBRyxFQUFFLENBQUM7b0JBQ3BCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQU92QixrQkFBYSxHQUFHLEdBQUcsQ0FBQztvQkFDcEIsWUFBTyxHQUFHLEdBQUcsQ0FBQztvQkFDZCxVQUFLLEdBQUcsR0FBRyxDQUFDO29CQUNaLG9CQUFlLEdBQUcsR0FBRyxDQUFDO29CQUN0QixTQUFJLEdBQUcsR0FBRyxDQUFDO29CQUVYLFdBQU0sR0FBWSxLQUFLLENBQUM7b0JBQ3hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO29CQUNqQixVQUFLLEdBQVUsRUFBRSxDQUFDO29CQUlyQixJQUFJLE1BQU0sR0FBRyxJQUFJLHNCQUFVLENBQUM7d0JBQ3hCLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTTt3QkFDeEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksRUFBRTtxQkFDMUMsQ0FBQyxDQUFDO29CQUNILE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFFcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FB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QVksRUFBRSxHQUFHLENBQUMsRUFBRSxrQ0FBMEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDMUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUUsa0NBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ2hJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFFN0csQ0FBQztnQkFFTCxpQkFBQztZQUFELENBQUMsQUE1R0QsSUE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLy88cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ3JhZmFuYS1zZGstbW9ja3MvYXBwL2hlYWRlcnMvY29tbW9uLmQudHNcIiAvPlxuXG5pbXBvcnQgVGltZVNlcmllcyBmcm9tIFwiYXBwL2NvcmUvdGltZV9zZXJpZXMyXCI7XG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyByZXBsYWNlVG9rZW5zLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucywgZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcywgZ2V0TGFibGVzRnJvbVRhZ2dlZEFsaWFzIH0gZnJvbSBcIi4vaW5kZXhcIjtcbmltcG9ydCB7IGdldFRocmVzaG9sZHMsIGdldEJHQ29sb3IsIGdldFRleHRDb2xvciwgZ2V0TGluaywgR2V0VmFsdWVzUmVwbGFjZWQgfSBmcm9tIFwiLi9Cb29tU2VyaWVzVXRpbHNcIjtcbmltcG9ydCB7IGdldERpc3BsYXlWYWx1ZVRlbXBsYXRlLCBnZXRTZXJpZXNWYWx1ZSwgZ2V0Q3VycmVudFRpbWVTdGFtcCwgcmVwbGFjZURlbGltaXRlZENvbHVtbnMsIGdldFJvd05hbWUsIGdldENvbE5hbWUsIGRvZXNWYWx1ZU5lZWRzVG9IaWRlIH0gZnJvbSBcIi4vQm9vbVV0aWxzXCI7XG5pbXBvcnQgeyBnZXRfZm9ybWF0dGVkX3ZhbHVlIH0gZnJvbSAgXCIuLy4uL0dyYWZhbmFVdGlsc1wiO1xuaW1wb3J0IHsgSUJvb21TZXJpZXMgfSBmcm9tIFwiLi9Cb29tLmludGVyZmFjZVwiO1xuXG5jbGFzcyBCb29tU2VyaWVzIGltcGxlbWVudHMgSUJvb21TZXJpZXMge1xuXG4gICAgcHJpdmF0ZSBkZWJ1Z19tb2RlOiBCb29sZWFuO1xuICAgIHByaXZhdGUgcGF0dGVybjogYW55ID0gdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgc2VyaWVzTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgY3VycmVudFRpbWVTdGFtcDogRGF0ZTtcbiAgICBwcml2YXRlIHRlbXBsYXRlX3ZhbHVlID0gXCJcIjtcbiAgICBwcml2YXRlIHJvd19jb2xfd3JhcHBlciA9IFwiX1wiO1xuICAgIHByaXZhdGUgZGVjaW1hbHM6IE51bWJlcjtcbiAgICBwdWJsaWMgY29sX25hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcm93X25hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcm93X25hbWVfcmF3OiBzdHJpbmc7XG4gICAgcHVibGljIGNvbG9yX2JnOiBzdHJpbmc7XG4gICAgcHVibGljIGNvbG9yX3RleHQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzcGxheV92YWx1ZSA9IFwiLVwiO1xuICAgIHB1YmxpYyB0b29sdGlwID0gXCItXCI7XG4gICAgcHVibGljIHZhbHVlID0gTmFOO1xuICAgIHB1YmxpYyB2YWx1ZV9mb3JtYXR0ZWQgPSBcIi1cIjtcbiAgICBwdWJsaWMgbGluayA9IFwiLVwiO1xuICAgIHB1YmxpYyB0aHJlc2hvbGRzOiBOdW1iZXJbXTtcbiAgICBwdWJsaWMgaGlkZGVuOiBCb29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIF9tZXRyaWNuYW1lID0gXCJcIjtcbiAgICBwdWJsaWMgX3RhZ3M6IGFueVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihzZXJpZXNEYXRhOiBhbnksIHBhbmVsRGVmYXVsdFBhdHRlcm46IGFueSwgcGFuZWxQYXR0ZXJuczogYW55W10sIG9wdGlvbnM6IGFueSwgc2NvcGVkVmFyczogYW55LCB0ZW1wbGF0ZVNydjogYW55LCB0aW1lU3J2OiBhbnkpIHtcblxuICAgICAgICBsZXQgc2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoe1xuICAgICAgICAgICAgYWxpYXM6IHNlcmllc0RhdGEudGFyZ2V0LFxuICAgICAgICAgICAgZGF0YXBvaW50czogc2VyaWVzRGF0YS5kYXRhcG9pbnRzIHx8IFtdXG4gICAgICAgIH0pO1xuICAgICAgICBzZXJpZXMuZmxvdHBhaXJzID0gc2VyaWVzLmdldEZsb3RQYWlycyhcImNvbm5lY3RlZFwiKTtcblxuICAgICAgICB0aGlzLmRlYnVnX21vZGUgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWdfbW9kZSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3dfY29sX3dyYXBwZXIgPSBvcHRpb25zICYmIG9wdGlvbnMucm93X2NvbF93cmFwcGVyID8gb3B0aW9ucy5yb3dfY29sX3dyYXBwZXIgOiB0aGlzLnJvd19jb2xfd3JhcHBlcjtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZVN0YW1wID0gZ2V0Q3VycmVudFRpbWVTdGFtcChzZXJpZXMuZGF0YVBvaW50cyk7XG4gICAgICAgIHRoaXMuc2VyaWVzTmFtZSA9IHNlcmllcy5hbGlhcyB8fCBzZXJpZXMuYWxpYXNFc2NhcGVkIHx8IHNlcmllcy5sYWJlbCB8fCBzZXJpZXMuaWQgfHwgXCJcIjtcblxuICAgICAgICBsZXQgZ2V0TWF0Y2hpbmdBbmRFbmFibGVkUGF0dGVybiA9IChwYXR0ZXJucywgc2VyaWVzTmFtZSkgPT4gcGF0dGVybnMuZmluZChwID0+IHNlcmllc05hbWUubWF0Y2gocC5wYXR0ZXJuKSAmJiBwLmRpc2FibGVkICE9PSB0cnVlKTtcbiAgICAgICAgdGhpcy5wYXR0ZXJuID0gZ2V0TWF0Y2hpbmdBbmRFbmFibGVkUGF0dGVybihwYW5lbFBhdHRlcm5zLCB0aGlzLnNlcmllc05hbWUpIHx8IHBhbmVsRGVmYXVsdFBhdHRlcm47XG5cbiAgICAgICAgdGhpcy5kZWNpbWFscyA9IHRoaXMucGF0dGVybi5kZWNpbWFscyB8fCBwYW5lbERlZmF1bHRQYXR0ZXJuLmRlY2ltYWxzIHx8IDI7XG4gICAgICAgIHRoaXMudmFsdWUgPSBnZXRTZXJpZXNWYWx1ZShzZXJpZXMsIHRoaXMucGF0dGVybi52YWx1ZU5hbWUpO1xuICAgICAgICB0aGlzLnZhbHVlX2Zvcm1hdHRlZCA9IGdldF9mb3JtYXR0ZWRfdmFsdWUodGhpcy52YWx1ZSwgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCk7XG4gICAgICAgIHRoaXMuZGlzcGxheV92YWx1ZSA9ICgoXy5pc05hTih0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSBudWxsKSA/IHRoaXMucGF0dGVybi5udWxsX3ZhbHVlIDogU3RyaW5nKHRoaXMudmFsdWUpKS50b1N0cmluZygpO1xuICAgICAgICB0aGlzLmhpZGRlbiA9IGRvZXNWYWx1ZU5lZWRzVG9IaWRlKHRoaXMudmFsdWUsIHRoaXMucGF0dGVybi5maWx0ZXIpO1xuICAgICAgICB0aGlzLl9tZXRyaWNuYW1lID0gdGhpcy5wYXR0ZXJuLmRlbGltaXRlci50b0xvd2VyQ2FzZSgpID09PSBcInRhZ1wiID8gZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyhzZXJpZXNEYXRhLnRhcmdldCkgOiBcIlwiO1xuICAgICAgICB0aGlzLl90YWdzID0gdGhpcy5wYXR0ZXJuLmRlbGltaXRlci50b0xvd2VyQ2FzZSgpID09PSBcInRhZ1wiID8gZ2V0TGFibGVzRnJvbVRhZ2dlZEFsaWFzKHNlcmllc0RhdGEudGFyZ2V0LCB0aGlzLl9tZXRyaWNuYW1lKSA6IFtdO1xuXG4gICAgICAgIHRoaXMucm93X25hbWUgPSBnZXRSb3dOYW1lKHRoaXMucGF0dGVybi5yb3dfbmFtZSwgdGhpcy5wYXR0ZXJuLmRlbGltaXRlciwgdGhpcy5yb3dfY29sX3dyYXBwZXIsIHRoaXMuc2VyaWVzTmFtZSwgdGhpcy5fbWV0cmljbmFtZSwgdGhpcy5fdGFncyk7XG4gICAgICAgIHRoaXMucm93X25hbWVfcmF3ID0gZ2V0Um93TmFtZSh0aGlzLnBhdHRlcm4ucm93X25hbWUsIHRoaXMucGF0dGVybi5kZWxpbWl0ZXIsIHRoaXMucm93X2NvbF93cmFwcGVyLCB0aGlzLnNlcmllc05hbWUsIHRoaXMuX21ldHJpY25hbWUsIHRoaXMuX3RhZ3MpO1xuICAgICAgICB0aGlzLmNvbF9uYW1lID0gZ2V0Q29sTmFtZSh0aGlzLnBhdHRlcm4uY29sX25hbWUsIHRoaXMucGF0dGVybi5kZWxpbWl0ZXIsIHRoaXMucm93X2NvbF93cmFwcGVyLCB0aGlzLnNlcmllc05hbWUsIHRoaXMucm93X25hbWUsIHRoaXMuX21ldHJpY25hbWUsIHRoaXMuX3RhZ3MpO1xuXG4gICAgICAgIHRoaXMudGhyZXNob2xkcyA9IGdldFRocmVzaG9sZHModGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnBhdHRlcm4udGhyZXNob2xkcywgc2NvcGVkVmFycykuc3BsaXQoXCIsXCIpLm1hcChkID0+ICtkKSwgdGhpcy5wYXR0ZXJuLmVuYWJsZV90aW1lX2Jhc2VkX3RocmVzaG9sZHMsIHRoaXMucGF0dGVybi50aW1lX2Jhc2VkX3RocmVzaG9sZHMsIHRoaXMuY3VycmVudFRpbWVTdGFtcCk7XG4gICAgICAgIHRoaXMuY29sb3JfYmcgPSBnZXRCR0NvbG9yKHRoaXMudmFsdWUsIHRoaXMucGF0dGVybiwgdGhpcy50aHJlc2hvbGRzLCB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMucGF0dGVybi5iZ0NvbG9ycywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpLCB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMucGF0dGVybi5iZ0NvbG9yc19vdmVycmlkZXMsIHNjb3BlZFZhcnMpLnNwbGl0KFwifFwiKSk7XG4gICAgICAgIHRoaXMuY29sb3JfdGV4dCA9IGdldFRleHRDb2xvcih0aGlzLnZhbHVlLCB0aGlzLnBhdHRlcm4sIHRoaXMudGhyZXNob2xkcywgdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnBhdHRlcm4udGV4dENvbG9ycywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpLCB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMucGF0dGVybi50ZXh0Q29sb3JzX292ZXJyaWRlcywgc2NvcGVkVmFycykuc3BsaXQoXCJ8XCIpKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZV92YWx1ZSA9IGdldERpc3BsYXlWYWx1ZVRlbXBsYXRlKHRoaXMudmFsdWUsIHRoaXMucGF0dGVybiwgdGhpcy5zZXJpZXNOYW1lLCB0aGlzLnJvd19jb2xfd3JhcHBlciwgdGhpcy50aHJlc2hvbGRzKTtcblxuICAgICAgICB0aGlzLmxpbmsgPSBnZXRMaW5rKHRoaXMucGF0dGVybi5lbmFibGVfY2xpY2thYmxlX2NlbGxzLCB0aGlzLnBhdHRlcm4uY2xpY2thYmxlX2NlbGxzX2xpbmssIHRpbWVTcnYudGltZVJhbmdlRm9yVXJsKCkpO1xuICAgICAgICB0aGlzLmxpbmsgPSByZXBsYWNlRGVsaW1pdGVkQ29sdW1ucyh0aGlzLmxpbmssIHRoaXMuc2VyaWVzTmFtZSwgdGhpcy5wYXR0ZXJuLmRlbGltaXRlciwgdGhpcy5yb3dfY29sX3dyYXBwZXIpO1xuXG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMucGF0dGVybi50b29sdGlwVGVtcGxhdGUgfHwgXCJTZXJpZXMgOiBfc2VyaWVzXyA8YnIvPlJvdyBOYW1lIDogX3Jvd19uYW1lXyA8YnIvPkNvbCBOYW1lIDogX2NvbF9uYW1lXyA8YnIvPlZhbHVlIDogX3ZhbHVlX1wiO1xuXG4gICAgICAgIHRoaXMucmVwbGFjZVNlcmllc1Jvd0NvbFRva2VucygpO1xuXG4gICAgICAgIHRoaXMubGluayA9IEdldFZhbHVlc1JlcGxhY2VkKHRoaXMubGluaywgdGhpcy52YWx1ZSwgdGhpcy52YWx1ZV9mb3JtYXR0ZWQsIHNlcmllcy5zdGF0cywgdGhpcy5kZWNpbWFscywgdGhpcy5wYXR0ZXJuLmZvcm1hdCwgdGhpcy5fbWV0cmljbmFtZSwgdGhpcy5fdGFncywgdGhpcy5wYXR0ZXJuLmRlbGltaXRlciB8fCBcIlwiKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gR2V0VmFsdWVzUmVwbGFjZWQodGhpcy50b29sdGlwLCB0aGlzLnZhbHVlLCB0aGlzLnZhbHVlX2Zvcm1hdHRlZCwgc2VyaWVzLnN0YXRzLCB0aGlzLmRlY2ltYWxzLCB0aGlzLnBhdHRlcm4uZm9ybWF0LCB0aGlzLl9tZXRyaWNuYW1lLCB0aGlzLl90YWdzLCB0aGlzLnBhdHRlcm4uZGVsaW1pdGVyIHx8IFwiXCIpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSBHZXRWYWx1ZXNSZXBsYWNlZCh0aGlzLmRpc3BsYXlfdmFsdWUsIHRoaXMudmFsdWUsIHRoaXMudmFsdWVfZm9ybWF0dGVkLCBzZXJpZXMuc3RhdHMsIHRoaXMuZGVjaW1hbHMsIHRoaXMucGF0dGVybi5mb3JtYXQsIHRoaXMuX21ldHJpY25hbWUsIHRoaXMuX3RhZ3MsIHRoaXMucGF0dGVybi5kZWxpbWl0ZXIgfHwgXCJcIik7XG5cbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHJlcGxhY2VUb2tlbnModGhpcy5yb3dfbmFtZSk7XG4gICAgICAgIHRoaXMuY29sX25hbWUgPSByZXBsYWNlVG9rZW5zKHRoaXMuY29sX25hbWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSByZXBsYWNlVG9rZW5zKHRoaXMuZGlzcGxheV92YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHRlbXBsYXRlU3J2LnJlcGxhY2UodGhpcy5yb3dfbmFtZSwgc2NvcGVkVmFycyk7XG4gICAgICAgIHRoaXMuY29sX25hbWUgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMuY29sX25hbWUsIHNjb3BlZFZhcnMpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMuZGlzcGxheV92YWx1ZSwgc2NvcGVkVmFycyk7XG5cbiAgICAgICAgdGhpcy50b29sdGlwID0gdGVtcGxhdGVTcnYucmVwbGFjZSh0aGlzLnRvb2x0aXAsIHNjb3BlZFZhcnMpO1xuICAgICAgICB0aGlzLmxpbmsgPSB0ZW1wbGF0ZVNydi5yZXBsYWNlKHRoaXMubGluaywgc2NvcGVkVmFycyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGVidWdfbW9kZSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2VyaWVzTmFtZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhdHRlcm47XG4gICAgICAgICAgICBkZWxldGUgdGhpcy50aHJlc2hvbGRzO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGVjaW1hbHM7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy50ZW1wbGF0ZV92YWx1ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlX2Zvcm1hdHRlZDtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRUaW1lU3RhbXA7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBwcml2YXRlIHJlcGxhY2VTZXJpZXNSb3dDb2xUb2tlbnMoKSB7XG5cbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9zZXJpZXNfXCIsIFwiZ1wiKSwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkudHJpbSgpKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50b29sdGlwLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9zZXJpZXNfXCIsIFwiZ1wiKSwgdGhpcy5zZXJpZXNOYW1lLnRvU3RyaW5nKCkudHJpbSgpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy50ZW1wbGF0ZV92YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfc2VyaWVzX1wiLCBcImdcIiksIHRoaXMuc2VyaWVzTmFtZS50b1N0cmluZygpKTtcblxuICAgICAgICB0aGlzLmNvbF9uYW1lID0gdGhpcy5jb2xfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgdGhpcy5yb3dfbmFtZS50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9yb3dfbmFtZV9cIiwgXCJnXCIpLCBnZXRBY3R1YWxOYW1lV2l0aG91dFRva2Vucyh0aGlzLnJvd19uYW1lLnRvU3RyaW5nKCkpLnRyaW0oKSk7XG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfcm93X25hbWVfXCIsIFwiZ1wiKSwgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnModGhpcy5yb3dfbmFtZS50b1N0cmluZygpKS50cmltKCkpO1xuICAgICAgICB0aGlzLmRpc3BsYXlfdmFsdWUgPSB0aGlzLmRpc3BsYXlfdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX3Jvd19uYW1lX1wiLCBcImdcIiksIHRoaXMucm93X25hbWUudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgdGhpcy5yb3dfbmFtZSA9IHRoaXMucm93X25hbWUucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMubGluayA9IHRoaXMubGluay5yZXBsYWNlKG5ldyBSZWdFeHAoXCJfY29sX25hbWVfXCIsIFwiZ1wiKSwgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnModGhpcy5jb2xfbmFtZS50b1N0cmluZygpKS50cmltKCkpO1xuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXAucmVwbGFjZShuZXcgUmVnRXhwKFwiX2NvbF9uYW1lX1wiLCBcImdcIiksIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKHRoaXMuY29sX25hbWUudG9TdHJpbmcoKSkudHJpbSgpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5X3ZhbHVlID0gdGhpcy5kaXNwbGF5X3ZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl9jb2xfbmFtZV9cIiwgXCJnXCIpLCB0aGlzLmNvbF9uYW1lLnRvU3RyaW5nKCkpO1xuXG4gICAgfVxuXG59XG5cbmV4cG9ydCB7XG4gICAgQm9vbVNlcmllc1xufTtcbiJdfQ== \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeriesUtils.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeriesUtils.js deleted file mode 100644 index fb292fb2e6..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomSeriesUtils.js +++ /dev/null @@ -1,119 +0,0 @@ -System.register(["lodash", "./index", "../GrafanaUtils"], function (exports_1, context_1) { - "use strict"; - var lodash_1, index_1, GrafanaUtils_1, getBGColor, getTextColor, getThresholds, getLink, GetValuesReplaced; - 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; - }, - function (GrafanaUtils_1_1) { - GrafanaUtils_1 = GrafanaUtils_1_1; - } - ], - execute: function () { - exports_1("getBGColor", getBGColor = function (value, pattern, thresholds, list_of_bgColors_based_on_thresholds, bgColorOverRides) { - var bgColor = 'transparent'; - if (lodash_1.default.isNaN(value) || value === null) { - bgColor = pattern.null_color || 'darkred'; - if (pattern.null_color === '') { - bgColor = 'transparent'; - } - } - else { - bgColor = pattern.defaultBGColor || bgColor; - if (pattern.enable_bgColor && pattern.bgColors) { - bgColor = index_1.getItemBasedOnThreshold(thresholds, list_of_bgColors_based_on_thresholds, value, bgColor); - } - if (pattern.enable_bgColor_overrides && pattern.bgColors_overrides !== '') { - var _bgColors_overrides = bgColorOverRides - .filter(function (con) { return con.indexOf('->'); }) - .map(function (con) { return con.split('->'); }) - .filter(function (con) { return +con[0] === 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); - }); - exports_1("getTextColor", getTextColor = function (value, pattern, thresholds, list_of_textColors_based_on_thresholds, txtColorOverrides) { - var textColor = document.body.classList.contains('theme-light') ? 'black' : 'white'; - if (lodash_1.default.isNaN(value) || value === null) { - textColor = pattern.null_textcolor || textColor; - } - else { - textColor = pattern.defaultTextColor || textColor; - if (pattern.enable_textColor && pattern.textColors) { - textColor = index_1.getItemBasedOnThreshold(thresholds, list_of_textColors_based_on_thresholds, value, textColor); - } - if (pattern.enable_textColor_overrides && pattern.textColors_overrides !== '') { - var _textColors_overrides = txtColorOverrides - .filter(function (con) { return con.indexOf('->'); }) - .map(function (con) { return con.split('->'); }) - .filter(function (con) { return +con[0] === 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); - }); - exports_1("getThresholds", getThresholds = function (thresholdsArray, enable_time_based_thresholds, time_based_thresholds, currentTimeStamp) { - if (enable_time_based_thresholds) { - var metricrecivedTimeStamp_1 = 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(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) { - thresholdsArray = (tbtx.threshold + '').split(',').map(function (d) { return +d; }); - } - }); - } - return thresholdsArray || []; - }); - exports_1("getLink", getLink = function (enable_clickable_cells, clickable_cells_link, range) { - var link = enable_clickable_cells ? clickable_cells_link || '#' : '#'; - if (link && link !== '#') { - link += link.indexOf('?') > -1 ? "&from=" + range.from : "?from=" + range.from; - link += "&to=" + range.to; - } - return link; - }); - exports_1("GetValuesReplaced", GetValuesReplaced = function (strToReplace, value, valueformatted, stats, decimals, format, _metricname, _tags, delimiter) { - var value_raw = lodash_1.default.isNaN(value) || value === null ? 'null' : value.toString().trim(); - var value_formatted = lodash_1.default.isNaN(value) || value === null ? 'null' : valueformatted.toString().trim(); - strToReplace = strToReplace.replace(new RegExp('_value_min_raw_', 'g'), stats.min); - strToReplace = strToReplace.replace(new RegExp('_value_max_raw_', 'g'), stats.max); - strToReplace = strToReplace.replace(new RegExp('_value_avg_raw_', 'g'), stats.avg); - strToReplace = strToReplace.replace(new RegExp('_value_current_raw_', 'g'), stats.current); - strToReplace = strToReplace.replace(new RegExp('_value_total_raw_', 'g'), stats.total); - strToReplace = strToReplace.replace(new RegExp('_value_raw_', 'g'), value_raw); - strToReplace = strToReplace.replace(new RegExp('_value_min_', 'g'), GrafanaUtils_1.get_formatted_value(stats.min, decimals, format)); - strToReplace = strToReplace.replace(new RegExp('_value_max_', 'g'), GrafanaUtils_1.get_formatted_value(stats.max, decimals, format)); - strToReplace = strToReplace.replace(new RegExp('_value_avg_', 'g'), GrafanaUtils_1.get_formatted_value(stats.avg, decimals, format)); - strToReplace = strToReplace.replace(new RegExp('_value_current_', 'g'), GrafanaUtils_1.get_formatted_value(stats.current, decimals, format)); - strToReplace = strToReplace.replace(new RegExp('_value_total_', 'g'), GrafanaUtils_1.get_formatted_value(stats.total, decimals, format)); - strToReplace = strToReplace.replace(new RegExp('_value_', 'g'), value_formatted); - if (delimiter.toLowerCase() === 'tag') { - strToReplace = strToReplace.replace(new RegExp('{{metric_name}}', 'g'), _metricname); - strToReplace = index_1.replace_tags_from_field(strToReplace, _tags); - } - return strToReplace; - }); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllc1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9ib29tL0Jvb21TZXJpZXNVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztZQU1BLHdCQUFXLFVBQVUsR0FBRyxVQUN0QixLQUFhLEVBQ2IsT0FBcUIsRUFDckIsVUFBaUIsRUFDakIsb0NBQThDLEVBQzlDLGdCQUEwQjtnQkFFMUIsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDO2dCQUM1QixJQUFJLGdCQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQ3BDLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQztvQkFDMUMsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTt3QkFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQztxQkFDekI7aUJBQ0Y7cUJBQU07b0JBQ0wsT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDO29CQUM1QyxJQUFJLE9BQU8sQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTt3QkFDOUMsT0FBTyxHQUFHLCtCQUF1QixDQUFDLFVBQVUsRUFBRSxvQ0FBb0MsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQ3JHO29CQUNELElBQUksT0FBTyxDQUFDLHdCQUF3QixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLEVBQUU7d0JBQ3pFLElBQUksbUJBQW1CLEdBQUcsZ0JBQWdCOzZCQUN2QyxNQUFNLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFqQixDQUFpQixDQUFDOzZCQUNoQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFm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Q0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxFQUFFLGtDQUFtQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzFILFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFFakYsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFO29CQUNyQyxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDckYsWUFBWSxHQUFHLCtCQUF1QixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDN0Q7Z0JBRUQsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbmltcG9ydCB7IGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkLCBub3JtYWxpemVDb2xvciwgcmVwbGFjZV90YWdzX2Zyb21fZmllbGQgfSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IHsgZ2V0X2Zvcm1hdHRlZF92YWx1ZSB9IGZyb20gJy4uL0dyYWZhbmFVdGlscyc7XHJcbmltcG9ydCB7IElCb29tUGF0dGVybiB9IGZyb20gJy4vQm9vbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGxldCBnZXRCR0NvbG9yID0gZnVuY3Rpb24oXHJcbiAgdmFsdWU6IG51bWJlcixcclxuICBwYXR0ZXJuOiBJQm9vbVBhdHRlcm4sXHJcbiAgdGhyZXNob2xkczogYW55W10sXHJcbiAgbGlzdF9vZl9iZ0NvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzOiBzdHJpbmdbXSxcclxuICBiZ0NvbG9yT3ZlclJpZGVzOiBzdHJpbmdbXVxyXG4pOiBzdHJpbmcge1xyXG4gIGxldCBiZ0NvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuICBpZiAoXy5pc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwpIHtcclxuICAgIGJnQ29sb3IgPSBwYXR0ZXJuLm51bGxfY29sb3IgfHwgJ2RhcmtyZWQnO1xyXG4gICAgaWYgKHBhdHRlcm4ubnVsbF9jb2xvciA9PT0gJycpIHtcclxuICAgICAgYmdDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGJnQ29sb3IgPSBwYXR0ZXJuLmRlZmF1bHRCR0NvbG9yIHx8IGJnQ29sb3I7XHJcbiAgICBpZiAocGF0dGVybi5lbmFibGVfYmdDb2xvciAmJiBwYXR0ZXJuLmJnQ29sb3JzKSB7XHJcbiAgICAgIGJnQ29sb3IgPSBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCh0aHJlc2hvbGRzLCBsaXN0X29mX2JnQ29sb3JzX2Jhc2VkX29uX3RocmVzaG9sZHMsIHZhbHVlLCBiZ0NvbG9yKTtcclxuICAgIH1cclxuICAgIGlmIChwYXR0ZXJuLmVuYWJsZV9iZ0NvbG9yX292ZXJyaWRlcyAmJiBwYXR0ZXJuLmJnQ29sb3JzX292ZXJyaWRlcyAhPT0gJycpIHtcclxuICAgICAgbGV0IF9iZ0NvbG9yc19vdmVycmlkZXMgPSBiZ0NvbG9yT3ZlclJpZGVzXHJcbiAgICAgICAgLmZpbHRlcihjb24gPT4gY29uLmluZGV4T2YoJy0+JykpXHJcbiAgICAgICAgLm1hcChjb24gPT4gY29uLnNwbGl0KCctPicpKVxyXG4gICAgICAgIC5maWx0ZXIoY29uID0+ICtjb25bMF0gPT09IHZhbHVlKVxyXG4gICAgICAgIC5tYXAoY29uID0+IGNvblsxXSk7XHJcbiAgICAgIGlmIChfYmdDb2xvcnNfb3ZlcnJpZGVzLmxlbmd0aCA+IDAgJiYgX2JnQ29sb3JzX292ZXJyaWRlc1swXSAhPT0gJycpIHtcclxuICAgICAgICBiZ0NvbG9yID0gKCcnICsgX2JnQ29sb3JzX292ZXJyaWRlc1swXSkudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBub3JtYWxpemVDb2xvcihiZ0NvbG9yKTtcclxufTtcclxuZXhwb3J0IGxldCBnZXRUZXh0Q29sb3IgPSBmdW5jdGlvbihcclxuICB2YWx1ZTogbnVtYmVyLFxyXG4gIHBhdHRlcm46IElCb29tUGF0dGVybixcclxuICB0aHJlc2hvbGRzLFxyXG4gIGxpc3Rfb2ZfdGV4dENvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzOiBzdHJpbmcsXHJcbiAgdHh0Q29sb3JPdmVycmlkZXM6IHN0cmluZ1tdXHJcbik6IHN0cmluZyB7XHJcbiAgbGV0IHRleHRDb2xvciA9IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0aGVtZS1saWdodCcpID8gJ2JsYWNrJyA6ICd3aGl0ZSc7XHJcbiAgaWYgKF8uaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSB7XHJcbiAgICB0ZXh0Q29sb3IgPSBwYXR0ZXJuLm51bGxfdGV4dGNvbG9yIHx8IHRleHRDb2xvcjtcclxuICB9IGVsc2Uge1xyXG4gICAgdGV4dENvbG9yID0gcGF0dGVybi5kZWZhdWx0VGV4dENvbG9yIHx8IHRleHRDb2xvcjtcclxuICAgIGlmIChwYXR0ZXJuLmVuYWJsZV90ZXh0Q29sb3IgJiYgcGF0dGVybi50ZXh0Q29sb3JzKSB7XHJcbiAgICAgIHRleHRDb2xvciA9IGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkKHRocmVzaG9sZHMsIGxpc3Rfb2ZfdGV4dENvbG9yc19iYXNlZF9vbl90aHJlc2hvbGRzLCB2YWx1ZSwgdGV4dENvbG9yKTtcclxuICAgIH1cclxuICAgIGlmIChwYXR0ZXJuLmVuYWJsZV90ZXh0Q29sb3Jfb3ZlcnJpZGVzICYmIHBhdHRlcm4udGV4dENvbG9yc19vdmVycmlkZXMgIT09ICcnKSB7XHJcbiAgICAgIGxldCBfdGV4dENvbG9yc19vdmVycmlkZXMgPSB0eHRDb2xvck92ZXJyaWRlc1xyXG4gICAgICAgIC5maWx0ZXIoY29uID0+IGNvbi5pbmRleE9mKCctPicpKVxyXG4gICAgICAgIC5tYXAoY29uID0+IGNvbi5zcGxpdCgnLT4nKSlcclxuICAgICAgICAuZmlsdGVyKGNvbiA9PiArY29uWzBdID09PSB2YWx1ZSlcclxuICAgICAgICAubWFwKGNvbiA9PiBjb25bMV0pO1xyXG4gICAgICBpZiAoX3RleHRDb2xvcnNfb3ZlcnJpZGVzLmxlbmd0aCA+IDAgJiYgX3RleHRDb2xvcnNfb3ZlcnJpZGVzWzBdICE9PSAnJykge1xyXG4gICAgICAgIHRleHRDb2xvciA9ICgnJyArIF90ZXh0Q29sb3JzX292ZXJyaWRlc1swXSkudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBub3JtYWxpemVDb2xvcih0ZXh0Q29sb3IpO1xyXG59O1xyXG5leHBvcnQgbGV0IGdldFRocmVzaG9sZHMgPSBmdW5jdGlvbihcclxuICB0aHJlc2hvbGRzQXJyYXk6IGFueVtdLFxyXG4gIGVuYWJsZV90aW1lX2Jhc2VkX3RocmVzaG9sZHM6IGJvb2xlYW4sXHJcbiAgdGltZV9iYXNlZF90aHJlc2hvbGRzOiBhbnlbXSxcclxuICBjdXJyZW50VGltZVN0YW1wOiBEYXRlXHJcbikge1xyXG4gIGlmIChlbmFibGVfdGltZV9iYXNlZF90aHJlc2hvbGRzKSB7XHJcbiAgICBsZXQgbWV0cmljcmVjaXZlZFRpbWVTdGFtcCA9IGN1cnJlbnRUaW1lU3RhbXAgfHwgbmV3IERhdGUoKTtcclxuICAgIGxldCBtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyID0gbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXRIb3VycygpICogMTAwICsgbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXRNaW51dGVzKCk7XHJcbiAgICBsZXQgd2Vla2RheXMgPSBbJ3N1bicsICdtb24nLCAndHVlJywgJ3dlZCcsICd0aHUnLCAnZnJpJywgJ3NhdCddO1xyXG4gICAgXy5lYWNoKHRpbWVfYmFzZWRfdGhyZXNob2xkcywgdGJ0eCA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0YnR4ICYmXHJcbiAgICAgICAgdGJ0eC5mcm9tICYmXHJcbiAgICAgICAgdGJ0eC50byAmJlxyXG4gICAgICAgIHRidHguZW5hYmxlZERheXMgJiZcclxuICAgICAgICBtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyID49ICt0YnR4LmZyb20gJiZcclxuICAgICAgICBtZXRyaWNyZWNpdmVkVGltZVN0YW1wX2lubnVtYmVyIDw9ICt0YnR4LnRvICYmXHJcbiAgICAgICAgdGJ0eC5lbmFibGVkRGF5cy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2Vla2RheXNbbWV0cmljcmVjaXZlZFRpbWVTdGFtcC5nZXREYXkoKV0pID4gLTEgJiZcclxuICAgICAgICB0YnR4LnRocmVzaG9sZFxyXG4gICAgICApIHtcclxuICAgICAgICB0aHJlc2hvbGRzQXJyYXkgPSAodGJ0eC50aHJlc2hvbGQgKyAnJykuc3BsaXQoJywnKS5tYXAoZCA9PiArZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gdGhyZXNob2xkc0FycmF5IHx8IFtdO1xyXG59O1xyXG5leHBvcnQgbGV0IGdldExpbmsgPSBmdW5jdGlvbihlbmFibGVfY2xpY2thYmxlX2NlbGxzOiBib29sZWFuLCBjbGlja2FibGVfY2VsbHNfbGluazogc3RyaW5nLCByYW5nZTogYW55KTogc3RyaW5nIHtcclxuICBsZXQgbGluayA9IGVuYWJsZV9jbGlja2FibGVfY2VsbHMgPyBjbGlja2FibGVfY2VsbHNfbGluayB8fCAnIycgOiAnIyc7XHJcbiAgaWYgKGxpbmsgJiYgbGluayAhPT0gJyMnKSB7XHJcbiAgICBsaW5rICs9IGxpbmsuaW5kZXhPZignPycpID4gLTEgPyBgJmZyb209JHtyYW5nZS5mcm9tfWAgOiBgP2Zyb209JHtyYW5nZS5mcm9tfWA7XHJcbiAgICBsaW5rICs9IGAmdG89JHtyYW5nZS50b31gO1xyXG4gIH1cclxuICByZXR1cm4gbGluaztcclxufTtcclxuZXhwb3J0IGxldCBHZXRWYWx1ZXNSZXBsYWNlZCA9IGZ1bmN0aW9uKFxyXG4gIHN0clRvUmVwbGFjZTogc3RyaW5nLFxyXG4gIHZhbHVlLFxyXG4gIHZhbHVlZm9ybWF0dGVkLFxyXG4gIHN0YXRzOiBhbnksXHJcbiAgZGVjaW1hbHM6IE51bWJlcixcclxuICBmb3JtYXQ6IHN0cmluZyxcclxuICBfbWV0cmljbmFtZTogc3RyaW5nLFxyXG4gIF90YWdzOiBhbnlbXSxcclxuICBkZWxpbWl0ZXI6IHN0cmluZ1xyXG4pOiBzdHJpbmcge1xyXG4gIGxldCB2YWx1ZV9yYXcgPSBfLmlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCA/ICdudWxsJyA6IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpO1xyXG4gIGxldCB2YWx1ZV9mb3JtYXR0ZWQgPSBfLmlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCA/ICdudWxsJyA6IHZhbHVlZm9ybWF0dGVkLnRvU3RyaW5nKCkudHJpbSgpO1xyXG5cclxuICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCdfdmFsdWVfbWluX3Jhd18nLCAnZycpLCBzdGF0cy5taW4pO1xyXG4gIHN0clRvUmVwbGFjZSA9IHN0clRvUmVwbGFjZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ192YWx1ZV9tYXhfcmF3XycsICdnJyksIHN0YXRzLm1heCk7XHJcbiAgc3RyVG9SZXBsYWNlID0gc3RyVG9SZXBsYWNlLnJlcGxhY2UobmV3IFJlZ0V4cCgnX3ZhbHVlX2F2Z19yYXdfJywgJ2cnKSwgc3RhdHMuYXZnKTtcclxuICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCdfdmFsdWVfY3VycmVudF9yYXdfJywgJ2cnKSwgc3RhdHMuY3VycmVudCk7XHJcbiAgc3RyVG9SZXBsYWNlID0gc3RyVG9SZXBsYWNlLnJlcGxhY2UobmV3IFJlZ0V4cCgnX3ZhbHVlX3RvdGFsX3Jhd18nLCAnZycpLCBzdGF0cy50b3RhbCk7XHJcbiAgc3RyVG9SZXBsYWNlID0gc3RyVG9SZXBsYWNlLnJlcGxhY2UobmV3IFJlZ0V4cCgnX3ZhbHVlX3Jhd18nLCAnZycpLCB2YWx1ZV9yYXcpO1xyXG5cclxuICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCdfdmFsdWVfbWluXycsICdnJyksIGdldF9mb3JtYXR0ZWRfdmFsdWUoc3RhdHMubWluLCBkZWNpbWFscywgZm9ybWF0KSk7XHJcbiAgc3RyVG9SZXBsYWNlID0gc3RyVG9SZXBsYWNlLnJlcGxhY2UobmV3IFJlZ0V4cCgnX3ZhbHVlX21heF8nLCAnZycpLCBnZXRfZm9ybWF0dGVkX3ZhbHVlKHN0YXRzLm1heCwgZGVjaW1hbHMsIGZvcm1hdCkpO1xyXG4gIHN0clRvUmVwbGFjZSA9IHN0clRvUmVwbGFjZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ192YWx1ZV9hdmdfJywgJ2cnKSwgZ2V0X2Zvcm1hdHRlZF92YWx1ZShzdGF0cy5hdmcsIGRlY2ltYWxzLCBmb3JtYXQpKTtcclxuICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCdfdmFsdWVfY3VycmVudF8nLCAnZycpLCBnZXRfZm9ybWF0dGVkX3ZhbHVlKHN0YXRzLmN1cnJlbnQsIGRlY2ltYWxzLCBmb3JtYXQpKTtcclxuICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCdfdmFsdWVfdG90YWxfJywgJ2cnKSwgZ2V0X2Zvcm1hdHRlZF92YWx1ZShzdGF0cy50b3RhbCwgZGVjaW1hbHMsIGZvcm1hdCkpO1xyXG4gIHN0clRvUmVwbGFjZSA9IHN0clRvUmVwbGFjZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ192YWx1ZV8nLCAnZycpLCB2YWx1ZV9mb3JtYXR0ZWQpO1xyXG5cclxuICBpZiAoZGVsaW1pdGVyLnRvTG93ZXJDYXNlKCkgPT09ICd0YWcnKSB7XHJcbiAgICBzdHJUb1JlcGxhY2UgPSBzdHJUb1JlcGxhY2UucmVwbGFjZShuZXcgUmVnRXhwKCd7e21ldHJpY19uYW1lfX0nLCAnZycpLCBfbWV0cmljbmFtZSk7XHJcbiAgICBzdHJUb1JlcGxhY2UgPSByZXBsYWNlX3RhZ3NfZnJvbV9maWVsZChzdHJUb1JlcGxhY2UsIF90YWdzKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBzdHJUb1JlcGxhY2U7XHJcbn07XHJcbiJdfQ== \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomTimeBasedThreshold.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomTimeBasedThreshold.js deleted file mode 100644 index 1a546552fd..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomTimeBasedThreshold.js +++ /dev/null @@ -1,22 +0,0 @@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVRpbWVCYXNlZFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYm9vbS9Cb29tVGltZUJhc2VkVGhyZXNob2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7WUFFQTtnQkFNRTtvQkFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO29CQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztvQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUNuQixDQUFDO2dCQUNILDZCQUFDO1lBQUQsQ0FBQyxBQWJELElBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9IGZyb20gJy4vaW5kZXgnO1xuXG5jbGFzcyBCb29tVGltZUJhc2VkVGhyZXNob2xkIGltcGxlbWVudHMgSUJvb21UaW1lQmFzZWRUaHJlc2hvbGQge1xuICBwdWJsaWMgZW5hYmxlZERheXM6IHN0cmluZztcbiAgcHVibGljIGZyb206IHN0cmluZztcbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRocmVzaG9sZDogc3RyaW5nO1xuICBwdWJsaWMgdG86IHN0cmluZztcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5lbmFibGVkRGF5cyA9ICdTdW4sTW9uLFR1ZSxXZWQsVGh1LEZyaSxTYXQnO1xuICAgIHRoaXMuZnJvbSA9ICcwMDAwJztcbiAgICB0aGlzLm5hbWUgPSAnRWFybHkgbW9ybmluZyBvZiBldmVyeWRheSc7XG4gICAgdGhpcy50aHJlc2hvbGQgPSAnNzAsOTAnO1xuICAgIHRoaXMudG8gPSAnMDUzMCc7XG4gIH1cbn1cblxuZXhwb3J0IHsgQm9vbVRpbWVCYXNlZFRocmVzaG9sZCB9O1xuIl19 \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/BoomUtils.js b/panels/yesoreyeram-boomtable-panel/app/boom/BoomUtils.js deleted file mode 100644 index 367e7d9a4c..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/BoomUtils.js +++ /dev/null @@ -1,300 +0,0 @@ -System.register(["lodash"], function (exports_1, context_1) { - "use strict"; - var lodash_1, normalizeColor, parseMath, parseMathExpression, getColor, replaceTokens, getActualNameWithoutTokens, getItemBasedOnThreshold, getMetricNameFromTaggedAlias, getLablesFromTaggedAlias, replace_tags_from_field, getSeriesValue, getCurrentTimeStamp, replaceDelimitedColumns, getRowName, getColName, getDisplayValueTemplate, doesValueNeedsToHide; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (lodash_1_1) { - lodash_1 = lodash_1_1; - } - ], - execute: function () { - exports_1("normalizeColor", 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.trim(); - } - }); - exports_1("parseMath", parseMath = function (valuestring) { - var returnvalue = 0; - if (valuestring.indexOf('+') > -1) { - returnvalue = +valuestring.split('+')[0] + +valuestring.split('+')[1]; - } - else if (valuestring.indexOf('-') > -1) { - returnvalue = +valuestring.split('-')[0] - +valuestring.split('-')[1]; - } - else if (valuestring.indexOf('*') > -1) { - returnvalue = +valuestring.split('*')[0] * +valuestring.split('*')[1]; - } - else if (valuestring.indexOf('/') > -1) { - returnvalue = +valuestring.split('/')[0] / +valuestring.split('/')[1]; - } - else if (valuestring.indexOf('min') > -1) { - returnvalue = lodash_1.default.min([+valuestring.split('min')[0], +valuestring.split('min')[1]]) || 0; - } - else if (valuestring.indexOf('max') > -1) { - returnvalue = lodash_1.default.max([+valuestring.split('max')[0], +valuestring.split('max')[1]]) || 0; - } - else if (valuestring.indexOf('mean') > -1) { - returnvalue = lodash_1.default.mean([+valuestring.split('avg')[0], +valuestring.split('avg')[1]]) || 0; - } - else { - returnvalue = +valuestring; - } - return Math.round(+returnvalue); - }); - exports_1("parseMathExpression", parseMathExpression = function (expression, index) { - var valuestring = expression.replace(/\_/g, '').split(',')[index]; - return +parseMath(valuestring); - }); - exports_1("getColor", getColor = function (expression, index) { - var returnValue = (expression || '').split(',').length > index ? " style=\"color:" + normalizeColor(expression.replace(/\_/g, '').split(',')[index]) + "\" " : ''; - return returnValue; - }); - exports_1("replaceTokens", replaceTokens = function (value) { - if (!value) { - return value; - } - value = value + ''; - value = value - .split(' ') - .map(function (a) { - if (a.startsWith('_fa-') && a.endsWith('_')) { - var returnvalue = ''; - var icon = a.replace(/\_/g, '').split(',')[0]; - var color = getColor(a, 1); - var repeatCount = a.split(',').length >= 3 ? parseMathExpression(a, 2) : 1; - returnvalue = (" ").repeat(repeatCount); - if (a.split(',').length >= 4) { - var maxColor = getColor(a, 3); - var maxLength = a.split(',').length >= 5 ? parseMathExpression(a, 4) : 0; - returnvalue += (" ").repeat(lodash_1.default.max([maxLength - repeatCount, 0]) || 0); - } - return returnvalue; - } - else if (a.startsWith('_img-') && a.endsWith('_')) { - a = a.slice(0, -1); - var imgUrl = a.replace('_img-', '').split(',')[0]; - var imgWidth = a.split(',').length > 1 ? a.replace('_img-', '').split(',')[1] : '20px'; - var imgHeight = a.split(',').length > 2 ? a.replace('_img-', '').split(',')[2] : '20px'; - var repeatCount = a.split(',').length > 3 ? +a.replace('_img-', '').split(',')[3] : 1; - a = ("").repeat(repeatCount); - } - return a; - }) - .join(' '); - return value; - }); - exports_1("getActualNameWithoutTokens", 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("getItemBasedOnThreshold", 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("getMetricNameFromTaggedAlias", getMetricNameFromTaggedAlias = function (target) { - target = target.trim(); - var _metricname = target; - if (target.indexOf('{') > -1 && target.indexOf('}') > -1 && target[target.length - 1] === '}') { - _metricname = target.split('{')[0].trim(); - } - else { - _metricname = target; - } - return _metricname; - }); - exports_1("getLablesFromTaggedAlias", getLablesFromTaggedAlias = function (target, label) { - var _tags = []; - target = target.trim(); - var tagsstring = target.replace(label, '').trim(); - if (tagsstring.startsWith('{') && tagsstring.endsWith('}')) { - var parsePrometheusLabels = function (labels) { - var labelsByKey = {}; - labels.replace(/\b(\w+)(!?=~?)"([^"\n]*?)"/g, function (__, key, operator, value) { - if (!operator) { - console.log(operator); - } - labelsByKey[key] = value; - return ''; - }); - return labelsByKey; - }; - lodash_1.default.each(parsePrometheusLabels(tagsstring), function (k, v) { - _tags.push({ tag: v, value: k }); - }); - if (tagsstring.indexOf(':') > -1 && _tags.length === 0) { - var label_values = tagsstring - .slice(1) - .trim() - .slice(0, -1) - .trim() || ''; - _tags = label_values - .split(',') - .map(function (item) { return (item || '').trim(); }) - .filter(function (item) { return item && item.indexOf(':') > -1; }) - .map(function (item) { - if (item.split(':').length === 2) { - var ret = {}; - ret.tag = item.split(':')[0].trim(); - ret.value = item.split(':')[1].trim(); - return ret; - } - else { - return null; - } - }) - .filter(function (item) { return item; }); - } - } - return _tags; - }); - exports_1("replace_tags_from_field", replace_tags_from_field = function (field, tags) { - if (tags && tags.length > 0) { - field = tags.reduce(function (r, it) { - return r.replace(new RegExp('{{' + it.tag.trim() + '}}', 'g'), it.value).replace(/\"/g, ''); - }, field); - } - return field; - }); - exports_1("getSeriesValue", getSeriesValue = function (series, statType) { - var value = NaN; - statType = (statType || '').toLowerCase(); - if (series) { - if (statType === 'last_time' && series.datapoints && series.datapoints.length > 0) { - if (lodash_1.default.last(series.datapoints)) { - value = lodash_1.default.last(series.datapoints)[1]; - } - } - else if (statType === 'last_time_nonnull') { - var non_null_data = series.datapoints.filter(function (s) { return s[0]; }); - if (lodash_1.default.last(non_null_data) && lodash_1.default.last(non_null_data)[1]) { - value = lodash_1.default.last(non_null_data)[1]; - } - } - else if (series.stats) { - value = series.stats[statType] || null; - } - } - return value; - }); - exports_1("getCurrentTimeStamp", getCurrentTimeStamp = function (dataPoints) { - var currentTimeStamp = new Date(); - if (dataPoints && dataPoints.length > 0 && lodash_1.default.last(dataPoints).length === 2) { - currentTimeStamp = new Date(lodash_1.default.last(dataPoints)[1]); - } - return currentTimeStamp; - }); - exports_1("replaceDelimitedColumns", replaceDelimitedColumns = function (inputstring, seriesName, delimiter, row_col_wrapper) { - var outputString = seriesName.split(delimiter || '.').reduce(function (r, it, i) { - return r.replace(new RegExp(row_col_wrapper + i + row_col_wrapper, 'g'), it); - }, inputstring); - return outputString; - }); - exports_1("getRowName", getRowName = function (row_name, delimiter, row_col_wrapper, seriesName, _metricname, _tags) { - if (delimiter.toLowerCase() === 'tag') { - row_name = row_name.replace(new RegExp('{{metric_name}}', 'g'), _metricname); - row_name = replace_tags_from_field(row_name, _tags); - } - else { - row_name = replaceDelimitedColumns(row_name, seriesName, delimiter, row_col_wrapper); - if (seriesName.split(delimiter || '.').length === 1) { - row_name = seriesName; - } - } - return row_name.replace(new RegExp('_series_', 'g'), seriesName.toString()); - }); - exports_1("getColName", getColName = function (col_name, delimiter, row_col_wrapper, seriesName, row_name, _metricname, _tags) { - if (delimiter.toLowerCase() === 'tag') { - col_name = col_name.replace(new RegExp('{{metric_name}}', 'g'), _metricname); - row_name = replace_tags_from_field(col_name, _tags); - } - else { - col_name = replaceDelimitedColumns(col_name, seriesName, delimiter, row_col_wrapper); - if (seriesName.split(delimiter || '.').length === 1 || row_name === seriesName) { - col_name = col_name || 'Value'; - } - } - return col_name.replace(new RegExp('_series_', 'g'), seriesName.toString()); - }); - exports_1("getDisplayValueTemplate", getDisplayValueTemplate = function (value, pattern, seriesName, row_col_wrapper, thresholds) { - var template = '_value_'; - if (lodash_1.default.isNaN(value) || value === null) { - template = pattern.null_value || 'No data'; - if (pattern.null_value === '') { - template = ''; - } - } - else { - template = pattern.displayTemplate || template; - if (pattern.enable_transform) { - var transform_values = pattern.transform_values.split('|'); - template = getItemBasedOnThreshold(thresholds, transform_values, value, template); - } - if (pattern.enable_transform_overrides && pattern.transform_values_overrides !== '') { - var _transform_values_overrides = pattern.transform_values_overrides - .split('|') - .filter(function (con) { return con.indexOf('->'); }) - .map(function (con) { return con.split('->'); }) - .filter(function (con) { return +con[0] === value; }) - .map(function (con) { return con[1]; }); - if (_transform_values_overrides.length > 0 && _transform_values_overrides[0] !== '') { - template = ('' + _transform_values_overrides[0]).trim(); - } - } - if (pattern.enable_transform || pattern.enable_transform_overrides) { - template = replaceDelimitedColumns(template, seriesName, pattern.delimiter, row_col_wrapper); - } - } - return template; - }); - exports_1("doesValueNeedsToHide", doesValueNeedsToHide = function (value, filter) { - var hidden = false; - if ((value || value === 0) && filter && (filter.value_below !== '' || filter.value_above !== '')) { - if (filter.value_below !== '' && value < +filter.value_below) { - hidden = true; - } - if (filter.value_above !== '' && value > +filter.value_above) { - hidden = true; - } - } - return hidden; - }); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9ib29tL0Jvb21VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztZQUdBLDRCQUFhLGNBQWMsR0FBRyxVQUFVLEtBQWE7Z0JBQ25ELElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRTtvQkFDbkMsT0FBTyx5QkFBeUIsQ0FBQztpQkFDbEM7cUJBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO29CQUMzQyxPQUFPLDBCQUEwQixDQUFDO2lCQUNuQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLEVBQUU7b0JBQ3hDLE9BQU8sd0JBQXdCLENBQUM7aUJBQ2pDO3FCQUFNO29CQUNMLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNyQjtZQUNILENBQUMsRUFBQztZQUNGLHVCQUFhLFNBQVMsR0FBRyxVQUFVLFdBQW1CO2dCQUNwRCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDakMsV0FBVyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZFO3FCQUFNLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDeEMsV0FBVyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxD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LEtBQUssRUFBRSxFQUFFOzRCQUNuRixRQUFRLEdBQUcsQ0FBQyxFQUFFLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt5QkFDekQ7cUJBQ0Y7b0JBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLDBCQUEwQixFQUFFO3dCQUNsRSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO3FCQUM5RjtpQkFDRjtnQkFDRCxPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDLEVBQUM7WUFDRixrQ0FBYSxvQkFBb0IsR0FBRyxVQUFVLEtBQWEsRUFBRSxNQUFXO2dCQUN0RSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLEVBQUU7b0JBQ2hHLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTt3QkFDNUQsTUFBTSxHQUFHLElBQUksQ0FBQztxQkFDZjtvQkFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7d0JBQzVELE1BQU0sR0FBRyxJQUFJLENBQUM7cUJBQ2Y7aUJBQ0Y7Z0JBQ0QsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgSUJvb21QYXR0ZXJuIH0gZnJvbSAnLi9Cb29tLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplQ29sb3IgPSBmdW5jdGlvbiAoY29sb3I6IHN0cmluZykge1xyXG4gIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpID09PSAnZ3JlZW4nKSB7XHJcbiAgICByZXR1cm4gJ3JnYmEoNTAsIDE3MiwgNDUsIDAuOTcpJztcclxuICB9IGVsc2UgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkgPT09ICdvcmFuZ2UnKSB7XHJcbiAgICByZXR1cm4gJ3JnYmEoMjM3LCAxMjksIDQwLCAwLjg5KSc7XHJcbiAgfSBlbHNlIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpID09PSAncmVkJykge1xyXG4gICAgcmV0dXJuICdyZ2JhKDI0NSwgNTQsIDU0LCAwLjkpJztcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGNvbG9yLnRyaW0oKTtcclxuICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCBwYXJzZU1hdGggPSBmdW5jdGlvbiAodmFsdWVzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgbGV0IHJldHVybnZhbHVlID0gMDtcclxuICBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZignKycpID4gLTEpIHtcclxuICAgIHJldHVybnZhbHVlID0gK3ZhbHVlc3RyaW5nLnNwbGl0KCcrJylbMF0gKyArdmFsdWVzdHJpbmcuc3BsaXQoJysnKVsxXTtcclxuICB9IGVsc2UgaWYgKHZhbHVlc3RyaW5nLmluZGV4T2YoJy0nKSA+IC0xKSB7XHJcbiAgICByZXR1cm52YWx1ZSA9ICt2YWx1ZXN0cmluZy5zcGxpdCgnLScpWzBdIC0gK3ZhbHVlc3RyaW5nLnNwbGl0KCctJylbMV07XHJcbiAgfSBlbHNlIGlmICh2YWx1ZXN0cmluZy5pbmRleE9mKCcqJykgPiAtMSkge1xyXG4gICAgcmV0dXJudmFsdWUgPSArdmFsdWVzdHJpbmcuc3BsaXQoJyonKVswXSAqICt2YWx1ZXN0cmluZy5zcGxpdCgnKicpWzFdO1xyXG4gIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZignLycpID4gLTEpIHtcclxuICAgIHJldHVybnZhbHVlID0gK3ZhbHVlc3RyaW5nLnNwbGl0KCcvJylbMF0gLyArdmFsdWVzdHJpbmcuc3BsaXQoJy8nKVsxXTtcclxuICB9IGVsc2UgaWYgKHZhbHVlc3RyaW5nLmluZGV4T2YoJ21pbicpID4gLTEpIHtcclxuICAgIHJldHVybnZhbHVlID0gXy5taW4oWyt2YWx1ZXN0cmluZy5zcGxpdCgnbWluJylbMF0sICt2YWx1ZXN0cmluZy5zcGxpdCgnbWluJylbMV1dKSB8fCAwO1xyXG4gIH0gZWxzZSBpZiAodmFsdWVzdHJpbmcuaW5kZXhPZignbWF4JykgPiAtMSkge1xyXG4gICAgcmV0dXJudmFsdWUgPSBfLm1heChbK3ZhbHVlc3RyaW5nLnNwbGl0KCdtYXgnKVswXSwgK3ZhbHVlc3RyaW5nLnNwbGl0KCdtYXgnKVsxXV0pIHx8IDA7XHJcbiAgfSBlbHNlIGlmICh2YWx1ZXN0cmluZy5pbmRleE9mKCdtZWFuJykgPiAtMSkge1xyXG4gICAgcmV0dXJudmFsdWUgPSBfLm1lYW4oWyt2YWx1ZXN0cmluZy5zcGxpdCgnYXZnJylbMF0sICt2YWx1ZXN0cmluZy5zcGxpdCgnYXZnJylbMV1dKSB8fCAwO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm52YWx1ZSA9ICt2YWx1ZXN0cmluZztcclxuICB9XHJcbiAgcmV0dXJuIE1hdGgucm91bmQoK3JldHVybnZhbHVlKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IHBhcnNlTWF0aEV4cHJlc3Npb24gPSBmdW5jdGlvbiAoZXhwcmVzc2lvbjogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcclxuICBsZXQgdmFsdWVzdHJpbmcgPSBleHByZXNzaW9uLnJlcGxhY2UoL1xcXy9nLCAnJykuc3BsaXQoJywnKVtpbmRleF07XHJcbiAgcmV0dXJuICtwYXJzZU1hdGgodmFsdWVzdHJpbmcpO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0Q29sb3IgPSBmdW5jdGlvbiAoZXhwcmVzc2lvbjogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgbGV0IHJldHVyblZhbHVlID1cclxuICAgIChleHByZXNzaW9uIHx8ICcnKS5zcGxpdCgnLCcpLmxlbmd0aCA+IGluZGV4ID8gYCBzdHlsZT1cImNvbG9yOiR7bm9ybWFsaXplQ29sb3IoZXhwcmVzc2lvbi5yZXBsYWNlKC9cXF8vZywgJycpLnNwbGl0KCcsJylbaW5kZXhdKX1cIiBgIDogJyc7XHJcbiAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG59O1xyXG5leHBvcnQgY29uc3QgcmVwbGFjZVRva2VucyA9IGZ1bmN0aW9uICh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgaWYgKCF2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICB2YWx1ZSA9IHZhbHVlICsgJyc7XHJcbiAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgLnNwbGl0KCcgJylcclxuICAgIC5tYXAoYSA9PiB7XHJcbiAgICAgIGlmIChhLnN0YXJ0c1dpdGgoJ19mYS0nKSAmJiBhLmVuZHNXaXRoKCdfJykpIHtcclxuICAgICAgICBsZXQgcmV0dXJudmFsdWUgPSAnJztcclxuICAgICAgICBsZXQgaWNvbiA9IGEucmVwbGFjZSgvXFxfL2csICcnKS5zcGxpdCgnLCcpWzBdO1xyXG4gICAgICAgIGxldCBjb2xvciA9IGdldENvbG9yKGEsIDEpO1xyXG4gICAgICAgIGxldCByZXBlYXRDb3VudCA9IGEuc3BsaXQoJywnKS5sZW5ndGggPj0gMyA/IHBhcnNlTWF0aEV4cHJlc3Npb24oYSwgMikgOiAxO1xyXG4gICAgICAgIHJldHVybnZhbHVlID0gYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiICR7Y29sb3J9PjwvaT4gYC5yZXBlYXQocmVwZWF0Q291bnQpO1xyXG4gICAgICAgIGlmIChhLnNwbGl0KCcsJykubGVuZ3RoID49IDQpIHtcclxuICAgICAgICAgIGxldCBtYXhDb2xvciA9IGdldENvbG9yKGEsIDMpO1xyXG4gICAgICAgICAgbGV0IG1heExlbmd0aCA9IGEuc3BsaXQoJywnKS5sZW5ndGggPj0gNSA/IHBhcnNlTWF0aEV4cHJlc3Npb24oYSwgNCkgOiAwO1xyXG4gICAgICAgICAgcmV0dXJudmFsdWUgKz0gYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiICR7bWF4Q29sb3J9PjwvaT4gYC5yZXBlYXQoXy5tYXgoW21heExlbmd0aCAtIHJlcGVhdENvdW50LCAwXSkgfHwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXR1cm52YWx1ZTtcclxuICAgICAgfSBlbHNlIGlmIChhLnN0YXJ0c1dpdGgoJ19pbWctJykgJiYgYS5lbmRzV2l0aCgnXycpKSB7XHJcbiAgICAgICAgYSA9IGEuc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgIGxldCBpbWdVcmwgPSBhLnJlcGxhY2UoJ19pbWctJywgJycpLnNwbGl0KCcsJylbMF07XHJcbiAgICAgICAgbGV0IGltZ1dpZHRoID0gYS5zcGxpdCgnLCcpLmxlbmd0aCA+IDEgPyBhLnJlcGxhY2UoJ19pbWctJywgJycpLnNwbGl0KCcsJylbMV0gOiAnMjBweCc7XHJcbiAgICAgICAgbGV0IGltZ0hlaWdodCA9IGEuc3BsaXQoJywnKS5sZW5ndGggPiAyID8gYS5yZXBsYWNlKCdfaW1nLScsICcnKS5zcGxpdCgnLCcpWzJdIDogJzIwcHgnO1xyXG4gICAgICAgIGxldCByZXBlYXRDb3VudCA9IGEuc3BsaXQoJywnKS5sZW5ndGggPiAzID8gK2EucmVwbGFjZSgnX2ltZy0nLCAnJykuc3BsaXQoJywnKVszXSA6IDE7XHJcbiAgICAgICAgYSA9IGA8aW1nIHdpZHRoPVwiJHtpbWdXaWR0aH1cIiBoZWlnaHQ9XCIke2ltZ0hlaWdodH1cIiBzcmM9XCIke2ltZ1VybH1cIi8+YC5yZXBlYXQocmVwZWF0Q291bnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhO1xyXG4gICAgfSlcclxuICAgIC5qb2luKCcgJyk7XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnMgPSBmdW5jdGlvbiAodmFsdWU6IHN0cmluZykge1xyXG4gIGlmICghdmFsdWUpIHtcclxuICAgIHJldHVybiB2YWx1ZSArICcnO1xyXG4gIH1cclxuICB2YWx1ZSA9IHZhbHVlICsgJyc7XHJcbiAgcmV0dXJuIHZhbHVlXHJcbiAgICAuc3BsaXQoJyAnKVxyXG4gICAgLm1hcChhID0+IHtcclxuICAgICAgaWYgKGEuc3RhcnRzV2l0aCgnX2ZhLScpICYmIGEuZW5kc1dpdGgoJ18nKSkge1xyXG4gICAgICAgIGEgPSBgYDtcclxuICAgICAgfSBlbHNlIGlmIChhLnN0YXJ0c1dpdGgoJ19pbWctJykgJiYgYS5lbmRzV2l0aCgnXycpKSB7XHJcbiAgICAgICAgYSA9IGBgO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhO1xyXG4gICAgfSlcclxuICAgIC5qb2luKCcgJyk7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCA9IGZ1bmN0aW9uICh0aHJlc2hvbGRzOiBhbnlbXSwgcmFuZ2VzOiBhbnksIHZhbHVlOiBudW1iZXIsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICBsZXQgYyA9IGRlZmF1bHRWYWx1ZTtcclxuICBpZiAodGhyZXNob2xkcyAmJiByYW5nZXMgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB0aHJlc2hvbGRzLmxlbmd0aCArIDEgPD0gcmFuZ2VzLmxlbmd0aCkge1xyXG4gICAgcmFuZ2VzID0gXy5kcm9wUmlnaHQocmFuZ2VzLCByYW5nZXMubGVuZ3RoIC0gdGhyZXNob2xkcy5sZW5ndGggLSAxKTtcclxuICAgIGlmIChyYW5nZXNbcmFuZ2VzLmxlbmd0aCAtIDFdID09PSAnJykge1xyXG4gICAgICByYW5nZXNbcmFuZ2VzLmxlbmd0aCAtIDFdID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IHRocmVzaG9sZHMubGVuZ3RoOyBpID4gMDsgaS0tKSB7XHJcbiAgICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGRzW2kgLSAxXSkge1xyXG4gICAgICAgIHJldHVybiByYW5nZXNbaV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBfLmZpcnN0KHJhbmdlcykgfHwgJyc7XHJcbiAgfVxyXG4gIHJldHVybiBjO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyA9IGZ1bmN0aW9uICh0YXJnZXQpOiBzdHJpbmcge1xyXG4gIHRhcmdldCA9IHRhcmdldC50cmltKCk7XHJcbiAgbGV0IF9tZXRyaWNuYW1lID0gdGFyZ2V0O1xyXG4gIGlmICh0YXJnZXQuaW5kZXhPZigneycpID4gLTEgJiYgdGFyZ2V0LmluZGV4T2YoJ30nKSA+IC0xICYmIHRhcmdldFt0YXJnZXQubGVuZ3RoIC0gMV0gPT09ICd9Jykge1xyXG4gICAgX21ldHJpY25hbWUgPSB0YXJnZXQuc3BsaXQoJ3snKVswXS50cmltKCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIF9tZXRyaWNuYW1lID0gdGFyZ2V0O1xyXG4gIH1cclxuICByZXR1cm4gX21ldHJpY25hbWU7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBnZXRMYWJsZXNGcm9tVGFnZ2VkQWxpYXMgPSBmdW5jdGlvbiAodGFyZ2V0LCBsYWJlbCk6IGFueVtdIHtcclxuICBsZXQgX3RhZ3M6IGFueVtdID0gW107XHJcbiAgdGFyZ2V0ID0gdGFyZ2V0LnRyaW0oKTtcclxuICBsZXQgdGFnc3N0cmluZyA9IHRhcmdldC5yZXBsYWNlKGxhYmVsLCAnJykudHJpbSgpO1xyXG4gIGlmICh0YWdzc3RyaW5nLnN0YXJ0c1dpdGgoJ3snKSAmJiB0YWdzc3RyaW5nLmVuZHNXaXRoKCd9JykpIHtcclxuICAgIC8vIFNuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZ3JhZmFuYS9ncmFmYW5hL2Jsb2IvM2YxNTE3MDkxNGMzMTg5ZWU3ODM1ZjBiMTlmZjUwMGRiMTEzYWY3My9wYWNrYWdlcy9ncmFmYW5hLWRhdGEvc3JjL3V0aWxzL2xhYmVscy50c1xyXG4gICAgY29uc3QgcGFyc2VQcm9tZXRoZXVzTGFiZWxzID0gZnVuY3Rpb24gKGxhYmVsczogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGxhYmVsc0J5S2V5OiBhbnkgPSB7fTtcclxuICAgICAgbGFiZWxzLnJlcGxhY2UoL1xcYihcXHcrKSghPz1+PylcIihbXlwiXFxuXSo/KVwiL2csIChfXywga2V5LCBvcGVyYXRvciwgdmFsdWUpID0+IHtcclxuICAgICAgICBpZiAoIW9wZXJhdG9yKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhvcGVyYXRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhYmVsc0J5S2V5W2tleV0gPSB2YWx1ZTtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbGFiZWxzQnlLZXk7XHJcbiAgICB9O1xyXG4gICAgXy5lYWNoKHBhcnNlUHJvbWV0aGV1c0xhYmVscyh0YWdzc3RyaW5nKSwgKGs6IHN0cmluZywgdjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIF90YWdzLnB1c2goeyB0YWc6IHYsIHZhbHVlOiBrIH0pO1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGFnc3N0cmluZy5pbmRleE9mKCc6JykgPiAtMSAmJiBfdGFncy5sZW5ndGggPT09IDApIHtcclxuICAgICAgbGV0IGxhYmVsX3ZhbHVlcyA9XHJcbiAgICAgICAgdGFnc3N0cmluZ1xyXG4gICAgICAgICAgLnNsaWNlKDEpXHJcbiAgICAgICAgICAudHJpbSgpXHJcbiAgICAgICAgICAuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgICAudHJpbSgpIHx8ICcnO1xyXG4gICAgICBfdGFncyA9IGxhYmVsX3ZhbHVlc1xyXG4gICAgICAgIC5zcGxpdCgnLCcpXHJcbiAgICAgICAgLm1hcChpdGVtID0+IChpdGVtIHx8ICcnKS50cmltKCkpXHJcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0gJiYgaXRlbS5pbmRleE9mKCc6JykgPiAtMSlcclxuICAgICAgICAubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uc3BsaXQoJzonKS5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgbGV0IHJldDogYW55ID0ge307XHJcbiAgICAgICAgICAgIHJldC50YWcgPSBpdGVtLnNwbGl0KCc6JylbMF0udHJpbSgpO1xyXG4gICAgICAgICAgICByZXQudmFsdWUgPSBpdGVtLnNwbGl0KCc6JylbMV0udHJpbSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBfdGFncztcclxufTtcclxuZXhwb3J0IGNvbnN0IHJlcGxhY2VfdGFnc19mcm9tX2ZpZWxkID0gZnVuY3Rpb24gKGZpZWxkOiBzdHJpbmcsIHRhZ3M6IGFueVtdKTogc3RyaW5nIHtcclxuICBpZiAodGFncyAmJiB0YWdzLmxlbmd0aCA+IDApIHtcclxuICAgIGZpZWxkID0gdGFncy5yZWR1Y2UoKHIsIGl0KSA9PiB7XHJcbiAgICAgIHJldHVybiByLnJlcGxhY2UobmV3IFJlZ0V4cCgne3snICsgaXQudGFnLnRyaW0oKSArICd9fScsICdnJyksIGl0LnZhbHVlKS5yZXBsYWNlKC9cXFwiL2csICcnKTtcclxuICAgIH0sIGZpZWxkKTtcclxuICB9XHJcbiAgcmV0dXJuIGZpZWxkO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0U2VyaWVzVmFsdWUgPSBmdW5jdGlvbiAoc2VyaWVzOiBhbnksIHN0YXRUeXBlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gIGxldCB2YWx1ZSA9IE5hTjtcclxuICBzdGF0VHlwZSA9IChzdGF0VHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICBpZiAoc2VyaWVzKSB7XHJcbiAgICBpZiAoc3RhdFR5cGUgPT09ICdsYXN0X3RpbWUnICYmIHNlcmllcy5kYXRhcG9pbnRzICYmIHNlcmllcy5kYXRhcG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKF8ubGFzdChzZXJpZXMuZGF0YXBvaW50cykpIHtcclxuICAgICAgICB2YWx1ZSA9IF8ubGFzdChzZXJpZXMuZGF0YXBvaW50cylbMV07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoc3RhdFR5cGUgPT09ICdsYXN0X3RpbWVfbm9ubnVsbCcpIHtcclxuICAgICAgbGV0IG5vbl9udWxsX2RhdGEgPSBzZXJpZXMuZGF0YXBvaW50cy5maWx0ZXIocyA9PiBzWzBdKTtcclxuICAgICAgaWYgKF8ubGFzdChub25fbnVsbF9kYXRhKSAmJiBfLmxhc3Qobm9uX251bGxfZGF0YSlbMV0pIHtcclxuICAgICAgICB2YWx1ZSA9IF8ubGFzdChub25fbnVsbF9kYXRhKVsxXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzZXJpZXMuc3RhdHMpIHtcclxuICAgICAgdmFsdWUgPSBzZXJpZXMuc3RhdHNbc3RhdFR5cGVdIHx8IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRUaW1lU3RhbXAgPSBmdW5jdGlvbiAoZGF0YVBvaW50czogYW55W10pOiBEYXRlIHtcclxuICBsZXQgY3VycmVudFRpbWVTdGFtcCA9IG5ldyBEYXRlKCk7XHJcbiAgaWYgKGRhdGFQb2ludHMgJiYgZGF0YVBvaW50cy5sZW5ndGggPiAwICYmIF8ubGFzdChkYXRhUG9pbnRzKS5sZW5ndGggPT09IDIpIHtcclxuICAgIGN1cnJlbnRUaW1lU3RhbXAgPSBuZXcgRGF0ZShfLmxhc3QoZGF0YVBvaW50cylbMV0pO1xyXG4gIH1cclxuICByZXR1cm4gY3VycmVudFRpbWVTdGFtcDtcclxufTtcclxuZXhwb3J0IGNvbnN0IHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zID0gZnVuY3Rpb24gKGlucHV0c3RyaW5nOiBzdHJpbmcsIHNlcmllc05hbWU6IHN0cmluZywgZGVsaW1pdGVyOiBzdHJpbmcsIHJvd19jb2xfd3JhcHBlcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBsZXQgb3V0cHV0U3RyaW5nID0gc2VyaWVzTmFtZS5zcGxpdChkZWxpbWl0ZXIgfHwgJy4nKS5yZWR1Y2UoKHIsIGl0LCBpKSA9PiB7XHJcbiAgICByZXR1cm4gci5yZXBsYWNlKG5ldyBSZWdFeHAocm93X2NvbF93cmFwcGVyICsgaSArIHJvd19jb2xfd3JhcHBlciwgJ2cnKSwgaXQpO1xyXG4gIH0sIGlucHV0c3RyaW5nKTtcclxuICByZXR1cm4gb3V0cHV0U3RyaW5nO1xyXG59O1xyXG5leHBvcnQgY29uc3QgZ2V0Um93TmFtZSA9IGZ1bmN0aW9uIChcclxuICByb3dfbmFtZTogc3RyaW5nLFxyXG4gIGRlbGltaXRlcjogc3RyaW5nLFxyXG4gIHJvd19jb2xfd3JhcHBlcjogc3RyaW5nLFxyXG4gIHNlcmllc05hbWU6IHN0cmluZyxcclxuICBfbWV0cmljbmFtZTogc3RyaW5nLFxyXG4gIF90YWdzOiBhbnlbXVxyXG4pOiBzdHJpbmcge1xyXG4gIGlmIChkZWxpbWl0ZXIudG9Mb3dlckNhc2UoKSA9PT0gJ3RhZycpIHtcclxuICAgIHJvd19uYW1lID0gcm93X25hbWUucmVwbGFjZShuZXcgUmVnRXhwKCd7e21ldHJpY19uYW1lfX0nLCAnZycpLCBfbWV0cmljbmFtZSk7XHJcbiAgICByb3dfbmFtZSA9IHJlcGxhY2VfdGFnc19mcm9tX2ZpZWxkKHJvd19uYW1lLCBfdGFncyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJvd19uYW1lID0gcmVwbGFjZURlbGltaXRlZENvbHVtbnMocm93X25hbWUsIHNlcmllc05hbWUsIGRlbGltaXRlciwgcm93X2NvbF93cmFwcGVyKTtcclxuICAgIGlmIChzZXJpZXNOYW1lLnNwbGl0KGRlbGltaXRlciB8fCAnLicpLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICByb3dfbmFtZSA9IHNlcmllc05hbWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByb3dfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ19zZXJpZXNfJywgJ2cnKSwgc2VyaWVzTmFtZS50b1N0cmluZygpKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGdldENvbE5hbWUgPSBmdW5jdGlvbiAoXHJcbiAgY29sX25hbWU6IHN0cmluZyxcclxuICBkZWxpbWl0ZXI6IHN0cmluZyxcclxuICByb3dfY29sX3dyYXBwZXI6IHN0cmluZyxcclxuICBzZXJpZXNOYW1lOiBzdHJpbmcsXHJcbiAgcm93X25hbWU6IHN0cmluZyxcclxuICBfbWV0cmljbmFtZTogc3RyaW5nLFxyXG4gIF90YWdzOiBhbnlbXVxyXG4pOiBzdHJpbmcge1xyXG4gIGlmIChkZWxpbWl0ZXIudG9Mb3dlckNhc2UoKSA9PT0gJ3RhZycpIHtcclxuICAgIGNvbF9uYW1lID0gY29sX25hbWUucmVwbGFjZShuZXcgUmVnRXhwKCd7e21ldHJpY19uYW1lfX0nLCAnZycpLCBfbWV0cmljbmFtZSk7XHJcbiAgICByb3dfbmFtZSA9IHJlcGxhY2VfdGFnc19mcm9tX2ZpZWxkKGNvbF9uYW1lLCBfdGFncyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbF9uYW1lID0gcmVwbGFjZURlbGltaXRlZENvbHVtbnMoY29sX25hbWUsIHNlcmllc05hbWUsIGRlbGltaXRlciwgcm93X2NvbF93cmFwcGVyKTtcclxuICAgIGlmIChzZXJpZXNOYW1lLnNwbGl0KGRlbGltaXRlciB8fCAnLicpLmxlbmd0aCA9PT0gMSB8fCByb3dfbmFtZSA9PT0gc2VyaWVzTmFtZSkge1xyXG4gICAgICBjb2xfbmFtZSA9IGNvbF9uYW1lIHx8ICdWYWx1ZSc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjb2xfbmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ19zZXJpZXNfJywgJ2cnKSwgc2VyaWVzTmFtZS50b1N0cmluZygpKTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGdldERpc3BsYXlWYWx1ZVRlbXBsYXRlID0gZnVuY3Rpb24gKFxyXG4gIHZhbHVlOiBudW1iZXIsXHJcbiAgcGF0dGVybjogSUJvb21QYXR0ZXJuLFxyXG4gIHNlcmllc05hbWU6IHN0cmluZyxcclxuICByb3dfY29sX3dyYXBwZXI6IHN0cmluZyxcclxuICB0aHJlc2hvbGRzOiBhbnlbXVxyXG4pOiBzdHJpbmcge1xyXG4gIGxldCB0ZW1wbGF0ZSA9ICdfdmFsdWVfJztcclxuICBpZiAoXy5pc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwpIHtcclxuICAgIHRlbXBsYXRlID0gcGF0dGVybi5udWxsX3ZhbHVlIHx8ICdObyBkYXRhJztcclxuICAgIGlmIChwYXR0ZXJuLm51bGxfdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRlbXBsYXRlID0gJyc7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHRlbXBsYXRlID0gcGF0dGVybi5kaXNwbGF5VGVtcGxhdGUgfHwgdGVtcGxhdGU7XHJcbiAgICBpZiAocGF0dGVybi5lbmFibGVfdHJhbnNmb3JtKSB7XHJcbiAgICAgIGxldCB0cmFuc2Zvcm1fdmFsdWVzID0gcGF0dGVybi50cmFuc2Zvcm1fdmFsdWVzLnNwbGl0KCd8Jyk7XHJcbiAgICAgIHRlbXBsYXRlID0gZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQodGhyZXNob2xkcywgdHJhbnNmb3JtX3ZhbHVlcywgdmFsdWUsIHRlbXBsYXRlKTtcclxuICAgIH1cclxuICAgIGlmIChwYXR0ZXJuLmVuYWJsZV90cmFuc2Zvcm1fb3ZlcnJpZGVzICYmIHBhdHRlcm4udHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMgIT09ICcnKSB7XHJcbiAgICAgIGxldCBfdHJhbnNmb3JtX3ZhbHVlc19vdmVycmlkZXMgPSBwYXR0ZXJuLnRyYW5zZm9ybV92YWx1ZXNfb3ZlcnJpZGVzXHJcbiAgICAgICAgLnNwbGl0KCd8JylcclxuICAgICAgICAuZmlsdGVyKGNvbiA9PiBjb24uaW5kZXhPZignLT4nKSlcclxuICAgICAgICAubWFwKGNvbiA9PiBjb24uc3BsaXQoJy0+JykpXHJcbiAgICAgICAgLmZpbHRlcihjb24gPT4gK2NvblswXSA9PT0gdmFsdWUpXHJcbiAgICAgICAgLm1hcChjb24gPT4gY29uWzFdKTtcclxuICAgICAgaWYgKF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlcy5sZW5ndGggPiAwICYmIF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlc1swXSAhPT0gJycpIHtcclxuICAgICAgICB0ZW1wbGF0ZSA9ICgnJyArIF90cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlc1swXSkudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocGF0dGVybi5lbmFibGVfdHJhbnNmb3JtIHx8IHBhdHRlcm4uZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXMpIHtcclxuICAgICAgdGVtcGxhdGUgPSByZXBsYWNlRGVsaW1pdGVkQ29sdW1ucyh0ZW1wbGF0ZSwgc2VyaWVzTmFtZSwgcGF0dGVybi5kZWxpbWl0ZXIsIHJvd19jb2xfd3JhcHBlcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wbGF0ZTtcclxufTtcclxuZXhwb3J0IGNvbnN0IGRvZXNWYWx1ZU5lZWRzVG9IaWRlID0gZnVuY3Rpb24gKHZhbHVlOiBudW1iZXIsIGZpbHRlcjogYW55KTogYm9vbGVhbiB7XHJcbiAgbGV0IGhpZGRlbiA9IGZhbHNlO1xyXG4gIGlmICgodmFsdWUgfHwgdmFsdWUgPT09IDApICYmIGZpbHRlciAmJiAoZmlsdGVyLnZhbHVlX2JlbG93ICE9PSAnJyB8fCBmaWx0ZXIudmFsdWVfYWJvdmUgIT09ICcnKSkge1xyXG4gICAgaWYgKGZpbHRlci52YWx1ZV9iZWxvdyAhPT0gJycgJiYgdmFsdWUgPCArZmlsdGVyLnZhbHVlX2JlbG93KSB7XHJcbiAgICAgIGhpZGRlbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZmlsdGVyLnZhbHVlX2Fib3ZlICE9PSAnJyAmJiB2YWx1ZSA+ICtmaWx0ZXIudmFsdWVfYWJvdmUpIHtcclxuICAgICAgaGlkZGVuID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGhpZGRlbjtcclxufTtcclxuIl19 \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/boom/index.js b/panels/yesoreyeram-boomtable-panel/app/boom/index.js deleted file mode 100644 index 535e6f3589..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/boom/index.js +++ /dev/null @@ -1,45 +0,0 @@ -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"], - "getItemBasedOnThreshold": BoomUtils_1_1["getItemBasedOnThreshold"], - "getMetricNameFromTaggedAlias": BoomUtils_1_1["getMetricNameFromTaggedAlias"], - "getLablesFromTaggedAlias": BoomUtils_1_1["getLablesFromTaggedAlias"], - "replace_tags_from_field": BoomUtils_1_1["replace_tags_from_field"], - "parseMath": BoomUtils_1_1["parseMath"], - "parseMathExpression": BoomUtils_1_1["parseMathExpression"], - "getColor": BoomUtils_1_1["getColor"] - }); - }, - 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2Jvb20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElCb29tUGF0dGVybiwgSUJvb21TZXJpZXMsIElCb29tVGltZUJhc2VkVGhyZXNob2xkLCBJQm9vbVJlbmRlcmluZ09wdGlvbnMsIElCb29tVGFibGUsIElCb29tSFRNTCwgSUJvb21DZWxsRGV0YWlscywgSUJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyB9IGZyb20gXCIuL0Jvb20uaW50ZXJmYWNlXCI7XG5leHBvcnQgeyBub3JtYWxpemVDb2xvciwgcmVwbGFjZVRva2VucywgZ2V0QWN0dWFsTmFtZVdpdGhvdXRUb2tlbnMsIGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkLCBnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzLCBnZXRMYWJsZXNGcm9tVGFnZ2VkQWxpYXMsIHJlcGxhY2VfdGFnc19mcm9tX2ZpZWxkLCBwYXJzZU1hdGgsIHBhcnNlTWF0aEV4cHJlc3Npb24sIGdldENvbG9yIH0gZnJvbSBcIi4vQm9vbVV0aWxzXCI7XG5leHBvcnQgeyBCb29tVGltZUJhc2VkVGhyZXNob2xkIH0gZnJvbSBcIi4vQm9vbVRpbWVCYXNlZFRocmVzaG9sZFwiO1xuZXhwb3J0IHsgQm9vbVBhdHRlcm4gfSBmcm9tIFwiLi9Cb29tUGF0dGVyblwiO1xuZXhwb3J0IHsgQm9vbVNlcmllcyB9IGZyb20gXCIuL0Jvb21TZXJpZXNcIjtcbmV4cG9ydCB7IEJvb21PdXRwdXQgfSBmcm9tIFwiLi9Cb29tT3V0cHV0XCI7XG4iXX0= \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/app/config.js b/panels/yesoreyeram-boomtable-panel/app/config.js deleted file mode 100644 index ecbbfc3d8b..0000000000 --- a/panels/yesoreyeram-boomtable-panel/app/config.js +++ /dev/null @@ -1,78 +0,0 @@ -System.register([], function (exports_1, context_1) { - "use strict"; - var plugin_id, value_name_options, textAlignmentOptions, config, default_pattern_options; - 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: 'Time of last data point', value: 'last_time' }, - { text: 'Time of last non null data point', value: 'last_time_nonnull' }, - { 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); - default_pattern_options = { - bgColors: 'green|orange|red', - bgColors_overrides: '0->green|2->red|1->yellow', - clickable_cells_link: '', - col_name: 'Value', - decimals: 2, - defaultBGColor: 'transparent', - defaultTextColor: '', - delimiter: '.', - displayTemplate: '_value_', - enable_bgColor: false, - enable_bgColor_overrides: false, - enable_clickable_cells: false, - enable_textColor: false, - enable_textColor_overrides: false, - enable_time_based_thresholds: false, - enable_transform: false, - enable_transform_overrides: false, - filter: { - value_above: '', - value_below: '', - }, - format: 'none', - name: 'Default Pattern', - null_color: 'darkred', - null_textcolor: 'white', - null_value: 'No data', - pattern: '*', - row_name: '_series_', - textColors: 'red|orange|green', - textColors_overrides: '0->red|2->green|1->yellow', - thresholds: '70,90', - time_based_thresholds: [], - tooltipTemplate: '', - transform_values: '_value_|_value_|_value_', - transform_values_overrides: '0->down|1->up', - valueName: 'avg', - }; - exports_1("default_pattern_options", default_pattern_options); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztZQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQzs7WUFDMUMsa0JBQWtCLEdBQUc7Z0JBQ3pCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM3QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDN0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ2pDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUNyQyxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQUN2RCxFQUFFLElBQUksRUFBRSxrQ0FBa0MsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQ3hFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQ2xDLENBQUM7O1lBQ0ksb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDOztZQUNuRCxNQUFNLEdBQVE7Z0JBQ2xCLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixhQUFhLEVBQUU7b0JBQ2Isa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO29CQUN0QixzQkFBc0IsRUFBRSxRQUFRO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsR0FBRztpQkFDckI7YUFDRixDQUFDOztZQUNJLHVCQUF1QixHQUFRO2dCQUNuQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixrQkFBa0IsRUFBRSwyQkFBMkI7Z0JBQy9DLG9CQUFvQixFQUFFLEVBQUU7Z0JBQ3hCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxjQUFjLEVBQUUsYUFBYTtnQkFDN0IsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLGNBQWMsRUFBRSxLQUFLO2dCQUNyQix3QkFBd0IsRUFBRSxLQUFLO2dCQUMvQixzQkFBc0IsRUFBRSxLQUFLO2dCQUM3QixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QiwwQkFBMEIsRUFBRSxLQUFLO2dCQUNqQyw0QkFBNEIsRUFBRSxLQUFLO2dCQUNuQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QiwwQkFBMEIsRUFBRSxLQUFLO2dCQUNqQyxNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLEVBQUU7b0JBQ2YsV0FBVyxFQUFFLEVBQUU7aUJBQ2hCO2dCQUNELE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixjQUFjLEVBQUUsT0FBTztnQkFDdkIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLE9BQU8sRUFBRSxHQUFHO2dCQUNaLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixVQUFVLEVBQUUsa0JBQWtCO2dCQUM5QixvQkFBb0IsRUFBRSwyQkFBMkI7Z0JBQ2pELFVBQVUsRUFBRSxPQUFPO2dCQUNuQixxQkFBcUIsRUFBRSxFQUFFO2dCQUN6QixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsZ0JBQWdCLEVBQUUseUJBQXlCO2dCQUMzQywwQkFBMEIsRUFBRSxlQUFlO2dCQUMzQyxTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGx1Z2luX2lkID0gJ3llc29yZXllcmFtLWJvb210YWJsZS1wYW5lbCc7XHJcbmNvbnN0IHZhbHVlX25hbWVfb3B0aW9ucyA9IFtcclxuICB7IHRleHQ6ICdNaW4nLCB2YWx1ZTogJ21pbicgfSxcclxuICB7IHRleHQ6ICdNYXgnLCB2YWx1ZTogJ21heCcgfSxcclxuICB7IHRleHQ6ICdBdmVyYWdlJywgdmFsdWU6ICdhdmcnIH0sXHJcbiAgeyB0ZXh0OiAnQ3VycmVudCcsIHZhbHVlOiAnY3VycmVudCcgfSxcclxuICB7IHRleHQ6ICdUaW1lIG9mIGxhc3QgZGF0YSBwb2ludCcsIHZhbHVlOiAnbGFzdF90aW1lJyB9LFxyXG4gIHsgdGV4dDogJ1RpbWUgb2YgbGFzdCBub24gbnVsbCBkYXRhIHBvaW50JywgdmFsdWU6ICdsYXN0X3RpbWVfbm9ubnVsbCcgfSxcclxuICB7IHRleHQ6ICdUb3RhbCcsIHZhbHVlOiAndG90YWwnIH0sXHJcbl07XHJcbmNvbnN0IHRleHRBbGlnbm1lbnRPcHRpb25zID0gWydsZWZ0JywgJ3JpZ2h0JywgJ2NlbnRlciddO1xyXG5jb25zdCBjb25maWc6IGFueSA9IHtcclxuICBkZWJ1Z19tb2RlOiBmYWxzZSxcclxuICBlcnJvcjogdW5kZWZpbmVkLFxyXG4gIGdyb3VwZWREYXRhOiB1bmRlZmluZWQsXHJcbiAgaGlkZV9maXJzdF9jb2x1bW46IGZhbHNlLFxyXG4gIGhpZGVfaGVhZGVyczogZmFsc2UsXHJcbiAgcGFuZWxEZWZhdWx0czoge1xyXG4gICAgYWN0aXZlUGF0dGVybkluZGV4OiAtMSxcclxuICAgIGRlZmF1bHRfdGl0bGVfZm9yX3Jvd3M6ICdNZXRyaWMnLFxyXG4gICAgcGF0dGVybnM6IFtdLFxyXG4gICAgcm93X2NvbF93cmFwcGVyOiAnXycsXHJcbiAgfSxcclxufTtcclxuY29uc3QgZGVmYXVsdF9wYXR0ZXJuX29wdGlvbnM6IGFueSA9IHtcclxuICBiZ0NvbG9yczogJ2dyZWVufG9yYW5nZXxyZWQnLFxyXG4gIGJnQ29sb3JzX292ZXJyaWRlczogJzAtPmdyZWVufDItPnJlZHwxLT55ZWxsb3cnLFxyXG4gIGNsaWNrYWJsZV9jZWxsc19saW5rOiAnJyxcclxuICBjb2xfbmFtZTogJ1ZhbHVlJyxcclxuICBkZWNpbWFsczogMixcclxuICBkZWZhdWx0QkdDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuICBkZWZhdWx0VGV4dENvbG9yOiAnJyxcclxuICBkZWxpbWl0ZXI6ICcuJyxcclxuICBkaXNwbGF5VGVtcGxhdGU6ICdfdmFsdWVfJyxcclxuICBlbmFibGVfYmdDb2xvcjogZmFsc2UsXHJcbiAgZW5hYmxlX2JnQ29sb3Jfb3ZlcnJpZGVzOiBmYWxzZSxcclxuICBlbmFibGVfY2xpY2thYmxlX2NlbGxzOiBmYWxzZSxcclxuICBlbmFibGVfdGV4dENvbG9yOiBmYWxzZSxcclxuICBlbmFibGVfdGV4dENvbG9yX292ZXJyaWRlczogZmFsc2UsXHJcbiAgZW5hYmxlX3RpbWVfYmFzZWRfdGhyZXNob2xkczogZmFsc2UsXHJcbiAgZW5hYmxlX3RyYW5zZm9ybTogZmFsc2UsXHJcbiAgZW5hYmxlX3RyYW5zZm9ybV9vdmVycmlkZXM6IGZhbHNlLFxyXG4gIGZpbHRlcjoge1xyXG4gICAgdmFsdWVfYWJvdmU6ICcnLFxyXG4gICAgdmFsdWVfYmVsb3c6ICcnLFxyXG4gIH0sXHJcbiAgZm9ybWF0OiAnbm9uZScsXHJcbiAgbmFtZTogJ0RlZmF1bHQgUGF0dGVybicsXHJcbiAgbnVsbF9jb2xvcjogJ2RhcmtyZWQnLFxyXG4gIG51bGxfdGV4dGNvbG9yOiAnd2hpdGUnLFxyXG4gIG51bGxfdmFsdWU6ICdObyBkYXRhJyxcclxuICBwYXR0ZXJuOiAnKicsXHJcbiAgcm93X25hbWU6ICdfc2VyaWVzXycsXHJcbiAgdGV4dENvbG9yczogJ3JlZHxvcmFuZ2V8Z3JlZW4nLFxyXG4gIHRleHRDb2xvcnNfb3ZlcnJpZGVzOiAnMC0+cmVkfDItPmdyZWVufDEtPnllbGxvdycsXHJcbiAgdGhyZXNob2xkczogJzcwLDkwJyxcclxuICB0aW1lX2Jhc2VkX3RocmVzaG9sZHM6IFtdLFxyXG4gIHRvb2x0aXBUZW1wbGF0ZTogJycsXHJcbiAgdHJhbnNmb3JtX3ZhbHVlczogJ192YWx1ZV98X3ZhbHVlX3xfdmFsdWVfJyxcclxuICB0cmFuc2Zvcm1fdmFsdWVzX292ZXJyaWRlczogJzAtPmRvd258MS0+dXAnLFxyXG4gIHZhbHVlTmFtZTogJ2F2ZycsXHJcbn07XHJcbmV4cG9ydCB7IHBsdWdpbl9pZCwgZGVmYXVsdF9wYXR0ZXJuX29wdGlvbnMsIHZhbHVlX25hbWVfb3B0aW9ucywgdGV4dEFsaWdubWVudE9wdGlvbnMsIGNvbmZpZyB9O1xyXG4iXX0= \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/css/default.dark.css b/panels/yesoreyeram-boomtable-panel/css/default.dark.css deleted file mode 100644 index 25330c6365..0000000000 --- a/panels/yesoreyeram-boomtable-panel/css/default.dark.css +++ /dev/null @@ -1,45 +0,0 @@ -.boom-table .mini-split { - margin-right: 10px; } - -.boom-table .split { - margin-right: 20px; } - -.boom-table .boom-btn { - padding: 10px; - margin-right: 10px; - min-width: 200px; - text-transform: lowercase; } - -.boom-table h6.text-header { - padding: 0 0 10px 0; - font-weight: bolder; } - .boom-table h6.text-header i { - font-weight: 100; } - -.boom-table .debug { - margin-top: 30px; } - -.boom-table .boom-label { - padding-left: 10px; } - -.boom-table .debug table tr { - border: 2px solid red; } - -.boom-table .inline-form-control { - display: inline-block; - margin: 10px 20px 10px 0px; - padding: 5px; } - -.boom-table .btn-small { - margin-left: 20px; } - -.boom-table .btn-small .fa { - margin-right: 5px; } - -.boom-table h6.text-header { - color: cadetblue; } - .boom-table h6.text-header i { - color: darkcyan; } - -.boom-table .sortarrows { - color: darkcyan; } diff --git a/panels/yesoreyeram-boomtable-panel/css/default.light.css b/panels/yesoreyeram-boomtable-panel/css/default.light.css deleted file mode 100644 index 862cae406a..0000000000 --- a/panels/yesoreyeram-boomtable-panel/css/default.light.css +++ /dev/null @@ -1,45 +0,0 @@ -.boom-table .mini-split { - margin-right: 10px; } - -.boom-table .split { - margin-right: 20px; } - -.boom-table .boom-btn { - padding: 10px; - margin-right: 10px; - min-width: 200px; - text-transform: lowercase; } - -.boom-table h6.text-header { - padding: 0 0 10px 0; - font-weight: bolder; } - .boom-table h6.text-header i { - font-weight: 100; } - -.boom-table .debug { - margin-top: 30px; } - -.boom-table .boom-label { - padding-left: 10px; } - -.boom-table .debug table tr { - border: 2px solid red; } - -.boom-table .inline-form-control { - display: inline-block; - margin: 10px 20px 10px 0px; - padding: 5px; } - -.boom-table .btn-small { - margin-left: 20px; } - -.boom-table .btn-small .fa { - margin-right: 5px; } - -.boom-table h6.text-header { - color: darkmagenta; } - .boom-table h6.text-header i { - color: darksalmon; } - -.boom-table .sortarrows { - color: darksalmon; } diff --git a/panels/yesoreyeram-boomtable-panel/module.js b/panels/yesoreyeram-boomtable-panel/module.js deleted file mode 100644 index aa87c1e853..0000000000 --- a/panels/yesoreyeram-boomtable-panel/module.js +++ /dev/null @@ -1,195 +0,0 @@ -System.register(["lodash", "app/core/utils/kbn", "app/plugins/sdk", "./app/boom/index", "./app/app", "./app/config"], 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, app_1, config_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 (app_1_1) { - app_1 = app_1_1; - }, - function (config_1_1) { - config_1 = config_1_1; - } - ], - execute: function () { - sdk_1.loadPluginCss({ - dark: "plugins/" + config_1.plugin_id + "/css/default.dark.css", - light: "plugins/" + config_1.plugin_id + "/css/default.light.css", - }); - GrafanaBoomTableCtrl = (function (_super) { - __extends(GrafanaBoomTableCtrl, _super); - function GrafanaBoomTableCtrl($scope, $injector, $sce) { - var _this = _super.call(this, $scope, $injector) || this; - _this.unitFormats = kbn_1.default.getUnitFormats(); - _this.valueNameOptions = config_1.value_name_options; - _this.textAlignmentOptions = config_1.textAlignmentOptions; - lodash_1.default.defaults(_this.panel, config_1.config.panelDefaults); - _this.panel.defaultPattern = _this.panel.defaultPattern || app_1.defaultPattern; - _this.$sce = $sce; - _this.templateSrv = $injector.get('templateSrv'); - _this.timeSrv = $injector.get('timeSrv'); - _this.updatePrototypes(); - _this.events.on('data-received', _this.onDataReceived.bind(_this)); - _this.events.on('data-snapshot-load', _this.onDataReceived.bind(_this)); - _this.events.on('init-edit-mode', _this.onInitEditMode.bind(_this)); - _this.panel.activePatternIndex = _this.panel.activePatternIndex === -1 ? _this.panel.patterns.length : _this.panel.activePatternIndex; - return _this; - } - GrafanaBoomTableCtrl.prototype.updatePrototypes = function () { - Object.setPrototypeOf(this.panel.defaultPattern, index_1.BoomPattern.prototype); - this.panel.patterns.map(function (pattern) { - Object.setPrototypeOf(pattern, index_1.BoomPattern.prototype); - return pattern; - }); - }; - GrafanaBoomTableCtrl.prototype.onDataReceived = function (data) { - this.dataReceived = data; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.onInitEditMode = function () { - this.addEditorTab('Patterns', "public/plugins/" + config_1.plugin_id + "/partials/editor.html", 2); - }; - GrafanaBoomTableCtrl.prototype.addPattern = function () { - var newPattern = new index_1.BoomPattern({ - row_col_wrapper: this.panel.row_col_wrapper, - }); - this.panel.patterns.push(newPattern); - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : this.panel.patterns.length - 1; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.removePattern = function (index) { - this.panel.patterns.splice(index, 1); - this.panel.activePatternIndex = - this.panel.activePatternIndex === -2 ? -2 : this.panel.patterns && this.panel.patterns.length > 0 ? this.panel.patterns.length - 1 : -1; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.movePattern = function (direction, index) { - var tempElement = this.panel.patterns[Number(index)]; - if (direction === 'UP') { - this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) - 1]; - this.panel.patterns[Number(index) - 1] = tempElement; - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) - 1; - } - if (direction === 'DOWN') { - this.panel.patterns[Number(index)] = this.panel.patterns[Number(index) + 1]; - this.panel.patterns[Number(index) + 1] = tempElement; - this.panel.activePatternIndex = this.panel.activePatternIndex === -2 ? -2 : Number(index) + 1; - } - this.render(); - }; - GrafanaBoomTableCtrl.prototype.clonePattern = function (index) { - var copiedPattern = Object.assign({}, this.panel.patterns[Number(index)]); - Object.setPrototypeOf(copiedPattern, index_1.BoomPattern.prototype); - this.panel.patterns.push(copiedPattern); - this.render(); - }; - GrafanaBoomTableCtrl.prototype.sortByHeader = function (headerIndex) { - this.panel.sorting_props = this.panel.sorting_props || { - col_index: -1, - direction: 'desc', - }; - this.panel.sorting_props.col_index = headerIndex; - this.panel.sorting_props.direction = this.panel.sorting_props.direction === 'asc' ? 'desc' : 'asc'; - this.render(); - }; - GrafanaBoomTableCtrl.prototype.limitText = function (text, maxlength) { - if (text.split('').length > maxlength) { - text = text.substring(0, Number(maxlength) - 3) + '...'; - } - return text; - }; - GrafanaBoomTableCtrl.prototype.adjustScrollBar = function () { - var rootElem = this.elem.find('.table-panel-scroll'); - var originalHeight = this.ctrl.height; - if (isNaN(originalHeight)) { - if (this.ctrl && this.ctrl.elem && this.ctrl.elem[0] && this.ctrl.elem[0].clientHeight) { - originalHeight = this.ctrl.elem[0].clientHeight; - } - } - var maxheightofpanel = this.panel.debug_mode ? originalHeight - 111 : originalHeight - 31; - rootElem.css({ 'max-height': maxheightofpanel + 'px' }); - }; - GrafanaBoomTableCtrl.prototype.link = function (scope, elem, attrs, ctrl) { - this.scope = scope; - this.elem = elem; - this.attrs = attrs; - this.ctrl = ctrl; - this.panel = ctrl.panel; - this.panel.sorting_props = this.panel.sorting_props || { - col_index: -1, - direction: 'desc', - }; - }; - GrafanaBoomTableCtrl.templateUrl = 'partials/module.html'; - return GrafanaBoomTableCtrl; - }(sdk_1.MetricsPanelCtrl)); - exports_1("PanelCtrl", GrafanaBoomTableCtrl); - GrafanaBoomTableCtrl.prototype.render = function () { - var _this = this; - if (this.dataReceived) { - var outputdata = this.dataReceived.map(function (seriesData) { - var seriesOptions = { - debug_mode: _this.panel.debug_mode, - row_col_wrapper: _this.panel.row_col_wrapper || '_', - }; - return new index_1.BoomSeries(seriesData, _this.panel.defaultPattern, _this.panel.patterns, seriesOptions, _this.panel.scopedVars, _this.templateSrv, _this.timeSrv); - }); - var boomTableTransformationOptions = { - non_matching_cells_color_bg: this.panel.non_matching_cells_color_bg, - non_matching_cells_color_text: this.panel.non_matching_cells_color_text, - non_matching_cells_text: this.panel.non_matching_cells_text, - }; - var boomtabledata = app_1.seriesToTable(outputdata, boomTableTransformationOptions); - var renderingOptions = { - default_title_for_rows: this.panel.default_title_for_rows || config_1.config.default_title_for_rows, - first_column_link: this.panel.first_column_link || '#', - hide_first_column: this.panel.hide_first_column, - hide_headers: this.panel.hide_headers, - text_alignment_firstcolumn: this.panel.text_alignment_firstcolumn, - text_alignment_values: this.panel.text_alignment_values, - }; - var boom_output = new index_1.BoomOutput(renderingOptions); - this.outdata = { - cols_found: boomtabledata.cols_found.map(function (col) { - return _this.$sce.trustAsHtml(col); - }), - }; - var renderingdata = boom_output.getDataAsHTML(boomtabledata, this.panel.sorting_props); - this.elem.find('#boomtable_output_body').html("" + renderingdata.body); - this.elem.find('#boomtable_output_body_debug').html(this.panel.debug_mode ? boom_output.getDataAsDebugHTML(outputdata) : ""); - this.elem.find("[data-toggle='tooltip']").tooltip({ - boundary: 'scrollParent', - }); - this.adjustScrollBar(); - this.renderingCompleted(); - } - }; - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFrQkEsbUJBQWEsQ0FBQztnQkFDWixJQUFJLEVBQUUsYUFBVyxrQkFBUywwQkFBdUI7Z0JBQ2pELEtBQUssRUFBRSxhQUFXLGtCQUFTLDJCQUF3QjthQUNwRCxDQUFDLENBQUM7O2dCQUVnQyx3Q0FBZ0I7Z0JBV2pELDhCQUFZLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSTtvQkFBbkMsWUFDRSxrQkFBTSxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBV3pCO29CQXJCTSxpQkFBVyxHQUFHLGFBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDbkMsc0JBQWdCLEdBQUcsMkJBQWtCLENBQUM7b0JBQ3RDLDBCQUFvQixHQUFHLDZCQUFvQixDQUFDO29CQVNqRCxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsS0FBSyxFQUFFLGVBQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDN0MsS0FBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksb0JBQWMsQ0FBQztvQkFDeEUsS0FBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2pCLEtBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDaEQsS0FBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4QyxLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLEtBQUks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Q0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsT0FBTyxDQUFDO3dCQUNoRCxRQUFRLEVBQUUsY0FBYztxQkFDekIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7aUJBQzNCO1lBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vPHJlZmVyZW5jZSBwYXRoPVwiLi4vbm9kZV9tb2R1bGVzL2dyYWZhbmEtc2RrLW1vY2tzL2FwcC9oZWFkZXJzL2NvbW1vbi5kLnRzXCIgLz5cclxuXHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCBrYm4gZnJvbSAnYXBwL2NvcmUvdXRpbHMva2JuJztcclxuaW1wb3J0IHsgbG9hZFBsdWdpbkNzcywgTWV0cmljc1BhbmVsQ3RybCB9IGZyb20gJ2FwcC9wbHVnaW5zL3Nkayc7XHJcbmltcG9ydCB7XHJcbiAgSUJvb21TZXJpZXMsXHJcbiAgSUJvb21SZW5kZXJpbmdPcHRpb25zLFxyXG4gIElCb29tVGFibGUsXHJcbiAgSUJvb21IVE1MLFxyXG4gIElCb29tVGFibGVUcmFuc2Zvcm1hdGlvbk9wdGlvbnMsXHJcbiAgQm9vbVBhdHRlcm4sXHJcbiAgQm9vbVNlcmllcyxcclxuICBCb29tT3V0cHV0LFxyXG59IGZyb20gJy4vYXBwL2Jvb20vaW5kZXgnO1xyXG5pbXBvcnQgeyBkZWZhdWx0UGF0dGVybiwgc2VyaWVzVG9UYWJsZSB9IGZyb20gXCIuL2FwcC9hcHBcIjtcclxuaW1wb3J0IHsgcGx1Z2luX2lkLCB2YWx1ZV9uYW1lX29wdGlvbnMsIHRleHRBbGlnbm1lbnRPcHRpb25zLCBjb25maWcgfSBmcm9tIFwiLi9hcHAvY29uZmlnXCI7XHJcblxyXG5sb2FkUGx1Z2luQ3NzKHtcclxuICBkYXJrOiBgcGx1Z2lucy8ke3BsdWdpbl9pZH0vY3NzL2RlZmF1bHQuZGFyay5jc3NgLFxyXG4gIGxpZ2h0OiBgcGx1Z2lucy8ke3BsdWdpbl9pZH0vY3NzL2RlZmF1bHQubGlnaHQuY3NzYCxcclxufSk7XHJcblxyXG5jbGFzcyBHcmFmYW5hQm9vbVRhYmxlQ3RybCBleHRlbmRzIE1ldHJpY3NQYW5lbEN0cmwge1xyXG4gIHB1YmxpYyBzdGF0aWMgdGVtcGxhdGVVcmwgPSAncGFydGlhbHMvbW9kdWxlLmh0bWwnO1xyXG4gIHB1YmxpYyB1bml0Rm9ybWF0cyA9IGtibi5nZXRVbml0Rm9ybWF0cygpO1xyXG4gIHB1YmxpYyB2YWx1ZU5hbWVPcHRpb25zID0gdmFsdWVfbmFtZV9vcHRpb25zO1xyXG4gIHB1YmxpYyB0ZXh0QWxpZ25tZW50T3B0aW9ucyA9IHRleHRBbGlnbm1lbnRPcHRpb25zO1xyXG4gIHB1YmxpYyBvdXRkYXRhO1xyXG4gIHB1YmxpYyBkYXRhUmVjZWl2ZWQ6IGFueTtcclxuICBwdWJsaWMgY3RybDogYW55O1xyXG4gIHB1YmxpYyBlbGVtOiBhbnk7XHJcbiAgcHVibGljIGF0dHJzOiBhbnk7XHJcbiAgcHVibGljICRzY2U6IGFueTtcclxuICBjb25zdHJ1Y3Rvcigkc2NvcGUsICRpbmplY3RvciwgJHNjZSkge1xyXG4gICAgc3VwZXIoJHNjb3BlLCAkaW5qZWN0b3IpO1xyXG4gICAgXy5kZWZhdWx0cyh0aGlzLnBhbmVsLCBjb25maWcucGFuZWxEZWZhdWx0cyk7XHJcbiAgICB0aGlzLnBhbmVsLmRlZmF1bHRQYXR0ZXJuID0gdGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiB8fCBkZWZhdWx0UGF0dGVybjtcclxuICAgIHRoaXMuJHNjZSA9ICRzY2U7XHJcbiAgICB0aGlzLnRlbXBsYXRlU3J2ID0gJGluamVjdG9yLmdldCgndGVtcGxhdGVTcnYnKTtcclxuICAgIHRoaXMudGltZVNydiA9ICRpbmplY3Rvci5nZXQoJ3RpbWVTcnYnKTtcclxuICAgIHRoaXMudXBkYXRlUHJvdG90eXBlcygpO1xyXG4gICAgdGhpcy5ldmVudHMub24oJ2RhdGEtcmVjZWl2ZWQnLCB0aGlzLm9uRGF0YVJlY2VpdmVkLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5ldmVudHMub24oJ2RhdGEtc25hcHNob3QtbG9hZCcsIHRoaXMub25EYXRhUmVjZWl2ZWQuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLmV2ZW50cy5vbignaW5pdC1lZGl0LW1vZGUnLCB0aGlzLm9uSW5pdEVkaXRNb2RlLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTEgPyB0aGlzLnBhbmVsLnBhdHRlcm5zLmxlbmd0aCA6IHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIHVwZGF0ZVByb3RvdHlwZXMoKTogdm9pZCB7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5wYW5lbC5kZWZhdWx0UGF0dGVybiwgQm9vbVBhdHRlcm4ucHJvdG90eXBlKTtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMubWFwKHBhdHRlcm4gPT4ge1xyXG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocGF0dGVybiwgQm9vbVBhdHRlcm4ucHJvdG90eXBlKTtcclxuICAgICAgcmV0dXJuIHBhdHRlcm47XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIG9uRGF0YVJlY2VpdmVkKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhUmVjZWl2ZWQgPSBkYXRhO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIG9uSW5pdEVkaXRNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRFZGl0b3JUYWIoJ1BhdHRlcm5zJywgYHB1YmxpYy9wbHVnaW5zLyR7cGx1Z2luX2lkfS9wYXJ0aWFscy9lZGl0b3IuaHRtbGAsIDIpO1xyXG4gIH1cclxuICBwdWJsaWMgYWRkUGF0dGVybigpOiB2b2lkIHtcclxuICAgIGxldCBuZXdQYXR0ZXJuID0gbmV3IEJvb21QYXR0ZXJuKHtcclxuICAgICAgcm93X2NvbF93cmFwcGVyOiB0aGlzLnBhbmVsLnJvd19jb2xfd3JhcHBlcixcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKG5ld1BhdHRlcm4pO1xyXG4gICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPSB0aGlzLnBhbmVsLmFjdGl2ZVBhdHRlcm5JbmRleCA9PT0gLTIgPyAtMiA6IHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVQYXR0ZXJuKGluZGV4OiBOdW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFuZWwucGF0dGVybnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID1cclxuICAgICAgdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiB0aGlzLnBhbmVsLnBhdHRlcm5zICYmIHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoID4gMCA/IHRoaXMucGFuZWwucGF0dGVybnMubGVuZ3RoIC0gMSA6IC0xO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIG1vdmVQYXR0ZXJuKGRpcmVjdGlvbjogc3RyaW5nLCBpbmRleDogTnVtYmVyKSB7XHJcbiAgICBsZXQgdGVtcEVsZW1lbnQgPSB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldO1xyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ1VQJykge1xyXG4gICAgICB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldID0gdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpIC0gMV07XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KSAtIDFdID0gdGVtcEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiBOdW1iZXIoaW5kZXgpIC0gMTtcclxuICAgIH1cclxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdET1dOJykge1xyXG4gICAgICB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldID0gdGhpcy5wYW5lbC5wYXR0ZXJuc1tOdW1iZXIoaW5kZXgpICsgMV07XHJcbiAgICAgIHRoaXMucGFuZWwucGF0dGVybnNbTnVtYmVyKGluZGV4KSArIDFdID0gdGVtcEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMucGFuZWwuYWN0aXZlUGF0dGVybkluZGV4ID0gdGhpcy5wYW5lbC5hY3RpdmVQYXR0ZXJuSW5kZXggPT09IC0yID8gLTIgOiBOdW1iZXIoaW5kZXgpICsgMTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjbG9uZVBhdHRlcm4oaW5kZXg6IE51bWJlcik6IHZvaWQge1xyXG4gICAgbGV0IGNvcGllZFBhdHRlcm4gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBhbmVsLnBhdHRlcm5zW051bWJlcihpbmRleCldKTtcclxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjb3BpZWRQYXR0ZXJuLCBCb29tUGF0dGVybi5wcm90b3R5cGUpO1xyXG4gICAgdGhpcy5wYW5lbC5wYXR0ZXJucy5wdXNoKGNvcGllZFBhdHRlcm4pO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcbiAgcHVibGljIHNvcnRCeUhlYWRlcihoZWFkZXJJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgPSB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMgfHwge1xyXG4gICAgICBjb2xfaW5kZXg6IC0xLFxyXG4gICAgICBkaXJlY3Rpb246ICdkZXNjJyxcclxuICAgIH07XHJcbiAgICB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMuY29sX2luZGV4ID0gaGVhZGVySW5kZXg7XHJcbiAgICB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMuZGlyZWN0aW9uID0gdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzLmRpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBsaW1pdFRleHQodGV4dDogc3RyaW5nLCBtYXhsZW5ndGg6IE51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGV4dC5zcGxpdCgnJykubGVuZ3RoID4gbWF4bGVuZ3RoKSB7XHJcbiAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCBOdW1iZXIobWF4bGVuZ3RoKSAtIDMpICsgJy4uLic7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcbiAgcHVibGljIGFkanVzdFNjcm9sbEJhcigpOiB2b2lkIHtcclxuICAgIGxldCByb290RWxlbSA9IHRoaXMuZWxlbS5maW5kKCcudGFibGUtcGFuZWwtc2Nyb2xsJyk7XHJcbiAgICBsZXQgb3JpZ2luYWxIZWlnaHQgPSB0aGlzLmN0cmwuaGVpZ2h0O1xyXG4gICAgaWYgKGlzTmFOKG9yaWdpbmFsSGVpZ2h0KSkge1xyXG4gICAgICBpZiAodGhpcy5jdHJsICYmIHRoaXMuY3RybC5lbGVtICYmIHRoaXMuY3RybC5lbGVtWzBdICYmIHRoaXMuY3RybC5lbGVtWzBdLmNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIG9yaWdpbmFsSGVpZ2h0ID0gdGhpcy5jdHJsLmVsZW1bMF0uY2xpZW50SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbWF4aGVpZ2h0b2ZwYW5lbCA9IHRoaXMucGFuZWwuZGVidWdfbW9kZSA/IG9yaWdpbmFsSGVpZ2h0IC0gMTExIDogb3JpZ2luYWxIZWlnaHQgLSAzMTtcclxuICAgIHJvb3RFbGVtLmNzcyh7ICdtYXgtaGVpZ2h0JzogbWF4aGVpZ2h0b2ZwYW5lbCArICdweCcgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBsaW5rKHNjb3BlOiBhbnksIGVsZW06IGFueSwgYXR0cnM6IGFueSwgY3RybDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XHJcbiAgICB0aGlzLmVsZW0gPSBlbGVtO1xyXG4gICAgdGhpcy5hdHRycyA9IGF0dHJzO1xyXG4gICAgdGhpcy5jdHJsID0gY3RybDtcclxuICAgIHRoaXMucGFuZWwgPSBjdHJsLnBhbmVsO1xyXG4gICAgdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzID0gdGhpcy5wYW5lbC5zb3J0aW5nX3Byb3BzIHx8IHtcclxuICAgICAgY29sX2luZGV4OiAtMSxcclxuICAgICAgZGlyZWN0aW9uOiAnZGVzYycsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cclxuR3JhZmFuYUJvb21UYWJsZUN0cmwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcclxuICBpZiAodGhpcy5kYXRhUmVjZWl2ZWQpIHtcclxuICAgIGxldCBvdXRwdXRkYXRhOiBJQm9vbVNlcmllc1tdID0gdGhpcy5kYXRhUmVjZWl2ZWQubWFwKHNlcmllc0RhdGEgPT4ge1xyXG4gICAgICBsZXQgc2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgICBkZWJ1Z19tb2RlOiB0aGlzLnBhbmVsLmRlYnVnX21vZGUsXHJcbiAgICAgICAgcm93X2NvbF93cmFwcGVyOiB0aGlzLnBhbmVsLnJvd19jb2xfd3JhcHBlciB8fCAnXycsXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBuZXcgQm9vbVNlcmllcyhcclxuICAgICAgICBzZXJpZXNEYXRhLFxyXG4gICAgICAgIHRoaXMucGFuZWwuZGVmYXVsdFBhdHRlcm4sXHJcbiAgICAgICAgdGhpcy5wYW5lbC5wYXR0ZXJucyxcclxuICAgICAgICBzZXJpZXNPcHRpb25zLFxyXG4gICAgICAgIHRoaXMucGFuZWwuc2NvcGVkVmFycyxcclxuICAgICAgICB0aGlzLnRlbXBsYXRlU3J2LFxyXG4gICAgICAgIHRoaXMudGltZVNydlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgYm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zOiBJQm9vbVRhYmxlVHJhbnNmb3JtYXRpb25PcHRpb25zID0ge1xyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfYmc6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX2NvbG9yX2JnLFxyXG4gICAgICBub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dDogdGhpcy5wYW5lbC5ub25fbWF0Y2hpbmdfY2VsbHNfY29sb3JfdGV4dCxcclxuICAgICAgbm9uX21hdGNoaW5nX2NlbGxzX3RleHQ6IHRoaXMucGFuZWwubm9uX21hdGNoaW5nX2NlbGxzX3RleHQsXHJcbiAgICB9O1xyXG4gICAgbGV0IGJvb210YWJsZWRhdGE6IElCb29tVGFibGUgPSBzZXJpZXNUb1RhYmxlKG91dHB1dGRhdGEsIGJvb21UYWJsZVRyYW5zZm9ybWF0aW9uT3B0aW9ucyk7XHJcbiAgICBsZXQgcmVuZGVyaW5nT3B0aW9uczogSUJvb21SZW5kZXJpbmdPcHRpb25zID0ge1xyXG4gICAgICBkZWZhdWx0X3RpdGxlX2Zvcl9yb3dzOiB0aGlzLnBhbmVsLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MgfHwgY29uZmlnLmRlZmF1bHRfdGl0bGVfZm9yX3Jvd3MsXHJcbiAgICAgIGZpcnN0X2NvbHVtbl9saW5rOiB0aGlzLnBhbmVsLmZpcnN0X2NvbHVtbl9saW5rIHx8ICcjJyxcclxuICAgICAgaGlkZV9maXJzdF9jb2x1bW46IHRoaXMucGFuZWwuaGlkZV9maXJzdF9jb2x1bW4sXHJcbiAgICAgIGhpZGVfaGVhZGVyczogdGhpcy5wYW5lbC5oaWRlX2hlYWRlcnMsXHJcbiAgICAgIHRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uOiB0aGlzLnBhbmVsLnRleHRfYWxpZ25tZW50X2ZpcnN0Y29sdW1uLFxyXG4gICAgICB0ZXh0X2FsaWdubWVudF92YWx1ZXM6IHRoaXMucGFuZWwudGV4dF9hbGlnbm1lbnRfdmFsdWVzLFxyXG4gICAgfTtcclxuICAgIGxldCBib29tX291dHB1dCA9IG5ldyBCb29tT3V0cHV0KHJlbmRlcmluZ09wdGlvbnMpO1xyXG4gICAgdGhpcy5vdXRkYXRhID0ge1xyXG4gICAgICBjb2xzX2ZvdW5kOiBib29tdGFibGVkYXRhLmNvbHNfZm91bmQubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuJHNjZS50cnVzdEFzSHRtbChjb2wpO1xyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgcmVuZGVyaW5nZGF0YTogSUJvb21IVE1MID0gYm9vbV9vdXRwdXQuZ2V0RGF0YUFzSFRNTChib29tdGFibGVkYXRhLCB0aGlzLnBhbmVsLnNvcnRpbmdfcHJvcHMpO1xyXG4gICAgdGhpcy5lbGVtLmZpbmQoJyNib29tdGFibGVfb3V0cHV0X2JvZHknKS5odG1sKGBgICsgcmVuZGVyaW5nZGF0YS5ib2R5KTtcclxuICAgIHRoaXMuZWxlbS5maW5kKCcjYm9vbXRhYmxlX291dHB1dF9ib2R5X2RlYnVnJykuaHRtbCh0aGlzLnBhbmVsLmRlYnVnX21vZGUgPyBib29tX291dHB1dC5nZXREYXRhQXNEZWJ1Z0hUTUwob3V0cHV0ZGF0YSkgOiBgYCk7XHJcbiAgICB0aGlzLmVsZW0uZmluZChcIltkYXRhLXRvZ2dsZT0ndG9vbHRpcCddXCIpLnRvb2x0aXAoe1xyXG4gICAgICBib3VuZGFyeTogJ3Njcm9sbFBhcmVudCcsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWRqdXN0U2Nyb2xsQmFyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmluZ0NvbXBsZXRlZCgpO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IEdyYWZhbmFCb29tVGFibGVDdHJsIGFzIFBhbmVsQ3RybCB9O1xyXG4iXX0= \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/partials/editor.html b/panels/yesoreyeram-boomtable-panel/partials/editor.html deleted file mode 100644 index 862195c806..0000000000 --- a/panels/yesoreyeram-boomtable-panel/partials/editor.html +++ /dev/null @@ -1,605 +0,0 @@ -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
PatterndelimiterRow NameCol NameStatFormatDecimalsEdit
- - - - - - - - - - - -
-
- - - - - - - -
-
-
-
- -
-
-
-
-
-
-
-
Warning : This pattern is currently Disabled
-
-
-
-
-
-
-
-
Pattern
-
-
-
-
- - - - - - - - - - -
-
-
-
- - - - - -
-
-
-
-
-
-
-
-
Stats
-
-
-
-
- - - - -
- - - -
-
-
-
- - - - - - - - -
-
-
-
-
-
-
-
-
Thresholds
-
-
-
-
- - -
-
- -
-
- - - - - - -
-
-
-
- - - - - - -
-
-
-
- - - - - - -
-
-
-
-
-
-
-
-
Dynamic Thresholds
-
-
-
-
- - - - -
-
-
-
-
- - - - - - - - - - - - - - - -
-
-
-
-
-
-
-
-
-
Overrides
-
-
-
- - - - - -
-
-
-
- - - - - -
-
-
-
- - - - - -
-
-
-
-
-
-
-
-
Null Handling
-
-
-
-
- - - - - - - - -
-
-
-
- -
-
-
-
-
Hide Series
-
-
-
-
- - - - - -
-
-
-
-
-
-
-
-
Pattern Management
-
-
-
-
- - - - - Currently Enabled - Currently Disabled -
-
-
-
- - - -
-
-
-
- - - -
-
-
-
-
-
-
-
-
-
-
Options
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
Non matching series
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
Other Optons
-
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
-
-
-
diff --git a/panels/yesoreyeram-boomtable-panel/partials/module.html b/panels/yesoreyeram-boomtable-panel/partials/module.html deleted file mode 100644 index 46caba669a..0000000000 --- a/panels/yesoreyeram-boomtable-panel/partials/module.html +++ /dev/null @@ -1,40 +0,0 @@ -
-
-
WARNING: Panel running in debug mode
-
-
-
- - - - - - - - - - - - - - - -
MetricPatternValueRow NameCol NameThresholdsBG ColorText Color
-
- - - - - - - - - -
- - - - -
-
-
\ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/plugin.json b/panels/yesoreyeram-boomtable-panel/plugin.json deleted file mode 100644 index 0ab564f14e..0000000000 --- a/panels/yesoreyeram-boomtable-panel/plugin.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "panel", - "name": "Boom Table", - "id": "yesoreyeram-boomtable-panel", - "dataFormats": [ - "time_series" - ], - "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.4.1" - }, - "dependencies": { - "grafanaVersion": "4.x.x", - "plugins": [] - } -} \ No newline at end of file diff --git a/panels/yesoreyeram-boomtable-panel/src/img/azure-monitor-usage.png b/panels/yesoreyeram-boomtable-panel/src/img/azure-monitor-usage.png deleted file mode 100644 index a5711e6807..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/azure-monitor-usage.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/debug-ui.png b/panels/yesoreyeram-boomtable-panel/src/img/debug-ui.png deleted file mode 100644 index cea9fe1c24..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/debug-ui.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/editor-1.png b/panels/yesoreyeram-boomtable-panel/src/img/editor-1.png deleted file mode 100644 index bdb908f592..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/editor-1.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/editor-2.png b/panels/yesoreyeram-boomtable-panel/src/img/editor-2.png deleted file mode 100644 index 7939100c64..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/editor-2.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/editor-default.png b/panels/yesoreyeram-boomtable-panel/src/img/editor-default.png deleted file mode 100644 index 742684fda2..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/editor-default.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/filters.png b/panels/yesoreyeram-boomtable-panel/src/img/filters.png deleted file mode 100644 index ab0386cb0b..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/filters.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/font-awesome-examples.png b/panels/yesoreyeram-boomtable-panel/src/img/font-awesome-examples.png deleted file mode 100644 index a27b93859f..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/font-awesome-examples.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/img-transform-example.png b/panels/yesoreyeram-boomtable-panel/src/img/img-transform-example.png deleted file mode 100644 index d67daaebcd..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/img-transform-example.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/influx-usage.png b/panels/yesoreyeram-boomtable-panel/src/img/influx-usage.png deleted file mode 100644 index 97ec2132e7..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/influx-usage.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/metrics.png b/panels/yesoreyeram-boomtable-panel/src/img/metrics.png deleted file mode 100644 index 2a24005959..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/metrics.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/panel.png b/panels/yesoreyeram-boomtable-panel/src/img/panel.png deleted file mode 100644 index 916ba8b10f..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/panel.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/panels-fa.png b/panels/yesoreyeram-boomtable-panel/src/img/panels-fa.png deleted file mode 100644 index 120a0619e4..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/panels-fa.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/prometheus-usage.png b/panels/yesoreyeram-boomtable-panel/src/img/prometheus-usage.png deleted file mode 100644 index 151f2c67b7..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/prometheus-usage.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/time-based-thresholds.png b/panels/yesoreyeram-boomtable-panel/src/img/time-based-thresholds.png deleted file mode 100644 index 3a263e5bb5..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/time-based-thresholds.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/src/img/version-5.0.2.png b/panels/yesoreyeram-boomtable-panel/src/img/version-5.0.2.png deleted file mode 100644 index 277535ec97..0000000000 Binary files a/panels/yesoreyeram-boomtable-panel/src/img/version-5.0.2.png and /dev/null differ diff --git a/panels/yesoreyeram-boomtable-panel/tests/BoomSeries.spec.js b/panels/yesoreyeram-boomtable-panel/tests/BoomSeries.spec.js deleted file mode 100644 index cb8d51c427..0000000000 --- a/panels/yesoreyeram-boomtable-panel/tests/BoomSeries.spec.js +++ /dev/null @@ -1,227 +0,0 @@ -System.register(["./../app/boom/BoomUtils"], function (exports_1, context_1) { - "use strict"; - var BoomUtils_1, dummy_series_1, dummy_series_2; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (BoomUtils_1_1) { - BoomUtils_1 = BoomUtils_1_1; - } - ], - execute: function () { - dummy_series_1 = { - stats: { - "avg": 9.077777777777778, - "count": 360, - "current": 6, - "delta": 1396, - "diff": 4, - "first": 2, - "logmin": 1, - "max": 24, - "min": 0, - "range": 24, - "timeStep": 60000, - "total": 3268, - } - }; - dummy_series_2 = { - "alias": "COM # count", - "aliasEscaped": "COM # count", - "datapoints": [ - [ - 108, - 1575198840000 - ], - [ - 86, - 1575198900000 - ], - [ - 93, - 1575198960000 - ], - [ - 48, - 1575199020000 - ], - [ - null, - 1575199080000 - ], - [ - null, - 1575199140000 - ], - [ - null, - 1575199200000 - ], - [ - null, - 1575199260000 - ] - ], - "id": "COM # count", - "label": "COM # count", - "stats": { - "avg": 41.875, - "count": 8, - "current": 0, - "delta": 93, - "diff": -108, - "first": 108, - "logmin": 48, - "max": 108, - "min": 0, - "range": 108, - "timeStep": 60000, - "total": 335, - } - }; - describe("Boom Series", function () { - it("getSeriesValue", function () { - expect(BoomUtils_1.getSeriesValue({}, "total")).toBe(NaN); - expect(BoomUtils_1.getSeriesValue({}, "foo")).toBe(NaN); - expect(BoomUtils_1.getSeriesValue(dummy_series_1, "foo")).toBe(null); - expect(BoomUtils_1.getSeriesValue(dummy_series_1, "total")).toBe(3268); - expect(BoomUtils_1.getSeriesValue(dummy_series_1, "TOTAL")).toBe(3268); - expect(BoomUtils_1.getSeriesValue(dummy_series_1, "last_time")).toBe(null); - expect(BoomUtils_1.getSeriesValue(dummy_series_1, "LAST_TIME")).toBe(null); - expect(BoomUtils_1.getSeriesValue(dummy_series_2, "total")).toBe(dummy_series_2.stats.total); - expect(BoomUtils_1.getSeriesValue(dummy_series_2, "last_time_nonnull")).toBe(1575199020000); - expect(BoomUtils_1.getSeriesValue(dummy_series_2, "last_time")).toBe(1575199260000); - }); - it("getCurrentTimeStamp", function () { - expect(BoomUtils_1.getCurrentTimeStamp(dummy_series_2.datapoints)).toStrictEqual(new Date(1575199260000)); - }); - it("replaceDelimitedColumns", function () { - expect(BoomUtils_1.replaceDelimitedColumns("Hello _0_ is _1_", "foo.bar.baz", ".", "_")).toBe("Hello foo is bar"); - expect(BoomUtils_1.replaceDelimitedColumns("Hello _0__1_", "foo.bar.baz", ".", "_")).toBe("Hello foobar"); - expect(BoomUtils_1.replaceDelimitedColumns("Hello _0__1__1_", "foo.bar.baz", ".", "_")).toBe("Hello foobarbar"); - expect(BoomUtils_1.replaceDelimitedColumns("Hello _0__1__3_", "foo.bar.baz", ".", "_")).toBe("Hello foobar_3_"); - expect(BoomUtils_1.replaceDelimitedColumns("Hello _0__1__1_", "foo bar baz", " ", "_")).toBe("Hello foobarbar"); - expect(BoomUtils_1.replaceDelimitedColumns("Hello #0##1##1#", "foo bar baz", " ", "#")).toBe("Hello foobarbar"); - }); - it("getRowName", function () { - expect(BoomUtils_1.getRowName("Hello _0_ is _1_", ".", "_", "foo.bar.baz", "", [])).toBe("Hello foo is bar"); - expect(BoomUtils_1.getRowName("Hello _0_ is _1_ _series_ _series_", ".", "_", "foo.bar.baz", "", [])).toBe("Hello foo is bar foo.bar.baz foo.bar.baz"); - }); - it("getColName", function () { - expect(BoomUtils_1.getColName("Hello _0_ is _1_", ".", "_", "foo.bar.baz", "rowName", "", [])).toBe("Hello foo is bar"); - expect(BoomUtils_1.getColName("foo.bar", ".", "_", "foo.bar", "foo.bar", "", [])).toBe("foo.bar"); - }); - }); - describe("Normalize Color", function () { - it("Normalize Named Colors", function () { - expect(BoomUtils_1.normalizeColor("Green")).toBe("rgba(50, 172, 45, 0.97)"); - expect(BoomUtils_1.normalizeColor("Orange")).toBe("rgba(237, 129, 40, 0.89)"); - expect(BoomUtils_1.normalizeColor("Red")).toBe("rgba(245, 54, 54, 0.9)"); - expect(BoomUtils_1.normalizeColor("Purple")).toBe("Purple"); - }); - }); - describe("Get Color", function () { - it("Color Strings", function () { - expect(BoomUtils_1.getColor("Green", 0)).toBe(" style=\"color:rgba(50, 172, 45, 0.97)\" "); - expect(BoomUtils_1.getColor("Orange", 0)).toBe(" style=\"color:rgba(237, 129, 40, 0.89)\" "); - expect(BoomUtils_1.getColor("Red", 0)).toBe(" style=\"color:rgba(245, 54, 54, 0.9)\" "); - expect(BoomUtils_1.getColor("Purple", 0)).toBe(" style=\"color:Purple\" "); - }); - }); - describe("Parse Math Tokens", function () { - it("Sum", function () { - expect(BoomUtils_1.parseMathExpression("15+5", 0)).toBe(20); - expect(BoomUtils_1.parseMathExpression("0.2+2.3", 0)).toBe(3); - }); - it("Substraction", function () { - expect(BoomUtils_1.parseMathExpression("15-5", 0)).toBe(10); - expect(BoomUtils_1.parseMathExpression("0.2-2.3", 0)).toBe(-2); - }); - it("Multiplication", function () { - expect(BoomUtils_1.parseMathExpression("3*5", 0)).toBe(15); - expect(BoomUtils_1.parseMathExpression("0.2*2", 0)).toBe(0); - expect(BoomUtils_1.parseMathExpression("0.3*2", 0)).toBe(1); - }); - it("Division", function () { - expect(BoomUtils_1.parseMathExpression("9/5", 0)).toBe(2); - expect(BoomUtils_1.parseMathExpression("0.2/2", 0)).toBe(0); - expect(BoomUtils_1.parseMathExpression("2.3/2", 0)).toBe(1); - }); - it("Min", function () { - expect(BoomUtils_1.parseMathExpression("9min5", 0)).toBe(5); - expect(BoomUtils_1.parseMathExpression("5min9", 0)).toBe(5); - expect(BoomUtils_1.parseMathExpression("9min0.4", 0)).toBe(0); - expect(BoomUtils_1.parseMathExpression("5min0.9", 0)).toBe(1); - }); - }); - describe("Get Actial name without tokens", function () { - it("Row and colname", function () { - expect(BoomUtils_1.getActualNameWithoutTokens("hello")).toBe("hello"); - expect(BoomUtils_1.getActualNameWithoutTokens("hello how are you!")).toBe("hello how are you!"); - expect(BoomUtils_1.getActualNameWithoutTokens("hello _fa-circle_ how are you")).toBe("hello how are you"); - }); - }); - describe("Threshold Validator", function () { - it("BG Colors", function () { - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 5, "black")).toBe("green"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 10, "black")).toBe("orange"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 15, "black")).toBe("orange"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red", "blue"], 15, "black")).toBe("orange"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 20, "black")).toBe("red"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 25, "black")).toBe("red"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange", "red"], 20, "black")).toBe("red"); - expect(BoomUtils_1.getItemBasedOnThreshold([10, 20], ["green", "orange"], 25, "black")).toBe("black"); - }); - }); - describe("Mertic Name from prometheus / influxdb Alias", function () { - it("Prometheus Format", function () { - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_cpu_load_average_10s")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_cpu_load_average_10s ")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_cpu_load_average_10s {}")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias(" container_cpu_load_average_10s {}")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_cpu_load_average_10s{agentpool=\"agentpool1\"}")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_cpu_load_average_10s {agentpool=\"agentpool1\"}")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias(" container_cpu_load_average_10s { agentpool = \"agentpool1\" } ")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias(" container_cpu_load_average_10s { image = \"abc:cba12:hello\" } ")).toBe("container_cpu_load_average_10s"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("container_memory_usage_bytes{beta_kubernetes_io_arch=\"amd64\",beta_kubernetes_io_instance_type=\"Standard_D2_v2\"}")).toBe("container_memory_usage_bytes"); - }); - it("InfluxDB Format", function () { - expect(BoomUtils_1.getMetricNameFromTaggedAlias("CPU.CPU TIme")).toBe("CPU.CPU TIme"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("CPU.CPU TIme ")).toBe("CPU.CPU TIme"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("CPU.CPU TIme {} ")).toBe("CPU.CPU TIme"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias("CPU.CPU TIme {environment: 279, instance: _Total}")).toBe("CPU.CPU TIme"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias(" CPU.CPU TIme { environment: 279, instance: _Total}")).toBe("CPU.CPU TIme"); - expect(BoomUtils_1.getMetricNameFromTaggedAlias(" CPU.CPU TIme { environment: 279, equation: `_Tota=l`}")).toBe("CPU.CPU TIme"); - }); - }); - describe("Value needs to hidden", function () { - it("Default Values", function () { - expect(BoomUtils_1.doesValueNeedsToHide(10, undefined)).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_below: "5" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(-2, { value_below: "-1" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(2, { value_below: "10" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "5" })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(2, { value_below: "-1" })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(15, { value_above: "10" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(15, { value_above: "0" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_above: "15" })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_above: "15" })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_below: "5", value_above: "-5" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "15", value_above: "30" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "5", value_above: "5" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "15", value_above: "5" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "015", value_above: "05" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_below: "5", value_above: "2" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_below: "2", value_above: "5" })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: " 015 ", value_above: " 05 " })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: " 5 ", value_above: "-5 " })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "15", value_above: "5 " })).toBe(true); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: "5", value_above: "30" })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(10, { value_below: " 5 ", value_above: " 30 " })).toBe(false); - expect(BoomUtils_1.doesValueNeedsToHide(0, { value_below: "-2", value_above: "5" })).toBe(false); - }); - }); - } - }; -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbVNlcmllcy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL0Jvb21TZXJpZXMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztZQUVNLGNBQWMsR0FBRztnQkFDbkIsS0FBSyxFQUFFO29CQUNILEtBQUssRUFBRSxpQkFBaUI7b0JBQ3hCLE9BQU8sRUFBRSxHQUFHO29CQUNaLFNBQVMsRUFBRSxDQUFDO29CQUNaLE9BQU8sRUFBRSxJQUFJO29CQUNiLE1BQU0sRUFBRSxDQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDO29CQUNWLFFBQVEsRUFBRSxDQUFDO29CQUNYLEtBQUssRUFBRSxFQUFFO29CQUNULEtBQUssRUFBRSxDQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxLQUFLO29CQUNqQixPQUFPLEVBQUUsSUFBSTtpQkFDaEI7YUFDSixDQUFDO1lBQ0ksY0FBYyxHQUFHO2dCQUNuQixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsY0FBYyxFQUFFLGFBQWE7Z0JBQzdCLFlBQVksRUFBRTtvQkFDVjt3QkFDSSxHQUFHO3dCQUNILGFBQWE7cUJBQ2hCO29CQUNEO3dCQUNJLEVBQUU7d0JBQ0YsYUFBYTtxQkFDaEI7b0JBQ0Q7d0JBQ0ksRUFBRTt3QkFDRixhQUFhO3FCQUNoQjtvQkFDRDt3QkFDSSxFQUFFO3dCQUNGLGFBQWE7cUJBQ2hCO29CQUNEO3dCQUNJLElBQUk7d0JBQ0osYUFBYTtxQkFDaEI7b0JBQ0Q7d0JBQ0ksSUFBSTt3QkFDSixhQUFhO3FCQUNoQjtvQkFDRDt3QkFDSSxJQUFJO3dCQUNKLGFBQWE7cUJBQ2hCO29CQUNEO3dCQUNJLElBQUk7d0JBQ0osYUFBYTtxQkFDaEI7aUJBQ0o7Z0JBQ0QsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixPQUFPLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLE1BQU07b0JBQ2IsT0FBTyxFQUFFLENBQUM7b0JBQ1YsU0FBUyxFQUFFLENBQUM7b0JBQ1osT0FBTyxFQUFFLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLENBQUMsR0FBRztvQkFDWixPQUFPLEVBQUUsR0FBRztvQkFDWixRQUFRLEVBQUUsRUFBRTtvQkFDWixLQUFLLEVBQUUsR0FBRztvQkFDVixLQUFLLEVBQUUsQ0FBQztvQkFDUixPQUFPLEVBQUUsR0FBRztvQkFDWixVQUFVLEVBQUUsS0FBSztvQkFDakIsT0FBTyxFQUFFLEdBQUc7aUJBQ2Y7YUFDSixDQUFDO1lBQ0YsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDcEIsRUFBRSxDQUFDLGdCQUFnQixFQUFFO29CQUNqQixNQUFNLENBQUMsMEJBQWMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzlDLE1BQU0sQ0FBQywwQkFBYyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDNUMsTUFBTSxDQUFDLDBCQUFjLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6RCxNQUFNLENBQUMsMEJBQWMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNELE1BQU0sQ0FBQywwQkFBYyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0QsTUFBTSxDQUFDLDBCQUFjLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvRCxNQUFNLENBQUMsMEJBQWMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQy9ELE1BQU0sQ0FBQywwQkFBYyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqRixNQUFNLENBQUMsMEJBQWMsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDaEYsTUFBTSxDQUFDLDBCQUFjLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RSxDQUFDLENBQUMsQ0FBQztnQkFDSCxFQUFFLENBQUMscUJBQXFCLEVBQUU7b0JBQ3RCLE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbEcsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsRUFBRSxDQUFDLHlCQUF5QixFQUFFO29CQUMxQixNQUFNLENBQUMsbUNBQXVCLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUN0RyxNQUFNLENBQUMsbUNBQXVCLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzlGLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3BHLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3BHLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3BHLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3hHLENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQyxZQUFZLEVBQUU7b0JBQ2IsTUFBTSxDQUFDLHNCQUFVLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ2pHLE1BQU0sQ0FBQyxzQkFBVSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO2dCQUMvSSxDQUFDLENBQUMsQ0FBQztnQkFDSCxFQUFFLENBQUMsWUFBWSxFQUFFO29CQUNiLE1BQU0sQ0FBQyxzQkFBVSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDNUcsTUFBTSxDQUFDLHNCQUFVLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzFGLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3hCLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRTtvQkFDekIsTUFBTSxDQUFDLDBCQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFDaEUsTUFBTSxDQUFDLDBCQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLDBCQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFDN0QsTUFBTSxDQUFDLDBCQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUNsQixFQUFFLENBQUMsZUFBZSxFQUFFO29CQUNoQixNQUFNLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkNBQXlDLENBQUMsQ0FBQztvQkFDN0UsTUFBTSxDQUFDLG9CQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDRDQUEwQyxDQUFDLENBQUM7b0JBQy9FLE1BQU0sQ0FBQyxvQkFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQ0FBd0MsQ0FBQyxDQUFDO29CQUMxRSxNQUFNLENBQUMsb0JBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQXdCLENBQUMsQ0FBQztnQkFDakUsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDMUIsRUFBRSxDQUFDLEtBQUssRUFBRTtvQkFDTixNQUFNLENBQUMsK0JBQW1CLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNoRCxNQUFNLENBQUMsK0JBQW1CLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsQ0FBQztnQkFDSCxFQUFFLENBQUMsY0FBYyxFQUFFO29CQUNmLE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2hELE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsRUFBRSxDQUFDLGdCQUFnQixFQUFFO29CQUNqQixNQUFNLENBQUMsK0JBQW1CLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxNQUFNLENBQUMsK0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRCxNQUFNLENBQUMsK0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQztnQkFDSCxFQUFFLENBQUMsVUFBVSxFQUFFO29CQUNYLE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzlDLE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hELE1BQU0sQ0FBQywrQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQyxLQUFLLEVBQUU7b0JBQ04sTUFBTSxDQUFDLCtCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxDQUFDLCtCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxDQUFDLCtCQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxDQUFDLCtCQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRTtnQkFDdkMsRUFBRSxDQUFDLGlCQUFpQixFQUFFO29CQUNsQixNQUFNLENBQUMsc0NBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFELE1BQU0sQ0FBQyxzQ0FBMEIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQ3BGLE1BQU0sQ0FBQyxzQ0FBMEIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ25HLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMscUJBQXFCLEVBQUU7Z0JBQzVCLEVBQUUsQ0FBQyxXQUFXLEVBQUU7b0JBQ1osTUFBTSxDQUFDLG1DQUF1QixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2hHLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNsRyxNQUFNLENBQUMsbUNBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbEcsTUFBTSxDQUFDLG1DQUF1QixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMxRyxNQUFNLENBQUMsbUNBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0YsTUFBTSxDQUFDLG1DQUF1QixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9GLE1BQU0sQ0FBQyxtQ0FBdUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvRixNQUFNLENBQUMsbUNBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5RixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLDhDQUE4QyxFQUFFO2dCQUNyRCxFQUFFLENBQUMsbUJBQW1CLEVBQUU7b0JBQ3BCLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQzlHLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQy9HLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQ2pILE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQ2xILE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQywwREFBd0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQ3RJLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQywyREFBeUQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQ3ZJLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxpRUFBK0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQzdJLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxrRUFBZ0UsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7b0JBQzlJLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxxSEFBaUgsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBQ2pNLENBQUMsQ0FBQyxDQUFDO2dCQUNILEVBQUUsQ0FBQyxpQkFBaUIsRUFBRTtvQkFDbEIsTUFBTSxDQUFDLHdDQUE0QixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUMxRSxNQUFNLENBQUMsd0NBQTRCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzNFLE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUM5RSxNQUFNLENBQUMsd0NBQTRCLENBQUMsbURBQW1ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDL0csTUFBTSxDQUFDLHdDQUE0QixDQUFDLHFEQUFxRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ2pILE1BQU0sQ0FBQyx3Q0FBNEIsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN4SCxDQUFDLENBQUMsQ0FBQztZQUVQLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLHVCQUF1QixFQUFFO2dCQUM5QixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hELE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDakUsTUFBTSxDQUFDLGdDQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25FLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLGdDQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuRSxNQUFNLENBQUMsZ0NBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ25FLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkUsTUFBTSxDQUFDLGdDQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsRSxNQUFNLENBQUMsZ0NBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BFLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkUsTUFBTSxDQUFDLGdDQUFvQixDQUFDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BGLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0RixNQUFNLENBQUMsZ0NBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEYsTUFBTSxDQUFDLGdDQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JGLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2RixNQUFNLENBQUMsZ0NBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkYsTUFBTSxDQUFDLGdDQUFvQixDQUFDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25GLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzRixNQUFNLENBQUMsZ0NBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEYsTUFBTSxDQUFDLGdDQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RGLE1BQU0sQ0FBQyxnQ0FBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN0RixNQUFNLENBQUMsZ0NBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDMUYsTUFBTSxDQUFDLGdDQUFvQixDQUFDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pGLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVDb2xvciwgcGFyc2VNYXRoRXhwcmVzc2lvbiwgZ2V0Q29sb3IsIGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zLCBnZXRJdGVtQmFzZWRPblRocmVzaG9sZCwgZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcywgZ2V0U2VyaWVzVmFsdWUsIGdldEN1cnJlbnRUaW1lU3RhbXAsIHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zLCBnZXRSb3dOYW1lLCBnZXRDb2xOYW1lLCBkb2VzVmFsdWVOZWVkc1RvSGlkZSB9IGZyb20gXCIuLy4uL2FwcC9ib29tL0Jvb21VdGlsc1wiO1xuXG5jb25zdCBkdW1teV9zZXJpZXNfMSA9IHtcbiAgICBzdGF0czoge1xuICAgICAgICBcImF2Z1wiOiA5LjA3Nzc3Nzc3Nzc3Nzc3OCxcbiAgICAgICAgXCJjb3VudFwiOiAzNjAsXG4gICAgICAgIFwiY3VycmVudFwiOiA2LFxuICAgICAgICBcImRlbHRhXCI6IDEzOTYsXG4gICAgICAgIFwiZGlmZlwiOiA0LFxuICAgICAgICBcImZpcnN0XCI6IDIsXG4gICAgICAgIFwibG9nbWluXCI6IDEsXG4gICAgICAgIFwibWF4XCI6IDI0LFxuICAgICAgICBcIm1pblwiOiAwLFxuICAgICAgICBcInJhbmdlXCI6IDI0LFxuICAgICAgICBcInRpbWVTdGVwXCI6IDYwMDAwLFxuICAgICAgICBcInRvdGFsXCI6IDMyNjgsXG4gICAgfVxufTtcbmNvbnN0IGR1bW15X3Nlcmllc18yID0ge1xuICAgIFwiYWxpYXNcIjogXCJDT00gIyBjb3VudFwiLFxuICAgIFwiYWxpYXNFc2NhcGVkXCI6IFwiQ09NICMgY291bnRcIixcbiAgICBcImRhdGFwb2ludHNcIjogW1xuICAgICAgICBbXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICAxNTc1MTk4ODQwMDAwXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDg2LFxuICAgICAgICAgICAgMTU3NTE5ODkwMDAwMFxuICAgICAgICBdLFxuICAgICAgICBbXG4gICAgICAgICAgICA5MyxcbiAgICAgICAgICAgIDE1NzUxOTg5NjAwMDBcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgICAgNDgsXG4gICAgICAgICAgICAxNTc1MTk5MDIwMDAwXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAxNTc1MTk5MDgwMDAwXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAxNTc1MTk5MTQwMDAwXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAxNTc1MTk5MjAwMDAwXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAxNTc1MTk5MjYwMDAwXG4gICAgICAgIF1cbiAgICBdLFxuICAgIFwiaWRcIjogXCJDT00gIyBjb3VudFwiLFxuICAgIFwibGFiZWxcIjogXCJDT00gIyBjb3VudFwiLFxuICAgIFwic3RhdHNcIjoge1xuICAgICAgICBcImF2Z1wiOiA0MS44NzUsXG4gICAgICAgIFwiY291bnRcIjogOCxcbiAgICAgICAgXCJjdXJyZW50XCI6IDAsXG4gICAgICAgIFwiZGVsdGFcIjogOTMsXG4gICAgICAgIFwiZGlmZlwiOiAtMTA4LFxuICAgICAgICBcImZpcnN0XCI6IDEwOCxcbiAgICAgICAgXCJsb2dtaW5cIjogNDgsXG4gICAgICAgIFwibWF4XCI6IDEwOCxcbiAgICAgICAgXCJtaW5cIjogMCxcbiAgICAgICAgXCJyYW5nZVwiOiAxMDgsXG4gICAgICAgIFwidGltZVN0ZXBcIjogNjAwMDAsXG4gICAgICAgIFwidG90YWxcIjogMzM1LFxuICAgIH1cbn07XG5kZXNjcmliZShcIkJvb20gU2VyaWVzXCIsICgpID0+IHtcbiAgICBpdChcImdldFNlcmllc1ZhbHVlXCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KGdldFNlcmllc1ZhbHVlKHt9LCBcInRvdGFsXCIpKS50b0JlKE5hTik7XG4gICAgICAgIGV4cGVjdChnZXRTZXJpZXNWYWx1ZSh7fSwgXCJmb29cIikpLnRvQmUoTmFOKTtcbiAgICAgICAgZXhwZWN0KGdldFNlcmllc1ZhbHVlKGR1bW15X3Nlcmllc18xLCBcImZvb1wiKSkudG9CZShudWxsKTtcbiAgICAgICAgZXhwZWN0KGdldFNlcmllc1ZhbHVlKGR1bW15X3Nlcmllc18xLCBcInRvdGFsXCIpKS50b0JlKDMyNjgpO1xuICAgICAgICBleHBlY3QoZ2V0U2VyaWVzVmFsdWUoZHVtbXlfc2VyaWVzXzEsIFwiVE9UQUxcIikpLnRvQmUoMzI2OCk7XG4gICAgICAgIGV4cGVjdChnZXRTZXJpZXNWYWx1ZShkdW1teV9zZXJpZXNfMSwgXCJsYXN0X3RpbWVcIikpLnRvQmUobnVsbCk7XG4gICAgICAgIGV4cGVjdChnZXRTZXJpZXNWYWx1ZShkdW1teV9zZXJpZXNfMSwgXCJMQVNUX1RJTUVcIikpLnRvQmUobnVsbCk7XG4gICAgICAgIGV4cGVjdChnZXRTZXJpZXNWYWx1ZShkdW1teV9zZXJpZXNfMiwgXCJ0b3RhbFwiKSkudG9CZShkdW1teV9zZXJpZXNfMi5zdGF0cy50b3RhbCk7XG4gICAgICAgIGV4cGVjdChnZXRTZXJpZXNWYWx1ZShkdW1teV9zZXJpZXNfMiwgXCJsYXN0X3RpbWVfbm9ubnVsbFwiKSkudG9CZSgxNTc1MTk5MDIwMDAwKTtcbiAgICAgICAgZXhwZWN0KGdldFNlcmllc1ZhbHVlKGR1bW15X3Nlcmllc18yLCBcImxhc3RfdGltZVwiKSkudG9CZSgxNTc1MTk5MjYwMDAwKTtcbiAgICB9KTtcbiAgICBpdChcImdldEN1cnJlbnRUaW1lU3RhbXBcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZ2V0Q3VycmVudFRpbWVTdGFtcChkdW1teV9zZXJpZXNfMi5kYXRhcG9pbnRzKSkudG9TdHJpY3RFcXVhbChuZXcgRGF0ZSgxNTc1MTk5MjYwMDAwKSk7XG4gICAgfSk7XG4gICAgaXQoXCJyZXBsYWNlRGVsaW1pdGVkQ29sdW1uc1wiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChyZXBsYWNlRGVsaW1pdGVkQ29sdW1ucyhcIkhlbGxvIF8wXyBpcyBfMV9cIiwgXCJmb28uYmFyLmJhelwiLCBcIi5cIiwgXCJfXCIpKS50b0JlKFwiSGVsbG8gZm9vIGlzIGJhclwiKTtcbiAgICAgICAgZXhwZWN0KHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zKFwiSGVsbG8gXzBfXzFfXCIsIFwiZm9vLmJhci5iYXpcIiwgXCIuXCIsIFwiX1wiKSkudG9CZShcIkhlbGxvIGZvb2JhclwiKTtcbiAgICAgICAgZXhwZWN0KHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zKFwiSGVsbG8gXzBfXzFfXzFfXCIsIFwiZm9vLmJhci5iYXpcIiwgXCIuXCIsIFwiX1wiKSkudG9CZShcIkhlbGxvIGZvb2JhcmJhclwiKTtcbiAgICAgICAgZXhwZWN0KHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zKFwiSGVsbG8gXzBfXzFfXzNfXCIsIFwiZm9vLmJhci5iYXpcIiwgXCIuXCIsIFwiX1wiKSkudG9CZShcIkhlbGxvIGZvb2Jhcl8zX1wiKTtcbiAgICAgICAgZXhwZWN0KHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zKFwiSGVsbG8gXzBfXzFfXzFfXCIsIFwiZm9vIGJhciBiYXpcIiwgXCIgXCIsIFwiX1wiKSkudG9CZShcIkhlbGxvIGZvb2JhcmJhclwiKTtcbiAgICAgICAgZXhwZWN0KHJlcGxhY2VEZWxpbWl0ZWRDb2x1bW5zKFwiSGVsbG8gIzAjIzEjIzEjXCIsIFwiZm9vIGJhciBiYXpcIiwgXCIgXCIsIFwiI1wiKSkudG9CZShcIkhlbGxvIGZvb2JhcmJhclwiKTtcbiAgICB9KTtcbiAgICBpdChcImdldFJvd05hbWVcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZ2V0Um93TmFtZShcIkhlbGxvIF8wXyBpcyBfMV9cIiwgXCIuXCIsIFwiX1wiLCBcImZvby5iYXIuYmF6XCIsIFwiXCIsIFtdKSkudG9CZShcIkhlbGxvIGZvbyBpcyBiYXJcIik7XG4gICAgICAgIGV4cGVjdChnZXRSb3dOYW1lKFwiSGVsbG8gXzBfIGlzIF8xXyBfc2VyaWVzXyBfc2VyaWVzX1wiLCBcIi5cIiwgXCJfXCIsIFwiZm9vLmJhci5iYXpcIiwgXCJcIiwgW10pKS50b0JlKFwiSGVsbG8gZm9vIGlzIGJhciBmb28uYmFyLmJheiBmb28uYmFyLmJhelwiKTtcbiAgICB9KTtcbiAgICBpdChcImdldENvbE5hbWVcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZ2V0Q29sTmFtZShcIkhlbGxvIF8wXyBpcyBfMV9cIiwgXCIuXCIsIFwiX1wiLCBcImZvby5iYXIuYmF6XCIsIFwicm93TmFtZVwiLCBcIlwiLCBbXSkpLnRvQmUoXCJIZWxsbyBmb28gaXMgYmFyXCIpO1xuICAgICAgICBleHBlY3QoZ2V0Q29sTmFtZShcImZvby5iYXJcIiwgXCIuXCIsIFwiX1wiLCBcImZvby5iYXJcIiwgXCJmb28uYmFyXCIsIFwiXCIsIFtdKSkudG9CZShcImZvby5iYXJcIik7XG4gICAgfSk7XG59KTtcbmRlc2NyaWJlKFwiTm9ybWFsaXplIENvbG9yXCIsICgpID0+IHtcbiAgICBpdChcIk5vcm1hbGl6ZSBOYW1lZCBDb2xvcnNcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3Qobm9ybWFsaXplQ29sb3IoXCJHcmVlblwiKSkudG9CZShcInJnYmEoNTAsIDE3MiwgNDUsIDAuOTcpXCIpO1xuICAgICAgICBleHBlY3Qobm9ybWFsaXplQ29sb3IoXCJPcmFuZ2VcIikpLnRvQmUoXCJyZ2JhKDIzNywgMTI5LCA0MCwgMC44OSlcIik7XG4gICAgICAgIGV4cGVjdChub3JtYWxpemVDb2xvcihcIlJlZFwiKSkudG9CZShcInJnYmEoMjQ1LCA1NCwgNTQsIDAuOSlcIik7XG4gICAgICAgIGV4cGVjdChub3JtYWxpemVDb2xvcihcIlB1cnBsZVwiKSkudG9CZShcIlB1cnBsZVwiKTtcbiAgICB9KTtcbn0pO1xuZGVzY3JpYmUoXCJHZXQgQ29sb3JcIiwgKCkgPT4ge1xuICAgIGl0KFwiQ29sb3IgU3RyaW5nc1wiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChnZXRDb2xvcihcIkdyZWVuXCIsIDApKS50b0JlKGAgc3R5bGU9XCJjb2xvcjpyZ2JhKDUwLCAxNzIsIDQ1LCAwLjk3KVwiIGApO1xuICAgICAgICBleHBlY3QoZ2V0Q29sb3IoXCJPcmFuZ2VcIiwgMCkpLnRvQmUoYCBzdHlsZT1cImNvbG9yOnJnYmEoMjM3LCAxMjksIDQwLCAwLjg5KVwiIGApO1xuICAgICAgICBleHBlY3QoZ2V0Q29sb3IoXCJSZWRcIiwgMCkpLnRvQmUoYCBzdHlsZT1cImNvbG9yOnJnYmEoMjQ1LCA1NCwgNTQsIDAuOSlcIiBgKTtcbiAgICAgICAgZXhwZWN0KGdldENvbG9yKFwiUHVycGxlXCIsIDApKS50b0JlKGAgc3R5bGU9XCJjb2xvcjpQdXJwbGVcIiBgKTtcbiAgICB9KTtcbn0pO1xuZGVzY3JpYmUoXCJQYXJzZSBNYXRoIFRva2Vuc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJTdW1cIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjE1KzVcIiwgMCkpLnRvQmUoMjApO1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjAuMisyLjNcIiwgMCkpLnRvQmUoMyk7XG4gICAgfSk7XG4gICAgaXQoXCJTdWJzdHJhY3Rpb25cIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjE1LTVcIiwgMCkpLnRvQmUoMTApO1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjAuMi0yLjNcIiwgMCkpLnRvQmUoLTIpO1xuICAgIH0pO1xuICAgIGl0KFwiTXVsdGlwbGljYXRpb25cIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjMqNVwiLCAwKSkudG9CZSgxNSk7XG4gICAgICAgIGV4cGVjdChwYXJzZU1hdGhFeHByZXNzaW9uKFwiMC4yKjJcIiwgMCkpLnRvQmUoMCk7XG4gICAgICAgIGV4cGVjdChwYXJzZU1hdGhFeHByZXNzaW9uKFwiMC4zKjJcIiwgMCkpLnRvQmUoMSk7XG4gICAgfSk7XG4gICAgaXQoXCJEaXZpc2lvblwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChwYXJzZU1hdGhFeHByZXNzaW9uKFwiOS81XCIsIDApKS50b0JlKDIpO1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjAuMi8yXCIsIDApKS50b0JlKDApO1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjIuMy8yXCIsIDApKS50b0JlKDEpO1xuICAgIH0pO1xuICAgIGl0KFwiTWluXCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHBhcnNlTWF0aEV4cHJlc3Npb24oXCI5bWluNVwiLCAwKSkudG9CZSg1KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlTWF0aEV4cHJlc3Npb24oXCI1bWluOVwiLCAwKSkudG9CZSg1KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlTWF0aEV4cHJlc3Npb24oXCI5bWluMC40XCIsIDApKS50b0JlKDApO1xuICAgICAgICBleHBlY3QocGFyc2VNYXRoRXhwcmVzc2lvbihcIjVtaW4wLjlcIiwgMCkpLnRvQmUoMSk7XG4gICAgfSk7XG59KTtcbmRlc2NyaWJlKFwiR2V0IEFjdGlhbCBuYW1lIHdpdGhvdXQgdG9rZW5zXCIsICgpID0+IHtcbiAgICBpdChcIlJvdyBhbmQgY29sbmFtZVwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucyhcImhlbGxvXCIpKS50b0JlKFwiaGVsbG9cIik7XG4gICAgICAgIGV4cGVjdChnZXRBY3R1YWxOYW1lV2l0aG91dFRva2VucyhcImhlbGxvIGhvdyBhcmUgeW91IVwiKSkudG9CZShcImhlbGxvIGhvdyBhcmUgeW91IVwiKTtcbiAgICAgICAgZXhwZWN0KGdldEFjdHVhbE5hbWVXaXRob3V0VG9rZW5zKFwiaGVsbG8gX2ZhLWNpcmNsZV8gaG93IGFyZSB5b3VcIikpLnRvQmUoXCJoZWxsbyAgaG93IGFyZSB5b3VcIik7XG4gICAgfSk7XG59KTtcbmRlc2NyaWJlKFwiVGhyZXNob2xkIFZhbGlkYXRvclwiLCAoKSA9PiB7XG4gICAgaXQoXCJCRyBDb2xvcnNcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQoWzEwLCAyMF0sIFtcImdyZWVuXCIsIFwib3JhbmdlXCIsIFwicmVkXCJdLCA1LCBcImJsYWNrXCIpKS50b0JlKFwiZ3JlZW5cIik7XG4gICAgICAgIGV4cGVjdChnZXRJdGVtQmFzZWRPblRocmVzaG9sZChbMTAsIDIwXSwgW1wiZ3JlZW5cIiwgXCJvcmFuZ2VcIiwgXCJyZWRcIl0sIDEwLCBcImJsYWNrXCIpKS50b0JlKFwib3JhbmdlXCIpO1xuICAgICAgICBleHBlY3QoZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQoWzEwLCAyMF0sIFtcImdyZWVuXCIsIFwib3JhbmdlXCIsIFwicmVkXCJdLCAxNSwgXCJibGFja1wiKSkudG9CZShcIm9yYW5nZVwiKTtcbiAgICAgICAgZXhwZWN0KGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkKFsxMCwgMjBdLCBbXCJncmVlblwiLCBcIm9yYW5nZVwiLCBcInJlZFwiLCBcImJsdWVcIl0sIDE1LCBcImJsYWNrXCIpKS50b0JlKFwib3JhbmdlXCIpO1xuICAgICAgICBleHBlY3QoZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQoWzEwLCAyMF0sIFtcImdyZWVuXCIsIFwib3JhbmdlXCIsIFwicmVkXCJdLCAyMCwgXCJibGFja1wiKSkudG9CZShcInJlZFwiKTtcbiAgICAgICAgZXhwZWN0KGdldEl0ZW1CYXNlZE9uVGhyZXNob2xkKFsxMCwgMjBdLCBbXCJncmVlblwiLCBcIm9yYW5nZVwiLCBcInJlZFwiXSwgMjUsIFwiYmxhY2tcIikpLnRvQmUoXCJyZWRcIik7XG4gICAgICAgIGV4cGVjdChnZXRJdGVtQmFzZWRPblRocmVzaG9sZChbMTAsIDIwXSwgW1wiZ3JlZW5cIiwgXCJvcmFuZ2VcIiwgXCJyZWRcIl0sIDIwLCBcImJsYWNrXCIpKS50b0JlKFwicmVkXCIpO1xuICAgICAgICBleHBlY3QoZ2V0SXRlbUJhc2VkT25UaHJlc2hvbGQoWzEwLCAyMF0sIFtcImdyZWVuXCIsIFwib3JhbmdlXCJdLCAyNSwgXCJibGFja1wiKSkudG9CZShcImJsYWNrXCIpO1xuICAgIH0pO1xufSk7XG5kZXNjcmliZShcIk1lcnRpYyBOYW1lIGZyb20gcHJvbWV0aGV1cyAvIGluZmx1eGRiIEFsaWFzXCIsICgpID0+IHtcbiAgICBpdChcIlByb21ldGhldXMgRm9ybWF0XCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoXCJjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHNcIikpLnRvQmUoXCJjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHNcIik7XG4gICAgICAgIGV4cGVjdChnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzKFwiY29udGFpbmVyX2NwdV9sb2FkX2F2ZXJhZ2VfMTBzIFwiKSkudG9CZShcImNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwc1wiKTtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoXCJjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHMge31cIikpLnRvQmUoXCJjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHNcIik7XG4gICAgICAgIGV4cGVjdChnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzKFwiIGNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwcyB7fVwiKSkudG9CZShcImNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwc1wiKTtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoYGNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwc3thZ2VudHBvb2w9XCJhZ2VudHBvb2wxXCJ9YCkpLnRvQmUoXCJjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHNcIik7XG4gICAgICAgIGV4cGVjdChnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzKGBjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHMge2FnZW50cG9vbD1cImFnZW50cG9vbDFcIn1gKSkudG9CZShcImNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwc1wiKTtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoYCBjb250YWluZXJfY3B1X2xvYWRfYXZlcmFnZV8xMHMgeyBhZ2VudHBvb2wgPSBcImFnZW50cG9vbDFcIiB9IGApKS50b0JlKFwiY29udGFpbmVyX2NwdV9sb2FkX2F2ZXJhZ2VfMTBzXCIpO1xuICAgICAgICBleHBlY3QoZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyhgIGNvbnRhaW5lcl9jcHVfbG9hZF9hdmVyYWdlXzEwcyB7IGltYWdlID0gXCJhYmM6Y2JhMTI6aGVsbG9cIiB9IGApKS50b0JlKFwiY29udGFpbmVyX2NwdV9sb2FkX2F2ZXJhZ2VfMTBzXCIpO1xuICAgICAgICBleHBlY3QoZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyhgY29udGFpbmVyX21lbW9yeV91c2FnZV9ieXRlc3tiZXRhX2t1YmVybmV0ZXNfaW9fYXJjaD1cImFtZDY0XCIsYmV0YV9rdWJlcm5ldGVzX2lvX2luc3RhbmNlX3R5cGU9XCJTdGFuZGFyZF9EMl92MlwifWApKS50b0JlKFwiY29udGFpbmVyX21lbW9yeV91c2FnZV9ieXRlc1wiKTtcbiAgICB9KTtcbiAgICBpdChcIkluZmx1eERCIEZvcm1hdFwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzKFwiQ1BVLkNQVSBUSW1lXCIpKS50b0JlKFwiQ1BVLkNQVSBUSW1lXCIpO1xuICAgICAgICBleHBlY3QoZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyhcIkNQVS5DUFUgVEltZSBcIikpLnRvQmUoXCJDUFUuQ1BVIFRJbWVcIik7XG4gICAgICAgIGV4cGVjdChnZXRNZXRyaWNOYW1lRnJvbVRhZ2dlZEFsaWFzKFwiQ1BVLkNQVSBUSW1lIHt9IFwiKSkudG9CZShcIkNQVS5DUFUgVEltZVwiKTtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoXCJDUFUuQ1BVIFRJbWUge2Vudmlyb25tZW50OiAyNzksIGluc3RhbmNlOiBfVG90YWx9XCIpKS50b0JlKFwiQ1BVLkNQVSBUSW1lXCIpO1xuICAgICAgICBleHBlY3QoZ2V0TWV0cmljTmFtZUZyb21UYWdnZWRBbGlhcyhcIiBDUFUuQ1BVIFRJbWUgeyBlbnZpcm9ubWVudDogMjc5LCBpbnN0YW5jZTogX1RvdGFsfVwiKSkudG9CZShcIkNQVS5DUFUgVEltZVwiKTtcbiAgICAgICAgZXhwZWN0KGdldE1ldHJpY05hbWVGcm9tVGFnZ2VkQWxpYXMoXCIgQ1BVLkNQVSBUSW1lIHsgZW52aXJvbm1lbnQ6IDI3OSwgZXF1YXRpb246IGBfVG90YT1sYH1cIikpLnRvQmUoXCJDUFUuQ1BVIFRJbWVcIik7XG4gICAgfSk7XG5cbn0pO1xuZGVzY3JpYmUoXCJWYWx1ZSBuZWVkcyB0byBoaWRkZW5cIiwgKCkgPT4ge1xuICAgIGl0KFwiRGVmYXVsdCBWYWx1ZXNcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHVuZGVmaW5lZCkpLnRvQmUoZmFsc2UpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMCwgeyB2YWx1ZV9iZWxvdzogXCI1XCIgfSkpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgtMiwgeyB2YWx1ZV9iZWxvdzogXCItMVwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMiwgeyB2YWx1ZV9iZWxvdzogXCIxMFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYmVsb3c6IFwiNVwiIH0pKS50b0JlKGZhbHNlKTtcbiAgICAgICAgZXhwZWN0KGRvZXNWYWx1ZU5lZWRzVG9IaWRlKDIsIHsgdmFsdWVfYmVsb3c6IFwiLTFcIiB9KSkudG9CZShmYWxzZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgxNSwgeyB2YWx1ZV9hYm92ZTogXCIxMFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTUsIHsgdmFsdWVfYWJvdmU6IFwiMFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYWJvdmU6IFwiMTVcIiB9KSkudG9CZShmYWxzZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgwLCB7IHZhbHVlX2Fib3ZlOiBcIjE1XCIgfSkpLnRvQmUoZmFsc2UpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMCwgeyB2YWx1ZV9iZWxvdzogXCI1XCIsIHZhbHVlX2Fib3ZlOiBcIi01XCIgfSkpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgxMCwgeyB2YWx1ZV9iZWxvdzogXCIxNVwiLCB2YWx1ZV9hYm92ZTogXCIzMFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYmVsb3c6IFwiNVwiLCB2YWx1ZV9hYm92ZTogXCI1XCIgfSkpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgxMCwgeyB2YWx1ZV9iZWxvdzogXCIxNVwiLCB2YWx1ZV9hYm92ZTogXCI1XCIgfSkpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgxMCwgeyB2YWx1ZV9iZWxvdzogXCIwMTVcIiwgdmFsdWVfYWJvdmU6IFwiMDVcIiB9KSkudG9CZSh0cnVlKTtcbiAgICAgICAgZXhwZWN0KGRvZXNWYWx1ZU5lZWRzVG9IaWRlKDAsIHsgdmFsdWVfYmVsb3c6IFwiNVwiLCB2YWx1ZV9hYm92ZTogXCIyXCIgfSkpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgwLCB7IHZhbHVlX2JlbG93OiBcIjJcIiwgdmFsdWVfYWJvdmU6IFwiNVwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYmVsb3c6IFwiIDAxNSBcIiwgdmFsdWVfYWJvdmU6IFwiIDA1IFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYmVsb3c6IFwiIDUgXCIsIHZhbHVlX2Fib3ZlOiBcIi01IFwiIH0pKS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoZG9lc1ZhbHVlTmVlZHNUb0hpZGUoMTAsIHsgdmFsdWVfYmVsb3c6IFwiMTVcIiwgdmFsdWVfYWJvdmU6IFwiNSBcIiB9KSkudG9CZSh0cnVlKTtcbiAgICAgICAgZXhwZWN0KGRvZXNWYWx1ZU5lZWRzVG9IaWRlKDEwLCB7IHZhbHVlX2JlbG93OiBcIjVcIiwgdmFsdWVfYWJvdmU6IFwiMzBcIiB9KSkudG9CZShmYWxzZSk7XG4gICAgICAgIGV4cGVjdChkb2VzVmFsdWVOZWVkc1RvSGlkZSgxMCwgeyB2YWx1ZV9iZWxvdzogXCIgNSBcIiwgdmFsdWVfYWJvdmU6IFwiIDMwIFwiIH0pKS50b0JlKGZhbHNlKTtcbiAgICAgICAgZXhwZWN0KGRvZXNWYWx1ZU5lZWRzVG9IaWRlKDAsIHsgdmFsdWVfYmVsb3c6IFwiLTJcIiwgdmFsdWVfYWJvdmU6IFwiNVwiIH0pKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcbn0pO1xuIl19 \ No newline at end of file