From 80bf216c97bd565df9f51d903e1f732a1c4291d7 Mon Sep 17 00:00:00 2001 From: Dominik Sigmund <dominik.sigmund@br.de> Date: Wed, 1 Sep 2021 09:16:17 +0200 Subject: [PATCH] Added function to use files --- .gitignore | 0 .gitlab-ci.yml | 0 .npmignore | 0 .npmrc | 0 README.md | 33 ++- docs/mutation/bind-mutation-test-report.js | 1 - docs/mutation/index.html | 217 ++++++++++++++++-- docs/mutation/mutation-test-elements.js | 187 --------------- docs/mutation/stryker-80x80.png | Bin 6194 -> 0 bytes .../defaults-overwrite/config.defaults.json | 0 examples/defaults-overwrite/config.json | 0 examples/defaults-overwrite/index.js | 0 examples/env/config.defaults.json | 0 examples/env/config.json | 0 examples/env/index.js | 0 examples/files/config.defaults.json | 6 + examples/files/config.json | 6 + examples/files/index.js | 4 + examples/files/setting_1.txt | 1 + examples/files/setting_2.txt | 1 + examples/only-defaults/config.defaults.json | 0 examples/only-defaults/index.js | 0 examples/only-local/config.json | 0 examples/only-local/index.js | 0 examples/reload/config.defaults.json | 0 examples/reload/config.json | 0 examples/reload/index.js | 0 index.d.ts | 0 index.js | 50 ++-- index.test.js | 75 +++++- package-lock.json | 0 package.json | 0 stryker.conf.json | 0 33 files changed, 345 insertions(+), 236 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .gitlab-ci.yml mode change 100644 => 100755 .npmignore mode change 100644 => 100755 .npmrc mode change 100644 => 100755 README.md delete mode 100644 docs/mutation/bind-mutation-test-report.js delete mode 100644 docs/mutation/mutation-test-elements.js delete mode 100644 docs/mutation/stryker-80x80.png mode change 100644 => 100755 examples/defaults-overwrite/config.defaults.json mode change 100644 => 100755 examples/defaults-overwrite/config.json mode change 100644 => 100755 examples/defaults-overwrite/index.js mode change 100644 => 100755 examples/env/config.defaults.json mode change 100644 => 100755 examples/env/config.json mode change 100644 => 100755 examples/env/index.js create mode 100755 examples/files/config.defaults.json create mode 100755 examples/files/config.json create mode 100755 examples/files/index.js create mode 100644 examples/files/setting_1.txt create mode 100644 examples/files/setting_2.txt mode change 100644 => 100755 examples/only-defaults/config.defaults.json mode change 100644 => 100755 examples/only-defaults/index.js mode change 100644 => 100755 examples/only-local/config.json mode change 100644 => 100755 examples/only-local/index.js mode change 100644 => 100755 examples/reload/config.defaults.json mode change 100644 => 100755 examples/reload/config.json mode change 100644 => 100755 examples/reload/index.js mode change 100644 => 100755 index.d.ts mode change 100644 => 100755 index.js mode change 100644 => 100755 index.test.js mode change 100644 => 100755 package-lock.json mode change 100644 => 100755 package.json mode change 100644 => 100755 stryker.conf.json diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml old mode 100644 new mode 100755 diff --git a/.npmignore b/.npmignore old mode 100644 new mode 100755 diff --git a/.npmrc b/.npmrc old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 305e6ba..2b27265 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # config -Simple Config with ENV Support. +Simple Config with ENV and Files Support. ## Installation -- `npm install --save @plastdev/config` +- `npm install --save @general/config` ## Usage -`const Config = require('@plastdev/config')` +`const Config = require('@general/config')` `let config = new Config([basePath])` Then config is your config object. (Use it like config.setting) @@ -31,6 +31,25 @@ This makes *reload* a reserved keyword If you give a basePath, the config-Files are used from there. Else the main dir of the application will be used. +### Values + +You may use direct values like strings or numbers: + +```json +{ + "key": "value" +} +``` + +You can also use files to read the value from. This makes the config compatible with e.g. secrets: + +```json +{ + "key": "file:/path/to/file" +} +``` + + ## Examples ### Only config.defaults.json @@ -51,4 +70,10 @@ Else the main dir of the application will be used. (Enviroment set by command to not pollute your machine) -`SETTING=overwritten-by-env node examples/env/index.js` \ No newline at end of file +`SETTING=overwritten-by-env node examples/env/index.js` + +### use files to read from + +(Enviroment set by command to not pollute your machine) + +`SETTING=file:examples/files/setting_1.txt node examples/files/index.js` diff --git a/docs/mutation/bind-mutation-test-report.js b/docs/mutation/bind-mutation-test-report.js deleted file mode 100644 index 837227a..0000000 --- a/docs/mutation/bind-mutation-test-report.js +++ /dev/null @@ -1 +0,0 @@ -document.querySelector('mutation-test-report-app').report = {"files":{"/Users/sigmundd/Code/config/index.js":{"language":"javascript","mutants":[{"id":"0","location":{"end":{"column":22,"line":1},"start":{"column":18,"line":1}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"1","location":{"end":{"column":26,"line":2},"start":{"column":20,"line":2}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"8","location":{"end":{"column":130,"line":12},"start":{"column":75,"line":12}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed"},{"id":"9","location":{"end":{"column":129,"line":12},"start":{"column":111,"line":12}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed"},{"id":"3","location":{"end":{"column":2,"line":51},"start":{"column":29,"line":5}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"2","location":{"end":{"column":35,"line":3},"start":{"column":21,"line":3}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"12","location":{"end":{"column":2,"line":25},"start":{"column":42,"line":15}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"13","location":{"end":{"column":31,"line":17},"start":{"column":28,"line":17}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"14","location":{"end":{"column":29,"line":19},"start":{"column":20,"line":19}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed"},{"id":"15","location":{"end":{"column":29,"line":19},"start":{"column":20,"line":19}},"mutatorName":"EqualityOperator","replacement":"i <= len - 1","status":"Killed"},{"id":"19","location":{"end":{"column":6,"line":23},"start":{"column":36,"line":19}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"20","location":{"end":{"column":26,"line":21},"start":{"column":13,"line":21}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed"},{"id":"21","location":{"end":{"column":26,"line":21},"start":{"column":13,"line":21}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Survived"},{"id":"5","location":{"end":{"column":81,"line":7},"start":{"column":68,"line":7}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"4","location":{"end":{"column":93,"line":6},"start":{"column":71,"line":6}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"22","location":{"end":{"column":26,"line":21},"start":{"column":13,"line":21}},"mutatorName":"BooleanLiteral","replacement":"schema[elem]","status":"Killed"},{"id":"23","location":{"end":{"column":23,"line":24},"start":{"column":18,"line":24}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed"},{"id":"24","location":{"end":{"column":4,"line":30},"start":{"column":7,"line":27}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"6","location":{"end":{"column":4,"line":13},"start":{"column":41,"line":11}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"7","location":{"end":{"column":69,"line":12},"start":{"column":36,"line":12}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"27","location":{"end":{"column":44,"line":31},"start":{"column":17,"line":31}},"mutatorName":"ArithmeticOperator","replacement":"'No File ' - configDefaults","status":"Survived"},{"id":"29","location":{"end":{"column":4,"line":37},"start":{"column":7,"line":34}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"28","location":{"end":{"column":27,"line":31},"start":{"column":17,"line":31}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived"},{"id":"32","location":{"end":{"column":41,"line":38},"start":{"column":17,"line":38}},"mutatorName":"ArithmeticOperator","replacement":"'No File ' - configLocal","status":"Survived"},{"id":"10","location":{"end":{"column":129,"line":12},"start":{"column":116,"line":12}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"11","location":{"end":{"column":160,"line":12},"start":{"column":139,"line":12}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"33","location":{"end":{"column":27,"line":38},"start":{"column":17,"line":38}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived"},{"id":"34","location":{"end":{"column":42,"line":42},"start":{"column":23,"line":42}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed"},{"id":"35","location":{"end":{"column":42,"line":42},"start":{"column":23,"line":42}},"mutatorName":"EqualityOperator","replacement":"index <= keys.length","status":"Killed"},{"id":"16","location":{"end":{"column":29,"line":19},"start":{"column":20,"line":19}},"mutatorName":"EqualityOperator","replacement":"i >= len - 1","status":"Timeout"},{"id":"17","location":{"end":{"column":29,"line":19},"start":{"column":24,"line":19}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Timeout"},{"id":"38","location":{"end":{"column":4,"line":48},"start":{"column":53,"line":42}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"39","location":{"end":{"column":62,"line":44},"start":{"column":59,"line":44}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"18","location":{"end":{"column":34,"line":19},"start":{"column":31,"line":19}},"mutatorName":"UpdateOperator","replacement":"i--","status":"Timeout"},{"id":"40","location":{"end":{"column":67,"line":44},"start":{"column":64,"line":44}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed"},{"id":"43","location":{"end":{"column":6,"line":47},"start":{"column":14,"line":45}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed"},{"id":"25","location":{"end":{"column":63,"line":29},"start":{"column":57,"line":29}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"26","location":{"end":{"column":4,"line":32},"start":{"column":18,"line":30}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"36","location":{"end":{"column":42,"line":42},"start":{"column":23,"line":42}},"mutatorName":"EqualityOperator","replacement":"index >= keys.length","status":"Killed"},{"id":"37","location":{"end":{"column":51,"line":42},"start":{"column":44,"line":42}},"mutatorName":"UpdateOperator","replacement":"index--","status":"Killed"},{"id":"30","location":{"end":{"column":74,"line":36},"start":{"column":68,"line":36}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"31","location":{"end":{"column":4,"line":39},"start":{"column":19,"line":37}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"41","location":{"end":{"column":12,"line":45},"start":{"column":9,"line":45}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed"},{"id":"42","location":{"end":{"column":12,"line":45},"start":{"column":9,"line":45}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed"}],"source":"var fs = require('fs')\nvar path = require('path')\nvar merge = require('lodash.merge')\n\nmodule.exports = function() {\n let configDefaults = path.join(path.dirname(require.main.filename), 'config.defaults.json')\n let configLocal = path.join(path.dirname(require.main.filename), 'config.json')\n \n let config = {}\n \n const objectDeepKeys = function (obj) {\n return Object.keys(obj).filter(key => obj[key] instanceof Object).map(key => objectDeepKeys(obj[key]).map(k => `${key}.${k}`)).reduce((x, y) => x.concat(y), Object.keys(obj))\n }\n \n const set = function(obj, path, value) {\n var schema = obj // a moving reference to internal objects within obj\n var pList = path.split('.')\n var len = pList.length\n for(var i = 0; i < len-1; i++) {\n var elem = pList[i]\n if( !schema[elem] ) schema[elem] = {}\n schema = schema[elem]\n }\n schema[pList[len-1]] = value\n}\n\n try {\n fs.accessSync(configDefaults)\n config = JSON.parse(fs.readFileSync(configDefaults, 'utf8'))\n } catch(error) {\n console.log('No File ' + configDefaults)\n }\n \n try {\n fs.accessSync(configLocal)\n config = merge(config, JSON.parse(fs.readFileSync(configLocal, 'utf8')))\n } catch (error) {\n console.log('No File ' + configLocal)\n }\n \n let keys = objectDeepKeys(config)\n for (let index = 0; index < keys.length; index++) {\n const element = keys[index]\n const env = process.env[element.toUpperCase().replace('.', '_')]\n if (env) {\n set(config, element, env)\n }\n }\n\n return config\n}"}},"schemaVersion":"1.0","thresholds":{"break":null,"high":80,"low":60}}; \ No newline at end of file diff --git a/docs/mutation/index.html b/docs/mutation/index.html index 8a92964..7686af9 100644 --- a/docs/mutation/index.html +++ b/docs/mutation/index.html @@ -1,19 +1,206 @@ <!DOCTYPE html> -<html> - -<head> + <html> + <head> <meta charset="utf-8"> - <script src="mutation-test-elements.js"></script> -</head> - -<body> - <img class="stryker-image" alt="Stryker" src="stryker-80x80.png" - style="position: fixed; right: 0; top: 0; z-index: 10"> + <script> + /*! For license information please see mutation-test-elements.js.LICENSE.txt */ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=33)}([function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.schema=void 0,o(n(17),t);const s=i(n(18));t.schema=s.default},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<e.length;a++){var l=[].concat(e[a]);r&&o[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareNames=t.normalizeFileNames=t.pathJoin=t.groupBy=t.flatMap=void 0;t.flatMap=function(e,t){const n=[];return e.map(t).forEach((e=>n.push(...e))),n},t.groupBy=function(e,t){return e.reduce(((e,n)=>{const r=t(n);return Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(n),e}),{})},t.pathJoin=function(...e){return e.reduce(((e,t)=>e.length?t?`${e}/${t}`:e:t),"")},t.normalizeFileNames=function(e){const t=Object.keys(e),n=function(e){const t=e.map((e=>e.split(/\/|\\/).slice(0,-1)));return e.length?t.reduce(n).join("/"):"";function n(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e.splice(0,n);return e}}(t),r={};return t.forEach((t=>{r[function(e){return e.split(/\/|\\/).filter((e=>e)).join("/")}(t.substr(n.length))]=e[t]})),r},t.compareNames=function(e,t){const n=e=>e.file?"1"+e.name:"0"+e.name;return n(e).localeCompare(n(t))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeFileNames=t.calculateMetrics=void 0;const r=n(16);Object.defineProperty(t,"calculateMetrics",{enumerable:!0,get:function(){return r.calculateMetrics}});const o=n(2);Object.defineProperty(t,"normalizeFileNames",{enumerable:!0,get:function(){return o.normalizeFileNames}})},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n *//*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--caution:#fd7e14;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.h1,.h3,.h5,h1,h3,h5{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h3,h3{font-size:1.75rem}.h5,h5{font-size:1.25rem}.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}.small,small{font-size:80%;font-weight:400}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-12,.col-sm-11{position:relative;width:100%;padding-right:15px;padding-left:15px}@media(min-width:576px){.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}}@media(min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-caution{color:#212529;background-color:#fd7e14}a.badge-caution:focus,a.badge-caution:hover{color:#212529;background-color:#dc6502}a.badge-caution:focus{outline:0;box-shadow:0 0 0 .2rem rgba(253,126,20,.5)}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}@-webkit-keyframes progress-bar-stripes{to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.show .modal-dialog{transform:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover{position:absolute;display:block}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-caution{background-color:#fd7e14!important}a.bg-caution:focus,a.bg-caution:hover,button.bg-caution:focus,button.bg-caution:hover{background-color:#dc6502!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-white{color:#fff!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-caution{color:#fd7e14!important}a.text-caution:focus,a.text-caution:hover{color:#c35a02!important}.text-muted{color:#6c757d!important}@media print{*{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}pre{white-space:pre-wrap!important}pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}}:host{background-color:var(--bs-body-bs);color:var(--bs-body-color)}.bg-secondary{background-color:var(--bs-secondary-bg)!important}.bg-success{background-color:var(--bs-success-bg)!important}.bg-warning{background-color:var(--bs-warning-bg)!important}.bg-danger{background-color:var(--bs-danger-bg)!important}.bg-caution{background-color:var(--bs-caution-bg)!important}.btn,.btn:hover{color:var(--bs-body-color)}.btn:hover{text-decoration:none}.btn-secondary{color:var(--bs-btn-secondary-color)}.btn-secondary:hover{color:var(--bs-btn-secondary-hover-color)}.badge-secondary{color:var(--bs-badge-secondary-color);background-color:var(--bs-badge-secondary-bg)}.badge-success{color:var(--bs-badge-success-color);background-color:var(--bs-badge-success-bg)}.badge-info{color:var(--bs-badge-info-color);background-color:var(--bs-badge-info-bg)}.badge-warning{color:var(--bs-badge-warning-color);background-color:var(--bs-badge-warning-bg)}.badge-danger{color:var(--bs-badge-danger-color);background-color:var(--bs-badge-danger-bg)}.badge-caution{color:var(--bs-badge-caution-color);background-color:var(--bs-badge-caution-bg)}.modal-content{background-color:var(--bs-modal-content-bg);border-color:var(--bs-modal-content-border-color)}.modal-header{border-bottom:var(--bs-modal-header-border-color)}a{color:var(--bs-link-color)}a:hover{color:var(--bs-link-hover-color)}.popover{background-color:var(--bs-popover-bg)}.table{color:var(--bs-body-color)}.table-hover tbody tr:hover{color:var(--bs-body-color);background-color:var(--bs-table-hover-bg)}.progress{background-color:var(--bs-progress-bg)}.breadcrumb a{color:var(--bs-link-color)}.breadcrumb{background-color:var(--bs-breadcrumb-bg)}.breadcrumb-item.active,.breadcrumb-item:before{color:var(--bs-breadcrumb-active-color)}',""]),e.exports=r},function(e,t,n){var r=n(1),o=n(19),i=n(20),s=r((function(e){return e[1]}));s.i(o),s.i(i),s.push([e.i,"",""]),e.exports=s},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,":host{line-height:1.15;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;text-align:left}.container-fluid,:host{background-color:var(--bs-body-bg)}.display-4 small{font-weight:300}.theme-switch{float:right;top:0;top:var(--top-offset,0);position:-webkit-sticky;position:sticky;z-index:20;margin-right:1em;margin-left:1em;padding-top:.5em}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}:host(:not([theme=dark])){--bs-link-color:#007bff;--bs-link-hover-color:#0056b3;--bs-breadcrumb-bg:#e9ecef;--bs-breadcrumb-active-color:#6c757d;--bs-body-bg:#fff;--bs-body-color:#212529;--bs-table-border-color:#dee2e6;--bs-table-hover-bg:rgba(0,0,0,0.075);--bs-popover-bg:#fff;--bs-popover-header-bg:#f7f7f7;--bs-modal-content-bg:#fff;--bs-modal-content-border-color:rgba(0,0,0,0.2);--bs-modal-header-border-color:#dee2e6;--bs-progress-bg:#e9ecef;--bs-table-caution-bg:#fedbbd;--bs-table-caution-hover-bg:#f57102;--bs-badge-caution-color:#212529;--bs-badge-caution-bg:#fd7e14;--bs-btn-caution-color:#212529;--bs-btn-caution-hover-color:#fff;--bs-caution-bg:#fd7e14;--bs-table-primary-bg:#b8daff;--bs-table-primary-hover-bg:#006fe6;--bs-badge-primary-color:#fff;--bs-badge-primary-bg:#007bff;--bs-btn-primary-color:#fff;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#007bff;--bs-table-secondary-bg:#d6d8db;--bs-table-secondary-hover-bg:#60686f;--bs-badge-secondary-color:#fff;--bs-badge-secondary-bg:#6c757d;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#6c757d;--bs-table-success-bg:#c3e6cb;--bs-table-success-hover-bg:#23923d;--bs-badge-success-color:#fff;--bs-badge-success-bg:#28a745;--bs-btn-success-color:#fff;--bs-btn-success-hover-color:#fff;--bs-success-bg:#28a745;--bs-table-info-bg:#bee5eb;--bs-table-info-hover-bg:#148ea1;--bs-badge-info-color:#fff;--bs-badge-info-bg:#17a2b8;--bs-btn-info-color:#fff;--bs-btn-info-hover-color:#fff;--bs-info-bg:#17a2b8;--bs-table-warning-bg:#ffeeba;--bs-table-warning-hover-bg:#edb100;--bs-badge-warning-color:#212529;--bs-badge-warning-bg:#ffc107;--bs-btn-warning-color:#212529;--bs-btn-warning-hover-color:#212529;--bs-warning-bg:#ffc107;--bs-table-danger-bg:#f5c6cb;--bs-table-danger-hover-bg:#d32535;--bs-badge-danger-color:#fff;--bs-badge-danger-bg:#dc3545;--bs-btn-danger-color:#fff;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#dc3545;--bs-table-light-bg:#fdfdfe;--bs-table-light-hover-bg:#e9ecef;--bs-badge-light-color:#212529;--bs-badge-light-bg:#f8f9fa;--bs-btn-light-color:#212529;--bs-btn-light-hover-color:#212529;--bs-light-bg:#f8f9fa;--bs-table-dark-bg:#c6c8ca;--bs-table-dark-hover-bg:#292d32;--bs-badge-dark-color:#fff;--bs-badge-dark-bg:#343a40;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#343a40;--bs-anchor:#fff}:host([theme=dark]){--bs-link-color:#00bc8c;--bs-link-hover-color:#d9d9d9;--bs-breadcrumb-bg:#444;--bs-breadcrumb-active-color:#888;--bs-body-bg:#222;--bs-body-color:#fff;--bs-table-border-color:#444;--bs-table-hover-bg:rgba(0,0,0,0.075);--bs-popover-bg:#303030;--bs-popover-header-bg:#444;--bs-modal-content-bg:#303030;--bs-modal-content-border-color:#444;--bs-modal-header-border-color:#444;--bs-progress-bg:#444;--bs-table-primary-bg:#375a7f;--bs-table-primary-hover-bg:#2f4d6d;--bs-badge-primary-color:#fff;--bs-badge-primary-bg:#375a7f;--bs-btn-primary-color:#fff;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#375a7f;--bs-table-secondary-bg:#444;--bs-table-secondary-hover-bg:#373737;--bs-badge-secondary-color:#fff;--bs-badge-secondary-bg:#444;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#444;--bs-table-success-bg:#00bc8c;--bs-table-success-hover-bg:#00a379;--bs-badge-success-color:#fff;--bs-badge-success-bg:#00bc8c;--bs-btn-success-color:#fff;--bs-btn-success-hover-color:#fff;--bs-success-bg:#00bc8c;--bs-table-info-bg:#3498db;--bs-table-info-hover-bg:#258cd1;--bs-badge-info-color:#fff;--bs-badge-info-bg:#3498db;--bs-btn-info-color:#fff;--bs-btn-info-hover-color:#fff;--bs-info-bg:#3498db;--bs-table-warning-bg:#f39c12;--bs-table-warning-hover-bg:#e08e0b;--bs-badge-warning-color:#212529;--bs-badge-warning-bg:#f39c12;--bs-btn-warning-color:#212529;--bs-btn-warning-hover-color:#fff;--bs-warning-bg:#f39c12;--bs-table-danger-bg:#e74c3c;--bs-table-danger-hover-bg:#e43725;--bs-badge-danger-color:#fff;--bs-badge-danger-bg:#e74c3c;--bs-btn-danger-color:#fff;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#e74c3c;--bs-table-light-bg:#adb5bd;--bs-table-light-hover-bg:#9fa8b2;--bs-badge-light-color:#212529;--bs-badge-light-bg:#adb5bd;--bs-btn-light-color:#212529;--bs-btn-light-hover-color:#212529;--bs-light-bg:#adb5bd;--bs-table-caution-bg:#fd7e14;--bs-table-caution-hover-bg:#f57102;--bs-badge-caution-color:#212529;--bs-badge-caution-bg:#fd7e14;--bs-btn-caution-color:#212529;--bs-btn-caution-hover-color:#fff;--bs-caution-bg:#fd7e14;--bs-table-dark-bg:#303030;--bs-table-dark-hover-bg:#232323;--bs-badge-dark-color:#fff;--bs-badge-dark-bg:#303030;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#303030}:host(:not([theme=dark])){--prism-maintext:#000;--prism-background:#f5f2f0;--prism-text:#999;--prism-keywords:#07a;--prism-punctuation:#999;--prism-functions:#dd4a68;--prism-strings:#690;--prism-namespace:#708090;--prism-names:#905;--prism-symbol:#dd4a68;--prism-url:#67cdcc}:host([theme=dark]){--prism-maintext:#ccc;--prism-background:#2d2d2d;--prism-text:#999;--prism-keywords:#cc99cd;--prism-punctuation:#ccc;--prism-functions:#f08d49;--prism-strings:#7ec699;--prism-namespace:#e2777a;--prism-names:#6196cc;--prism-symbol:#f8c555;--prism-url:#9a6e3a}:host(:not([theme=dark])){--mut-file-ts-color:#498ba7;--mut-file-scala-color:#b8383d;--mut-file-java-color:#b8383d;--mut-file-js-color:#b7b73b;--mut-file-php-color:#9068b0;--mut-file-html-color:#498ba7;--mut-file-csharp-color:#498ba7;--mut-file-vue-color:#7fae42}:host([theme=dark]){--mut-file-ts-color:#519aba;--mut-file-scala-color:#cc3e44;--mut-file-java-color:#cc3e44;--mut-file-js-color:#cbcb41;--mut-file-php-color:#a074c4;--mut-file-html-color:#519aba;--mut-file-csharp-color:#519aba;--mut-file-vue-color:#8dc149}:host(:not([theme=dark])){--mut-danger-bg:#f2dede;--mut-success-bg:#dff0d8;--mut-warning-bg:#fcf8e3;--mut-caution-bg:#ffedde;--mut-table-icon-color:#498ba7}:host([theme=dark]){--mut-danger-bg:#270c0c;--mut-success-bg:#2f3d33;--mut-warning-bg:#24200b;--mut-caution-bg:#441f01;--mut-table-icon-color:#519aba}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}:host{position:relative;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popover{width:200px;z-index:1;top:125%;margin-left:-100px;visibility:hidden;opacity:0;transition:.1s ease-in}.popover,.popover:before{position:absolute;left:50%}.popover:before{content:"";top:-10px;margin-left:-6px;border:6px solid transparent;border-bottom-color:#555}.popover-caution:before{border-bottom-color:var(--bs-caution-bg)}.popover-secondary:before{border-bottom-color:var(--bs-secondary-bg)}.popover-success:before{border-bottom-color:var(--bs-success-bg)}.popover-warning:before{border-bottom-color:var(--bs-warning-bg)}.popover-danger:before{border-bottom-color:var(--bs-danger-bg)}.popover.show{visibility:visible;opacity:1}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".badge{cursor:pointer}.disabled-code{text-decoration:line-through}span.badge{text-shadow:none}",""]),e.exports=r},function(e,t,n){(function(t){var n=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var o,i;switch(n=n||{},r.util.type(t)){case"Object":if(i=r.util.objId(t),n[i])return n[i];for(var s in o={},n[i]=o,t)t.hasOwnProperty(s)&&(o[s]=e(t[s],n));return o;case"Array":return i=r.util.objId(t),n[i]?n[i]:(o=[],n[i]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(e){for(;e&&!t.test(e.className);)e=e.parentElement;return e?(e.className.match(t)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var i=(o=o||r.languages)[e],s={};for(var a in i)if(i.hasOwnProperty(a)){if(a==t)for(var l in n)n.hasOwnProperty(l)&&(s[l]=n[l]);n.hasOwnProperty(a)||(s[a]=i[a])}var c=o[e];return o[e]=s,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=s)})),s},DFS:function e(t,n,o,i){i=i||{};var s=r.util.objId;for(var a in t)if(t.hasOwnProperty(a)){n.call(t,a,t[a],o||a);var l=t[a],c=r.util.type(l);"Object"!==c||i[s(l)]?"Array"!==c||i[s(l)]||(i[s(l)]=!0,e(l,n,a,i)):(i[s(l)]=!0,e(l,n,null,i))}}},plugins:{},highlightAll:function(e,t){r.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var o={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",o),o.elements=Array.prototype.slice.apply(o.container.querySelectorAll(o.selector)),r.hooks.run("before-all-elements-highlight",o);for(var i,s=0;i=o.elements[s++];)r.highlightElement(i,!0===t,o.callback)},highlightElement:function(n,o,i){var s=r.util.getLanguage(n),a=r.languages[s];n.className=n.className.replace(t,"").replace(/\s+/g," ")+" language-"+s;var l=n.parentElement;l&&"pre"===l.nodeName.toLowerCase()&&(l.className=l.className.replace(t,"").replace(/\s+/g," ")+" language-"+s);var c={element:n,language:s,grammar:a,code:n.textContent};function d(e){c.highlightedCode=e,r.hooks.run("before-insert",c),c.element.innerHTML=c.highlightedCode,r.hooks.run("after-highlight",c),r.hooks.run("complete",c),i&&i.call(c.element)}if(r.hooks.run("before-sanity-check",c),!c.code)return r.hooks.run("complete",c),void(i&&i.call(c.element));if(r.hooks.run("before-highlight",c),c.grammar)if(o&&e.Worker){var u=new Worker(r.filename);u.onmessage=function(e){d(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else d(r.highlight(c.code,c.grammar,c.language));else d(r.util.encode(c.code))},highlight:function(e,t,n){var i={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",i),i.tokens=r.tokenize(i.code,i.grammar),r.hooks.run("after-tokenize",i),o.stringify(r.util.encode(i.tokens),i.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return a(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,i=0;o=n[i++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function i(e,t,n,s,c,d){for(var u in n)if(n.hasOwnProperty(u)&&n[u]){var p=n[u];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==u+","+h)return;var b=p[h],f=b.inside,m=!!b.lookbehind,g=!!b.greedy,v=0,y=b.alias;if(g&&!b.pattern.global){var w=b.pattern.toString().match(/[imsuy]*$/)[0];b.pattern=RegExp(b.pattern.source,w+"g")}for(var x=b.pattern||b,k=s.next,_=c;k!==t.tail&&!(d&&_>=d.reach);_+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof o)){var E=1;if(g&&k!=t.tail.prev){if(x.lastIndex=_,!(T=x.exec(e)))break;var P=T.index+(m&&T[1]?T[1].length:0),C=T.index+T[0].length,M=_;for(M+=k.value.length;P>=M;)M+=(k=k.next).value.length;if(_=M-=k.value.length,k.value instanceof o)continue;for(var $=k;$!==t.tail&&(M<C||"string"==typeof $.value);$=$.next)E++,M+=$.value.length;E--,S=e.slice(_,M),T.index-=_}else{x.lastIndex=0;var T=x.exec(S)}if(T){m&&(v=T[1]?T[1].length:0);P=T.index+v;var j=T[0].slice(v),N=(C=P+j.length,S.slice(0,P)),A=S.slice(C),z=_+S.length;d&&z>d.reach&&(d.reach=z);var F=k.prev;N&&(F=a(t,F,N),_+=N.length),l(t,F,E),k=a(t,F,new o(u,f?r.tokenize(j,f):j,y,j)),A&&a(t,k,A),E>1&&i(e,t,n,k.prev,_,{cause:u+","+h,reach:z})}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function a(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}if(e.Prism=r,o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var i={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},s=t.alias;s&&(Array.isArray(s)?Array.prototype.push.apply(i.classes,s):i.classes.push(s)),r.hooks.run("wrap",i);var a="";for(var l in i.attributes)a+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,""")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+a+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),o=n.language,i=n.code,s=n.immediateClose;e.postMessage(r.highlight(i,r.languages[o],o)),s&&e.close()}),!1),r):r;var c=r.util.currentScript();function d(){r.manual||r.highlightAll()}if(c&&(r.filename=c.src,c.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var u=document.readyState;"loading"===u||"interactive"===u&&c&&c.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n)}).call(this,n(21))},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.bg-danger-light{background-color:#f2dede;background-color:var(--mut-danger-bg,#f2dede)}.bg-success-light{background-color:#dff0d8;background-color:var(--mut-success-bg,#dff0d8)}.bg-warning-light{background-color:#fcf8e3;background-color:var(--mut-warning-bg,#fcf8e3)}.bg-caution-light{background-color:var(--mut-caution-bg)}#report-code-block{overflow:visible}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".table a{display:block}th.rotate{height:80px;white-space:nowrap;padding-bottom:10px}th.rotate>div{transform:translate(27px) rotate(325deg);width:30px}.table-no-top,.table-no-top>thead>tr>th{border-width:0}.table-no-top{margin-bottom:0}.table .no-border-right{border-right:none}.table .no-border-left{border-left:none}table td.icon{color:var(--mut-table-icon-color);padding-left:10px;padding-right:2px}.octicon{fill:currentColor}table td.vertical-middle,table th.vertical-middle{vertical-align:middle}.text-default{color:#777}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".modal-dialog{margin-top:5.15rem}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".legend{position:-webkit-sticky;position:sticky;top:0;top:var(--top-offset,0);background:var(--bs-body-bg);margin-top:.5rem;margin-bottom:.5rem;padding-top:.5rem;padding-bottom:.5rem;z-index:10}.badge{font-size:1em;cursor:pointer}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'#darkTheme{position:absolute;right:100vw}#darkTheme+label{--i:0;--j:calc(1 - var(--i));display:grid;grid-gap:.15em .06em;overflow:hidden;padding:.15em;height:1.5em;border-radius:.75em;background:hsl(199,98%,calc(var(--j)*48%));color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:.3s;cursor:pointer}#darkTheme+label:after,#darkTheme+label:before{width:1.2em;height:1.2em;transition:inherit;content:""}#darkTheme+label:before{transform-origin:20% 20%;transform:translate(calc(var(--i)*(100% + .06em))) scale(calc(1 - var(--i)*0.8));background:#ff0;--poly:polygon(44.133707561% 12.9616872277%,50% 0%,55.866292439% 12.9616872277%,59.7057141913% 13.7777815142%,63.4387981079% 14.9907340064%,67.0246437402% 16.5872553429%,79.3892626146% 9.5491502813%,76.5165042945% 23.4834957055%,79.1429735546% 26.4004853356%,81.450146298% 29.5760361869%,83.4127446571% 32.9753562598%,97.5528258148% 34.5491502813%,87.0383127723% 44.133707561%,87.4486075533% 48.0374016409%,87.4486075533% 51.9625983591%,87.0383127723% 55.866292439%,97.5528258148% 65.4508497187%,83.4127446571% 67.0246437402%,81.450146298% 70.4239638131%,79.1429735546% 73.5995146644%,76.5165042945% 76.5165042945%,79.3892626146% 90.4508497187%,67.0246437402% 83.4127446571%,63.4387981079% 85.0092659936%,59.7057141913% 86.2222184858%,55.866292439% 87.0383127723%,50% 100%,44.133707561% 87.0383127723%,40.2942858087% 86.2222184858%,36.561201892% 85.0092659936%,32.9753562598% 83.4127446571%,20.6107373854% 90.4508497187%,23.4834957055% 76.5165042945%,20.8570264454% 73.5995146644%,18.5498537021% 70.4239638131%,16.587255343% 67.0246437402%,2.4471741856% 65.4508497188%,12.9616872286% 55.8662924391%,12.5513924487% 51.9625983594%,12.5513924508% 48.0374016414%,12.961687236% 44.1337075622%,2.4471742159% 34.5491502859%,16.587255404% 32.9753562694%,18.5498538164% 29.5760362054%,20.8570266557% 26.4004853707%,23.4834960862% 23.4834957706%,20.6107385856% 9.5491504949%,32.97535832% 16.5872557238%,36.5612054098% 14.9907346728%,40.2942917387% 13.7777826649%);-webkit-clip-path:var(--poly);clip-path:var(--poly)}#darkTheme+label:after{grid-column:2;border-radius:50%;transform:translatey(calc(var(--i)*(-130% - .15em)));background:radial-gradient(circle at 19%,at 19%,transparent 41%,#fff 43%);background:radial-gradient(circle at 19% 19%,transparent 41%,#fff 43%)}#darkTheme:checked+label{--i:1}.check-box-container{width:2.9em}',""]),e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMetrics=void 0;const r=n(2),o=n(0),i=n(2);function s(e,t){const n=a(r.flatMap(Object.values(e),(e=>e.mutants)));return{name:t,childResults:function(e){const t=i.groupBy(Object.entries(e),(e=>e[0].split("/")[0]));return Object.keys(t).map((e=>{if(t[e].length>1||t[e][0][0]!==e){const n={};return t[e].forEach((t=>n[t[0].substr(e.length+1)]=t[1])),s(n,e)}return function(e,t){return{file:t,name:e,childResults:[],metrics:a(t.mutants)}}(t[e][0][0],t[e][0][1])})).sort(r.compareNames)}(e),metrics:n}}function a(e){const t=t=>e.filter((e=>e.status===t)).length,n=t(o.MutantStatus.Killed),r=t(o.MutantStatus.Timeout),i=t(o.MutantStatus.Survived),s=t(o.MutantStatus.NoCoverage),a=t(o.MutantStatus.RuntimeError),l=t(o.MutantStatus.CompileError),c=t(o.MutantStatus.Ignored),d=r+n,u=i+s,p=d+i,h=u+d,b=a+l;return{killed:n,timeout:r,survived:i,noCoverage:s,runtimeErrors:a,compileErrors:l,ignored:c,totalDetected:d,totalUndetected:u,totalCovered:p,totalValid:h,totalInvalid:b,mutationScore:h>0?d/h*100:NaN,totalMutants:h+b+c,mutationScoreBasedOnCoveredCode:h>0?d/p*100||0:NaN}}t.calculateMetrics=function(e){return s(r.normalizeFileNames(e),"All files")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MutantStatus=void 0,function(e){e.Killed="Killed",e.Survived="Survived",e.NoCoverage="NoCoverage",e.CompileError="CompileError",e.RuntimeError="RuntimeError",e.Timeout="Timeout",e.Ignored="Ignored"}(t.MutantStatus||(t.MutantStatus={}))},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://stryker-mutator.io/report.schema.json","title":"MutationTestResult","description":"Schema for a mutation testing report.","type":"object","required":["schemaVersion","thresholds","files"],"properties":{"config":{"description":"Free-format object that represents the configuration used to run mutation testing.","type":"object"},"schemaVersion":{"type":"string","pattern":"^1(\\\\.\\\\d*)?$","description":"Major version of this report. Used for compatibility.","examples":["1"]},"files":{"type":"object","title":"FileResultDictionary","description":"All mutated files.","additionalProperties":{"type":"object","title":"FileResult","description":"Mutated file, with the relative path of the file as the key.","required":["language","source","mutants"],"properties":{"language":{"description":"Programming language that is used. Used for code highlighting, see https://prismjs.com/#examples.","examples":["javascript","typescript","cs","scala","java"],"type":"string"},"mutants":{"type":"array","uniqueItems":true,"items":{"type":"object","title":"MutantResult","description":"Single mutation.","required":["id","mutatorName","location","status"],"properties":{"coveredBy":{"type":"array","description":"The test ids that covered this mutant. If a mutation testing framework doesn\'t measure this information, it can simply be left out.","items":{"type":"string"}},"description":{"type":"string","description":"Description of the applied mutation.","examples":["removed call to java/io/Writer::write"]},"duration":{"type":"number","description":"The net time it took to test this mutant in milliseconds. This is the time measurement without overhead from the mutation testing framework."},"id":{"type":"string","description":"Unique id, can be used to correlate this mutant across reports.","examples":["321321"]},"killedBy":{"type":"array","description":"The test ids that killed this mutant. It is a best practice to \\"bail\\" on first failing test, in which case you can fill this array with that one test.","items":{"type":"string"}},"location":{"$ref":"#/definitions/location"},"mutatorName":{"type":"string","description":"Category of the mutation.","examples":["ConditionalExpression","EqualityOperator","LogicalOperator"]},"replacement":{"type":"string","description":"Actual mutation that has been applied.","examples":["-","+","&&","||"]},"static":{"type":"boolean","description":"A static mutant means that it was loaded once at during initialization, this makes it slow or even impossible to test, depending on the mutation testing framework."},"status":{"type":"string","title":"MutantStatus","description":"Result of the mutation.","enum":["Killed","Survived","NoCoverage","CompileError","RuntimeError","Timeout","Ignored"]},"testsCompleted":{"type":"number","description":"The number of tests actually completed in order to test this mutant. Can differ from \\"coveredBy\\" because of bailing a mutant test run after first failing test."}}}},"source":{"description":"Full source code of the mutated file, this is used for highlighting.","examples":["using System; using....."],"type":"string"}}}},"testFiles":{"type":"object","title":"TestFileDefinitionDictionary","description":"Test file definitions by file path OR class name.","additionalProperties":{"type":"object","title":"TestFile","description":"A file containing one or more tests","required":["tests"],"properties":{"tests":{"type":"array","items":{"type":"object","title":"TestDefinition","required":["id","name"],"description":"A test in your test file.","properties":{"id":{"type":"string","description":"Unique id of the test, used to correlate what test killed a mutant."},"name":{"type":"string","description":"Name of the test, used to display the test."},"location":{"$ref":"#/definitions/openEndLocation"}}}}}}},"thresholds":{"type":"object","title":"Thresholds","description":"Thresholds for the status of the reported application.","required":["high","low"],"properties":{"high":{"type":"integer","description":"Higher bound threshold.","minimum":0,"maximum":100,"examples":[80]},"low":{"type":"integer","description":"Lower bound threshold.","minimum":0,"maximum":100,"examples":[60]}}},"projectRoot":{"type":"string","description":"The optional location of the project root.","examples":["C:\\\\Projects\\\\project-under-test","/home/user/projects/project-under-test"]},"performance":{"type":"object","title":"PerformanceStatistics","description":"The performance statistics per phase. Total time should be roughly equal to the sum of all these.","required":["setup","initialRun","mutation"],"properties":{"setup":{"type":"number","description":"Time it took to run the setup phase in milliseconds."},"initialRun":{"type":"number","description":"Time it took to run the initial test phase (dry-run) in milliseconds."},"mutation":{"type":"number","description":"Time it took to run the mutation test phase in milliseconds."}}},"framework":{"type":"object","title":"FrameworkInformation","description":"Extra information about the framework used","required":["name"],"properties":{"name":{"type":"string","description":"Name of the framework used.","examples":["Stryker","Stryker4s","Stryker.NET","Infection PHP","Pitest"]},"version":{"type":"string","description":"Version of the framework."},"branding":{"type":"object","title":"BrandingInformation","description":"Extra branding information about the framework used.","required":["homepageUrl"],"properties":{"homepageUrl":{"type":"string","format":"uri","description":"URL to the homepage of the framework."},"imageUrl":{"type":"string","description":"URL to an image for the framework, can be a data URL."}}},"dependencies":{"type":"object","title":"Dependencies","description":"Dependencies used by the framework. Key-value pair of dependencies and their versions.","additionalProperties":{"type":"string"}}}},"system":{"type":"object","title":"SystemInformation","description":"Information about the system that performed mutation testing.","required":["ci"],"properties":{"ci":{"description":"Did mutation testing run in a Continuous Integration environment (pipeline)? Note that there is no way of knowing this for sure. It\'s done on a best-effort basis.","type":"boolean"},"os":{"type":"object","title":"OSInformation","required":["platform"],"properties":{"description":{"type":"string","description":"Human-readable description of the OS","examples":["Windows 10 Pro","Debian Buster","Ubuntu 20.04.1 LTS"]},"platform":{"type":"string","description":"Platform identifier","examples":["linux","win32"]},"version":{"type":"string","description":"Version of the OS or distribution","examples":["10.0.19041"]}}},"cpu":{"type":"object","title":"CpuInformation","required":["logicalCores"],"properties":{"baseClock":{"type":"number","description":"Clock speed in MHz"},"logicalCores":{"type":"number"},"model":{"type":"string","examples":["Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz"]}}},"ram":{"title":"RamInformation","type":"object","required":["total"],"properties":{"total":{"type":"number","description":"The total RAM of the system that performed mutation testing in MB."}}}}}},"definitions":{"position":{"type":"object","title":"Position","description":"Position of a mutation. Both line and column start at one.","required":["line","column"],"properties":{"line":{"type":"integer","minimum":1,"examples":[4]},"column":{"type":"integer","minimum":1,"examples":[3]}}},"location":{"type":"object","title":"Location","description":"A location with start and end. Start is inclusive, end is exclusive.","required":["start","end"],"properties":{"start":{"$ref":"#/definitions/position"},"end":{"$ref":"#/definitions/position"}}},"openEndLocation":{"type":"object","title":"OpenEndLocation","description":"A location where \\"end\\" is not required. Start is inclusive, end is exclusive.","required":["start"],"properties":{"start":{"$ref":"#/definitions/position"},"end":{"$ref":"#/definitions/position"}}}}}')},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chriskempson/tomorrow-theme\n * @author Rose Pritchard\n */\n\ncode[class*="language-"],\npre[class*="language-"] {\n\tcolor: var(--prism-maintext, #ccc);\n\tbackground: none;\n\tfont-family: Consolas, Monaco, \'Andale Mono\', \'Ubuntu Mono\', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n\n}\n\n/* Code blocks */\npre[class*="language-"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n}\n\n:not(pre) > code[class*="language-"],\npre[class*="language-"] {\n\tbackground: var(--prism-background, #2d2d2d);\n}\n\n/* Inline code */\n:not(pre) > code[class*="language-"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.block-comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: var(--prism-text, #999);\n}\n\n.token.punctuation {\n\tcolor: var(--prism-punctuation, #ccc);\n}\n\n.token.namespace {\n color: var(--prism-namespace, #e2777a);\n}\n\n.token.tag,\n.token.attr-name,\n.token.deleted {\n color: var(--prism-names, #e2777a);\n}\n\n.token.function-name {\n\tcolor: var(--prism-punctuation, #6196cc);\n}\n\n.token.boolean,\n.token.number,\n.token.function {\n\tcolor: var(--prism-functions, #f08d49);\n}\n\n.token.property,\n.token.class-name,\n.token.constant,\n.token.symbol {\n\tcolor: var(--prism-symbol, #f8c555);\n}\n\n.token.selector,\n.token.important,\n.token.atrule,\n.token.keyword,\n.token.builtin {\n\tcolor: var(--prism-keywords, #cc99cd);\n}\n\n.token.string,\n.token.char,\n.token.attr-value,\n.token.regex,\n.token.variable {\n\tcolor: var(--prism-strings, #7ec699);\n}\n\n.token.operator,\n.token.entity,\n.token.url {\n\tcolor: var(--prism-url, #67cdcc);\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n\n.token.inserted {\n\tcolor: green;\n}\n',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""]),e.exports=r},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),o=parseInt(t.getAttribute("data-start"),10)||1,i=o+(r.children.length-1);n<o&&(n=o),n>i&&(n=i);var s=n-o;return r.children[s]}},resize:function(e){i([e])},assumeViewportIndependence:!0},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null},o=void 0;window.addEventListener("resize",(function(){n.assumeViewportIndependence&&o===window.innerWidth||(o=window.innerWidth,i(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(n){if(n.code){var r=n.element,o=r.parentNode;if(o&&/pre/i.test(o.nodeName)&&!r.querySelector(".line-numbers-rows")&&Prism.util.isActive(r,e)){r.classList.remove(e),o.classList.add(e);var s,a=n.code.match(t),l=a?a.length+1:1,c=new Array(l+1).join("<span></span>");(s=document.createElement("span")).setAttribute("aria-hidden","true"),s.className="line-numbers-rows",s.innerHTML=c,o.hasAttribute("data-start")&&(o.style.counterReset="linenumber "+(parseInt(o.getAttribute("data-start"),10)-1)),n.element.appendChild(s),i([o]),Prism.hooks.run("line-numbers",n)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function i(e){if(0!=(e=e.filter((function(e){var t=r(e)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var n=e.map((function(e){var n=e.querySelector("code"),r=e.querySelector(".line-numbers-rows");if(n&&r){var o=e.querySelector(".line-numbers-sizer"),i=n.textContent.split(t);o||((o=document.createElement("span")).className="line-numbers-sizer",n.appendChild(o)),o.innerHTML="0",o.style.display="block";var s=o.getBoundingClientRect().height;return o.innerHTML="",{element:e,lines:i,lineHeights:[],oneLinerHeight:s,sizer:o}}})).filter(Boolean);n.forEach((function(e){var t=e.sizer,n=e.lines,r=e.lineHeights,o=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach((function(e,n){if(e&&e.length>1){var i=t.appendChild(document.createElement("span"));i.style.display="block",i.textContent=e}else r[n]=o}))})),n.forEach((function(e){for(var t=e.sizer,n=e.lineHeights,r=0,o=0;o<n.length;o++)void 0===n[o]&&(n[o]=t.children[r++].getBoundingClientRect().height)})),n.forEach((function(e){var t=e.sizer,n=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){n.children[t].style.height=e+"px"}))}))}}}()},function(e,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},function(e,t){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript},function(e,t){!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},keyword:/\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{"generic-function":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism)},function(e,t){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",s="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where where",a="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(i),d=RegExp(l(o+" "+i+" "+s+" "+a)),u=l(i+" "+s+" "+a),p=l(o+" "+i+" "+a),h=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),b=r(/\((?:[^()]|<<self>>)*\)/.source,2),f=/@?\b[A-Za-z_]\w*\b/.source,m=t(/<<0>>(?:\s*<<1>>)?/.source,[f,h]),g=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,m]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[g,v]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[h,b,v]),x=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[x,g,v]),_={keyword:d,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,P=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[P]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0},{pattern:RegExp(S),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[g]),lookbehind:!0,inside:_},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[f,k]),lookbehind:!0,inside:_},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[f]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,m]),lookbehind:!0,inside:_},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[g]),lookbehind:!0,inside:_},{pattern:n(/(\bwhere\s+)<<0>>/.source,[f]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:_},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,p,f]),inside:_}],keyword:d,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[f]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[f]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*)(?:[^()\s]|\s(?!\s*\))|<<0>>)*(?=\s*\))/.source,[b]),lookbehind:!0,alias:"class-name",inside:_},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,g]),inside:_,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:_,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[f,h]),inside:{function:n(/^<<0>>/.source,[f]),generic:{pattern:RegExp(h),alias:"class-name",inside:_}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,m,f,k,d.source]),lookbehind:!0,inside:{keyword:d,"class-name":{pattern:RegExp(k),greedy:!0,inside:_},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var C=E+"|"+S,M=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[C]),$=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[M]),2),T=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,j=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[g,$]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[T,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[T]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[$]),inside:e.languages.csharp},"class-name":{pattern:RegExp(g),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var N=/:[^}\r\n]+/.source,A=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[M]),2),z=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[A,N]),F=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[C]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[F,N]);function I(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,N]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[z]),lookbehind:!0,greedy:!0,inside:I(z,A)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:I(O,F)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},function(e,t){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|record|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism)},function(e,t){Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},function(e,t){Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},function(e,t){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var s=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,a=s.length;-1!==n.code.indexOf(o=t(r,a));)++a;return s[a]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function s(a){for(var l=0;l<a.length&&!(o>=i.length);l++){var c=a[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var d=i[o],u=n.tokenStack[d],p="string"==typeof c?c:c.content,h=t(r,d),b=p.indexOf(h);if(b>-1){++o;var f=p.substring(0,b),m=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),g=p.substring(b+h.length),v=[];f&&v.push.apply(v,s([f])),v.push(m),g&&v.push.apply(v,s([g])),"string"==typeof c?a.splice.apply(a,[l,1].concat(v)):c.content=v}}else c.content&&s(c.content)}return a}(n.tokens)}}}})}(Prism)},function(e,t){!function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:e.languages.php};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},function(e,t){"undefined"!=typeof self&&self.Prism&&self.document&&document.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",(function(e){if(e.element.children.length&&Prism.util.isActive(e.element,"keep-markup",!0)){var t=0,n=[],r=function(e,o){var i={};o||(i.clone=e.cloneNode(!1),i.posOpen=t,n.push(i));for(var s=0,a=e.childNodes.length;s<a;s++){var l=e.childNodes[s];1===l.nodeType?r(l):3===l.nodeType&&(t+=l.data.length)}o||(i.posClose=t)};r(e.element,!0),n&&n.length&&(e.keepMarkup=n)}})),Prism.hooks.add("after-highlight",(function(e){if(e.keepMarkup&&e.keepMarkup.length){var t=function(e,n){for(var r=0,o=e.childNodes.length;r<o;r++){var i=e.childNodes[r];if(1===i.nodeType){if(!t(i,n))return!1}else 3===i.nodeType&&(!n.nodeStart&&n.pos+i.data.length>n.node.posOpen&&(n.nodeStart=i,n.nodeStartPos=n.node.posOpen-n.pos),n.nodeStart&&n.pos+i.data.length>=n.node.posClose&&(n.nodeEnd=i,n.nodeEndPos=n.node.posClose-n.pos),n.pos+=i.data.length);if(n.nodeStart&&n.nodeEnd){var s=document.createRange();return s.setStart(n.nodeStart,n.nodeStartPos),s.setEnd(n.nodeEnd,n.nodeEndPos),n.node.clone.appendChild(s.extractContents()),s.insertNode(n.node.clone),s.detach(),!1}}return!0};e.keepMarkup.forEach((function(n){t(e.element,{node:n,pos:0})})),e.highlightedCode=e.element.innerHTML}})))},function(e,t,n){"use strict";n.r(t);const r="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(e,t,n=null)=>{for(;t!==n;){const n=t.nextSibling;e.removeChild(t),t=n}},i=`{{lit-${String(Math.random()).slice(2)}}}`,s=`\x3c!--${i}--\x3e`,a=new RegExp(`${i}|${s}`),l="$lit$";class c{constructor(e,t){this.parts=[],this.element=t;const n=[],r=[],o=document.createTreeWalker(t.content,133,null,!1);let s=0,c=-1,u=0;const{strings:b,values:{length:f}}=e;for(;u<f;){const e=o.nextNode();if(null!==e){if(c++,1===e.nodeType){if(e.hasAttributes()){const t=e.attributes,{length:n}=t;let r=0;for(let e=0;e<n;e++)d(t[e].name,l)&&r++;for(;r-- >0;){const t=b[u],n=h.exec(t)[2],r=n.toLowerCase()+l,o=e.getAttribute(r);e.removeAttribute(r);const i=o.split(a);this.parts.push({type:"attribute",index:c,name:n,strings:i}),u+=i.length-1}}"TEMPLATE"===e.tagName&&(r.push(e),o.currentNode=e.content)}else if(3===e.nodeType){const t=e.data;if(t.indexOf(i)>=0){const r=e.parentNode,o=t.split(a),i=o.length-1;for(let t=0;t<i;t++){let n,i=o[t];if(""===i)n=p();else{const e=h.exec(i);null!==e&&d(e[2],l)&&(i=i.slice(0,e.index)+e[1]+e[2].slice(0,-l.length)+e[3]),n=document.createTextNode(i)}r.insertBefore(n,e),this.parts.push({type:"node",index:++c})}""===o[i]?(r.insertBefore(p(),e),n.push(e)):e.data=o[i],u+=i}}else if(8===e.nodeType)if(e.data===i){const t=e.parentNode;null!==e.previousSibling&&c!==s||(c++,t.insertBefore(p(),e)),s=c,this.parts.push({type:"node",index:c}),null===e.nextSibling?e.data="":(n.push(e),c--),u++}else{let t=-1;for(;-1!==(t=e.data.indexOf(i,t+1));)this.parts.push({type:"node",index:-1}),u++}}else o.currentNode=r.pop()}for(const e of n)e.parentNode.removeChild(e)}}const d=(e,t)=>{const n=e.length-t.length;return n>=0&&e.slice(n)===t},u=e=>-1!==e.index,p=()=>document.createComment(""),h=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function b(e,t){const{element:{content:n},parts:r}=e,o=document.createTreeWalker(n,133,null,!1);let i=m(r),s=r[i],a=-1,l=0;const c=[];let d=null;for(;o.nextNode();){a++;const e=o.currentNode;for(e.previousSibling===d&&(d=null),t.has(e)&&(c.push(e),null===d&&(d=e)),null!==d&&l++;void 0!==s&&s.index===a;)s.index=null!==d?-1:s.index-l,i=m(r,i),s=r[i]}c.forEach((e=>e.parentNode.removeChild(e)))}const f=e=>{let t=11===e.nodeType?0:1;const n=document.createTreeWalker(e,133,null,!1);for(;n.nextNode();)t++;return t},m=(e,t=-1)=>{for(let n=t+1;n<e.length;n++){const t=e[n];if(u(t))return n}return-1};const g=new WeakMap,v=e=>"function"==typeof e&&g.has(e),y={},w={};class x{constructor(e,t,n){this.__parts=[],this.template=e,this.processor=t,this.options=n}update(e){let t=0;for(const n of this.__parts)void 0!==n&&n.setValue(e[t]),t++;for(const e of this.__parts)void 0!==e&&e.commit()}_clone(){const e=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),t=[],n=this.template.parts,o=document.createTreeWalker(e,133,null,!1);let i,s=0,a=0,l=o.nextNode();for(;s<n.length;)if(i=n[s],u(i)){for(;a<i.index;)a++,"TEMPLATE"===l.nodeName&&(t.push(l),o.currentNode=l.content),null===(l=o.nextNode())&&(o.currentNode=t.pop(),l=o.nextNode());if("node"===i.type){const e=this.processor.handleTextExpression(this.options);e.insertAfterNode(l.previousSibling),this.__parts.push(e)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,i.name,i.strings,this.options));s++}else this.__parts.push(void 0),s++;return r&&(document.adoptNode(e),customElements.upgrade(e)),e}}const k=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:e=>e}),_=` ${i} `;class S{constructor(e,t,n,r){this.strings=e,this.values=t,this.type=n,this.processor=r}getHTML(){const e=this.strings.length-1;let t="",n=!1;for(let r=0;r<e;r++){const e=this.strings[r],o=e.lastIndexOf("\x3c!--");n=(o>-1||n)&&-1===e.indexOf("--\x3e",o+1);const a=h.exec(e);t+=null===a?e+(n?_:s):e.substr(0,a.index)+a[1]+a[2]+l+a[3]+i}return t+=this.strings[e],t}getTemplateElement(){const e=document.createElement("template");let t=this.getHTML();return void 0!==k&&(t=k.createHTML(t)),e.innerHTML=t,e}}class E extends S{getHTML(){return`<svg>${super.getHTML()}</svg>`}getTemplateElement(){const e=super.getTemplateElement(),t=e.content,n=t.firstChild;return t.removeChild(n),((e,t,n=null,r=null)=>{for(;t!==n;){const n=t.nextSibling;e.insertBefore(t,r),t=n}})(t,n.firstChild),e}}const P=e=>null===e||!("object"==typeof e||"function"==typeof e),C=e=>Array.isArray(e)||!(!e||!e[Symbol.iterator]);class M{constructor(e,t,n){this.dirty=!0,this.element=e,this.name=t,this.strings=n,this.parts=[];for(let e=0;e<n.length-1;e++)this.parts[e]=this._createPart()}_createPart(){return new $(this)}_getValue(){const e=this.strings,t=e.length-1,n=this.parts;if(1===t&&""===e[0]&&""===e[1]){const e=n[0].value;if("symbol"==typeof e)return String(e);if("string"==typeof e||!C(e))return e}let r="";for(let o=0;o<t;o++){r+=e[o];const t=n[o];if(void 0!==t){const e=t.value;if(P(e)||!C(e))r+="string"==typeof e?e:String(e);else for(const t of e)r+="string"==typeof t?t:String(t)}}return r+=e[t],r}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class ${constructor(e){this.value=void 0,this.committer=e}setValue(e){e===y||P(e)&&e===this.value||(this.value=e,v(e)||(this.committer.dirty=!0))}commit(){for(;v(this.value);){const e=this.value;this.value=y,e(this)}this.value!==y&&this.committer.commit()}}class T{constructor(e){this.value=void 0,this.__pendingValue=void 0,this.options=e}appendInto(e){this.startNode=e.appendChild(p()),this.endNode=e.appendChild(p())}insertAfterNode(e){this.startNode=e,this.endNode=e.nextSibling}appendIntoPart(e){e.__insert(this.startNode=p()),e.__insert(this.endNode=p())}insertAfterPart(e){e.__insert(this.startNode=p()),this.endNode=e.endNode,e.endNode=this.startNode}setValue(e){this.__pendingValue=e}commit(){if(null===this.startNode.parentNode)return;for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}const e=this.__pendingValue;e!==y&&(P(e)?e!==this.value&&this.__commitText(e):e instanceof S?this.__commitTemplateResult(e):e instanceof Node?this.__commitNode(e):C(e)?this.__commitIterable(e):e===w?(this.value=w,this.clear()):this.__commitText(e))}__insert(e){this.endNode.parentNode.insertBefore(e,this.endNode)}__commitNode(e){this.value!==e&&(this.clear(),this.__insert(e),this.value=e)}__commitText(e){const t=this.startNode.nextSibling,n="string"==typeof(e=null==e?"":e)?e:String(e);t===this.endNode.previousSibling&&3===t.nodeType?t.data=n:this.__commitNode(document.createTextNode(n)),this.value=e}__commitTemplateResult(e){const t=this.options.templateFactory(e);if(this.value instanceof x&&this.value.template===t)this.value.update(e.values);else{const n=new x(t,e.processor,this.options),r=n._clone();n.update(e.values),this.__commitNode(r),this.value=n}}__commitIterable(e){Array.isArray(this.value)||(this.value=[],this.clear());const t=this.value;let n,r=0;for(const o of e)n=t[r],void 0===n&&(n=new T(this.options),t.push(n),0===r?n.appendIntoPart(this):n.insertAfterPart(t[r-1])),n.setValue(o),n.commit(),r++;r<t.length&&(t.length=r,this.clear(n&&n.endNode))}clear(e=this.startNode){o(this.startNode.parentNode,e.nextSibling,this.endNode)}}class j{constructor(e,t,n){if(this.value=void 0,this.__pendingValue=void 0,2!==n.length||""!==n[0]||""!==n[1])throw new Error("Boolean attributes can only contain a single expression");this.element=e,this.name=t,this.strings=n}setValue(e){this.__pendingValue=e}commit(){for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}if(this.__pendingValue===y)return;const e=!!this.__pendingValue;this.value!==e&&(e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=e),this.__pendingValue=y}}class N extends M{constructor(e,t,n){super(e,t,n),this.single=2===n.length&&""===n[0]&&""===n[1]}_createPart(){return new A(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class A extends ${}let z=!1;(()=>{try{const e={get capture(){return z=!0,!1}};window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){}})();class F{constructor(e,t,n){this.value=void 0,this.__pendingValue=void 0,this.element=e,this.eventName=t,this.eventContext=n,this.__boundHandleEvent=e=>this.handleEvent(e)}setValue(e){this.__pendingValue=e}commit(){for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}if(this.__pendingValue===y)return;const e=this.__pendingValue,t=this.value,n=null==e||null!=t&&(e.capture!==t.capture||e.once!==t.once||e.passive!==t.passive),r=null!=e&&(null==t||n);n&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),r&&(this.__options=O(e),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=e,this.__pendingValue=y}handleEvent(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}const O=e=>e&&(z?{capture:e.capture,passive:e.passive,once:e.once}:e.capture);function I(e){let t=R.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},R.set(e.type,t));let n=t.stringsArray.get(e.strings);if(void 0!==n)return n;const r=e.strings.join(i);return n=t.keyString.get(r),void 0===n&&(n=new c(e,e.getTemplateElement()),t.keyString.set(r,n)),t.stringsArray.set(e.strings,n),n}const R=new Map,L=new WeakMap;const B=new class{handleAttributeExpressions(e,t,n,r){const o=t[0];if("."===o){return new N(e,t.slice(1),n).parts}if("@"===o)return[new F(e,t.slice(1),r.eventContext)];if("?"===o)return[new j(e,t.slice(1),n)];return new M(e,t,n).parts}handleTextExpression(e){return new T(e)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const V=(e,...t)=>new S(e,t,"html",B),U=(e,...t)=>new E(e,t,"svg",B),D=(e,t)=>`${e}--${t}`;let H=!0;void 0===window.ShadyCSS?H=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),H=!1);const q=e=>t=>{const n=D(t.type,e);let r=R.get(n);void 0===r&&(r={stringsArray:new WeakMap,keyString:new Map},R.set(n,r));let o=r.stringsArray.get(t.strings);if(void 0!==o)return o;const s=t.strings.join(i);if(o=r.keyString.get(s),void 0===o){const n=t.getTemplateElement();H&&window.ShadyCSS.prepareTemplateDom(n,e),o=new c(t,n),r.keyString.set(s,o)}return r.stringsArray.set(t.strings,o),o},W=["html","svg"],Z=new Set,J=(e,t,n)=>{Z.add(e);const r=n?n.element:document.createElement("template"),o=t.querySelectorAll("style"),{length:i}=o;if(0===i)return void window.ShadyCSS.prepareTemplateStyles(r,e);const s=document.createElement("style");for(let e=0;e<i;e++){const t=o[e];t.parentNode.removeChild(t),s.textContent+=t.textContent}(e=>{W.forEach((t=>{const n=R.get(D(t,e));void 0!==n&&n.keyString.forEach((e=>{const{element:{content:t}}=e,n=new Set;Array.from(t.querySelectorAll("style")).forEach((e=>{n.add(e)})),b(e,n)}))}))})(e);const a=r.content;n?function(e,t,n=null){const{element:{content:r},parts:o}=e;if(null==n)return void r.appendChild(t);const i=document.createTreeWalker(r,133,null,!1);let s=m(o),a=0,l=-1;for(;i.nextNode();)for(l++,i.currentNode===n&&(a=f(t),n.parentNode.insertBefore(t,n));-1!==s&&o[s].index===l;){if(a>0){for(;-1!==s;)o[s].index+=a,s=m(o,s);return}s=m(o,s)}}(n,s,a.firstChild):a.insertBefore(s,a.firstChild),window.ShadyCSS.prepareTemplateStyles(r,e);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)t.insertBefore(l.cloneNode(!0),t.firstChild);else if(n){a.insertBefore(s,a.firstChild);const e=new Set;e.add(s),b(n,e)}};window.JSCompiler_renameProperty=(e,t)=>e;const K={toAttribute(e,t){switch(t){case Boolean:return e?"":null;case Object:case Array:return null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){switch(t){case Boolean:return null!==e;case Number:return null===e?null:Number(e);case Object:case Array:return JSON.parse(e)}return e}},Y=(e,t)=>t!==e&&(t==t||e==e),G={attribute:!0,type:String,converter:K,reflect:!1,hasChanged:Y},X="finalized";class Q extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const e=[];return this._classProperties.forEach(((t,n)=>{const r=this._attributeNameForProperty(n,t);void 0!==r&&(this._attributeToPropertyMap.set(r,n),e.push(r))})),e}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const e=Object.getPrototypeOf(this)._classProperties;void 0!==e&&e.forEach(((e,t)=>this._classProperties.set(t,e)))}}static createProperty(e,t=G){if(this._ensureClassProperties(),this._classProperties.set(e,t),t.noAccessor||this.prototype.hasOwnProperty(e))return;const n="symbol"==typeof e?Symbol():"__"+e,r=this.getPropertyDescriptor(e,n,t);void 0!==r&&Object.defineProperty(this.prototype,e,r)}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(r){const o=this[e];this[t]=r,this.requestUpdateInternal(e,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this._classProperties&&this._classProperties.get(e)||G}static finalize(){const e=Object.getPrototypeOf(this);if(e.hasOwnProperty(X)||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const e=this.properties,t=[...Object.getOwnPropertyNames(e),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]];for(const n of t)this.createProperty(n,e[n])}}static _attributeNameForProperty(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}static _valueHasChanged(e,t,n=Y){return n(e,t)}static _propertyValueFromAttribute(e,t){const n=t.type,r=t.converter||K,o="function"==typeof r?r:r.fromAttribute;return o?o(e,n):e}static _propertyValueToAttribute(e,t){if(void 0===t.reflect)return;const n=t.type,r=t.converter;return(r&&r.toAttribute||K.toAttribute)(e,n)}initialize(){this._updateState=0,this._updatePromise=new Promise((e=>this._enableUpdatingResolver=e)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((e,t)=>{if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(t,e)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((e,t)=>this[t]=e)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(e,t,n){t!==n&&this._attributeToProperty(e,n)}_propertyToAttribute(e,t,n=G){const r=this.constructor,o=r._attributeNameForProperty(e,n);if(void 0!==o){const e=r._propertyValueToAttribute(t,n);if(void 0===e)return;this._updateState=8|this._updateState,null==e?this.removeAttribute(o):this.setAttribute(o,e),this._updateState=-9&this._updateState}}_attributeToProperty(e,t){if(8&this._updateState)return;const n=this.constructor,r=n._attributeToPropertyMap.get(e);if(void 0!==r){const e=n.getPropertyOptions(r);this._updateState=16|this._updateState,this[r]=n._propertyValueFromAttribute(t,e),this._updateState=-17&this._updateState}}requestUpdateInternal(e,t,n){let r=!0;if(void 0!==e){const o=this.constructor;n=n||o.getPropertyOptions(e),o._valueHasChanged(this[e],t,n.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,n))):r=!1}!this._hasRequestedUpdate&&r&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(e,t){return this.requestUpdateInternal(e,t),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(e){}const e=this.performUpdate();return null!=e&&await e,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let e=!1;const t=this._changedProperties;try{e=this.shouldUpdate(t),e?this.update(t):this._markUpdated()}catch(t){throw e=!1,this._markUpdated(),t}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(e){return!0}update(e){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((e,t)=>this._propertyToAttribute(t,this[t],e))),this._reflectingProperties=void 0),this._markUpdated()}updated(e){}firstUpdated(e){}}Q.finalized=!0;const ee=e=>t=>"function"==typeof t?((e,t)=>(window.customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:n,elements:r}=t;return{kind:n,elements:r,finisher(t){window.customElements.define(e,t)}}})(e,t),te=(e,t)=>"method"===t.kind&&t.descriptor&&!("value"in t.descriptor)?Object.assign(Object.assign({},t),{finisher(n){n.createProperty(t.key,e)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(n){n.createProperty(t.key,e)}};function ne(e){return(t,n)=>void 0!==n?((e,t,n)=>{t.constructor.createProperty(n,e)})(e,t,n):te(e,t)}const re=Element.prototype;re.msMatchesSelector||re.webkitMatchesSelector;const oe=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,ie=Symbol();class se{constructor(e,t){if(t!==ie)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){return void 0===this._styleSheet&&(oe?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const ae=e=>new se(String(e),ie);(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const le={};class ce extends Q{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const e=this.getStyles();if(Array.isArray(e)){const t=(e,n)=>e.reduceRight(((e,n)=>Array.isArray(n)?t(n,e):(e.add(n),e)),n),n=t(e,new Set),r=[];n.forEach((e=>r.unshift(e))),this._styles=r}else this._styles=void 0===e?[]:[e];this._styles=this._styles.map((e=>{if(e instanceof CSSStyleSheet&&!oe){const t=Array.prototype.slice.call(e.cssRules).reduce(((e,t)=>e+t.cssText),"");return ae(t)}return e}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const e=this.constructor._styles;0!==e.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?oe?this.renderRoot.adoptedStyleSheets=e.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(e.map((e=>e.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(e){const t=this.render();super.update(e),t!==le&&this.constructor.render(t,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((e=>{const t=document.createElement("style");t.textContent=e.cssText,this.renderRoot.appendChild(t)})))}render(){return le}}ce.finalized=!0,ce.render=(e,t,n)=>{if(!n||"object"!=typeof n||!n.scopeName)throw new Error("The `scopeName` option is required.");const r=n.scopeName,i=L.has(t),s=H&&11===t.nodeType&&!!t.host,a=s&&!Z.has(r),l=a?document.createDocumentFragment():t;if(((e,t,n)=>{let r=L.get(t);void 0===r&&(o(t,t.firstChild),L.set(t,r=new T(Object.assign({templateFactory:I},n))),r.appendInto(t)),r.setValue(e),r.commit()})(e,l,Object.assign({templateFactory:q(r)},n)),a){const e=L.get(l);L.delete(l);const n=e.value instanceof x?e.value.template:void 0;J(r,l,n),o(t,t.firstChild),t.appendChild(l),L.set(t,e)}!i&&s&&window.ShadyCSS.styleElement(t.host)};var de=n(3),ue=n(4),pe=n.n(ue),he=n(5),be=n.n(he);const fe=ae(pe.a),me=ae(be.a);var ge=function(e,t){return(ge=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function ve(e,t){function n(){this.constructor=e}ge(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function ye(e){return"function"==typeof e}var we=!1,xe={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;we=e},get useDeprecatedSynchronousErrorHandling(){return we}};function ke(e){setTimeout((function(){throw e}),0)}var _e={closed:!0,next:function(e){},error:function(e){if(xe.useDeprecatedSynchronousErrorHandling)throw e;ke(e)},complete:function(){}},Se=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function Ee(e){return null!==e&&"object"==typeof e}var Pe=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),Ce=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this,r=n._parentOrParents,o=n._ctorUnsubscribe,i=n._unsubscribe,s=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var a=0;a<r.length;++a){r[a].remove(this)}if(ye(i)){o&&(this._unsubscribe=void 0);try{i.call(this)}catch(e){t=e instanceof Pe?Me(e.errors):[e]}}if(Se(s)){a=-1;for(var l=s.length;++a<l;){var c=s[a];if(Ee(c))try{c.unsubscribe()}catch(e){t=t||[],e instanceof Pe?t=t.concat(Me(e.errors)):t.push(e)}}}if(t)throw new Pe(t)}},e.prototype.add=function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case"function":n=new e(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();function Me(e){return e.reduce((function(e,t){return e.concat(t instanceof Pe?t.errors:t)}),[])}var $e=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),Te=function(e){function t(n,r,o){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=_e;break;case 1:if(!n){i.destination=_e;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new je(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new je(i,n,r,o)}return i}return ve(t,e),t.prototype[$e]=function(){return this},t.create=function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(Ce),je=function(e){function t(t,n,r,o){var i,s=e.call(this)||this;s._parentSubscriber=t;var a=s;return ye(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==_e&&(ye((a=Object.create(n)).unsubscribe)&&s.add(a.unsubscribe.bind(a)),a.unsubscribe=s.unsubscribe.bind(s))),s._context=a,s._next=i,s._error=r,s._complete=o,s}return ve(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;xe.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=xe.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):ke(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;ke(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};xe.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),xe.useDeprecatedSynchronousErrorHandling)throw e;ke(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!xe.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return xe.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(ke(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(Te);var Ne=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();function Ae(e){return e}function ze(e){return 0===e.length?Ae:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var Fe=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof Te)return e;if(e[$e])return e[$e]()}return e||t||n?new Te(e,t,n):new Te(_e)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||xe.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),xe.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){xe.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof Te?r:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=Oe(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(e){r(e),o&&o.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[Ne]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:ze(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=Oe(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function Oe(e){if(e||(e=xe.Promise||Promise),!e)throw new Error("no Promise impl found");return e}function Ie(e){return e&&"function"==typeof e.schedule}function Re(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new Le(e,t))}}var Le=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new Be(e,this.project,this.thisArg))},e}(),Be=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.project=n,o.count=0,o.thisArg=r||o,o}return ve(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(Te),Ve=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};function Ue(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var De=Ue(),He=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function qe(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var We=function(e){if(e&&"function"==typeof e[Ne])return r=e,function(e){var t=r[Ne]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(He(e))return Ve(e);if(qe(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,ke),e};if(e&&"function"==typeof e[De])return t=e,function(e){for(var n=t[De]();;){var r=void 0;try{r=n.next()}catch(t){return e.error(t),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,r,o=Ee(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+o+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")};function Ze(e,t){return new Fe((function(n){var r=new Ce,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}function Je(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[Ne]}(e))return function(e,t){return new Fe((function(n){var r=new Ce;return r.add(t.schedule((function(){var o=e[Ne]();r.add(o.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(qe(e))return function(e,t){return new Fe((function(n){var r=new Ce;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(He(e))return Ze(e,t);if(function(e){return e&&"function"==typeof e[De]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new Fe((function(n){var r,o=new Ce;return o.add((function(){r&&"function"==typeof r.return&&r.return()})),o.add(t.schedule((function(){r=e[De](),o.add(t.schedule((function(){if(!n.closed){var e,t;try{var o=r.next();e=o.value,t=o.done}catch(e){return void n.error(e)}t?n.complete():(n.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}var Ke=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return ve(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(Te),Ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ve(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(Te);function Ge(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(Ge((function(n,r){return(o=e(n,r),i?Je(o,i):o instanceof Fe?o:new Fe(We(o))).pipe(Re((function(e,o){return t(n,e,r,o)})));var o,i}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new Xe(e,n))})}var Xe=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new Qe(e,this.project,this.concurrent))},e}(),Qe=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var o=e.call(this,t)||this;return o.project=n,o.concurrent=r,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return ve(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t)},t.prototype._innerSub=function(e){var t=new Ke(this),n=this.destination;n.add(t);var r=function(e,t){if(!t.closed)return e instanceof Fe?e.subscribe(t):We(e)(t)}(e,t);r!==t&&n.add(r)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyComplete=function(){var e=this.buffer;this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(Ye);function et(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),Ge(Ae,e)}function tt(e,t){return t?Ze(e,t):new Fe(Ve(e))}function nt(e,t,n,r,o){var i;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(e)){var s=e;e.addEventListener(t,n,o),i=function(){return s.removeEventListener(t,n,o)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(e)){var a=e;e.on(t,n),i=function(){return a.off(t,n)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(e)){var l=e;e.addListener(t,n),i=function(){return l.removeListener(t,n)}}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(var c=0,d=e.length;c<d;c++)nt(e[c],t,n,r,o)}r.add(i)}function rt(){}var ot=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new it(e,this.nextOrObserver,this.error,this.complete))},e}(),it=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i._tapNext=rt,i._tapError=rt,i._tapComplete=rt,i._tapError=r||rt,i._tapComplete=o||rt,ye(n)?(i._context=i,i._tapNext=n):n&&(i._context=n,i._tapNext=n.next||rt,i._tapError=n.error||rt,i._tapComplete=n.complete||rt),i}return ve(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(Te);const st=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Number.POSITIVE_INFINITY,r=null,o=e[e.length-1];return Ie(o)?(r=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof o&&(n=e.pop()),null===r&&1===e.length&&e[0]instanceof Fe?e[0]:et(n)(tt(e,r))}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return Ie(n)?(e.pop(),Ze(e,n)):tt(e)}(1),function e(t,n,r,o){return ye(r)&&(o=r,r=void 0),o?e(t,n,r).pipe(Re((function(e){return Se(e)?o.apply(void 0,e):o(e)}))):new Fe((function(e){nt(t,n,(function(t){arguments.length>1?e.next(Array.prototype.slice.call(arguments)):e.next(t)}),e,r)}))}(window,"hashchange").pipe((at=e=>e.preventDefault(),function(e){return e.lift(new ot(at,lt,ct))}))).pipe(Re((()=>window.location.hash.substr(1).split("/").filter(Boolean).map(decodeURIComponent))));var at,lt,ct,dt=n(6),ut=n.n(dt),pt=n(7),ht=n.n(pt),bt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ft=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))};let mt=class extends ce{constructor(){super(...arguments),this.path=[],this.themeSwitch=e=>{this.theme=e.detail,localStorage.setItem("mutation-testing-elements-theme",this.theme)},this.subscriptions=[]}get title(){return this.context?this.titlePostfix?`${this.context.name} - ${this.titlePostfix}`:this.context.name:""}firstUpdated(){var e;if(!this.theme){const t=localStorage.getItem("mutation-testing-elements-theme");t?this.theme=t:window.matchMedia&&(null===(e=window.matchMedia("(prefers-color-scheme: dark)"))||void 0===e?void 0:e.matches)?this.theme="dark":this.theme="light"}}loadData(){return ft(this,void 0,void 0,(function*(){if(this.src)try{const e=yield fetch(this.src);this.report=yield e.json()}catch(e){const t=String(e);this.errorMessage=t}}))}updated(e){return ft(this,void 0,void 0,(function*(){(e.has("path")||e.has("report"))&&this.report&&(this.updateModel(this.report),this.updateContext(),this.updateTitle()),e.has("src")&&(yield this.loadData()),e.has("theme")&&this.dispatchEvent(new CustomEvent("theme-changed",{detail:{theme:this.theme}}))}))}updateModel(e){this.rootModel=Object(de.calculateMetrics)(e.files)}updateContext(){this.rootModel&&(this.context=this.path.reduce(((e,t)=>e&&e.childResults.find((e=>e.name===t))),this.rootModel))}updateTitle(){document.title=this.title}connectedCallback(){super.connectedCallback(),this.subscriptions.push(st.subscribe((e=>this.path=e)))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach((e=>e.unsubscribe()))}renderTitle(){const e=()=>this.titlePostfix?V`<small class="text-muted"> - ${this.titlePostfix}</small>`:void 0;if(this.context&&this.titlePostfix)return V`<h1 class="display-4">${this.context.name}${e()}</h1>`}render(){return this.context||this.errorMessage?V` + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12">${this.renderReport()} ${this.renderErrorMessage()}</div> + </div> + </div> + `:V``}renderErrorMessage(){return this.errorMessage?V`<div class="alert alert-danger" role="alert">${this.errorMessage}</div>`:V``}renderReport(){return this.context?V` + <mutation-test-report-theme-switch @theme-switch="${this.themeSwitch}" class="theme-switch" .theme="${this.theme}"> + </mutation-test-report-theme-switch> + ${this.renderTitle()} + <mutation-test-report-breadcrumb .path="${this.path}"></mutation-test-report-breadcrumb> + ${this.renderTotals()} ${this.renderFileReport()} + `:void 0}renderFileReport(){return this.context&&this.report&&this.context.file?V`<mutation-test-report-file .model="${this.context.file}"></mutation-test-report-file>`:void 0}renderTotals(){return this.report&&this.context?V` + <div class="row"> + <div class="totals col-sm-11"> + <mutation-test-report-totals .currentPath="${this.path}" .thresholds="${this.report.thresholds}" .model="${this.context}"> + </mutation-test-report-totals> + </div> + </div> + `:void 0}};mt.styles=[ae(ht.a),fe,ae(ut.a)],bt([ne({attribute:!1})],mt.prototype,"report",void 0),bt([ne({attribute:!1})],mt.prototype,"rootModel",void 0),bt([ne()],mt.prototype,"src",void 0),bt([ne({attribute:!1})],mt.prototype,"errorMessage",void 0),bt([ne({attribute:!1})],mt.prototype,"context",void 0),bt([ne()],mt.prototype,"path",void 0),bt([ne({attribute:"title-postfix"})],mt.prototype,"titlePostfix",void 0),bt([ne({reflect:!0})],mt.prototype,"theme",void 0),bt([ne()],mt.prototype,"title",null),mt=bt([ee("mutation-test-report-app")],mt);var gt=n(8),vt=n.n(gt),yt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let wt=class extends ce{constructor(){super(...arguments),this.show=!1}firstUpdated(){if(this.getBoundingClientRect().left<100){this.shadowRoot.querySelector(".popover").style.marginLeft="0px"}}getBackgroundClasses(){return this.context?`bg-${this.context} text-white`:""}render(){return V`<div class="popover popover-${this.context} ${this.show?"show":"hide"}"> + <h3 class="popover-header ${this.getBackgroundClasses()}">${this.header}</h3> + <div class="popover-body"> + <slot name="popover-body"></slot> + </div> </div + >${V`<slot></slot>`}`}};wt.styles=[fe,ae(vt.a)],yt([ne()],wt.prototype,"header",void 0),yt([ne({converter:e=>"string"==typeof e})],wt.prototype,"show",void 0),yt([ne()],wt.prototype,"context",void 0),wt=yt([ee("mutation-test-report-popup")],wt);const xt=new WeakMap,kt=(_t=e=>t=>{if(!(t instanceof T))throw new Error("unsafeHTML can only be used in text bindings");const n=xt.get(t);if(void 0!==n&&P(e)&&e===n.value&&t.value===n.fragment)return;const r=document.createElement("template");r.innerHTML=e;const o=document.importNode(r.content,!0);t.setValue(o),xt.set(t,{value:e,fragment:o})},(...e)=>{const t=_t(...e);return g.set(t,!0),t});var _t,St=n(0);function Et(e){switch(e){case St.MutantStatus.Killed:return"success";case St.MutantStatus.NoCoverage:return"caution";case St.MutantStatus.Survived:return"danger";case St.MutantStatus.Timeout:return"warning";case St.MutantStatus.Ignored:case St.MutantStatus.RuntimeError:case St.MutantStatus.CompileError:return"secondary"}}function Pt(e){switch(e){case St.MutantStatus.Killed:return"✅";case St.MutantStatus.NoCoverage:return"🙈";case St.MutantStatus.Ignored:return"🤥";case St.MutantStatus.Survived:return"👽";case St.MutantStatus.Timeout:return"⌛";case St.MutantStatus.RuntimeError:case St.MutantStatus.CompileError:return"💥"}}function Ct(e){const t=new URL(window.location.href);return new URL("#"+e,t).href}var Mt=n(9),$t=n.n(Mt),Tt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let jt=class extends ce{constructor(){super(...arguments),this.show=!0,this.expand=!1,this.showPopup=!1,this.mutantClicked=e=>{this.expand=!this.expand,this.showPopup=this.expand,e.stopImmediatePropagation(),this.dispatchEvent(new CustomEvent("mutant-selected",{bubbles:!0,detail:this,composed:!0}))},this.showMoreInfo=e=>{this.dispatchEvent(new CustomEvent(Nt,{bubbles:!0,detail:e,composed:!0}))}}render(){return V`${this.renderButton()}${this.renderCode()}`}renderButton(){if(this.show&&this.mutant)return V`<mutation-test-report-popup + ?show="${this.showPopup}" + context="${Et(this.mutant.status)}" + header="${this.mutant.mutatorName}" + >${this.renderPopupBody(this.mutant)}<span + class="mutant-toggle badge badge-${this.expand?"info":Et(this.mutant.status)}" + @click="${this.mutantClicked}" + title="${this.mutant.mutatorName}" + >${this.mutant.id}</span + ></mutation-test-report-popup + >`}renderPopupBody(e){return V`<div slot="popover-body"> + <span class="btn">${Pt(e.status)} ${e.status}</span>${this.renderDescription(e)} + </div>`}renderDescription(e){if(e.description)return V` <button class="show-more btn btn-link" @click="${()=>this.showMoreInfo(e)}">📖 Show more</button> `}renderCode(){return V`${this.renderReplacement()}${this.renderActual()}`}renderActual(){const e=V`<slot></slot>`;return V`<span class="original-code ${this.expand&&this.show?"disabled-code":""}">${e}</span>`}renderReplacement(){if(this.mutant)return V`<span class="replacement badge badge-info" @click="${this.mutantClicked}" ?hidden="${!this.expand||!this.show}" + >${this.mutant.replacement||this.mutant.mutatorName}</span + >`}};jt.styles=[fe,ae($t.a)],Tt([ne()],jt.prototype,"mutant",void 0),Tt([ne()],jt.prototype,"show",void 0),Tt([ne()],jt.prototype,"expand",void 0),Tt([ne()],jt.prototype,"showPopup",void 0),jt=Tt([ee("mutation-test-report-mutant")],jt);const Nt="show-more-click";class At{constructor(){this.killed=0,this.noCoverage=0,this.survived=0,this.timeout=0,this.ignored=0,this.markMutantStart=e=>{this.countMutant(1,e.status)},this.markMutantEnd=e=>{this.countMutant(-1,e.status)},this.determineBackground=()=>this.survived>0?Et(St.MutantStatus.Survived)+"-light":this.noCoverage>0?Et(St.MutantStatus.NoCoverage)+"-light":this.timeout>0?Et(St.MutantStatus.Timeout)+"-light":this.killed>0?Et(St.MutantStatus.Killed)+"-light":this.ignored>0?Et(St.MutantStatus.Ignored)+"-light":null}countMutant(e,t){switch(t){case St.MutantStatus.Killed:this.killed+=e;break;case St.MutantStatus.Survived:this.survived+=e;break;case St.MutantStatus.Timeout:this.timeout+=e;break;case St.MutantStatus.NoCoverage:this.noCoverage+=e;break;case St.MutantStatus.Ignored:this.ignored+=e}}}function zt(...e){return e.reduce(((e,t)=>e.length?t?`${e}/${t}`:e:t),"")}function Ft(e){const t=new At,n=[];return`<span>${function(e,t){let n=1,r=1;const o=[];for(const i of e)1===n&&"\r"===i||(i!==Ot?o.push(t(i,{line:r,column:n++})):(r++,n=1,o.push(Ot)));return o.join("")}(e.source,((r,o)=>{const i=e.mutants.filter((e=>{return t=e.location.start,n=o,t.line===n.line&&t.column===n.column;var t,n})),s=n.filter((e=>{return t=o,n=e.location.end,t.line>n.line||t.line===n.line&&t.column>=n.column;var t,n}));s.forEach((e=>n.splice(n.indexOf(e),1))),n.push(...i);const a=[];return(i.length||s.length)&&(i.forEach(t.markMutantStart),s.forEach(t.markMutantEnd),a.push("</span>"),s.forEach((()=>a.push("</mutation-test-report-mutant>"))),i.forEach((e=>a.push(`<mutation-test-report-mutant mutant-id="${e.id}">`))),a.push(`<span class="bg-${t.determineBackground()||""}">`)),a.push(r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")),a.join("")}))}</span>`}const Ot="\n";var It=n(10),Rt=n(11),Lt=n.n(Rt),Bt=(n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(30),n(31),n(32),function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s});let Vt=class extends ce{constructor(){super(...arguments),this.dark=!0,this.expandAll=()=>{this.forEachMutantComponent((e=>e.expand=!0))},this.collapseAll=()=>{this.forEachMutantComponent((e=>e.expand=!1))},this.filtersChanged=e=>{const t=e.detail.filter((e=>e.enabled)).map((e=>e.status));this.forEachMutantComponent((e=>{e.show=t.some((t=>void 0!==e.mutant&&e.mutant.status===t))}))}}forEachMutantComponent(e,t=this.root){for(const n of t.querySelectorAll("mutation-test-report-mutant"))n instanceof jt&&e(n)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",(()=>{this.forEachMutantComponent((e=>e.showPopup=!1))})),this.addEventListener("mutant-selected",(e=>{const t=e.detail;this.forEachMutantComponent((e=>e!==t&&(e.showPopup=!1)))})),this.addEventListener(Nt,(e=>{const t=e.detail;this.mutantInDialog=t,e.stopPropagation()})),this.addEventListener("close-dialog",(()=>{this.mutantInDialog=void 0}))}render(){if(this.model)return V` + <div class="row ${this.dark?"dark":""}"> + <div class="col-md-12"> + ${this.renderModalDialog()} + <mutation-test-report-file-legend + @filters-changed="${this.filtersChanged}" + @expand-all="${this.expandAll}" + @collapse-all="${this.collapseAll}" + .mutants="${this.model.mutants}" + ></mutation-test-report-file-legend> + <pre id="report-code-block" class="line-numbers"><code class="language-${this.model.language}">${kt(Ft(this.model))}</code></pre> + </div> + </div> + `}renderModalDialog(){return this.mutantInDialog?V` + <div .hidden="${!this.mutantInDialog}" class="modal-backdrop show"></div> + <mutation-test-report-modal-dialog + ?show="${this.mutantInDialog}" + header="${this.mutantInDialog.id}: ${this.mutantInDialog.mutatorName} - ${Pt(this.mutantInDialog.status)} ${this.mutantInDialog.status}" + > + <p>${this.mutantInDialog.description}</p> + </mutation-test-report-modal-dialog> + `:void 0}firstUpdated(){const e=this.root.querySelector("code");e&&(Object(It.highlightElement)(e),this.forEachMutantComponent((e=>{e.mutant=this.model.mutants.find((t=>t.id.toString()===e.getAttribute("mutant-id")))}),e))}get root(){return this.shadowRoot||this}};Vt.styles=[me,fe,ae(Lt.a)],Bt([ne()],Vt.prototype,"model",void 0),Bt([ne()],Vt.prototype,"dark",void 0),Bt([ne({attribute:!1})],Vt.prototype,"mutantInDialog",void 0),Vt=Bt([ee("mutation-test-report-file")],Vt);class Ut{constructor(){this.file=U`<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"></path></svg>`,this.directory=U`<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"></path></svg>`,this.csharp=U`<svg aria-label="cs" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g fill="var(--mut-file-csharp-color)"><path d="M7.1 15.9c0-1.3.2-2.4.6-3.4.4-1 .9-1.8 1.6-2.5.7-.7 1.5-1.2 2.4-1.6s1.9-.5 2.9-.5 1.9.2 2.7.6c.8.4 1.5.9 2 1.4l-2.2 2.5c-.4-.3-.7-.6-1.1-.7-.4-.1-.8-.3-1.4-.3-.5 0-.9.1-1.3.3-.4.2-.8.5-1.1.9s-.5.8-.7 1.4c-.2.6-.3 1.2-.3 1.9 0 1.5.3 2.6 1 3.3.7.8 1.5 1.2 2.6 1.2.5 0 1-.1 1.4-.3.4-.2.8-.5 1.1-.9l2.2 2.5c-.7.8-1.4 1.3-2.2 1.7-.8.4-1.7.6-2.7.6s-2-.2-2.9-.5-1.7-.8-2.4-1.5-1.1-1.7-1.5-2.7c-.5-.9-.7-2.1-.7-3.4z"/><path d="M21.8 17.1h-1l-.4 2.4h-1.2l.4-2.4h-1.2V16h1.5l.2-1.6h-1.3v-1.1h1.5l.4-2.4h1.2l-.4 2.4h1l.4-2.4h1.2l-.4 2.4H25v1.1h-1.6l-.2 1.6h1.3v1.1h-1.6l-.4 2.4h-1.2c0 .1.5-2.4.5-2.4zm-.8-1h1l.2-1.6h-1l-.2 1.6z"/></g></svg>`,this.html=U`<svg aria-label="html" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-html-color)" d="M8 15l6-5.6V12l-4.5 4 4.5 4v2.6L8 17v-2zm16 2.1l-6 5.6V20l4.6-4-4.6-4V9.3l6 5.6v2.2z"/></svg>`,this.java=U`<svg aria-label="java" xmlns="http://www.w3.org/2000/svg" viewBox="-4 -4 20 20"><path class="cls-1" d="M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm2.14 6.8a2.16 2.16 0 0 1-2.29 2.41 2.5 2.5 0 0 1-2-.87l.73-.92a1.52 1.52 0 0 0 1.23.59c.66 0 1.06-.42 1.06-1.32V2.8h1.26z" fill="var(--mut-file-java-color)"/></svg>`,this.javascript=U`<svg aria-label="js" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-js-color)" d="M11.4 10h2.7v7.6c0 3.4-1.6 4.6-4.3 4.6-.6 0-1.5-.1-2-.3l.3-2.2c.4.2.9.3 1.4.3 1.1 0 1.9-.5 1.9-2.4V10zm5.1 9.2c.7.4 1.9.8 3 .8 1.3 0 1.9-.5 1.9-1.3s-.6-1.2-2-1.7c-2-.7-3.3-1.8-3.3-3.6 0-2.1 1.7-3.6 4.6-3.6 1.4 0 2.4.3 3.1.6l-.6 2.2c-.5-.2-1.3-.6-2.5-.6s-1.8.5-1.8 1.2c0 .8.7 1.1 2.2 1.7 2.1.8 3.1 1.9 3.1 3.6 0 2-1.6 3.7-4.9 3.7-1.4 0-2.7-.4-3.4-.7l.6-2.3z"/></svg>`,this.scala=U`<svg aria-label="scala" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M21.6 7v4.2c-.1.1-.1.2-.2.2-.3.3-.7.5-1.1.6-.9.3-1.9.5-2.8.7-1.6.3-3.1.5-4.7.7-.8.1-1.6.2-2.4.4V9.6c.1-.1.2-.1.4-.1 1.2-.2 2.5-.4 3.8-.5 1.9-.3 3.8-.5 5.6-1.1.5-.2 1.1-.4 1.4-.9zm0 5.6v4.2l-.2.2c-.5.4-1.1.6-1.6.8-.8.2-1.6.4-2.4.5-1 .2-1.9.3-2.9.5-1.4.2-2.7.3-4.1.6v-4.2c.1-.1.2-.1.3-.1 1.7-.2 3.4-.5 5.1-.7 1.4-.2 2.9-.5 4.3-.9.6-.2 1.1-.4 1.5-.9zM10.5 25h-.1v-4.2c.1-.1.2-.1.3-.1 1.2-.2 2.3-.3 3.5-.5 2-.3 3.9-.5 5.8-1.1.6-.2 1.2-.4 1.6-.9v4.2c-.1.2-.3.3-.5.5-.6.3-1.2.5-1.9.7-1.2.3-2.5.5-3.7.7-1.3.2-2.6.4-3.9.5-.4 0-.7.1-1.1.2z" fill="var(--mut-file-scala-color)"/></svg>`,this.typescript=U`<svg aria-label="ts" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.6 11.8h-3.4V22H9.7V11.8H6.3V10h9.2v1.8zm7.7 7.1c0-.5-.2-.8-.5-1.1-.3-.3-.9-.5-1.7-.8-1.4-.4-2.5-.9-3.3-1.5-.7-.6-1.1-1.3-1.1-2.3 0-1 .4-1.8 1.3-2.4.8-.6 1.9-.9 3.2-.9 1.3 0 2.4.4 3.2 1.1.8.7 1.2 1.6 1.2 2.6h-2.3c0-.6-.2-1-.6-1.4-.4-.3-.9-.5-1.6-.5-.6 0-1.1.1-1.5.4-.4.3-.5.7-.5 1.1 0 .4.2.7.6 1 .4.3 1 .5 2 .8 1.3.4 2.3.9 3 1.5.7.6 1 1.4 1 2.4s-.4 1.9-1.2 2.4c-.8.6-1.9.9-3.2.9-1.3 0-2.5-.3-3.4-1s-1.5-1.6-1.4-2.9h2.4c0 .7.2 1.2.7 1.6.4.3 1.1.5 1.8.5s1.2-.1 1.5-.4c.2-.3.4-.7.4-1.1z" fill="var(--mut-file-ts-color)"/></svg>`,this.php=U`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-php-color)" d="M12.7 19.7c-.1-.6-.4-1.1-1-1.3-.2-.1-.5-.3-.7-.4-.3-.1-.6-.2-.8-.3-.2-.1-.4 0-.6.2-.1.2 0 .4.1.5.1.2.2.3.4.5.2.3.4.5.7.8.2.3.4.5.3.9-.1.7-.4 1.4-.9 1.9-.1.1-.2.1-.2.1-.3 0-.7-.2-.9-.4-.3-.3-.2-.6.1-.8.1 0 .2-.1.2-.2.2-.2.3-.4.2-.7-.1-.1-.1-.2-.2-.3-.4-.4-.9-.8-1.4-1.2-1.3-1-1.9-2.2-2-3.6-.1-1.6.3-3.1 1.1-4.5.3-.5.7-1 1.3-1.3.4-.2.8-.3 1.2-.4 1.1-.3 2.3-.5 3.5-.3 1 .2 1.8.7 2.1 1.7.2.7.3 1.3.2 2-.1 1.4-1.2 2.6-2.5 3-.6.2-.9.1-1.2-.4-.2-.3-.5-.7-.7-1.1V14c0-.1-.1-.1-.1-.2.1.6.2 1.2.5 1.7.2.3.4.5.8.5 1.3.1 2.3-.3 3.1-1.3.8-1.1 1-2.4.8-3.8 0-.3-.1-.5-.2-.8 0-.2 0-.3.2-.4.1 0 .2 0 .2-.1 1-.2 2.1-.3 3.1-.2 1.2.1 2.3.4 3.3 1.1 1.6 1 2.6 2.5 3.1 4.3.1.3.1.5.1.8 0 .2-.1.2-.3.1-.2-.1-.3-.3-.4-.4-.1-.1-.2-.3-.3-.4-.1-.1-.2-.1-.2 0s-.1.2-.1.3c-.3 1-.7 1.9-1.4 2.6-.1.1-.2.3-.2.4 0 .4-.1.8 0 1.2.1.8.2 1.7.3 2.5.1.5-.1.7-.5.9-.3.1-.6.2-1 .2h-1.6c0-.6 0-1.2-.5-1.5.1-.4.2-.8.3-1.3.1-.4 0-.7-.2-1-.2-.3-.5-.3-.8-.2-.8.5-1.6.5-2.5.2-.4-.1-.7-.1-.9.3-.2.4-.3.8-.3 1.2 0 .5.1 1.1.2 1.6 0 .3 0 .4-.3.5-.7.2-1.4.2-2 .1h-.1c0-.6 0-1.2-.7-1.5.4-.4.4-1.1.3-1.7zm-4.1-2.3c.1-.1.2-.2.2-.4.1-.3-.2-.8-.5-.9-.2-.1-.3 0-.4.1-.3.3-.5.6-.8.9 0 .1-.1.1-.1.2-.1.2 0 .4.2.4.1 0 .3 0 .4.1.4 0 .7-.1 1-.4zm0-3.3c0-.2-.2-.4-.4-.4s-.5.2-.4.5c0 .2.2.4.5.4.1-.1.3-.3.3-.5z"/></svg>`,this.vue=U`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1000"><path fill="var(--mut-file-vue-color)" d="M600 495.9l159.1-275.4h-84.4L600 349.7l-74.6-129.2h-84.5z"/><path fill="var(--mut-file-vue-color)" d="M793.7 220.5L600 555.9 406.3 220.5H277l323 559 323-559z"/></svg>`,this.svgMapping=new Map,this.svgMapping.set("cs",this.csharp),this.svgMapping.set("html",this.html),this.svgMapping.set("java",this.java),this.svgMapping.set("js",this.javascript),this.svgMapping.set("scala",this.scala),this.svgMapping.set("ts",this.typescript),this.svgMapping.set("php",this.php),this.svgMapping.set("vue",this.vue)}getIconForFile(e){const t=this.getFileExtension(e),n=this.svgMapping.get(t);return void 0!==n?n:this.file}getIconForFolder(){return this.directory}getFileExtension(e){const t=e.split(".");return t[t.length-1]}}var Dt=n(12),Ht=n.n(Dt),qt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Wt=class extends ce{constructor(){super(...arguments),this.currentPath=[],this.svgService=new Ut}render(){return this.model?V` + <table class="table table-sm table-hover table-bordered table-no-top">${this.renderHead()} ${this.renderTableBody(this.model)}</table> + `:void 0}renderHead(){return V`<thead> + <tr> + <th colspan="2" style="width: 217px"> + <div><span>File / Directory</span></div> + </th> + <th colspan="2"> + <div><span>Mutation score</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Killed</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Survived</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Timeout</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># No coverage</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Ignored</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Runtime errors</span></div> + </th> + <th class="rotate text-center" style="width: 50px"> + <div><span># Compile errors</span></div> + </th> + <th class="rotate rotate-width-70 text-center" style="width: 70px"> + <div><span>Total detected</span></div> + </th> + <th class="rotate rotate-width-70 text-center" style="width: 70px"> + <div><span>Total undetected</span></div> + </th> + <th class="rotate rotate-width-70 text-center" style="width: 70px"> + <div><span>Total mutants</span></div> + </th> + </tr> + </thead>`}renderTableBody(e){return V`<tbody>${this.renderRow(e.name,e,void 0)} ${(()=>e.file?void 0:e.childResults.map((e=>{let t=e.name;for(;!e.file&&1===e.childResults.length;)t=zt(t,(e=e.childResults[0]).name);return this.renderRow(t,e,zt(...this.currentPath,t))})))()}</tbody>`}renderRow(e,t,n){const{mutationScore:r}=t.metrics,o=!isNaN(r),i=this.determineColoringClass(r),s=r.toFixed(2),a=`width: ${r}%`;return V` <tr title="${t.name}"> + <td style="width: 32px;" class="icon no-border-right" + >${t.file?this.svgService.getIconForFile(t.name):this.svgService.getIconForFolder()}</td + > + <td width="" class="no-border-left" + >${"string"==typeof n?V`<a href="${Ct(n)}">${e}</a>`:V`<span>${t.name}</span>`}</td + > + <td class="no-border-right vertical-middle"> + ${o?V` <div class="progress"> + <div + class="progress-bar bg-${i}" + role="progressbar" + aria-valuenow="${s}" + aria-valuemin="0" + aria-valuemax="100" + style="${a}" + > + ${s}% + </div> + </div>`:V` <span class="font-weight-bold text-muted">N/A</span> `} + </td> + <td style="width: 50px;" class="no-border-left font-weight-bold text-center text-${i}"> + ${o?s:void 0} + </td> + <td class="text-center">${t.metrics.killed}</td> + <td class="text-center">${t.metrics.survived}</td> + <td class="text-center">${t.metrics.timeout}</td> + <td class="text-center">${t.metrics.noCoverage}</td> + <td class="text-center">${t.metrics.ignored}</td> + <td class="text-center">${t.metrics.runtimeErrors}</td> + <td class="text-center">${t.metrics.compileErrors}</td> + <th class="text-center">${t.metrics.totalDetected}</th> + <th class="text-center">${t.metrics.totalUndetected}</th> + <th class="text-center">${t.metrics.totalMutants}</th> + </tr>`}determineColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"danger":e<this.thresholds.high?"warning":"success":"default"}};Wt.styles=[fe,ae(Ht.a)],qt([ne()],Wt.prototype,"model",void 0),qt([ne()],Wt.prototype,"thresholds",void 0),qt([ne()],Wt.prototype,"currentPath",void 0),Wt=qt([ee("mutation-test-report-totals")],Wt);var Zt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};const Jt="All files";let Kt=class extends ce{render(){return V` + <ol class="breadcrumb"> + ${this.renderRootItem()} ${this.renderBreadcrumbItems()} + </ol> + `}renderRootItem(){return this.path&&this.path.length?this.renderLink(Jt,""):this.renderActiveItem(Jt)}renderBreadcrumbItems(){if(this.path){const e=this.path;return e.map(((t,n)=>n===e.length-1?this.renderActiveItem(t):this.renderLink(t,""+e.filter(((e,t)=>t<=n)).join("/"))))}}renderActiveItem(e){return V` <li class="breadcrumb-item active" aria-current="page">${e}</li> `}renderLink(e,t){return V` <li class="breadcrumb-item"><a href="${Ct(t)}">${e}</a></li> `}};Kt.styles=[fe],Zt([ne()],Kt.prototype,"path",void 0),Kt=Zt([ee("mutation-test-report-breadcrumb")],Kt);var Yt=n(13),Gt=n.n(Yt),Xt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Qt=class extends ce{constructor(){super(...arguments),this.show=!1,this.emitCloseEvent=e=>{this.dispatchEvent(new CustomEvent("close-dialog",{bubbles:!0,detail:this,composed:!0})),e.stopPropagation()}}render(){return V` + <div .hidden="${!this.show}" class="modal show" style="display: block;" tabindex="-1" role="dialog" @click="${this.emitCloseEvent}"> + <div class="modal-dialog" role="document" @click="${e=>e.stopPropagation()}"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title">${this.header}</h5> + </div> + <div class="modal-body"> + <slot></slot> + </div> + <div class="modal-footer"> + <button type="button" @click="${this.emitCloseEvent}" class="btn btn-link">Close</button> + </div> + </div> + </div> + </div> + <slot></slot> + `}};Qt.styles=[fe,ae(Gt.a)],Xt([ne({converter:e=>"string"==typeof e})],Qt.prototype,"show",void 0),Xt([ne()],Qt.prototype,"header",void 0),Qt=Xt([ee("mutation-test-report-modal-dialog")],Qt);var en=n(14),tn=n.n(en),nn=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let rn=class extends ce{constructor(){super(...arguments),this.mutants=[],this.collapsed=!0,this.filters=[],this.toggleOpenAll=()=>{this.collapsed=!this.collapsed,this.collapsed?this.dispatchEvent(new CustomEvent("collapse-all")):this.dispatchEvent(new CustomEvent("expand-all"))}}get collapseButtonText(){return this.collapsed?"Expand all":"Collapse all"}updated(e){e.has("mutants")&&this.updateModel()}updateModel(){this.filters=[St.MutantStatus.Killed,St.MutantStatus.Survived,St.MutantStatus.NoCoverage,St.MutantStatus.Ignored,St.MutantStatus.Timeout,St.MutantStatus.CompileError,St.MutantStatus.RuntimeError].filter((e=>this.mutants.some((t=>t.status===e)))).map((e=>({enabled:[St.MutantStatus.Survived,St.MutantStatus.NoCoverage,St.MutantStatus.Timeout].some((t=>t===e)),numberOfMutants:this.mutants.filter((t=>t.status===e)).length,status:e}))),this.dispatchFiltersChangedEvent()}checkboxClicked(e){e.enabled=!e.enabled,this.dispatchFiltersChangedEvent()}dispatchFiltersChangedEvent(){this.dispatchEvent(new CustomEvent("filters-changed",{detail:this.filters}))}render(){return V` + <div class="legend col-md-12"> + ${this.filters.map((e=>V` + <div data-status="${e.status}" class="form-check form-check-inline"> + <label class="form-check-label"> + <input + class="form-check-input" + type="checkbox" + ?checked="${e.enabled}" + value="${e.status}" + @input="${()=>this.checkboxClicked(e)}" + /> + <span class="badge badge-${Et(e.status)}" + >${Pt(e.status)} ${e.status} (${e.numberOfMutants})</span + > + </label> + </div> + `))} + <button @click="${this.toggleOpenAll}" class="btn btn-sm btn-secondary" type="button">${this.collapseButtonText}</button> + </div> + `}};rn.styles=[fe,ae(tn.a)],nn([ne()],rn.prototype,"mutants",void 0),nn([ne()],rn.prototype,"collapseButtonText",null),nn([ne()],rn.prototype,"collapsed",void 0),nn([ne()],rn.prototype,"filters",void 0),rn=nn([ee("mutation-test-report-file-legend")],rn);var on=n(15),sn=n.n(on),an=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let ln=class extends ce{constructor(){super(...arguments),this.dispatchThemeChangedEvent=e=>{const t=e.target.checked;this.dispatchEvent(new CustomEvent("theme-switch",{detail:t?"dark":"light"}))}}render(){return V` + <div class="check-box-container"> + <input type="checkbox" @click="${this.dispatchThemeChangedEvent}" ?checked="${"dark"==this.theme}" id="darkTheme" /> + <label for="darkTheme">Dark</label> + </div> + `}};ln.styles=[fe,ae(sn.a)],an([ne()],ln.prototype,"theme",void 0),ln=an([ee("mutation-test-report-theme-switch")],ln)}]); + </script> + </head> + <body> + <svg style="width: 80px; position:fixed; right:10px; bottom:10px; z-index:10" class="stryker-image" viewBox="0 0 1458 1458" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path fill="none" d="M0 0h1458v1458H0z"/><clipPath id="a"><path d="M0 0h1458v1458H0z"/></clipPath><g clip-path="url(#a)"><path d="M1458 729c0 402.655-326.345 729-729 729S0 1131.655 0 729C0 326.445 326.345 0 729 0s729 326.345 729 729" fill="#e74c3c" fill-rule="nonzero"/><path d="M778.349 1456.15L576.6 1254.401l233-105 85-78.668v-64.332l-257-257-44-187-50-208 251.806-82.793L1076.6 389.401l380.14 379.15c-19.681 367.728-311.914 663.049-678.391 687.599z" fill-opacity=".3"/><path d="M753.4 329.503c41.79 0 74.579 7.83 97.925 25.444 23.571 18.015 41.69 43.956 55.167 77.097l11.662 28.679 165.733-58.183-14.137-32.13c-26.688-60.655-64.896-108.61-114.191-144.011-49.329-35.423-117.458-54.302-204.859-54.302-50.78 0-95.646 7.376-134.767 21.542-40.093 14.671-74.09 34.79-102.239 60.259-28.84 26.207-50.646 57.06-65.496 92.701-14.718 35.052-22.101 72.538-22.101 112.401 0 72.536 20.667 133.294 61.165 182.704 38.624 47.255 98.346 88.037 179.861 121.291 42.257 17.475 78.715 33.125 109.227 46.994 27.193 12.361 49.294 26.124 66.157 41.751 15.309 14.186 26.497 30.584 33.63 49.258 7.721 20.214 11.16 45.69 11.16 76.402 0 28.021-4.251 51.787-13.591 71.219-8.832 18.374-20.171 33.178-34.523 44.219-14.787 11.374-31.193 19.591-49.393 24.466-19.68 5.359-39.14 7.993-58.69 7.993-29.359 0-54.387-3.407-75.182-10.747-20.112-7.013-37.144-16.144-51.259-27.486-13.618-11.009-24.971-23.766-33.744-38.279-9.64-15.8-17.272-31.924-23.032-48.408l-10.965-31.376-161.669 60.585 10.734 30.124c10.191 28.601 24.197 56.228 42.059 82.748 18.208 27.144 41.322 51.369 69.525 72.745 27.695 21.075 60.904 38.218 99.481 51.041 37.777 12.664 82.004 19.159 132.552 19.159 49.998 0 95.818-8.321 137.611-24.622 42.228-16.471 78.436-38.992 108.835-67.291 30.719-28.597 54.631-62.103 71.834-100.642 17.263-38.56 25.923-79.392 25.923-122.248 0-54.339-8.368-100.37-24.208-138.32-16.29-38.759-38.252-71.661-65.948-98.797-26.965-26.418-58.269-48.835-93.858-67.175-33.655-17.241-69.196-33.11-106.593-47.533-35.934-13.429-65.822-26.601-89.948-39.525-22.153-11.868-40.009-24.21-53.547-37.309-11.429-11.13-19.83-23.678-24.718-37.664-5.413-15.49-7.98-33.423-7.98-53.577 0-40.883 11.293-71.522 37.086-90.539 28.443-20.825 64.985-30.658 109.311-30.658z" fill="#f1c40f" fill-rule="nonzero"/><path d="M720 0h18v113h-18zM1458 738v-18h-113v18h113zM720 1345h18v113h-18zM113 738v-18H0v18h113z"/></g></svg> <mutation-test-report-app titlePostfix="Stryker"> - Your browser doesn't support <a href="https://caniuse.com/#search=custom%20elements">custom elements</a>. - Please use a latest version of an evergreen browser (Firefox, Chrome, Safari, Opera, etc). + Your browser doesn't support <a href="https://caniuse.com/#search=custom%20elements">custom elements</a>. + Please use a latest version of an evergreen browser (Firefox, Chrome, Safari, Opera, Edge, etc). </mutation-test-report-app> - <script src="bind-mutation-test-report.js"></script> -</body> - -</html> + <script> + const app = document.querySelector('mutation-test-report-app'); + app.report = {"files":{"/Users/dominiksigmund/Code/config/index.js":{"language":"javascript","mutants":[{"id":"0","location":{"end":{"column":2,"line":83},"start":{"column":49,"line":5}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"10","location":{"end":{"column":69,"line":19},"start":{"column":36,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"11","location":{"end":{"column":130,"line":19},"start":{"column":75,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"13","location":{"end":{"column":129,"line":19},"start":{"column":116,"line":19}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"4","location":{"end":{"column":64,"line":9},"start":{"column":42,"line":9}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"2","location":{"end":{"column":15,"line":8},"start":{"column":7,"line":8}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"7","location":{"end":{"column":91,"line":12},"start":{"column":69,"line":12}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"5","location":{"end":{"column":52,"line":10},"start":{"column":39,"line":10}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"1","location":{"end":{"column":15,"line":8},"start":{"column":7,"line":8}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"3","location":{"end":{"column":4,"line":11},"start":{"column":17,"line":8}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"6","location":{"end":{"column":4,"line":14},"start":{"column":10,"line":11}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"14","location":{"end":{"column":160,"line":19},"start":{"column":139,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"8","location":{"end":{"column":79,"line":13},"start":{"column":66,"line":13}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"15","location":{"end":{"column":4,"line":32},"start":{"column":42,"line":22}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"17","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"18","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"EqualityOperator","replacement":"i <" + "= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"16","location":{"end":{"column":31,"line":24},"start":{"column":28,"line":24}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"19","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"EqualityOperator","replacement":"i >= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"20","location":{"end":{"column":29,"line":26},"start":{"column":24,"line":26}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"22","location":{"end":{"column":6,"line":30},"start":{"column":36,"line":26}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"9","location":{"end":{"column":4,"line":20},"start":{"column":41,"line":18}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"23","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"24","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"26","location":{"end":{"column":23,"line":31},"start":{"column":18,"line":31}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"25","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"BooleanLiteral","replacement":"schema[elem]","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"27","location":{"end":{"column":4,"line":43},"start":{"column":35,"line":33}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"28","location":{"end":{"column":31,"line":35},"start":{"column":28,"line":35}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"29","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"30","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"EqualityOperator","replacement":"i <" + "= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"32","location":{"end":{"column":29,"line":37},"start":{"column":24,"line":37}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"36","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"39","location":{"end":{"column":4,"line":80},"start":{"column":31,"line":45}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"34","location":{"end":{"column":6,"line":41},"start":{"column":36,"line":37}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"35","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"37","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"BooleanLiteral","replacement":"schema[elem]","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"38","location":{"end":{"column":30,"line":42},"start":{"column":25,"line":42}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"12","location":{"end":{"column":129,"line":19},"start":{"column":111,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"40","location":{"end":{"column":6,"line":49},"start":{"column":9,"line":46}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"42","location":{"end":{"column":6,"line":51},"start":{"column":20,"line":49}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"41","location":{"end":{"column":77,"line":48},"start":{"column":71,"line":48}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"43","location":{"end":{"column":29,"line":50},"start":{"column":19,"line":50}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"47","location":{"end":{"column":29,"line":56},"start":{"column":19,"line":56}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"44","location":{"end":{"column":6,"line":55},"start":{"column":9,"line":52}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"45","location":{"end":{"column":74,"line":54},"start":{"column":68,"line":54}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"46","location":{"end":{"column":6,"line":57},"start":{"column":21,"line":55}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"49","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"EqualityOperator","replacement":"index <" + "= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"48","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"50","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"EqualityOperator","replacement":"index >= keys.length","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"52","location":{"end":{"column":6,"line":67},"start":{"column":55,"line":59}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"51","location":{"end":{"column":53,"line":59},"start":{"column":46,"line":59}},"mutatorName":"UpdateOperator","replacement":"index--","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"53","location":{"end":{"column":69,"line":61},"start":{"column":66,"line":61}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"55","location":{"end":{"column":14,"line":62},"start":{"column":11,"line":62}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"54","location":{"end":{"column":14,"line":62},"start":{"column":11,"line":62}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"56","location":{"end":{"column":8,"line":66},"start":{"column":16,"line":62}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"57","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"58","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"60","location":{"end":{"column":29,"line":63},"start":{"column":23,"line":63}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"61","location":{"end":{"column":37,"line":63},"start":{"column":33,"line":63}},"mutatorName":"BooleanLiteral","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"59","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"EqualityOperator","replacement":"env != 'true'","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"62","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"63","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"65","location":{"end":{"column":30,"line":64},"start":{"column":23,"line":64}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"64","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"EqualityOperator","replacement":"env != 'false'","status":"Killed","description":"Killed by: config should have both values with preference to config.json"},{"id":"67","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"66","location":{"end":{"column":39,"line":64},"start":{"column":34,"line":64}},"mutatorName":"BooleanLiteral","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"71","location":{"end":{"column":6,"line":79},"start":{"column":55,"line":68}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"68","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"EqualityOperator","replacement":"index <" + "= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"69","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"EqualityOperator","replacement":"index >= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"70","location":{"end":{"column":53,"line":68},"start":{"column":46,"line":68}},"mutatorName":"UpdateOperator","replacement":"index--","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"72","location":{"end":{"column":36,"line":71},"start":{"column":11,"line":71}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"74","location":{"end":{"column":35,"line":71},"start":{"column":28,"line":71}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"73","location":{"end":{"column":36,"line":71},"start":{"column":11,"line":71}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"77","location":{"end":{"column":69,"line":73},"start":{"column":62,"line":73}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"75","location":{"end":{"column":8,"line":78},"start":{"column":38,"line":71}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"76","location":{"end":{"column":10,"line":74},"start":{"column":13,"line":72}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"78","location":{"end":{"column":73,"line":73},"start":{"column":71,"line":73}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"79","location":{"end":{"column":82,"line":73},"start":{"column":76,"line":73}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"80","location":{"end":{"column":10,"line":76},"start":{"column":25,"line":74}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"21","location":{"end":{"column":34,"line":26},"start":{"column":31,"line":26}},"mutatorName":"UpdateOperator","replacement":"i--","status":"Timeout"},{"id":"31","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"EqualityOperator","replacement":"i >= len - 1","status":"Timeout"},{"id":"33","location":{"end":{"column":34,"line":37},"start":{"column":31,"line":37}},"mutatorName":"UpdateOperator","replacement":"i--","status":"Timeout"}],"source":"var fs = require('fs')\nvar path = require('path')\nvar merge = require('lodash.merge')\n\nmodule.exports = function(basePath = undefined) {\n let configDefaults\n let configLocal\n if (basePath) {\n configDefaults = path.join(basePath, 'config.defaults.json')\n configLocal = path.join(basePath, 'config.json')\n } else {\n configDefaults = path.join(path.dirname(require.main.filename), 'config.defaults.json')\n configLocal = path.join(path.dirname(require.main.filename), 'config.json')\n }\n\n let config = {}\n \n const objectDeepKeys = function (obj) {\n return Object.keys(obj).filter(key => obj[key] instanceof Object).map(key => objectDeepKeys(obj[key]).map(k => `${key}.${k}`)).reduce((x, y) => x.concat(y), Object.keys(obj))\n }\n \n const set = function(obj, path, value) {\n var schema = obj // a moving reference to internal objects within obj\n var pList = path.split('.')\n var len = pList.length\n for(var i = 0; i <" + " len-1; i++) {\n var elem = pList[i]\n if( !schema[elem] ) schema[elem] = {}\n schema = schema[elem]\n }\n schema[pList[len-1]] = value\n }\n const get = function(obj, path) {\n var schema = obj // a moving reference to internal objects within obj\n var pList = path.split('.')\n var len = pList.length\n for(var i = 0; i <" + " len-1; i++) {\n var elem = pList[i]\n if( !schema[elem] ) schema[elem] = {}\n schema = schema[elem]\n }\n return schema[pList[len-1]]\n }\n\n config.reload = function () {\n try {\n fs.accessSync(configDefaults)\n config = merge(this, JSON.parse(fs.readFileSync(configDefaults, 'utf8')))\n } catch(error) {\n console.log('No File ' + configDefaults)\n }\n try {\n fs.accessSync(configLocal)\n config = merge(this, JSON.parse(fs.readFileSync(configLocal, 'utf8')))\n } catch (error) {\n console.log('No File ' + configLocal)\n }\n let keys = objectDeepKeys(this)\n for (let index = 0; index <" + " keys.length; index++) {\n const element = keys[index]\n let env = process.env[element.toUpperCase().replace(/\\./g, '_')]\n if (env) {\n env = (env == 'true') ? true : env\n env = (env == 'false') ? false : env\n set(this, element, env)\n }\n }\n for (let index = 0; index <" + " keys.length; index++) {\n const element = keys[index]\n let value = get(config, element).toString()\n if (value.startsWith('file:')) {\n try {\n set(config, element, fs.readFileSync(value.replace('file:', ''), 'utf8'))\n } catch (error) {\n console.error(error.message)\n }\n \n }\n }\n }\n config.reload()\n return config\n}"}},"schemaVersion":"1.0","thresholds":{"high":80,"low":60,"break":null}}; + function updateTheme() { + document.body.style.backgroundColor = app.theme === 'dark' ? '#222' : '#fff'; + } + app.addEventListener('theme-changed', updateTheme); + updateTheme(); + </script> + </body> + </html> \ No newline at end of file diff --git a/docs/mutation/mutation-test-elements.js b/docs/mutation/mutation-test-elements.js deleted file mode 100644 index c35e9ec..0000000 --- a/docs/mutation/mutation-test-elements.js +++ /dev/null @@ -1,187 +0,0 @@ -/*! For license information please see mutation-test-elements.js.LICENSE.txt */ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=28)}([function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(s=r,a=btoa(unescape(encodeURIComponent(JSON.stringify(s)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(l," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[n].concat(i).concat([o]).join("\n")}var s,a,l;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<e.length;a++){var l=[].concat(e[a]);r&&o[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.flatMap=function(e,t){const n=[];return e.map(t).forEach(e=>n.push(...e)),n},t.groupBy=function(e,t){return e.reduce((e,n)=>{const r=t(n);return Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(n),e},{})},t.pathJoin=function(...e){return e.reduce((e,t)=>e.length?t?`${e}/${t}`:e:t,"")},t.normalizeFileNames=function(e){const t=Object.keys(e),n=function(e){const t=e.map(e=>e.split(/\/|\\/).slice(0,-1));return e.length?t.reduce((function(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e.splice(0,n);return e})).join("/"):""}(t),r={};return t.forEach(t=>{r[function(e){return e.split(/\/|\\/).filter(e=>e).join("/")}(t.substr(n.length))]=e[t]}),r},t.compareNames=function(e,t){const n=e=>e.file?`1${e.name}`:`0${e.name}`;return n(e).localeCompare(n(t))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4);t.calculateMetrics=r.calculateMetrics;const o=n(1);t.normalizeFileNames=o.normalizeFileNames},function(e,t,n){(function(t){var n=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof o?new o(e.type,r.util.encode(e.content),e.alias):Array.isArray(e)?e.map(r.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var o,i,s=r.util.type(t);switch(n=n||{},s){case"Object":if(i=r.util.objId(t),n[i])return n[i];for(var a in o={},n[i]=o,t)t.hasOwnProperty(a)&&(o[a]=e(t[a],n));return o;case"Array":return i=r.util.objId(t),n[i]?n[i]:(o=[],n[i]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(e){for(;e&&!t.test(e.className);)e=e.parentElement;return e?(e.className.match(t)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}}},languages:{extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var i=(o=o||r.languages)[e],s={};for(var a in i)if(i.hasOwnProperty(a)){if(a==t)for(var l in n)n.hasOwnProperty(l)&&(s[l]=n[l]);n.hasOwnProperty(a)||(s[a]=i[a])}var c=o[e];return o[e]=s,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=s)})),s},DFS:function e(t,n,o,i){i=i||{};var s=r.util.objId;for(var a in t)if(t.hasOwnProperty(a)){n.call(t,a,t[a],o||a);var l=t[a],c=r.util.type(l);"Object"!==c||i[s(l)]?"Array"!==c||i[s(l)]||(i[s(l)]=!0,e(l,n,a,i)):(i[s(l)]=!0,e(l,n,null,i))}}},plugins:{},highlightAll:function(e,t){r.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var o={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",o),o.elements=Array.prototype.slice.apply(o.container.querySelectorAll(o.selector)),r.hooks.run("before-all-elements-highlight",o);for(var i,s=0;i=o.elements[s++];)r.highlightElement(i,!0===t,o.callback)},highlightElement:function(n,o,i){var s=r.util.getLanguage(n),a=r.languages[s];n.className=n.className.replace(t,"").replace(/\s+/g," ")+" language-"+s;var l=n.parentNode;l&&"pre"===l.nodeName.toLowerCase()&&(l.className=l.className.replace(t,"").replace(/\s+/g," ")+" language-"+s);var c={element:n,language:s,grammar:a,code:n.textContent};function d(e){c.highlightedCode=e,r.hooks.run("before-insert",c),c.element.innerHTML=c.highlightedCode,r.hooks.run("after-highlight",c),r.hooks.run("complete",c),i&&i.call(c.element)}if(r.hooks.run("before-sanity-check",c),!c.code)return r.hooks.run("complete",c),void(i&&i.call(c.element));if(r.hooks.run("before-highlight",c),c.grammar)if(o&&e.Worker){var u=new Worker(r.filename);u.onmessage=function(e){d(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else d(r.highlight(c.code,c.grammar,c.language));else d(r.util.encode(c.code))},highlight:function(e,t,n){var i={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",i),i.tokens=r.tokenize(i.code,i.grammar),r.hooks.run("after-tokenize",i),o.stringify(r.util.encode(i.tokens),i.language)},matchGrammar:function(e,t,n,i,s,a,l){for(var c in n)if(n.hasOwnProperty(c)&&n[c]){var d=n[c];d=Array.isArray(d)?d:[d];for(var u=0;u<d.length;++u){if(l&&l==c+","+u)return;var p=d[u],h=p.inside,f=!!p.lookbehind,m=!!p.greedy,g=0,b=p.alias;if(m&&!p.pattern.global){var v=p.pattern.toString().match(/[imsuy]*$/)[0];p.pattern=RegExp(p.pattern.source,v+"g")}p=p.pattern||p;for(var y=i,w=s;y<t.length;w+=t[y].length,++y){var x=t[y];if(t.length>e.length)return;if(!(x instanceof o)){if(m&&y!=t.length-1){if(p.lastIndex=w,!(C=p.exec(e)))break;for(var k=C.index+(f&&C[1]?C[1].length:0),_=C.index+C[0].length,S=y,P=w,E=t.length;S<E&&(P<_||!t[S].type&&!t[S-1].greedy);++S)k>=(P+=t[S].length)&&(++y,w=P);if(t[y]instanceof o)continue;$=S-y,x=e.slice(w,P),C.index-=w}else{p.lastIndex=0;var C=p.exec(x),$=1}if(C){f&&(g=C[1]?C[1].length:0);_=(k=C.index+g)+(C=C[0].slice(g)).length;var N=x.slice(0,k),A=x.slice(_),T=[y,$];N&&(++y,w+=N.length,T.push(N));var M=new o(c,h?r.tokenize(C,h):C,b,C,m);if(T.push(M),A&&T.push(A),Array.prototype.splice.apply(t,T),1!=$&&r.matchGrammar(e,t,n,y,w,!0,c+","+u),a)break}else if(a)break}}}}},tokenize:function(e,t){var n=[e],o=t.rest;if(o){for(var i in o)t[i]=o[i];delete t.rest}return r.matchGrammar(e,n,t,0,0,!1),n},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,i=0;o=n[i++];)o(t)}},Token:o};function o(e,t,n,r,o){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o}if(e.Prism=r,o.stringify=function(e,t){if("string"==typeof e)return e;if(Array.isArray(e))return e.map((function(e){return o.stringify(e,t)})).join("");var n={type:e.type,content:o.stringify(e.content,t),tag:"span",classes:["token",e.type],attributes:{},language:t};if(e.alias){var i=Array.isArray(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(n.classes,i)}r.hooks.run("wrap",n);var s=Object.keys(n.attributes).map((function(e){return e+'="'+(n.attributes[e]||"").replace(/"/g,""")+'"'})).join(" ");return"<"+n.tag+' class="'+n.classes.join(" ")+'"'+(s?" "+s:"")+">"+n.content+"</"+n.tag+">"},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),o=n.language,i=n.code,s=n.immediateClose;e.postMessage(r.highlight(i,r.languages[o],o)),s&&e.close()}),!1),r):r;var i=r.util.currentScript();if(i&&(r.filename=i.src,i.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){function s(){r.manual||r.highlightAll()}var a=document.readyState;"loading"===a||"interactive"===a&&i&&i.defer?document.addEventListener("DOMContentLoaded",s):window.requestAnimationFrame?window.requestAnimationFrame(s):window.setTimeout(s,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n)}).call(this,n(12))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(1),o=n(1);function i(e,t){const n=s(r.flatMap(Object.values(e),e=>e.mutants));return{name:t,childResults:function(e){const t=o.groupBy(Object.entries(e),e=>e[0].split("/")[0]);return Object.keys(t).map(e=>{if(t[e].length>1||t[e][0][0]!==e){const n={};return t[e].forEach(t=>n[t[0].substr(e.length+1)]=t[1]),i(n,e)}return function(e,t){return{file:t,name:e,childResults:[],metrics:s(t.mutants)}}(t[e][0][0],t[e][0][1])}).sort(r.compareNames)}(e),metrics:n}}function s(e){const t=t=>e.filter(e=>e.status===t).length,n=t("Killed"),r=t("Timeout"),o=t("Survived"),i=t("NoCoverage"),s=t("RuntimeError"),a=t("CompileError"),l=t("Ignored"),c=r+n,d=o+i,u=c+o,p=d+c,h=s+a;return{killed:n,timeout:r,survived:o,noCoverage:i,runtimeErrors:s,compileErrors:a,ignored:l,totalDetected:c,totalUndetected:d,totalCovered:u,totalValid:p,totalInvalid:h,mutationScore:p>0?c/p*100:NaN,totalMutants:p+h+l,mutationScoreBasedOnCoveredCode:p>0?c/u*100||0:NaN}}t.calculateMetrics=function(e){return i(r.normalizeFileNames(e),"All files")}},function(e,t,n){(t=n(0)(!1)).push([e.i,'/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n *//*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--caution:#fd7e14;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.h1,.h3,.h5,h1,h3,h5{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h3,h3{font-size:1.75rem}.h5,h5{font-size:1.25rem}.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}.small,small{font-size:80%;font-weight:400}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-12,.col-sm-11{position:relative;width:100%;padding-right:15px;padding-left:15px}@media(min-width:576px){.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}}@media(min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-caution{color:#212529;background-color:#fd7e14}a.badge-caution:focus,a.badge-caution:hover{color:#212529;background-color:#dc6502}a.badge-caution:focus{outline:0;box-shadow:0 0 0 .2rem rgba(253,126,20,.5)}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}@-webkit-keyframes progress-bar-stripes{to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.show .modal-dialog{transform:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover{position:absolute;display:block}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-caution{background-color:#fd7e14!important}a.bg-caution:focus,a.bg-caution:hover,button.bg-caution:focus,button.bg-caution:hover{background-color:#dc6502!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-white{color:#fff!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-caution{color:#fd7e14!important}a.text-caution:focus,a.text-caution:hover{color:#c35a02!important}.text-muted{color:#6c757d!important}@media print{*{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}pre{white-space:pre-wrap!important}pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}}',""]),e.exports=t},function(e,t,n){var r=n(0),o=n(7),i=n(8);(t=r(!1)).i(o),t.i(i),t.push([e.i,"",""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,'/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\n\ncode[class*="language-"],\npre[class*="language-"] {\n\tcolor: black;\n\tbackground: none;\n\ttext-shadow: 0 1px white;\n\tfont-family: Consolas, Monaco, \'Andale Mono\', \'Ubuntu Mono\', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\npre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,\ncode[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\npre[class*="language-"]::selection, pre[class*="language-"] ::selection,\ncode[class*="language-"]::selection, code[class*="language-"] ::selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\n@media print {\n\tcode[class*="language-"],\n\tpre[class*="language-"] {\n\t\ttext-shadow: none;\n\t}\n}\n\n/* Code blocks */\npre[class*="language-"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n}\n\n:not(pre) > code[class*="language-"],\npre[class*="language-"] {\n\tbackground: #f5f2f0;\n}\n\n/* Inline code */\n:not(pre) > code[class*="language-"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #999;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #905;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #690;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n\tcolor: #9a6e3a;\n\tbackground: hsla(0, 0%, 100%, .5);\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n\tcolor: #07a;\n}\n\n.token.function,\n.token.class-name {\n\tcolor: #DD4A68;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n\tcolor: #e90;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n',""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tpointer-events: none;\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,":host{line-height:1.15;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}.display-4 small{font-weight:300}",""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,'/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}:host{position:relative;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popover{width:200px;z-index:1;top:125%;margin-left:-100px;visibility:hidden;opacity:0;transition:.1s ease-in}.popover,.popover:before{position:absolute;left:50%}.popover:before{content:"";top:-10px;margin-left:-6px;border:6px solid transparent;border-bottom-color:#555}.popover-caution:before{border-bottom-color:#fd7e14}.popover-secondary:before{border-bottom-color:#6c757d}.popover-success:before{border-bottom-color:#28a745}.popover-warning:before{border-bottom-color:#ffc107}.popover-danger:before{border-bottom-color:#dc3545}.popover.show{visibility:visible;opacity:1}',""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,".badge{cursor:pointer}.disabled-code{text-decoration:line-through}span.badge{text-shadow:none}",""]),e.exports=t},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e=/\n(?!$)/g,t=function(t){var r=n(t)["white-space"];if("pre-wrap"===r||"pre-line"===r){var o=t.querySelector("code"),i=t.querySelector(".line-numbers-rows"),s=t.querySelector(".line-numbers-sizer"),a=o.textContent.split(e);s||((s=document.createElement("span")).className="line-numbers-sizer",o.appendChild(s)),s.style.display="block",a.forEach((function(e,t){s.textContent=e||"\n";var n=s.getBoundingClientRect().height;i.children[t].style.height=n+"px"})),s.textContent="",s.style.display="none"}},n=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener("resize",(function(){Array.prototype.forEach.call(document.querySelectorAll("pre.line-numbers"),t)})),Prism.hooks.add("complete",(function(n){if(n.code){var r=n.element,o=r.parentNode;if(o&&/pre/i.test(o.nodeName)&&!r.querySelector(".line-numbers-rows")){for(var i=!1,s=/(?:^|\s)line-numbers(?:\s|$)/,a=r;a;a=a.parentNode)if(s.test(a.className)){i=!0;break}if(i){r.className=r.className.replace(s," "),s.test(o.className)||(o.className+=" line-numbers");var l,c=n.code.match(e),d=c?c.length+1:1,u=new Array(d+1).join("<span></span>");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,o.hasAttribute("data-start")&&(o.style.counterReset="linenumber "+(parseInt(o.getAttribute("data-start"),10)-1)),n.element.appendChild(l),t(o),Prism.hooks.run("line-numbers",n)}}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0})),Prism.plugins.lineNumbers={getLine:function(e,t){if("PRE"===e.tagName&&e.classList.contains("line-numbers")){var n=e.querySelector(".line-numbers-rows"),r=parseInt(e.getAttribute("data-start"),10)||1,o=r+(n.children.length-1);t<r&&(t=r),t>o&&(t=o);var i=t-r;return n.children[i]}}}}}()},function(e,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},function(e,t){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript},function(e,t){Prism.languages.typescript=Prism.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),Prism.languages.ts=Prism.languages.typescript},function(e,t){Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i,operator:/>>=?|<<=?|[-=]>|([-+&|?])\1|~|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),Prism.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{function:/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},function(e,t){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism)},function(e,t){Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},function(e,t){Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!<!--)[^"'\]]|"[^"]*"|'[^']*'|<!--[\s\S]*?-->)*\]\s*)?>/i,greedy:!0},cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[[\s\S]*?\]\]>\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup},function(e,t){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var s=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,a=s.length;-1!==n.code.indexOf(o=t(r,a));)++a;return s[a]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function s(a){for(var l=0;l<a.length&&!(o>=i.length);l++){var c=a[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var d=i[o],u=n.tokenStack[d],p="string"==typeof c?c:c.content,h=t(r,d),f=p.indexOf(h);if(f>-1){++o;var m=p.substring(0,f),g=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),b=p.substring(f+h.length),v=[];m&&v.push.apply(v,s([m])),v.push(g),b&&v.push.apply(v,s([b])),"string"==typeof c?a.splice.apply(a,[l,1].concat(v)):c.content=v}}else c.content&&s(c.content)}return a}(n.tokens)}}}})}(Prism)},function(e,t){!function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:e.languages.php};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},function(e,t){!function(e,t){void 0!==e&&e.Prism&&e.document&&t.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",(function(e){if(e.element.children.length){var t=0,n=[],r=function(e,o){var i={};o||(i.clone=e.cloneNode(!1),i.posOpen=t,n.push(i));for(var s=0,a=e.childNodes.length;s<a;s++){var l=e.childNodes[s];1===l.nodeType?r(l):3===l.nodeType&&(t+=l.data.length)}o||(i.posClose=t)};r(e.element,!0),n&&n.length&&(e.keepMarkup=n)}})),Prism.hooks.add("after-highlight",(function(e){if(e.keepMarkup&&e.keepMarkup.length){var n=function(e,r){for(var o=0,i=e.childNodes.length;o<i;o++){var s=e.childNodes[o];if(1===s.nodeType){if(!n(s,r))return!1}else 3===s.nodeType&&(!r.nodeStart&&r.pos+s.data.length>r.node.posOpen&&(r.nodeStart=s,r.nodeStartPos=r.node.posOpen-r.pos),r.nodeStart&&r.pos+s.data.length>=r.node.posClose&&(r.nodeEnd=s,r.nodeEndPos=r.node.posClose-r.pos),r.pos+=s.data.length);if(r.nodeStart&&r.nodeEnd){var a=t.createRange();return a.setStart(r.nodeStart,r.nodeStartPos),a.setEnd(r.nodeEnd,r.nodeEndPos),r.node.clone.appendChild(a.extractContents()),a.insertNode(r.node.clone),a.detach(),!1}}return!0};e.keepMarkup.forEach((function(t){n(e.element,{node:t,pos:0})})),e.highlightedCode=e.element.innerHTML}})))}(self,document)},function(e,t,n){(t=n(0)(!1)).push([e.i,'/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.bg-danger-light{background-color:#f2dede}.bg-success-light{background-color:#dff0d8}.bg-warning-light{background-color:#fcf8e3}.bg-caution-light{background-color:#ffedde}#report-code-block{overflow:visible}',""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,".table a{display:block}th.rotate{height:80px;white-space:nowrap;padding-bottom:10px}th.rotate>div{transform:translate(27px) rotate(325deg);width:30px}.table-no-top,.table-no-top>thead>tr>th{border-width:0}.table-no-top{margin-bottom:0}.table .no-border-right{border-right:none}.table .no-border-left{border-left:none}table td.icon{color:rgba(3,47,98,.55);padding-left:10px;padding-right:2px}.octicon{fill:currentColor}table td.vertical-middle,table th.vertical-middle{vertical-align:middle}.text-default{color:#777}",""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,".modal-dialog{margin-top:5.15rem}",""]),e.exports=t},function(e,t,n){(t=n(0)(!1)).push([e.i,".legend{position:-webkit-sticky;position:sticky;top:0;top:var(--top-offset,0);background:#fff;margin-top:.5rem;margin-bottom:.5rem;padding-top:.5rem;padding-bottom:.5rem;z-index:10}.badge{font-size:1em;cursor:pointer}",""]),e.exports=t},function(e,t,n){"use strict";n.r(t);const r=new WeakMap,o=e=>"function"==typeof e&&r.has(e),i=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,s=(e,t,n=null)=>{for(;t!==n;){const n=t.nextSibling;e.removeChild(t),t=n}},a={},l={},c=`{{lit-${String(Math.random()).slice(2)}}}`,d=`\x3c!--${c}--\x3e`,u=new RegExp(`${c}|${d}`);class p{constructor(e,t){this.parts=[],this.element=t;const n=[],r=[],o=document.createTreeWalker(t.content,133,null,!1);let i=0,s=-1,a=0;const{strings:l,values:{length:d}}=e;for(;a<d;){const e=o.nextNode();if(null!==e){if(s++,1===e.nodeType){if(e.hasAttributes()){const t=e.attributes,{length:n}=t;let r=0;for(let e=0;e<n;e++)h(t[e].name,"$lit$")&&r++;for(;r-- >0;){const t=l[a],n=g.exec(t)[2],r=n.toLowerCase()+"$lit$",o=e.getAttribute(r);e.removeAttribute(r);const i=o.split(u);this.parts.push({type:"attribute",index:s,name:n,strings:i}),a+=i.length-1}}"TEMPLATE"===e.tagName&&(r.push(e),o.currentNode=e.content)}else if(3===e.nodeType){const t=e.data;if(t.indexOf(c)>=0){const r=e.parentNode,o=t.split(u),i=o.length-1;for(let t=0;t<i;t++){let n,i=o[t];if(""===i)n=m();else{const e=g.exec(i);null!==e&&h(e[2],"$lit$")&&(i=i.slice(0,e.index)+e[1]+e[2].slice(0,-"$lit$".length)+e[3]),n=document.createTextNode(i)}r.insertBefore(n,e),this.parts.push({type:"node",index:++s})}""===o[i]?(r.insertBefore(m(),e),n.push(e)):e.data=o[i],a+=i}}else if(8===e.nodeType)if(e.data===c){const t=e.parentNode;null!==e.previousSibling&&s!==i||(s++,t.insertBefore(m(),e)),i=s,this.parts.push({type:"node",index:s}),null===e.nextSibling?e.data="":(n.push(e),s--),a++}else{let t=-1;for(;-1!==(t=e.data.indexOf(c,t+1));)this.parts.push({type:"node",index:-1}),a++}}else o.currentNode=r.pop()}for(const e of n)e.parentNode.removeChild(e)}}const h=(e,t)=>{const n=e.length-t.length;return n>=0&&e.slice(n)===t},f=e=>-1!==e.index,m=()=>document.createComment(""),g=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class b{constructor(e,t,n){this.__parts=[],this.template=e,this.processor=t,this.options=n}update(e){let t=0;for(const n of this.__parts)void 0!==n&&n.setValue(e[t]),t++;for(const e of this.__parts)void 0!==e&&e.commit()}_clone(){const e=i?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),t=[],n=this.template.parts,r=document.createTreeWalker(e,133,null,!1);let o,s=0,a=0,l=r.nextNode();for(;s<n.length;)if(o=n[s],f(o)){for(;a<o.index;)a++,"TEMPLATE"===l.nodeName&&(t.push(l),r.currentNode=l.content),null===(l=r.nextNode())&&(r.currentNode=t.pop(),l=r.nextNode());if("node"===o.type){const e=this.processor.handleTextExpression(this.options);e.insertAfterNode(l.previousSibling),this.__parts.push(e)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,o.name,o.strings,this.options));s++}else this.__parts.push(void 0),s++;return i&&(document.adoptNode(e),customElements.upgrade(e)),e}}const v=` ${c} `;class y{constructor(e,t,n,r){this.strings=e,this.values=t,this.type=n,this.processor=r}getHTML(){const e=this.strings.length-1;let t="",n=!1;for(let r=0;r<e;r++){const e=this.strings[r],o=e.lastIndexOf("\x3c!--");n=(o>-1||n)&&-1===e.indexOf("--\x3e",o+1);const i=g.exec(e);t+=null===i?e+(n?v:d):e.substr(0,i.index)+i[1]+i[2]+"$lit$"+i[3]+c}return t+=this.strings[e],t}getTemplateElement(){const e=document.createElement("template");return e.innerHTML=this.getHTML(),e}}class w extends y{getHTML(){return`<svg>${super.getHTML()}</svg>`}getTemplateElement(){const e=super.getTemplateElement(),t=e.content,n=t.firstChild;return t.removeChild(n),((e,t,n=null,r=null)=>{for(;t!==n;){const n=t.nextSibling;e.insertBefore(t,r),t=n}})(t,n.firstChild),e}}const x=e=>null===e||!("object"==typeof e||"function"==typeof e),k=e=>Array.isArray(e)||!(!e||!e[Symbol.iterator]);class _{constructor(e,t,n){this.dirty=!0,this.element=e,this.name=t,this.strings=n,this.parts=[];for(let e=0;e<n.length-1;e++)this.parts[e]=this._createPart()}_createPart(){return new S(this)}_getValue(){const e=this.strings,t=e.length-1;let n="";for(let r=0;r<t;r++){n+=e[r];const t=this.parts[r];if(void 0!==t){const e=t.value;if(x(e)||!k(e))n+="string"==typeof e?e:String(e);else for(const t of e)n+="string"==typeof t?t:String(t)}}return n+=e[t],n}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class S{constructor(e){this.value=void 0,this.committer=e}setValue(e){e===a||x(e)&&e===this.value||(this.value=e,o(e)||(this.committer.dirty=!0))}commit(){for(;o(this.value);){const e=this.value;this.value=a,e(this)}this.value!==a&&this.committer.commit()}}class P{constructor(e){this.value=void 0,this.__pendingValue=void 0,this.options=e}appendInto(e){this.startNode=e.appendChild(m()),this.endNode=e.appendChild(m())}insertAfterNode(e){this.startNode=e,this.endNode=e.nextSibling}appendIntoPart(e){e.__insert(this.startNode=m()),e.__insert(this.endNode=m())}insertAfterPart(e){e.__insert(this.startNode=m()),this.endNode=e.endNode,e.endNode=this.startNode}setValue(e){this.__pendingValue=e}commit(){for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=a,e(this)}const e=this.__pendingValue;e!==a&&(x(e)?e!==this.value&&this.__commitText(e):e instanceof y?this.__commitTemplateResult(e):e instanceof Node?this.__commitNode(e):k(e)?this.__commitIterable(e):e===l?(this.value=l,this.clear()):this.__commitText(e))}__insert(e){this.endNode.parentNode.insertBefore(e,this.endNode)}__commitNode(e){this.value!==e&&(this.clear(),this.__insert(e),this.value=e)}__commitText(e){const t=this.startNode.nextSibling,n="string"==typeof(e=null==e?"":e)?e:String(e);t===this.endNode.previousSibling&&3===t.nodeType?t.data=n:this.__commitNode(document.createTextNode(n)),this.value=e}__commitTemplateResult(e){const t=this.options.templateFactory(e);if(this.value instanceof b&&this.value.template===t)this.value.update(e.values);else{const n=new b(t,e.processor,this.options),r=n._clone();n.update(e.values),this.__commitNode(r),this.value=n}}__commitIterable(e){Array.isArray(this.value)||(this.value=[],this.clear());const t=this.value;let n,r=0;for(const o of e)n=t[r],void 0===n&&(n=new P(this.options),t.push(n),0===r?n.appendIntoPart(this):n.insertAfterPart(t[r-1])),n.setValue(o),n.commit(),r++;r<t.length&&(t.length=r,this.clear(n&&n.endNode))}clear(e=this.startNode){s(this.startNode.parentNode,e.nextSibling,this.endNode)}}class E{constructor(e,t,n){if(this.value=void 0,this.__pendingValue=void 0,2!==n.length||""!==n[0]||""!==n[1])throw new Error("Boolean attributes can only contain a single expression");this.element=e,this.name=t,this.strings=n}setValue(e){this.__pendingValue=e}commit(){for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=a,e(this)}if(this.__pendingValue===a)return;const e=!!this.__pendingValue;this.value!==e&&(e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=e),this.__pendingValue=a}}class C extends _{constructor(e,t,n){super(e,t,n),this.single=2===n.length&&""===n[0]&&""===n[1]}_createPart(){return new $(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class $ extends S{}let N=!1;try{const e={get capture(){return N=!0,!1}};window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){}class A{constructor(e,t,n){this.value=void 0,this.__pendingValue=void 0,this.element=e,this.eventName=t,this.eventContext=n,this.__boundHandleEvent=e=>this.handleEvent(e)}setValue(e){this.__pendingValue=e}commit(){for(;o(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=a,e(this)}if(this.__pendingValue===a)return;const e=this.__pendingValue,t=this.value,n=null==e||null!=t&&(e.capture!==t.capture||e.once!==t.once||e.passive!==t.passive),r=null!=e&&(null==t||n);n&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),r&&(this.__options=T(e),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=e,this.__pendingValue=a}handleEvent(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}const T=e=>e&&(N?{capture:e.capture,passive:e.passive,once:e.once}:e.capture);const M=new class{handleAttributeExpressions(e,t,n,r){const o=t[0];if("."===o){return new C(e,t.slice(1),n).parts}return"@"===o?[new A(e,t.slice(1),r.eventContext)]:"?"===o?[new E(e,t.slice(1),n)]:new _(e,t,n).parts}handleTextExpression(e){return new P(e)}};function j(e){let t=z.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},z.set(e.type,t));let n=t.stringsArray.get(e.strings);if(void 0!==n)return n;const r=e.strings.join(c);return n=t.keyString.get(r),void 0===n&&(n=new p(e,e.getTemplateElement()),t.keyString.set(r,n)),t.stringsArray.set(e.strings,n),n}const z=new Map,O=new WeakMap;(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.1.2");const F=(e,...t)=>new y(e,t,"html",M),I=(e,...t)=>new w(e,t,"svg",M);function R(e,t){const{element:{content:n},parts:r}=e,o=document.createTreeWalker(n,133,null,!1);let i=B(r),s=r[i],a=-1,l=0;const c=[];let d=null;for(;o.nextNode();){a++;const e=o.currentNode;for(e.previousSibling===d&&(d=null),t.has(e)&&(c.push(e),null===d&&(d=e)),null!==d&&l++;void 0!==s&&s.index===a;)s.index=null!==d?-1:s.index-l,i=B(r,i),s=r[i]}c.forEach(e=>e.parentNode.removeChild(e))}const V=e=>{let t=11===e.nodeType?0:1;const n=document.createTreeWalker(e,133,null,!1);for(;n.nextNode();)t++;return t},B=(e,t=-1)=>{for(let n=t+1;n<e.length;n++){const t=e[n];if(f(t))return n}return-1};const L=(e,t)=>`${e}--${t}`;let D=!0;void 0===window.ShadyCSS?D=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),D=!1);const U=e=>t=>{const n=L(t.type,e);let r=z.get(n);void 0===r&&(r={stringsArray:new WeakMap,keyString:new Map},z.set(n,r));let o=r.stringsArray.get(t.strings);if(void 0!==o)return o;const i=t.strings.join(c);if(o=r.keyString.get(i),void 0===o){const n=t.getTemplateElement();D&&window.ShadyCSS.prepareTemplateDom(n,e),o=new p(t,n),r.keyString.set(i,o)}return r.stringsArray.set(t.strings,o),o},H=["html","svg"],q=new Set,W=(e,t,n)=>{q.add(e);const r=n?n.element:document.createElement("template"),o=t.querySelectorAll("style"),{length:i}=o;if(0===i)return void window.ShadyCSS.prepareTemplateStyles(r,e);const s=document.createElement("style");for(let e=0;e<i;e++){const t=o[e];t.parentNode.removeChild(t),s.textContent+=t.textContent}(e=>{H.forEach(t=>{const n=z.get(L(t,e));void 0!==n&&n.keyString.forEach(e=>{const{element:{content:t}}=e,n=new Set;Array.from(t.querySelectorAll("style")).forEach(e=>{n.add(e)}),R(e,n)})})})(e);const a=r.content;n?function(e,t,n=null){const{element:{content:r},parts:o}=e;if(null==n)return void r.appendChild(t);const i=document.createTreeWalker(r,133,null,!1);let s=B(o),a=0,l=-1;for(;i.nextNode();){for(l++,i.currentNode===n&&(a=V(t),n.parentNode.insertBefore(t,n));-1!==s&&o[s].index===l;){if(a>0){for(;-1!==s;)o[s].index+=a,s=B(o,s);return}s=B(o,s)}}}(n,s,a.firstChild):a.insertBefore(s,a.firstChild),window.ShadyCSS.prepareTemplateStyles(r,e);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)t.insertBefore(l.cloneNode(!0),t.firstChild);else if(n){a.insertBefore(s,a.firstChild);const e=new Set;e.add(s),R(n,e)}};window.JSCompiler_renameProperty=(e,t)=>e;const Z={toAttribute(e,t){switch(t){case Boolean:return e?"":null;case Object:case Array:return null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){switch(t){case Boolean:return null!==e;case Number:return null===e?null:Number(e);case Object:case Array:return JSON.parse(e)}return e}},J=(e,t)=>t!==e&&(t==t||e==e),Y={attribute:!0,type:String,converter:Z,reflect:!1,hasChanged:J},K=Promise.resolve(!0);class G extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=K,this._hasConnectedResolver=void 0,this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const e=[];return this._classProperties.forEach((t,n)=>{const r=this._attributeNameForProperty(n,t);void 0!==r&&(this._attributeToPropertyMap.set(r,n),e.push(r))}),e}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const e=Object.getPrototypeOf(this)._classProperties;void 0!==e&&e.forEach((e,t)=>this._classProperties.set(t,e))}}static createProperty(e,t=Y){if(this._ensureClassProperties(),this._classProperties.set(e,t),t.noAccessor||this.prototype.hasOwnProperty(e))return;const n="symbol"==typeof e?Symbol():`__${e}`;Object.defineProperty(this.prototype,e,{get(){return this[n]},set(t){const r=this[e];this[n]=t,this._requestUpdate(e,r)},configurable:!0,enumerable:!0})}static finalize(){const e=Object.getPrototypeOf(this);if(e.hasOwnProperty("finalized")||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const e=this.properties,t=[...Object.getOwnPropertyNames(e),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]];for(const n of t)this.createProperty(n,e[n])}}static _attributeNameForProperty(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}static _valueHasChanged(e,t,n=J){return n(e,t)}static _propertyValueFromAttribute(e,t){const n=t.type,r=t.converter||Z,o="function"==typeof r?r:r.fromAttribute;return o?o(e,n):e}static _propertyValueToAttribute(e,t){if(void 0===t.reflect)return;const n=t.type,r=t.converter;return(r&&r.toAttribute||Z.toAttribute)(e,n)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_saveInstanceProperties(){this.constructor._classProperties.forEach((e,t)=>{if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(t,e)}})}_applyInstanceProperties(){this._instanceProperties.forEach((e,t)=>this[t]=e),this._instanceProperties=void 0}connectedCallback(){this._updateState=32|this._updateState,this._hasConnectedResolver&&(this._hasConnectedResolver(),this._hasConnectedResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(e,t,n){t!==n&&this._attributeToProperty(e,n)}_propertyToAttribute(e,t,n=Y){const r=this.constructor,o=r._attributeNameForProperty(e,n);if(void 0!==o){const e=r._propertyValueToAttribute(t,n);if(void 0===e)return;this._updateState=8|this._updateState,null==e?this.removeAttribute(o):this.setAttribute(o,e),this._updateState=-9&this._updateState}}_attributeToProperty(e,t){if(8&this._updateState)return;const n=this.constructor,r=n._attributeToPropertyMap.get(e);if(void 0!==r){const e=n._classProperties.get(r)||Y;this._updateState=16|this._updateState,this[r]=n._propertyValueFromAttribute(t,e),this._updateState=-17&this._updateState}}_requestUpdate(e,t){let n=!0;if(void 0!==e){const r=this.constructor,o=r._classProperties.get(e)||Y;r._valueHasChanged(this[e],t,o.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==o.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,o))):n=!1}!this._hasRequestedUpdate&&n&&this._enqueueUpdate()}requestUpdate(e,t){return this._requestUpdate(e,t),this.updateComplete}async _enqueueUpdate(){let e,t;this._updateState=4|this._updateState;const n=this._updatePromise;this._updatePromise=new Promise((n,r)=>{e=n,t=r});try{await n}catch(e){}this._hasConnected||await new Promise(e=>this._hasConnectedResolver=e);try{const e=this.performUpdate();null!=e&&await e}catch(e){t(e)}e(!this._hasRequestedUpdate)}get _hasConnected(){return 32&this._updateState}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){this._instanceProperties&&this._applyInstanceProperties();let e=!1;const t=this._changedProperties;try{e=this.shouldUpdate(t),e&&this.update(t)}catch(t){throw e=!1,t}finally{this._markUpdated()}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(e){return!0}update(e){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((e,t)=>this._propertyToAttribute(t,this[t],e)),this._reflectingProperties=void 0)}updated(e){}firstUpdated(e){}}G.finalized=!0;const X=e=>t=>"function"==typeof t?((e,t)=>(window.customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:n,elements:r}=t;return{kind:n,elements:r,finisher(t){window.customElements.define(e,t)}}})(e,t),Q=(e,t)=>"method"!==t.kind||!t.descriptor||"value"in t.descriptor?{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(n){n.createProperty(t.key,e)}}:Object.assign({},t,{finisher(n){n.createProperty(t.key,e)}});function ee(e){return(t,n)=>void 0!==n?((e,t,n)=>{t.constructor.createProperty(n,e)})(e,t,n):Q(e,t)}const te="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,ne=Symbol();class re{constructor(e,t){if(t!==ne)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){return void 0===this._styleSheet&&(te?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const oe=e=>new re(String(e),ne);(window.litElementVersions||(window.litElementVersions=[])).push("2.2.1");const ie=e=>e.flat?e.flat(1/0):function e(t,n=[]){for(let r=0,o=t.length;r<o;r++){const o=t[r];Array.isArray(o)?e(o,n):n.push(o)}return n}(e);class se extends G{static finalize(){super.finalize.call(this),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const e=this.styles,t=[];if(Array.isArray(e)){ie(e).reduceRight((e,t)=>(e.add(t),e),new Set).forEach(e=>t.unshift(e))}else e&&t.push(e);return t}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const e=this.constructor._styles;0!==e.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?te?this.renderRoot.adoptedStyleSheets=e.map(e=>e.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(e.map(e=>e.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(e){super.update(e);const t=this.render();t instanceof y&&this.constructor.render(t,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(e=>{const t=document.createElement("style");t.textContent=e.cssText,this.renderRoot.appendChild(t)}))}render(){}}se.finalized=!0,se.render=(e,t,n)=>{if(!n||"object"!=typeof n||!n.scopeName)throw new Error("The `scopeName` option is required.");const r=n.scopeName,o=O.has(t),i=D&&11===t.nodeType&&!!t.host,a=i&&!q.has(r),l=a?document.createDocumentFragment():t;if(((e,t,n)=>{let r=O.get(t);void 0===r&&(s(t,t.firstChild),O.set(t,r=new P(Object.assign({templateFactory:j},n))),r.appendInto(t)),r.setValue(e),r.commit()})(e,l,Object.assign({templateFactory:U(r)},n)),a){const e=O.get(l);O.delete(l);const n=e.value instanceof b?e.value.template:void 0;W(r,l,n),s(t,t.firstChild),t.appendChild(l),O.set(t,e)}!o&&i&&window.ShadyCSS.styleElement(t.host)};var ae=n(2);const le=n(5),ce=n(6),de=oe(le.toString()),ue=oe(ce.toString());var pe=function(e,t){return(pe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function he(e,t){function n(){this.constructor=e}pe(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function fe(e){return"function"==typeof e}var me=!1,ge={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;me=e},get useDeprecatedSynchronousErrorHandling(){return me}};function be(e){setTimeout((function(){throw e}),0)}var ve={closed:!0,next:function(e){},error:function(e){if(ge.useDeprecatedSynchronousErrorHandling)throw e;be(e)},complete:function(){}},ye=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function we(e){return null!==e&&"object"==typeof e}var xe=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),ke=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,r=this._unsubscribe,o=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var i=0;i<n.length;++i){n[i].remove(this)}if(fe(r))try{r.call(this)}catch(e){t=e instanceof xe?_e(e.errors):[e]}if(ye(o)){i=-1;for(var s=o.length;++i<s;){var a=o[i];if(we(a))try{a.unsubscribe()}catch(e){t=t||[],e instanceof xe?t=t.concat(_e(e.errors)):t.push(e)}}}if(t)throw new xe(t)}},e.prototype.add=function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case"function":n=new e(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();function _e(e){return e.reduce((function(e,t){return e.concat(t instanceof xe?t.errors:t)}),[])}var Se=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),Pe=function(e){function t(n,r,o){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=ve;break;case 1:if(!n){i.destination=ve;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new Ee(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new Ee(i,n,r,o)}return i}return he(t,e),t.prototype[Se]=function(){return this},t.create=function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(ke),Ee=function(e){function t(t,n,r,o){var i,s=e.call(this)||this;s._parentSubscriber=t;var a=s;return fe(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==ve&&(fe((a=Object.create(n)).unsubscribe)&&s.add(a.unsubscribe.bind(a)),a.unsubscribe=s.unsubscribe.bind(s))),s._context=a,s._next=i,s._error=r,s._complete=o,s}return he(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;ge.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=ge.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):be(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;be(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};ge.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),ge.useDeprecatedSynchronousErrorHandling)throw e;be(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!ge.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return ge.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(be(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(Pe);var Ce=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();function $e(){}function Ne(e){return e?1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}:$e}var Ae=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof Pe)return e;if(e[Se])return e[Se]()}return e||t||n?new Pe(e,t,n):new Pe(ve)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||ge.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),ge.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){ge.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof Pe?r:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=Te(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(e){r(e),o&&o.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[Ce]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:Ne(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=Te(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function Te(e){if(e||(e=ge.Promise||Promise),!e)throw new Error("no Promise impl found");return e}function Me(e){return e&&"function"==typeof e.schedule}var je=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parent=t,o.outerValue=n,o.outerIndex=r,o.index=0,o}return he(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(Pe),ze=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};function Oe(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var Fe=Oe(),Ie=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Re(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var Ve=function(e){if(e&&"function"==typeof e[Ce])return r=e,function(e){var t=r[Ce]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(Ie(e))return ze(e);if(Re(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,be),e};if(e&&"function"==typeof e[Fe])return t=e,function(e){for(var n=t[Fe]();;){var r=n.next();if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,r,o=we(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+o+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")};var Be=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return he(t,e),t.prototype.notifyNext=function(e,t,n,r,o){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(Pe);function Le(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new De(e,t))}}var De=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new Ue(e,this.project,this.thisArg))},e}(),Ue=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.project=n,o.count=0,o.thisArg=r||o,o}return he(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(Pe);function He(e,t){return new Ae((function(n){var r=new ke,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}function qe(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[Ce]}(e))return function(e,t){return new Ae((function(n){var r=new ke;return r.add(t.schedule((function(){var o=e[Ce]();r.add(o.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(Re(e))return function(e,t){return new Ae((function(n){var r=new ke;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(Ie(e))return He(e,t);if(function(e){return e&&"function"==typeof e[Fe]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new Ae((function(n){var r,o=new ke;return o.add((function(){r&&"function"==typeof r.return&&r.return()})),o.add(t.schedule((function(){r=e[Fe](),o.add(t.schedule((function(){if(!n.closed){var e,t;try{var o=r.next();e=o.value,t=o.done}catch(e){return void n.error(e)}t?n.complete():(n.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}function We(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(We((function(n,r){return(o=e(n,r),i?qe(o,i):o instanceof Ae?o:new Ae(Ve(o))).pipe(Le((function(e,o){return t(n,e,r,o)})));var o,i}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new Ze(e,n))})}var Ze=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new Je(e,this.project,this.concurrent))},e}(),Je=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var o=e.call(this,t)||this;return o.project=n,o.concurrent=r,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return he(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,n)},t.prototype._innerSub=function(e,t,n){var r=new je(this,t,n),o=this.destination;o.add(r);var i=function(e,t,n,r,o){if(void 0===o&&(o=new je(e,n,r)),!o.closed)return t instanceof Ae?t.subscribe(o):Ve(t)(o)}(this,e,void 0,void 0,r);i!==r&&o.add(i)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,n,r,o){this.destination.next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(Be);function Ye(e){return e}function Ke(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),We(Ye,e)}function Ge(e,t){return t?He(e,t):new Ae(ze(e))}var Xe=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new Qe(e,this.nextOrObserver,this.error,this.complete))},e}(),Qe=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i._tapNext=$e,i._tapError=$e,i._tapComplete=$e,i._tapError=r||$e,i._tapComplete=o||$e,fe(n)?(i._context=i,i._tapNext=n):n&&(i._context=n,i._tapNext=n.next||$e,i._tapError=n.error||$e,i._tapComplete=n.complete||$e),i}return he(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(Pe);const et=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Number.POSITIVE_INFINITY,r=null,o=e[e.length-1];return Me(o)?(r=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof o&&(n=e.pop()),null===r&&1===e.length&&e[0]instanceof Ae?e[0]:Ke(n)(Ge(e,r))}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return Me(n)?(e.pop(),He(e,n)):Ge(e)}(1),function e(t,n,r,o){return fe(r)&&(o=r,r=void 0),o?e(t,n,r).pipe(Le((function(e){return ye(e)?o.apply(void 0,e):o(e)}))):new Ae((function(e){!function e(t,n,r,o,i){var s;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(t)){var a=t;t.addEventListener(n,r,i),s=function(){return a.removeEventListener(n,r,i)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(t)){var l=t;t.on(n,r),s=function(){return l.off(n,r)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(t)){var c=t;t.addListener(n,r),s=function(){return c.removeListener(n,r)}}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(var d=0,u=t.length;d<u;d++)e(t[d],n,r,o,i)}o.add(s)}(t,n,(function(t){arguments.length>1?e.next(Array.prototype.slice.call(arguments)):e.next(t)}),e,r)}))}(window,"hashchange").pipe((tt=e=>e.preventDefault(),function(e){return e.lift(new Xe(tt,nt,rt))}))).pipe(Le(()=>window.location.hash.substr(1).split("/").filter(Boolean).map(decodeURIComponent)));var tt,nt,rt,ot=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},it=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))};let st=class extends se{constructor(){super(...arguments),this.path=[],this.subscriptions=[]}get title(){return this.context?this.titlePostfix?`${this.context.name} - ${this.titlePostfix}`:this.context.name:""}loadData(){return it(this,void 0,void 0,(function*(){if(this.src)try{const e=yield fetch(this.src);this.report=yield e.json()}catch(e){const t=e.toString();this.errorMessage=t}}))}updated(e){(e.has("path")||e.has("report"))&&this.report&&(this.updateModel(this.report),this.updateContext(),this.updateTitle()),e.has("src")&&this.loadData()}updateModel(e){this.rootModel=Object(ae.calculateMetrics)(e.files)}updateContext(){this.rootModel&&(this.context=this.path.reduce((e,t)=>e&&e.childResults.find(e=>e.name===t),this.rootModel))}updateTitle(){document.title=this.title}connectedCallback(){super.connectedCallback(),this.subscriptions.push(et.subscribe(e=>this.path=e))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}renderTitle(){const e=()=>this.titlePostfix?F` <small class="text-muted"> - ${this.titlePostfix}</small> `:void 0;if(this.context&&this.titlePostfix)return F` <h1 class="display-4">${this.context.name}${e()}</h1> `}render(){return this.context||this.errorMessage?F` - <div class="container-fluid"> - <div class="row"> - <div class="col-md-12"> - ${this.renderReport()} ${this.renderErrorMessage()} - </div> - </div> - </div> - `:F``}renderErrorMessage(){return this.errorMessage?F` - <div class="alert alert-danger" role="alert"> - ${this.errorMessage} - </div> - `:F``}renderReport(){return this.context?F` - ${this.renderTitle()} - <mutation-test-report-breadcrumb .path="${this.path}"></mutation-test-report-breadcrumb> - ${this.renderTotals()} ${this.renderFileReport()} - `:void 0}renderFileReport(){return this.context&&this.report&&this.context.file?F` <mutation-test-report-file .model="${this.context.file}"></mutation-test-report-file> `:void 0}renderTotals(){return this.report&&this.context?F` - <div class="row"> - <div class="totals col-sm-11"> - <mutation-test-report-totals .currentPath="${this.path}" .thresholds="${this.report.thresholds}" .model="${this.context}"> - </mutation-test-report-totals> - </div> - </div> - `:void 0}};st.styles=[de,oe(n(9))],ot([ee({attribute:!1})],st.prototype,"report",void 0),ot([ee({attribute:!1})],st.prototype,"rootModel",void 0),ot([ee()],st.prototype,"src",void 0),ot([ee({attribute:!1})],st.prototype,"errorMessage",void 0),ot([ee({attribute:!1})],st.prototype,"context",void 0),ot([ee()],st.prototype,"path",void 0),ot([ee({attribute:"title-postfix"})],st.prototype,"titlePostfix",void 0),ot([ee()],st.prototype,"title",null),st=ot([X("mutation-test-report-app")],st);var at=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let lt=class extends se{constructor(){super(...arguments),this.show=!1}firstUpdated(){if(this.getBoundingClientRect().left<100){this.shadowRoot.querySelector(".popover").style.marginLeft="0px"}}getBackgroundClasses(){return this.context?`bg-${this.context} text-white`:""}render(){return F`<div class="popover popover-${this.context} ${this.show?"show":"hide"}"> - <h3 class="popover-header ${this.getBackgroundClasses()}">${this.header}</h3> - <div class="popover-body"> - <slot name="popover-body"></slot> - </div> </div - >${F`<slot></slot>`}`}};lt.styles=[de,oe(n(10))],at([ee()],lt.prototype,"header",void 0),at([ee({converter:e=>"string"==typeof e})],lt.prototype,"show",void 0),at([ee()],lt.prototype,"context",void 0),lt=at([X("mutation-test-report-popup")],lt);const ct=new WeakMap,dt=(ut=e=>t=>{if(!(t instanceof P))throw new Error("unsafeHTML can only be used in text bindings");const n=ct.get(t);if(void 0!==n&&x(e)&&e===n.value&&t.value===n.fragment)return;const r=document.createElement("template");r.innerHTML=e;const o=document.importNode(r.content,!0);t.setValue(o),ct.set(t,{value:e,fragment:o})},(...e)=>{const t=ut(...e);return r.set(t,!0),t});var ut;function pt(e){switch(e){case"Killed":return"success";case"NoCoverage":return"caution";case"Survived":return"danger";case"Timeout":return"warning";case"Ignored":case"RuntimeError":case"CompileError":return"secondary"}}function ht(e){switch(e){case"Killed":return"✅";case"NoCoverage":return"🙈";case"Ignored":return"🤥";case"Survived":return"👽";case"Timeout":return"⌛";case"RuntimeError":case"CompileError":return"💥"}}function ft(e){const t=new URL(window.location.href);return new URL(`#${e}`,t).href}var mt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let gt=class extends se{constructor(){super(...arguments),this.show=!0,this.expand=!1,this.showPopup=!1,this.mutantClicked=e=>{this.expand=!this.expand,this.showPopup=this.expand,e.stopImmediatePropagation(),this.dispatchEvent(new CustomEvent("mutant-selected",{bubbles:!0,detail:this,composed:!0}))},this.showMoreInfo=e=>{this.dispatchEvent(new CustomEvent(bt,{bubbles:!0,detail:e,composed:!0}))}}render(){return F`${this.renderButton()}${this.renderCode()}`}renderButton(){if(this.show&&this.mutant)return F`<mutation-test-report-popup - ?show="${this.showPopup}" - context="${pt(this.mutant.status)}" - header="${this.mutant.mutatorName}" - >${this.renderPopupBody(this.mutant)}<span - class="mutant-toggle badge badge-${this.expand?"info":pt(this.mutant.status)}" - @click="${this.mutantClicked}" - title="${this.mutant.mutatorName}" - >${this.mutant.id}</span - ></mutation-test-report-popup - >`}renderPopupBody(e){return F`<div slot="popover-body"> - <span class="btn">${ht(e.status)} ${e.status}</span>${this.renderDescription(e)} - </div>`}renderDescription(e){if(e.description)return F` <button class="show-more btn btn-link" @click="${()=>this.showMoreInfo(e)}">📖 Show more</button> `}renderCode(){return F`${this.renderReplacement()}${this.renderActual()}`}renderActual(){const e=F`<slot></slot>`;return F`<span class="original-code ${this.expand&&this.show?"disabled-code":""}">${e}</span>`}renderReplacement(){if(this.mutant)return F`<span class="replacement badge badge-info" @click="${this.mutantClicked}" ?hidden="${!this.expand||!this.show}" - >${this.mutant.replacement||this.mutant.mutatorName}</span - >`}};gt.styles=[de,oe(n(11))],mt([ee()],gt.prototype,"mutant",void 0),mt([ee()],gt.prototype,"show",void 0),mt([ee()],gt.prototype,"expand",void 0),mt([ee()],gt.prototype,"showPopup",void 0),gt=mt([X("mutation-test-report-mutant")],gt);const bt="show-more-click";class vt{constructor(){this.killed=0,this.noCoverage=0,this.survived=0,this.timeout=0,this.ignored=0,this.markMutantStart=e=>{this.countMutant(1,e.status)},this.markMutantEnd=e=>{this.countMutant(-1,e.status)},this.determineBackground=()=>this.survived>0?pt("Survived")+"-light":this.noCoverage>0?pt("NoCoverage")+"-light":this.timeout>0?pt("Timeout")+"-light":this.killed>0?pt("Killed")+"-light":this.ignored>0?pt("Ignored")+"-light":null}countMutant(e,t){switch(t){case"Killed":this.killed+=e;break;case"Survived":this.survived+=e;break;case"Timeout":this.timeout+=e;break;case"NoCoverage":this.noCoverage+=e;break;case"Ignored":this.ignored+=e}}}function yt(...e){return e.reduce((e,t)=>e.length?t?`${e}/${t}`:e:t,"")}function wt(e){const t=new vt,n=[];return`<span>${function(e,t){let n=1,r=1;const o=[];for(const i of e)1===n&&"\r"===i||("\n"!==i?o.push(t(i,{line:r,column:n++})):(r++,n=1,o.push("\n")));return o.join("")}(e.source,(r,o)=>{const i=e.mutants.filter(e=>{return t=e.location.start,n=o,t.line===n.line&&t.column===n.column;var t,n}),s=n.filter(e=>{return t=o,n=e.location.end,t.line>n.line||t.line===n.line&&t.column>=n.column;var t,n});s.forEach(e=>n.splice(n.indexOf(e),1)),n.push(...i);const a=[];return(i.length||s.length)&&(i.forEach(t.markMutantStart),s.forEach(t.markMutantEnd),a.push("</span>"),s.forEach(()=>a.push("</mutation-test-report-mutant>")),i.forEach(e=>a.push(`<mutation-test-report-mutant mutant-id="${e.id}">`)),a.push(`<span class="bg-${t.determineBackground()}">`)),a.push(r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")),a.join("")})}</span>`}var xt=n(3),kt=(n(13),n(14),n(15),n(16),n(17),n(18),n(19),n(20),n(21),n(22),n(23),function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s});let _t=class extends se{constructor(){super(...arguments),this.expandAll=()=>{this.forEachMutantComponent(e=>e.expand=!0)},this.collapseAll=()=>{this.forEachMutantComponent(e=>e.expand=!1)},this.filtersChanged=e=>{const t=e.detail.filter(e=>e.enabled).map(e=>e.status);this.forEachMutantComponent(e=>{e.show=t.some(t=>void 0!==e.mutant&&e.mutant.status===t)})}}forEachMutantComponent(e,t=this.root){for(const n of t.querySelectorAll("mutation-test-report-mutant"))n instanceof gt&&e(n)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",()=>{this.forEachMutantComponent(e=>e.showPopup=!1)}),this.addEventListener("mutant-selected",e=>{const t=e.detail;this.forEachMutantComponent(e=>e!==t&&(e.showPopup=!1))}),this.addEventListener(bt,e=>{const t=e.detail;this.mutantInDialog=t,e.stopPropagation()}),this.addEventListener("close-dialog",()=>{this.mutantInDialog=void 0})}render(){if(this.model)return F` - <div class="row"> - <div class="col-md-12"> - ${this.renderModalDialog()} - <mutation-test-report-file-legend - @filters-changed="${this.filtersChanged}" - @expand-all="${this.expandAll}" - @collapse-all="${this.collapseAll}" - .mutants="${this.model.mutants}" - ></mutation-test-report-file-legend> - <pre id="report-code-block" class="line-numbers"><code class="language-${this.model.language}">${dt(wt(this.model))}</code></pre> - </div> - </div> - `}renderModalDialog(){return this.mutantInDialog?F` - <div .hidden="${!this.mutantInDialog}" class="modal-backdrop show"></div> - <mutation-test-report-modal-dialog - ?show="${this.mutantInDialog}" - header="${this.mutantInDialog.id}: ${this.mutantInDialog.mutatorName} - ${ht(this.mutantInDialog.status)} ${this.mutantInDialog.status}" - > - <p>${this.mutantInDialog.description}</p> - </mutation-test-report-modal-dialog> - `:void 0}firstUpdated(){const e=this.root.querySelector("code");e&&(Object(xt.highlightElement)(e),this.forEachMutantComponent(e=>{e.mutant=this.model.mutants.find(t=>t.id.toString()===e.getAttribute("mutant-id"))},e))}get root(){return this.shadowRoot||this}};_t.styles=[ue,de,oe(n(24))],kt([ee()],_t.prototype,"model",void 0),kt([ee({attribute:!1})],_t.prototype,"mutantInDialog",void 0),_t=kt([X("mutation-test-report-file")],_t);class St{constructor(){this.file=I`<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"></path></svg>`,this.directory=I`<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"></path></svg>`,this.csharp=I`<svg aria-label="cs" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g fill="#498ba7"><path d="M7.1 15.9c0-1.3.2-2.4.6-3.4.4-1 .9-1.8 1.6-2.5.7-.7 1.5-1.2 2.4-1.6s1.9-.5 2.9-.5 1.9.2 2.7.6c.8.4 1.5.9 2 1.4l-2.2 2.5c-.4-.3-.7-.6-1.1-.7-.4-.1-.8-.3-1.4-.3-.5 0-.9.1-1.3.3-.4.2-.8.5-1.1.9s-.5.8-.7 1.4c-.2.6-.3 1.2-.3 1.9 0 1.5.3 2.6 1 3.3.7.8 1.5 1.2 2.6 1.2.5 0 1-.1 1.4-.3.4-.2.8-.5 1.1-.9l2.2 2.5c-.7.8-1.4 1.3-2.2 1.7-.8.4-1.7.6-2.7.6s-2-.2-2.9-.5-1.7-.8-2.4-1.5-1.1-1.7-1.5-2.7c-.5-.9-.7-2.1-.7-3.4z"/><path d="M21.8 17.1h-1l-.4 2.4h-1.2l.4-2.4h-1.2V16h1.5l.2-1.6h-1.3v-1.1h1.5l.4-2.4h1.2l-.4 2.4h1l.4-2.4h1.2l-.4 2.4H25v1.1h-1.6l-.2 1.6h1.3v1.1h-1.6l-.4 2.4h-1.2c0 .1.5-2.4.5-2.4zm-.8-1h1l.2-1.6h-1l-.2 1.6z"/></g></svg>`,this.html=I`<svg aria-label="html" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#cc6d2e" d="M8 15l6-5.6V12l-4.5 4 4.5 4v2.6L8 17v-2zm16 2.1l-6 5.6V20l4.6-4-4.6-4V9.3l6 5.6v2.2z"/></svg>`,this.java=I`<svg aria-label="java" xmlns="http://www.w3.org/2000/svg" viewBox="-4 -4 20 20"><path class="cls-1" d="M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm2.14 6.8a2.16 2.16 0 0 1-2.29 2.41 2.5 2.5 0 0 1-2-.87l.73-.92a1.52 1.52 0 0 0 1.23.59c.66 0 1.06-.42 1.06-1.32V2.8h1.26z" fill="#b8383d"/></svg>`,this.javascript=I`<svg aria-label="js" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#b7b73b" d="M11.4 10h2.7v7.6c0 3.4-1.6 4.6-4.3 4.6-.6 0-1.5-.1-2-.3l.3-2.2c.4.2.9.3 1.4.3 1.1 0 1.9-.5 1.9-2.4V10zm5.1 9.2c.7.4 1.9.8 3 .8 1.3 0 1.9-.5 1.9-1.3s-.6-1.2-2-1.7c-2-.7-3.3-1.8-3.3-3.6 0-2.1 1.7-3.6 4.6-3.6 1.4 0 2.4.3 3.1.6l-.6 2.2c-.5-.2-1.3-.6-2.5-.6s-1.8.5-1.8 1.2c0 .8.7 1.1 2.2 1.7 2.1.8 3.1 1.9 3.1 3.6 0 2-1.6 3.7-4.9 3.7-1.4 0-2.7-.4-3.4-.7l.6-2.3z"/></svg>`,this.scala=I`<svg aria-label="scala" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M21.6 7v4.2c-.1.1-.1.2-.2.2-.3.3-.7.5-1.1.6-.9.3-1.9.5-2.8.7-1.6.3-3.1.5-4.7.7-.8.1-1.6.2-2.4.4V9.6c.1-.1.2-.1.4-.1 1.2-.2 2.5-.4 3.8-.5 1.9-.3 3.8-.5 5.6-1.1.5-.2 1.1-.4 1.4-.9zm0 5.6v4.2l-.2.2c-.5.4-1.1.6-1.6.8-.8.2-1.6.4-2.4.5-1 .2-1.9.3-2.9.5-1.4.2-2.7.3-4.1.6v-4.2c.1-.1.2-.1.3-.1 1.7-.2 3.4-.5 5.1-.7 1.4-.2 2.9-.5 4.3-.9.6-.2 1.1-.4 1.5-.9zM10.5 25h-.1v-4.2c.1-.1.2-.1.3-.1 1.2-.2 2.3-.3 3.5-.5 2-.3 3.9-.5 5.8-1.1.6-.2 1.2-.4 1.6-.9v4.2c-.1.2-.3.3-.5.5-.6.3-1.2.5-1.9.7-1.2.3-2.5.5-3.7.7-1.3.2-2.6.4-3.9.5-.4 0-.7.1-1.1.2z" fill="#b8383d"/></svg>`,this.typescript=I`<svg aria-label="ts" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.6 11.8h-3.4V22H9.7V11.8H6.3V10h9.2v1.8zm7.7 7.1c0-.5-.2-.8-.5-1.1-.3-.3-.9-.5-1.7-.8-1.4-.4-2.5-.9-3.3-1.5-.7-.6-1.1-1.3-1.1-2.3 0-1 .4-1.8 1.3-2.4.8-.6 1.9-.9 3.2-.9 1.3 0 2.4.4 3.2 1.1.8.7 1.2 1.6 1.2 2.6h-2.3c0-.6-.2-1-.6-1.4-.4-.3-.9-.5-1.6-.5-.6 0-1.1.1-1.5.4-.4.3-.5.7-.5 1.1 0 .4.2.7.6 1 .4.3 1 .5 2 .8 1.3.4 2.3.9 3 1.5.7.6 1 1.4 1 2.4s-.4 1.9-1.2 2.4c-.8.6-1.9.9-3.2.9-1.3 0-2.5-.3-3.4-1s-1.5-1.6-1.4-2.9h2.4c0 .7.2 1.2.7 1.6.4.3 1.1.5 1.8.5s1.2-.1 1.5-.4c.2-.3.4-.7.4-1.1z" fill="#498ba7"/></svg>`,this.svgMapping=new Map,this.svgMapping.set("cs",this.csharp),this.svgMapping.set("html",this.html),this.svgMapping.set("java",this.java),this.svgMapping.set("js",this.javascript),this.svgMapping.set("scala",this.scala),this.svgMapping.set("ts",this.typescript)}getIconForFile(e){const t=this.getFileExtension(e),n=this.svgMapping.get(t);return void 0!==n?n:this.file}getIconForFolder(){return this.directory}getFileExtension(e){const t=e.split(".");return t[t.length-1]}}var Pt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Et=class extends se{constructor(){super(...arguments),this.currentPath=[],this.svgService=new St}render(){return this.model?F` - <table class="table table-sm table-hover table-bordered table-no-top"> - ${this.renderHead()} ${this.renderTableBody(this.model)} - </table> - `:void 0}renderHead(){return F`<thead> - <tr> - <th colspan="2" style="width: 217px"> - <div><span>File / Directory</span></div> - </th> - <th colspan="2"> - <div><span>Mutation score</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Killed</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Survived</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Timeout</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># No coverage</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Ignored</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Runtime errors</span></div> - </th> - <th class="rotate text-center" style="width: 50px"> - <div><span># Compile errors</span></div> - </th> - <th class="rotate rotate-width-70 text-center" style="width: 70px"> - <div><span>Total detected</span></div> - </th> - <th class="rotate rotate-width-70 text-center" style="width: 70px"> - <div><span>Total undetected</span></div> - </th> - <th class="rotate rotate-width-70 text-center" style="width: 70px"> - <div><span>Total mutants</span></div> - </th> - </tr> - </thead>`}renderTableBody(e){return F` - <tbody> - ${this.renderRow(e.name,e,void 0)} ${(()=>e.file?void 0:e.childResults.map(e=>{let t=e.name;for(;!e.file&&1===e.childResults.length;)t=yt(t,(e=e.childResults[0]).name);return this.renderRow(t,e,yt(...this.currentPath,t))}))()} - </tbody> - `}renderRow(e,t,n){const{mutationScore:r}=t.metrics,o=!isNaN(r),i=this.determineColoringClass(r),s=r.toFixed(2),a=`width: ${r}%`;return F` <tr title="${t.name}"> - <td style="width: 32px;" class="icon no-border-right" - >${t.file?this.svgService.getIconForFile(t.name):this.svgService.getIconForFolder()}</td - > - <td width="" class="no-border-left" - >${"string"==typeof n?F`<a href="${ft(n)}">${e}</a>`:F`<span>${t.name}</span>`}</td - > - <td class="no-border-right vertical-middle"> - ${o?F` <div class="progress"> - <div - class="progress-bar bg-${i}" - role="progressbar" - aria-valuenow="${s}" - aria-valuemin="0" - aria-valuemax="100" - style="${a}" - > - ${s}% - </div> - </div>`:F` <span class="font-weight-bold text-muted">N/A</span> `} - </td> - <td style="width: 50px;" class="no-border-left font-weight-bold text-center text-${i}"> - ${o?s:void 0} - </td> - <td class="text-center">${t.metrics.killed}</td> - <td class="text-center">${t.metrics.survived}</td> - <td class="text-center">${t.metrics.timeout}</td> - <td class="text-center">${t.metrics.noCoverage}</td> - <td class="text-center">${t.metrics.ignored}</td> - <td class="text-center">${t.metrics.runtimeErrors}</td> - <td class="text-center">${t.metrics.compileErrors}</td> - <th class="text-center">${t.metrics.totalDetected}</th> - <th class="text-center">${t.metrics.totalUndetected}</th> - <th class="text-center">${t.metrics.totalMutants}</th> - </tr>`}determineColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"danger":e<this.thresholds.high?"warning":"success":"default"}};Et.styles=[de,oe(n(25))],Pt([ee()],Et.prototype,"model",void 0),Pt([ee()],Et.prototype,"thresholds",void 0),Pt([ee()],Et.prototype,"currentPath",void 0),Et=Pt([X("mutation-test-report-totals")],Et);var Ct=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let $t=class extends se{render(){return F` - <ol class="breadcrumb"> - ${this.renderRootItem()} ${this.renderBreadcrumbItems()} - </ol> - `}renderRootItem(){return this.path&&this.path.length?this.renderLink("All files",""):this.renderActiveItem("All files")}renderBreadcrumbItems(){if(this.path){const e=this.path;return e.map((t,n)=>n===e.length-1?this.renderActiveItem(t):this.renderLink(t,`${e.filter((e,t)=>t<=n).join("/")}`))}}renderActiveItem(e){return F` <li class="breadcrumb-item active" aria-current="page">${e}</li> `}renderLink(e,t){return F` <li class="breadcrumb-item"><a href="${ft(t)}">${e}</a></li> `}};$t.styles=[de],Ct([ee()],$t.prototype,"path",void 0),$t=Ct([X("mutation-test-report-breadcrumb")],$t);var Nt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let At=class extends se{constructor(){super(...arguments),this.show=!1,this.emitCloseEvent=e=>{this.dispatchEvent(new CustomEvent("close-dialog",{bubbles:!0,detail:this,composed:!0})),e.stopPropagation()}}render(){return F` - <div .hidden="${!this.show}" class="modal show" style="display: block;" tabindex="-1" role="dialog" @click="${this.emitCloseEvent}"> - <div class="modal-dialog" role="document" @click="${e=>e.stopPropagation()}"> - <div class="modal-content"> - <div class="modal-header"> - <h5 class="modal-title">${this.header}</h5> - </div> - <div class="modal-body"> - <slot></slot> - </div> - <div class="modal-footer"> - <button type="button" @click="${this.emitCloseEvent}" class="btn btn-link">Close</button> - </div> - </div> - </div> - </div> - <slot></slot> - `}};At.styles=[de,oe(n(26))],Nt([ee({converter:e=>"string"==typeof e})],At.prototype,"show",void 0),Nt([ee()],At.prototype,"header",void 0),At=Nt([X("mutation-test-report-modal-dialog")],At);var Tt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Mt=class extends se{constructor(){super(...arguments),this.mutants=[],this.collapsed=!0,this.filters=[],this.toggleOpenAll=()=>{this.collapsed=!this.collapsed,this.collapsed?this.dispatchEvent(new CustomEvent("collapse-all")):this.dispatchEvent(new CustomEvent("expand-all"))}}get collapseButtonText(){return this.collapsed?"Expand all":"Collapse all"}updated(e){e.has("mutants")&&this.updateModel()}updateModel(){this.filters=["Killed","Survived","NoCoverage","Ignored","Timeout","CompileError","RuntimeError"].filter(e=>this.mutants.some(t=>t.status===e)).map(e=>({enabled:["Survived","NoCoverage","Timeout"].some(t=>t===e),numberOfMutants:this.mutants.filter(t=>t.status===e).length,status:e})),this.dispatchFiltersChangedEvent()}checkboxClicked(e){e.enabled=!e.enabled,this.dispatchFiltersChangedEvent()}dispatchFiltersChangedEvent(){this.dispatchEvent(new CustomEvent("filters-changed",{detail:this.filters}))}render(){return F` - <div class="row legend col-md-12"> - ${this.filters.map(e=>F` - <div data-status="${e.status}" class="form-check form-check-inline"> - <label class="form-check-label"> - <input - class="form-check-input" - type="checkbox" - ?checked="${e.enabled}" - value="${e.status}" - @input="${()=>this.checkboxClicked(e)}" - /> - <span class="badge badge-${pt(e.status)}" - >${ht(e.status)} ${e.status} (${e.numberOfMutants})</span - > - </label> - </div> - `)} - <button @click="${this.toggleOpenAll}" class="btn btn-sm btn-secondary" type="button">${this.collapseButtonText}</button> - </div> - `}};Mt.styles=[de,oe(n(27))],Tt([ee()],Mt.prototype,"mutants",void 0),Tt([ee()],Mt.prototype,"collapseButtonText",null),Tt([ee()],Mt.prototype,"collapsed",void 0),Tt([ee()],Mt.prototype,"filters",void 0),Mt=Tt([X("mutation-test-report-file-legend")],Mt)}]); \ No newline at end of file diff --git a/docs/mutation/stryker-80x80.png b/docs/mutation/stryker-80x80.png deleted file mode 100644 index b866f3c73f3520cac61f597f13a8fce8dd6fec69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6194 zcmV-27|rL2P)<h;3K|Lk000e1NJLTq002+`002-31^@s6juG;$00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rb1P2c=5B6e11ONaR5lKWrRCwCWoqMokM|s$P zU-vm@X71d_-o2}RYFCkjR#>dwLI?{dmSh~e0!~$gotT(XFcz4KaUj`HaVk{BsgxZT z_(3Vbc7cLI!Xpk;9;Ap92UH3m1ZWotmVHP_``)|H`@Zu!r~Atvea_t3t2_73%)M*# zRh^pMJu|1ff9LD3zy7+vUf~+a<lEk|{GTi!fCF^dy-mO#U^lQMQ=Pc36puZ5d@_0J z<Rnl3^}AcMX*O#_t^kw3Y2Xwvv+OyNm!o+(ZQ1cZzj0048C_#=MT2}tg9LaT@RPus zfjfa4fh|RS1keJpu2@V4Tn3H<F9P2Jo&{dX?*W+na)1`~+Gvm)2Cxe_*U_LmfJcG1 z1Gjf6TRX0mMDi;Fw&&NIfnU$d`2p}{;7h>w2`{er{xt!)Zh$L*GkL``pbESLcpvbl z{9YkNS1x`d9ak@+c{#;1BH-@)`WL{rfj<Sl2rP1SZ`d%9W<5V%2Cvh`4Fmguqrg+Z z1NptI1DwqpUHtAfB7l*u>L|;eQP{mKzxP01_R+j9!}<N<cPq7_Zy87fyJ(%uEB0%^ zzXW!1wJ|Rm+p~C-tZfX}RLrZubd<Xb_$ctfyk4K~sO!45v2P7r2CvglzY%y2_$08C zpb3Sh*?!6pAXQ~orObm9n{cW~uN`|yigGot%g(%R&*gP>9ra(SZ9Ug@P<X{45fR?( zZ{?NAmRD>LQ6MowY=lMUkfN$O@FRVGMfvCN=Jn1x+5+^ai9G{c1~1ABz5)0g!6oVJ zs{M-qqWKss;05);oiQSToB*cdll;5=LG7&Pv%ounlO1j93t~?IyTE${_yWOyE8b%N z9nC0sfz+UxfK?>%NZCQ+A@YcTy8JsW0}YF&LBS>V5apha_FQ~nn<Iih`S*aY4gzt_ z61%{A40w_ym!*HLGYU@7rbQBu*;&K>wFS(s8ZzEQsu_~_4$TzE!uNF{!e1`qPgij# ztLUXNsvu>*gr_$t?4SqU1N?`6A+8Fr3%q{>{1HnoL4UTcFlBX%R5PMGrit#F!tAI8 zV47>2mnDrVJUukGu8P<|Nf#sB$zihZZowTJ1*;JI@cZ7R@Fgu_r2cq65WAMr1>OgN zKkRsO{dHL(*tS%N?wlt1=}FACM!S2q8!g(scI_!%e$y(FI8+69c#PJc@4{axBbBTl zh=o&bfe#TBq$h|gme2*>uM)cLVDO9vNU^8%_A^9xUqLeiEfawCZ#|d93kXOh!_URE zzH|fGu`y(5V2JMl{(UbH*Xn*Yf56WXd?-H<JR!iVILeQ`LUhk%v=%`sOQY&~#3+cO zwFs#=O26_d(Opxa4AZkg?3{*vGH-J+IIjAmtE5Bwiihnb4EGZq0Q-aI1+1t1*elo@ z7SP2g*s5zGn!gn5X@2%*vZG`DcITpvR|xLeOC2m;qlH(&=zu5r4`RZ6a)PC<+kcx< zq4c&h*c<12gQo-^u*<coNbVMSq4ekp%(gnTY(H9F%&aEzw#O_*bzU=DF{?ZT;CBe& zqBT`{<)<jxutc{{6WwzKU5HnQmxD8rl2kpVVNWvb+kY+%d*Vty`mP326f%QUGfHni zz2u<xE`{lObIzbEtM+^8AX`jp9s<6`Al-JElplX7XhLebYJz&Ov0@Wt@p8nK;|X(< zG0i!P%OEN#L*tH3yIV}$)FLV?X-$yTYUTy0W;Fl%ZqjGB_B*K1(e{Udr#slRyYlkr zND+>Tfsd^R8b;B2M0Cd#c4rN(cQ@$jAu22NY0HtXjB@(m5RDmw_w5;QTY+q>jO|L< z_Y1S^zOP2BX1WI&MA4QZe()mMp>b%~&;$B6zaJxn$I_fp`w13aqkT$nmj3~RcHKfU zA$j;bW?KWYm9<YbXxGe{m}mZAE9bsn0U#<tlmv~mi4x_Pu~473oP4fIQuS<meG}J` zl_3h?3^JCYGYRh15v1h$ner7e%w51VA(CSO-M@DazyH#ytGZ^PeOrMKcLE+roWYD_ znCol7-;<SJy9l^c_|8+CS-2EY9&?CYWf0Mzt#QS3@N?sw{oWAqkYCXzwu2E~D8J<* zb}U7l=~n>@1|QDZ6f-aY%rfl*_=kkGhKxZyGy$9-6HR0|1t%+OpNF{YIe)m!)QJ+M zVTaGwj;^Q&F(4LR__Iy47Az+3I|XPFNQOMgu%kH>ar|)1i?vytS8RU)oI(q?=WN=n zCg1j!whb)4v;}y48PEX$D(VCoYay{;)&7ZrsS`=AExo_50{+a|m=oU`;?|#?r?qH^ zD`B48n6*qE8sg0NDqK8LrgkO5$ByRE9QTcnwjH}3ODtGC4m?4K;0T}vz{2<W`@jyC zLf-2V8OqkIp#qIrJCLfY7i_E?f40irw=N(8=YLq{><bkp50zQC7@=N>5>H(9hzb`P zDbG*ObKm$#KM)J^wj*cs@q$^@anle64tjfL52f}p+gQhhL^X`c^XFrp`{ZWk&c#fh zN^qGFC7Sz;iWXg)5aqtmXblRHoY50GGwBSy{}gan-lTQ;eeDMJ;B$#UdBm-UBLK&r z9cKD;LR3;p!yXgs(#)mf;maWwjqRcQ;%j&1tN=`BVBpdG)2;oi9s$;(wFd-+O?%SS z9pWA&8S+HQlD4t>glABQ1)IN<e@d|k6a#;=gY-Jd31SqTjaPSJ3}g+%_S+haZcoXY zGBC)(W$F3*gF!56_j5V3toVmJ2vL`f0SFK&I$c@{9(1XhcaT&)cmMJ<5PU*&ts*t+ zhgh)Ln=@<wL*Wc&Y=kIa6`hOmlNBUx$K+olVj!&xyY8s-Qy;iQQuQ?EEh4PDTVErH z1*5lg0(`J&&xX}3_XXY2O>0IYWN*mY-}xBl}B-1y)kE)`mfrhR_{Yqnm9MNJ+o z07k&R4F~82DS5KPWB4nju+Y;3#L9TaPrmmu5ADCmo;TJ&p}Ao2S+I}SN-O(-STNcL zM0Wq)J$rzE1|%B}(JHzagFtlK?3#g15%5lMsW7rVW6%9Hw(n~YS3HdwOMN=RXJDcn z<TWsrkqC3CV=i;-td!aimsMMU3h-IGfA5~VS(?6WY)4T+BE_GnVs|fMwl*ML8)6Y) z@TpMU?AUczojv#07~j*vrG~{z5oyg}BSnh%(O(|KqV@^!KkWX!dmaM*HhoPE`;a`a z;7*KSZ<|4?S=Z3kN+7)xTuZPCY`(D-wDJuN#K8Rdh~|R5CLq^<Sg?A=?%%uTZxJG{ z>yA8kuZ_Zdj6XR{^b@mCaUnY0Lumy_Jh+zNolxE4xc=T6yY2`eXU`<G>V_!USXEpF zV!`UW_Jg<Ve$>MQ`K-qjTbM%SH%K8>Aolp_67EN%L^sc4##_NALT`F69a@<Mtt^i@ zcHdKH$L$RoGnVO73C3zWw6zfu8(}8Rm`*dcmlH$;r&_T3f&J(mulu{hk-cj;vN{}D zQ?-`S*kVO!dfm7_tr9i@%_g`*<H%SGdwngCai({WEbHD)VQAcO!vi%cn;aJom+`4! zqK$#*fzim~6`J02({P2cDAH<V&1h_oM!$Xdc)7D2gHZR5`!<d8)@_@qJCE5Yie8}P z(1xY)g&T>FjS)XQiP_Rbo2EVO>s9e3-;<iPLWFeh&&;#w`WDar=@#nKmZ+?2FN3Zk z3Y3iS?3FoQTBreVT`6WqIicY^K-q3i;&)tZru!~7Q@z+s&81e0Q?(}B%L(_6kJ9pf z<GM2B3*R7-;!ag@hsM#C!CcqGj;2_Vc2v3_kRp&a45K?zcHZ9L?2DB!z{Cu!iK-AA z!;$$#j?LF_s+@1MczLm|nOC#u{2|F6edsd^@1i4!DhPGwn9tm`oB)I<b!O0}!ESCb z|AvdicTTZ&w+q|+8`2KX_gWF}gi_Tpbt2*Ek8Q=JvaS(Yfr>ShjA@U;PSx!hD%;z~ zs-Lls-?ZzIh0NW*kU3q*oLR^m3z?(keZDjF8cLy!iAS3j^U5fPpDpw1j|`;}3~$Xy zhCJR2>T-r_xjzQ7reSnPMrp)z>iKFIod*OcK+7w2=V&-j-FaHx>$yhL9G$Oy-G2Di z8{TL{e%gqr5iv#tBeJpGwil2RR@=5GWzM`}dGVVGmycA)TEg(wjLMitHE7scRSOV> zEjKrrIg>DbDp?;y3EPZ2*k~kTfUns7d-uE^cpDoSi5^sZZufSNCDb+J>?B-xaVRXb z&sj#cWejb0xKzT9)YU+0ShXA3mT~I2p^dJp5>i;cVE6CcvjzAS`pXi!CemK=SJ+W0 zQ6ppCq-f1D`NJ}&zgxvSxbAgLj3Mk?=u%@5@To9zUB=9rgsBrHqSD}6xI$G$;NKcT z!d|_z{(sdFJz)gAXVVBflQOCCR7N~$T{!spasJ;E*U`%7!o5VHZ+KG;F&hT27)$CR za@-KoM$dNK{41BMAdU~St6ZXyD%L_}%yI683g7(17F;G_Rj1o?1hST4;>IS`35UyM zBl=ju=&V;gWq<}DpX|p5;EE6{C7Lb-Y0G1d^FJ(e<SU~@72n-imat?{9`%e}pW@Tr zeajvI9t9f3`}_8f8^CT5TRx;mBvsGxZ&X>l9AQ>-mNo1*9Nm%P``g;K7Qk=A(y06O z{BzyA5&kkDHl1Q4sLxogyqXXteob3g-JEUI2w5=tIxGP^K(K>FeXkvj0XCJdsEHbK zLFUiLYj#UjNQV7}EZFANIjeA>@cS&VKuC2ezO=ED@1iG@e0P5TEm>(`X?mqO-$SR# z_aKU_yJ<du+*b`O7_gl!`BFz+*Dr;(DQG<kDP5adBtLVG_^sz)fD!R(h$HN(Bs9~t zLv9MejVb=JzE%NzX?f}=z+Vs!ZMd0@h)%am*y1*l61{$wXx|L>#(88kMHgbS?`%Qm z;t;LwbF-c&DD*w!BP>+s^Q7$VZfp^$2~);_{lS9CD_-?46tE(`2s=guXZmx%N7e-} zPggZJED*h627BuqW}*>pwJbUpBh?Ih>ulKg9cTS)x$S_cL?Ue80&WenDgw<}i(j90 z_k=$6`ADR$5Y?Q^qK=yo@*+M&IA5Uqc7krLa)Jz}lz#CfX7?fzc{DX)gC%+KHu!SU zy;sN%PV~ELzT-s+Y8BmCL%g7?*f#~{&PVI9O@)#zs_Lg*cq_hQZClHV9I;mkS_u8_ z(o)(x^Q9cJ{dF-4w$A9%4pjkK7Q3rP^v27BWi1(nmcj0<VfQSC9O7<s;(P<s^r-~X zr@815mpAdVkuk4E#@LqgKJ^~ck-Aho`u7RPg!I3vU=*!cvKKao{V?6a6GqXdC3$!f zd&?X;pC{n-q9S>Mwt9#knGEYJU9`B^fH`+AX7+51O?sO<FMmwVqUOB*LCbqm@3mwN zj~_UCm7OcJ@Fn1nJIVK6lpu*GJG^NLN;mO9q?F%zoM_)Px)3cT;uIRY`~tLLAvKhK z;WW{$v*GXE5(@L=ozn*^A)jP0tL^~2@+XOvW3h-`bk1i!l)3zog)RI&!ueF4qjYcY zD)#tGWwIB>L)v~f8z+SBoj6MGJWlByCo$V=ZC`Pv3k7@gJmp_~nfQTAtHV<;G1R6a zPJXLOR2p3S6wajT|4rR_QdK`}Epfimwpyy!yMWKo?}qanjEtm|-}h3;lys~3e1&PO zIJ9Z;XNSTyn?OA;b|}M4G%>qsm>sq7+E;@|h+LOP9WQ=y6F>NGW0Z#dAS-kZuuk<c zBl4O2&(5pz_<^HW16&5N*n9n-fnOr*iR=B)920VP<NGgDdh}!%DAvl`_4#0v_^>&B zg|DlVkf4op-SrB23PeSjI+^gb-`m=+KT${qL|*ygXl#G6<<(qjw){vG@$TmjFEzDW z9rDlLWa&td-rt`Wq~b`QpCEmHVky~X4d?(g4Z7H+3m2p98t`naq;=uDPi+oqVEu<k zatqDrruQE>-)OOrWqMP!LUWljc@@BABeDf90Pkigy{RuNBC)6S<=wbrW5{r}Hbhu` z5Lqi|;KSB85We-vElizA23cG$Ruz2a_1&?N^F!9yNJP&!TKxLKqgQ=-wQ;F9SLJDf zCKmZ5y;s8kUTA#&MzX_W$Vj?$u+9dHcS2lNyn}CiVuCXVD<p&4J>yhAShDifSR|@O z)&bPqYn%TXfXh<a3)}Yz!pIyEQa*c!Xv5-p^K&<mKC>N49+G@?UT<(jLG!**9(Bx| ziFx{?TRHo^Axa}Y-0M$LAabf78?xpJL82FD7c#Ffm1g|r3opIq2fZG9QjE-hLO2UB zC2aHWP4dpK4NLU;S>i_~vAY+8L)<cLE$L+kf+}tBCJOm-%>~2DPmgfqE2Cr$8FWuf z3dBzJQ$I0Mef(^rWzW{?zMf`UO=3Q<0=!iLE`wN{XyFKl8osx9TWdGDLyU$4cM?yu zZ-(gJE3j*kaz#-uxHK$P;+G6jQMwSOWhT-vB?A_(M4UNL;gx4XmQq~t7~8|S3d`OJ zd9I98ee&V06Tfy~dd^&EG!+TP=KTkcb^UR#u1V*aD(?g42!|T>cY0AiI^%`(zy$sW zo4K-ihN<0CY~R~rWNSug#9{Nq>Z^X5g^*PJLd5jxgbPPXTsT~2@k&ILg!Ha<mQwFh zg!SS~^^e{(KK7x5({uKGqv@@LxYwC_bJYj*dv;c*CVqgBwOCZ7KW8DI)0)h1bh^RO z`U1lvN_o_g4Evx>QFwPQ71ElaF=wgITGCp0Us1`o_W=$t%W!!uB=h=@$KvP@Gxc^l z&3q)Hs&KmA;9nm(u|9xZAQq=uJOcbDmJ+o4KQ~YyvBJyqbq-B0V%6Xspn_K=4_ty# zOx}fyIc=vs>_ghYWUpLodH=4GHUB3PiKbhr3wwm%Y`wWAyq*De0a+Z2v<>(aVSi0g zxxS9VD{?emUZ`_;ez85zj3gYuSaS|hx!NxFFG|O$l}`1~YtFw%RnHB_QFN)%%8UqQ zYj|O1o=+V=*V9A$(v}rm91C0|9Bup_!odth7_2w~bWJI?kliv|;kJ<~txSnAoLFe^ zzbB`N)ZhoxwgOyHmq=l@<^B8Kee<55zh$^GS&giH__|HmKfP-&k-%?!?^w_9in{kL zE1aX+d0@qF=P--q?jjhmW?6+M9-FUmy4K|BOVj+{i&Om0zMH8#-*08F(l~|8sXkS6 z?jsgCUyZD7daq?;Jiy6XgOB|1)xKE_6d_xtiNz`9mT;E9`w2<OUtq}*F95Hql}nm9 z#BHNhyoPm;KEM^w3hy9N@J{u=G@QF<$lAxZm68iXk+qkaEw`9CzvvwQ>d5hd;0+A0 zfVd1~=h>u3fL|t@SpEcXiKSC@J7K=&T>Svivv;JzEyF{3ra)JOy6jnnmtYmHWUBwJ z;oO~7Ykz5bxpc^>+UZs%0&YjSM8kRBfAAPTTBr|-Vf}0MU9_<nsgDun(R&Gd5Wh_D zAuU$}?fk6+oLBsK68TufdsXjMUB~@)DhnNlaVyL_)&G@xeQZ9>Zt==*3|V{Fq4rX< zW$xTG;@*4PO@1cL_^;<K@mq&pS#R?<c0=U~=P-BL$3nIcQbqp;aDNVWf{vHzRGCO( zo;-1m|9J8|pT6%lzCAU&e9yLOIHK-lulgOYJk#|48=I5pQp+pvykRGQc52ctI;ZbF zaMS~Q{I0zStT?Cru>iOV$U;+!F4rj&g#X>)7T_jems6eClEfoVo|r5>bz+ilK6G#M zYnP_yPuH4LiIKBj^|*(ZTi(C?{)5LZ>tjF9?;d!G(KupTDX|M#CJpc19h*k<QnSVJ zg*yM_`#-`D;BBuZ{~yoPIKf5*w3`3`03~!qSaf7zbY(hYa%Ew3WdJfTF*YqQG%YYU zR53L=G&njjH7zhSIxsN!p31lY001R)MObuXVRU6WZEs|0W_bWIFfleQFf=VNH&ih- zIy5*sF*PkPG&(RaiNkUP0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{Q QJOBUy07*qoM6N<$f*tVbJ^%m! diff --git a/examples/defaults-overwrite/config.defaults.json b/examples/defaults-overwrite/config.defaults.json old mode 100644 new mode 100755 diff --git a/examples/defaults-overwrite/config.json b/examples/defaults-overwrite/config.json old mode 100644 new mode 100755 diff --git a/examples/defaults-overwrite/index.js b/examples/defaults-overwrite/index.js old mode 100644 new mode 100755 diff --git a/examples/env/config.defaults.json b/examples/env/config.defaults.json old mode 100644 new mode 100755 diff --git a/examples/env/config.json b/examples/env/config.json old mode 100644 new mode 100755 diff --git a/examples/env/index.js b/examples/env/index.js old mode 100644 new mode 100755 diff --git a/examples/files/config.defaults.json b/examples/files/config.defaults.json new file mode 100755 index 0000000..8d6cd81 --- /dev/null +++ b/examples/files/config.defaults.json @@ -0,0 +1,6 @@ +{ + "setting":"value", + "another": { + "setting":"avalue" + } +} \ No newline at end of file diff --git a/examples/files/config.json b/examples/files/config.json new file mode 100755 index 0000000..6a684ef --- /dev/null +++ b/examples/files/config.json @@ -0,0 +1,6 @@ +{ + "setting":"overwritten", + "another": { + "more":"file:examples/files/setting_2.txt" + } +} \ No newline at end of file diff --git a/examples/files/index.js b/examples/files/index.js new file mode 100755 index 0000000..6df1d64 --- /dev/null +++ b/examples/files/index.js @@ -0,0 +1,4 @@ +const Config = require('../../index') +let config = new Config() + +console.log(JSON.stringify(config, undefined, 2)) \ No newline at end of file diff --git a/examples/files/setting_1.txt b/examples/files/setting_1.txt new file mode 100644 index 0000000..6737875 --- /dev/null +++ b/examples/files/setting_1.txt @@ -0,0 +1 @@ +some-new-value \ No newline at end of file diff --git a/examples/files/setting_2.txt b/examples/files/setting_2.txt new file mode 100644 index 0000000..4d35786 --- /dev/null +++ b/examples/files/setting_2.txt @@ -0,0 +1 @@ +some-other-value \ No newline at end of file diff --git a/examples/only-defaults/config.defaults.json b/examples/only-defaults/config.defaults.json old mode 100644 new mode 100755 diff --git a/examples/only-defaults/index.js b/examples/only-defaults/index.js old mode 100644 new mode 100755 diff --git a/examples/only-local/config.json b/examples/only-local/config.json old mode 100644 new mode 100755 diff --git a/examples/only-local/index.js b/examples/only-local/index.js old mode 100644 new mode 100755 diff --git a/examples/reload/config.defaults.json b/examples/reload/config.defaults.json old mode 100644 new mode 100755 diff --git a/examples/reload/config.json b/examples/reload/config.json old mode 100644 new mode 100755 diff --git a/examples/reload/index.js b/examples/reload/index.js old mode 100644 new mode 100755 diff --git a/index.d.ts b/index.d.ts old mode 100644 new mode 100755 diff --git a/index.js b/index.js old mode 100644 new mode 100755 index 28a6813..5fdb2be --- a/index.js +++ b/index.js @@ -29,31 +29,17 @@ module.exports = function(basePath = undefined) { schema = schema[elem] } schema[pList[len-1]] = value -} - - try { - fs.accessSync(configDefaults) - config = JSON.parse(fs.readFileSync(configDefaults, 'utf8')) - } catch(error) { - console.log('No File ' + configDefaults) - } - - try { - fs.accessSync(configLocal) - config = merge(config, JSON.parse(fs.readFileSync(configLocal, 'utf8'))) - } catch (error) { - console.log('No File ' + configLocal) } - - let keys = objectDeepKeys(config) - for (let index = 0; index < keys.length; index++) { - const element = keys[index] - let env = process.env[element.toUpperCase().replace(/\./g, '_')] - if (env) { - env = (env == 'true') ? true : env - env = (env == 'false') ? false : env - set(config, element, env) + const get = function(obj, path) { + var schema = obj // a moving reference to internal objects within obj + var pList = path.split('.') + var len = pList.length + for(var i = 0; i < len-1; i++) { + var elem = pList[i] + if( !schema[elem] ) schema[elem] = {} + schema = schema[elem] } + return schema[pList[len-1]] } config.reload = function () { @@ -72,12 +58,26 @@ module.exports = function(basePath = undefined) { let keys = objectDeepKeys(this) for (let index = 0; index < keys.length; index++) { const element = keys[index] - const env = process.env[element.toUpperCase().replace('.', '_')] + let env = process.env[element.toUpperCase().replace(/\./g, '_')] if (env) { + env = (env == 'true') ? true : env + env = (env == 'false') ? false : env set(this, element, env) } } + for (let index = 0; index < keys.length; index++) { + const element = keys[index] + let value = get(config, element).toString() + if (value.startsWith('file:')) { + try { + set(config, element, fs.readFileSync(value.replace('file:', ''), 'utf8')) + } catch (error) { + console.error(error.message) + } + + } + } } - + config.reload() return config } \ No newline at end of file diff --git a/index.test.js b/index.test.js old mode 100644 new mode 100755 index 0a9c4bb..cb18c57 --- a/index.test.js +++ b/index.test.js @@ -53,22 +53,89 @@ describe('config', function() { expect(config.another.setting).toBe('avalue') }) + it('should respect a given basepath', async function() { + await fs.mkdir('tmp') + await fs.writeFile('tmp/config.defaults.json', JSON.stringify(jsonDefaults)) + await fs.writeFile('tmp/config.json', JSON.stringify(jsonLocals)) + let config = new Config('tmp') + await fs.unlink('tmp/config.json') + await fs.unlink('tmp/config.defaults.json') + await fs.rmdir('tmp') + + expect(config.setting).toBe('localvalue') + expect(config.another.more).toBe('stuff') + expect(config.another.setting).toBe('avalue') + }) + it('should have all values with preference to env', async function() { await fs.writeFile('config.defaults.json', JSON.stringify(jsonDefaults)) await fs.writeFile('config.json', JSON.stringify(jsonLocals)) process.env['SETTING'] = 'overwritten-by-env' - process.env['ANOTHER_MORE'] = 'overwritten-by-env2' - process.env['EVEN_DEEPER_KEY'] = 'overwritten-by-env3' + process.env['ANOTHER_MORE'] = 'false' + process.env['EVEN_DEEPER_KEY'] = 'true' let config = new Config() await fs.unlink('config.json') await fs.unlink('config.defaults.json') + delete process.env['SETTING'] + delete process.env['ANOTHER_MORE'] + delete process.env['EVEN_DEEPER_KEY'] + expect(config.setting).toBe('overwritten-by-env') - expect(config.another.more).toBe('overwritten-by-env2') - expect(config.even.deeper.key).toBe('overwritten-by-env3') + expect(config.another.more).toBe(false) + expect(config.even.deeper.key).toBe(true) expect(config.another.setting).toBe('avalue') }) + + it('should read in a file when given', async function() { + jsonLocals.setting = 'file:file.txt' + await fs.writeFile('config.defaults.json', JSON.stringify(jsonDefaults)) + await fs.writeFile('config.json', JSON.stringify(jsonLocals)) + await fs.writeFile('file.txt', 'value-from-file') + + let config = new Config() + + await fs.unlink('config.json') + await fs.unlink('config.defaults.json') + await fs.unlink('file.txt') + jsonLocals.setting = 'localvalue' + + expect(config.setting).toBe('value-from-file') + }) + it('should show a message and keep the setting when file given but not found', async function() { + jsonLocals.setting = 'file:file.txt' + await fs.writeFile('config.defaults.json', JSON.stringify(jsonDefaults)) + await fs.writeFile('config.json', JSON.stringify(jsonLocals)) + + let config = new Config() + + await fs.unlink('config.json') + await fs.unlink('config.defaults.json') + jsonLocals.setting = 'localvalue' + + expect(config.setting).toBe('file:file.txt') + }) + + it('should reload if asked', async function() { + await fs.writeFile('config.defaults.json', JSON.stringify(jsonDefaults)) + await fs.writeFile('config.json', JSON.stringify(jsonLocals)) + + let config = new Config() + + expect(config.setting).toBe('localvalue') + + jsonLocals.setting = 'reloaded-value' + await fs.writeFile('config.json', JSON.stringify(jsonLocals)) + + config.reload() + + await fs.unlink('config.json') + await fs.unlink('config.defaults.json') + jsonLocals.setting = 'localvalue' + + expect(config.setting).toBe('reloaded-value') + }) }) diff --git a/package-lock.json b/package-lock.json old mode 100644 new mode 100755 diff --git a/package.json b/package.json old mode 100644 new mode 100755 diff --git a/stryker.conf.json b/stryker.conf.json old mode 100644 new mode 100755 -- GitLab